summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/rom5.s260394
-rw-r--r--asm/rom5_part2.s256835
2 files changed, 256835 insertions, 260394 deletions
diff --git a/asm/rom5.s b/asm/rom5.s
index 8d14ffa76..a8dce88ea 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -34214,260398 +34214,4 @@ _0808B608: .4byte gTasks
_0808B60C: .4byte gUnknown_03005CF0
thumb_func_end sub_808B5E4
- thumb_func_start sub_808B610
-sub_808B610: @ 808B610
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_808B610
-
- thumb_func_start sub_808B628
-sub_808B628: @ 808B628
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_808B628
-
- thumb_func_start CB2_InitOptionMenu
-CB2_InitOptionMenu: @ 808B63C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, _0808B65C
- ldr r1, _0808B660
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _0808B690
- lsls r0, 2
- ldr r1, _0808B664
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808B65C: .4byte gMain
-_0808B660: .4byte 0x0000043c
-_0808B664: .4byte _0808B668
- .align 2, 0
-_0808B668:
- .4byte _0808B690
- .4byte _0808B758
- .4byte _0808B76A
- .4byte _0808B784
- .4byte _0808B790
- .4byte _0808B7AC
- .4byte _0808B7D0
- .4byte _0808B7F0
- .4byte _0808B874
- .4byte _0808B9AC
-_0808B690:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r2, sp, 0x8
- mov r8, r2
- add r2, sp, 0x4
- movs r6, 0
- ldr r1, _0808B748
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0808B74C
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0808B6E0:
- strh r6, [r2]
- add r0, sp, 0x4
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _0808B6E0
- strh r6, [r2]
- add r2, sp, 0x4
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x8]
- ldr r2, _0808B748
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _0808B750
- ldr r2, _0808B754
- adds r1, r2
- b _0808B962
- .align 2, 0
-_0808B748: .4byte 0x040000d4
-_0808B74C: .4byte 0x81000800
-_0808B750: .4byte gMain
-_0808B754: .4byte 0x0000043c
-_0808B758:
- bl ResetPaletteFade
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- b _0808B95C
-_0808B76A:
- ldr r0, _0808B778
- bl SetUpWindowConfig
- ldr r1, _0808B77C
- ldr r2, _0808B780
- adds r1, r2
- b _0808B962
- .align 2, 0
-_0808B778: .4byte gWindowConfig_81E71B4
-_0808B77C: .4byte gMain
-_0808B780: .4byte 0x0000043c
-_0808B784:
- ldr r0, _0808B78C
- bl MultistepInitMenuWindowBegin
- b _0808B95C
- .align 2, 0
-_0808B78C: .4byte gWindowConfig_81E71B4
-_0808B790:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0808B79A
- b _0808B9B2
-_0808B79A:
- ldr r1, _0808B7A4
- ldr r2, _0808B7A8
- adds r1, r2
- b _0808B962
- .align 2, 0
-_0808B7A4: .4byte gMain
-_0808B7A8: .4byte 0x0000043c
-_0808B7AC:
- ldr r0, _0808B7C4
- movs r1, 0x80
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _0808B7C8
- ldr r1, _0808B7CC
- movs r2, 0x20
- bl CpuSet
- b _0808B95C
- .align 2, 0
-_0808B7C4: .4byte gUnknown_0839F5FC
-_0808B7C8: .4byte gUnknown_0839F63C
-_0808B7CC: .4byte 0x0600bee0
-_0808B7D0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0808B7E8
- ldr r2, _0808B7EC
- adds r1, r2
- b _0808B962
- .align 2, 0
-_0808B7E8: .4byte gMain
-_0808B7EC: .4byte 0x0000043c
-_0808B7F0:
- ldr r0, _0808B850
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _0808B854
- ldr r2, _0808B858
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _0808B85C
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r3, _0808B860
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0808B864
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0808B868
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0808B86C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0808B870
- adds r0, r2, 0
- strh r0, [r1]
- b _0808B95C
- .align 2, 0
-_0808B850: .4byte REG_WIN0H
-_0808B854: .4byte REG_WININ
-_0808B858: .4byte 0x00001111
-_0808B85C: .4byte REG_BLDALPHA
-_0808B860: .4byte 0x04000208
-_0808B864: .4byte 0x04000200
-_0808B868: .4byte REG_DISPSTAT
-_0808B86C: .4byte sub_808B628
-_0808B870: .4byte 0x00007140
-_0808B874:
- ldr r0, _0808B96C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808B970
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, _0808B974
- ldrb r0, [r1, 0x14]
- lsls r0, 29
- lsrs r0, 29
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0x15]
- lsls r0, 29
- lsrs r0, 31
- strh r0, [r4, 0xC]
- ldrb r0, [r1, 0x15]
- lsls r0, 30
- lsrs r0, 31
- strh r0, [r4, 0xE]
- ldrb r0, [r1, 0x15]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r4, 0x10]
- ldrb r0, [r1, 0x13]
- strh r0, [r4, 0x12]
- ldrb r0, [r1, 0x14]
- lsrs r0, 3
- strh r0, [r4, 0x14]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0808B978
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- ldr r0, _0808B97C
- movs r1, 0x4
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _0808B980
- movs r1, 0x4
- movs r2, 0x7
- bl MenuPrint
- ldr r0, _0808B984
- movs r1, 0x4
- movs r2, 0x9
- bl MenuPrint
- ldr r0, _0808B988
- movs r1, 0x4
- movs r2, 0xB
- bl MenuPrint
- ldr r0, _0808B98C
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0808B990
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0808B994
- movs r1, 0x4
- movs r2, 0x11
- bl MenuPrint
- ldrb r0, [r4, 0xA]
- bl sub_808BCF8
- ldrb r0, [r4, 0xC]
- bl sub_808BD6C
- ldrb r0, [r4, 0xE]
- bl sub_808BDCC
- ldrb r0, [r4, 0x10]
- bl sub_808BE34
- ldrb r0, [r4, 0x12]
- bl sub_808BFD8
- ldrb r0, [r4, 0x14]
- bl sub_808BECC
- ldr r1, _0808B998
- ldr r2, _0808B99C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _0808B9A0
- adds r0, r2, 0
- strh r0, [r1]
- ldrb r0, [r4, 0x8]
- bl sub_808BC3C
-_0808B95C:
- ldr r1, _0808B9A4
- ldr r0, _0808B9A8
- adds r1, r0
-_0808B962:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0808B9B2
- .align 2, 0
-_0808B96C: .4byte sub_808B9C4
-_0808B970: .4byte gTasks
-_0808B974: .4byte gSaveBlock2
-_0808B978: .4byte gSystemText_OptionMenu
-_0808B97C: .4byte gSystemText_TextSpeed
-_0808B980: .4byte gSystemText_BattleScene
-_0808B984: .4byte gSystemText_BattleStyle
-_0808B988: .4byte gSystemText_Sound
-_0808B98C: .4byte gSystemText_ButtonMode
-_0808B990: .4byte gSystemText_Frame
-_0808B994: .4byte gSystemText_Cancel
-_0808B998: .4byte REG_WIN0H
-_0808B99C: .4byte 0x000011df
-_0808B9A0: .4byte 0x0000011f
-_0808B9A4: .4byte gMain
-_0808B9A8: .4byte 0x0000043c
-_0808B9AC:
- ldr r0, _0808B9C0
- bl SetMainCallback2
-_0808B9B2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B9C0: .4byte sub_808B610
- thumb_func_end CB2_InitOptionMenu
-
- thumb_func_start sub_808B9C4
-sub_808B9C4: @ 808B9C4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808B9E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B9E4
- ldr r0, _0808B9EC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B9F0
- str r0, [r1]
-_0808B9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B9E8: .4byte gPaletteFade
-_0808B9EC: .4byte gTasks
-_0808B9F0: .4byte sub_808B9F4
- thumb_func_end sub_808B9C4
-
- thumb_func_start sub_808B9F4
-sub_808B9F4: @ 808B9F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808BA1C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808BA24
- ldr r0, _0808BA20
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- beq _0808BA1A
- b _0808BB7A
-_0808BA1A:
- b _0808BA36
- .align 2, 0
-_0808BA1C: .4byte gMain
-_0808BA20: .4byte gTasks
-_0808BA24:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808BA44
- ldr r0, _0808BA3C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
-_0808BA36:
- ldr r0, _0808BA40
- str r0, [r1]
- b _0808BB7A
- .align 2, 0
-_0808BA3C: .4byte gTasks
-_0808BA40: .4byte sub_808BB80
-_0808BA44:
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _0808BA74
- ldr r1, _0808BA6C
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r5, [r3, 0x8]
- movs r6, 0x8
- ldrsh r0, [r3, r6]
- adds r7, r1, 0
- cmp r0, 0
- ble _0808BA70
- subs r0, r5, 0x1
- b _0808BA94
- .align 2, 0
-_0808BA6C: .4byte gTasks
-_0808BA70:
- movs r0, 0x6
- b _0808BA94
-_0808BA74:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0808BAAC
- ldr r1, _0808BA98
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r5, [r3, 0x8]
- movs r7, 0x8
- ldrsh r0, [r3, r7]
- adds r7, r1, 0
- cmp r0, 0x5
- bgt _0808BA9C
- adds r0, r5, 0x1
-_0808BA94:
- strh r0, [r3, 0x8]
- b _0808BA9E
- .align 2, 0
-_0808BA98: .4byte gTasks
-_0808BA9C:
- strh r6, [r3, 0x8]
-_0808BA9E:
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0, 0x8]
- bl sub_808BC3C
- b _0808BB7A
-_0808BAAC:
- ldr r0, _0808BACC
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- adds r7, r0, 0
- cmp r1, 0x5
- bhi _0808BB7A
- lsls r0, r1, 2
- ldr r1, _0808BAD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808BACC: .4byte gTasks
-_0808BAD0: .4byte _0808BAD4
- .align 2, 0
-_0808BAD4:
- .4byte _0808BAEC
- .4byte _0808BB04
- .4byte _0808BB1C
- .4byte _0808BB34
- .4byte _0808BB4C
- .4byte _0808BB64
-_0808BAEC:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0xA]
- bl sub_808BCB4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl sub_808BCF8
- b _0808BB7A
-_0808BB04:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0xC]
- bl sub_808BD4C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- bl sub_808BD6C
- b _0808BB7A
-_0808BB1C:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0xE]
- bl sub_808BDAC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- bl sub_808BDCC
- b _0808BB7A
-_0808BB34:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0x10]
- bl sub_808BE0C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x10]
- bl sub_808BE34
- b _0808BB7A
-_0808BB4C:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0x12]
- bl sub_808BF94
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- bl sub_808BFD8
- b _0808BB7A
-_0808BB64:
- adds r4, r2, r4
- lsls r4, 3
- adds r4, r7
- ldrb r0, [r4, 0x14]
- bl sub_808BE74
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- bl sub_808BECC
-_0808BB7A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808B9F4
-
- thumb_func_start sub_808BB80
-sub_808BB80: @ 808BB80
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0808BC04
- ldr r1, _0808BC08
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x7
- ldrb r0, [r4, 0xA]
- ands r0, r1
- ldrb r1, [r5, 0x14]
- movs r3, 0x8
- negs r3, r3
- ands r3, r1
- orrs r3, r0
- strb r3, [r5, 0x14]
- movs r6, 0x1
- ldrb r0, [r4, 0xC]
- ands r0, r6
- lsls r0, 2
- ldrb r1, [r5, 0x15]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r5, 0x15]
- ldrb r1, [r4, 0xE]
- ands r1, r6
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x15]
- ldrb r1, [r4, 0x10]
- ands r1, r6
- movs r2, 0x2
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x15]
- ldrh r0, [r4, 0x12]
- movs r2, 0
- strb r0, [r5, 0x13]
- ldrb r0, [r4, 0x14]
- lsls r0, 3
- movs r1, 0x7
- ands r3, r1
- orrs r3, r0
- strb r3, [r5, 0x14]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808BC0C
- str r0, [r4]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808BC04: .4byte gSaveBlock2
-_0808BC08: .4byte gTasks
-_0808BC0C: .4byte sub_808BC10
- thumb_func_end sub_808BB80
-
- thumb_func_start sub_808BC10
-sub_808BC10: @ 808BC10
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808BC34
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808BC30
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _0808BC38
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0808BC30:
- pop {r0}
- bx r0
- .align 2, 0
-_0808BC34: .4byte gPaletteFade
-_0808BC38: .4byte gMain
- thumb_func_end sub_808BC10
-
- thumb_func_start sub_808BC3C
-sub_808BC3C: @ 808BC3C
- lsls r0, 24
- ldr r2, _0808BC58
- ldr r3, _0808BC5C
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x4
- lsrs r0, 20
- adds r1, r0, 0
- adds r1, 0x28
- lsls r1, 8
- adds r0, 0x38
- adds r1, r0
- strh r1, [r2]
- bx lr
- .align 2, 0
-_0808BC58: .4byte REG_WIN1H
-_0808BC5C: .4byte 0x000018d7
- thumb_func_end sub_808BC3C
-
- thumb_func_start sub_808BC60
-sub_808BC60: @ 808BC60
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r2, 0
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _0808BC96
-_0808BC7C:
- mov r7, sp
- adds r0, r7, r2
- strb r1, [r0]
- adds r4, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _0808BC96
- cmp r2, 0xE
- bls _0808BC7C
-_0808BC96:
- mov r0, sp
- strb r3, [r0, 0x2]
- adds r1, r0, r2
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80729D8
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808BC60
-
- thumb_func_start sub_808BCB4
-sub_808BCB4: @ 808BCB4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _0808BCD4
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0808BCDA
- cmp r3, 0x1
- bhi _0808BCD8
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _0808BCDA
- .align 2, 0
-_0808BCD4: .4byte gMain
-_0808BCD8:
- movs r3, 0
-_0808BCDA:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0808BCF2
- cmp r3, 0
- beq _0808BCF0
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _0808BCF2
-_0808BCF0:
- movs r3, 0x2
-_0808BCF2:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_808BCB4
-
- thumb_func_start sub_808BCF8
-sub_808BCF8: @ 808BCF8
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0xF
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- adds r1, r0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808BD40
- mov r1, sp
- ldrb r3, [r1]
- movs r1, 0x78
- movs r2, 0x28
- bl sub_808BC60
- ldr r0, _0808BD44
- mov r1, sp
- ldrb r3, [r1, 0x1]
- movs r1, 0x9B
- movs r2, 0x28
- bl sub_808BC60
- ldr r0, _0808BD48
- mov r1, sp
- ldrb r3, [r1, 0x2]
- movs r1, 0xB8
- movs r2, 0x28
- bl sub_808BC60
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808BD40: .4byte gSystemText_Slow
-_0808BD44: .4byte gSystemText_Mid
-_0808BD48: .4byte gSystemText_Fast
- thumb_func_end sub_808BCF8
-
- thumb_func_start sub_808BD4C
-sub_808BD4C: @ 808BD4C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808BD68
- ldrh r1, [r0, 0x2E]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0808BD62
- movs r0, 0x1
- eors r2, r0
-_0808BD62:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808BD68: .4byte gMain
- thumb_func_end sub_808BD4C
-
- thumb_func_start sub_808BD6C
-sub_808BD6C: @ 808BD6C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0xF
- strb r2, [r1]
- strb r2, [r1, 0x1]
- adds r1, r0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808BDA4
- mov r1, sp
- ldrb r3, [r1]
- movs r1, 0x78
- movs r2, 0x38
- bl sub_808BC60
- ldr r0, _0808BDA8
- mov r1, sp
- ldrb r3, [r1, 0x1]
- movs r1, 0xBE
- movs r2, 0x38
- bl sub_808BC60
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808BDA4: .4byte gSystemText_On
-_0808BDA8: .4byte gSystemText_Off
- thumb_func_end sub_808BD6C
-
- thumb_func_start sub_808BDAC
-sub_808BDAC: @ 808BDAC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808BDC8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0808BDC2
- movs r0, 0x1
- eors r2, r0
-_0808BDC2:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808BDC8: .4byte gMain
- thumb_func_end sub_808BDAC
-
- thumb_func_start sub_808BDCC
-sub_808BDCC: @ 808BDCC
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0xF
- strb r2, [r1]
- strb r2, [r1, 0x1]
- adds r1, r0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808BE04
- mov r1, sp
- ldrb r3, [r1]
- movs r1, 0x78
- movs r2, 0x48
- bl sub_808BC60
- ldr r0, _0808BE08
- mov r1, sp
- ldrb r3, [r1, 0x1]
- movs r1, 0xBE
- movs r2, 0x48
- bl sub_808BC60
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808BE04: .4byte gSystemText_Shift
-_0808BE08: .4byte gSystemText_Set
- thumb_func_end sub_808BDCC
-
- thumb_func_start sub_808BE0C
-sub_808BE0C: @ 808BE0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808BE30
- ldrh r1, [r0, 0x2E]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0808BE28
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl SetPokemonCryStereo
-_0808BE28:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808BE30: .4byte gMain
- thumb_func_end sub_808BE0C
-
- thumb_func_start sub_808BE34
-sub_808BE34: @ 808BE34
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0xF
- strb r2, [r1]
- strb r2, [r1, 0x1]
- adds r1, r0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808BE6C
- mov r1, sp
- ldrb r3, [r1]
- movs r1, 0x78
- movs r2, 0x58
- bl sub_808BC60
- ldr r0, _0808BE70
- mov r1, sp
- ldrb r3, [r1, 0x1]
- movs r1, 0xAC
- movs r2, 0x58
- bl sub_808BC60
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808BE6C: .4byte gSystemText_Mono
-_0808BE70: .4byte gSystemText_Stereo
- thumb_func_end sub_808BE34
-
- thumb_func_start sub_808BE74
-sub_808BE74: @ 808BE74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808BE94
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0808BEA0
- cmp r4, 0x12
- bhi _0808BE98
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- b _0808BE9A
- .align 2, 0
-_0808BE94: .4byte gMain
-_0808BE98:
- movs r4, 0
-_0808BE9A:
- adds r0, r4, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
-_0808BEA0:
- ldr r0, _0808BEB8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0808BEC4
- cmp r4, 0
- beq _0808BEBC
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- b _0808BEBE
- .align 2, 0
-_0808BEB8: .4byte gMain
-_0808BEBC:
- movs r4, 0x13
-_0808BEBE:
- adds r0, r4, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
-_0808BEC4:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808BE74
-
- thumb_func_start sub_808BECC
-sub_808BECC: @ 808BECC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r7, r0, 24
- movs r5, 0
- ldr r1, _0808BF40
- ldrb r0, [r1]
- ldr r2, _0808BF44
- mov r8, r2
- cmp r0, 0xFF
- beq _0808BF0A
- adds r2, r1, 0
-_0808BEEE:
- mov r0, sp
- adds r1, r0, r5
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0808BF0A
- cmp r5, 0x5
- bls _0808BEEE
-_0808BF0A:
- adds r0, r7, 0
- movs r1, 0xA
- bl __udivsi3
- adds r2, r0, 0
- lsls r0, r2, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0808BF48
- mov r0, sp
- adds r1, r0, r5
- adds r0, r2, 0
- adds r0, 0xA1
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r1, sp
- adds r4, r1, r5
- adds r0, r7, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
- b _0808BF64
- .align 2, 0
-_0808BF40: .4byte gSystemText_Terminator
-_0808BF44: .4byte gSystemText_Type
-_0808BF48:
- mov r2, sp
- adds r4, r2, r5
- adds r0, r7, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r1, sp
- adds r0, r1, r5
- strb r6, [r0]
-_0808BF64:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, sp
- adds r1, r2, r5
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, r8
- movs r1, 0xF
- movs r2, 0xF
- bl MenuPrint
- mov r0, sp
- movs r1, 0x12
- movs r2, 0xF
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808BECC
-
- thumb_func_start sub_808BF94
-sub_808BF94: @ 808BF94
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _0808BFB4
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0808BFBA
- cmp r3, 0x1
- bhi _0808BFB8
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _0808BFBA
- .align 2, 0
-_0808BFB4: .4byte gMain
-_0808BFB8:
- movs r3, 0
-_0808BFBA:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0808BFD2
- cmp r3, 0
- beq _0808BFD0
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _0808BFD2
-_0808BFD0:
- movs r3, 0x2
-_0808BFD2:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_808BF94
-
- thumb_func_start sub_808BFD8
-sub_808BFD8: @ 808BFD8
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0xF
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- adds r1, r0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808C020
- mov r1, sp
- ldrb r3, [r1]
- movs r1, 0x78
- movs r2, 0x68
- bl sub_808BC60
- ldr r0, _0808C024
- mov r1, sp
- ldrb r3, [r1, 0x1]
- movs r1, 0xA6
- movs r2, 0x68
- bl sub_808BC60
- ldr r0, _0808C028
- mov r1, sp
- ldrb r3, [r1, 0x2]
- movs r1, 0xBC
- movs r2, 0x68
- bl sub_808BC60
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808C020: .4byte gSystemText_Normal
-_0808C024: .4byte gSystemText_LR
-_0808C028: .4byte gSystemText_LA
- thumb_func_end sub_808BFD8
-
- thumb_func_start sub_808C02C
-sub_808C02C: @ 808C02C
- push {r4-r6,lr}
- ldr r0, _0808C088
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0808C08C
- movs r0, 0x40
- strb r0, [r2]
- ldr r0, _0808C090
- strb r1, [r0]
- ldr r4, _0808C094
- movs r0, 0
- strb r1, [r4, 0x19]
- strb r1, [r4, 0x18]
- strb r1, [r4, 0x1A]
- strb r1, [r4, 0x1B]
- str r0, [r4, 0x1C]
- str r0, [r4, 0x20]
- str r0, [r4, 0x24]
- bl sub_80690C8
- movs r1, 0
- adds r6, r4, 0
- adds r6, 0x28
- movs r2, 0
- adds r5, r4, 0
- adds r5, 0x5C
- ldr r3, _0808C098
- ldr r0, _0808C09C
- adds r4, r3, r0
-_0808C066:
- adds r0, r1, r6
- strb r2, [r0]
- adds r0, r1, r5
- strb r2, [r0]
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, r4
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x33
- bls _0808C066
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C088: .4byte gUnknown_0202FFB8
-_0808C08C: .4byte gUnknown_0202FFBA
-_0808C090: .4byte gUnknown_03005CE8
-_0808C094: .4byte gSaveBlock2
-_0808C098: .4byte gSaveBlock1 + 0x938
-_0808C09C: .4byte 0x00003154
- thumb_func_end sub_808C02C
-
- thumb_func_start sub_808C0A0
-sub_808C0A0: @ 808C0A0
- ldr r1, _0808C0B0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0808C0B4
- movs r0, 0x40
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0808C0B0: .4byte gUnknown_0202FFB8
-_0808C0B4: .4byte gUnknown_0202FFBA
- thumb_func_end sub_808C0A0
-
- thumb_func_start sub_808C0B8
-sub_808C0B8: @ 808C0B8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_808C0B8
-
- thumb_func_start sub_808C0CC
-sub_808C0CC: @ 808C0CC
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r0, _0808C240
- adds r7, r0, 0
- movs r1, 0x2
- negs r1, r1
- mov r12, r1
- movs r6, 0x3
- negs r6, r6
- ldr r5, _0808C244
-_0808C0E2:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldrh r0, [r1]
- orrs r0, r7
- strh r0, [r1]
- ldrb r2, [r1, 0x2]
- mov r0, r12
- ands r0, r2
- ands r0, r6
- strb r0, [r1, 0x2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r5
- bls _0808C0E2
- movs r2, 0xC1
- lsls r2, 3
- adds r0, r4, r2
- movs r2, 0
- strh r2, [r0]
- ldr r0, _0808C248
- adds r3, r4, r0
- ldrb r1, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- movs r1, 0x3
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldr r1, _0808C24C
- adds r0, r4, r1
- strh r2, [r0]
- ldr r3, _0808C250
- adds r0, r4, r3
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strh r2, [r0]
- adds r3, 0x4
- adds r0, r4, r3
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strh r2, [r0]
- adds r3, 0x4
- adds r0, r4, r3
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strh r2, [r0]
- adds r3, 0x4
- adds r0, r4, r3
- strh r2, [r0]
- adds r1, 0x4
- adds r0, r4, r1
- strh r2, [r0]
- movs r3, 0
- ldr r0, _0808C254
- adds r2, r4, r0
- ldr r1, _0808C240
- adds r5, r1, 0
-_0808C15E:
- lsls r0, r3, 1
- adds r0, r2, r0
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0808C15E
- movs r2, 0xC5
- lsls r2, 3
- adds r0, r4, r2
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- ldr r3, _0808C258
- adds r0, r4, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r4, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r4, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r4, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r4, r3
- strb r2, [r0]
- movs r2, 0xC6
- lsls r2, 3
- adds r0, r4, r2
- strh r1, [r0]
- adds r3, 0x3
- adds r0, r4, r3
- strh r1, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strh r1, [r0]
- adds r3, 0x4
- adds r0, r4, r3
- strh r1, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strh r1, [r0]
- movs r3, 0
- ldr r0, _0808C25C
- adds r1, r4, r0
- movs r2, 0
-_0808C1C4:
- lsls r0, r3, 1
- adds r0, r1, r0
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0808C1C4
- ldr r1, _0808C260
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _0808C264
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _0808C268
- adds r3, r4, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldr r2, _0808C26C
- adds r0, r4, r2
- strb r1, [r0]
- ldr r3, _0808C270
- adds r0, r4, r3
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r4, r2
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r4, r3
- strh r1, [r0]
- adds r2, 0x4
- adds r0, r4, r2
- strh r1, [r0]
- movs r3, 0
- ldr r0, _0808C274
- adds r1, r4, r0
- movs r2, 0
-_0808C216:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _0808C216
- movs r3, 0
- ldr r2, _0808C278
- adds r1, r4, r2
- movs r2, 0
-_0808C22C:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _0808C22C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C240: .4byte 0x0000ffff
-_0808C244: .4byte 0x00000181
-_0808C248: .4byte 0x0000060a
-_0808C24C: .4byte 0x0000060c
-_0808C250: .4byte 0x0000060e
-_0808C254: .4byte 0x0000061e
-_0808C258: .4byte 0x0000062a
-_0808C25C: .4byte 0x0000063a
-_0808C260: .4byte 0x0000064a
-_0808C264: .4byte 0x0000064b
-_0808C268: .4byte 0x0000064c
-_0808C26C: .4byte 0x0000064d
-_0808C270: .4byte 0x0000064f
-_0808C274: .4byte 0x00000656
-_0808C278: .4byte 0x0000065e
- thumb_func_end sub_808C0CC
-
- thumb_func_start sub_808C27C
-sub_808C27C: @ 808C27C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r0, _0808C334
- ldr r1, _0808C338
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0808C344
- cmp r0, 0x1
- ble _0808C29E
- cmp r0, 0x2
- beq _0808C37C
- cmp r0, 0x3
- bne _0808C29E
- b _0808C4C4
-_0808C29E:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl sub_8091060
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r2, sp, 0x4
- mov r8, r2
- mov r2, sp
- movs r6, 0
- ldr r1, _0808C33C
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0808C340
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0808C2C8:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _0808C2C8
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r3, r12
- orrs r0, r3
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _0808C33C
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0808C334
- ldr r2, _0808C338
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _0808C50C
- .align 2, 0
-_0808C334: .4byte gMain
-_0808C338: .4byte 0x0000043c
-_0808C33C: .4byte 0x040000d4
-_0808C340: .4byte 0x81000800
-_0808C344:
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- ldr r1, _0808C374
- movs r0, 0x8
- strb r0, [r1]
- ldr r4, _0808C378
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0808C50C
- .align 2, 0
-_0808C374: .4byte gReservedSpritePaletteCount
-_0808C378: .4byte gWindowConfig_81E7048
-_0808C37C:
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- beq _0808C3A4
- cmp r1, 0x1
- ble _0808C394
- cmp r1, 0x2
- beq _0808C3B4
- cmp r1, 0x3
- beq _0808C3C4
-_0808C394:
- ldr r1, _0808C39C
- ldr r0, _0808C3A0
- b _0808C3C8
- .align 2, 0
-_0808C39C: .4byte gUnknown_0202FFB4
-_0808C3A0: .4byte 0x02018000
-_0808C3A4:
- ldr r1, _0808C3AC
- ldr r0, _0808C3B0
- b _0808C3C8
- .align 2, 0
-_0808C3AC: .4byte gUnknown_0202FFB4
-_0808C3B0: .4byte 0x02018800
-_0808C3B4:
- ldr r1, _0808C3BC
- ldr r0, _0808C3C0
- b _0808C3C8
- .align 2, 0
-_0808C3BC: .4byte gUnknown_0202FFB4
-_0808C3C0: .4byte 0x02019000
-_0808C3C4:
- ldr r1, _0808C448
- ldr r0, _0808C44C
-_0808C3C8:
- str r0, [r1]
- ldr r4, _0808C448
- ldr r0, [r4]
- bl sub_808C0CC
- ldr r0, _0808C450
- movs r1, 0
- bl CreateTask
- ldr r0, [r4]
- ldr r5, _0808C454
- ldrb r1, [r5, 0x19]
- ldr r3, _0808C458
- adds r0, r3
- movs r6, 0
- strh r1, [r0]
- bl sub_806912C
- adds r1, r0, 0
- cmp r1, 0
- bne _0808C3FA
- ldr r0, [r4]
- ldr r2, _0808C458
- adds r0, r2
- strh r1, [r0]
-_0808C3FA:
- ldr r1, [r4]
- ldrb r2, [r5, 0x18]
- ldr r3, _0808C45C
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _0808C460
- ldrh r2, [r0]
- subs r3, 0x8
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _0808C464
- ldrb r0, [r0]
- ldr r2, _0808C468
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r3, 0x3F
- adds r0, r3
- strb r6, [r0]
- ldr r0, [r4]
- ldr r1, _0808C46C
- adds r0, r1
- strb r6, [r0]
- bl sub_806912C
- cmp r0, 0
- bne _0808C474
- movs r0, 0
- bl sub_8090F68
- ldr r1, [r4]
- ldr r2, _0808C470
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x1
- bl sub_8090F68
- b _0808C488
- .align 2, 0
-_0808C448: .4byte gUnknown_0202FFB4
-_0808C44C: .4byte 0x02019800
-_0808C450: .4byte sub_808C608
-_0808C454: .4byte gSaveBlock2
-_0808C458: .4byte 0x00000612
-_0808C45C: .4byte 0x00000616
-_0808C460: .4byte gUnknown_0202FFB8
-_0808C464: .4byte gUnknown_0202FFBA
-_0808C468: .4byte 0x0000062c
-_0808C46C: .4byte 0x0000064e
-_0808C470: .4byte 0x0000061a
-_0808C474:
- movs r0, 0
- bl pokedex_count
- ldr r1, [r4]
- ldr r2, _0808C4AC
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x1
- bl pokedex_count
-_0808C488:
- ldr r1, [r4]
- ldr r3, _0808C4B0
- adds r1, r3
- strh r0, [r1]
- ldr r0, _0808C4B4
- ldr r0, [r0]
- ldr r1, _0808C4B8
- adds r0, r1
- movs r1, 0x8
- strb r1, [r0]
- ldr r1, _0808C4BC
- ldr r2, _0808C4C0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0808C50C
- .align 2, 0
-_0808C4AC: .4byte 0x0000061a
-_0808C4B0: .4byte 0x0000061c
-_0808C4B4: .4byte gUnknown_0202FFB4
-_0808C4B8: .4byte 0x0000062d
-_0808C4BC: .4byte gMain
-_0808C4C0: .4byte 0x0000043c
-_0808C4C4:
- ldr r3, _0808C518
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0808C51C
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0808C520
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0808C524
- bl SetVBlankCallback
- ldr r0, _0808C528
- bl SetMainCallback2
- ldr r0, _0808C52C
- ldr r1, [r0]
- ldr r3, _0808C530
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r2, _0808C534
- adds r1, r2
- ldrb r1, [r1]
- bl sub_808D690
- ldr r0, _0808C538
- ldr r1, _0808C53C
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_0808C50C:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C518: .4byte 0x04000208
-_0808C51C: .4byte 0x04000200
-_0808C520: .4byte REG_DISPSTAT
-_0808C524: .4byte sub_808C0B8
-_0808C528: .4byte sub_808C5F0
-_0808C52C: .4byte gUnknown_0202FFB4
-_0808C530: .4byte 0x00000612
-_0808C534: .4byte 0x00000616
-_0808C538: .4byte gMPlay_BGM
-_0808C53C: .4byte 0x0000ffff
- thumb_func_end sub_808C27C
-
- thumb_func_start unref_sub_808C540
-unref_sub_808C540: @ 808C540
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 2
- bl sub_8091060
- bl remove_some_task
- bl ResetTasks
- bl ResetPaletteFade
- ldr r3, _0808C59C
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0808C5A0
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0808C5A4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0808C5A8
- bl SetVBlankCallback
- ldr r0, _0808C5AC
- bl SetMainCallback2
- ldr r0, _0808C5B0
- ldr r0, [r0]
- ldr r1, _0808C5B4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808C5BC
- ldr r0, _0808C5B8
- b _0808C5BE
- .align 2, 0
-_0808C59C: .4byte 0x04000208
-_0808C5A0: .4byte 0x04000200
-_0808C5A4: .4byte REG_DISPSTAT
-_0808C5A8: .4byte sub_808C0B8
-_0808C5AC: .4byte sub_808C5F0
-_0808C5B0: .4byte gUnknown_0202FFB4
-_0808C5B4: .4byte 0x0000064b
-_0808C5B8: .4byte sub_808CAE4
-_0808C5BC:
- ldr r0, _0808C5E8
-_0808C5BE:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- ldr r2, _0808C5EC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808C5E8: .4byte sub_808D198
-_0808C5EC: .4byte gTasks
- thumb_func_end unref_sub_808C540
-
- thumb_func_start sub_808C5F0
-sub_808C5F0: @ 808C5F0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_808C5F0
-
- thumb_func_start sub_808C608
-sub_808C608: @ 808C608
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808C640
- ldr r1, [r0]
- ldr r0, _0808C644
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0
- bl sub_808D344
- lsls r0, 24
- cmp r0, 0
- beq _0808C63A
- ldr r0, _0808C648
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808C64C
- str r0, [r1]
-_0808C63A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C640: .4byte gUnknown_0202FFB4
-_0808C644: .4byte 0x0000064c
-_0808C648: .4byte gTasks
-_0808C64C: .4byte sub_808C650
- thumb_func_end sub_808C608
-
- thumb_func_start sub_808C650
-sub_808C650: @ 808C650
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0808C680
- ldr r1, _0808C684
- ldr r4, [r1]
- ldr r0, _0808C688
- adds r3, r4, r0
- ldrh r0, [r3]
- strh r0, [r2]
- ldrh r0, [r3]
- movs r2, 0
- ldrsh r5, [r3, r2]
- adds r7, r1, 0
- cmp r5, 0
- beq _0808C68C
- subs r0, 0x8
- strh r0, [r3]
- b _0808C878
- .align 2, 0
-_0808C680: .4byte REG_BG0VOFS
-_0808C684: .4byte gUnknown_0202FFB4
-_0808C688: .4byte 0x00000654
-_0808C68C:
- ldr r2, _0808C708
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- mov r9, r0
- ands r0, r1
- cmp r0, 0
- beq _0808C724
- ldr r1, _0808C70C
- adds r0, r4, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4, r0
- ldrb r0, [r0, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808C724
- bl sub_808E6BC
- ldr r4, _0808C710
- ldr r0, [r7]
- ldr r2, _0808C714
- mov r8, r2
- add r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- mov r0, r9
- lsls r0, r1
- mvns r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r7]
- add r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0808C718
- str r1, [r0]
- ldr r1, _0808C71C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808C720
- str r1, [r0]
- movs r0, 0x15
- bl PlaySE
- b _0808C878
- .align 2, 0
-_0808C708: .4byte gMain
-_0808C70C: .4byte 0x0000060e
-_0808C710: .4byte gSprites
-_0808C714: .4byte 0x00000626
-_0808C718: .4byte sub_808EDB8
-_0808C71C: .4byte gTasks
-_0808C720: .4byte sub_808CA64
-_0808C724:
- ldrh r2, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0808C774
- ldr r1, [r7]
- ldr r4, _0808C764
- adds r0, r1, r4
- movs r2, 0
- strh r2, [r0]
- movs r0, 0xCA
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r7]
- ldr r1, _0808C768
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0808C76C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808C770
- str r1, [r0]
- movs r0, 0x5
- bl PlaySE
- b _0808C878
- .align 2, 0
-_0808C764: .4byte 0x00000654
-_0808C768: .4byte 0x00000652
-_0808C76C: .4byte gTasks
-_0808C770: .4byte sub_808C8E8
-_0808C774:
- movs r0, 0x4
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0808C814
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl sub_8091E3C
- ldr r1, _0808C7F4
- lsls r3, r6, 2
- adds r3, r6
- lsls r3, 3
- adds r3, r1
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r3, 0x8]
- ldr r1, _0808C7F8
- ldr r0, [r1]
- ldr r4, _0808C7FC
- adds r0, r4
- strb r2, [r0]
- ldr r0, [r1]
- ldr r2, _0808C800
- adds r1, r0, r2
- ldrb r2, [r1]
- subs r4, 0x25
- adds r1, r0, r4
- strh r2, [r1]
- ldr r2, _0808C804
- adds r1, r0, r2
- ldrh r2, [r1]
- subs r4, 0x1A
- adds r1, r0, r4
- strh r2, [r1]
- ldr r2, _0808C808
- adds r1, r0, r2
- ldrh r2, [r1]
- adds r4, 0x4
- adds r1, r0, r4
- strh r2, [r1]
- ldr r2, _0808C80C
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r4, 0x4
- adds r0, r4
- strh r1, [r0]
- ldr r0, _0808C810
- str r0, [r3]
- movs r0, 0x2
- bl PlaySE
- b _0808C878
- .align 2, 0
-_0808C7F4: .4byte gTasks
-_0808C7F8: .4byte gUnknown_0202FFB4
-_0808C7FC: .4byte 0x0000064f
-_0808C800: .4byte 0x0000062c
-_0808C804: .4byte 0x0000060e
-_0808C808: .4byte 0x00000612
-_0808C80C: .4byte 0x00000616
-_0808C810: .4byte sub_808CB8C
-_0808C814:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0808C84C
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808C844
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808C848
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _0808C878
- .align 2, 0
-_0808C844: .4byte gTasks
-_0808C848: .4byte sub_808CC50
-_0808C84C:
- ldr r0, [r7]
- ldr r4, _0808C888
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xE
- bl sub_808E48C
- ldr r1, [r7]
- adds r4, r1, r4
- strh r0, [r4]
- ldr r0, _0808C88C
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808C878
- ldr r0, _0808C890
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808C894
- str r0, [r1]
-_0808C878:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C888: .4byte 0x0000060e
-_0808C88C: .4byte 0x0000062e
-_0808C890: .4byte gTasks
-_0808C894: .4byte sub_808C898
- thumb_func_end sub_808C650
-
- thumb_func_start sub_808C898
-sub_808C898: @ 808C898
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808C8D4
- ldr r2, [r0]
- ldr r1, _0808C8D8
- adds r0, r2, r1
- ldrb r0, [r0]
- ldr r3, _0808C8DC
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, 0x2
- adds r2, r3
- ldrb r2, [r2]
- bl sub_808E208
- lsls r0, 24
- cmp r0, 0
- beq _0808C8CC
- ldr r0, _0808C8E0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808C8E4
- str r0, [r1]
-_0808C8CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808C8D4: .4byte gUnknown_0202FFB4
-_0808C8D8: .4byte 0x0000062f
-_0808C8DC: .4byte 0x00000634
-_0808C8E0: .4byte gTasks
-_0808C8E4: .4byte sub_808C650
- thumb_func_end sub_808C898
-
- thumb_func_start sub_808C8E8
-sub_808C8E8: @ 808C8E8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0808C910
- ldr r7, _0808C914
- ldr r3, [r7]
- ldr r0, _0808C918
- adds r2, r3, r0
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0x50
- beq _0808C91C
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r2]
- b _0808CA52
- .align 2, 0
-_0808C910: .4byte REG_BG0VOFS
-_0808C914: .4byte gUnknown_0202FFB4
-_0808C918: .4byte 0x00000654
-_0808C91C:
- ldr r5, _0808C940
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808C9C4
- ldr r2, _0808C944
- adds r0, r3, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _0808C948
- cmp r0, 0x1
- ble _0808C98C
- cmp r0, 0x2
- beq _0808C960
- cmp r0, 0x3
- beq _0808C9A0
- b _0808C98C
- .align 2, 0
-_0808C940: .4byte gMain
-_0808C944: .4byte 0x00000652
-_0808C948:
- ldr r4, _0808C958
- adds r1, r3, r4
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0808C95C
- adds r1, r3, r0
- movs r0, 0x40
- b _0808C978
- .align 2, 0
-_0808C958: .4byte 0x0000060e
-_0808C95C: .4byte 0x0000062c
-_0808C960:
- ldr r1, _0808C994
- adds r2, r3, r1
- ldrh r0, [r2]
- subs r0, 0x1
- ldr r4, _0808C998
- adds r1, r3, r4
- strh r0, [r1]
- ldrh r0, [r2]
- lsls r0, 4
- adds r0, 0x30
- ldr r2, _0808C99C
- adds r1, r3, r2
-_0808C978:
- strb r0, [r1]
- bl sub_808E82C
- ldr r0, [r7]
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xE
- bl sub_808E0CC
- ldrh r1, [r5, 0x2E]
-_0808C98C:
- movs r0, 0x8
- orrs r0, r1
- strh r0, [r5, 0x2E]
- b _0808C9C4
- .align 2, 0
-_0808C994: .4byte 0x0000060c
-_0808C998: .4byte 0x0000060e
-_0808C99C: .4byte 0x0000062c
-_0808C9A0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808C9F0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808C9F4
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
-_0808C9C4:
- ldr r2, _0808C9F8
- ldrh r1, [r2, 0x2E]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0
- beq _0808CA04
- ldr r0, _0808C9FC
- ldr r0, [r0]
- movs r3, 0xCA
- lsls r3, 3
- adds r0, r3
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0808C9F0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808CA00
- str r1, [r0]
- b _0808CA20
- .align 2, 0
-_0808C9F0: .4byte gTasks
-_0808C9F4: .4byte sub_808CC50
-_0808C9F8: .4byte gMain
-_0808C9FC: .4byte gUnknown_0202FFB4
-_0808CA00: .4byte sub_808C650
-_0808CA04:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0808CA30
- ldr r0, _0808CA28
- ldr r0, [r0]
- ldr r4, _0808CA2C
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0
- beq _0808CA30
- subs r0, 0x1
- strh r0, [r1]
-_0808CA20:
- movs r0, 0x5
- bl PlaySE
- b _0808CA52
- .align 2, 0
-_0808CA28: .4byte gUnknown_0202FFB4
-_0808CA2C: .4byte 0x00000652
-_0808CA30:
- ldrh r1, [r2, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0808CA52
- ldr r0, _0808CA5C
- ldr r0, [r0]
- ldr r2, _0808CA60
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0x2
- bhi _0808CA52
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
-_0808CA52:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CA5C: .4byte gUnknown_0202FFB4
-_0808CA60: .4byte 0x00000652
- thumb_func_end sub_808C8E8
-
- thumb_func_start sub_808CA64
-sub_808CA64: @ 808CA64
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808CAC8
- ldr r5, _0808CACC
- ldr r3, [r5]
- ldr r6, _0808CAD0
- adds r0, r3, r6
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0x30
- bne _0808CAC2
- movs r2, 0x22
- ldrsh r0, [r1, r2]
- cmp r0, 0x38
- bne _0808CAC2
- ldr r1, _0808CAD4
- adds r0, r3, r1
- ldrb r1, [r0]
- ldr r2, _0808CAD8
- adds r0, r3, r2
- strb r1, [r0]
- ldr r1, [r5]
- subs r2, 0x3D
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1, r0
- adds r1, r6
- ldrb r1, [r1]
- bl sub_808F210
- ldr r2, _0808CADC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- ldr r0, _0808CAE0
- str r0, [r1]
-_0808CAC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CAC8: .4byte gSprites
-_0808CACC: .4byte gUnknown_0202FFB4
-_0808CAD0: .4byte 0x00000626
-_0808CAD4: .4byte 0x0000064a
-_0808CAD8: .4byte 0x0000064b
-_0808CADC: .4byte gTasks
-_0808CAE0: .4byte sub_808CAE4
- thumb_func_end sub_808CA64
-
- thumb_func_start sub_808CAE4
-sub_808CAE4: @ 808CAE4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808CB40
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0808CB50
- ldr r5, _0808CB44
- ldr r0, [r5]
- ldr r1, _0808CB48
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0808CB6C
- ldrb r0, [r4, 0x8]
- bl sub_808F250
- lsls r0, 24
- cmp r0, 0
- bne _0808CB6C
- bl sub_808E71C
- lsls r0, 24
- cmp r0, 0
- beq _0808CB6C
- ldr r0, [r5]
- ldr r2, _0808CB4C
- adds r1, r0, r2
- ldrh r1, [r1]
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r4, 0x8]
- bl sub_808F284
- b _0808CB6C
- .align 2, 0
-_0808CB40: .4byte gTasks
-_0808CB44: .4byte gUnknown_0202FFB4
-_0808CB48: .4byte 0x0000064a
-_0808CB4C: .4byte 0x0000060e
-_0808CB50:
- ldr r2, _0808CB74
- ldr r0, _0808CB78
- ldr r1, [r0]
- ldr r3, _0808CB7C
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r2, _0808CB80
- ldr r0, _0808CB84
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r0, _0808CB88
- str r0, [r4]
-_0808CB6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CB74: .4byte gUnknown_0202FFB8
-_0808CB78: .4byte gUnknown_0202FFB4
-_0808CB7C: .4byte 0x0000060e
-_0808CB80: .4byte gUnknown_0202FFBA
-_0808CB84: .4byte 0x0000062c
-_0808CB88: .4byte sub_808C608
- thumb_func_end sub_808CAE4
-
- thumb_func_start sub_808CB8C
-sub_808CB8C: @ 808CB8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808CBD0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r1, 0
- bne _0808CC32
- ldr r4, _0808CBD4
- ldr r2, [r4]
- ldr r3, _0808CBD8
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808CBE4
- subs r3, 0x41
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _0808CBDC
- adds r1, r2, r0
- movs r0, 0x40
- strb r0, [r1]
- ldr r0, _0808CBE0
- b _0808CC30
- .align 2, 0
-_0808CBD0: .4byte gTasks
-_0808CBD4: .4byte gUnknown_0202FFB4
-_0808CBD8: .4byte 0x0000064f
-_0808CBDC: .4byte 0x0000062c
-_0808CBE0: .4byte sub_808CCC4
-_0808CBE4:
- ldr r1, _0808CC38
- adds r0, r2, r1
- ldrh r1, [r0]
- ldr r3, _0808CC3C
- adds r0, r2, r3
- strb r1, [r0]
- ldr r1, [r4]
- movs r2, 0xC2
- lsls r2, 3
- adds r0, r1, r2
- ldrh r2, [r0]
- subs r3, 0x1E
- adds r0, r1, r3
- strh r2, [r0]
- ldr r2, _0808CC40
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r3, 0x4
- adds r1, r3
- strh r0, [r1]
- bl sub_806912C
- adds r1, r0, 0
- cmp r1, 0
- bne _0808CC1E
- ldr r0, [r4]
- ldr r2, _0808CC44
- adds r0, r2
- strh r1, [r0]
-_0808CC1E:
- ldr r0, [r4]
- movs r3, 0xC3
- lsls r3, 3
- adds r1, r0, r3
- ldrh r1, [r1]
- ldr r2, _0808CC48
- adds r0, r2
- strh r1, [r0]
- ldr r0, _0808CC4C
-_0808CC30:
- str r0, [r5]
-_0808CC32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CC38: .4byte 0x0000062a
-_0808CC3C: .4byte 0x0000062c
-_0808CC40: .4byte 0x00000614
-_0808CC44: .4byte 0x00000612
-_0808CC48: .4byte 0x00000616
-_0808CC4C: .4byte sub_808C608
- thumb_func_end sub_808CB8C
-
- thumb_func_start sub_808CC50
-sub_808CC50: @ 808CC50
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0808CCA4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808CC9C
- ldr r4, _0808CCA8
- ldr r5, _0808CCAC
- ldr r0, [r5]
- ldr r1, _0808CCB0
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r4, 0x19]
- bl sub_806912C
- cmp r0, 0
- bne _0808CC7A
- strb r0, [r4, 0x19]
-_0808CC7A:
- ldr r0, [r5]
- ldr r1, _0808CCB4
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r4, 0x18]
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, _0808CCB8
- bl SetMainCallback2
- ldr r0, _0808CCBC
- ldr r1, _0808CCC0
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0808CC9C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CCA4: .4byte gPaletteFade
-_0808CCA8: .4byte gSaveBlock2
-_0808CCAC: .4byte gUnknown_0202FFB4
-_0808CCB0: .4byte 0x00000612
-_0808CCB4: .4byte 0x00000616
-_0808CCB8: .4byte sub_805469C
-_0808CCBC: .4byte gMPlay_BGM
-_0808CCC0: .4byte 0x0000ffff
- thumb_func_end sub_808CC50
-
- thumb_func_start sub_808CCC4
-sub_808CCC4: @ 808CCC4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808CCFC
- ldr r1, [r0]
- ldr r0, _0808CD00
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x3
- bl sub_808D344
- lsls r0, 24
- cmp r0, 0
- beq _0808CCF4
- ldr r0, _0808CD04
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808CD08
- str r0, [r1]
-_0808CCF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CCFC: .4byte gUnknown_0202FFB4
-_0808CD00: .4byte 0x0000064c
-_0808CD04: .4byte gTasks
-_0808CD08: .4byte sub_808CD0C
- thumb_func_end sub_808CCC4
-
- thumb_func_start sub_808CD0C
-sub_808CD0C: @ 808CD0C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0808CD38
- ldr r1, _0808CD3C
- ldr r4, [r1]
- ldr r0, _0808CD40
- adds r3, r4, r0
- ldrh r0, [r3]
- strh r0, [r2]
- ldrh r0, [r3]
- movs r2, 0
- ldrsh r7, [r3, r2]
- adds r6, r1, 0
- cmp r7, 0
- beq _0808CD44
- subs r0, 0x8
- strh r0, [r3]
- b _0808CEDC
- .align 2, 0
-_0808CD38: .4byte REG_BG0VOFS
-_0808CD3C: .4byte gUnknown_0202FFB4
-_0808CD40: .4byte 0x00000654
-_0808CD44:
- ldr r2, _0808CDB4
- ldrh r1, [r2, 0x2E]
- movs r3, 0x1
- mov r8, r3
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _0808CDD0
- ldr r1, _0808CDB8
- adds r0, r4, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4, r0
- ldrb r0, [r0, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808CDD0
- bl sub_808E6BC
- ldr r3, _0808CDBC
- ldr r0, [r6]
- ldr r2, _0808CDC0
- adds r0, r2
- ldrh r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r0, r2, r3
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- mov r0, r8
- lsls r0, r1
- adds r3, 0x1C
- adds r2, r3
- ldr r1, _0808CDC4
- str r1, [r2]
- mvns r0, r0
- str r7, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808CDC8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808CDCC
- str r1, [r0]
- movs r0, 0x15
- bl PlaySE
- b _0808CEDC
- .align 2, 0
-_0808CDB4: .4byte gMain
-_0808CDB8: .4byte 0x0000060e
-_0808CDBC: .4byte gSprites
-_0808CDC0: .4byte 0x00000626
-_0808CDC4: .4byte sub_808EDB8
-_0808CDC8: .4byte gTasks
-_0808CDCC: .4byte sub_808D118
-_0808CDD0:
- ldrh r2, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0808CE20
- ldr r1, [r6]
- ldr r3, _0808CE10
- adds r0, r1, r3
- movs r2, 0
- strh r2, [r0]
- movs r0, 0xCA
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- ldr r1, _0808CE14
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0808CE18
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808CE1C
- str r1, [r0]
- movs r0, 0x5
- bl PlaySE
- b _0808CEDC
- .align 2, 0
-_0808CE10: .4byte 0x00000654
-_0808CE14: .4byte 0x00000652
-_0808CE18: .4byte gTasks
-_0808CE1C: .4byte sub_808CF48
-_0808CE20:
- movs r0, 0x4
- ands r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0808CE78
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl sub_8091E3C
- ldr r2, _0808CE68
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x8]
- ldr r0, _0808CE6C
- ldr r0, [r0]
- ldr r3, _0808CE70
- adds r0, r3
- strb r2, [r0]
- ldr r0, _0808CE74
- str r0, [r1]
- movs r0, 0x2
- bl PlaySE
- b _0808CEDC
- .align 2, 0
-_0808CE68: .4byte gTasks
-_0808CE6C: .4byte gUnknown_0202FFB4
-_0808CE70: .4byte 0x0000064f
-_0808CE74: .4byte sub_808CB8C
-_0808CE78:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0808CEB0
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808CEA8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808CEAC
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _0808CEDC
- .align 2, 0
-_0808CEA8: .4byte gTasks
-_0808CEAC: .4byte sub_808D214
-_0808CEB0:
- ldr r0, [r6]
- ldr r4, _0808CEE8
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xE
- bl sub_808E48C
- ldr r1, [r6]
- adds r4, r1, r4
- strh r0, [r4]
- ldr r0, _0808CEEC
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0808CEDC
- ldr r0, _0808CEF0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808CEF4
- str r0, [r1]
-_0808CEDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CEE8: .4byte 0x0000060e
-_0808CEEC: .4byte 0x0000062e
-_0808CEF0: .4byte gTasks
-_0808CEF4: .4byte sub_808CEF8
- thumb_func_end sub_808CD0C
-
- thumb_func_start sub_808CEF8
-sub_808CEF8: @ 808CEF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808CF34
- ldr r2, [r0]
- ldr r1, _0808CF38
- adds r0, r2, r1
- ldrb r0, [r0]
- ldr r3, _0808CF3C
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, 0x2
- adds r2, r3
- ldrb r2, [r2]
- bl sub_808E208
- lsls r0, 24
- cmp r0, 0
- beq _0808CF2C
- ldr r0, _0808CF40
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808CF44
- str r0, [r1]
-_0808CF2C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CF34: .4byte gUnknown_0202FFB4
-_0808CF38: .4byte 0x0000062f
-_0808CF3C: .4byte 0x00000634
-_0808CF40: .4byte gTasks
-_0808CF44: .4byte sub_808CD0C
- thumb_func_end sub_808CEF8
-
- thumb_func_start sub_808CF48
-sub_808CF48: @ 808CF48
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0808CF74
- ldr r1, _0808CF78
- ldr r4, [r1]
- ldr r0, _0808CF7C
- adds r3, r4, r0
- ldrh r0, [r3]
- strh r0, [r2]
- ldrh r2, [r3]
- movs r5, 0
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0x60
- beq _0808CF80
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r3]
- b _0808D106
- .align 2, 0
-_0808CF74: .4byte REG_BG0VOFS
-_0808CF78: .4byte gUnknown_0202FFB4
-_0808CF7C: .4byte 0x00000654
-_0808CF80:
- ldr r0, _0808CFA0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D078
- ldr r1, _0808CFA4
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _0808D008
- lsls r0, 2
- ldr r1, _0808CFA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808CFA0: .4byte gMain
-_0808CFA4: .4byte 0x00000652
-_0808CFA8: .4byte _0808CFAC
- .align 2, 0
-_0808CFAC:
- .4byte _0808D008
- .4byte _0808CFC0
- .4byte _0808CFDC
- .4byte _0808D024
- .4byte _0808D054
-_0808CFC0:
- ldr r1, [r5]
- ldr r4, _0808CFD4
- adds r2, r1, r4
- movs r0, 0
- strh r0, [r2]
- ldr r2, _0808CFD8
- adds r1, r2
- movs r0, 0x40
- strb r0, [r1]
- b _0808CFF8
- .align 2, 0
-_0808CFD4: .4byte 0x0000060e
-_0808CFD8: .4byte 0x0000062c
-_0808CFDC:
- ldr r2, [r5]
- ldr r0, _0808D014
- adds r3, r2, r0
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _0808D018
- adds r1, r2, r4
- strh r0, [r1]
- ldrh r0, [r3]
- lsls r0, 4
- adds r0, 0x30
- ldr r1, _0808D01C
- adds r2, r1
- strb r0, [r2]
-_0808CFF8:
- bl sub_808E82C
- ldr r0, [r5]
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xE
- bl sub_808E0CC
-_0808D008:
- ldr r2, _0808D020
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- orrs r0, r1
- strh r0, [r2, 0x2E]
- b _0808D078
- .align 2, 0
-_0808D014: .4byte 0x0000060c
-_0808D018: .4byte 0x0000060e
-_0808D01C: .4byte 0x0000062c
-_0808D020: .4byte gMain
-_0808D024:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808D04C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808D050
- str r1, [r0]
- movs r0, 0x34
- bl PlaySE
- b _0808D078
- .align 2, 0
-_0808D04C: .4byte gTasks
-_0808D050: .4byte sub_808D214
-_0808D054:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808D0A4
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808D0A8
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
-_0808D078:
- ldr r2, _0808D0AC
- ldrh r1, [r2, 0x2E]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0
- beq _0808D0B8
- ldr r0, _0808D0B0
- ldr r0, [r0]
- movs r2, 0xCA
- lsls r2, 3
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0808D0A4
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808D0B4
- str r1, [r0]
- b _0808D0D4
- .align 2, 0
-_0808D0A4: .4byte gTasks
-_0808D0A8: .4byte sub_808D2AC
-_0808D0AC: .4byte gMain
-_0808D0B0: .4byte gUnknown_0202FFB4
-_0808D0B4: .4byte sub_808CD0C
-_0808D0B8:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0808D0E4
- ldr r0, _0808D0DC
- ldr r0, [r0]
- ldr r3, _0808D0E0
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0
- beq _0808D0E4
- subs r0, 0x1
- strh r0, [r1]
-_0808D0D4:
- movs r0, 0x5
- bl PlaySE
- b _0808D106
- .align 2, 0
-_0808D0DC: .4byte gUnknown_0202FFB4
-_0808D0E0: .4byte 0x00000652
-_0808D0E4:
- ldrh r1, [r2, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0808D106
- ldr r0, _0808D110
- ldr r0, [r0]
- ldr r5, _0808D114
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0x3
- bhi _0808D106
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
-_0808D106:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D110: .4byte gUnknown_0202FFB4
-_0808D114: .4byte 0x00000652
- thumb_func_end sub_808CF48
-
- thumb_func_start sub_808D118
-sub_808D118: @ 808D118
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808D17C
- ldr r5, _0808D180
- ldr r3, [r5]
- ldr r6, _0808D184
- adds r0, r3, r6
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0x30
- bne _0808D176
- movs r2, 0x22
- ldrsh r0, [r1, r2]
- cmp r0, 0x38
- bne _0808D176
- ldr r1, _0808D188
- adds r0, r3, r1
- ldrb r1, [r0]
- ldr r2, _0808D18C
- adds r0, r3, r2
- strb r1, [r0]
- ldr r1, [r5]
- subs r2, 0x3D
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1, r0
- adds r1, r6
- ldrb r1, [r1]
- bl sub_808F210
- ldr r2, _0808D190
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- ldr r0, _0808D194
- str r0, [r1]
-_0808D176:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D17C: .4byte gSprites
-_0808D180: .4byte gUnknown_0202FFB4
-_0808D184: .4byte 0x00000626
-_0808D188: .4byte 0x0000064a
-_0808D18C: .4byte 0x0000064b
-_0808D190: .4byte gTasks
-_0808D194: .4byte sub_808D198
- thumb_func_end sub_808D118
-
- thumb_func_start sub_808D198
-sub_808D198: @ 808D198
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808D1F4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0808D204
- ldr r5, _0808D1F8
- ldr r0, [r5]
- ldr r1, _0808D1FC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0808D208
- ldrb r0, [r4, 0x8]
- bl sub_808F250
- lsls r0, 24
- cmp r0, 0
- bne _0808D208
- bl sub_808E71C
- lsls r0, 24
- cmp r0, 0
- beq _0808D208
- ldr r0, [r5]
- ldr r2, _0808D200
- adds r1, r0, r2
- ldrh r1, [r1]
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r4, 0x8]
- bl sub_808F284
- b _0808D208
- .align 2, 0
-_0808D1F4: .4byte gTasks
-_0808D1F8: .4byte gUnknown_0202FFB4
-_0808D1FC: .4byte 0x0000064a
-_0808D200: .4byte 0x0000060e
-_0808D204:
- ldr r0, _0808D210
- str r0, [r4]
-_0808D208:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D210: .4byte sub_808CCC4
- thumb_func_end sub_808D198
-
- thumb_func_start sub_808D214
-sub_808D214: @ 808D214
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808D288
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808D280
- ldr r4, _0808D28C
- ldr r0, [r4]
- ldr r2, _0808D290
- adds r1, r0, r2
- ldrh r1, [r1]
- ldr r3, _0808D294
- adds r0, r3
- strb r1, [r0]
- ldr r1, [r4]
- subs r2, 0x1A
- adds r0, r1, r2
- ldrh r2, [r0]
- subs r3, 0x1E
- adds r0, r1, r3
- strh r2, [r0]
- ldr r2, _0808D298
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r3, 0x4
- adds r1, r3
- strh r0, [r1]
- bl sub_806912C
- adds r1, r0, 0
- cmp r1, 0
- bne _0808D262
- ldr r0, [r4]
- ldr r2, _0808D29C
- adds r0, r2
- strh r1, [r0]
-_0808D262:
- ldr r0, [r4]
- movs r3, 0xC3
- lsls r3, 3
- adds r1, r0, r3
- ldrh r1, [r1]
- ldr r2, _0808D2A0
- adds r0, r2
- strh r1, [r0]
- ldr r1, _0808D2A4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808D2A8
- str r1, [r0]
-_0808D280:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D288: .4byte gPaletteFade
-_0808D28C: .4byte gUnknown_0202FFB4
-_0808D290: .4byte 0x0000062a
-_0808D294: .4byte 0x0000062c
-_0808D298: .4byte 0x00000614
-_0808D29C: .4byte 0x00000612
-_0808D2A0: .4byte 0x00000616
-_0808D2A4: .4byte gTasks
-_0808D2A8: .4byte sub_808C608
- thumb_func_end sub_808D214
-
- thumb_func_start sub_808D2AC
-sub_808D2AC: @ 808D2AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808D320
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808D318
- ldr r4, _0808D324
- ldr r0, [r4]
- ldr r2, _0808D328
- adds r1, r0, r2
- ldrh r1, [r1]
- ldr r3, _0808D32C
- adds r0, r3
- strb r1, [r0]
- ldr r1, [r4]
- subs r2, 0x1A
- adds r0, r1, r2
- ldrh r2, [r0]
- subs r3, 0x1E
- adds r0, r1, r3
- strh r2, [r0]
- ldr r2, _0808D330
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r3, 0x4
- adds r1, r3
- strh r0, [r1]
- bl sub_806912C
- adds r1, r0, 0
- cmp r1, 0
- bne _0808D2FA
- ldr r0, [r4]
- ldr r2, _0808D334
- adds r0, r2
- strh r1, [r0]
-_0808D2FA:
- ldr r0, [r4]
- movs r3, 0xC3
- lsls r3, 3
- adds r1, r0, r3
- ldrh r1, [r1]
- ldr r2, _0808D338
- adds r0, r2
- strh r1, [r0]
- ldr r1, _0808D33C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808D340
- str r1, [r0]
-_0808D318:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D320: .4byte gPaletteFade
-_0808D324: .4byte gUnknown_0202FFB4
-_0808D328: .4byte 0x0000062a
-_0808D32C: .4byte 0x0000062c
-_0808D330: .4byte 0x00000614
-_0808D334: .4byte 0x00000612
-_0808D338: .4byte 0x00000616
-_0808D33C: .4byte gTasks
-_0808D340: .4byte sub_808CC50
- thumb_func_end sub_808D2AC
-
- thumb_func_start sub_808D344
-sub_808D344: @ 808D344
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0808D364
- ldr r2, _0808D368
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x6
- bhi _0808D38C
- lsls r0, 2
- ldr r1, _0808D36C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808D364: .4byte gMain
-_0808D368: .4byte 0x0000043c
-_0808D36C: .4byte _0808D370
- .align 2, 0
-_0808D370:
- .4byte _0808D38C
- .4byte _0808D49C
- .4byte _0808D4D8
- .4byte _0808D50C
- .4byte _0808D564
- .4byte _0808D590
- .4byte _0808D610
-_0808D38C:
- ldr r0, _0808D3FC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0808D39E
- b _0808D634
-_0808D39E:
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0808D400
- ldr r0, [r4]
- ldr r1, _0808D404
- adds r0, r1
- strb r5, [r0]
- movs r0, 0
- bl sub_8091060
- ldr r1, _0808D408
- ldr r0, [r4]
- ldr r2, _0808D40C
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r0, _0808D410
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0808D414
- ldr r1, _0808D418
- bl LZ77UnCompVram
- ldr r0, _0808D41C
- ldr r1, _0808D420
- bl LZ77UnCompVram
- ldr r1, _0808D424
- add r0, sp, 0x4
- strh r6, [r0]
- ldr r0, _0808D428
- add r2, sp, 0x4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0808D42C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- cmp r5, 0
- bne _0808D438
- ldr r0, _0808D430
- ldr r1, _0808D434
- bl LZ77UnCompVram
- b _0808D440
- .align 2, 0
-_0808D3FC: .4byte gPaletteFade
-_0808D400: .4byte gUnknown_0202FFB4
-_0808D404: .4byte 0x0000064a
-_0808D408: .4byte REG_BG2VOFS
-_0808D40C: .4byte 0x0000062d
-_0808D410: .4byte gPokedexMenu_Gfx
-_0808D414: .4byte gUnknown_08E96738
-_0808D418: .4byte 0x06006800
-_0808D41C: .4byte gUnknown_08E9C6DC
-_0808D420: .4byte 0x06007800
-_0808D424: .4byte 0x06006000
-_0808D428: .4byte 0x040000d4
-_0808D42C: .4byte 0x81000280
-_0808D430: .4byte gUnknown_08E96888
-_0808D434: .4byte 0x06006500
-_0808D438:
- ldr r0, _0808D45C
- ldr r1, _0808D460
- bl LZ77UnCompVram
-_0808D440:
- bl ResetPaletteFade
- cmp r5, 0
- bne _0808D46C
- ldr r0, _0808D464
- ldr r1, [r0]
- ldr r0, _0808D468
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- b _0808D47A
- .align 2, 0
-_0808D45C: .4byte gUnknown_08E96994
-_0808D460: .4byte 0x06006500
-_0808D464: .4byte gUnknown_0202FFB4
-_0808D468: .4byte 0x0000064c
-_0808D46C:
- ldr r0, _0808D48C
- ldr r1, [r0]
- ldr r2, _0808D490
- adds r1, r2
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
-_0808D47A:
- strb r0, [r1]
- bl sub_808D640
- ldr r0, _0808D494
- ldr r1, _0808D498
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0808D634
- .align 2, 0
-_0808D48C: .4byte gUnknown_0202FFB4
-_0808D490: .4byte 0x0000064c
-_0808D494: .4byte gMain
-_0808D498: .4byte 0x0000043c
-_0808D49C:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0808D4C4
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0808D4C8
- bl LoadCompressedObjectPic
- ldr r0, _0808D4CC
- bl LoadSpritePalettes
- adds r0, r5, 0
- bl sub_808E978
- ldr r1, _0808D4D0
- ldr r2, _0808D4D4
- adds r1, r2
- b _0808D5E4
- .align 2, 0
-_0808D4C4: .4byte gReservedSpritePaletteCount
-_0808D4C8: .4byte gUnknown_083A05CC
-_0808D4CC: .4byte gUnknown_083A05DC
-_0808D4D0: .4byte gMain
-_0808D4D4: .4byte 0x0000043c
-_0808D4D8:
- ldr r4, _0808D4F8
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _0808D4FC
- ldr r1, _0808D500
- bl LZ77UnCompVram
- ldr r1, _0808D504
- ldr r0, _0808D508
- adds r1, r0
- b _0808D5E4
- .align 2, 0
-_0808D4F8: .4byte gWindowConfig_81E7048
-_0808D4FC: .4byte gUnknown_0839FA7C
-_0808D500: .4byte 0x0600ff80
-_0808D504: .4byte gMain
-_0808D508: .4byte 0x0000043c
-_0808D50C:
- cmp r5, 0
- bne _0808D524
- ldr r0, _0808D550
- ldr r1, [r0]
- ldr r2, _0808D554
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x4
- adds r1, r2
- ldrb r1, [r1]
- bl sub_808D690
-_0808D524:
- ldr r4, _0808D550
- ldr r0, [r4]
- ldr r1, _0808D558
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xE
- bl sub_808E0CC
- ldr r0, [r4]
- movs r2, 0xCA
- lsls r2, 3
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r0, r2
- strh r1, [r0]
- ldr r1, _0808D55C
- ldr r0, _0808D560
- adds r1, r0
- b _0808D5E4
- .align 2, 0
-_0808D550: .4byte gUnknown_0202FFB4
-_0808D554: .4byte 0x00000612
-_0808D558: .4byte 0x0000060e
-_0808D55C: .4byte gMain
-_0808D560: .4byte 0x0000043c
-_0808D564:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0808D584
- bl SetVBlankCallback
- ldr r1, _0808D588
- ldr r2, _0808D58C
- adds r1, r2
- b _0808D5E4
- .align 2, 0
-_0808D584: .4byte sub_808C0B8
-_0808D588: .4byte gMain
-_0808D58C: .4byte 0x0000043c
-_0808D590:
- ldr r1, _0808D5EC
- ldr r2, _0808D5F0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0808D5F4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0808D5F8
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _0808D5FC
- ldr r2, _0808D600
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x4
- ldr r2, _0808D604
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r2, _0808D608
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0808D60C
- adds r1, r3, r0
-_0808D5E4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0808D634
- .align 2, 0
-_0808D5EC: .4byte REG_WININ
-_0808D5F0: .4byte 0x00003f3f
-_0808D5F4: .4byte 0x00001d3f
-_0808D5F8: .4byte REG_WIN0H
-_0808D5FC: .4byte REG_BG3CNT
-_0808D600: .4byte 0x00000f03
-_0808D604: .4byte 0x00000d01
-_0808D608: .4byte 0x00009f40
-_0808D60C: .4byte 0x0000043c
-_0808D610:
- ldr r0, _0808D62C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0808D634
- ldr r1, _0808D630
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0x1
- b _0808D636
- .align 2, 0
-_0808D62C: .4byte gPaletteFade
-_0808D630: .4byte 0x0000043c
-_0808D634:
- movs r0, 0
-_0808D636:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808D344
-
- thumb_func_start sub_808D640
-sub_808D640: @ 808D640
- push {lr}
- ldr r0, _0808D658
- ldr r0, [r0]
- ldr r1, _0808D65C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D664
- ldr r0, _0808D660
- b _0808D66E
- .align 2, 0
-_0808D658: .4byte gUnknown_0202FFB4
-_0808D65C: .4byte 0x0000064c
-_0808D660: .4byte gUnknown_0839F67C + 0x2
-_0808D664:
- bl sub_806912C
- cmp r0, 0
- bne _0808D67C
- ldr r0, _0808D678
-_0808D66E:
- movs r1, 0x1
- movs r2, 0xBE
- bl LoadPalette
- b _0808D686
- .align 2, 0
-_0808D678: .4byte gPokedexMenu_Pal + 0x2
-_0808D67C:
- ldr r0, _0808D68C
- movs r1, 0x1
- movs r2, 0xBE
- bl LoadPalette
-_0808D686:
- pop {r0}
- bx r0
- .align 2, 0
-_0808D68C: .4byte gUnknown_0839F73C + 0x2
- thumb_func_end sub_808D640
-
- thumb_func_start sub_808D690
-sub_808D690: @ 808D690
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _0808D6C4
- ldr r0, [r0]
- ldr r1, _0808D6C8
- adds r0, r1
- movs r5, 0
- strh r5, [r0]
- cmp r4, 0
- beq _0808D6B8
- cmp r4, 0x1
- beq _0808D6CC
-_0808D6B8:
- mov r1, sp
- movs r0, 0xCA
- strh r0, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x2]
- b _0808D6E8
- .align 2, 0
-_0808D6C4: .4byte gUnknown_0202FFB4
-_0808D6C8: .4byte 0x0000060c
-_0808D6CC:
- bl sub_806912C
- cmp r0, 0
- beq _0808D6E0
- mov r0, sp
- movs r1, 0xC1
- lsls r1, 1
- strh r1, [r0]
- strh r5, [r0, 0x2]
- b _0808D6E8
-_0808D6E0:
- mov r0, sp
- movs r1, 0xCA
- strh r1, [r0]
- strh r4, [r0, 0x2]
-_0808D6E8:
- cmp r6, 0x5
- bls _0808D6EE
- b _0808DB70
-_0808D6EE:
- lsls r0, r6, 2
- ldr r1, _0808D6F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808D6F8: .4byte _0808D6FC
- .align 2, 0
-_0808D6FC:
- .4byte _0808D714
- .4byte _0808D888
- .4byte _0808D934
- .4byte _0808D9C4
- .4byte _0808DA5C
- .4byte _0808DAEC
-_0808D714:
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0808D7BC
- movs r4, 0
- mov r0, sp
- ldrh r0, [r0]
- cmp r4, r0
- blt _0808D728
- b _0808DB70
-_0808D728:
- mov r5, sp
- ldr r2, _0808D7B4
- mov r8, r2
- movs r3, 0x1
- mov r9, r3
-_0808D732:
- lsls r4, 16
- asrs r4, 16
- adds r7, r4, 0x1
- mov r10, r7
- lsls r0, r7, 16
- lsrs r6, r0, 16
- adds r0, r6, 0
- bl HoennToNationalOrder
- strh r0, [r5, 0x4]
- mov r2, r8
- ldr r1, [r2]
- lsls r4, 2
- adds r1, r4
- strh r0, [r1]
- ldrh r0, [r5, 0x4]
- movs r1, 0
- bl sub_8090D90
- mov r3, r8
- ldr r2, [r3]
- adds r2, r4
- mov r3, r9
- ands r3, r0
- ldrb r0, [r2, 0x2]
- movs r7, 0x2
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x2]
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- mov r1, r8
- ldr r3, [r1]
- adds r3, r4
- mov r2, r9
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3, 0x2]
- subs r7, 0x1
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x2]
- mov r0, r8
- ldr r1, [r0]
- adds r4, r1, r4
- ldrb r0, [r4, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808D7A6
- ldr r2, _0808D7B8
- adds r0, r1, r2
- mov r3, r10
- strh r3, [r0]
-_0808D7A6:
- adds r4, r6, 0
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r7, [r5]
- cmp r0, r7
- blt _0808D732
- b _0808DB70
- .align 2, 0
-_0808D7B4: .4byte gUnknown_0202FFB4
-_0808D7B8: .4byte 0x0000060c
-_0808D7BC:
- movs r4, 0
- movs r5, 0
- mov r10, r5
- mov r0, sp
- ldrh r0, [r0]
- cmp r4, r0
- blt _0808D7CC
- b _0808DB70
-_0808D7CC:
- mov r6, sp
- ldr r0, _0808D880
- mov r8, r0
- movs r1, 0x1
- mov r9, r1
-_0808D7D6:
- lsls r4, 16
- asrs r0, r4, 16
- adds r0, 0x1
- strh r0, [r6, 0x4]
- ldrh r0, [r6, 0x4]
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- adds r7, r4, 0
- cmp r0, 0
- beq _0808D7F2
- movs r2, 0x1
- mov r10, r2
-_0808D7F2:
- mov r3, r10
- cmp r3, 0
- beq _0808D86E
- mov r4, r8
- ldr r1, [r4]
- lsls r0, r5, 16
- asrs r5, r0, 16
- lsls r4, r5, 2
- adds r1, r4
- ldrh r0, [r6, 0x4]
- strh r0, [r1]
- ldrh r0, [r6, 0x4]
- movs r1, 0
- bl sub_8090D90
- mov r1, r8
- ldr r2, [r1]
- adds r2, r4
- mov r3, r9
- ands r3, r0
- mov r12, r3
- ldrb r0, [r2, 0x2]
- movs r3, 0x2
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- mov r1, r12
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrh r0, [r6, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- mov r2, r8
- ldr r3, [r2]
- adds r3, r4
- mov r2, r9
- ands r2, r0
- lsls r2, 1
- mov r12, r2
- ldrb r0, [r3, 0x2]
- movs r2, 0x3
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- mov r1, r12
- orrs r0, r1
- strb r0, [r3, 0x2]
- mov r3, r8
- ldr r2, [r3]
- adds r4, r2, r4
- ldrb r0, [r4, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808D868
- adds r1, r5, 0x1
- ldr r4, _0808D884
- adds r0, r2, r4
- strh r1, [r0]
-_0808D868:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0808D86E:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- asrs r0, 16
- ldrh r2, [r6]
- cmp r0, r2
- blt _0808D7D6
- b _0808DB70
- .align 2, 0
-_0808D880: .4byte gUnknown_0202FFB4
-_0808D884: .4byte 0x0000060c
-_0808D888:
- movs r4, 0
- mov r5, sp
- ldr r3, _0808D928
- mov r8, r3
- ldr r6, _0808D92C
- movs r7, 0x1
- mov r9, r7
-_0808D896:
- ldr r1, _0808D930
- lsls r4, 16
- asrs r0, r4, 15
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- adds r7, r4, 0
- ldrh r1, [r5]
- cmp r0, r1
- bhi _0808D914
- ldrh r0, [r5, 0x4]
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0808D914
- mov r3, r8
- ldr r2, [r3]
- adds r3, r2, r6
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r2, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- mov r4, r9
- orrs r0, r4
- strb r0, [r2, 0x2]
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- mov r1, r8
- ldr r3, [r1]
- adds r1, r3, r6
- ldrh r1, [r1]
- lsls r1, 2
- adds r3, r1
- mov r2, r9
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3, 0x2]
- movs r4, 0x3
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x2]
- mov r0, r8
- ldr r1, [r0]
- adds r1, r6
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0808D914:
- movs r2, 0x80
- lsls r2, 9
- adds r1, r7, r2
- lsrs r4, r1, 16
- movs r0, 0xCD
- lsls r0, 17
- cmp r1, r0
- ble _0808D896
- b _0808DB70
- .align 2, 0
-_0808D928: .4byte gUnknown_0202FFB4
-_0808D92C: .4byte 0x0000060c
-_0808D930: .4byte gPokedexOrder_Alphabetical
-_0808D934:
- ldr r4, _0808D9B0
- lsls r0, r4, 16
- mov r5, sp
- ldr r7, _0808D9B4
- ldr r6, _0808D9B8
-_0808D93E:
- ldr r1, _0808D9BC
- asrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- ldrh r3, [r5]
- cmp r0, r3
- bhi _0808D99E
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0808D99E
- ldr r2, [r7]
- adds r3, r2, r6
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r2, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r2, [r7]
- adds r0, r2, r6
- ldrh r0, [r0]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r1, [r7]
- adds r1, r6
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0808D99E:
- lsls r0, r4, 16
- ldr r4, _0808D9C0
- adds r0, r4
- lsrs r4, r0, 16
- lsls r0, r4, 16
- cmp r0, 0
- bge _0808D93E
- b _0808DB70
- .align 2, 0
-_0808D9B0: .4byte 0x00000181
-_0808D9B4: .4byte gUnknown_0202FFB4
-_0808D9B8: .4byte 0x0000060c
-_0808D9BC: .4byte gPokedexOrder_Weight
-_0808D9C0: .4byte 0xffff0000
-_0808D9C4:
- movs r4, 0
- mov r5, sp
- ldr r7, _0808DA4C
- mov r8, r7
- ldr r6, _0808DA50
- ldr r0, _0808DA54
- mov r9, r0
-_0808D9D2:
- ldr r1, _0808DA58
- lsls r4, 16
- asrs r0, r4, 15
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- adds r7, r4, 0
- ldrh r1, [r5]
- cmp r0, r1
- bhi _0808DA3A
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0808DA3A
- mov r3, r8
- ldr r2, [r3]
- adds r3, r2, r6
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r2, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- mov r4, r8
- ldr r2, [r4]
- adds r0, r2, r6
- ldrh r0, [r0]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r1, [r4]
- adds r1, r6
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0808DA3A:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r9
- ble _0808D9D2
- b _0808DB70
- .align 2, 0
-_0808DA4C: .4byte gUnknown_0202FFB4
-_0808DA50: .4byte 0x0000060c
-_0808DA54: .4byte 0x00000181
-_0808DA58: .4byte gPokedexOrder_Weight
-_0808DA5C:
- ldr r4, _0808DAD8
- lsls r0, r4, 16
- mov r5, sp
- ldr r7, _0808DADC
- ldr r6, _0808DAE0
-_0808DA66:
- ldr r1, _0808DAE4
- asrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r5]
- cmp r0, r2
- bhi _0808DAC6
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0808DAC6
- ldr r2, [r7]
- adds r3, r2, r6
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r2, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r2, [r7]
- adds r0, r2, r6
- ldrh r0, [r0]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r1, [r7]
- adds r1, r6
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0808DAC6:
- lsls r0, r4, 16
- ldr r3, _0808DAE8
- adds r0, r3
- lsrs r4, r0, 16
- lsls r0, r4, 16
- cmp r0, 0
- bge _0808DA66
- b _0808DB70
- .align 2, 0
-_0808DAD8: .4byte 0x00000181
-_0808DADC: .4byte gUnknown_0202FFB4
-_0808DAE0: .4byte 0x0000060c
-_0808DAE4: .4byte gPokedexOrder_Height
-_0808DAE8: .4byte 0xffff0000
-_0808DAEC:
- movs r4, 0
- mov r5, sp
- ldr r7, _0808DBD4
- mov r8, r7
- ldr r6, _0808DBD8
- ldr r0, _0808DBDC
- mov r9, r0
-_0808DAFA:
- ldr r1, _0808DBE0
- lsls r4, 16
- asrs r0, r4, 15
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- adds r7, r4, 0
- ldrh r1, [r5]
- cmp r0, r1
- bhi _0808DB62
- ldrh r0, [r5, 0x4]
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0808DB62
- mov r3, r8
- ldr r2, [r3]
- adds r3, r2, r6
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r2, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- mov r4, r8
- ldr r2, [r4]
- adds r0, r2, r6
- ldrh r0, [r0]
- lsls r0, 2
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r1, [r4]
- adds r1, r6
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0808DB62:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r9
- ble _0808DAFA
-_0808DB70:
- ldr r1, _0808DBD4
- ldr r0, [r1]
- ldr r2, _0808DBD8
- adds r0, r2
- ldrh r4, [r0]
- lsls r3, r4, 16
- asrs r0, r3, 16
- ldr r2, _0808DBDC
- cmp r0, r2
- bgt _0808DBC4
- adds r5, r1, 0
- movs r4, 0x2
- negs r4, r4
- mov r9, r4
- movs r7, 0x3
- negs r7, r7
- mov r8, r7
- adds r7, r2, 0
- ldr r0, _0808DBE4
- adds r6, r0, 0
-_0808DB98:
- ldr r1, [r5]
- asrs r3, 16
- lsls r4, r3, 2
- adds r1, r4
- ldrh r0, [r1]
- orrs r0, r6
- strh r0, [r1]
- ldrb r2, [r1, 0x2]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x2]
- ldr r1, [r5]
- adds r1, r4
- ldrb r2, [r1, 0x2]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x2]
- adds r3, 0x1
- lsls r3, 16
- asrs r0, r3, 16
- cmp r0, r7
- ble _0808DB98
-_0808DBC4:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DBD4: .4byte gUnknown_0202FFB4
-_0808DBD8: .4byte 0x0000060c
-_0808DBDC: .4byte 0x00000181
-_0808DBE0: .4byte gPokedexOrder_Height
-_0808DBE4: .4byte 0x0000ffff
- thumb_func_end sub_808D690
-
- thumb_func_start sub_808DBE8
-sub_808DBE8: @ 808DBE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- cmp r0, 0x1
- beq _0808DCE0
- cmp r0, 0x1
- ble _0808DC0C
- cmp r0, 0x2
- bne _0808DC0C
- b _0808DDD8
-_0808DC0C:
- subs r0, r1, 0x5
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- mov r9, r0
-_0808DC16:
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r10, r0
- ldr r1, _0808DC48
- cmp r5, r1
- bhi _0808DC36
- ldr r2, _0808DC4C
- mov r8, r2
- ldr r0, [r2]
- mov r3, r10
- asrs r6, r3, 14
- adds r0, r6
- ldrh r0, [r0]
- ldr r1, _0808DC50
- cmp r0, r1
- bne _0808DC54
-_0808DC36:
- mov r2, r9
- lsls r1, r2, 25
- lsrs r1, 24
- movs r0, 0x11
- adds r2, r7, 0
- bl sub_808E090
- b _0808DCC8
- .align 2, 0
-_0808DC48: .4byte 0x00000181
-_0808DC4C: .4byte gUnknown_0202FFB4
-_0808DC50: .4byte 0x0000ffff
-_0808DC54:
- mov r3, r9
- lsls r0, r3, 25
- lsrs r4, r0, 24
- movs r0, 0x11
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_808E090
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- ldrb r0, [r0, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808DCA6
- adds r0, r5, 0
- movs r1, 0x12
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DEB0
- mov r2, r8
- ldr r0, [r2]
- adds r0, r6
- ldrb r0, [r0, 0x2]
- lsls r0, 30
- lsrs r0, 31
- movs r1, 0x11
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DF88
- mov r3, r8
- ldr r0, [r3]
- adds r0, r6
- ldrh r0, [r0]
- movs r1, 0x17
- adds r2, r4, 0
- bl sub_808DFE4
- b _0808DCC8
-_0808DCA6:
- adds r0, r5, 0
- movs r1, 0x12
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DEB0
- movs r0, 0
- movs r1, 0x11
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DF88
- movs r0, 0
- movs r1, 0x17
- adds r2, r4, 0
- bl sub_808DFE4
-_0808DCC8:
- movs r0, 0x80
- lsls r0, 9
- add r0, r10
- lsrs r1, r0, 16
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0xA
- bls _0808DC16
- b _0808DEA2
-_0808DCE0:
- subs r0, r1, 0x5
- lsls r1, r0, 16
- lsrs r5, r1, 16
- ldr r0, _0808DD10
- ldr r2, _0808DD14
- cmp r5, r0
- bhi _0808DCFE
- adds r6, r2, 0
- ldr r3, [r6]
- asrs r4, r1, 14
- adds r0, r3, r4
- ldrh r1, [r0]
- ldr r0, _0808DD18
- cmp r1, r0
- bne _0808DD1C
-_0808DCFE:
- ldr r0, [r2]
- movs r1, 0xC6
- lsls r1, 3
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r1, 25
- b _0808DE16
- .align 2, 0
-_0808DD10: .4byte 0x00000181
-_0808DD14: .4byte gUnknown_0202FFB4
-_0808DD18: .4byte 0x0000ffff
-_0808DD1C:
- movs r1, 0xC6
- lsls r1, 3
- adds r0, r3, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r1, 25
- lsrs r1, 24
- movs r0, 0x11
- adds r2, r7, 0
- bl sub_808E090
- ldr r1, [r6]
- adds r0, r1, r4
- ldrb r0, [r0, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808DD8C
- movs r3, 0xC6
- lsls r3, 3
- adds r0, r1, r3
- movs r1, 0
- ldrsh r2, [r0, r1]
- lsls r2, 25
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x12
- adds r3, r7, 0
- bl sub_808DEB0
- ldr r1, [r6]
- adds r0, r1, r4
- ldrb r0, [r0, 0x2]
- lsls r0, 30
- lsrs r0, 31
- movs r2, 0xC6
- lsls r2, 3
- adds r1, r2
- movs r3, 0
- ldrsh r2, [r1, r3]
- lsls r2, 25
- lsrs r2, 24
- movs r1, 0x11
- adds r3, r7, 0
- bl sub_808DF88
- ldr r1, [r6]
- adds r0, r1, r4
- ldrh r0, [r0]
- movs r2, 0xC6
- lsls r2, 3
- adds r1, r2
- movs r3, 0
- ldrsh r2, [r1, r3]
- lsls r2, 25
- lsrs r2, 24
- b _0808DDD0
-_0808DD8C:
- movs r2, 0xC6
- lsls r2, 3
- adds r0, r1, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- lsls r2, 25
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x12
- adds r3, r7, 0
- bl sub_808DEB0
- ldr r0, [r6]
- movs r1, 0xC6
- lsls r1, 3
- adds r0, r1
- movs r3, 0
- ldrsh r2, [r0, r3]
- lsls r2, 25
- lsrs r2, 24
- movs r0, 0
- movs r1, 0x11
- adds r3, r7, 0
- bl sub_808DF88
- ldr r0, [r6]
- movs r1, 0xC6
- lsls r1, 3
- adds r0, r1
- movs r3, 0
- ldrsh r2, [r0, r3]
- lsls r2, 25
- lsrs r2, 24
- movs r0, 0
-_0808DDD0:
- movs r1, 0x17
- bl sub_808DFE4
- b _0808DEA2
-_0808DDD8:
- adds r0, r1, 0x5
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0808DE24
- mov r8, r0
- ldr r3, [r0]
- movs r2, 0xC6
- lsls r2, 3
- adds r0, r3, r2
- ldrh r0, [r0]
- adds r0, 0xA
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0808DDFE
- adds r0, r2, 0
- subs r0, 0x10
- lsls r0, 16
- lsrs r2, r0, 16
-_0808DDFE:
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _0808DE28
- cmp r5, r0
- bhi _0808DE14
- asrs r6, r1, 14
- adds r0, r3, r6
- ldrh r1, [r0]
- ldr r0, _0808DE2C
- cmp r1, r0
- bne _0808DE30
-_0808DE14:
- lsls r1, r2, 25
-_0808DE16:
- lsrs r1, 24
- movs r0, 0x11
- adds r2, r7, 0
- bl sub_808E090
- b _0808DEA2
- .align 2, 0
-_0808DE24: .4byte gUnknown_0202FFB4
-_0808DE28: .4byte 0x00000181
-_0808DE2C: .4byte 0x0000ffff
-_0808DE30:
- lsls r0, r2, 25
- lsrs r4, r0, 24
- movs r0, 0x11
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_808E090
- mov r3, r8
- ldr r0, [r3]
- adds r0, r6
- ldrb r0, [r0, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _0808DE80
- adds r0, r5, 0
- movs r1, 0x12
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DEB0
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- ldrb r0, [r0, 0x2]
- lsls r0, 30
- lsrs r0, 31
- movs r1, 0x11
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DF88
- mov r2, r8
- ldr r0, [r2]
- adds r0, r6
- ldrh r0, [r0]
- movs r1, 0x17
- adds r2, r4, 0
- bl sub_808DFE4
- b _0808DEA2
-_0808DE80:
- adds r0, r5, 0
- movs r1, 0x12
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DEB0
- movs r0, 0
- movs r1, 0x11
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_808DF88
- movs r0, 0
- movs r1, 0x17
- adds r2, r4, 0
- bl sub_808DFE4
-_0808DEA2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808DBE8
-
- thumb_func_start sub_808DEB0
-sub_808DEB0: @ 808DEB0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldr r1, _0808DF7C
- ldr r1, [r1]
- lsrs r0, 14
- adds r0, r1, r0
- ldrh r7, [r0]
- ldr r0, _0808DF80
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0808DEEE
- adds r0, r7, 0
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r7, r0, 16
-_0808DEEE:
- add r6, sp, 0x4
- movs r0, 0xFF
- lsls r0, 2
- strh r0, [r6]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- mov r4, sp
- adds r0, r7, 0
- movs r1, 0x64
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- mov r5, sp
- adds r0, r7, 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 r1, r8
- lsls r2, r1, 1
- mov r3, r10
- lsls r0, r3, 11
- mov r3, r9
- lsls r1, r3, 6
- adds r0, r1
- adds r2, r0
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r2, r0
- ldrh r0, [r6]
- strh r0, [r1]
- ldr r1, _0808DF84
- adds r2, r1
- ldrh r0, [r6, 0x2]
- strh r0, [r2]
- mov r1, r8
- subs r1, 0xF
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- mov r2, r9
- bl MenuPrint
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DF7C: .4byte gUnknown_0202FFB4
-_0808DF80: .4byte 0x00000612
-_0808DF84: .4byte 0x06000040
- thumb_func_end sub_808DEB0
-
- thumb_func_start sub_808DF88
-sub_808DF88: @ 808DF88
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 16
- lsrs r3, 16
- cmp r4, 0
- beq _0808DFB0
- mov r1, sp
- ldr r0, _0808DFAC
- strh r0, [r1]
- adds r0, 0x1
- strh r0, [r1, 0x2]
- b _0808DFB6
- .align 2, 0
-_0808DFAC: .4byte 0x000003fe
-_0808DFB0:
- mov r0, sp
- strh r4, [r0]
- strh r4, [r0, 0x2]
-_0808DFB6:
- lsls r2, r5, 1
- lsls r0, r3, 11
- lsls r1, r6, 6
- adds r0, r1
- adds r2, r0
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r2, r0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, _0808DFE0
- adds r2, r0
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DFE0: .4byte 0x06000040
- thumb_func_end sub_808DF88
-
- thumb_func_start sub_808DFE4
-sub_808DFE4: @ 808DFE4
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r4, 0
- movs r1, 0
-_0808DFF8:
- 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 _0808DFF8
- adds r0, r2, r4
- movs r1, 0xFF
- strb r1, [r0]
- adds r0, r3, 0
- bl NationalPokedexNumToSpecies
- adds r3, r0, 0
- cmp r3, 0
- beq _0808E058
- movs r4, 0
- ldr r2, _0808E054
- movs r0, 0xB
- adds r1, r3, 0
- muls r1, r0
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r5, 0x11
- lsls r6, 19
- cmp r0, 0xFF
- beq _0808E070
- adds r3, r1, 0
-_0808E032:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r4, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0808E070
- cmp r4, 0x9
- bls _0808E032
- b _0808E070
- .align 2, 0
-_0808E054: .4byte gSpeciesNames
-_0808E058:
- movs r4, 0
- subs r5, 0x11
- lsls r6, 19
- movs r1, 0xAE
-_0808E060:
- 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 _0808E060
-_0808E070:
- lsls r1, r5, 27
- movs r0, 0xFC
- lsls r0, 24
- adds r1, r0
- lsrs r1, 24
- lsrs r2, r6, 16
- mov r0, sp
- movs r3, 0
- bl sub_80729D8
- adds r0, r4, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808DFE4
-
- thumb_func_start sub_808E090
-sub_808E090: @ 808E090
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsls r2, 16
- movs r3, 0
- lsrs r2, 5
- lsrs r1, 18
- adds r4, r2, r1
- movs r2, 0
- movs r7, 0xC0
- lsls r7, 19
- ldr r6, _0808E0C8
-_0808E0AA:
- adds r0, r5, r3
- lsls r0, 1
- adds r0, r4
- adds r1, r0, r7
- strh r2, [r1]
- adds r0, r6
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _0808E0AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808E0C8: .4byte 0x06000040
- thumb_func_end sub_808E090
-
- thumb_func_start sub_808E0CC
-sub_808E0CC: @ 808E0CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- movs r3, 0
- ldr r0, _0808E1E0
- mov r8, r0
- mov r6, r8
- ldr r2, _0808E1E4
- ldr r1, _0808E1E8
- adds r4, r1, 0
-_0808E0E8:
- ldr r1, [r6]
- lsls r0, r3, 1
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0808E0E8
- mov r4, r8
- ldr r0, [r4]
- ldr r2, _0808E1EC
- adds r0, r2
- ldr r1, _0808E1E8
- strh r1, [r0]
- movs r0, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl sub_808DBE8
- ldr r1, _0808E1F0
- ldr r0, [r4]
- ldr r2, _0808E1F4
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl sub_808E888
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0808E1E8
- cmp r0, r4
- beq _0808E15A
- movs r1, 0x60
- movs r2, 0x50
- bl sub_808E8C8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _0808E1F8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0808E1FC
- str r2, [r1]
- adds r0, r3
- ldr r1, _0808E200
- strh r1, [r0, 0x38]
-_0808E15A:
- adds r0, r5, 0
- bl sub_808E888
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- beq _0808E18C
- movs r1, 0x60
- movs r2, 0x50
- bl sub_808E8C8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _0808E1F8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0808E1FC
- str r2, [r1]
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x38]
-_0808E18C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl sub_808E888
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- beq _0808E1C2
- movs r1, 0x60
- movs r2, 0x50
- bl sub_808E8C8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _0808E1F8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0808E1FC
- str r2, [r1]
- adds r0, r3
- movs r1, 0x20
- strh r1, [r0, 0x38]
-_0808E1C2:
- mov r1, r8
- ldr r0, [r1]
- movs r2, 0xC6
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0808E204
- adds r0, r1
- strh r2, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808E1E0: .4byte gUnknown_0202FFB4
-_0808E1E4: .4byte 0x0000061e
-_0808E1E8: .4byte 0x0000ffff
-_0808E1EC: .4byte 0x00000626
-_0808E1F0: .4byte REG_BG2VOFS
-_0808E1F4: .4byte 0x0000062d
-_0808E1F8: .4byte gSprites
-_0808E1FC: .4byte sub_808EE28
-_0808E200: .4byte 0x0000ffe0
-_0808E204: .4byte 0x00000632
- thumb_func_end sub_808E0CC
-
- thumb_func_start sub_808E208
-sub_808E208: @ 808E208
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0808E23C
- ldr r3, [r0]
- ldr r1, _0808E240
- adds r2, r3, r1
- ldrb r1, [r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _0808E22C
- b _0808E36C
-_0808E22C:
- subs r0, r1, 0x1
- strb r0, [r2]
- cmp r4, 0x1
- beq _0808E244
- cmp r4, 0x2
- beq _0808E2D8
- b _0808E34C
- .align 2, 0
-_0808E23C: .4byte gUnknown_0202FFB4
-_0808E240: .4byte 0x0000062e
-_0808E244:
- movs r3, 0
- ldr r2, _0808E2BC
- mov r12, r2
- ldr r4, _0808E2C0
- mov r8, r4
- adds r2, r7, 0
-_0808E250:
- ldr r0, [r2]
- lsls r1, r3, 1
- ldr r4, _0808E2C4
- adds r0, r4
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r12
- beq _0808E26E
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrh r0, [r1, 0x38]
- adds r0, r5
- strh r0, [r1, 0x38]
-_0808E26E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0808E250
- ldr r4, [r7]
- ldr r5, _0808E2C8
- adds r0, r4, r5
- ldrb r0, [r0]
- subs r0, r6, r0
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _0808E2CC
- ldr r0, _0808E2D0
- adds r1, r4, r0
- adds r5, 0x4
- adds r0, r4, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 4
- ldrb r1, [r1]
- adds r0, r1
- subs r0, r3
- strh r0, [r2]
- ldr r0, _0808E2D4
- adds r2, r4, r0
- movs r1, 0xC5
- lsls r1, 3
- adds r4, r1
- ldrb r1, [r4]
- ldrb r0, [r2]
- subs r0, r1
- strb r0, [r2]
- b _0808E34C
- .align 2, 0
-_0808E2BC: .4byte 0x0000ffff
-_0808E2C0: .4byte gSprites
-_0808E2C4: .4byte 0x0000061e
-_0808E2C8: .4byte 0x0000062e
-_0808E2CC: .4byte REG_BG2VOFS
-_0808E2D0: .4byte 0x0000062d
-_0808E2D4: .4byte 0x0000062c
-_0808E2D8:
- movs r3, 0
- ldr r2, _0808E350
- mov r12, r2
- ldr r4, _0808E354
- mov r8, r4
- adds r2, r7, 0
-_0808E2E4:
- ldr r0, [r2]
- lsls r1, r3, 1
- ldr r4, _0808E358
- adds r0, r4
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r12
- beq _0808E302
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrh r0, [r1, 0x38]
- subs r0, r5
- strh r0, [r1, 0x38]
-_0808E302:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0808E2E4
- ldr r4, [r7]
- ldr r5, _0808E35C
- adds r0, r4, r5
- ldrb r0, [r0]
- subs r0, r6, r0
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _0808E360
- ldr r0, _0808E364
- adds r1, r4, r0
- adds r5, 0x4
- adds r0, r4, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 4
- ldrb r1, [r1]
- adds r0, r1
- adds r0, r3
- strh r0, [r2]
- ldr r0, _0808E368
- adds r1, r4, r0
- movs r2, 0xC5
- lsls r2, 3
- adds r4, r2
- ldrb r0, [r4]
- ldrb r3, [r1]
- adds r0, r3
- strb r0, [r1]
-_0808E34C:
- movs r0, 0
- b _0808E386
- .align 2, 0
-_0808E350: .4byte 0x0000ffff
-_0808E354: .4byte gSprites
-_0808E358: .4byte 0x0000061e
-_0808E35C: .4byte 0x0000062e
-_0808E360: .4byte REG_BG2VOFS
-_0808E364: .4byte 0x0000062d
-_0808E368: .4byte 0x0000062c
-_0808E36C:
- ldr r2, _0808E390
- ldr r4, _0808E394
- adds r1, r3, r4
- movs r5, 0xC6
- lsls r5, 3
- adds r0, r3, r5
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 4
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2]
- movs r0, 0x1
-_0808E386:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808E390: .4byte REG_BG2VOFS
-_0808E394: .4byte 0x0000062d
- thumb_func_end sub_808E208
-
- thumb_func_start sub_808E398
-sub_808E398: @ 808E398
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r4, _0808E3C0
- ldr r0, [r4]
- movs r5, 0xC6
- lsls r5, 3
- adds r1, r0, r5
- ldrh r1, [r1]
- ldr r6, _0808E3C4
- adds r0, r6
- strh r1, [r0]
- cmp r2, 0x1
- beq _0808E3C8
- cmp r2, 0x2
- beq _0808E428
- b _0808E484
- .align 2, 0
-_0808E3C0: .4byte gUnknown_0202FFB4
-_0808E3C4: .4byte 0x00000632
-_0808E3C8:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl sub_808E888
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0808E414
- cmp r1, r0
- beq _0808E402
- adds r0, r1, 0
- movs r1, 0x60
- movs r2, 0x50
- bl sub_808E8C8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _0808E418
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0808E41C
- str r2, [r1]
- adds r0, r3
- ldr r1, _0808E420
- strh r1, [r0, 0x38]
-_0808E402:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _0808E424
- subs r0, r2, 0x1
- b _0808E482
- .align 2, 0
-_0808E414: .4byte 0x0000ffff
-_0808E418: .4byte gSprites
-_0808E41C: .4byte sub_808EE28
-_0808E420: .4byte 0x0000ffc0
-_0808E424:
- movs r0, 0xF
- b _0808E482
-_0808E428:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl sub_808E888
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0808E474
- cmp r1, r0
- beq _0808E462
- adds r0, r1, 0
- movs r1, 0x60
- movs r2, 0x50
- bl sub_808E8C8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _0808E478
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0808E47C
- str r2, [r1]
- adds r0, r3
- movs r1, 0x40
- strh r1, [r0, 0x38]
-_0808E462:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrh r2, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0xE
- bgt _0808E480
- adds r0, r2, 0x1
- b _0808E482
- .align 2, 0
-_0808E474: .4byte 0x0000ffff
-_0808E478: .4byte gSprites
-_0808E47C: .4byte sub_808EE28
-_0808E480:
- movs r0, 0
-_0808E482:
- strh r0, [r1]
-_0808E484:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808E398
-
- 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
-
- thumb_func_start sub_8093110
-sub_8093110: @ 8093110
- push {lr}
- bl sub_80932AC
- ldr r0, _08093128
- bl SetMainCallback2
- ldr r0, _0809312C
- adds r0, 0x9C
- movs r1, 0x2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08093128: .4byte sub_8093174
-_0809312C: .4byte 0x02000000
- thumb_func_end sub_8093110
-
- thumb_func_start sub_8093130
-sub_8093130: @ 8093130
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80932E4
- ldr r0, _08093164
- bl SetMainCallback2
- ldr r2, _08093168
- ldr r3, _0809316C
- ldr r0, _08093170
- lsls r4, 2
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x1A]
- adds r2, 0x9C
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093164: .4byte sub_8093174
-_08093168: .4byte 0x02000000
-_0809316C: .4byte gLinkPlayers
-_08093170: .4byte gUnknown_02029818
- thumb_func_end sub_8093130
-
- thumb_func_start sub_8093174
-sub_8093174: @ 8093174
- push {lr}
- ldr r0, _0809318C
- ldr r1, _08093190
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _08093232
- lsls r0, 2
- ldr r1, _08093194
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809318C: .4byte gMain
-_08093190: .4byte 0x0000043c
-_08093194: .4byte _08093198
- .align 2, 0
-_08093198:
- .4byte _080931BC
- .4byte _080931C6
- .4byte _080931CC
- .4byte _080931D2
- .4byte _080931DC
- .4byte _080931EC
- .4byte _08093200
- .4byte _08093206
- .4byte _08093220
-_080931BC:
- bl sub_8093534
- bl sub_8093688
- b _0809320A
-_080931C6:
- bl sub_8093598
- b _0809320A
-_080931CC:
- bl sub_80935EC
- b _0809320A
-_080931D2:
- bl sub_8093610
- bl sub_80937A4
- b _0809320A
-_080931DC:
- bl sub_80937BC
- ldr r1, _080931F8
- ldr r0, _080931FC
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080931EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _08093232
- b _0809320A
- .align 2, 0
-_080931F8: .4byte gMain
-_080931FC: .4byte 0x0000043c
-_08093200:
- bl sub_80937F0
- b _0809320A
-_08093206:
- bl sub_80937D8
-_0809320A:
- ldr r1, _08093218
- ldr r0, _0809321C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08093232
- .align 2, 0
-_08093218: .4byte gMain
-_0809321C: .4byte 0x0000043c
-_08093220:
- bl nullsub_15
- bl sub_8093800
- bl sub_8093550
- ldr r0, _08093238
- bl SetMainCallback2
-_08093232:
- pop {r0}
- bx r0
- .align 2, 0
-_08093238: .4byte sub_809323C
- thumb_func_end sub_8093174
-
- thumb_func_start sub_809323C
-sub_809323C: @ 809323C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809323C
-
- thumb_func_start sub_8093254
-sub_8093254: @ 8093254
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r2, _0809329C
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- strb r0, [r2, 0x6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809327E
- movs r0, 0
- strb r0, [r2, 0x6]
- ldrb r0, [r2, 0x5]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2, 0x5]
-_0809327E:
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _08093298
- ldr r1, _080932A0
- ldr r0, _080932A4
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _080932A8
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08093298:
- pop {r0}
- bx r0
- .align 2, 0
-_0809329C: .4byte 0x02000000
-_080932A0: .4byte 0x040000d4
-_080932A4: .4byte gUnknown_03004DE0
-_080932A8: .4byte 0x800000a0
- thumb_func_end sub_8093254
-
- thumb_func_start sub_80932AC
-sub_80932AC: @ 80932AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080932DC
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080932E0
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- adds r0, 0xC
- adds r1, r4, 0
- bl StoreWordInTwoHalfwords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080932DC: .4byte nullsub_60
-_080932E0: .4byte gTasks
- thumb_func_end sub_80932AC
-
- thumb_func_start sub_80932E4
-sub_80932E4: @ 80932E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809331C
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08093320
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r4, [r0, 0xA]
- adds r0, 0xC
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809331C: .4byte nullsub_60
-_08093320: .4byte gTasks
- thumb_func_end sub_80932E4
-
- thumb_func_start sub_8093324
-sub_8093324: @ 8093324
- push {r4,r5,lr}
- ldr r0, _0809336C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093370
- adds r4, r1, r0
- ldr r5, _08093374
- ldrh r0, [r4, 0x8]
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r5, 0
- adds r1, 0x60
- bl LoadWordFromTwoHalfwords
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0809337C
- ldr r2, _08093378
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- adds r0, r5, 0
- adds r0, 0x64
- movs r2, 0x38
- bl memcpy
- b _08093384
- .align 2, 0
-_0809336C: .4byte nullsub_60
-_08093370: .4byte gTasks
-_08093374: .4byte 0x02000000
-_08093378: .4byte gUnknown_0202FFC0
-_0809337C:
- adds r0, r5, 0
- adds r0, 0x64
- bl sub_8093390
-_08093384:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8093324
-
- thumb_func_start nullsub_60
-nullsub_60: @ 809338C
- bx lr
- thumb_func_end nullsub_60
-
- thumb_func_start sub_8093390
-sub_8093390: @ 8093390
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080934A4
- ldrb r0, [r6, 0x8]
- strb r0, [r5]
- ldrh r0, [r6, 0xE]
- strh r0, [r5, 0x10]
- ldrb r0, [r6, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0x1
- bl sub_8053108
- adds r4, r0, 0
- movs r0, 0xA
- bl sub_8053108
- cmp r0, 0
- bne _080933B6
- movs r4, 0
-_080933B6:
- lsrs r0, r4, 16
- strh r0, [r5, 0x6]
- lsrs r0, r4, 8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x8]
- ands r4, r1
- strh r4, [r5, 0xA]
- ldr r0, _080934A8
- bl FlagGet
- strb r0, [r5, 0x2]
- bl sub_8090FC0
- strb r0, [r5, 0x3]
- bl GetPokedexSeenCount
- strh r0, [r5, 0xC]
- ldrb r1, [r6, 0xB]
- lsls r1, 8
- ldrb r0, [r6, 0xA]
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r7, _080934AC
- movs r0, 0x17
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x14]
- movs r0, 0x18
- adds r1, r7, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x16]
- ldr r1, _080934B0
- movs r0, 0x23
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1C]
- ldr r4, _080934B4
- movs r0, 0x22
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x1E]
- movs r0, 0x15
- adds r1, r4, 0
- bl sav12_xor_get_clamped_above
- strh r0, [r5, 0x20]
- movs r1, 0xAE
- lsls r1, 3
- adds r0, r6, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x18]
- ldr r2, _080934B8
- adds r1, r6, r2
- ldrh r1, [r1]
- strh r1, [r5, 0x1A]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bls _08093436
- strh r7, [r5, 0x18]
-_08093436:
- ldrh r0, [r5, 0x1A]
- cmp r0, r7
- bls _0809343E
- strh r7, [r5, 0x1A]
-_0809343E:
- movs r4, 0
- bl sub_80C4D50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0809344E
- movs r4, 0x1
-_0809344E:
- strb r4, [r5, 0x4]
- ldr r0, _080934BC
- movs r2, 0x92
- lsls r2, 3
- adds r1, r0, r2
- ldr r1, [r1]
- str r1, [r5, 0x24]
- movs r2, 0
- adds r6, r5, 0
- adds r6, 0x30
- adds r3, r5, 0
- adds r3, 0x28
- ldr r1, _080934C0
- adds r4, r0, r1
-_0809346A:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0809346A
- movs r2, 0
- adds r3, r6, 0
- ldr r4, _080934A4
-_08093484:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08093484
- adds r0, r5, 0
- bl sub_80934F4
- strb r0, [r5, 0x1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080934A4: .4byte gSaveBlock2
-_080934A8: .4byte 0x00000801
-_080934AC: .4byte 0x0000270f
-_080934B0: .4byte 0x000003e7
-_080934B4: .4byte 0x0000ffff
-_080934B8: .4byte 0x00000572
-_080934BC: .4byte gSaveBlock1
-_080934C0: .4byte 0x00002b1c
- thumb_func_end sub_8093390
-
- thumb_func_start sub_80934C4
-sub_80934C4: @ 80934C4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080934D8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080934D8: .4byte gUnknown_0202FFC0
- thumb_func_end sub_80934C4
-
- thumb_func_start sav12_xor_get_clamped_above
-sav12_xor_get_clamped_above: @ 80934DC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8053108
- cmp r0, r4
- bls _080934EE
- adds r0, r4, 0
-_080934EE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sav12_xor_get_clamped_above
-
- thumb_func_start sub_80934F4
-sub_80934F4: @ 80934F4
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- bne _08093506
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _08093508
-_08093506:
- movs r2, 0x1
-_08093508:
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _08093514
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093514:
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x31
- bls _08093520
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08093520:
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809352C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0809352C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80934F4
-
- thumb_func_start sub_8093534
-sub_8093534: @ 8093534
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8093534
-
- thumb_func_start sub_8093550
-sub_8093550: @ 8093550
- push {r4,lr}
- ldr r0, _08093588
- bl SetVBlankCallback
- ldr r3, _0809358C
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08093590
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08093594
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093588: .4byte sub_8093254
-_0809358C: .4byte 0x04000208
-_08093590: .4byte 0x04000200
-_08093594: .4byte REG_DISPSTAT
- thumb_func_end sub_8093550
-
- thumb_func_start sub_8093598
-sub_8093598: @ 8093598
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _080935E4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080935E8
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080935B6:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _080935B6
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080935E4: .4byte 0x040000d4
-_080935E8: .4byte 0x81000800
- thumb_func_end sub_8093598
-
- thumb_func_start sub_80935EC
-sub_80935EC: @ 80935EC
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08093608
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809360C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08093608: .4byte 0x040000d4
-_0809360C: .4byte 0x81000200
- thumb_func_end sub_80935EC
-
- thumb_func_start sub_8093610
-sub_8093610: @ 8093610
- push {r4,r5,lr}
- ldr r5, _08093664
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08093668
- strh r1, [r2]
- ldr r3, _0809366C
- strh r1, [r3]
- ldr r4, _08093670
- strh r1, [r4]
- ldr r0, _08093674
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08093678
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _0809367C
- adds r0, r1, 0
- strh r0, [r2]
- ldr r1, _08093680
- adds r0, r1, 0
- strh r0, [r3]
- ldr r1, _08093684
- adds r0, r1, 0
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093664: .4byte REG_BG0CNT
-_08093668: .4byte REG_BG1CNT
-_0809366C: .4byte REG_BG2CNT
-_08093670: .4byte REG_BG3CNT
-_08093674: .4byte REG_BG0HOFS
-_08093678: .4byte 0x00001e08
-_0809367C: .4byte 0x00000801
-_08093680: .4byte 0x00000902
-_08093684: .4byte 0x00000a03
- thumb_func_end sub_8093610
-
- thumb_func_start sub_8093688
-sub_8093688: @ 8093688
- push {r4-r6,lr}
- bl sub_8093324
- ldr r2, _080936D0
- movs r1, 0
- strb r1, [r2]
- strb r1, [r2, 0x3]
- strb r1, [r2, 0x4]
- adds r0, r2, 0
- adds r0, 0x65
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- strb r1, [r2, 0x5]
- strb r1, [r2, 0x6]
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x8C
-_080936AE:
- lsls r0, r4, 4
- adds r0, r6
- lsls r1, r4, 1
- adds r1, r5, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080936AE
- bl sub_80936D4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080936D0: .4byte 0x02000000
- thumb_func_end sub_8093688
-
- thumb_func_start sub_80936D4
-sub_80936D4: @ 80936D4
- push {r4-r6,lr}
- ldr r4, _08093798
- movs r0, 0
- strb r0, [r4, 0x7]
- strb r0, [r4, 0x8]
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0xB]
- strb r0, [r4, 0xC]
- strb r0, [r4, 0xD]
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r4, 0
- adds r0, 0x66
- ldrb r0, [r0]
- cmp r0, 0
- beq _08093704
- ldrb r0, [r4, 0x7]
- adds r0, 0x1
- strb r0, [r4, 0x7]
-_08093704:
- adds r0, r4, 0
- adds r0, 0x6A
- ldrh r0, [r0]
- cmp r0, 0
- bne _08093714
- ldr r0, [r4, 0x6C]
- cmp r0, 0
- beq _0809371A
-_08093714:
- ldrb r0, [r4, 0x8]
- adds r0, 0x1
- strb r0, [r4, 0x8]
-_0809371A:
- ldr r1, _08093798
- ldr r0, [r1, 0x78]
- cmp r0, 0
- beq _08093728
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
-_08093728:
- ldr r0, [r1, 0x7C]
- cmp r0, 0
- beq _08093734
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08093734:
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093744
- ldrb r0, [r1, 0xB]
- adds r0, 0x1
- strb r0, [r1, 0xB]
-_08093744:
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093754
- ldrb r0, [r1, 0xC]
- adds r0, 0x1
- strb r0, [r1, 0xC]
-_08093754:
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r0, [r0]
- cmp r0, 0
- beq _08093764
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08093764:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08093792
- movs r5, 0
- ldr r4, _0809379C
- adds r6, r1, 0
- adds r6, 0xE
-_08093772:
- lsls r0, r4, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08093788
- adds r1, r5, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08093788:
- adds r4, 0x1
- adds r5, 0x1
- ldr r0, _080937A0
- cmp r4, r0
- bls _08093772
-_08093792:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093798: .4byte 0x02000000
-_0809379C: .4byte 0x00000807
-_080937A0: .4byte 0x0000080e
- thumb_func_end sub_80936D4
-
- thumb_func_start sub_80937A4
-sub_80937A4: @ 80937A4
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80937A4
-
- thumb_func_start sub_80937BC
-sub_80937BC: @ 80937BC
- push {r4,lr}
- ldr r4, _080937D4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl MultistepInitMenuWindowBegin
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080937D4: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80937BC
-
- thumb_func_start sub_80937D8
-sub_80937D8: @ 80937D8
- push {lr}
- bl sub_8093E04
- bl sub_8093E28
- bl sub_8093F64
- bl sub_8093DAC
- pop {r0}
- bx r0
- thumb_func_end sub_80937D8
-
- thumb_func_start sub_80937F0
-sub_80937F0: @ 80937F0
- push {lr}
- bl sub_8093EF8
- pop {r0}
- bx r0
- thumb_func_end sub_80937F0
-
- thumb_func_start nullsub_15
-nullsub_15: @ 80937FC
- bx lr
- thumb_func_end nullsub_15
-
- thumb_func_start sub_8093800
-sub_8093800: @ 8093800
- push {lr}
- bl sub_809380C
- pop {r0}
- bx r0
- thumb_func_end sub_8093800
-
- thumb_func_start sub_809380C
-sub_809380C: @ 809380C
- push {r4,lr}
- ldr r4, _08093828
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093828: .4byte sub_809382C
- thumb_func_end sub_809380C
-
- thumb_func_start sub_809382C
-sub_809382C: @ 809382C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08093858
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _0809385C
- ldr r5, _08093860
-_0809383E:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0809383E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093858: .4byte gUnknown_083B5EBC
-_0809385C: .4byte 0x02000000
-_08093860: .4byte gTasks
- thumb_func_end sub_809382C
-
- thumb_func_start sub_8093864
-sub_8093864: @ 8093864
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _080938A0
- ldr r2, _080938A4
- ldrb r1, [r2, 0x11]
- movs r0, 0x1
- ands r0, r1
- movs r5, 0
- strb r0, [r4, 0x5]
- ldrb r0, [r2, 0x12]
- strb r0, [r4, 0x6]
- bl sub_80939A4
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080938A0: .4byte 0x02000000
-_080938A4: .4byte gSaveBlock2
- thumb_func_end sub_8093864
-
- thumb_func_start sub_80938A8
-sub_80938A8: @ 80938A8
- push {lr}
- ldr r0, _080938C4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080938BE
- ldr r1, _080938C8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080938BE:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080938C4: .4byte gPaletteFade
-_080938C8: .4byte 0x02000000
- thumb_func_end sub_80938A8
-
- thumb_func_start rfu_NI_stopReceivingData
-rfu_NI_stopReceivingData: @ 80938CC
- push {lr}
- ldr r0, _080938E4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080938EC
- ldr r1, _080938E8
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0x1
- b _08093914
- .align 2, 0
-_080938E4: .4byte gMain
-_080938E8: .4byte 0x02000000
-_080938EC:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093912
- ldr r2, _08093900
- ldrb r1, [r2, 0x3]
- cmp r1, 0
- beq _08093904
- movs r0, 0x5
- b _0809390C
- .align 2, 0
-_08093900: .4byte 0x02000000
-_08093904:
- movs r0, 0x1
- eors r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3
-_0809390C:
- strb r0, [r2]
- movs r0, 0x1
- b _08093914
-_08093912:
- movs r0, 0
-_08093914:
- pop {r1}
- bx r1
- thumb_func_end rfu_NI_stopReceivingData
-
- thumb_func_start sub_8093918
-sub_8093918: @ 8093918
- push {lr}
- bl sub_8093A28
- movs r0, 0x36
- bl PlaySE
- ldr r1, _08093934
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093934: .4byte 0x02000000
- thumb_func_end sub_8093918
-
- thumb_func_start sub_8093938
-sub_8093938: @ 8093938
- push {lr}
- bl sub_8093A48
- lsls r0, 24
- cmp r0, 0
- beq _0809394A
- ldr r1, _08093950
- movs r0, 0x2
- strb r0, [r1]
-_0809394A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093950: .4byte 0x02000000
- thumb_func_end sub_8093938
-
- thumb_func_start sub_8093954
-sub_8093954: @ 8093954
- push {lr}
- sub sp, 0x4
- bl sub_80939C0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809397C
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_0809397C: .4byte 0x02000000
- thumb_func_end sub_8093954
-
- thumb_func_start sub_8093980
-sub_8093980: @ 8093980
- push {lr}
- ldr r0, _0809399C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08093996
- ldr r0, _080939A0
- ldr r0, [r0, 0x60]
- bl SetMainCallback2
-_08093996:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809399C: .4byte gPaletteFade
-_080939A0: .4byte 0x02000000
- thumb_func_end sub_8093980
-
- thumb_func_start sub_80939A4
-sub_80939A4: @ 80939A4
- push {lr}
- ldr r0, _080939B8
- movs r1, 0
- bl CreateTask
- ldr r0, _080939BC
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080939B8: .4byte sub_80939DC
-_080939BC: .4byte gWindowConfig_81E6DC4
- thumb_func_end sub_80939A4
-
- thumb_func_start sub_80939C0
-sub_80939C0: @ 80939C0
- push {lr}
- ldr r0, _080939D8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080939D4
- bl DestroyTask
-_080939D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080939D8: .4byte sub_80939DC
- thumb_func_end sub_80939C0
-
- thumb_func_start sub_80939DC
-sub_80939DC: @ 80939DC
- push {lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08093A20
- adds r2, r1, r0
- ldr r0, _08093A24
- ldrb r1, [r0, 0x5]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r1, r0
- beq _08093A04
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x8]
-_08093A04:
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- mov r0, sp
- bl sub_8094250
- mov r0, sp
- movs r1, 0xA
- movs r2, 0xC
- bl MenuPrint
- add sp, 0x20
- pop {r0}
- bx r0
- .align 2, 0
-_08093A20: .4byte gTasks
-_08093A24: .4byte 0x02000000
- thumb_func_end sub_80939DC
-
- thumb_func_start sub_8093A28
-sub_8093A28: @ 8093A28
- push {r4,lr}
- ldr r4, _08093A44
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A44: .4byte sub_8093A68
- thumb_func_end sub_8093A28
-
- thumb_func_start sub_8093A48
-sub_8093A48: @ 8093A48
- push {lr}
- ldr r0, _08093A5C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08093A60
- movs r0, 0
- b _08093A62
- .align 2, 0
-_08093A5C: .4byte sub_8093A68
-_08093A60:
- movs r0, 0x1
-_08093A62:
- pop {r1}
- bx r1
- thumb_func_end sub_8093A48
-
- thumb_func_start sub_8093A68
-sub_8093A68: @ 8093A68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08093A98
- ldr r2, _08093A9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08093A7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08093A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08093A98: .4byte gUnknown_083B5ED8
-_08093A9C: .4byte gTasks
- thumb_func_end sub_8093A68
-
- thumb_func_start sub_8093AA0
-sub_8093AA0: @ 8093AA0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08093AE0
- movs r1, 0
- strb r1, [r0, 0x4]
- bl dp12_8087EA4
- movs r1, 0
- ldr r0, _08093AE4
- ldr r2, _08093AE8
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
-_08093ABA:
- strh r2, [r0]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- bls _08093ABA
- ldr r0, _08093AEC
- bl SetHBlankCallback
- ldr r1, _08093AE0
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093AE0: .4byte 0x02000000
-_08093AE4: .4byte gUnknown_03004DE0
-_08093AE8: .4byte 0x0000fffc
-_08093AEC: .4byte sub_8093D7C
- thumb_func_end sub_8093AA0
-
- thumb_func_start sub_8093AF0
-sub_8093AF0: @ 8093AF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093BFC
- movs r0, 0
- strb r0, [r1, 0x4]
- mov r2, r8
- ldrh r0, [r2, 0xA]
- adds r0, 0x3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _08093B18
- movs r0, 0x4F
- strh r0, [r2, 0xA]
-_08093B18:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093C00
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsls r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093B74
- ldr r2, _08093C04
- mov r12, r2
- ldr r0, _08093C08
- adds r4, r0, 0
-_08093B5C:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093B5C
-_08093B74:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093BAE
- ldr r0, _08093C04
- mov r9, r0
- ldr r4, _08093C08
- mov r12, r4
- adds r4, r1, 0
-_08093B8E:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- subs r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093B8E
-_08093BAE:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093BD4
- ldr r4, _08093C04
- ldr r0, _08093C08
- adds r2, r1, r0
-_08093BBE:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093BBE
-_08093BD4:
- movs r0, 0x1
- ldr r1, _08093BFC
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x4A
- ble _08093BEA
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093BEA:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093BFC: .4byte 0x02000000
-_08093C00: .4byte 0xffff0000
-_08093C04: .4byte gUnknown_03004DE0
-_08093C08: .4byte 0x0000fffc
- thumb_func_end sub_8093AF0
-
- thumb_func_start sub_8093C0C
-sub_8093C0C: @ 8093C0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80939C0
- bl sub_8093DAC
- ldr r0, _08093C34
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- bne _08093C24
- bl sub_80939A4
-_08093C24:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08093C34: .4byte 0x02000000
- thumb_func_end sub_8093C0C
-
- thumb_func_start sub_8093C38
-sub_8093C38: @ 8093C38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- ldr r1, _08093D40
- movs r2, 0
- strb r2, [r1, 0x4]
- ldrh r0, [r0, 0xA]
- subs r0, 0x3
- mov r3, r8
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _08093C5C
- strh r2, [r3, 0xA]
-_08093C5C:
- mov r4, r8
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r0, 0xA0
- subs r0, r7
- mov r9, r0
- subs r4, r0, r7
- negs r0, r7
- lsls r6, r0, 16
- movs r0, 0xA0
- lsls r0, 16
- adds r1, r4, 0
- bl __udivsi3
- adds r5, r0, 0
- ldr r1, _08093D44
- adds r5, r1
- adds r0, r5, 0
- muls r0, r4
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl __udivsi3
- str r0, [sp]
- lsrs r5, 1
- movs r3, 0
- cmp r3, r7
- bcs _08093CB8
- ldr r2, _08093D48
- mov r12, r2
- ldr r0, _08093D4C
- adds r4, r0, 0
-_08093CA0:
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r0, 1
- add r1, r12
- subs r2, r4, r0
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r7
- bcc _08093CA0
-_08093CB8:
- lsls r2, r3, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r4, r10
- lsrs r7, r4, 16
- cmp r2, r0
- bge _08093CF2
- ldr r0, _08093D48
- mov r9, r0
- ldr r3, _08093D4C
- mov r12, r3
- adds r4, r1, 0
-_08093CD2:
- lsrs r1, r6, 16
- adds r6, r5
- ldr r0, [sp]
- adds r5, r0
- asrs r2, 16
- lsls r0, r2, 1
- add r0, r9
- add r1, r12
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08093CD2
-_08093CF2:
- adds r1, r7, 0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x9F
- bgt _08093D18
- ldr r4, _08093D48
- ldr r0, _08093D4C
- adds r2, r1, r0
-_08093D02:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x9F
- ble _08093D02
-_08093D18:
- movs r0, 0x1
- ldr r1, _08093D40
- strb r0, [r1, 0x4]
- mov r2, r8
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bgt _08093D2E
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08093D2E:
- movs r0, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093D40: .4byte 0x02000000
-_08093D44: .4byte 0xffff0000
-_08093D48: .4byte gUnknown_03004DE0
-_08093D4C: .4byte 0x0000fffc
- thumb_func_end sub_8093C38
-
- thumb_func_start sub_8093D50
-sub_8093D50: @ 8093D50
- push {lr}
- ldr r1, _08093D74
- movs r0, 0
- strb r0, [r1, 0x4]
- bl SetHBlankCallback
- bl sub_8093E04
- ldr r0, _08093D78
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08093D74: .4byte 0x02000000
-_08093D78: .4byte sub_8093A68
- thumb_func_end sub_8093D50
-
- thumb_func_start sub_8093D7C
-sub_8093D7C: @ 8093D7C
- ldr r1, _08093DA0
- ldr r0, _08093DA4
- ldrh r2, [r0]
- movs r0, 0xFF
- ands r0, r2
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08093DA8
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093DA0: .4byte gUnknown_03004DE0
-_08093DA4: .4byte REG_VCOUNT
-_08093DA8: .4byte REG_BG0VOFS
- thumb_func_end sub_8093D7C
-
- thumb_func_start sub_8093DAC
-sub_8093DAC: @ 8093DAC
- push {lr}
- ldr r0, _08093DBC
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _08093DC0
- bl sub_8093DEC
- b _08093DC4
- .align 2, 0
-_08093DBC: .4byte 0x02000000
-_08093DC0:
- bl sub_8093DC8
-_08093DC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8093DAC
-
- thumb_func_start sub_8093DC8
-sub_8093DC8: @ 8093DC8
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F14
- bl sub_8093F80
- bl sub_8093FD0
- bl sub_8094038
- bl sub_8094140
- pop {r0}
- bx r0
- thumb_func_end sub_8093DC8
-
- thumb_func_start sub_8093DEC
-sub_8093DEC: @ 8093DEC
- push {lr}
- bl MenuZeroFillScreen
- bl sub_80940E4
- bl sub_8093F48
- bl sub_8094188
- pop {r0}
- bx r0
- thumb_func_end sub_8093DEC
-
- thumb_func_start sub_8093E04
-sub_8093E04: @ 8093E04
- ldr r0, _08093E20
- ldr r2, _08093E24
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- movs r2, 0
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08093E20: .4byte REG_BG0VOFS
-_08093E24: .4byte 0x0000fffc
- thumb_func_end sub_8093E04
-
- thumb_func_start sub_8093E28
-sub_8093E28: @ 8093E28
- push {r4-r7,lr}
- bl sub_8093EA0
- ldr r0, _08093E84
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r3, _08093E88
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0xA4
- lsls r5, 5
- ldr r1, _08093E8C
- ldr r6, _08093E90
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08093E4E:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08093E4E
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08093E94
- ldr r2, _08093E98
- ldr r0, _08093E8C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08093E9C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093E84: .4byte gUnknown_083B5F6C
-_08093E88: .4byte gMenuTrainerCard_Gfx
-_08093E8C: .4byte 0x040000d4
-_08093E90: .4byte 0x80000800
-_08093E94: .4byte gBadgesTiles
-_08093E98: .4byte 0x06001480
-_08093E9C: .4byte 0x80000200
- thumb_func_end sub_8093E28
-
- thumb_func_start sub_8093EA0
-sub_8093EA0: @ 8093EA0
- push {r4,lr}
- ldr r1, _08093EE4
- ldr r4, _08093EE8
- ldrb r0, [r4, 0x2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08093EEC
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08093EF0
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x64
- ldrb r0, [r4]
- cmp r0, 0
- beq _08093EDC
- ldr r0, _08093EF4
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
-_08093EDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093EE4: .4byte gUnknown_083B5EF8
-_08093EE8: .4byte 0x02000000
-_08093EEC: .4byte gBadgesPalette
-_08093EF0: .4byte gUnknown_083B5F4C
-_08093EF4: .4byte gUnknown_083B5F0C
- thumb_func_end sub_8093EA0
-
- thumb_func_start sub_8093EF8
-sub_8093EF8: @ 8093EF8
- push {lr}
- ldr r0, _08093F0C
- adds r0, 0x64
- ldrb r0, [r0]
- ldr r2, _08093F10
- movs r1, 0x50
- bl sub_8085A5C
- pop {r0}
- bx r0
- .align 2, 0
-_08093F0C: .4byte 0x02000000
-_08093F10: .4byte 0x06001880
- thumb_func_end sub_8093EF8
-
- thumb_func_start sub_8093F14
-sub_8093F14: @ 8093F14
- push {lr}
- sub sp, 0x8
- ldr r0, _08093F3C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _08093F40
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, _08093F44
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08093F3C: .4byte gUnknown_083B5EEC
-_08093F40: .4byte 0x02000000
-_08093F44: .4byte 0x06004800
- thumb_func_end sub_8093F14
-
- thumb_func_start sub_8093F48
-sub_8093F48: @ 8093F48
- push {lr}
- ldr r0, _08093F5C
- ldr r1, _08093F60
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F5C: .4byte gUnknown_08E8CFC0
-_08093F60: .4byte 0x06004800
- thumb_func_end sub_8093F48
-
- thumb_func_start sub_8093F64
-sub_8093F64: @ 8093F64
- push {lr}
- ldr r0, _08093F78
- ldr r1, _08093F7C
- movs r2, 0xA0
- lsls r2, 1
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08093F78: .4byte gUnknown_08E8D9C0
-_08093F7C: .4byte 0x06005000
- thumb_func_end sub_8093F64
-
- thumb_func_start sub_8093F80
-sub_8093F80: @ 8093F80
- push {r4-r7,lr}
- movs r5, 0xC4
- ldr r7, _08093FCC
- movs r1, 0x5
- movs r0, 0xA0
- lsls r0, 7
- adds r6, r0, 0
-_08093F8E:
- movs r0, 0x13
- lsls r3, r1, 16
- asrs r4, r3, 11
-_08093F94:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r7
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1A
- ble _08093F94
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _08093F8E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08093FCC: .4byte 0x06004000
- thumb_func_end sub_8093F80
-
- thumb_func_start sub_8093FD0
-sub_8093FD0: @ 8093FD0
- push {r4-r6,lr}
- ldr r4, _0809402C
- movs r2, 0xF
- ldr r0, _08094030
- ldrb r0, [r0, 0x2]
- adds r0, 0xF
- cmp r2, r0
- bge _08094002
- movs r6, 0xC0
- lsls r6, 1
- ldr r1, _08094034
- adds r5, r1, 0
- adds r3, r0, 0
-_08093FEA:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- strh r5, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, r3
- blt _08093FEA
-_08094002:
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- bgt _08094024
- movs r3, 0xC0
- lsls r3, 1
- movs r2, 0
-_08094010:
- asrs r0, r1, 16
- lsls r1, r0, 1
- adds r1, r4
- adds r1, r3
- strh r2, [r1]
- adds r0, 0x1
- lsls r1, r0, 16
- asrs r0, r1, 16
- cmp r0, 0x12
- ble _08094010
-_08094024:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809402C: .4byte 0x06004000
-_08094030: .4byte 0x02000000
-_08094034: .4byte 0x0000408f
- thumb_func_end sub_8093FD0
-
- thumb_func_start sub_8094038
-sub_8094038: @ 8094038
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _080940D0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080940C2
- ldr r0, _080940D4
- mov r9, r0
- movs r0, 0
- movs r2, 0x4
- adds r1, 0xE
- mov r8, r1
- ldr r7, _080940D8
- movs r1, 0xC0
- lsls r1, 6
- adds r6, r1, 0
- adds r1, r7, 0x6
- mov r12, r1
-_08094060:
- lsls r0, 16
- asrs r4, r0, 16
- mov r1, r8
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r5, r2, 16
- cmp r0, 0
- beq _080940AE
- asrs r1, r5, 15
- add r1, r9
- movs r2, 0xF0
- lsls r2, 2
- adds r3, r1, r2
- lsls r2, r4, 3
- adds r0, r2, r7
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940DC
- adds r3, r1, r0
- adds r0, r7, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- adds r3, r1, r0
- adds r0, r7, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- orrs r0, r6
- strh r0, [r3]
- ldr r0, _080940E0
- adds r1, r0
- add r2, r12
- ldrh r0, [r2]
- orrs r0, r6
- strh r0, [r1]
-_080940AE:
- adds r1, r4, 0x1
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r5, r2
- lsrs r2, r0, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _08094060
-_080940C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080940D0: .4byte 0x02000000
-_080940D4: .4byte 0x06004000
-_080940D8: .4byte gUnknown_083B5F8C
-_080940DC: .4byte 0x000003c2
-_080940E0: .4byte 0x00000402
- thumb_func_end sub_8094038
-
- thumb_func_start sub_80940E4
-sub_80940E4: @ 80940E4
- push {r4,lr}
- movs r2, 0
- ldr r1, _08094108
- movs r4, 0
- ldr r3, _0809410C
-_080940EE:
- strh r4, [r1]
- lsls r0, r2, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- adds r1, 0x2
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r3
- ble _080940EE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094108: .4byte 0x06004000
-_0809410C: .4byte 0x000003ff
- thumb_func_end sub_80940E4
-
- thumb_func_start sub_8094110
-sub_8094110: @ 8094110
- push {r4-r6,lr}
- ldr r6, _0809413C
- movs r2, 0x3
- movs r5, 0xA0
- lsls r5, 2
- movs r3, 0x1
- movs r4, 0xB0
- lsls r4, 2
-_08094120:
- lsls r0, r2, 1
- adds r0, r6
- adds r1, r0, r5
- strh r3, [r1]
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x10
- bls _08094120
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809413C: .4byte 0x06004800
- thumb_func_end sub_8094110
-
- thumb_func_start sub_8094140
-sub_8094140: @ 8094140
- push {r4,r5,lr}
- ldr r0, _0809417C
- bl BasicInitMenuWindow
- ldr r4, _08094180
- ldr r5, _08094184
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x5
- bl MenuPrint
- bl sub_80941D8
- bl sub_8094200
- bl sub_8094218
- bl sub_809429C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809417C: .4byte gWindowConfig_81E6DC4
-_08094180: .4byte gStringVar1
-_08094184: .4byte 0x02000094
- thumb_func_end sub_8094140
-
- thumb_func_start sub_8094188
-sub_8094188: @ 8094188
- push {lr}
- ldr r0, _080941D0
- bl BasicInitMenuWindow
- bl sub_80942F8
- bl sub_8094334
- bl sub_80943C4
- bl sub_8094428
- bl sub_8094498
- bl sub_80944E8
- bl sub_8094538
- ldr r0, _080941D4
- bl BasicInitMenuWindow
- bl sub_8094354
- bl sub_80943E4
- bl sub_8094448
- bl sub_80944B8
- bl sub_8094508
- bl sub_8094558
- pop {r0}
- bx r0
- .align 2, 0
-_080941D0: .4byte gWindowConfig_81E6DC4
-_080941D4: .4byte gWindowConfig_81E6DE0
- thumb_func_end sub_8094188
-
- thumb_func_start sub_80941D8
-sub_80941D8: @ 80941D8
- push {lr}
- sub sp, 0x8
- ldr r0, _080941FC
- adds r0, 0x72
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x14
- movs r2, 0x2
- bl MenuPrint
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080941FC: .4byte 0x02000000
- thumb_func_end sub_80941D8
-
- thumb_func_start sub_8094200
-sub_8094200: @ 8094200
- push {lr}
- ldr r0, _08094214
- adds r0, 0x88
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x8
- bl sub_80B7AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08094214: .4byte 0x02000000
- thumb_func_end sub_8094200
-
- thumb_func_start sub_8094218
-sub_8094218: @ 8094218
- push {lr}
- sub sp, 0x10
- ldr r1, _0809422C
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _08094230
- bl sub_8094110
- b _0809424A
- .align 2, 0
-_0809422C: .4byte 0x02000000
-_08094230:
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x10
- movs r2, 0xA
- bl sub_8072B4C
-_0809424A:
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end sub_8094218
-
- thumb_func_start sub_8094250
-sub_8094250: @ 8094250
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r0, _08094294
- ldrh r4, [r0, 0xE]
- ldrb r2, [r0, 0x10]
- ldr r1, _08094298
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _08094272
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r4, [r0]
- adds r0, 0x2
- ldrh r2, [r0]
-_08094272:
- lsls r3, 16
- asrs r3, 16
- mov r0, sp
- adds r1, r4, 0
- bl FormatPlayTime
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C74
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094294: .4byte gSaveBlock2
-_08094298: .4byte 0x02000000
- thumb_func_end sub_8094250
-
- thumb_func_start sub_809429C
-sub_809429C: @ 809429C
- push {r4-r6,lr}
- ldr r6, _080942F0
- ldrb r0, [r6, 0x1]
- cmp r0, 0
- beq _080942EA
- ldr r0, _080942F4
- adds r1, r6, 0
- adds r1, 0x20
- bl StringCopy
- movs r5, 0
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x30
- bl StringCopy
- ldr r4, _080942F4
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xE
- bl MenuPrint
- adds r1, r6, 0
- adds r1, 0x40
- adds r0, r4, 0
- bl StringCopy
- strb r5, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- adds r1, 0x50
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x10
- bl MenuPrint
-_080942EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080942F0: .4byte 0x02000000
-_080942F4: .4byte gStringVar1
- thumb_func_end sub_809429C
-
- thumb_func_start sub_80942F8
-sub_80942F8: @ 80942F8
- push {r4,r5,lr}
- ldr r4, _08094328
- ldr r5, _0809432C
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r1, _08094330
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1C
- movs r2, 0x2
- bl sub_8072B4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094328: .4byte gStringVar1
-_0809432C: .4byte 0x02000094
-_08094330: .4byte gOtherText_TrainersTrainerCard
- thumb_func_end sub_80942F8
-
- thumb_func_start sub_8094334
-sub_8094334: @ 8094334
- push {lr}
- ldr r0, _0809434C
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _08094348
- ldr r0, _08094350
- movs r1, 0x3
- movs r2, 0x5
- bl MenuPrint
-_08094348:
- pop {r0}
- bx r0
- .align 2, 0
-_0809434C: .4byte 0x02000000
-_08094350: .4byte gOtherText_FirstHOF
- thumb_func_end sub_8094334
-
- thumb_func_start sub_8094354
-sub_8094354: @ 8094354
- push {r4,r5,lr}
- ldr r5, _080943B8
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- beq _080943B0
- ldr r2, _080943BC
- adds r0, r5, 0
- adds r0, 0x6A
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- ldr r4, _080943C0
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6C
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- adds r1, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r5, 0
- adds r0, 0x6E
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080943BC
- movs r1, 0x1C
- movs r2, 0x5
- bl sub_8072B4C
-_080943B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080943B8: .4byte 0x02000000
-_080943BC: .4byte gStringVar1
-_080943C0: .4byte gUnknown_083B5EF4
- thumb_func_end sub_8094354
-
- thumb_func_start sub_80943C4
-sub_80943C4: @ 80943C4
- push {lr}
- ldr r0, _080943DC
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080943D8
- ldr r0, _080943E0
- movs r1, 0x3
- movs r2, 0x7
- bl MenuPrint
-_080943D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080943DC: .4byte 0x02000000
-_080943E0: .4byte gOtherText_LinkCableBattles
- thumb_func_end sub_80943C4
-
- thumb_func_start sub_80943E4
-sub_80943E4: @ 80943E4
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094424
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809441C
- adds r0, r4, 0
- adds r0, 0x78
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x16
- movs r2, 0x7
- bl sub_8072B4C
- adds r0, r4, 0
- adds r0, 0x7A
- ldrh r1, [r0]
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x7
- bl sub_8072B4C
-_0809441C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094424: .4byte 0x02000000
- thumb_func_end sub_80943E4
-
- thumb_func_start sub_8094428
-sub_8094428: @ 8094428
- push {lr}
- ldr r0, _08094440
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0809443C
- ldr r0, _08094444
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
-_0809443C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094440: .4byte 0x02000000
-_08094444: .4byte gOtherText_BattleTowerWinRecord
- thumb_func_end sub_8094428
-
- thumb_func_start sub_8094448
-sub_8094448: @ 8094448
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08094494
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0809448C
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x70
- movs r2, 0x78
- movs r3, 0
- bl sub_80729D8
- adds r0, r4, 0
- adds r0, 0x7E
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- mov r0, sp
- movs r1, 0x95
- movs r2, 0x78
- movs r3, 0
- bl sub_80729D8
-_0809448C:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094494: .4byte 0x02000000
- thumb_func_end sub_8094448
-
- thumb_func_start sub_8094498
-sub_8094498: @ 8094498
- push {lr}
- ldr r0, _080944B0
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- beq _080944AC
- ldr r0, _080944B4
- movs r1, 0x3
- movs r2, 0xD
- bl MenuPrint
-_080944AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080944B0: .4byte 0x02000000
-_080944B4: .4byte gOtherText_ContestRecord
- thumb_func_end sub_8094498
-
- thumb_func_start sub_80944B8
-sub_80944B8: @ 80944B8
- push {lr}
- sub sp, 0x8
- ldr r1, _080944E4
- ldrb r0, [r1, 0xB]
- cmp r0, 0
- beq _080944DE
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xD
- bl sub_8072B4C
-_080944DE:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080944E4: .4byte 0x02000000
- thumb_func_end sub_80944B8
-
- thumb_func_start sub_80944E8
-sub_80944E8: @ 80944E8
- push {lr}
- ldr r0, _08094500
- ldrb r0, [r0, 0xC]
- cmp r0, 0
- beq _080944FC
- ldr r0, _08094504
- movs r1, 0x3
- movs r2, 0xB
- bl MenuPrint
-_080944FC:
- pop {r0}
- bx r0
- .align 2, 0
-_08094500: .4byte 0x02000000
-_08094504: .4byte gOtherText_MixingRecord
- thumb_func_end sub_80944E8
-
- thumb_func_start sub_8094508
-sub_8094508: @ 8094508
- push {lr}
- sub sp, 0x8
- ldr r1, _08094534
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- beq _0809452E
- adds r0, r1, 0
- adds r0, 0x82
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0xB
- bl sub_8072B4C
-_0809452E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094534: .4byte 0x02000000
- thumb_func_end sub_8094508
-
- thumb_func_start sub_8094538
-sub_8094538: @ 8094538
- push {lr}
- ldr r0, _08094550
- ldrb r0, [r0, 0xD]
- cmp r0, 0
- beq _0809454C
- ldr r0, _08094554
- movs r1, 0x3
- movs r2, 0x9
- bl MenuPrint
-_0809454C:
- pop {r0}
- bx r0
- .align 2, 0
-_08094550: .4byte 0x02000000
-_08094554: .4byte gOtherText_TradeRecord
- thumb_func_end sub_8094538
-
- thumb_func_start sub_8094558
-sub_8094558: @ 8094558
- push {lr}
- sub sp, 0x8
- ldr r1, _08094584
- ldrb r0, [r1, 0xD]
- cmp r0, 0
- beq _0809457E
- adds r0, r1, 0
- adds r0, 0x84
- ldrh r1, [r0]
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x1C
- movs r2, 0x9
- bl sub_8072B4C
-_0809457E:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08094584: .4byte 0x02000000
- thumb_func_end sub_8094558
-
- thumb_func_start unref_sub_8094588
-unref_sub_8094588: @ 8094588
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r4, _080945B4
- ldr r0, _080945B8
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _0809459E
- ldr r4, _080945BC
-_0809459E:
- lsls r1, r3, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080945B4: .4byte gOtherText_Boy
-_080945B8: .4byte gSaveBlock2
-_080945BC: .4byte gOtherText_Girl
- thumb_func_end unref_sub_8094588
-
- thumb_func_start sub_80945C0
-sub_80945C0: @ 80945C0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r6, 0xC
- bl sub_809473C
- lsls r0, 24
- cmp r0, 0
- beq _080945D8
- movs r6, 0xD
-_080945D8:
- ldr r0, _08094658
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809465C
- lsls r0, r5, 24
- lsrs r0, 24
- lsls r1, r4, 24
- lsrs r1, 24
- adds r2, r5, r6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0
- adds r3, 0xB
- lsls r3, 24
- lsrs r3, 24
- bl MenuDrawTextWindow
- lsls r0, r5, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r5, r0, 16
- asrs r0, 16
- lsls r1, r4, 16
- movs r2, 0x80
- lsls r2, 9
- adds r1, r2
- lsrs r4, r1, 16
- asrs r1, 16
- bl sub_8094778
- lsls r5, 16
- asrs r5, 16
- lsls r1, r4, 16
- asrs r4, r1, 16
- movs r0, 0x80
- lsls r0, 10
- adds r1, r0
- asrs r1, 16
- adds r0, r5, 0
- bl sub_8094740
- adds r1, r4, 0x4
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80947B0
- adds r1, r4, 0x6
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80947F8
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094844
- b _080946C2
- .align 2, 0
-_08094658: .4byte 0x00000801
-_0809465C:
- lsls r0, r5, 24
- lsrs r0, 24
- lsls r1, r4, 24
- lsrs r1, 24
- adds r2, r5, r6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0
- adds r3, 0x9
- lsls r3, 24
- lsrs r3, 24
- bl MenuDrawTextWindow
- lsls r0, r5, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r5, r0, 16
- asrs r0, 16
- lsls r1, r4, 16
- movs r2, 0x80
- lsls r2, 9
- adds r1, r2
- lsrs r4, r1, 16
- asrs r1, 16
- bl sub_8094778
- lsls r5, 16
- asrs r5, 16
- lsls r1, r4, 16
- asrs r4, r1, 16
- movs r0, 0x80
- lsls r0, 10
- adds r1, r0
- asrs r1, 16
- adds r0, r5, 0
- bl sub_8094740
- adds r1, r4, 0x4
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80947B0
- adds r4, 0x6
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8094844
-_080946C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80945C0
-
- thumb_func_start sub_80946C8
-sub_80946C8: @ 80946C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- lsls r1, 16
- lsrs r5, r1, 16
- mov r8, r5
- movs r6, 0xC
- bl sub_809473C
- lsls r0, 24
- cmp r0, 0
- beq _080946E8
- movs r6, 0xD
-_080946E8:
- ldr r0, _08094710
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08094714
- lsls r0, r4, 24
- lsrs r0, 24
- lsls r1, r5, 24
- lsrs r1, 24
- adds r2, r4, r6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xB
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- b _08094730
- .align 2, 0
-_08094710: .4byte 0x00000801
-_08094714:
- lsls r0, r7, 24
- lsrs r0, 24
- mov r2, r8
- lsls r1, r2, 24
- lsrs r1, 24
- adds r2, r7, r6
- lsls r2, 24
- lsrs r2, 24
- mov r3, r8
- adds r3, 0x9
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
-_08094730:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80946C8
-
- thumb_func_start sub_809473C
-sub_809473C: @ 809473C
- movs r0, 0x1
- bx lr
- thumb_func_end sub_809473C
-
- thumb_func_start sub_8094740
-sub_8094740: @ 8094740
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08094770
- lsls r1, r4, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r2, r5, 0
- bl MenuPrint
- ldr r0, _08094774
- adds r4, 0xC
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094770: .4byte gOtherText_Player
-_08094774: .4byte gSaveBlock2
- thumb_func_end sub_8094740
-
- thumb_func_start sub_8094778
-sub_8094778: @ 8094778
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080947AC
- ldrb r1, [r0, 0x14]
- mov r0, sp
- bl sub_80FBFF8
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuPrint
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080947AC: .4byte gMapHeader
- thumb_func_end sub_8094778
-
- thumb_func_start sub_80947B0
-sub_80947B0: @ 80947B0
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _080947F4
- lsls r1, r4, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r2, r5, 0
- bl MenuPrint
- bl GetBadgeCount
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r4, 0xC
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080947F4: .4byte gOtherText_Badges
- thumb_func_end sub_80947B0
-
- thumb_func_start sub_80947F8
-sub_80947F8: @ 80947F8
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08094840
- lsls r1, r4, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r2, r5, 0
- bl MenuPrint
- bl GetPokedexSeenCount
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0xC
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094840: .4byte gOtherText_Pokedex
- thumb_func_end sub_80947F8
-
- thumb_func_start sub_8094844
-sub_8094844: @ 8094844
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08094888
- lsls r1, r4, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r2, r5, 0
- bl MenuPrint
- ldr r0, _0809488C
- ldrh r1, [r0, 0xE]
- ldrb r2, [r0, 0x10]
- mov r0, sp
- movs r3, 0x1
- bl FormatPlayTime
- adds r4, 0xC
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094888: .4byte gOtherText_PlayTime
-_0809488C: .4byte gSaveBlock2
- thumb_func_end sub_8094844
-
- thumb_func_start GetBadgeCount
-GetBadgeCount: @ 8094890
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _080948BC
-_08094896:
- lsls r0, r4, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080948AA
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080948AA:
- adds r4, 0x1
- ldr r0, _080948C0
- cmp r4, r0
- ble _08094896
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080948BC: .4byte 0x00000807
-_080948C0: .4byte 0x0000080e
- thumb_func_end GetBadgeCount
-
- thumb_func_start GetPokedexSeenCount
-GetPokedexSeenCount: @ 80948C4
- push {lr}
- bl sub_806912C
- cmp r0, 0
- beq _080948D6
- movs r0, 0x1
- bl pokedex_count
- b _080948DC
-_080948D6:
- movs r0, 0x1
- bl sub_8090F68
-_080948DC:
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GetPokedexSeenCount
-
- thumb_func_start FormatPlayTime
-FormatPlayTime: @ 80948E4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r3, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r4, 16
- lsrs r4, 16
- bl ConvertIntToDecimalString
- adds r5, r0, 0
- movs r0, 0
- strb r0, [r5]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- beq _0809490E
- movs r0, 0xF0
- strb r0, [r5, 0x1]
- b _08094910
-_0809490E:
- strb r4, [r5, 0x1]
-_08094910:
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end FormatPlayTime
-
- thumb_func_start unref_sub_8094928
-unref_sub_8094928: @ 8094928
- push {lr}
- ldr r1, _08094938
- ldr r2, _0809493C
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_08094938: .4byte gPokemonStorage
-_0809493C: .4byte 0x000083d0
- thumb_func_end unref_sub_8094928
-
- thumb_func_start unref_sub_8094940
-unref_sub_8094940: @ 8094940
- push {lr}
- adds r1, r0, 0
- ldr r0, _08094950
- ldr r2, _08094954
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_08094950: .4byte gPokemonStorage
-_08094954: .4byte 0x000083d0
- thumb_func_end unref_sub_8094940
-
- thumb_func_start sub_8094958
-sub_8094958: @ 8094958
- push {r4,lr}
- ldr r4, _08094974
- bl sub_803FBBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8094998
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094974: .4byte gUnknown_02038470
- thumb_func_end sub_8094958
-
- thumb_func_start sub_8094978
-sub_8094978: @ 8094978
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r2, 1
- adds r0, r2
- ldr r3, _08094994
- adds r0, r3
- bl sub_8094A74
- pop {r0}
- bx r0
- .align 2, 0
-_08094994: .4byte 0x0201606c
- thumb_func_end sub_8094978
-
- thumb_func_start sub_8094998
-sub_8094998: @ 8094998
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080949CE
- cmp r4, 0
- beq _080949C0
- movs r0, 0x30
- strb r0, [r6]
- movs r0, 0x45
- strb r0, [r6, 0x1]
- movs r0, 0x12
- strb r0, [r6, 0x2]
- b _08094A68
-_080949C0:
- movs r0, 0x3
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x45
- strb r0, [r6, 0x2]
- b _08094A68
-_080949CE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08094A0C
- movs r5, 0x1
- movs r0, 0
- bl battle_get_side_with_given_state
- mov r2, sp
- ldr r1, _08094A08
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_080949F2:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094A00
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_08094A00:
- adds r4, 0x1
- cmp r4, 0x5
- ble _080949F2
- b _08094A50
- .align 2, 0
-_08094A08: .4byte gUnknown_02024A6A
-_08094A0C:
- movs r5, 0x2
- movs r0, 0
- bl battle_get_side_with_given_state
- mov r1, sp
- ldr r4, _08094A70
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- mov r1, sp
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_08094A36:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094A4A
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _08094A4A
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_08094A4A:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094A36
-_08094A50:
- movs r4, 0
- mov r3, sp
-_08094A54:
- adds r0, r6, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _08094A54
-_08094A68:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08094A70: .4byte gUnknown_02024A6A
- thumb_func_end sub_8094998
-
- thumb_func_start sub_8094A74
-sub_8094A74: @ 8094A74
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r0, r2, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08094A9C
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- b _08094AA8
-_08094A9C:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x3
-_08094AA8:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094ADC
- cmp r7, 0
- beq _08094ACE
- movs r0, 0x30
- strb r0, [r5]
- movs r0, 0x45
- strb r0, [r5, 0x1]
- movs r0, 0x12
- strb r0, [r5, 0x2]
- b _08094B5E
-_08094ACE:
- movs r0, 0x3
- strb r0, [r5]
- movs r0, 0x12
- strb r0, [r5, 0x1]
- movs r0, 0x45
- strb r0, [r5, 0x2]
- b _08094B5E
-_08094ADC:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08094B14
- movs r3, 0x1
- mov r2, sp
- ldr r1, _08094B10
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_08094AF8:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094B06
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_08094B06:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094AF8
- b _08094B46
- .align 2, 0
-_08094B10: .4byte gUnknown_02024A6A
-_08094B14:
- movs r3, 0x2
- mov r1, sp
- ldr r2, _08094B68
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- lsls r0, r6, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_08094B2C:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094B40
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _08094B40
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_08094B40:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094B2C
-_08094B46:
- movs r4, 0
- mov r3, sp
-_08094B4A:
- adds r0, r5, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _08094B4A
-_08094B5E:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094B68: .4byte gUnknown_02024A6A
- thumb_func_end sub_8094A74
-
- thumb_func_start sub_8094B6C
-sub_8094B6C: @ 8094B6C
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r7, 0
- bl sub_806B528
- lsls r0, 24
- cmp r0, 0
- beq _08094C16
- lsls r0, r4, 1
- adds r0, r4
- ldr r1, _08094BCC
- adds r4, r0, r1
- movs r2, 0
- add r6, sp
- mov r12, r6
- movs r6, 0xF
- mov r3, sp
-_08094B9A:
- adds r1, r4, r2
- ldrb r0, [r1]
- lsrs r0, 4
- strb r0, [r3]
- adds r3, 0x1
- ldrb r1, [r1]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _08094B9A
- mov r0, r12
- ldrb r3, [r0]
- movs r2, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, r5
- bne _08094BD0
- mov r0, sp
- ldrb r7, [r0]
- strb r3, [r0]
- b _08094BE4
- .align 2, 0
-_08094BCC: .4byte 0x0201606c
-_08094BD0:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _08094BE4
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, r5
- bne _08094BD0
- adds r7, r0, 0
- strb r3, [r1]
-_08094BE4:
- cmp r2, 0x6
- beq _08094C16
- mov r0, r12
- strb r7, [r0]
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x1]
- orrs r0, r1
- strb r0, [r4]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- strb r0, [r4, 0x1]
- mov r0, sp
- ldrb r0, [r0, 0x4]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x5]
- orrs r0, r1
- strb r0, [r4, 0x2]
-_08094C16:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094B6C
-
- thumb_func_start sub_8094C20
-sub_8094C20: @ 8094C20
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1
- ands r1, r2
- lsrs r2, r0, 25
- cmp r1, 0
- beq _08094C40
- ldr r0, _08094C3C
- adds r0, r2, r0
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- b _08094C48
- .align 2, 0
-_08094C3C: .4byte gUnknown_02038470
-_08094C40:
- ldr r0, _08094C50
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r1, r0, 4
-_08094C48:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08094C50: .4byte gUnknown_02038470
- thumb_func_end sub_8094C20
-
- thumb_func_start sub_8094C54
-sub_8094C54: @ 8094C54
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x1
- ands r1, r3
- lsrs r3, r0, 25
- cmp r1, 0
- beq _08094C7C
- ldr r0, _08094C78
- adds r0, r3, r0
- ldrb r2, [r0]
- movs r1, 0xF0
- ands r1, r2
- orrs r1, r4
- strb r1, [r0]
- b _08094C8C
- .align 2, 0
-_08094C78: .4byte gUnknown_02038470
-_08094C7C:
- ldr r2, _08094C94
- adds r2, r3, r2
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r1, r4, 4
- orrs r0, r1
- strb r0, [r2]
-_08094C8C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C94: .4byte gUnknown_02038470
- thumb_func_end sub_8094C54
-
- thumb_func_start sub_8094C98
-sub_8094C98: @ 8094C98
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8094C20
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8094C54
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8094C54
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094C98
-
- thumb_func_start pokemon_order_func
-pokemon_order_func: @ 8094CD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r5, _08094CFC
-_08094CE0:
- adds r0, r3, r5
- ldrb r1, [r0]
- lsrs r0, r1, 4
- cmp r0, r4
- beq _08094CF8
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xF
- ands r0, r1
- cmp r0, r4
- bne _08094D00
-_08094CF8:
- adds r0, r2, 0
- b _08094D12
- .align 2, 0
-_08094CFC: .4byte gUnknown_02038470
-_08094D00:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _08094CE0
- movs r0, 0
-_08094D12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end pokemon_order_func
-
- thumb_func_start pokemon_change_order
-pokemon_change_order: @ 8094D18
- push {r4,r5,lr}
- ldr r0, _08094D58
- ldr r1, _08094D5C
- movs r2, 0x96
- lsls r2, 2
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D2A:
- adds r0, r4, 0
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094D5C
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- ldr r2, _08094D58
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D2A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094D58: .4byte 0x0201b000
-_08094D5C: .4byte gPlayerParty
- thumb_func_end pokemon_change_order
-
- thumb_func_start sub_8094D60
-sub_8094D60: @ 8094D60
- push {r4,r5,lr}
- ldr r4, _08094DA8
- add sp, r4
- ldr r1, _08094DAC
- movs r2, 0x96
- lsls r2, 2
- mov r0, sp
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D76:
- adds r0, r4, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094DAC
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- add r1, sp
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D76
- movs r3, 0x96
- lsls r3, 2
- add sp, r3
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094DA8: .4byte 0xfffffda8
-_08094DAC: .4byte gPlayerParty
- thumb_func_end sub_8094D60
-
- thumb_func_start unref_sub_8094DB0
-unref_sub_8094DB0: @ 8094DB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- movs r7, 0x64
- ldr r0, _08094E08
- mov r8, r0
-_08094DBE:
- adds r0, r6, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- movs r0, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- adds r1, r6, 0
- bl sub_8094C98
- adds r0, r4, 0
- muls r0, r7
- add r0, r8
- adds r1, r5, 0
- bl sub_806E6F0
- b _08094E16
- .align 2, 0
-_08094E08: .4byte gPlayerParty
-_08094E0C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08094DBE
-_08094E16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8094DB0
-
- thumb_func_start sub_8094E20
-sub_8094E20: @ 8094E20
- push {lr}
- ldr r3, _08094E44
- ldrb r1, [r3, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x8]
- ldr r1, _08094E48
- strb r0, [r1]
- bl nullsub_14
- bl pokemon_change_order
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_806AFAC
- pop {r0}
- bx r0
- .align 2, 0
-_08094E44: .4byte gPaletteFade
-_08094E48: .4byte gUnknown_02038473
- thumb_func_end sub_8094E20
-
- thumb_func_start sub_8094E4C
-sub_8094E4C: @ 8094E4C
- push {lr}
- movs r0, 0x3
- bl sub_8094E20
- pop {r0}
- bx r0
- thumb_func_end sub_8094E4C
-
- thumb_func_start sub_8094E58
-sub_8094E58: @ 8094E58
- push {r4,r5,lr}
- ldr r1, _08094E78
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _08094E6E
- b _08095048
-_08094E6E:
- lsls r0, 2
- ldr r1, _08094E7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08094E78: .4byte 0x0201b000
-_08094E7C: .4byte _08094E80
- .align 2, 0
-_08094E80:
- .4byte _08094EAC
- .4byte _08094F28
- .4byte _08094F3C
- .4byte _08094F4A
- .4byte _08094F6C
- .4byte _08094F80
- .4byte _08094F94
- .4byte _08094FA8
- .4byte _08094FBC
- .4byte _08094FD0
- .4byte _08095000
-_08094EAC:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094EDC
- ldr r1, _08094ED4
- ldr r0, _08094ED8
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x6
- bne _08094EEC
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094ED4: .4byte 0x0201b000
-_08094ED8: .4byte 0x00000266
-_08094EDC:
- ldr r1, _08094F10
- ldr r0, _08094F14
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x5
- bgt _08094F1C
-_08094EEC:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0
- ldrsh r3, [r4, r2]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08094F18
- adds r2, r3
- bl sub_806D90C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08095048
- .align 2, 0
-_08094F10: .4byte 0x0201b000
-_08094F14: .4byte 0x00000266
-_08094F18: .4byte gPlayerParty
-_08094F1C:
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
-_08094F28:
- bl sub_806DA98
- ldr r1, _08094F38
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F38: .4byte 0x0201b000
-_08094F3C:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- b _08094FE6
-_08094F4A:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r4, r3
- ldrb r0, [r0]
- ldr r1, _08094F68
- adds r5, r4, r1
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08094FE2
- b _08094FF8
- .align 2, 0
-_08094F68: .4byte 0x00000266
-_08094F6C:
- bl sub_806E334
- ldr r1, _08094F7C
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094F7C: .4byte 0x0201b000
-_08094F80:
- bl sub_806E0C4
- ldr r1, _08094F90
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F90: .4byte 0x0201b000
-_08094F94:
- bl sub_806E53C
- ldr r1, _08094FA4
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08094FEC
- .align 2, 0
-_08094FA4: .4byte 0x0201b000
-_08094FA8:
- bl nullsub_13
- ldr r1, _08094FB8
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094FB8: .4byte 0x0201b000
-_08094FBC:
- bl sub_806E6C8
- ldr r1, _08094FCC
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094FCC: .4byte 0x0201b000
-_08094FD0:
- ldr r1, _08094FF4
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094FF8
-_08094FE2:
- movs r0, 0
- strh r0, [r5]
-_08094FE6:
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
-_08094FEC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08095048
- .align 2, 0
-_08094FF4: .4byte 0x00000266
-_08094FF8:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _08095048
-_08095000:
- ldr r0, _08095024
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0809503C
- ldr r0, _08095028
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095034
- ldr r0, _0809502C
- ldr r3, _08095030
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- b _0809503C
- .align 2, 0
-_08095024: .4byte gUnknown_02038473
-_08095028: .4byte word_203855E
-_0809502C: .4byte 0x0201b000
-_08095030: .4byte 0x00000259
-_08095034:
- ldr r0, _08095040
- ldr r1, _08095044
- adds r0, r1
- strb r4, [r0]
-_0809503C:
- movs r0, 0x1
- b _0809504A
- .align 2, 0
-_08095040: .4byte 0x0201b000
-_08095044: .4byte 0x00000259
-_08095048:
- movs r0, 0
-_0809504A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E58
-
- thumb_func_start sub_8095050
-sub_8095050: @ 8095050
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809508C
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0
- bne _080950C8
- ldr r0, _08095090
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0809509C
- ldr r3, _08095094
- ldr r2, _08095098
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- b _080950DE
- .align 2, 0
-_0809508C: .4byte gPlayerParty
-_08095090: .4byte gUnknown_02038473
-_08095094: .4byte gTasks
-_08095098: .4byte 0x0201b000
-_0809509C:
- ldr r3, _080950C0
- ldr r2, _080950C4
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x12]
- b _080950EC
- .align 2, 0
-_080950C0: .4byte gTasks
-_080950C4: .4byte 0x0201b000
-_080950C8:
- ldr r3, _08095108
- ldr r2, _0809510C
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r4, 0x2
-_080950DE:
- strh r4, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r4, [r0, 0x12]
-_080950EC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x10]
- ldr r1, _08095110
- ldr r2, _08095114
- movs r3, 0
- bl sub_806E750
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08095108: .4byte gTasks
-_0809510C: .4byte 0x0201b000
-_08095110: .4byte gUnknown_083B5FF4
-_08095114: .4byte gUnknown_083B5FCC
- thumb_func_end sub_8095050
-
- thumb_func_start sub_8095118
-sub_8095118: @ 8095118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095150
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809512C
- b _08095268
-_0809512C:
- ldr r0, _08095154
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08095164
- ldr r5, _08095158
- ldrh r0, [r5]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095164
- ldr r0, _0809515C
- ldrh r1, [r5]
- ldr r2, _08095160
- ldr r3, [r0]
- b _080951AA
- .align 2, 0
-_08095150: .4byte gPaletteFade
-_08095154: .4byte gUnknown_02038473
-_08095158: .4byte word_203855E
-_0809515C: .4byte gUnknown_03004AE4
-_08095160: .4byte sub_80952E4
-_08095164:
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08095178
- cmp r0, 0x2
- beq _08095214
- b _08095268
-_08095178:
- ldr r0, _080951B4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080951C8
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080951B8
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809521C
- bl sub_806D5A4
- ldr r3, _080951BC
- ldr r0, _080951C0
- ldrh r1, [r0]
- ldr r2, _080951C4
- ldr r3, [r3]
-_080951AA:
- adds r0, r4, 0
- bl _call_via_r3
- b _08095268
- .align 2, 0
-_080951B4: .4byte gUnknown_02038473
-_080951B8: .4byte gPlayerParty
-_080951BC: .4byte gUnknown_03004AE4
-_080951C0: .4byte word_203855E
-_080951C4: .4byte sub_80952E4
-_080951C8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08095204
- adds r0, r1
- ldr r1, _08095208
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8095050
- ldr r1, _0809520C
- ldr r2, _08095210
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- b _08095268
- .align 2, 0
-_08095204: .4byte gPlayerParty
-_08095208: .4byte gStringVar1
-_0809520C: .4byte sub_8095408
-_08095210: .4byte sub_8095118
-_08095214:
- ldr r5, _08095224
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08095228
-_0809521C:
- movs r0, 0x20
- bl PlaySE
- b _08095268
- .align 2, 0
-_08095224: .4byte gUnknown_02038473
-_08095228:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _08095254
- ldr r1, _08095248
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0809524C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095250
- b _08095266
- .align 2, 0
-_08095248: .4byte gUnknown_0202E8F4
-_0809524C: .4byte gTasks
-_08095250: .4byte sub_80952E4
-_08095254:
- ldr r1, _08095270
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08095274
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095278
-_08095266:
- str r1, [r0]
-_08095268:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08095270: .4byte gUnknown_0202E8F4
-_08095274: .4byte gTasks
-_08095278: .4byte sub_809527C
- thumb_func_end sub_8095118
-
- thumb_func_start sub_809527C
-sub_809527C: @ 809527C
- 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, _080952AC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080952B0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952AC: .4byte gTasks
-_080952B0: .4byte sub_80952B4
- thumb_func_end sub_809527C
-
- thumb_func_start sub_80952B4
-sub_80952B4: @ 80952B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080952D6
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080952E0
- bl SetMainCallback2
-_080952D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952DC: .4byte gPaletteFade
-_080952E0: .4byte sub_802E414
- thumb_func_end sub_80952B4
-
- thumb_func_start sub_80952E4
-sub_80952E4: @ 80952E4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952FC
- ldrb r1, [r0]
- cmp r1, 0
- beq _08095300
- adds r0, r4, 0
- bl sub_809527C
- b _0809531E
- .align 2, 0
-_080952FC: .4byte gUnknown_0202E8F4
-_08095300:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08095328
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809532C
- str r1, [r0]
-_0809531E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095328: .4byte gTasks
-_0809532C: .4byte sub_8095330
- thumb_func_end sub_80952E4
-
- thumb_func_start sub_8095330
-sub_8095330: @ 8095330
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095358
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095350
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80A6DCC
-_08095350:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095358: .4byte gPaletteFade
- thumb_func_end sub_8095330
-
- thumb_func_start sub_809535C
-sub_809535C: @ 809535C
- push {lr}
- ldr r2, _08095380
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08095384
- movs r0, 0x1
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08095388
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08095380: .4byte gPaletteFade
-_08095384: .4byte sub_8095118
-_08095388: .4byte sub_809538C
- thumb_func_end sub_809535C
-
- thumb_func_start sub_809538C
-sub_809538C: @ 809538C
- push {r4,r5,lr}
- ldr r4, _080953D8
- ldr r5, _080953DC
-_08095392:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080953F4
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080953E0
- adds r0, r1
- ldr r1, _080953E4
- bl GetMonNickname
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_8095050
- ldrb r0, [r4]
- ldr r1, _080953E8
- ldr r2, _080953EC
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080953F0
- bl SetMainCallback2
- b _08095400
- .align 2, 0
-_080953D8: .4byte 0x0201b260
-_080953DC: .4byte gUnknown_020384F0
-_080953E0: .4byte gPlayerParty
-_080953E4: .4byte gStringVar1
-_080953E8: .4byte sub_8095408
-_080953EC: .4byte sub_8095118
-_080953F0: .4byte sub_806AEDC
-_080953F4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095392
-_08095400:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809538C
-
- thumb_func_start sub_8095408
-sub_8095408: @ 8095408
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _0809543C
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080954B8
- ldr r2, _08095440
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095444
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080954B8
- .align 2, 0
-_0809543C: .4byte gPaletteFade
-_08095440: .4byte gMain
-_08095444:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0809545A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080954B8
-_0809545A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080954A4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08095498
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _0809549C
- ldr r6, _080954A0
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _080954B8
- .align 2, 0
-_08095498: .4byte gTasks
-_0809549C: .4byte gUnknown_083B5FF4
-_080954A0: .4byte gUnknown_083B5FCC
-_080954A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080954B8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80958C4
-_080954B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095408
-
- thumb_func_start sub_80954C0
-sub_80954C0: @ 80954C0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080954D8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080954D4
- adds r0, r1, 0
- bl sub_80958C4
-_080954D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080954D8: .4byte gUnknown_0202E8F6
- thumb_func_end sub_80954C0
-
- thumb_func_start sub_80954DC
-sub_80954DC: @ 80954DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0809552C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095522
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08095530
- ldr r1, _08095534
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08095538
- ldr r1, _0809553C
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08095540
- movs r1, 0x4
- str r1, [sp]
- adds r1, r5, 0
- bl sub_809D8BC
-_08095522:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809552C: .4byte gPaletteFade
-_08095530: .4byte 0x0201b000
-_08095534: .4byte 0x00000262
-_08095538: .4byte gPlayerParty
-_0809553C: .4byte gPlayerPartyCount
-_08095540: .4byte sub_809535C
- thumb_func_end sub_80954DC
-
- thumb_func_start sub_8095544
-sub_8095544: @ 8095544
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0809557C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095580
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809557C: .4byte gTasks
-_08095580: .4byte sub_80954DC
- thumb_func_end sub_8095544
-
- thumb_func_start sub_8095584
-sub_8095584: @ 8095584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080955F8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- ldr r1, _080955FC
- bl sub_806E7D0
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095610
- cmp r5, 0x1
- beq _080955C6
- cmp r5, 0x4
- beq _080955C6
- cmp r5, 0x5
- bne _08095610
-_080955C6:
- bl sub_806D5A4
- ldr r4, _08095600
- bl sub_8040D08
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _08095604
- ldr r1, _08095608
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _080955F8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809560C
- b _0809589A
- .align 2, 0
-_080955F8: .4byte gTasks
-_080955FC: .4byte gUnknown_083B5FF4
-_08095600: .4byte gStringVar1
-_08095604: .4byte gStringVar4
-_08095608: .4byte gOtherText_CantSwitchPokeWithYours
-_0809560C: .4byte sub_80954C0
-_08095610:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095654
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0809566C
- bl sub_806D5A4
- ldr r1, _08095658
- adds r0, r4, 0
- bl GetMonNickname
- ldr r4, _0809565C
- ldr r1, _08095660
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095664
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095668
- b _0809589A
- .align 2, 0
-_08095654: .4byte gPlayerParty
-_08095658: .4byte gStringVar1
-_0809565C: .4byte gStringVar4
-_08095660: .4byte gOtherText_NoEnergyLeft
-_08095664: .4byte gTasks
-_08095668: .4byte sub_80954C0
-_0809566C:
- movs r4, 0
- ldr r0, _08095678
- lsls r1, r6, 2
- mov r8, r1
- b _080956A8
- .align 2, 0
-_08095678: .4byte gUnknown_02024A68
-_0809567C:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080956A0
- adds r0, r5, 0
- bl sub_8094C20
- lsls r0, 24
- ldr r2, _080956EC
- lsls r1, r4, 1
- adds r1, r2
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _080956A0
- b _08095808
-_080956A0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080956F0
-_080956A8:
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0809567C
- movs r2, 0x64
- mov r9, r2
- mov r0, r9
- muls r0, r5
- ldr r1, _080956F4
- mov r10, r1
- adds r7, r0, r1
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08095708
- bl sub_806D5A4
- ldr r4, _080956F8
- ldr r1, _080956FC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095700
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095704
- b _0809589A
- .align 2, 0
-_080956EC: .4byte gUnknown_02024A6A
-_080956F0: .4byte gUnknown_02024A68
-_080956F4: .4byte gPlayerParty
-_080956F8: .4byte gStringVar4
-_080956FC: .4byte gOtherText_EGGCantBattle
-_08095700: .4byte gTasks
-_08095704: .4byte sub_80954C0
-_08095708:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _0809574C
- ldr r2, _08095750
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08095768
- bl sub_806D5A4
- ldr r1, _08095754
- adds r0, r7, 0
- bl GetMonNickname
- ldr r4, _08095758
- ldr r1, _0809575C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095760
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095764
- b _0809589A
- .align 2, 0
-_0809574C: .4byte 0x02000000
-_08095750: .4byte 0x0001609d
-_08095754: .4byte gStringVar1
-_08095758: .4byte gStringVar4
-_0809575C: .4byte gOtherText_AlreadySelected
-_08095760: .4byte gTasks
-_08095764: .4byte sub_80954C0
-_08095768:
- ldr r0, _08095790
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080957A0
- bl sub_806D5A4
- bl sub_8040B8C
- ldr r0, _08095794
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095798
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809579C
- b _0809589A
- .align 2, 0
-_08095790: .4byte gUnknown_02038473
-_08095794: .4byte gStringVar4
-_08095798: .4byte gTasks
-_0809579C: .4byte sub_80954C0
-_080957A0:
- cmp r0, 0x2
- bne _08095854
- ldr r0, _080957EC
- ldrb r4, [r0]
- bl sub_806D5A4
- ldr r0, _080957F0
- lsls r4, 1
- adds r4, r0
- ldrb r0, [r4]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r10
- ldr r1, _080957F4
- bl GetMonNickname
- ldr r4, _080957F8
- ldr r1, _080957FC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095800
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095804
- b _0809589A
- .align 2, 0
-_080957EC: .4byte gUnknown_02024E6C
-_080957F0: .4byte gUnknown_02024A6A
-_080957F4: .4byte gStringVar1
-_080957F8: .4byte gStringVar4
-_080957FC: .4byte gOtherText_CantBeSwitched
-_08095800: .4byte gTasks
-_08095804: .4byte sub_80954C0
-_08095808:
- bl sub_806D5A4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809583C
- adds r0, r1
- ldr r1, _08095840
- bl GetMonNickname
- ldr r4, _08095844
- ldr r1, _08095848
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _0809584C
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095850
- b _0809589A
- .align 2, 0
-_0809583C: .4byte gPlayerParty
-_08095840: .4byte gStringVar1
-_08095844: .4byte gStringVar4
-_08095848: .4byte gOtherText_AlreadyBattle
-_0809584C: .4byte gTasks
-_08095850: .4byte sub_80954C0
-_08095854:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _080958AC
- strb r0, [r1]
- ldr r1, _080958B0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080958B4
- ldr r0, _080958B8
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C98
- mov r0, r9
- muls r0, r4
- add r0, r10
- adds r1, r7, 0
- bl sub_806E6F0
- ldr r1, _080958BC
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080958C0
-_0809589A:
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080958AC: .4byte gUnknown_0202E8F5
-_080958B0: .4byte gUnknown_0202E8F4
-_080958B4: .4byte gUnknown_02024A6A
-_080958B8: .4byte gUnknown_02024E6C
-_080958BC: .4byte gTasks
-_080958C0: .4byte sub_809527C
- thumb_func_end sub_8095584
-
- thumb_func_start sub_80958C4
-sub_80958C4: @ 80958C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072DEC
- ldr r0, _080958FC
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r1, _08095900
- bl sub_806E7D0
- ldrh r0, [r4, 0x12]
- strh r0, [r4, 0x10]
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080958FC: .4byte gTasks
-_08095900: .4byte gUnknown_083B5FF4
- thumb_func_end sub_80958C4
-
- thumb_func_start sub_8095904
-sub_8095904: @ 8095904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp]
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x3C]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, [sp]
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _08095988
- movs r5, 0
- cmp r5, r8
- bcs _08095A2E
-_0809593E:
- ldr r1, [sp]
- adds r0, r1, r5
- ldrb r2, [r0]
- ldr r0, _08095980
- ands r0, r2
- lsls r0, 6
- movs r1, 0xF
- ands r2, r1
- lsls r2, 5
- adds r0, r2
- ldr r1, _08095984
- adds r4, r0, r1
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, r2
- ldr r3, [sp, 0x4]
- adds r1, r7, r3
- movs r2, 0x10
- bl CpuSet
- adds r7, 0x20
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _0809593E
- b _08095A2E
- .align 2, 0
-_08095980: .4byte 0x0000fff0
-_08095984: .4byte gFont3LatinGlyphs
-_08095988:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x8]
- lsls r0, r1, 28
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r2, r8
- lsls r0, r2, 21
- movs r1, 0
- lsrs r0, 1
- str r0, [sp, 0x10]
-_0809599E:
- movs r5, 0
- ldr r3, [sp, 0x4]
- adds r3, r7, r3
- str r3, [sp, 0x14]
- adds r0, r1, 0x1
- str r0, [sp, 0x18]
- cmp r5, r8
- bcs _08095A12
- movs r2, 0xF
- mov r12, r2
- lsls r1, 9
- ldr r0, _08095A40
- adds r1, r0
- mov r10, r1
-_080959BA:
- ldr r3, [sp]
- adds r0, r3, r5
- ldrb r1, [r0]
- ldr r0, _08095A44
- ands r0, r1
- lsls r0, 6
- mov r2, r12
- ands r1, r2
- lsls r1, 5
- adds r0, r1
- mov r3, r10
- adds r4, r0, r3
- movs r6, 0
- adds r5, 0x1
-_080959D6:
- ldrb r0, [r4]
- movs r3, 0xF0
- ands r3, r0
- mov r2, r12
- ands r2, r0
- cmp r3, 0
- bne _080959E6
- ldr r3, [sp, 0xC]
-_080959E6:
- cmp r2, 0
- bne _080959EC
- ldr r2, [sp, 0x8]
-_080959EC:
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r1, [sp, 0x40]
- adds r0, r1, r0
- orrs r3, r2
- strb r3, [r0]
- adds r4, 0x1
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _080959D6
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080959BA
-_08095A12:
- ldr r0, [sp, 0x40]
- adds r1, r7, 0
- ldr r3, [sp, 0x10]
- lsrs r2, r3, 16
- bl CpuSet
- ldr r7, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x18]
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _0809599E
-_08095A2E:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095A40: .4byte gFont3LatinGlyphs
-_08095A44: .4byte 0x0000fff0
- thumb_func_end sub_8095904
-
- thumb_func_start unref_sub_8095A48
-unref_sub_8095A48: @ 8095A48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
-_08095A60:
- movs r3, 0
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _08095ACE
-_08095A6C:
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bhi _08095AA8
- ldrb r0, [r4]
- adds r1, r0, 0
- adds r2, r0, 0
- cmp r1, 0xFF
- bne _08095A6C
- cmp r3, 0
- beq _08095ACE
- movs r6, 0x1
- cmp r3, 0x3
- bhi _08095AA8
- movs r2, 0
-_08095A96:
- adds r0, r3, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- add r0, sp
- adds r0, 0x8
- strb r2, [r0]
- cmp r3, 0x3
- bls _08095A96
-_08095AA8:
- mov r1, sp
- adds r1, r3
- adds r1, 0x8
- movs r0, 0xFF
- strb r0, [r1]
- str r7, [sp]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r5, 0
- mov r2, r8
- movs r3, 0x80
- bl sub_8095904
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- cmp r6, 0
- beq _08095A60
-_08095ACE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8095A48
-
- thumb_func_start sub_8095ADC
-sub_8095ADC: @ 8095ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_08095AF0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B20
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095B0C
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095B0C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095AF0
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095B20: .4byte gUnknown_020300A4
- thumb_func_end sub_8095ADC
-
- thumb_func_start sub_8095B24
-sub_8095B24: @ 8095B24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r5, r0, 5
-_08095B36:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B54
- adds r0, r1
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095B58
- lsls r0, r4, 16
- asrs r0, 16
- b _08095B66
- .align 2, 0
-_08095B54: .4byte gUnknown_020300A4
-_08095B58:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095B36
- movs r0, 0x1
- negs r0, r0
-_08095B66:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B24
-
- thumb_func_start sub_8095B6C
-sub_8095B6C: @ 8095B6C
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
-_08095B72:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095BB0
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095B9A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095B9A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095B9A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095B72
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095BB0: .4byte gPlayerParty
- thumb_func_end sub_8095B6C
-
- thumb_func_start sub_8095BB4
-sub_8095BB4: @ 8095BB4
- push {r4-r7,lr}
- lsls r0, 24
- movs r5, 0
- movs r6, 0
- lsrs r7, r0, 24
-_08095BBE:
- cmp r5, r7
- beq _08095BF6
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095C0C
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095BF6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095BF6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095BBE
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C0C: .4byte gPlayerParty
- thumb_func_end sub_8095BB4
-
- thumb_func_start sub_8095C10
-sub_8095C10: @ 8095C10
- push {lr}
- ldr r0, _08095C24
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08095C24: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8095C10
-
- thumb_func_start sub_8095C28
-sub_8095C28: @ 8095C28
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08095C2E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08095C5C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095C46
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095C46:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08095C2E
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C5C: .4byte gPlayerParty
- thumb_func_end sub_8095C28
-
- thumb_func_start unref_sub_8095C60
-unref_sub_8095C60: @ 8095C60
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl StringCopy
- adds r1, r0, 0
- adds r5, r4
- cmp r1, r5
- bcs _08095C7E
- movs r0, 0
-_08095C76:
- strb r0, [r1]
- adds r1, 0x1
- cmp r1, r5
- bcc _08095C76
-_08095C7E:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8095C60
-
- thumb_func_start sub_8095C8C
-sub_8095C8C: @ 8095C8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _08095CFC
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_08095CE2:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _08095CE2
-_08095CFC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095C8C
-
- thumb_func_start unref_sub_8095D08
-unref_sub_8095D08: @ 8095D08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _08095DB2
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, _08095D74
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_08095D4E:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _08095D78
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _08095DA6
- .align 2, 0
-_08095D74: .4byte 0x040000d4
-_08095D78:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _08095DC4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, _08095DC8
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _08095D78
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08095DA6:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _08095D4E
-_08095DB2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095DC4: .4byte 0x040000d4
-_08095DC8: .4byte 0x81000800
- thumb_func_end unref_sub_8095D08
-
- thumb_func_start sub_8095DCC
-sub_8095DCC: @ 8095DCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r0, r3, 24
- cmp r0, 0
- beq _08095DE8
- cmp r0, 0x2
- bne _08095DEC
-_08095DE8:
- movs r2, 0x1
- b _08095DEE
-_08095DEC:
- ldr r2, _08095E38
-_08095DEE:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095E44
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E10:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095E3C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E10
- b _08095E90
- .align 2, 0
-_08095E38: .4byte 0x0000ffff
-_08095E3C:
- adds r0, r4, 0
- b _08095E94
-_08095E40:
- adds r0, r5, 0
- b _08095E94
-_08095E44:
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E5C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E80
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E40
-_08095E80:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E5C
-_08095E90:
- movs r0, 0x1
- negs r0, r0
-_08095E94:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095DCC
-
- thumb_func_start sub_8095EA0
-sub_8095EA0: @ 8095EA0
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_8095EA0
-
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08095ED8
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08095ECE
- b _080960F4
-_08095ECE:
- lsls r0, 2
- ldr r1, _08095EDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08095ED8: .4byte gTasks
-_08095EDC: .4byte _08095EE0
- .align 2, 0
-_08095EE0:
- .4byte _08095EF4
- .4byte _08095F1C
- .4byte _08095F30
- .4byte _08096042
- .4byte _080960DC
-_08095EF4:
- ldrb r0, [r4, 0xA]
- bl sub_8096168
- bl MenuDisplayMessageBox
- ldr r1, _08095F18
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _08095F28
- .align 2, 0
-_08095F18: .4byte gUnknown_083B600C
-_08095F1C:
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- bne _08095F28
- b _080960F4
-_08095F28:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080960F4
-_08095F30:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08095FC8
- cmp r1, r0
- bgt _08095F52
- subs r0, 0x1
- cmp r1, r0
- beq _08095F58
- b _08095FE8
-_08095F52:
- cmp r1, 0x3
- beq _08095FC8
- b _08095FE8
-_08095F58:
- ldrh r3, [r4, 0xA]
- strh r3, [r4, 0xE]
- ldr r2, _08095FC0
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095F76
- subs r0, r3, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _08095F76
- movs r0, 0x3
- strh r0, [r4, 0xE]
-_08095F76:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08095F92
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08095F92
- movs r0, 0
- strh r0, [r4, 0xE]
-_08095F92:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08095FA2
- b _080960F4
-_08095FA2:
- strh r2, [r4, 0xA]
- bl sub_8095EA0
- ldr r0, _08095FC4
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _080960F4
- .align 2, 0
-_08095FC0: .4byte gMain
-_08095FC4: .4byte gUnknown_083B600C
-_08095FC8:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080960F4
-_08095FE8:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08096008
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08096008
- bl sub_8095EA0
- ldr r0, _08096004
- b _08096022
- .align 2, 0
-_08096004: .4byte gPCText_PartyFull2
-_08096008:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08096034
- bl sub_8095C28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08096034
- bl sub_8095EA0
- ldr r0, _08096030
-_08096022:
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_08096030: .4byte gPCText_OnlyOne
-_08096034:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080960F4
-_08096042:
- ldr r0, _08096088
- ldrh r1, [r0, 0x2E]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080960B8
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08096090
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0809606A
- strh r3, [r4, 0xA]
-_0809606A:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl sub_8095EA0
- ldr r1, _0809608C
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- b _080960C2
- .align 2, 0
-_08096088: .4byte gMain
-_0809608C: .4byte gUnknown_083B600C
-_08096090:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080960F4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080960A8
- strh r2, [r4, 0xA]
-_080960A8:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
-_080960B8:
- bl sub_8095EA0
- ldr r1, _080960D8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
-_080960C2:
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_080960D8: .4byte gUnknown_083B600C
-_080960DC:
- ldr r0, _080960FC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080960F4
- ldrb r0, [r4, 0xC]
- bl task_intro_29
- adds r0, r5, 0
- bl DestroyTask
-_080960F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080960FC: .4byte gPaletteFade
- thumb_func_end sub_8095EB4
-
- thumb_func_start sub_8096100
-sub_8096100: @ 8096100
- push {lr}
- ldr r0, _08096128
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809612C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08096128: .4byte sub_8095EB4
-_0809612C: .4byte gTasks
- thumb_func_end sub_8096100
-
- thumb_func_start sub_8096130
-sub_8096130: @ 8096130
- push {lr}
- ldr r0, _0809615C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096160
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _08096164
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0809615C: .4byte sub_8095EB4
-_08096160: .4byte gTasks
-_08096164: .4byte gUnknown_02038474
- thumb_func_end sub_8096130
-
- thumb_func_start sub_8096168
-sub_8096168: @ 8096168
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080961A4
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080961A4: .4byte gUnknown_083B600C
- thumb_func_end sub_8096168
-
- thumb_func_start sub_80961A8
-sub_80961A8: @ 80961A8
- push {lr}
- ldr r1, _080961C4
- ldr r0, _080961C8
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- strb r0, [r1]
- ldr r1, _080961CC
- ldr r0, _080961D0
- str r0, [r1]
- ldr r0, _080961D4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080961C4: .4byte gUnknown_02038474
-_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gUnknown_0300485C
-_080961D0: .4byte sub_8096130
-_080961D4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80961A8
-
- thumb_func_start sub_80961D8
-sub_80961D8: @ 80961D8
- push {r4-r7,lr}
- ldr r1, _08096258
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r7, r1, 0x4
-_080961E4:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_080961F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r7
- adds r0, r6, r0
- bl ZeroBoxMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080961F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080961E4
- movs r5, 0
-_08096214:
- lsls r0, r5, 3
- adds r0, r5
- ldr r6, _0809625C
- adds r0, r6
- ldr r1, _08096260
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _08096214
- movs r5, 0
- adds r3, r6, 0
- adds r3, 0x7E
- movs r2, 0x3
-_0809623E:
- adds r0, r5, r3
- adds r1, r5, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0809623E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gUnknown_020383E4
-_08096260: .4byte gPCText_BOX
- thumb_func_end sub_80961D8
-
- thumb_func_start sub_8096264
-sub_8096264: @ 8096264
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x20
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080962F4
- str r0, [sp, 0x18]
- ldr r1, _080962F8
- add r5, sp, 0x18
- ldr r0, [r5, 0x4]
- ands r0, r1
- orrs r0, r6
- str r0, [r5, 0x4]
- mov r1, sp
- ldr r0, _080962FC
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r4, [r1, 0x6]
- ldr r0, _08096300
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r4, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- bl LoadSpritePalette
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, _08096304
- mov r1, r8
- str r1, [r0]
- movs r0, 0x90
- lsls r0, 2
- add r0, r8
- strh r4, [r0]
- ldr r0, _08096308
- add r0, r8
- strh r6, [r0]
- ldr r0, _0809630C
- add r8, r0
- mov r0, r9
- mov r1, r8
- strb r0, [r1]
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080962F4: .4byte gBoxSelectionPopupPalette
-_080962F8: .4byte 0xffff0000
-_080962FC: .4byte gBoxSelectionPopupCenterTiles
-_08096300: .4byte gBoxSelectionPopupSidesTiles
-_08096304: .4byte gUnknown_02038478
-_08096308: .4byte 0x00000242
-_0809630C: .4byte 0x0000023e
- thumb_func_end sub_8096264
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,r5,lr}
- ldr r4, _08096344
- ldr r0, [r4]
- ldr r1, _08096348
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r5
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096344: .4byte gUnknown_02038478
-_08096348: .4byte 0x00000242
- thumb_func_end sub_8096310
-
- thumb_func_start sub_809634C
-sub_809634C: @ 809634C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80963D0
- pop {r0}
- bx r0
- thumb_func_end sub_809634C
-
- thumb_func_start sub_809635C
-sub_809635C: @ 809635C
- push {lr}
- bl sub_809658C
- pop {r0}
- bx r0
- thumb_func_end sub_809635C
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {lr}
- ldr r0, _08096380
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096384
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080963CC
- .align 2, 0
-_08096380: .4byte gMain
-_08096384:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080963A4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080963A0
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080963CC
- .align 2, 0
-_080963A0: .4byte gUnknown_02038478
-_080963A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080963B8
- movs r0, 0x5
- bl PlaySE
- bl sub_809662C
- b _080963CA
-_080963B8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080963CA
- movs r0, 0x5
- bl PlaySE
- bl sub_80965F8
-_080963CA:
- movs r0, 0xC8
-_080963CC:
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_80963D0
-sub_80963D0: @ 80963D0
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, _08096564
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, _08096568
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, _0809656C
- str r0, [sp, 0x2C]
- ldr r0, _08096570
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, _08096574
- ldr r0, [r6]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _08096578
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08096580
- str r0, [sp, 0xC]
- movs r4, 0
-_08096488:
- ldr r0, [r6]
- ldr r1, _08096584
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080964C2
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080964C2:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080964E6
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080964E6:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08096488
- movs r4, 0
- ldr r5, _08096574
-_08096504:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, _08096584
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_809A9A0
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _0809654C
- movs r1, 0x1
- cmp r4, 0
- bne _08096544
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_08096544:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, _08096588
- str r0, [r1, 0x1C]
-_0809654C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08096504
- bl sub_809665C
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096564: .4byte 0xffff0fff
-_08096568: .4byte gDummySpriteAnimTable
-_0809656C: .4byte gDummySpriteAffineAnimTable
-_08096570: .4byte SpriteCallbackDummy
-_08096574: .4byte gUnknown_02038478
-_08096578: .4byte 0x00000242
-_0809657C: .4byte gSprites
-_08096580: .4byte gSpriteAnimTable_83B604C
-_08096584: .4byte 0x0000023e
-_08096588: .4byte sub_8096784
- thumb_func_end sub_80963D0
-
- thumb_func_start sub_809658C
-sub_809658C: @ 809658C
- push {r4-r6,lr}
- ldr r4, _080965F4
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080965A2
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080965A2:
- movs r5, 0
- adds r6, r4, 0
-_080965A6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080965C2
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080965C2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080965A6
- movs r5, 0
-_080965CE:
- ldr r0, _080965F4
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080965E2
- bl DestroySprite
-_080965E2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080965CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F4: .4byte gUnknown_02038478
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965F8
-sub_80965F8: @ 80965F8
- push {lr}
- ldr r2, _08096628
- ldr r1, [r2]
- movs r0, 0x8F
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _0809661E
- ldr r0, [r2]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0809661E:
- bl sub_809665C
- pop {r0}
- bx r0
- .align 2, 0
-_08096628: .4byte gUnknown_02038478
- thumb_func_end sub_80965F8
-
- thumb_func_start sub_809662C
-sub_809662C: @ 809662C
- push {lr}
- ldr r0, _08096644
- ldr r2, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096648
- subs r1, r0, 0x1
- b _0809664A
- .align 2, 0
-_08096644: .4byte gUnknown_02038478
-_08096648:
- movs r1, 0xD
-_0809664A:
- movs r3, 0x8F
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_809665C
- pop {r0}
- bx r0
- thumb_func_end sub_809662C
-
- thumb_func_start sub_809665C
-sub_809665C: @ 809665C
- push {r4-r7,lr}
- ldr r5, _080966B4
- ldr r0, [r5]
- movs r4, 0x8F
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8095ADC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080966B8
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- movs r0, 0xF
- strb r0, [r2, 0x2]
- movs r0, 0x1
- strb r0, [r2, 0x3]
- movs r0, 0xE
- strb r0, [r2, 0x4]
- adds r2, 0x5
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- ldr r0, _080966BC
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFE
- strb r0, [r2]
- strb r6, [r2, 0x1]
- movs r0, 0x11
- strb r0, [r2, 0x2]
- cmp r7, 0x9
- bhi _080966C0
- movs r0, 0x28
- b _080966C2
- .align 2, 0
-_080966B4: .4byte gUnknown_02038478
-_080966B8: .4byte gStringVar1
-_080966BC: .4byte gUnknown_020383E4
-_080966C0:
- movs r0, 0x22
-_080966C2:
- strb r0, [r2, 0x3]
- adds r2, 0x4
- adds r0, r2, 0
- adds r1, r7, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xA4
- strb r0, [r2, 0x1]
- movs r0, 0xA1
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080966F0
- movs r1, 0
- movs r2, 0x1
- bl sub_80966F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080966F0: .4byte gStringVar1
- thumb_func_end sub_809665C
-
- thumb_func_start sub_80966F4
-sub_80966F4: @ 80966F4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08096764
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 11
- lsls r4, 8
- ldr r2, _08096768
- adds r4, r2
- adds r6, r4
- lsls r5, 5
- adds r6, r5
- ldr r0, _0809676C
- ldr r5, [r0]
- mov r1, sp
- ldr r2, _08096770
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08096774
- str r1, [r4]
- str r5, [r4, 0x4]
- ldr r0, _08096778
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809677C
- adds r1, r5, 0
- mov r2, r8
- bl sub_8004E3C
- str r5, [r4]
- str r6, [r4, 0x4]
- ldr r0, _08096780
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096764: .4byte gUnknown_02038478
-_08096768: .4byte 0x06010000
-_0809676C: .4byte gUnknown_083B6DB8
-_08096770: .4byte 0x00001111
-_08096774: .4byte 0x040000d4
-_08096778: .4byte 0x81000200
-_0809677C: .4byte gWindowConfig_81E6D38
-_08096780: .4byte 0x80000200
- thumb_func_end sub_80966F4
-
- thumb_func_start sub_8096784
-sub_8096784: @ 8096784
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080967B4
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080967B4
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080967B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8096784
-
- thumb_func_start task_intro_29
-task_intro_29: @ 80967B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080967D0
- strb r0, [r1]
- ldr r1, _080967D4
- strb r0, [r1, 0x5]
- ldr r0, _080967D8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte 0x02000000
-_080967D8: .4byte sub_8096884
- thumb_func_end task_intro_29
-
- thumb_func_start sub_80967DC
-sub_80967DC: @ 80967DC
- ldr r0, _08096800
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08096800: .4byte REG_BG0HOFS
- thumb_func_end sub_80967DC
-
- thumb_func_start sub_8096804
-sub_8096804: @ 8096804
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r1, _0809683C
- movs r2, 0xA0
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08096840
- adds r1, r0, 0
- adds r1, 0x8
- movs r2, 0x8
- bl sub_809CFDC
- ldr r1, _08096844
- movs r0, 0x14
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte 0x02000020
-_08096844: .4byte gKeyRepeatStartDelay
- thumb_func_end sub_8096804
-
- thumb_func_start sub_8096848
-sub_8096848: @ 8096848
- push {lr}
- bl sub_809B0D4
- ldr r2, _08096868
- movs r1, 0
- ldr r0, _0809686C
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809685C
- movs r1, 0x1
-_0809685C:
- strb r1, [r2]
- ldr r1, _08096870
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte 0x02000000
-_08096870: .4byte gUnknown_0203847E
- thumb_func_end sub_8096848
-
- thumb_func_start sub_8096874
-sub_8096874: @ 8096874
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8096874
-
- thumb_func_start sub_8096884
-sub_8096884: @ 8096884
- push {lr}
- ldr r0, _080968A0
- ldr r1, _080968A4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08096894
- b _08096986
-_08096894:
- lsls r0, 2
- ldr r1, _080968A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080968A0: .4byte gMain
-_080968A4: .4byte 0x0000043c
-_080968A8: .4byte _080968AC
- .align 2, 0
-_080968AC:
- .4byte _080968D4
- .4byte _080968E8
- .4byte _080968F4
- .4byte _08096904
- .4byte _0809690E
- .4byte _08096918
- .4byte _0809691E
- .4byte _08096924
- .4byte _0809692A
- .4byte _08096964
-_080968D4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl sub_8096804
- b _0809697A
-_080968E8:
- ldr r0, _080968F0
- bl SetUpWindowConfig
- b _0809697A
- .align 2, 0
-_080968F0: .4byte gWindowConfig_81E6D00
-_080968F4:
- ldr r0, _08096900
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _0809697A
- .align 2, 0
-_08096900: .4byte gWindowConfig_81E6D00
-_08096904:
- bl sub_80967DC
- bl sub_8096848
- b _0809697A
-_0809690E:
- bl sub_8098B48
- bl sub_809AA24
- b _0809697A
-_08096918:
- bl sub_8097DE0
- b _0809697A
-_0809691E:
- bl sub_8097E70
- b _0809697A
-_08096924:
- bl sub_8098400
- b _0809697A
-_0809692A:
- ldr r0, _08096950
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096954
- ldr r1, _08096958
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _0809695C
- adds r2, r1
- ldr r1, _08096960
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _0809697A
- .align 2, 0
-_08096950: .4byte gPokemonStorage
-_08096954: .4byte 0x02000000
-_08096958: .4byte 0x000012bc
-_0809695C: .4byte 0x000012be
-_08096960: .4byte 0x0000dacb
-_08096964:
- bl sub_8096874
- ldr r0, _0809698C
- bl sub_8096BE0
- ldr r0, _08096990
- bl SetMainCallback2
- ldr r0, _08096994
- bl SetVBlankCallback
-_0809697A:
- ldr r1, _08096998
- ldr r0, _0809699C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096986:
- pop {r0}
- bx r0
- .align 2, 0
-_0809698C: .4byte sub_8096BF0
-_08096990: .4byte sub_8096B38
-_08096994: .4byte sub_8096AFC
-_08096998: .4byte gMain
-_0809699C: .4byte 0x0000043c
- thumb_func_end sub_8096884
-
- thumb_func_start sub_80969A0
-sub_80969A0: @ 80969A0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080969BC
- ldr r1, _080969C0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _080969B2
- b _08096AE4
-_080969B2:
- lsls r0, 2
- ldr r1, _080969C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080969BC: .4byte gMain
-_080969C0: .4byte 0x0000043c
-_080969C4: .4byte _080969C8
- .align 2, 0
-_080969C8:
- .4byte _080969F4
- .4byte _08096A34
- .4byte _08096A40
- .4byte _08096A50
- .4byte _08096A56
- .4byte _08096A60
- .4byte _08096A66
- .4byte _08096A6C
- .4byte _08096A72
- .4byte _08096AAC
- .4byte _08096AC8
-_080969F4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08096A28
- ldr r0, _08096A2C
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- bl sub_8096804
- ldr r4, _08096A30
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08096A1A
- bl sub_809BBC0
-_08096A1A:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08096AD8
- bl sub_809BD14
- b _08096AD8
- .align 2, 0
-_08096A28: .4byte 0x02000000
-_08096A2C: .4byte gUnknown_0203847D
-_08096A30: .4byte gUnknown_0203847F
-_08096A34:
- ldr r0, _08096A3C
- bl SetUpWindowConfig
- b _08096AD8
- .align 2, 0
-_08096A3C: .4byte gWindowConfig_81E6D00
-_08096A40:
- ldr r0, _08096A4C
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _08096AD8
- .align 2, 0
-_08096A4C: .4byte gWindowConfig_81E6D00
-_08096A50:
- bl sub_80967DC
- b _08096AD8
-_08096A56:
- bl sub_8098B48
- bl sub_809AA98
- b _08096AD8
-_08096A60:
- bl sub_8097DE0
- b _08096AD8
-_08096A66:
- bl sub_8097E70
- b _08096AD8
-_08096A6C:
- bl sub_8098400
- b _08096AD8
-_08096A72:
- ldr r0, _08096A98
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096A9C
- ldr r1, _08096AA0
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _08096AA4
- adds r2, r1
- ldr r1, _08096AA8
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _08096AD8
- .align 2, 0
-_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte 0x02000000
-_08096AA0: .4byte 0x000012bc
-_08096AA4: .4byte 0x000012be
-_08096AA8: .4byte 0x0000dacb
-_08096AAC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08096AC4
- bl SetVBlankCallback
- b _08096AD8
- .align 2, 0
-_08096AC4: .4byte sub_8096AFC
-_08096AC8:
- bl sub_8096874
- ldr r0, _08096AEC
- bl sub_8096BE0
- ldr r0, _08096AF0
- bl SetMainCallback2
-_08096AD8:
- ldr r1, _08096AF4
- ldr r0, _08096AF8
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096AE4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096AEC: .4byte sub_8096C68
-_08096AF0: .4byte sub_8096B38
-_08096AF4: .4byte gMain
-_08096AF8: .4byte 0x0000043c
- thumb_func_end sub_80969A0
-
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C
- ldr r1, _08096B30
- ldr r3, _08096B34
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte 0x02000000
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte 0x02000000
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte 0x02000000
-_08096B74:
- ldr r1, _08096B98
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4
- ldr r5, _08096BA8
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl sub_809D8BC
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte 0x02000000
- thumb_func_end sub_8096BE0
-
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte 0x02000000
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
- thumb_func_start sub_8096C84
-sub_8096C84: @ 8096C84
- push {r4,lr}
- ldr r0, _08096C9C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _08096C90
- b _08096FBA
-_08096C90:
- lsls r0, 2
- ldr r1, _08096CA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096C9C: .4byte 0x02000000
-_08096CA0: .4byte _08096CA4
- .align 2, 0
-_08096CA4:
- .4byte _08096CC0
- .4byte _08096EE0
- .4byte _08096F1C
- .4byte _08096F60
- .4byte _08096F80
- .4byte _08096F8A
- .4byte _08096FA4
-_08096CC0:
- bl sub_809CA40
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0xF
- bls _08096CD0
- b _08096FBA
-_08096CD0:
- lsls r0, 2
- ldr r1, _08096CDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096CDC: .4byte _08096CE0
- .align 2, 0
-_08096CE0:
- .4byte _08096D20
- .4byte _08096FBA
- .4byte _08096FBA
- .4byte _08096D94
- .4byte _08096D34
- .4byte _08096D5C
- .4byte _08096DAC
- .4byte _08096DC0
- .4byte _08096DD4
- .4byte _08096DFC
- .4byte _08096E30
- .4byte _08096EB8
- .4byte _08096E70
- .4byte _08096E8C
- .4byte _08096ECC
- .4byte _08096DA0
-_08096D20:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08096D30
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D30: .4byte 0x02000000
-_08096D34:
- ldr r4, _08096D48
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D4C
- movs r0, 0x10
- bl sub_8098898
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D48: .4byte 0x02000000
-_08096D4C:
- bl sub_809B0D4
- ldr r0, _08096D58
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D58: .4byte sub_8096FC8
-_08096D5C:
- ldr r4, _08096D88
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D66
- b _08096FBA
-_08096D66:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08096D80
- ldr r1, _08096D8C
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08096E4C
-_08096D80:
- ldr r0, _08096D90
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D88: .4byte 0x02000000
-_08096D8C: .4byte 0x000011f2
-_08096D90: .4byte sub_8097004
-_08096D94:
- ldr r0, _08096D9C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D9C: .4byte sub_8097BA0
-_08096DA0:
- ldr r0, _08096DA8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DA8: .4byte sub_8097CC0
-_08096DAC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DBC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DBC: .4byte sub_809789C
-_08096DC0:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DD0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DD0: .4byte sub_8097078
-_08096DD4:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096DF0
- ldr r0, _08096DF4
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r2, _08096DF8
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0xD
- ble _08096E18
- movs r0, 0
- b _08096E16
- .align 2, 0
-_08096DF0: .4byte 0x02000000
-_08096DF4: .4byte gPokemonStorage
-_08096DF8: .4byte 0x000008b2
-_08096DFC:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096E24
- ldr r0, _08096E28
- ldrb r0, [r0]
- subs r0, 0x1
- ldr r2, _08096E2C
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0
- bge _08096E18
- movs r0, 0xD
-_08096E16:
- strh r0, [r1]
-_08096E18:
- ldrb r0, [r1]
- bl sub_8099C70
- movs r0, 0x2
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E24: .4byte 0x02000000
-_08096E28: .4byte gPokemonStorage
-_08096E2C: .4byte 0x000008b2
-_08096E30:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- ldr r4, _08096E54
- ldr r1, _08096E58
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08096E5C
-_08096E4C:
- movs r0, 0x5
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E54: .4byte 0x02000000
-_08096E58: .4byte 0x000011f2
-_08096E5C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E6C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E6C: .4byte sub_809746C
-_08096E70:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E88
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E88: .4byte sub_80972A8
-_08096E8C:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- bne _08096EA4
-_08096E96:
- ldr r1, _08096EA0
- movs r0, 0x4
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096EA0: .4byte 0x02000000
-_08096EA4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EB4
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EB4: .4byte c3_0808DC50
-_08096EB8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EC8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EC8: .4byte sub_8097390
-_08096ECC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EDC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EDC: .4byte sub_80972FC
-_08096EE0:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- bl sub_809BF48
- lsls r0, 24
- cmp r0, 0
- beq _08096EFA
- bl sub_80986E8
- b _08096EFE
-_08096EFA:
- bl sub_8098710
-_08096EFE:
- ldr r4, _08096F14
- ldr r2, _08096F18
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096F0E
- bl BoxSetMosaic
-_08096F0E:
- movs r0, 0
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F14: .4byte 0x02000000
-_08096F18: .4byte 0x000011f6
-_08096F1C:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- ldr r1, _08096F50
- ldr r0, _08096F54
- ldr r2, _08096F58
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08096F5C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096F70
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- bne _08096F70
- bl sub_809B440
- bl BoxSetMosaic
- b _08096F70
- .align 2, 0
-_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte 0x02000000
-_08096F58: .4byte 0x000008b2
-_08096F5C: .4byte gUnknown_0203847C
-_08096F60:
- ldr r0, _08096F78
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
-_08096F70:
- ldr r1, _08096F7C
- movs r0, 0
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F78: .4byte gMain
-_08096F7C: .4byte 0x02000000
-_08096F80:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08096F92
-_08096F8A:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08096F92:
- bl sub_8098898
- ldr r1, _08096FA0
- movs r0, 0x6
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096FA0: .4byte 0x02000000
-_08096FA4:
- ldr r0, _08096FC0
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
- ldr r0, _08096FC4
- bl sub_8096BE0
-_08096FBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096FC0: .4byte gMain
-_08096FC4: .4byte sub_8096C84
- thumb_func_end sub_8096C84
-
- thumb_func_start sub_8096FC8
-sub_8096FC8: @ 8096FC8
- push {r4,lr}
- ldr r4, _08096FD8
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08096FDC
- cmp r0, 0x1
- beq _08096FE8
- b _08096FF8
- .align 2, 0
-_08096FD8: .4byte 0x02000000
-_08096FDC:
- bl sub_809880C
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096FF8
-_08096FE8:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08096FF8
- ldr r0, _08097000
- bl sub_8096BE0
-_08096FF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097000: .4byte sub_8096C84
- thumb_func_end sub_8096FC8
-
- thumb_func_start sub_8097004
-sub_8097004: @ 8097004
- push {r4,lr}
- ldr r4, _08097018
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _0809702E
- cmp r0, 0x1
- bgt _0809701C
- cmp r0, 0
- beq _08097022
- b _0809706A
- .align 2, 0
-_08097018: .4byte 0x02000000
-_0809701C:
- cmp r0, 0x2
- beq _0809704C
- b _0809706A
-_08097022:
- movs r0, 0x5
- bl PlaySE
- bl add_to_c3_somehow
- b _08097044
-_0809702E:
- bl sub_80985CC
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- bl sub_809B0F4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809B0C0
-_08097044:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809706A
-_0809704C:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- ldr r1, _08097070
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097064
- bl BoxSetMosaic
-_08097064:
- ldr r0, _08097074
- bl sub_8096BE0
-_0809706A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097070: .4byte 0x000011f6
-_08097074: .4byte sub_8096C84
- thumb_func_end sub_8097004
-
- thumb_func_start sub_8097078
-sub_8097078: @ 8097078
- push {r4,lr}
- ldr r0, _08097090
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bls _08097084
- b _0809729A
-_08097084:
- lsls r0, 2
- ldr r1, _08097094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097090: .4byte 0x02000000
-_08097094: .4byte _08097098
- .align 2, 0
-_08097098:
- .4byte _080970B0
- .4byte _080970C8
- .4byte _08097258
- .4byte _0809726C
- .4byte _08097262
- .4byte _08097284
-_080970B0:
- movs r0, 0x4
- bl sub_8098898
- bl sub_809CE84
- ldr r1, _080970C4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080970C4: .4byte 0x02000000
-_080970C8:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bls _080970D8
- b _0809729A
-_080970D8:
- lsls r0, 2
- ldr r1, _080970E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080970E4: .4byte _080970E8
- .align 2, 0
-_080970E8:
- .4byte _08097110
- .4byte _08097110
- .4byte _08097190
- .4byte _08097178
- .4byte _08097120
- .4byte _08097158
- .4byte _08097140
- .4byte _08097230
- .4byte _080971CC
- .4byte _08097244
-_08097110:
- bl sub_8098A5C
- ldr r0, _0809711C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809711C: .4byte sub_8096C84
-_08097120:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809713C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809713C: .4byte sub_80972A8
-_08097140:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097154
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097154: .4byte sub_80972FC
-_08097158:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- beq _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097174
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097174: .4byte c3_0808DC50
-_08097178:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809718C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809718C: .4byte sub_8097390
-_08097190:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- ldr r4, _080971C0
- ldr r1, _080971C4
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- bne _08097210
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _080971C8
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_080971C0: .4byte 0x02000000
-_080971C4: .4byte 0x000011f2
-_080971C8: .4byte sub_809746C
-_080971CC:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- beq _080971E4
-_080971D6:
- ldr r1, _080971E0
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080971E0: .4byte 0x02000000
-_080971E4:
- ldr r4, _080971F8
- ldr r1, _080971FC
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097200
- movs r0, 0x4
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_080971F8: .4byte 0x02000000
-_080971FC: .4byte 0x000011f9
-_08097200:
- ldr r1, _08097218
- adds r0, r4, r1
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0809721C
-_08097210:
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_08097218: .4byte 0x000011f2
-_0809721C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809722C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809722C: .4byte sub_8097594
-_08097230:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097240
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097240: .4byte sub_8097788
-_08097244:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097254
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097254: .4byte sub_80977E4
-_08097258:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08097274
-_08097262:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x11
- b _08097274
-_0809726C:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08097274:
- bl sub_8098898
- ldr r1, _08097280
- movs r0, 0x5
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_08097280: .4byte 0x02000000
-_08097284:
- ldr r0, _080972A0
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _0809729A
- bl sub_8098A5C
- ldr r0, _080972A4
- bl sub_8096BE0
-_0809729A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972A0: .4byte gMain
-_080972A4: .4byte sub_8096C84
- thumb_func_end sub_8097078
-
- thumb_func_start sub_80972A8
-sub_80972A8: @ 80972A8
- push {r4,lr}
- ldr r4, _080972B8
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080972BC
- cmp r0, 0x1
- beq _080972CA
- b _080972F2
- .align 2, 0
-_080972B8: .4byte 0x02000000
-_080972BC:
- movs r0, 0
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080972F2
-_080972CA:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _080972F2
- ldr r0, _080972E4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080972EC
- ldr r0, _080972E8
- bl sub_8096BE0
- b _080972F2
- .align 2, 0
-_080972E4: .4byte gUnknown_0203847C
-_080972E8: .4byte sub_8097858
-_080972EC:
- ldr r0, _080972F8
- bl sub_8096BE0
-_080972F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972F8: .4byte sub_8096C84
- thumb_func_end sub_80972A8
-
- thumb_func_start sub_80972FC
-sub_80972FC: @ 80972FC
- push {r4,lr}
- ldr r4, _0809730C
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097310
- cmp r0, 0x1
- beq _0809731E
- b _08097346
- .align 2, 0
-_0809730C: .4byte 0x02000000
-_08097310:
- movs r0, 0x1
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097346
-_0809731E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097346
- ldr r0, _08097338
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097340
- ldr r0, _0809733C
- bl sub_8096BE0
- b _08097346
- .align 2, 0
-_08097338: .4byte gUnknown_0203847C
-_0809733C: .4byte sub_8097858
-_08097340:
- ldr r0, _0809734C
- bl sub_8096BE0
-_08097346:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809734C: .4byte sub_8096C84
- thumb_func_end sub_80972FC
-
- thumb_func_start c3_0808DC50
-c3_0808DC50: @ 8097350
- push {r4,lr}
- ldr r4, _08097360
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097364
- cmp r0, 0x1
- beq _08097372
- b _08097386
- .align 2, 0
-_08097360: .4byte 0x02000000
-_08097364:
- movs r0, 0x2
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097386
-_08097372:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097386
- bl BoxSetMosaic
- ldr r0, _0809738C
- bl sub_8096BE0
-_08097386:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809738C: .4byte sub_8096C84
- thumb_func_end c3_0808DC50
-
- thumb_func_start sub_8097390
-sub_8097390: @ 8097390
- push {lr}
- ldr r0, _080973A4
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bhi _08097462
- lsls r0, 2
- ldr r1, _080973A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080973A4: .4byte 0x02000000
-_080973A8: .4byte _080973AC
- .align 2, 0
-_080973AC:
- .4byte _080973C4
- .4byte _080973FC
- .4byte _0809741C
- .4byte _0809742C
- .4byte _0809743E
- .4byte _0809745C
-_080973C4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080973E4
- movs r0, 0xE
- bl sub_8098898
- ldr r1, _080973E0
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973E0: .4byte 0x02000000
-_080973E4:
- bl sub_809B0E0
- movs r0, 0
- bl sub_809B100
- ldr r1, _080973F8
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973F8: .4byte 0x02000000
-_080973FC:
- ldr r0, _08097414
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097462
- bl sub_8098A5C
- ldr r0, _08097418
- bl sub_8096BE0
- b _08097462
- .align 2, 0
-_08097414: .4byte gMain
-_08097418: .4byte sub_8096C84
-_0809741C:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_809880C
- b _0809744C
-_0809742C:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- movs r0, 0x1
- bl sub_809B100
- b _0809744C
-_0809743E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_80987DC
-_0809744C:
- ldr r1, _08097458
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_08097458: .4byte 0x02000000
-_0809745C:
- ldr r0, _08097468
- bl sub_8096BE0
-_08097462:
- pop {r0}
- bx r0
- .align 2, 0
-_08097468: .4byte sub_8097004
- thumb_func_end sub_8097390
-
- thumb_func_start sub_809746C
-sub_809746C: @ 809746C
- push {r4,lr}
- ldr r0, _08097484
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bls _08097478
- b _08097584
-_08097478:
- lsls r0, 2
- ldr r1, _08097488
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097484: .4byte 0x02000000
-_08097488: .4byte _0809748C
- .align 2, 0
-_0809748C:
- .4byte _080974A0
- .4byte _080974D8
- .4byte _08097534
- .4byte _08097548
- .4byte _0809756C
-_080974A0:
- movs r0, 0x6
- bl sub_8098898
- ldr r4, _080974C8
- ldr r2, _080974CC
- adds r0, r4, 0
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _080974D0
- ldrb r0, [r0]
- bl sub_809634C
- ldr r0, _080974D4
- adds r4, r0
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097584
- .align 2, 0
-_080974C8: .4byte 0x02002370
-_080974CC: .4byte 0x0000daca
-_080974D0: .4byte gUnknown_0203847E
-_080974D4: .4byte 0xffffdc90
-_080974D8:
- bl sub_8096368
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC8
- beq _08097584
- cmp r4, 0xC9
- bne _080974F6
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- b _0809755E
-_080974F6:
- adds r0, r4, 0
- bl sub_809B62C
- lsls r0, 24
- cmp r0, 0
- beq _08097518
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- ldr r1, _08097514
- movs r0, 0x2
- b _08097522
- .align 2, 0
-_08097514: .4byte 0x02000000
-_08097518:
- movs r0, 0x8
- bl sub_8098898
- ldr r1, _0809752C
- movs r0, 0x4
-_08097522:
- strb r0, [r1, 0x4]
- ldr r0, _08097530
- strb r4, [r0]
- b _08097584
- .align 2, 0
-_0809752C: .4byte 0x02000000
-_08097530: .4byte gUnknown_0203847E
-_08097534:
- bl party_compaction
- bl sub_8099310
- ldr r1, _08097544
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- b _08097582
- .align 2, 0
-_08097544: .4byte 0x02000000
-_08097548:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097584
- bl sub_809B6BC
- bl BoxSetMosaic
- bl sub_80987DC
-_0809755E:
- ldr r0, _08097568
- bl sub_8096BE0
- b _08097584
- .align 2, 0
-_08097568: .4byte sub_8096C84
-_0809756C:
- ldr r0, _0809758C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08097584
- movs r0, 0x6
- bl sub_8098898
- ldr r1, _08097590
- movs r0, 0x1
-_08097582:
- strb r0, [r1, 0x4]
-_08097584:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809758C: .4byte gMain
-_08097590: .4byte 0x02000000
- thumb_func_end sub_809746C
-
- thumb_func_start sub_8097594
-sub_8097594: @ 8097594
- push {r4,lr}
- ldr r0, _080975AC
- ldrb r0, [r0, 0x4]
- cmp r0, 0xD
- bls _080975A0
- b _0809777A
-_080975A0:
- lsls r0, 2
- ldr r1, _080975B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080975AC: .4byte 0x02000000
-_080975B0: .4byte _080975B4
- .align 2, 0
-_080975B4:
- .4byte _080975EC
- .4byte _08097600
- .4byte _0809763A
- .4byte _0809766E
- .4byte _0809767A
- .4byte _08097690
- .4byte _080976C8
- .4byte _080976E0
- .4byte _080976EC
- .4byte _080976F0
- .4byte _08097704
- .4byte _08097720
- .4byte _08097732
- .4byte _08097764
-_080975EC:
- movs r0, 0x9
- bl sub_8098898
- movs r0, 0x1
- bl sub_8098A38
- ldr r1, _0809761C
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
-_08097600:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0809762C
- cmp r1, 0
- bgt _08097620
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097626
- b _0809777A
- .align 2, 0
-_0809761C: .4byte 0x02000000
-_08097620:
- cmp r1, 0x1
- beq _08097626
- b _0809777A
-_08097626:
- bl sub_8098A5C
- b _080976E0
-_0809762C:
- bl sub_8098A5C
- bl sub_809B7D4
- bl sub_809B6DC
- b _08097744
-_0809763A:
- bl sub_809B960
- bl sub_809B734
- lsls r0, 24
- cmp r0, 0
- beq _0809764A
- b _0809777A
-_0809764A:
- ldr r4, _08097650
- b _0809765A
- .align 2, 0
-_08097650: .4byte 0x02000000
-_08097654:
- cmp r0, 0
- bne _0809765A
- b _08097758
-_0809765A:
- bl sub_809B960
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _08097654
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809777A
-_0809766E:
- bl sub_809B760
- bl sub_809801C
- movs r0, 0xA
- b _08097740
-_0809767A:
- ldr r0, _0809768C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08097688
- b _0809777A
-_08097688:
- movs r0, 0xB
- b _08097740
- .align 2, 0
-_0809768C: .4byte gMain
-_08097690:
- ldr r0, _080976B4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _080976B8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080976BC
- bl party_compaction
- bl sub_8099310
- b _08097744
- .align 2, 0
-_080976B4: .4byte gMain
-_080976B8: .4byte gUnknown_0203847C
-_080976BC:
- ldr r1, _080976C4
- movs r0, 0x7
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_080976C4: .4byte 0x02000000
-_080976C8:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B440
- bl BoxSetMosaic
- bl sub_80987DC
- b _08097744
-_080976E0:
- ldr r0, _080976E8
- bl sub_8096BE0
- b _0809777A
- .align 2, 0
-_080976E8: .4byte sub_8096C84
-_080976EC:
- movs r0, 0xA
- b _08097740
-_080976F0:
- ldr r0, _08097700
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x15
- b _08097740
- .align 2, 0
-_08097700: .4byte gMain
-_08097704:
- ldr r0, _0809771C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- bl sub_8099958
- b _08097744
- .align 2, 0
-_0809771C: .4byte gMain
-_08097720:
- bl sub_8099990
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B7AC
- movs r0, 0x13
- b _08097740
-_08097732:
- ldr r0, _08097750
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x14
-_08097740:
- bl sub_8098898
-_08097744:
- ldr r1, _08097754
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097750: .4byte gMain
-_08097754: .4byte 0x02000000
-_08097758:
- ldr r1, _08097760
- movs r0, 0x8
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097760: .4byte 0x02000000
-_08097764:
- ldr r0, _08097780
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _08097784
- bl sub_8096BE0
-_0809777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097780: .4byte gMain
-_08097784: .4byte sub_8096C84
- thumb_func_end sub_8097594
-
- thumb_func_start sub_8097788
-sub_8097788: @ 8097788
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0809779C
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _080977A0
- cmp r4, 0x1
- beq _080977BC
- b _080977D4
- .align 2, 0
-_0809779C: .4byte 0x02000000
-_080977A0:
- bl sub_809BC18
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080977D4
-_080977BC:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080977D4
- ldr r0, _080977DC
- strb r1, [r0]
- strb r1, [r5, 0x6]
- ldr r0, _080977E0
- bl SetMainCallback2
-_080977D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080977DC: .4byte gUnknown_0203847F
-_080977E0: .4byte sub_8096B5C
- thumb_func_end sub_8097788
-
- thumb_func_start sub_80977E4
-sub_80977E4: @ 80977E4
- push {r4,lr}
- ldr r4, _080977F4
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080977F8
- cmp r0, 0x1
- beq _08097824
- b _0809784C
- .align 2, 0
-_080977F4: .4byte 0x02000000
-_080977F8:
- movs r0, 0xC
- bl sub_8098898
- ldr r0, _08097820
- adds r2, r4, r0
- ldrb r1, [r2]
- movs r3, 0x96
- lsls r3, 5
- adds r0, r4, r3
- strb r1, [r0]
- ldrb r0, [r2]
- movs r1, 0xB0
- movs r2, 0x10
- bl sub_80F7418
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809784C
- .align 2, 0
-_08097820: .4byte 0x000011f7
-_08097824:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _0809784C
- bl sub_80F7470
- bl sub_8098A5C
- movs r1, 0x96
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_809BDD8
- bl sub_809801C
- ldr r0, _08097854
- bl sub_8096BE0
-_0809784C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097854: .4byte sub_8096C84
- thumb_func_end sub_80977E4
-
- thumb_func_start sub_8097858
-sub_8097858: @ 8097858
- push {r4,lr}
- ldr r4, _08097868
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0809786C
- cmp r0, 0x1
- beq _0809787C
- b _08097890
- .align 2, 0
-_08097868: .4byte 0x02000000
-_0809786C:
- bl party_compaction
- bl sub_8099310
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097890
-_0809787C:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097890
- bl sub_80987DC
- ldr r0, _08097898
- bl sub_8096BE0
-_08097890:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097898: .4byte sub_8096C84
- thumb_func_end sub_8097858
-
- thumb_func_start sub_809789C
-sub_809789C: @ 809789C
- push {r4,lr}
- ldr r4, _080978AC
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080978B0
- cmp r0, 0x1
- beq _080978C2
- b _08097968
- .align 2, 0
-_080978AC: .4byte 0x02000000
-_080978B0:
- movs r0, 0x1
- bl sub_8098898
- bl sub_809CE84
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097968
-_080978C2:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bhi _08097968
- lsls r0, 2
- ldr r1, _080978DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080978DC: .4byte _080978E0
- .align 2, 0
-_080978E0:
- .4byte _08097914
- .4byte _08097914
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097958
- .4byte _08097940
- .4byte _0809792C
-_08097914:
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _08097928
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097928: .4byte sub_8096C84
-_0809792C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809793C
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_0809793C: .4byte sub_8097B44
-_08097940:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097954
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097954: .4byte sub_8097974
-_08097958:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097970
- bl sub_8096BE0
-_08097968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097970: .4byte sub_8097A64
- thumb_func_end sub_809789C
-
- thumb_func_start sub_8097974
-sub_8097974: @ 8097974
- push {r4,r5,lr}
- ldr r5, _08097988
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _080979A2
- cmp r0, 0x1
- bgt _0809798C
- cmp r0, 0
- beq _08097996
- b _08097A5A
- .align 2, 0
-_08097988: .4byte 0x02000000
-_0809798C:
- cmp r0, 0x2
- beq _080979FC
- cmp r0, 0x3
- beq _08097A44
- b _08097A5A
-_08097996:
- bl sub_8098A80
- movs r0, 0x2
- bl sub_8098898
- b _08097A3C
-_080979A2:
- bl sub_809CF30
- ldr r1, _080979CC
- adds r4, r5, r1
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080979D4
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _080979D0
- bl sub_8096BE0
- b _08097A5A
- .align 2, 0
-_080979CC: .4byte 0x00000d5e
-_080979D0: .4byte sub_8096C84
-_080979D4:
- cmp r0, r1
- blt _08097A5A
- cmp r0, 0xF
- bgt _08097A5A
- cmp r0, 0xC
- blt _08097A5A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- subs r0, 0xC
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098AA8
- movs r0, 0x3
- bl sub_8098898
- b _08097A3C
-_080979FC:
- bl sub_809CF30
- movs r1, 0xD6
- lsls r1, 4
- adds r4, r5, r1
- strh r0, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08097A5A
- adds r0, 0x1
- cmp r1, r0
- bne _08097A24
- bl sub_8098A5C
- movs r0, 0
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A24:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldrh r0, [r4]
- subs r0, 0x10
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8099DCC
-_08097A3C:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A44:
- bl sub_8099E08
- lsls r0, 24
- cmp r0, 0
- bne _08097A5A
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097A60
- bl sub_8096BE0
-_08097A5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097A60: .4byte sub_8096C84
- thumb_func_end sub_8097974
-
- thumb_func_start sub_8097A64
-sub_8097A64: @ 8097A64
- push {r4,r5,lr}
- ldr r5, _08097A78
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _08097AB0
- cmp r0, 0x1
- bgt _08097A7C
- cmp r0, 0
- beq _08097A86
- b _08097B32
- .align 2, 0
-_08097A78: .4byte 0x02000000
-_08097A7C:
- cmp r0, 0x2
- beq _08097B00
- cmp r0, 0x3
- beq _08097B18
- b _08097B32
-_08097A86:
- movs r0, 0x5
- bl sub_8098898
- ldr r1, _08097AA4
- adds r0, r5, r1
- ldr r2, _08097AA8
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _08097AAC
- ldrb r0, [r0]
- bl sub_809634C
- b _08097B0A
- .align 2, 0
-_08097AA4: .4byte 0x00002370
-_08097AA8: .4byte 0x0000daca
-_08097AAC: .4byte gPokemonStorage
-_08097AB0:
- bl sub_8096368
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08097AF4
- adds r4, r5, r2
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- beq _08097B32
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xC9
- beq _08097AE4
- adds r1, r0, 0
- ldr r0, _08097AF8
- ldrb r0, [r0]
- cmp r1, r0
- bne _08097B0A
-_08097AE4:
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097AFC
- bl sub_8096BE0
- b _08097B32
- .align 2, 0
-_08097AF4: .4byte 0x000008b2
-_08097AF8: .4byte gPokemonStorage
-_08097AFC: .4byte sub_8096C84
-_08097B00:
- ldr r1, _08097B14
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_8099C70
-_08097B0A:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B32
- .align 2, 0
-_08097B14: .4byte 0x000008b2
-_08097B18:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08097B32
- ldr r1, _08097B38
- ldr r2, _08097B3C
- adds r0, r5, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08097B40
- bl sub_8096BE0
-_08097B32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B38: .4byte gPokemonStorage
-_08097B3C: .4byte 0x000008b2
-_08097B40: .4byte sub_8096C84
- thumb_func_end sub_8097A64
-
- thumb_func_start sub_8097B44
-sub_8097B44: @ 8097B44
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08097B58
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _08097B5C
- cmp r4, 0x1
- beq _08097B78
- b _08097B8E
- .align 2, 0
-_08097B58: .4byte 0x02000000
-_08097B5C:
- bl sub_809BB90
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B8E
-_08097B78:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08097B8E
- ldr r0, _08097B98
- strb r4, [r0]
- strb r4, [r5, 0x6]
- ldr r0, _08097B9C
- bl SetMainCallback2
-_08097B8E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B98: .4byte gUnknown_0203847F
-_08097B9C: .4byte sub_8096B5C
- thumb_func_end sub_8097B44
-
- thumb_func_start sub_8097BA0
-sub_8097BA0: @ 8097BA0
- push {r4,lr}
- ldr r0, _08097BB8
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097BAE
- b _08097CB0
-_08097BAE:
- lsls r0, r1, 2
- ldr r1, _08097BBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097BB8: .4byte 0x02000000
-_08097BBC: .4byte _08097BC0
- .align 2, 0
-_08097BC0:
- .4byte _08097BD4
- .4byte _08097C18
- .4byte _08097C2C
- .4byte _08097C74
- .4byte _08097C98
-_08097BD4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097BF8
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097BF4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097BF4: .4byte 0x02000000
-_08097BF8:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097C14
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C14: .4byte 0x02000000
-_08097C18:
- ldr r0, _08097C28
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097CB0
- b _08097C4A
- .align 2, 0
-_08097C28: .4byte gMain
-_08097C2C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097C5C
- cmp r1, 0
- bgt _08097C46
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097C4A
- b _08097CB0
-_08097C46:
- cmp r1, 0x1
- bne _08097CB0
-_08097C4A:
- bl sub_8098A5C
- ldr r0, _08097C58
- bl sub_8096BE0
- b _08097CB0
- .align 2, 0
-_08097C58: .4byte sub_8096C84
-_08097C5C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097C70
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C70: .4byte 0x02000000
-_08097C74:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097C94
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C94: .4byte 0x0000dad0
-_08097C98:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097CB0
- bl CalculatePlayerPartyCount
- ldr r1, _08097CB8
- strb r0, [r1]
- ldr r0, _08097CBC
- bl SetMainCallback2
-_08097CB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CB8: .4byte gPlayerPartyCount
-_08097CBC: .4byte sub_80961A8
- thumb_func_end sub_8097BA0
-
- thumb_func_start sub_8097CC0
-sub_8097CC0: @ 8097CC0
- push {r4,lr}
- ldr r0, _08097CD8
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097CCE
- b _08097DD0
-_08097CCE:
- lsls r0, r1, 2
- ldr r1, _08097CDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097CD8: .4byte 0x02000000
-_08097CDC: .4byte _08097CE0
- .align 2, 0
-_08097CE0:
- .4byte _08097CF4
- .4byte _08097D38
- .4byte _08097D4C
- .4byte _08097D94
- .4byte _08097DB8
-_08097CF4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097D18
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097D14
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D14: .4byte 0x02000000
-_08097D18:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x12
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097D34
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D34: .4byte 0x02000000
-_08097D38:
- ldr r0, _08097D48
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097DD0
- b _08097D6C
- .align 2, 0
-_08097D48: .4byte gMain
-_08097D4C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097D6C
- cmp r1, 0
- bgt _08097D66
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097D7C
- b _08097DD0
-_08097D66:
- cmp r1, 0x1
- beq _08097D7C
- b _08097DD0
-_08097D6C:
- bl sub_8098A5C
- ldr r0, _08097D78
- bl sub_8096BE0
- b _08097DD0
- .align 2, 0
-_08097D78: .4byte sub_8096C84
-_08097D7C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097D90
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D90: .4byte 0x02000000
-_08097D94:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097DB4
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097DD0
- .align 2, 0
-_08097DB4: .4byte 0x0000dad0
-_08097DB8:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097DD0
- bl CalculatePlayerPartyCount
- ldr r1, _08097DD8
- strb r0, [r1]
- ldr r0, _08097DDC
- bl SetMainCallback2
-_08097DD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097DD8: .4byte gPlayerPartyCount
-_08097DDC: .4byte sub_80961A8
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097DE0
-sub_8097DE0: @ 8097DE0
- push {lr}
- ldr r1, _08097E1C
- movs r0, 0
- strb r0, [r1, 0x7]
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- ldr r1, _08097E20
- ldr r2, _08097E24
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08097E28
- ldr r2, _08097E2C
- ldr r0, _08097E30
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08097E34
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _08097E38
- ldr r1, _08097E3C
- bl LZ77UnCompVram
- ldr r0, _08097E40
- movs r1, 0xD0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08097E1C: .4byte 0x02000000
-_08097E20: .4byte REG_BG3CNT
-_08097E24: .4byte 0x00001e0f
-_08097E28: .4byte gPokemonStorageScrollingBGTile
-_08097E2C: .4byte 0x0600e000
-_08097E30: .4byte 0x040000d4
-_08097E34: .4byte 0x80000010
-_08097E38: .4byte gPokemonStorageScrollingBGTilemap
-_08097E3C: .4byte 0x0600f000
-_08097E40: .4byte gPokemonStorageScrollingBGPalette
- thumb_func_end sub_8097DE0
-
- thumb_func_start sub_8097E44
-sub_8097E44: @ 8097E44
- push {lr}
- ldr r1, _08097E6C
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08097E66
- movs r0, 0
- strb r0, [r1, 0x7]
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08097E66:
- pop {r0}
- bx r0
- .align 2, 0
-_08097E6C: .4byte 0x02000000
- thumb_func_end sub_8097E44
-
- thumb_func_start sub_8097E70
-sub_8097E70: @ 8097E70
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _08097F2C
- ldr r1, _08097F30
- bl LZ77UnCompVram
- ldr r0, _08097F34
- ldr r4, _08097F38
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _08097F3C
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x14
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- adds r3, r4, 0
- bl sub_809D034
- ldr r0, _08097F40
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F44
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F48
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F4C
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _08097F50
- adds r0, r4, 0
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xF2
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0xF3
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x16
- movs r1, 0xF4
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x12
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r4, 0x2
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _08097F54
- bl LoadSpritePalette
- bl sub_80980D4
- bl sub_8097F58
- bl sub_8097FB8
- bl sub_809801C
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097F2C: .4byte gPSSMenuHeader_Gfx
-_08097F30: .4byte 0x06005000
-_08097F34: .4byte gPSSMenuHeader_Tilemap
-_08097F38: .4byte gUnknown_02039760
-_08097F3C: .4byte 0x06007800
-_08097F40: .4byte gPSSMenu1_Pal
-_08097F44: .4byte gPSSMenu2_Pal
-_08097F48: .4byte gUnknown_083B6D74
-_08097F4C: .4byte gUnknown_083B6D94
-_08097F50: .4byte gUnknownPalette_81E6692+0x2
-_08097F54: .4byte gWaveformSpritePalette
- thumb_func_end sub_8097E70
-
- thumb_func_start sub_8097F58
-sub_8097F58: @ 8097F58
- push {r4,lr}
- ldr r1, _08097FA4
- movs r0, 0xD
- movs r2, 0
- bl sub_80F7940
- ldr r4, _08097FA8
- ldr r1, _08097FAC
- adds r3, r4, r1
- str r0, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- movs r0, 0x28
- strh r0, [r1, 0x20]
- ldr r1, [r3]
- movs r0, 0x95
- strh r0, [r1, 0x22]
- movs r0, 0xD
- bl GetSpriteTileStartByTag
- ldr r1, _08097FB0
- adds r4, r1
- lsls r0, 16
- lsrs r0, 11
- ldr r1, _08097FB4
- adds r0, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097FA4: .4byte 0x0000dace
-_08097FA8: .4byte 0x02000000
-_08097FAC: .4byte 0x000012ac
-_08097FB0: .4byte 0x000012b8
-_08097FB4: .4byte 0x06010000
- thumb_func_end sub_8097F58
-
- thumb_func_start sub_8097FB8
-sub_8097FB8: @ 8097FB8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0809800C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r4, 0
- ldr r5, _08098010
-_08097FD0:
- lsls r1, r4, 6
- subs r1, r4
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08098014
- movs r2, 0x9
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 2
- adds r2, r5
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08098018
- adds r1, r0
- str r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08097FD0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809800C: .4byte gWaveformSpriteSheet
-_08098010: .4byte 0x020012b0
-_08098014: .4byte gSpriteTemplate_83B6EFC
-_08098018: .4byte gSprites
- thumb_func_end sub_8097FB8
-
- thumb_func_start sub_809801C
-sub_809801C: @ 809801C
- push {lr}
- ldr r1, _0809803C
- ldr r2, _08098040
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- bl sub_80981F0
- bl sub_80982B4
- bl sub_8098350
- pop {r0}
- bx r0
- .align 2, 0
-_0809803C: .4byte 0x02000000
-_08098040: .4byte 0x000011f0
- thumb_func_end sub_809801C
-
- thumb_func_start BoxSetMosaic
-BoxSetMosaic: @ 8098044
- push {lr}
- bl sub_809801C
- ldr r0, _08098084
- movs r1, 0x9C
- lsls r1, 6
- adds r3, r0, r1
- ldr r2, [r3]
- cmp r2, 0
- beq _08098080
- ldrb r0, [r2, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, [r3]
- movs r0, 0xA
- strh r0, [r1, 0x2E]
- ldr r1, [r3]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, [r3]
- ldr r0, _08098088
- str r0, [r1, 0x1C]
- ldr r2, _0809808C
- ldr r0, [r3]
- ldrh r0, [r0, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
-_08098080:
- pop {r0}
- bx r0
- .align 2, 0
-_08098084: .4byte 0x02000000
-_08098088: .4byte sub_8098090
-_0809808C: .4byte REG_MOSAIC
- thumb_func_end BoxSetMosaic
-
- thumb_func_start sub_8098090
-sub_8098090: @ 8098090
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bge _080980A6
- movs r0, 0
- strh r0, [r3, 0x2E]
-_080980A6:
- ldr r2, _080980CC
- ldrh r0, [r3, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080980C8
- ldrb r0, [r3, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- ldr r0, _080980D0
- str r0, [r3, 0x1C]
-_080980C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080980CC: .4byte REG_MOSAIC
-_080980D0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098090
-
- thumb_func_start sub_80980D4
-sub_80980D4: @ 80980D4
- push {r4,r5,lr}
- sub sp, 0x28
- ldr r0, _08098150
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _08098154
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _08098158
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r1, 0
- add r5, sp, 0x18
- ldr r4, _0809815C
- movs r3, 0
- ldr r2, _08098160
-_08098102:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08098102
- movs r1, 0
- ldr r3, _08098164
- movs r2, 0
-_08098116:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08098116
- ldr r0, _08098168
- movs r1, 0x9C
- lsls r1, 6
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080981C4
- add r0, sp, 0x20
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080981C4
- b _080981B0
- .align 2, 0
-_08098150: .4byte gUnknown_083B6DCC
-_08098154: .4byte gUnknown_083B6DD4
-_08098158: .4byte gSpriteTemplate_83B6DDC
-_0809815C: .4byte 0x02002784
-_08098160: .4byte 0x000007ff
-_08098164: .4byte 0x02002704
-_08098168: .4byte 0x02000000
-_0809816C:
- ldr r2, _0809819C
- movs r0, 0x9C
- lsls r0, 6
- adds r3, r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080981A0
- adds r0, r1
- str r0, [r3]
- lsls r0, r4, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldr r3, _080981A4
- adds r1, r2, r3
- strh r0, [r1]
- ldr r4, _080981A8
- adds r2, r4
- lsls r0, r5, 5
- ldr r1, _080981AC
- adds r0, r1
- str r0, [r2]
- b _080981C4
- .align 2, 0
-_0809819C: .4byte 0x02000000
-_080981A0: .4byte gSprites
-_080981A4: .4byte 0x000026fa
-_080981A8: .4byte 0x000026fc
-_080981AC: .4byte 0x06010000
-_080981B0:
- mov r0, sp
- movs r1, 0x28
- movs r2, 0x30
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _0809816C
-_080981C4:
- ldr r0, _080981E8
- movs r2, 0x9C
- lsls r2, 6
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _080981DE
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- ldr r0, _080981EC
- bl FreeSpritePaletteByTag
-_080981DE:
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080981E8: .4byte 0x02000000
-_080981EC: .4byte 0x0000dac7
- thumb_func_end sub_80980D4
-
- thumb_func_start sub_80981F0
-sub_80981F0: @ 80981F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r6, _08098274
- movs r0, 0x9C
- lsls r0, 6
- adds r0, r6
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080982A6
- cmp r4, 0
- beq _0809829C
- lsls r0, r4, 3
- ldr r1, _08098278
- adds r0, r1
- ldr r2, _0809827C
- lsls r1, r4, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _08098280
- adds r3, r6, r2
- ldr r2, _08098284
- adds r5, r6, r2
- str r5, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r2, 0x1
- bl sub_800D334
- ldr r1, _08098288
- adds r0, r6, r1
- ldr r0, [r0]
- ldr r2, _0809828C
- adds r4, r6, r2
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r1, _08098290
- adds r0, r6, r1
- ldr r1, [r0]
- ldr r2, _08098294
- adds r0, r5, 0
- bl CpuSet
- ldr r2, _08098298
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r0, r8
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080982A6
- .align 2, 0
-_08098274: .4byte 0x02000000
-_08098278: .4byte gMonFrontPicTable
-_0809827C: .4byte gMonFrontPicCoords
-_08098280: .4byte 0x00004784
-_08098284: .4byte 0x00002784
-_08098288: .4byte 0x000011e8
-_0809828C: .4byte 0x00002704
-_08098290: .4byte 0x000026fc
-_08098294: .4byte 0x04000200
-_08098298: .4byte 0x000026fa
-_0809829C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080982A6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80981F0
-
- thumb_func_start sub_80982B4
-sub_80982B4: @ 80982B4
- push {r4,lr}
- ldr r4, _080982E4
- ldr r1, _080982E8
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080982F4
- ldr r2, _080982EC
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r2, 0xC1
- adds r1, r4, r2
- ldr r1, [r1]
- bl sub_80F7A10
- ldr r1, _080982F0
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _08098302
- .align 2, 0
-_080982E4: .4byte 0x02000000
-_080982E8: .4byte 0x000011f0
-_080982EC: .4byte 0x000011f7
-_080982F0: .4byte 0x000012ac
-_080982F4:
- ldr r2, _08098348
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_08098302:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- ldr r4, _0809834C
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x10
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x6B
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x46
- movs r1, 0
- movs r2, 0xD
- bl MenuPrint
- subs r4, 0x21
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098348: .4byte 0x000012ac
-_0809834C: .4byte 0x0200127a
- thumb_func_end sub_80982B4
-
- thumb_func_start sub_8098350
-sub_8098350: @ 8098350
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, _080983A0
- ldr r1, _080983A4
- adds r0, r5, r1
- ldrh r2, [r0]
- cmp r2, 0
- beq _080983B4
- ldr r0, _080983A8
- ldr r3, _080983AC
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r0, _080983B0
- adds r5, r0
-_08098382:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08098382
- b _080983EC
- .align 2, 0
-_080983A0: .4byte 0x02000000
-_080983A4: .4byte 0x000011f0
-_080983A8: .4byte 0x06007800
-_080983AC: .4byte gUnknown_02039760
-_080983B0: .4byte 0x000012b0
-_080983B4:
- ldr r0, _080983F4
- ldr r3, _080983F8
- movs r1, 0xA
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r1, _080983FC
- adds r5, r1
-_080983D4:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 25
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080983D4
-_080983EC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080983F4: .4byte 0x06007800
-_080983F8: .4byte gUnknown_02039760
-_080983FC: .4byte 0x000012b0
- thumb_func_end sub_8098350
-
- thumb_func_start sub_8098400
-sub_8098400: @ 8098400
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _0809847C
- ldr r2, _08098480
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08098484
- ldr r1, _08098488
- bl LZ77UnCompVram
- ldr r0, _0809848C
- ldr r5, _08098490
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08098494
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08098498
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _0809849C
- add r1, sp, 0x10
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080984A0
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _080984A4
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8098780
- ldr r0, _080984A8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080984AC
- movs r0, 0x1
- bl sub_8098690
- movs r0, 0x1
- bl sub_8099200
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x16
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- b _080984CC
- .align 2, 0
-_0809847C: .4byte REG_BG1CNT
-_08098480: .4byte 0x00000f01
-_08098484: .4byte gPSSMenuMisc_Gfx
-_08098488: .4byte 0x06006800
-_0809848C: .4byte gPSSMenuMisc_Tilemap
-_08098490: .4byte 0x020000a8
-_08098494: .4byte gPSSMenu3_Pal
-_08098498: .4byte gPSSMenu4_Pal
-_0809849C: .4byte 0x06007800
-_080984A0: .4byte 0x040000d4
-_080984A4: .4byte 0x81000400
-_080984A8: .4byte gUnknown_0203847C
-_080984AC:
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- movs r0, 0x1
- bl sub_8098690
-_080984CC:
- ldr r0, _080984E0
- ldr r1, _080984E4
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080984E0: .4byte 0x02000000
-_080984E4: .4byte 0x000008af
- thumb_func_end sub_8098400
-
- thumb_func_start sub_80984E8
-sub_80984E8: @ 80984E8
- push {lr}
- ldr r1, _08098510
- ldr r0, _08098514
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x14
- strh r0, [r2]
- ldr r0, _08098518
- adds r2, r1, r0
- movs r0, 0x2
- strh r0, [r2]
- ldr r0, _0809851C
- adds r1, r0
- strb r3, [r1]
- movs r0, 0
- bl sub_8099200
- pop {r0}
- bx r0
- .align 2, 0
-_08098510: .4byte 0x02000000
-_08098514: .4byte 0x000008a8
-_08098518: .4byte 0x000008aa
-_0809851C: .4byte 0x000008ad
- thumb_func_end sub_80984E8
-
- thumb_func_start sub_8098520
-sub_8098520: @ 8098520
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r3, _08098578
- ldr r0, _0809857C
- adds r5, r3, r0
- ldrb r0, [r5]
- cmp r0, 0x14
- beq _08098592
- ldr r0, _08098580
- adds r1, r3, r0
- ldrh r0, [r1]
- subs r0, 0x1
- movs r4, 0
- strh r0, [r1]
- ldr r0, _08098584
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r0, _08098588
- adds r3, 0xA8
- str r4, [sp]
- ldrh r1, [r1]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- ldrh r1, [r2]
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- movs r0, 0x8
- bl sub_80994A8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _0809858C
- movs r0, 0x1
- b _08098594
- .align 2, 0
-_08098578: .4byte 0x02000000
-_0809857C: .4byte 0x000008ad
-_08098580: .4byte 0x000008a8
-_08098584: .4byte 0x000008aa
-_08098588: .4byte 0x06007800
-_0809858C:
- ldr r1, _0809859C
- movs r0, 0x1
- strb r0, [r1]
-_08098592:
- movs r0, 0
-_08098594:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809859C: .4byte gUnknown_0203847C
- thumb_func_end sub_8098520
-
- thumb_func_start add_to_c3_somehow
-add_to_c3_somehow: @ 80985A0
- ldr r1, _080985BC
- ldr r0, _080985C0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _080985C4
- adds r2, r1, r0
- movs r0, 0x16
- strh r0, [r2]
- ldr r0, _080985C8
- adds r1, r0
- strb r3, [r1]
- bx lr
- .align 2, 0
-_080985BC: .4byte 0x02000000
-_080985C0: .4byte 0x000008a8
-_080985C4: .4byte 0x000008aa
-_080985C8: .4byte 0x000008ad
- thumb_func_end add_to_c3_somehow
-
- thumb_func_start sub_80985CC
-sub_80985CC: @ 80985CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r3, _08098640
- ldr r0, _08098644
- adds r6, r3, r0
- ldrb r0, [r6]
- cmp r0, 0x14
- beq _0809867A
- ldr r2, _08098648
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- movs r2, 0
- mov r9, r2
- strh r0, [r1]
- ldr r0, _0809864C
- adds r4, r3, r0
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldr r5, _08098650
- adds r3, 0xA8
- mov r8, r3
- str r2, [sp]
- ldrh r0, [r1]
- str r0, [sp, 0x4]
- movs r7, 0xC
- str r7, [sp, 0x8]
- ldrh r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_809D034
- ldrh r2, [r4]
- movs r4, 0x1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0xA
- movs r3, 0xC
- bl sub_809D16C
- movs r0, 0x8
- negs r0, r0
- bl sub_80994A8
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _08098654
- movs r0, 0x1
- b _0809867C
- .align 2, 0
-_08098640: .4byte 0x02000000
-_08098644: .4byte 0x000008ad
-_08098648: .4byte 0x000008a8
-_0809864C: .4byte 0x000008aa
-_08098650: .4byte 0x06007800
-_08098654:
- ldr r0, _0809868C
- movs r1, 0
- strb r1, [r0]
- bl sub_809954C
- bl party_compaction
- str r7, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- mov r3, r8
- bl sub_809D034
-_0809867A:
- movs r0, 0
-_0809867C:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809868C: .4byte gUnknown_0203847C
- thumb_func_end sub_80985CC
-
- thumb_func_start sub_8098690
-sub_8098690: @ 8098690
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- cmp r0, 0
- beq _080986C0
- ldr r0, _080986B8
- ldr r3, _080986BC
- movs r1, 0xC
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
- b _080986DA
- .align 2, 0
-_080986B8: .4byte 0x06007800
-_080986BC: .4byte 0x020000a8
-_080986C0:
- ldr r0, _080986E0
- ldr r3, _080986E4
- movs r1, 0xC
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
-_080986DA:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080986E0: .4byte 0x06007800
-_080986E4: .4byte 0x020000a8
- thumb_func_end sub_8098690
-
- thumb_func_start sub_80986E8
-sub_80986E8: @ 80986E8
- ldr r1, _08098704
- ldr r2, _08098708
- adds r0, r1, r2
- movs r3, 0x1
- strb r3, [r0]
- movs r0, 0x8B
- lsls r0, 4
- adds r2, r1, r0
- movs r0, 0x1E
- strb r0, [r2]
- ldr r2, _0809870C
- adds r1, r2
- strb r3, [r1]
- bx lr
- .align 2, 0
-_08098704: .4byte 0x02000000
-_08098708: .4byte 0x000008af
-_0809870C: .4byte 0x000008b1
- thumb_func_end sub_80986E8
-
- thumb_func_start sub_8098710
-sub_8098710: @ 8098710
- push {lr}
- ldr r0, _0809872C
- ldr r2, _08098730
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08098728
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8098690
-_08098728:
- pop {r0}
- bx r0
- .align 2, 0
-_0809872C: .4byte 0x02000000
-_08098730: .4byte 0x000008af
- thumb_func_end sub_8098710
-
- thumb_func_start sub_8098734
-sub_8098734: @ 8098734
- push {lr}
- ldr r2, _08098774
- ldr r1, _08098778
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098770
- movs r0, 0x8B
- lsls r0, 4
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bls _08098770
- movs r0, 0
- strb r0, [r1]
- movs r3, 0
- ldr r0, _0809877C
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08098768
- movs r3, 0x1
-_08098768:
- strb r3, [r1]
- ldrb r0, [r1]
- bl sub_8098690
-_08098770:
- pop {r0}
- bx r0
- .align 2, 0
-_08098774: .4byte 0x02000000
-_08098778: .4byte 0x000008af
-_0809877C: .4byte 0x000008b1
- thumb_func_end sub_8098734
-
- thumb_func_start sub_8098780
-sub_8098780: @ 8098780
- push {r4-r6,lr}
- sub sp, 0x10
- movs r4, 0x1
- ldr r6, _080987D4
- movs r5, 0x80
- lsls r5, 9
-_0809878C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080987D8
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080987A0
- movs r0, 0x1
-_080987A0:
- movs r1, 0x10
- cmp r0, 0
- beq _080987A8
- movs r1, 0xC
-_080987A8:
- lsrs r2, r5, 16
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0xC0
- lsls r0, 10
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x5
- ble _0809878C
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080987D4: .4byte 0x020000a8
-_080987D8: .4byte gPlayerParty
- thumb_func_end sub_8098780
-
- thumb_func_start sub_80987DC
-sub_80987DC: @ 80987DC
- push {lr}
- sub sp, 0x10
- bl sub_8098780
- ldr r0, _08098804
- ldr r3, _08098808
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- movs r1, 0x16
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08098804: .4byte 0x06007800
-_08098808: .4byte 0x020000a8
- thumb_func_end sub_80987DC
-
- thumb_func_start sub_809880C
-sub_809880C: @ 809880C
- push {lr}
- ldr r0, _08098828
- ldr r1, _0809882C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x6
- bl PlaySE
- bl sub_80984E8
- pop {r0}
- bx r0
- .align 2, 0
-_08098828: .4byte 0x02000000
-_0809882C: .4byte 0x000008ae
- thumb_func_end sub_809880C
-
- thumb_func_start sub_8098830
-sub_8098830: @ 8098830
- push {r4,r5,lr}
- ldr r5, _08098848
- ldr r0, _0809884C
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08098866
- cmp r0, 0x1
- bgt _08098850
- cmp r0, 0
- beq _08098856
- b _08098890
- .align 2, 0
-_08098848: .4byte 0x02000000
-_0809884C: .4byte 0x000008ae
-_08098850:
- cmp r0, 0x2
- beq _0809888C
- b _08098890
-_08098856:
- bl sub_8098520
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- bl sub_809B068
- b _0809887E
-_08098866:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- ldr r1, _08098888
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809887E
- bl BoxSetMosaic
-_0809887E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08098890
- .align 2, 0
-_08098888: .4byte 0x000011f6
-_0809888C:
- movs r0, 0
- b _08098892
-_08098890:
- movs r0, 0x1
-_08098892:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098830
-
- thumb_func_start sub_8098898
-sub_8098898: @ 8098898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080988C4
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _080988B8
- b _080989F4
-_080988B8:
- lsls r0, 2
- ldr r1, _080988C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080988C4: .4byte gUnknown_083B6DF4
-_080988C8: .4byte _080988CC
- .align 2, 0
-_080988CC:
- .4byte _080989F4
- .4byte _08098930
- .4byte _080988E8
- .4byte _08098974
- .4byte _08098954
- .4byte _08098910
- .4byte _080989B8
-_080988E8:
- ldr r4, _08098904
- ldr r1, _08098908
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _0809890C
- adds r4, r0
- adds r0, r2, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098904: .4byte 0x02002694
-_08098908: .4byte gUnknown_083B6DF4
-_0809890C: .4byte 0xffffeb66
-_08098910:
- ldr r4, _08098928
- ldr r1, _0809892C
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r4, 0x50
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098928: .4byte 0x02002694
-_0809892C: .4byte gUnknown_083B6DF4
-_08098930:
- ldr r0, _08098948
- ldr r2, _0809894C
- adds r1, r0, r2
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098950
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_08098948: .4byte 0x02002694
-_0809894C: .4byte 0xffffeb66
-_08098950: .4byte gUnknown_083B6DF4
-_08098954:
- ldr r0, _0809896C
- adds r1, r0, 0
- adds r1, 0x50
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098970
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_0809896C: .4byte 0x02002694
-_08098970: .4byte gUnknown_083B6DF4
-_08098974:
- ldr r1, _080989AC
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- adds r4, 0x1
- ldr r5, _080989B0
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080989B4
- adds r5, r0
- adds r0, r2, 0
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989AC: .4byte gUnknown_083B6DF4
-_080989B0: .4byte 0x02002694
-_080989B4: .4byte 0xffffeb66
-_080989B8:
- ldr r1, _080989EC
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- subs r4, 0x1
- ldr r5, _080989F0
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- subs r0, r2, 0x1
- adds r5, 0x50
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989EC: .4byte gUnknown_083B6DF4
-_080989F0: .4byte 0x02002694
-_080989F4:
- ldr r0, _08098A2C
- ldr r2, _08098A30
- lsls r1, r5, 3
- adds r1, r2
- ldr r1, [r1]
-_080989FE:
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _08098A34
- adds r3, r0, 0
- subs r3, 0x12
- cmp r2, r0
- bcs _08098A18
- movs r1, 0
-_08098A10:
- strb r1, [r2]
- adds r2, 0x1
- cmp r2, r0
- bcc _08098A10
-_08098A18:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r3, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A2C: .4byte 0x02002694
-_08098A30: .4byte gUnknown_083B6DF4
-_08098A34: .4byte 0x020026a6
- thumb_func_end sub_8098898
-
- thumb_func_start sub_8098A38
-sub_8098A38: @ 8098A38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0
- bl DisplayYesNoMenu
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A38
-
- thumb_func_start sub_8098A5C
-sub_8098A5C: @ 8098A5C
- push {lr}
- bl sub_8072DEC
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8098A5C
-
- thumb_func_start sub_8098A80
-sub_8098A80: @ 8098A80
- push {lr}
- bl sub_809CDCC
- movs r0, 0xC
- bl sub_809CDEC
- movs r0, 0xD
- bl sub_809CDEC
- movs r0, 0xE
- bl sub_809CDEC
- movs r0, 0xF
- bl sub_809CDEC
- bl sub_809CE84
- pop {r0}
- bx r0
- thumb_func_end sub_8098A80
-
- thumb_func_start sub_8098AA8
-sub_8098AA8: @ 8098AA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_809CDCC
- cmp r4, 0x1
- beq _08098AE6
- cmp r4, 0x1
- bgt _08098AC2
- cmp r4, 0
- beq _08098ACC
- b _08098B32
-_08098AC2:
- cmp r5, 0x2
- beq _08098B00
- cmp r5, 0x3
- beq _08098B1A
- b _08098B32
-_08098ACC:
- movs r0, 0x10
- bl sub_809CDEC
- movs r0, 0x11
- bl sub_809CDEC
- movs r0, 0x12
- bl sub_809CDEC
- movs r0, 0x13
- bl sub_809CDEC
- b _08098B32
-_08098AE6:
- movs r0, 0x14
- bl sub_809CDEC
- movs r0, 0x15
- bl sub_809CDEC
- movs r0, 0x16
- bl sub_809CDEC
- movs r0, 0x17
- bl sub_809CDEC
- b _08098B32
-_08098B00:
- movs r0, 0x18
- bl sub_809CDEC
- movs r0, 0x19
- bl sub_809CDEC
- movs r0, 0x1A
- bl sub_809CDEC
- movs r0, 0x1B
- bl sub_809CDEC
- b _08098B32
-_08098B1A:
- movs r0, 0x1C
- bl sub_809CDEC
- movs r0, 0x1D
- bl sub_809CDEC
- movs r0, 0x1E
- bl sub_809CDEC
- movs r0, 0x1F
- bl sub_809CDEC
-_08098B32:
- bl sub_809CE84
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8098AA8
-
- thumb_func_start get_preferred_box
-get_preferred_box: @ 8098B3C
- ldr r0, _08098B44
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098B44: .4byte gPokemonStorage
- thumb_func_end get_preferred_box
-
- thumb_func_start sub_8098B48
-sub_8098B48: @ 8098B48
- push {r4,r5,lr}
- bl sub_809D51C
- movs r2, 0
- ldr r1, _08098BD8
- ldr r0, [r1]
- ldr r4, _08098BDC
- adds r3, r0, r4
- movs r4, 0
- adds r5, r1, 0
-_08098B5C:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B5C
- movs r2, 0
- ldr r0, _08098BD8
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r3, r0, r1
- movs r1, 0
-_08098B7A:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B7A
- movs r2, 0
- ldr r0, _08098BD8
- ldr r0, [r0]
- ldr r4, _08098BE0
- adds r3, r0, r4
- movs r1, 0
-_08098B96:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08098B96
- movs r2, 0
- ldr r0, _08098BD8
- ldr r0, [r0]
- ldr r1, _08098BE4
- adds r3, r0, r1
- movs r1, 0
-_08098BB2:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098BB2
- ldr r0, [r5]
- ldr r2, _08098BE8
- adds r1, r0, r2
- movs r2, 0
- str r2, [r1]
- ldr r4, _08098BEC
- adds r0, r4
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098BD8: .4byte gUnknown_083B6DB4
-_08098BDC: .4byte 0x000010d0
-_08098BE0: .4byte 0x00001038
-_08098BE4: .4byte 0x00001050
-_08098BE8: .4byte 0x00001034
-_08098BEC: .4byte 0x00000d5c
- thumb_func_end sub_8098B48
-
- thumb_func_start sub_8098BF0
-sub_8098BF0: @ 8098BF0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08098C38
- ldr r5, [r0]
- ldr r0, _08098C3C
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x7
- str r1, [sp, 0x4]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8099AFC
- ldr r1, _08098C40
- adds r5, r1
- str r0, [r5]
- ldr r1, _08098C44
- str r1, [r0, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098C38: .4byte gUnknown_083B6DB4
-_08098C3C: .4byte 0x000025b4
-_08098C40: .4byte 0x00001034
-_08098C44: .4byte sub_80999C4
- thumb_func_end sub_8098BF0
-
- thumb_func_start sub_8098C48
-sub_8098C48: @ 8098C48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _08098CCC
- adds r6, r0, r1
- movs r0, 0
- mov r8, r0
- movs r7, 0
-_08098C6A:
- movs r5, 0
- adds r1, r7, 0x1
- mov r9, r1
-_08098C70:
- adds r0, r6, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08098CD8
- adds r0, r6, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 19
- movs r3, 0xC8
- lsls r3, 15
- adds r2, r3
- asrs r2, 16
- lsls r3, r7, 1
- adds r3, r7
- lsls r3, 19
- movs r0, 0xB0
- lsls r0, 14
- adds r3, r0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- asrs r3, 16
- bl sub_8099AFC
- ldr r1, _08098CD0
- ldr r1, [r1]
- mov r3, r8
- lsls r2, r3, 2
- ldr r3, _08098CD4
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- b _08098CE8
- .align 2, 0
-_08098CCC: .4byte gUnknown_020300A4
-_08098CD0: .4byte gUnknown_083B6DB4
-_08098CD4: .4byte 0x00001050
-_08098CD8:
- ldr r0, _08098D18
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08098D1C
- adds r0, r3
- adds r0, r1
- str r4, [r0]
-_08098CE8:
- adds r6, 0x50
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08098C70
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08098C6A
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098D18: .4byte gUnknown_083B6DB4
-_08098D1C: .4byte 0x00001050
- thumb_func_end sub_8098C48
-
- thumb_func_start sub_8098D20
-sub_8098D20: @ 8098D20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 5
- lsls r0, r4, 2
- mov r9, r0
- adds r0, r4
- lsls r0, 4
- ldr r1, _08098DD4
- adds r0, r1
- adds r7, r2, r0
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _08098DC4
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- adds r6, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- lsls r5, r0, 1
- adds r5, r0
- lsls r5, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r5, r1
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 19
- movs r2, 0xB0
- lsls r2, 14
- adds r4, r2
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8099AFC
- ldr r1, _08098DD8
- ldr r1, [r1]
- ldr r2, _08098DDC
- adds r1, r2
- add r1, r9
- str r0, [r1]
-_08098DC4:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098DD4: .4byte gUnknown_020300A4
-_08098DD8: .4byte gUnknown_083B6DB4
-_08098DDC: .4byte 0x00001050
- thumb_func_end sub_8098D20
-
- thumb_func_start sub_8098DE0
-sub_8098DE0: @ 8098DE0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r0, _08098E18
- ldr r0, [r0]
- ldr r1, _08098E1C
- adds r3, r0, r1
- movs r6, 0x1
- ldr r5, _08098E20
-_08098DF4:
- lsls r0, r2, 2
- adds r1, r3, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08098E08
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- strh r6, [r0, 0x36]
- ldr r0, [r1]
- str r5, [r0, 0x1C]
-_08098E08:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098DF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098E18: .4byte gUnknown_083B6DB4
-_08098E1C: .4byte 0x00001050
-_08098E20: .4byte sub_8098E68
- thumb_func_end sub_8098DE0
-
- thumb_func_start sub_8098E24
-sub_8098E24: @ 8098E24
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E40
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- b _08098E56
-_08098E40:
- ldr r0, _08098E5C
- ldr r1, [r0]
- ldr r3, _08098E60
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrh r0, [r2, 0x34]
- strh r0, [r2, 0x20]
- ldr r0, _08098E64
- str r0, [r2, 0x1C]
-_08098E56:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E5C: .4byte gUnknown_083B6DB4
-_08098E60: .4byte 0x00001178
-_08098E64: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E24
-
- thumb_func_start sub_8098E68
-sub_8098E68: @ 8098E68
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x36]
- movs r3, 0x36
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E7C
- subs r0, r1, 0x1
- strh r0, [r2, 0x36]
- b _08098E98
-_08098E7C:
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x38]
- subs r0, 0x45
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB6
- bls _08098E98
- ldr r0, _08098E9C
- str r0, [r2, 0x1C]
-_08098E98:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E68
-
- thumb_func_start sub_8098EA0
-sub_8098EA0: @ 8098EA0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r0, _08098ED8
- ldr r0, [r0]
- ldr r1, _08098EDC
- adds r7, r0, r1
-_08098EB0:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _08098EC2
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08098EC2:
- adds r0, r5, 0x6
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _08098EB0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098ED8: .4byte gUnknown_083B6DB4
-_08098EDC: .4byte 0x00001050
- thumb_func_end sub_8098EA0
-
- thumb_func_start sub_8098EE0
-sub_8098EE0: @ 8098EE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 16
- movs r0, 0x2C
- str r0, [sp, 0x10]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- mov r10, r0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsrs r3, r2, 16
- str r3, [sp, 0xC]
- asrs r2, 16
- adds r1, r0, 0
- muls r1, r2
- mov r4, r10
- subs r1, r4, r1
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x14]
- mov r9, r0
- ldr r0, _08098FF8
- ldr r0, [r0]
- ldr r2, _08098FFC
- adds r2, r0
- mov r8, r2
- ldr r3, _08099000
- adds r3, r0, r3
- str r3, [sp, 0x20]
- lsls r1, 16
- str r1, [sp, 0x1C]
-_08098F42:
- mov r4, r8
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r7, r6, 2
- adds r1, r7, r6
- lsls r1, 4
- ldr r2, _08099004
- adds r4, r1, r2
- adds r0, r4
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08098FC8
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r0, r4
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldr r2, [sp, 0x10]
- lsls r3, r2, 16
- asrs r3, 16
- movs r0, 0x2
- str r0, [sp]
- ldr r4, [sp, 0x18]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- ldr r4, [sp, 0x1C]
- asrs r2, r4, 16
- bl sub_8099AFC
- ldr r2, [sp, 0x20]
- adds r1, r2, r7
- str r0, [r1]
- cmp r0, 0
- beq _08098FC8
- mov r3, sp
- ldrh r3, [r3, 0x8]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- mov r4, sp
- ldrh r4, [r4, 0xC]
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- mov r2, r10
- strh r2, [r0, 0x34]
- ldr r1, [r1]
- ldr r0, _08099008
- str r0, [r1, 0x1C]
- ldr r0, [sp, 0x14]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
-_08098FC8:
- adds r0, r6, 0x6
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x18
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _08098F42
- ldr r0, [sp, 0x14]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08098FF8: .4byte gUnknown_083B6DB4
-_08098FFC: .4byte 0x0000117d
-_08099000: .4byte 0x00001050
-_08099004: .4byte gUnknown_020300A4
-_08099008: .4byte sub_8098E24
- thumb_func_end sub_8098EE0
-
- thumb_func_start sub_809900C
-sub_809900C: @ 809900C
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _08099058
- ldr r5, [r4]
- ldr r3, _0809905C
- adds r2, r5, r3
- movs r3, 0
- strb r3, [r2]
- ldr r6, _08099060
- adds r2, r5, r6
- strb r0, [r2]
- ldr r2, _08099064
- adds r0, r5, r2
- strb r1, [r0]
- subs r6, 0xB
- adds r2, r5, r6
- movs r0, 0x20
- strh r0, [r2]
- lsls r1, 24
- asrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- negs r0, r0
- adds r6, 0x4
- adds r2, r5, r6
- strh r0, [r2]
- ldr r2, _08099068
- adds r0, r5, r2
- strh r3, [r0]
- cmp r1, 0
- ble _08099070
- ldr r3, _0809906C
- adds r1, r5, r3
- movs r0, 0
- b _08099076
- .align 2, 0
-_08099058: .4byte gUnknown_083B6DB4
-_0809905C: .4byte 0x0000117c
-_08099060: .4byte 0x0000117d
-_08099064: .4byte 0x0000117b
-_08099068: .4byte 0x00001178
-_0809906C: .4byte 0x0000117a
-_08099070:
- ldr r6, _080990A0
- adds r1, r5, r6
- movs r0, 0x5
-_08099076:
- strb r0, [r1]
- ldr r2, [r4]
- ldr r1, _080990A0
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x64
- ldr r3, _080990A4
- adds r1, r2, r3
- strh r0, [r1]
- ldr r6, _080990A8
- adds r2, r6
- movs r1, 0
- ldrsh r0, [r2, r1]
- bl sub_8098DE0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080990A0: .4byte 0x0000117a
-_080990A4: .4byte 0x00001174
-_080990A8: .4byte 0x00001176
- thumb_func_end sub_809900C
-
- thumb_func_start sub_80990AC
-sub_80990AC: @ 80990AC
- push {r4-r6,lr}
- ldr r0, _080990D4
- ldr r4, [r0]
- ldr r0, _080990D8
- adds r3, r4, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _080990C0
- subs r0, 0x1
- strh r0, [r3]
-_080990C0:
- ldr r1, _080990DC
- adds r6, r4, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08099138
- cmp r0, 0x1
- bgt _080990E0
- cmp r0, 0
- beq _080990E8
- b _080991F0
- .align 2, 0
-_080990D4: .4byte gUnknown_083B6DB4
-_080990D8: .4byte 0x00001172
-_080990DC: .4byte 0x0000117c
-_080990E0:
- cmp r0, 0x2
- bne _080990E6
- b _080991E0
-_080990E6:
- b _080991F0
-_080990E8:
- ldr r2, _0809912C
- adds r5, r4, r2
- ldr r3, _08099130
- adds r0, r4, r3
- ldrh r0, [r0]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBA
- bhi _08099104
- b _080991F8
-_08099104:
- adds r2, 0x6
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_8098EA0
- ldr r3, _08099134
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _080991F8
- .align 2, 0
-_0809912C: .4byte 0x00001174
-_08099130: .4byte 0x00001176
-_08099134: .4byte 0x0000117b
-_08099138:
- ldr r2, _08099194
- adds r1, r4, r2
- ldr r5, _08099198
- adds r2, r4, r5
- ldrh r0, [r2]
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, _0809919C
- adds r5, r4, r0
- ldrb r0, [r5]
- ldrh r1, [r3]
- movs r3, 0
- ldrsh r2, [r2, r3]
- bl sub_8098EE0
- ldr r2, _080991A0
- adds r1, r4, r2
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _080991A4
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _08099178
- ldrb r0, [r5]
- cmp r0, 0x5
- beq _08099182
-_08099178:
- cmp r1, 0
- bge _080991B0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080991B0
-_08099182:
- ldr r0, _080991A8
- ldr r1, [r0]
- ldr r2, _080991AC
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080991F8
- .align 2, 0
-_08099194: .4byte 0x00001174
-_08099198: .4byte 0x00001176
-_0809919C: .4byte 0x0000117a
-_080991A0: .4byte 0x00001178
-_080991A4: .4byte 0x0000117b
-_080991A8: .4byte gUnknown_083B6DB4
-_080991AC: .4byte 0x0000117c
-_080991B0:
- ldr r0, _080991D0
- ldr r1, [r0]
- ldr r5, _080991D4
- adds r3, r1, r5
- ldr r2, _080991D8
- adds r0, r1, r2
- ldrb r0, [r0]
- ldrb r5, [r3]
- adds r0, r5
- movs r2, 0
- strb r0, [r3]
- ldr r0, _080991DC
- adds r1, r0
- strb r2, [r1]
- b _080991F8
- .align 2, 0
-_080991D0: .4byte gUnknown_083B6DB4
-_080991D4: .4byte 0x0000117a
-_080991D8: .4byte 0x0000117b
-_080991DC: .4byte 0x0000117c
-_080991E0:
- ldr r1, _080991F4
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080991F8
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080991F0:
- movs r0, 0
- b _080991FA
- .align 2, 0
-_080991F4: .4byte 0x00001178
-_080991F8:
- movs r0, 0x1
-_080991FA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80990AC
-
- thumb_func_start sub_8099200
-sub_8099200: @ 8099200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080992A0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x68
- movs r3, 0x40
- bl sub_8099AFC
- ldr r1, _080992A4
- ldr r1, [r1]
- ldr r2, _080992A8
- adds r1, r2
- str r0, [r1]
- movs r7, 0x1
- movs r6, 0x1
-_08099246:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080992A0
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080992AC
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- subs r0, r6, 0x1
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 19
- movs r0, 0x80
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x98
- bl sub_8099AFC
- ldr r1, _080992A4
- ldr r1, [r1]
- lsls r2, r6, 2
- ldr r3, _080992A8
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080992BA
- .align 2, 0
-_080992A0: .4byte gPlayerParty
-_080992A4: .4byte gUnknown_083B6DB4
-_080992A8: .4byte 0x00001038
-_080992AC:
- ldr r0, _08099308
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0809930C
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080992BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08099246
- mov r3, r8
- cmp r3, 0
- bne _080992FA
- movs r6, 0
- cmp r6, r7
- bcs _080992FA
- ldr r0, _08099308
- ldr r0, [r0]
- ldr r1, _0809930C
- adds r3, r0, r1
- movs r4, 0x4
-_080992DA:
- lsls r1, r6, 2
- adds r1, r3, r1
- ldr r2, [r1]
- ldrh r0, [r2, 0x22]
- subs r0, 0xA0
- strh r0, [r2, 0x22]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080992DA
-_080992FA:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099308: .4byte gUnknown_083B6DB4
-_0809930C: .4byte 0x00001038
- thumb_func_end sub_8099200
-
- thumb_func_start sub_8099310
-sub_8099310: @ 8099310
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08099368
- ldr r2, [r0]
- ldr r0, _0809936C
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- movs r6, 0
- mov r8, r2
- ldr r7, _0809936C
- add r7, r8
-_0809932C:
- lsls r1, r5, 2
- ldr r0, _08099370
- add r0, r8
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099354
- cmp r5, r6
- beq _0809934E
- adds r1, r6, 0
- bl sub_8099388
- movs r0, 0
- str r0, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_0809934E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08099354:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809932C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099368: .4byte gUnknown_083B6DB4
-_0809936C: .4byte 0x00001171
-_08099370: .4byte 0x00001038
- thumb_func_end sub_8099310
-
- thumb_func_start sub_8099374
-sub_8099374: @ 8099374
- ldr r0, _08099380
- ldr r0, [r0]
- ldr r1, _08099384
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08099380: .4byte gUnknown_083B6DB4
-_08099384: .4byte 0x00001171
- thumb_func_end sub_8099374
-
- thumb_func_start sub_8099388
-sub_8099388: @ 8099388
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- strh r1, [r2, 0x30]
- cmp r1, 0
- bne _0809939C
- movs r3, 0x68
- movs r4, 0x40
- b _080993AE
-_0809939C:
- movs r3, 0x98
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 19
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
-_080993AE:
- ldrh r0, [r2, 0x20]
- lsls r0, 3
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x22]
- lsls r0, 3
- strh r0, [r2, 0x34]
- lsls r1, r3, 3
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- subs r0, r1, r0
- cmp r0, 0
- bge _080993C8
- adds r0, 0x7
-_080993C8:
- asrs r0, 3
- strh r0, [r2, 0x36]
- lsls r0, r4, 16
- asrs r0, 13
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- subs r0, r1
- cmp r0, 0
- bge _080993DC
- adds r0, 0x7
-_080993DC:
- asrs r0, 3
- strh r0, [r2, 0x38]
- movs r0, 0x8
- strh r0, [r2, 0x3A]
- ldr r0, _080993F0
- str r0, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080993F0: .4byte sub_80993F4
- thumb_func_end sub_8099388
-
- thumb_func_start sub_80993F4
-sub_80993F4: @ 80993F4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08099424
- ldrh r0, [r3, 0x36]
- ldrh r4, [r3, 0x32]
- adds r0, r4
- strh r0, [r3, 0x32]
- ldrh r1, [r3, 0x38]
- ldrh r4, [r3, 0x34]
- adds r1, r4
- strh r1, [r3, 0x34]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r3, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r3, 0x22]
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08099468
-_08099424:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08099434
- movs r0, 0x68
- strh r0, [r3, 0x20]
- movs r0, 0x40
- b _08099446
-_08099434:
- movs r0, 0x98
- strh r0, [r3, 0x20]
- movs r4, 0x30
- ldrsh r1, [r3, r4]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x10
-_08099446:
- strh r0, [r3, 0x22]
- ldr r0, _08099470
- str r0, [r3, 0x1C]
- ldr r0, _08099474
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 2
- ldr r4, _08099478
- adds r0, r2, r4
- adds r0, r1
- str r3, [r0]
- ldr r0, _0809947C
- adds r2, r0
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_08099468:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099470: .4byte SpriteCallbackDummy
-_08099474: .4byte gUnknown_083B6DB4
-_08099478: .4byte 0x00001038
-_0809947C: .4byte 0x00001171
- thumb_func_end sub_80993F4
-
- thumb_func_start sub_8099480
-sub_8099480: @ 8099480
- push {r4,lr}
- ldr r0, _080994A0
- ldr r0, [r0]
- ldr r1, _080994A4
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099498
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08099498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080994A0: .4byte gUnknown_083B6DB4
-_080994A4: .4byte 0x00001034
- thumb_func_end sub_8099480
-
- thumb_func_start sub_80994A8
-sub_80994A8: @ 80994A8
- push {r4-r6,lr}
- movs r3, 0
- ldr r1, _080994FC
- ldr r1, [r1]
- ldr r2, _08099500
- adds r5, r1, r2
- lsls r0, 16
- asrs r4, r0, 16
- movs r6, 0x5
- negs r6, r6
-_080994BC:
- lsls r0, r3, 2
- adds r2, r5, r0
- ldr r1, [r2]
- cmp r1, 0
- beq _0809950E
- ldrh r0, [r1, 0x22]
- adds r0, r4, r0
- strh r0, [r1, 0x22]
- ldr r2, [r2]
- ldrh r1, [r2, 0x26]
- ldrh r0, [r2, 0x22]
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0xC0
- bls _08099504
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809950E
- .align 2, 0
-_080994FC: .4byte gUnknown_083B6DB4
-_08099500: .4byte 0x00001038
-_08099504:
- adds r2, 0x3E
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r2]
-_0809950E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080994BC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80994A8
-
- thumb_func_start sub_8099520
-sub_8099520: @ 8099520
- push {r4,lr}
- lsls r0, 24
- ldr r1, _08099544
- ldr r1, [r1]
- lsrs r0, 22
- ldr r2, _08099548
- adds r1, r2
- adds r4, r1, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809953E
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809953E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099544: .4byte gUnknown_083B6DB4
-_08099548: .4byte 0x00001038
- thumb_func_end sub_8099520
-
- thumb_func_start sub_809954C
-sub_809954C: @ 809954C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0809957C
- ldr r0, [r0]
- ldr r1, _08099580
- adds r6, r0, r1
-_08099558:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809956A
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809956A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08099558
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809957C: .4byte gUnknown_083B6DB4
-_08099580: .4byte 0x00001038
- thumb_func_end sub_809954C
-
- thumb_func_start sub_8099584
-sub_8099584: @ 8099584
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- cmp r4, 0
- bne _080995B4
- ldr r3, _080995AC
- ldr r0, [r3]
- ldr r5, _080995B0
- adds r2, r0, r5
- lsls r1, 2
- adds r5, 0x4
- adds r0, r5
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r4, [r0]
- b _080995D0
- .align 2, 0
-_080995AC: .4byte gUnknown_083B6DB4
-_080995B0: .4byte 0x00001034
-_080995B4:
- cmp r4, 0x1
- bne _080995F4
- ldr r3, _080995FC
- ldr r0, [r3]
- ldr r1, _08099600
- adds r2, r0, r1
- lsls r1, r5, 2
- ldr r4, _08099604
- adds r0, r4
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- movs r1, 0
- str r1, [r0]
-_080995D0:
- ldr r2, [r3]
- ldr r5, _08099600
- adds r2, r5
- ldr r1, [r2]
- ldr r0, _08099608
- str r0, [r1, 0x1C]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080995F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080995FC: .4byte gUnknown_083B6DB4
-_08099600: .4byte 0x00001034
-_08099604: .4byte 0x00001050
-_08099608: .4byte sub_80999C4
- thumb_func_end sub_8099584
-
- thumb_func_start sub_809960C
-sub_809960C: @ 809960C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xE
- bne _08099654
- ldr r4, _08099648
- ldr r0, [r4]
- lsls r1, r6, 2
- ldr r2, _0809964C
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _08099650
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0xB
- strb r1, [r0]
- b _0809968A
- .align 2, 0
-_08099648: .4byte gUnknown_083B6DB4
-_0809964C: .4byte 0x00001038
-_08099650: .4byte 0x00001034
-_08099654:
- ldr r5, _080996A0
- ldr r0, [r5]
- lsls r1, r6, 2
- ldr r2, _080996A4
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _080996A8
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r4, [r3]
- adds r0, r6, 0
- movs r1, 0x6
- bl __umodsi3
- movs r1, 0x12
- subs r1, r0
- adds r4, 0x43
- strb r1, [r4]
- adds r4, r5, 0
-_0809968A:
- ldr r1, [r4]
- ldr r2, _080996A8
- adds r1, r2
- ldr r2, [r1]
- ldr r0, _080996AC
- str r0, [r2, 0x1C]
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080996A0: .4byte gUnknown_083B6DB4
-_080996A4: .4byte 0x00001050
-_080996A8: .4byte 0x00001034
-_080996AC: .4byte SpriteCallbackDummy
- thumb_func_end sub_809960C
-
- thumb_func_start sub_80996B0
-sub_80996B0: @ 80996B0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0xE
- bne _080996D8
- ldr r3, _080996CC
- ldr r1, [r3]
- ldr r0, _080996D0
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _080996D4
- b _080996E4
- .align 2, 0
-_080996CC: .4byte gUnknown_083B6DB4
-_080996D0: .4byte 0x000010c8
-_080996D4: .4byte 0x00001038
-_080996D8:
- ldr r3, _08099704
- ldr r1, [r3]
- ldr r0, _08099708
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _0809970C
-_080996E4:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- ldr r1, [r3]
- ldr r2, _08099710
- adds r0, r1, r2
- ldr r2, [r0]
- ldr r0, _08099714
- str r0, [r2, 0x1C]
- ldr r4, _08099718
- adds r1, r4
- movs r0, 0
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099704: .4byte gUnknown_083B6DB4
-_08099708: .4byte 0x000010c8
-_0809970C: .4byte 0x00001050
-_08099710: .4byte 0x00001034
-_08099714: .4byte SpriteCallbackDummy
-_08099718: .4byte 0x00001170
- thumb_func_end sub_80996B0
-
- thumb_func_start sub_809971C
-sub_809971C: @ 809971C
- push {r4-r7,lr}
- ldr r0, _08099730
- ldr r2, [r0]
- ldr r0, _08099734
- adds r7, r2, r0
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _08099738
- movs r0, 0
- b _08099800
- .align 2, 0
-_08099730: .4byte gUnknown_083B6DB4
-_08099734: .4byte 0x00001170
-_08099738:
- adds r0, 0x1
- strb r0, [r7]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809975E
- ldr r1, _08099808
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- ldr r4, _0809980C
- adds r0, r2, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
-_0809975E:
- ldr r0, _08099808
- adds r5, r2, r0
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r3, _08099810
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _08099778
- adds r0, 0xF
-_08099778:
- asrs r0, 4
- strh r0, [r1, 0x24]
- ldr r0, _0809980C
- adds r6, r2, r0
- ldr r1, [r6]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _08099792
- adds r0, 0xF
-_08099792:
- asrs r0, 4
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r7]
- cmp r0, 0x8
- bne _080997DE
- ldr r4, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldr r2, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r2, 0x43
- strb r0, [r2]
- ldr r0, [r5]
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080997DE:
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _080997FE
- ldr r1, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- str r0, [r6]
- ldr r0, [r5]
- str r1, [r0]
- ldr r1, [r6]
- ldr r0, _08099814
- str r0, [r1, 0x1C]
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r0, _08099818
- str r0, [r1, 0x1C]
-_080997FE:
- movs r0, 0x1
-_08099800:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08099808: .4byte 0x000010c8
-_0809980C: .4byte 0x00001034
-_08099810: .4byte gSineTable
-_08099814: .4byte sub_80999C4
-_08099818: .4byte SpriteCallbackDummy
- thumb_func_end sub_809971C
-
- thumb_func_start sub_809981C
-sub_809981C: @ 809981C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0x1
- beq _08099858
- cmp r0, 0x1
- bgt _08099836
- cmp r0, 0
- beq _0809983C
- b _080998C0
-_08099836:
- cmp r2, 0x2
- beq _0809987C
- b _080998C0
-_0809983C:
- ldr r3, _0809984C
- ldr r1, [r3]
- ldr r0, _08099850
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099854
- b _08099864
- .align 2, 0
-_0809984C: .4byte gUnknown_083B6DB4
-_08099850: .4byte 0x000010cc
-_08099854: .4byte 0x00001038
-_08099858:
- ldr r3, _08099870
- ldr r1, [r3]
- ldr r0, _08099874
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099878
-_08099864:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0
- b _0809988A
- .align 2, 0
-_08099870: .4byte gUnknown_083B6DB4
-_08099874: .4byte 0x000010cc
-_08099878: .4byte 0x00001050
-_0809987C:
- ldr r0, _080998C8
- ldr r1, [r0]
- ldr r3, _080998CC
- adds r2, r1, r3
- ldr r4, _080998D0
- adds r1, r4
- str r1, [r2]
-_0809988A:
- ldr r0, [r0]
- ldr r1, _080998CC
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080998C0
- bl InitSpriteAffineAnim
- ldr r0, [r4]
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, [r4]
- ldr r1, [r0]
- ldr r0, _080998D4
- str r0, [r1, 0x10]
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAffineAnim
-_080998C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080998C8: .4byte gUnknown_083B6DB4
-_080998CC: .4byte 0x000010cc
-_080998D0: .4byte 0x00001034
-_080998D4: .4byte gUnknown_083B6F5C
- thumb_func_end sub_809981C
-
- thumb_func_start sub_80998D8
-sub_80998D8: @ 80998D8
- push {lr}
- ldr r0, _080998FC
- ldr r0, [r0]
- ldr r1, _08099900
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0
- beq _080998F8
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _08099904
-_080998F8:
- movs r0, 0
- b _0809991A
- .align 2, 0
-_080998FC: .4byte gUnknown_083B6DB4
-_08099900: .4byte 0x000010cc
-_08099904:
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08099918
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r3]
-_08099918:
- movs r0, 0x1
-_0809991A:
- pop {r1}
- bx r1
- thumb_func_end sub_80998D8
-
- thumb_func_start sub_8099920
-sub_8099920: @ 8099920
- push {r4,lr}
- ldr r0, _08099950
- ldr r0, [r0]
- ldr r1, _08099954
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0809994A
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8099BE0
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_0809994A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099950: .4byte gUnknown_083B6DB4
-_08099954: .4byte 0x000010cc
- thumb_func_end sub_8099920
-
- thumb_func_start sub_8099958
-sub_8099958: @ 8099958
- push {lr}
- ldr r0, _08099988
- ldr r0, [r0]
- ldr r1, _0809998C
- adds r3, r0, r1
- ldr r0, [r3]
- ldr r0, [r0]
- cmp r0, 0
- beq _08099982
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08099982:
- pop {r0}
- bx r0
- .align 2, 0
-_08099988: .4byte gUnknown_083B6DB4
-_0809998C: .4byte 0x000010cc
- thumb_func_end sub_8099958
-
- thumb_func_start sub_8099990
-sub_8099990: @ 8099990
- push {lr}
- ldr r0, _080999A4
- ldr r0, [r0]
- ldr r1, _080999A8
- adds r2, r0, r1
- ldr r0, [r2]
- cmp r0, 0
- bne _080999AC
- movs r0, 0
- b _080999C0
- .align 2, 0
-_080999A4: .4byte gUnknown_083B6DB4
-_080999A8: .4byte 0x000010cc
-_080999AC:
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080999BE
- movs r0, 0
- str r0, [r2]
-_080999BE:
- movs r0, 0x1
-_080999C0:
- pop {r1}
- bx r1
- thumb_func_end sub_8099990
-
- thumb_func_start sub_80999C4
-sub_80999C4: @ 80999C4
- ldr r1, _080999E4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r2, [r1]
- ldrh r1, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r1, r2
- adds r1, 0x4
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080999E4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_80999C4
-
- thumb_func_start sub_80999E8
-sub_80999E8: @ 80999E8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _08099A58
- ldr r0, [r1]
- movs r2, 0x89
- lsls r2, 5
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, r3
- beq _08099A20
- adds r6, r2, 0
- movs r5, 0x89
- lsls r5, 5
-_08099A08:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A20
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08099A08
-_08099A20:
- cmp r4, 0x28
- bne _08099A60
- movs r4, 0
- ldr r0, [r2]
- movs r5, 0x89
- lsls r5, 5
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08099A4E
- adds r6, r2, 0
-_08099A36:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A4E
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08099A36
-_08099A4E:
- cmp r4, 0x28
- bne _08099A60
- ldr r0, _08099A5C
- b _08099A94
- .align 2, 0
-_08099A58: .4byte gUnknown_083B6DB4
-_08099A5C: .4byte 0x0000ffff
-_08099A60:
- ldr r1, [r2]
- lsls r2, r4, 1
- movs r5, 0x89
- lsls r5, 5
- adds r0, r1, r5
- adds r0, r2
- strh r3, [r0]
- ldr r0, _08099A9C
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r4, 20
- lsrs r4, 16
- ldr r1, _08099AA0
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r4, 5
- ldr r2, _08099AA4
- adds r1, r2
- ldr r2, _08099AA8
- bl CpuSet
- adds r0, r4, 0
-_08099A94:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08099A9C: .4byte 0x000010d0
-_08099AA0: .4byte gMonIconTable
-_08099AA4: .4byte 0x06010000
-_08099AA8: .4byte 0x04000080
- thumb_func_end sub_80999E8
-
- thumb_func_start sub_8099AAC
-sub_8099AAC: @ 8099AAC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0
- ldr r0, _08099AE4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r5, r0, r1
- subs r1, 0x50
- adds r4, r0, r1
- ldr r0, _08099AE8
- adds r7, r0, 0
-_08099AC6:
- lsls r1, r3, 1
- adds r2, r5, r1
- ldrh r0, [r2]
- cmp r0, r6
- bne _08099AEC
- adds r1, r4, r1
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ands r0, r7
- cmp r0, 0
- bne _08099AF6
- strh r0, [r2]
- b _08099AF6
- .align 2, 0
-_08099AE4: .4byte gUnknown_083B6DB4
-_08099AE8: .4byte 0x0000ffff
-_08099AEC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x27
- bls _08099AC6
-_08099AF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099AAC
-
- thumb_func_start sub_8099AFC
-sub_8099AFC: @ 8099AFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x18]
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r9, r5
- mov r2, sp
- ldr r0, _08099BAC
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- adds r0, r6, 0
- bl mon_icon_convert_unown_species_id
- mov r10, r0
- mov r6, r10
- mov r2, sp
- ldr r1, _08099BB0
- adds r1, r6, r1
- ldr r3, _08099BB4
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2, 0x2]
- adds r0, r6, 0
- bl sub_80999E8
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- ldr r0, _08099BB8
- cmp r5, r0
- beq _08099BCE
- ldr r7, [sp, 0x18]
- lsls r1, r7, 16
- asrs r1, 16
- mov r0, r8
- lsls r2, r0, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08099BC8
- ldr r1, _08099BBC
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldr r2, _08099BC0
- ands r2, r5
- ldrh r3, [r0, 0x4]
- ldr r1, _08099BC4
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- movs r1, 0x3
- ands r4, r1
- lsls r3, r4, 2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, 0x5]
- mov r1, r10
- strh r1, [r0, 0x2E]
- b _08099BD0
- .align 2, 0
-_08099BAC: .4byte gSpriteTemplate_83B6F14
-_08099BB0: .4byte gMonIconPaletteIndices
-_08099BB4: .4byte 0x0000dac0
-_08099BB8: .4byte 0x0000ffff
-_08099BBC: .4byte gSprites
-_08099BC0: .4byte 0x000003ff
-_08099BC4: .4byte 0xfffffc00
-_08099BC8:
- adds r0, r6, 0
- bl sub_8099AAC
-_08099BCE:
- movs r0, 0
-_08099BD0:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8099AFC
-
- thumb_func_start sub_8099BE0
-sub_8099BE0: @ 8099BE0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- bl sub_8099AAC
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099BE0
-
- thumb_func_start sub_8099BF8
-sub_8099BF8: @ 8099BF8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08099C50
- ldr r0, [r0]
- ldr r1, _08099C54
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r2, _08099C58
- adds r0, r2
- strh r1, [r0]
- str r1, [sp]
- ldr r1, _08099C5C
- mov r0, sp
- str r0, [r1]
- ldr r0, _08099C60
- str r0, [r1, 0x4]
- ldr r0, _08099C64
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8099EB0
- adds r0, r4, 0
- bl sub_809A23C
- bl sub_809A6DC
- adds r0, r4, 0
- bl sub_8098C48
- ldr r1, _08099C68
- ldr r2, _08099C6C
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099C50: .4byte gUnknown_083B6DB4
-_08099C54: .4byte 0x000008ba
-_08099C58: .4byte 0x000008b4
-_08099C5C: .4byte 0x040000d4
-_08099C60: .4byte 0x0600d000
-_08099C64: .4byte 0x85000400
-_08099C68: .4byte REG_BG2CNT
-_08099C6C: .4byte 0x00005a0a
- thumb_func_end sub_8099BF8
-
- thumb_func_start sub_8099C70
-sub_8099C70: @ 8099C70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- bl sub_8099D90
- lsls r0, 24
- asrs r4, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099EB0
- ldr r0, _08099D10
- ldr r2, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- ldr r3, _08099D14
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _08099D18
- adds r1, r2, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, _08099D1C
- adds r0, r2, r1
- strb r5, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CAE
- movs r1, 0x5
-_08099CAE:
- ldr r3, _08099D20
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D24
- adds r0, r2, r1
- strh r4, [r0]
- movs r1, 0x38
- cmp r4, 0
- ble _08099CC6
- movs r3, 0x84
- lsls r3, 1
- adds r1, r3, 0
-_08099CC6:
- movs r3, 0x8C
- lsls r3, 4
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CD6
- movs r1, 0x5
-_08099CD6:
- ldr r3, _08099D28
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D2C
- adds r0, r2, r1
- strh r4, [r0]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08099D30
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809900C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809A3D0
- adds r0, r4, 0
- bl sub_809A774
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099D10: .4byte gUnknown_083B6DB4
-_08099D14: .4byte 0x000008b6
-_08099D18: .4byte 0x000008b8
-_08099D1C: .4byte 0x000008bb
-_08099D20: .4byte 0x000008bc
-_08099D24: .4byte 0x000008be
-_08099D28: .4byte 0x000008c2
-_08099D2C: .4byte 0x000008c4
-_08099D30: .4byte 0x000008c8
- thumb_func_end sub_8099C70
-
- thumb_func_start sub_8099D34
-sub_8099D34: @ 8099D34
- push {r4,lr}
- bl sub_80990AC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08099D78
- ldr r1, [r0]
- ldr r0, _08099D7C
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08099D88
- ldr r4, _08099D80
- adds r2, r1, r4
- adds r4, 0x2
- adds r0, r1, r4
- ldrh r0, [r0]
- ldrh r1, [r2]
- adds r0, r1
- ldr r1, _08099D84
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _08099D74
- bl sub_809A598
- bl sub_809A810
-_08099D74:
- movs r0, 0x1
- b _08099D8A
- .align 2, 0
-_08099D78: .4byte gUnknown_083B6DB4
-_08099D7C: .4byte 0x000008b8
-_08099D80: .4byte 0x000008b4
-_08099D84: .4byte 0x000001ff
-_08099D88:
- adds r0, r2, 0
-_08099D8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D34
-
- thumb_func_start sub_8099D90
-sub_8099D90: @ 8099D90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- cmp r1, r4
- beq _08099DBA
-_08099DA4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xD
- bls _08099DB0
- movs r1, 0
-_08099DB0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r1, r4
- bne _08099DA4
-_08099DBA:
- movs r0, 0x1
- negs r0, r0
- cmp r2, 0x6
- bhi _08099DC4
- movs r0, 0x1
-_08099DC4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D90
-
- thumb_func_start sub_8099DCC
-sub_8099DCC: @ 8099DCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08099DF8
- ldr r2, _08099DFC
- adds r1, r2
- adds r0, r1
- movs r1, 0
- strb r4, [r0]
- ldr r0, _08099E00
- ldr r0, [r0]
- ldr r2, _08099E04
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099DF8: .4byte gPokemonStorage
-_08099DFC: .4byte 0x000083c2
-_08099E00: .4byte gUnknown_083B6DB4
-_08099E04: .4byte 0x00001032
- thumb_func_end sub_8099DCC
-
- thumb_func_start sub_8099E08
-sub_8099E08: @ 8099E08
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08099E24
- ldr r5, [r0]
- ldr r0, _08099E28
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08099E54
- cmp r0, 0x1
- bgt _08099E2C
- cmp r0, 0
- beq _08099E36
- b _08099EA6
- .align 2, 0
-_08099E24: .4byte gUnknown_083B6DB4
-_08099E28: .4byte 0x00001032
-_08099E2C:
- cmp r0, 0x2
- beq _08099E90
- cmp r0, 0x3
- beq _08099EA2
- b _08099EA6
-_08099E36:
- ldr r1, _08099E4C
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E50
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E4C: .4byte 0x00000d08
-_08099E50: .4byte 0x0000ffff
-_08099E54:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8099EB0
- bl sub_809A654
- ldr r1, _08099E88
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E8C
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E88: .4byte 0x00000d08
-_08099E8C: .4byte 0x0000ffff
-_08099E90:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
-_08099E9A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08099EA6
-_08099EA2:
- movs r0, 0
- b _08099EA8
-_08099EA6:
- movs r0, 0x1
-_08099EA8:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8099E08
-
- thumb_func_start sub_8099EB0
-sub_8099EB0: @ 8099EB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r1, 0
- beq _08099ED8
- ldr r0, _08099F38
- ldr r0, [r0]
- movs r2, 0
- ldr r3, _08099F3C
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _08099ED0
- movs r2, 0x1
-_08099ED0:
- strb r2, [r1]
- ldr r0, _08099F40
- bl sub_809A14C
-_08099ED8:
- ldr r0, _08099F44
- ldr r1, _08099F48
- adds r0, r1
- adds r0, r4, r0
- ldrb r4, [r0]
- lsls r4, 4
- ldr r0, _08099F4C
- adds r4, r0
- ldr r0, [r4, 0xC]
- ldr r1, _08099F38
- ldr r5, [r1]
- ldr r2, _08099F3C
- adds r6, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 20
- movs r3, 0x80
- lsls r3, 15
- adds r1, r3
- lsrs r1, 16
- movs r2, 0x60
- bl LoadPalette
- ldr r0, [r4, 0x8]
- ldr r1, _08099F50
- adds r5, r1
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08099F40
- lsls r2, r7, 24
- asrs r2, 24
- ldrb r3, [r6]
- adds r1, r5, 0
- bl sub_8099F58
- ldr r0, [r4]
- ldrb r1, [r6]
- lsls r1, 13
- ldr r2, _08099F54
- adds r1, r2
- bl LZ77UnCompVram
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099F38: .4byte gUnknown_083B6DB4
-_08099F3C: .4byte 0x000008ba
-_08099F40: .4byte 0x0600d000
-_08099F44: .4byte gPokemonStorage
-_08099F48: .4byte 0x000083c2
-_08099F4C: .4byte gWallpaperTable
-_08099F50: .4byte 0x00000d62
-_08099F54: .4byte 0x06008000
- thumb_func_end sub_8099EB0
-
- thumb_func_start sub_8099F58
-sub_8099F58: @ 8099F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r9, r0
- adds r5, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r3, 8
- str r0, [sp]
- lsls r0, r3, 1
- adds r0, r3
- adds r0, 0x4
- lsls r0, 28
- lsrs r0, 16
- str r0, [sp, 0x4]
- ldr r0, _08099FB8
- ldr r0, [r0]
- ldr r1, _08099FBC
- adds r0, r1
- ldrh r1, [r0]
- lsrs r1, 3
- adds r1, 0xA
- lsrs r0, r2, 24
- mov r8, r0
- asrs r2, 24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- movs r0, 0x3F
- ands r1, r0
- str r1, [sp, 0x8]
- adds r2, r1, 0
- cmp r2, 0xC
- bgt _08099FC0
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- adds r0, 0x80
- mov r1, r9
- adds r4, r1, r0
- movs r7, 0
- b _0809A020
- .align 2, 0
-_08099FB8: .4byte gUnknown_083B6DB4
-_08099FBC: .4byte 0x000008b4
-_08099FC0:
- cmp r2, 0x1F
- bgt _08099FE6
- movs r0, 0x20
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- adds r0, 0x80
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0x88
- lsls r7, 4
- add r7, r9
- b _0809A020
-_08099FE6:
- cmp r2, 0x2C
- bgt _08099FFE
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0
- b _0809A020
-_08099FFE:
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- mov r7, r9
- adds r7, 0x80
-_0809A020:
- movs r1, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x14]
- lsls r0, r6, 16
- asrs r0, 16
- mov r8, r0
- lsls r3, 16
- str r3, [sp, 0xC]
- asrs r2, r3, 16
- str r2, [sp, 0x10]
-_0809A036:
- movs r3, 0
- adds r0, r4, 0
- adds r0, 0x40
- str r0, [sp, 0x18]
- adds r2, r7, 0
- adds r2, 0x40
- str r2, [sp, 0x1C]
- adds r1, 0x1
- mov r10, r1
- cmp r3, r8
- bge _0809A07A
- ldr r0, _0809A0D4
- mov r12, r0
- movs r6, 0xF0
- lsls r6, 8
-_0809A054:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r4
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- blt _0809A054
-_0809A07A:
- movs r3, 0
- ldr r0, [sp, 0x10]
- cmp r3, r0
- bge _0809A0B4
- ldr r1, _0809A0D4
- mov r12, r1
- movs r6, 0xF0
- lsls r6, 8
- ldr r2, [sp, 0xC]
- asrs r4, r2, 16
-_0809A08E:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r7
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _0809A08E
-_0809A0B4:
- ldr r4, [sp, 0x18]
- ldr r7, [sp, 0x1C]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A036
- ldr r0, [sp, 0x14]
- asrs r2, r0, 24
- cmp r2, 0
- beq _0809A13A
- cmp r2, 0
- ble _0809A0D8
- ldr r1, [sp, 0x8]
- adds r1, 0x14
- b _0809A0DC
- .align 2, 0
-_0809A0D4: .4byte 0x00000fff
-_0809A0D8:
- ldr r1, [sp, 0x8]
- subs r1, 0x4
-_0809A0DC:
- movs r0, 0x3F
- ands r1, r0
- adds r4, r1, 0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A0EE
- lsls r0, 1
- adds r0, 0x80
- b _0809A0F6
-_0809A0EE:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A0F6:
- mov r1, r9
- adds r2, r1, r0
- movs r3, 0
- movs r6, 0
-_0809A0FE:
- movs r1, 0
- adds r5, r3, 0x1
- lsls r3, r4, 16
-_0809A104:
- strh r6, [r2]
- adds r2, 0x40
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A104
- asrs r0, r3, 16
- adds r4, r0, 0x1
- movs r0, 0x3F
- ands r4, r0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A126
- lsls r0, 1
- adds r0, 0x80
- b _0809A12E
-_0809A126:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A12E:
- mov r1, r9
- adds r2, r1, r0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0809A0FE
-_0809A13A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099F58
-
- thumb_func_start sub_809A14C
-sub_809A14C: @ 809A14C
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _0809A174
- ldr r0, [r0]
- ldr r1, _0809A178
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 3
- adds r3, r0, 0
- adds r3, 0x1E
- movs r0, 0x3F
- ands r3, r0
- adds r0, r3, 0
- cmp r0, 0x1F
- bgt _0809A17C
- lsls r0, 1
- movs r6, 0x98
- lsls r6, 3
- adds r0, r6
- b _0809A184
- .align 2, 0
-_0809A174: .4byte gUnknown_083B6DB4
-_0809A178: .4byte 0x000008b4
-_0809A17C:
- lsls r0, 1
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r1
-_0809A184:
- adds r2, r0
- movs r0, 0
- movs r5, 0
- movs r4, 0x3F
-_0809A18C:
- strh r5, [r2]
- adds r2, 0x2
- adds r3, 0x1
- ands r3, r4
- adds r1, r3, 0
- cmp r1, 0
- bne _0809A19E
- ldr r6, _0809A1B8
- adds r2, r6
-_0809A19E:
- cmp r1, 0x20
- bne _0809A1A8
- movs r1, 0xF8
- lsls r1, 3
- adds r2, r1
-_0809A1A8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2B
- bls _0809A18C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A1B8: .4byte 0xfffff7c0
- thumb_func_end sub_809A14C
-
- thumb_func_start sub_809A1BC
-sub_809A1BC: @ 809A1BC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _0809A228
- ldr r5, [r0]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0809A22C
- str r1, [r4]
- str r5, [r4, 0x4]
- movs r6, 0x80
- lsls r6, 1
- ldr r0, _0809A230
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809A234
- adds r1, r5, 0
- str r3, [sp, 0x4]
- bl sub_8004E3C
- str r5, [r4]
- ldr r3, [sp, 0x4]
- str r3, [r4, 0x4]
- ldr r1, _0809A238
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, r6
- str r0, [r4]
- adds r0, r3, 0
- adds r0, 0x80
- str r0, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, 0
- adds r0, 0x80
- str r0, [r4]
- adds r6, r3, r6
- str r6, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- adds r5, r0
- str r5, [r4]
- adds r3, r0
- str r3, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A228: .4byte gUnknown_083B6DB8
-_0809A22C: .4byte 0x040000d4
-_0809A230: .4byte 0x81000100
-_0809A234: .4byte gWindowConfig_81E6D38
-_0809A238: .4byte 0x80000040
- thumb_func_end sub_809A1BC
-
- thumb_func_start sub_809A23C
-sub_809A23C: @ 809A23C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809A384
- ldr r5, [r0]
- ldr r1, _0809A388
- adds r7, r5, r1
- str r7, [sp, 0x18]
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0x20]
- ldr r0, _0809A38C
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r3, _0809A390
- adds r0, r5, r3
- str r0, [sp]
- ldr r4, _0809A394
- strh r4, [r1, 0x4]
- str r0, [sp, 0x8]
- ldr r6, _0809A398
- strh r6, [r1, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldr r0, _0809A39C
- mov r9, r0
- ldr r0, _0809A3A0
- add r0, r9
- add r0, r8
- ldrb r1, [r0]
- ldr r2, _0809A3A4
- lsls r1, 2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r6, _0809A3A8
- adds r0, r5, r6
- strh r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _0809A3AC
- adds r0, r5, r2
- strh r1, [r0]
- mov r0, sp
- bl LoadSpritePalettes
- ldr r3, _0809A3B0
- adds r6, r5, r3
- movs r0, 0xFC
- lsls r0, 2
- str r0, [r6]
- adds r0, r4, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- movs r2, 0x87
- lsls r2, 1
- mov r10, r2
- add r1, r10
- ldr r3, _0809A3B4
- adds r2, r5, r3
- strh r1, [r2]
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- ldr r0, [r6]
- orrs r0, r1
- str r0, [r6]
- ldr r0, _0809A3B8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- add r1, r10
- ldr r2, _0809A3BC
- adds r5, r2
- strh r1, [r5]
- lsls r4, r0
- ldr r0, [r6]
- orrs r0, r4
- str r0, [r6]
- mov r3, r8
- lsls r4, r3, 3
- add r4, r8
- ldr r6, _0809A3C0
- add r9, r6
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_809A1BC
- ldr r0, [sp, 0x20]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- movs r4, 0
- lsls r0, 16
- asrs r6, r0, 16
-_0809A328:
- lsls r1, r4, 5
- adds r1, r6, r1
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0809A3C4
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0809A384
- ldr r5, [r0]
- lsls r0, r4, 2
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r5, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A3C8
- adds r0, r1
- str r0, [r2]
- lsls r1, r4, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _0809A328
- ldr r6, _0809A3CC
- adds r1, r5, r6
- movs r0, 0
- strb r0, [r1]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A384: .4byte gUnknown_083B6DB4
-_0809A388: .4byte 0x000008ca
-_0809A38C: .4byte 0x00030200
-_0809A390: .4byte 0x00000ccc
-_0809A394: .4byte 0x0000dac8
-_0809A398: .4byte 0xffffdac9
-_0809A39C: .4byte gPokemonStorage
-_0809A3A0: .4byte 0x000083c2
-_0809A3A4: .4byte gUnknown_083BB0A8
-_0809A3A8: .4byte 0x00000ce8
-_0809A3AC: .4byte 0x00000cea
-_0809A3B0: .4byte 0x00000d08
-_0809A3B4: .4byte 0x00000cec
-_0809A3B8: .4byte 0x0000dac9
-_0809A3BC: .4byte 0x00000cee
-_0809A3C0: .4byte 0x00008344
-_0809A3C4: .4byte gSpriteTemplate_83BB2B8
-_0809A3C8: .4byte gSprites
-_0809A3CC: .4byte 0x00000cca
- thumb_func_end sub_809A23C
-
- thumb_func_start sub_809A3D0
-sub_809A3D0: @ 809A3D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r3, _0809A43C
- ldr r5, [r3]
- ldr r1, _0809A440
- adds r0, r5, r1
- str r0, [sp, 0x18]
- add r2, sp, 0x18
- ldr r4, _0809A444
- mov r9, r4
- movs r6, 0xC0
- lsls r6, 10
- mov r8, r6
- ldr r0, _0809A448
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r0, _0809A44C
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- movs r1, 0
- ldr r7, _0809A450
- adds r4, r5, r7
- ldrb r0, [r4]
- adds r6, r2, 0
- cmp r0, 0
- bne _0809A41E
- movs r1, 0x1
-_0809A41E:
- strb r1, [r4]
- cmp r1, 0
- bne _0809A458
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- mov r4, r8
- orrs r0, r4
- str r0, [r6, 0x4]
- ldr r7, _0809A454
- adds r0, r5, r7
- ldrh r0, [r0]
- mov r8, r0
- b _0809A478
- .align 2, 0
-_0809A43C: .4byte gUnknown_083B6DB4
-_0809A440: .4byte 0x000008ca
-_0809A444: .4byte 0x0000ffff
-_0809A448: .4byte 0x00030200
-_0809A44C: .4byte gSpriteTemplate_83BB2B8
-_0809A450: .4byte 0x00000cca
-_0809A454: .4byte 0x00000cec
-_0809A458:
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r6, 0x4]
- ldr r4, _0809A570
- adds r0, r5, r4
- ldrh r0, [r0]
- mov r8, r0
- mov r1, sp
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, _0809A574
- strh r0, [r1, 0x2]
-_0809A478:
- ldr r0, [r3]
- ldr r7, _0809A578
- adds r0, r7
- ldr r1, [sp, 0x28]
- lsls r5, r1, 3
- adds r5, r1
- ldr r4, _0809A57C
- adds r5, r4
- adds r1, r5, 0
- bl sub_809A1BC
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r4, 0x7E
- ldr r3, [sp, 0x28]
- adds r4, r3, r4
- ldrb r0, [r4]
- lsls r0, 2
- ldr r1, _0809A580
- adds r0, r1
- mov r1, r8
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- lsls r0, 16
- mov r4, r10
- lsls r2, r4, 24
- asrs r2, 24
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 6
- lsrs r6, r0, 16
- str r6, [sp, 0x20]
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x24]
- movs r7, 0
- negs r2, r2
- mov r9, r2
- movs r0, 0x1
- mov r10, r0
-_0809A4DE:
- lsls r1, r7, 5
- mov r8, r1
- ldr r3, [sp, 0x24]
- lsls r1, r3, 16
- asrs r1, 16
- add r1, r8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A584
- ldr r4, [r1]
- lsls r6, r7, 2
- ldr r1, _0809A588
- adds r2, r4, r1
- adds r2, r6
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809A58C
- adds r1, r0
- str r1, [r2]
- mov r3, r9
- lsls r5, r3, 1
- add r5, r9
- lsls r5, 1
- strh r5, [r1, 0x2E]
- ldr r1, [r2]
- ldr r3, [sp, 0x20]
- lsls r0, r3, 16
- asrs r0, 16
- add r0, r8
- strh r0, [r1, 0x30]
- ldr r0, [r2]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r0, [r2]
- ldr r1, _0809A590
- str r1, [r0, 0x1C]
- lsls r1, r7, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r3, 0xCF
- lsls r3, 4
- adds r4, r3
- adds r4, r6
- ldr r0, [r4]
- strh r5, [r0, 0x2E]
- ldr r0, [r4]
- mov r6, r10
- strh r6, [r0, 0x30]
- ldr r1, [r4]
- ldr r0, _0809A594
- str r0, [r1, 0x1C]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _0809A4DE
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A570: .4byte 0x00000cec
-_0809A574: .4byte 0x0000dac9
-_0809A578: .4byte 0x000008ca
-_0809A57C: .4byte gUnknown_020383E4
-_0809A580: .4byte gUnknown_083BB0A8
-_0809A584: .4byte gUnknown_083B6DB4
-_0809A588: .4byte 0x00000cf8
-_0809A58C: .4byte gSprites
-_0809A590: .4byte sub_809A5E8
-_0809A594: .4byte sub_809A61C
- thumb_func_end sub_809A3D0
-
- thumb_func_start sub_809A598
-sub_809A598: @ 809A598
- push {lr}
- ldr r0, _0809A5B0
- ldr r0, [r0]
- ldr r1, _0809A5B4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A5B8
- movs r0, 0x4
- bl FreeSpriteTilesByTag
- b _0809A5BE
- .align 2, 0
-_0809A5B0: .4byte gUnknown_083B6DB4
-_0809A5B4: .4byte 0x00000cca
-_0809A5B8:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
-_0809A5BE:
- ldr r0, _0809A5E0
- ldr r0, [r0]
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r0, r3
- adds r3, 0x8
- adds r1, r0, r3
- ldr r1, [r1]
- str r1, [r2]
- ldr r2, _0809A5E4
- adds r1, r0, r2
- adds r3, 0x4
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809A5E0: .4byte gUnknown_083B6DB4
-_0809A5E4: .4byte 0x00000cf4
- thumb_func_end sub_809A598
-
- thumb_func_start sub_809A5E8
-sub_809A5E8: @ 809A5E8
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x32]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A5FC
- subs r0, r1, 0x1
- strh r0, [r2, 0x32]
- b _0809A614
-_0809A5FC:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _0809A614
- ldr r0, _0809A618
- str r0, [r2, 0x1C]
-_0809A614:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A618: .4byte SpriteCallbackDummy
- thumb_func_end sub_809A5E8
-
- thumb_func_start sub_809A61C
-sub_809A61C: @ 809A61C
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A630
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- b _0809A64E
-_0809A630:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x32]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC0
- bls _0809A64E
- adds r0, r2, 0
- bl DestroySprite
-_0809A64E:
- pop {r0}
- bx r0
- thumb_func_end sub_809A61C
-
- thumb_func_start sub_809A654
-sub_809A654: @ 809A654
- push {lr}
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A690
- ldr r2, _0809A694
- adds r1, r2
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0809A698
- ldr r2, [r0]
- ldr r3, _0809A69C
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A6A8
- lsls r0, r1, 2
- ldr r1, _0809A6A0
- adds r0, r1
- adds r3, 0x22
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6A4
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
- b _0809A6C0
- .align 2, 0
-_0809A690: .4byte gPokemonStorage
-_0809A694: .4byte 0x000083c2
-_0809A698: .4byte gUnknown_083B6DB4
-_0809A69C: .4byte 0x00000cca
-_0809A6A0: .4byte gUnknown_083BB0A8
-_0809A6A4: .4byte gPlttBufferUnfaded
-_0809A6A8:
- lsls r0, r1, 2
- ldr r1, _0809A6C4
- adds r0, r1
- ldr r3, _0809A6C8
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6CC
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
-_0809A6C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A6C4: .4byte gUnknown_083BB0A8
-_0809A6C8: .4byte 0x00000cee
-_0809A6CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_809A654
-
- thumb_func_start sub_809A6D0
-sub_809A6D0: @ 809A6D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- movs r0, 0xB0
- subs r0, r1
- bx lr
- thumb_func_end sub_809A6D0
-
- thumb_func_start sub_809A6DC
-sub_809A6DC: @ 809A6DC
- push {r4,r5,lr}
- ldr r0, _0809A760
- bl LoadSpriteSheet
- ldr r0, _0809A764
- bl LoadSpritePalette
- movs r5, 0
-_0809A6EC:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _0809A768
- movs r2, 0x1C
- movs r3, 0x15
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0809A73E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A76C
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x1
- cmp r5, 0
- bne _0809A72C
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809A72C:
- strh r0, [r4, 0x34]
- ldr r0, _0809A770
- ldr r0, [r0]
- lsls r1, r5, 2
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r4, [r0]
-_0809A73E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _0809A6EC
- bl sub_809BF2C
- lsls r0, 24
- cmp r0, 0
- beq _0809A758
- movs r0, 0x1
- bl sub_809A860
-_0809A758:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A760: .4byte gUnknown_083BB288
-_0809A764: .4byte gUnknown_083BB290
-_0809A768: .4byte gSpriteTemplate_83BB2F0
-_0809A76C: .4byte gSprites
-_0809A770: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A6DC
-
- thumb_func_start sub_809A774
-sub_809A774: @ 809A774
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- ldr r7, _0809A7C4
- ldr r0, [r7]
- movs r1, 0xD0
- lsls r1, 4
- adds r3, r0, r1
- movs r5, 0
- movs r4, 0x2
-_0809A78A:
- lsls r1, r2, 2
- adds r1, r3, r1
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r0, [r1]
- strh r4, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A78A
- lsls r0, r6, 24
- cmp r0, 0
- bge _0809A7CC
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, _0809A7C8
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0x48
- b _0809A7E8
- .align 2, 0
-_0809A7C4: .4byte gUnknown_083B6DB4
-_0809A7C8: .4byte 0x00000d04
-_0809A7CC:
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, _0809A80C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0xF8
-_0809A7E8:
- strh r2, [r0, 0x32]
- ldr r0, [r1]
- strh r2, [r0, 0x32]
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r1, r2
- ldr r2, [r0]
- movs r0, 0
- strh r0, [r2, 0x3C]
- ldr r0, _0809A80C
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A80C: .4byte 0x00000d04
- thumb_func_end sub_809A774
-
- thumb_func_start sub_809A810
-sub_809A810: @ 809A810
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _0809A85C
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r5, 0
- movs r6, 0x5
- negs r6, r6
-_0809A824:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldr r2, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- adds r0, 0x5C
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _0809A824
- movs r0, 0x1
- bl sub_809A860
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A85C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A810
-
- thumb_func_start sub_809A860
-sub_809A860: @ 809A860
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- beq _0809A89C
- movs r2, 0
- ldr r0, _0809A898
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r3, 0
- movs r5, 0x1
-_0809A878:
- lsls r1, r2, 2
- adds r1, r4, r1
- ldr r0, [r1]
- strh r5, [r0, 0x2E]
- ldr r0, [r1]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x32]
- ldr r0, [r1]
- strh r3, [r0, 0x36]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A878
- b _0809A8BC
- .align 2, 0
-_0809A898: .4byte gUnknown_083B6DB4
-_0809A89C:
- movs r2, 0
- ldr r0, _0809A8C4
- ldr r0, [r0]
- movs r3, 0xD0
- lsls r3, 4
- adds r1, r0, r3
- movs r3, 0
-_0809A8AA:
- lsls r0, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- strh r3, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A8AA
-_0809A8BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8C4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A860
-
- thumb_func_start sub_809A8C8
-sub_809A8C8: @ 809A8C8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _0809A994
- lsls r0, 2
- ldr r1, _0809A8E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A8E0: .4byte _0809A8E4
- .align 2, 0
-_0809A8E4:
- .4byte _0809A8F8
- .4byte _0809A8FE
- .4byte _0809A92C
- .4byte _0809A932
- .4byte _0809A984
-_0809A8F8:
- movs r0, 0
- strh r0, [r2, 0x24]
- b _0809A994
-_0809A8FE:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0809A994
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x24]
- adds r0, r3
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0809A994
- strh r1, [r2, 0x32]
- strh r1, [r2, 0x24]
- b _0809A994
-_0809A92C:
- movs r0, 0x3
- strh r0, [r2, 0x2E]
- b _0809A994
-_0809A932:
- ldr r0, _0809A97C
- ldr r1, [r0]
- ldr r0, _0809A980
- adds r1, r0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2, 0x20]
- subs r0, 0x49
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAE
- bls _0809A958
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0809A958:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _0809A994
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- b _0809A994
- .align 2, 0
-_0809A97C: .4byte gUnknown_083B6DB4
-_0809A980: .4byte 0x000008b6
-_0809A984:
- ldr r0, _0809A998
- ldr r0, [r0]
- ldr r1, _0809A99C
- adds r0, r1
- ldrh r1, [r2, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x20]
-_0809A994:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A998: .4byte gUnknown_083B6DB4
-_0809A99C: .4byte 0x000008b6
- thumb_func_end sub_809A8C8
-
- thumb_func_start sub_809A9A0
-sub_809A9A0: @ 809A9A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809AA0C
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0809AA18
- movs r1, 0x1
- ands r1, r7
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _0809AA10
- adds r6, r4, r5
- adds r0, r6, 0
- bl StartSpriteAnim
- movs r0, 0x3
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0809AA14
- str r0, [r4]
- adds r0, r6, 0
- b _0809AA1A
- .align 2, 0
-_0809AA0C: .4byte gSpriteTemplate_83BB2F0
-_0809AA10: .4byte gSprites
-_0809AA14: .4byte SpriteCallbackDummy
-_0809AA18:
- movs r0, 0
-_0809AA1A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A9A0
-
- thumb_func_start sub_809AA24
-sub_809AA24: @ 809AA24
- push {lr}
- ldr r0, _0809AA38
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r1, 0x1
- beq _0809AA40
- ldr r1, _0809AA3C
- movs r0, 0
- strb r0, [r1]
- b _0809AA44
- .align 2, 0
-_0809AA38: .4byte gUnknown_083B6DB4
-_0809AA3C: .4byte gUnknown_020384E4
-_0809AA40:
- ldr r0, _0809AA78
- strb r1, [r0]
-_0809AA44:
- ldr r0, _0809AA7C
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0809AA80
- strb r1, [r0]
- ldr r0, _0809AA84
- strb r1, [r0]
- ldr r0, _0809AA88
- strb r1, [r0]
- ldr r0, _0809AA8C
- strb r1, [r0]
- bl sub_809B0D4
- bl sub_809CC04
- ldr r0, _0809AA90
- ldr r0, [r0]
- ldr r1, _0809AA94
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809AA78: .4byte gUnknown_020384E4
-_0809AA7C: .4byte gUnknown_020384E5
-_0809AA80: .4byte gUnknown_020384E6
-_0809AA84: .4byte gUnknown_020384E7
-_0809AA88: .4byte gUnknown_020384E8
-_0809AA8C: .4byte gUnknown_020384E9
-_0809AA90: .4byte gUnknown_083B6DB4
-_0809AA94: .4byte 0x000011e2
- thumb_func_end sub_809AA24
-
- thumb_func_start sub_809AA98
-sub_809AA98: @ 809AA98
- push {lr}
- bl sub_809CC04
- bl sub_809C028
- ldr r0, _0809AAC0
- ldr r0, [r0]
- ldr r1, _0809AAC4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0809AAC8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809AABA
- bl sub_8098BF0
-_0809AABA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809AAC0: .4byte gUnknown_083B6DB4
-_0809AAC4: .4byte 0x000011e2
-_0809AAC8: .4byte gUnknown_020384E6
- thumb_func_end sub_809AA98
-
- thumb_func_start sub_809AACC
-sub_809AACC: @ 809AACC
- push {r4-r6,lr}
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x4
- bhi _0809AB84
- lsls r0, 2
- ldr r1, _0809AAE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809AAE8: .4byte _0809AAEC
- .align 2, 0
-_0809AAEC:
- .4byte _0809AB00
- .4byte _0809AB2E
- .4byte _0809AB56
- .4byte _0809AB5E
- .4byte _0809AB7C
-_0809AB00:
- adds r0, r5, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x64
- strh r1, [r4]
- adds r0, r5, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x20
- strh r1, [r6]
- b _0809AB84
-_0809AB2E:
- cmp r5, 0
- bne _0809AB3A
- movs r0, 0x68
- strh r0, [r4]
- movs r0, 0x34
- b _0809AB82
-_0809AB3A:
- cmp r5, 0x6
- bne _0809AB46
- movs r0, 0x98
- strh r0, [r4]
- movs r0, 0x84
- b _0809AB82
-_0809AB46:
- movs r0, 0x98
- strh r0, [r4]
- subs r1, r5, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- b _0809AB82
-_0809AB56:
- movs r0, 0xA2
- strh r0, [r4]
- movs r0, 0xC
- b _0809AB82
-_0809AB5E:
- ldr r0, _0809AB78
- ldrb r0, [r0]
- movs r1, 0xE
- cmp r0, 0
- beq _0809AB6A
- movs r1, 0x8
-_0809AB6A:
- strh r1, [r6]
- movs r0, 0x58
- muls r0, r5
- adds r0, 0x78
- strh r0, [r4]
- b _0809AB84
- .align 2, 0
-_0809AB78: .4byte gUnknown_020384E6
-_0809AB7C:
- movs r0, 0xA0
- strh r0, [r4]
- movs r0, 0x60
-_0809AB82:
- strh r0, [r6]
-_0809AB84:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809AACC
-
- thumb_func_start sub_809AB8C
-sub_809AB8C: @ 809AB8C
- push {lr}
- ldr r0, _0809ABB4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809ABC0
- cmp r0, 0x1
- bne _0809ABF8
- ldr r0, _0809ABB8
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809ABBC
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- b _0809ABEA
- .align 2, 0
-_0809ABB4: .4byte gUnknown_020384E4
-_0809ABB8: .4byte gUnknown_020384E5
-_0809ABBC: .4byte gPlayerParty
-_0809ABC0:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809ABF0
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809ABF4
- adds r1, r2
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
-_0809ABEA:
- lsls r0, 16
- lsrs r0, 16
- b _0809ABFA
- .align 2, 0
-_0809ABF0: .4byte gUnknown_020384E5
-_0809ABF4: .4byte gUnknown_020300A4
-_0809ABF8:
- movs r0, 0
-_0809ABFA:
- pop {r1}
- bx r1
- thumb_func_end sub_809AB8C
-
- thumb_func_start sub_809AC00
-sub_809AC00: @ 809AC00
- push {r4-r6,lr}
- ldr r0, _0809AC14
- ldr r4, [r0]
- ldr r0, _0809AC18
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0809AC1C
- movs r0, 0
- b _0809AD2C
- .align 2, 0
-_0809AC14: .4byte gUnknown_083B6DB4
-_0809AC18: .4byte 0x000011dc
-_0809AC1C:
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809AD0C
- ldr r1, _0809ACF4
- adds r3, r4, r1
- ldr r2, _0809ACF8
- adds r1, r4, r2
- ldr r0, [r3]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r3]
- ldr r6, _0809ACFC
- adds r2, r4, r6
- ldr r0, _0809AD00
- adds r1, r4, r0
- ldr r0, [r2]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r2]
- movs r1, 0x8E
- lsls r1, 5
- adds r5, r4, r1
- ldr r1, [r5]
- ldr r0, [r3]
- asrs r0, 8
- strh r0, [r1, 0x20]
- ldr r1, [r5]
- ldr r0, [r2]
- asrs r0, 8
- strh r0, [r1, 0x22]
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x80
- lsls r3, 1
- cmp r0, r3
- ble _0809AC78
- ldr r6, _0809AD04
- adds r0, r2, r6
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x40
- strh r0, [r1, 0x20]
-_0809AC78:
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r6, 0x20
- ldrsh r0, [r1, r6]
- cmp r0, 0x3F
- bgt _0809AC90
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- subs r0, r3, r0
- strh r0, [r1, 0x20]
-_0809AC90:
- ldr r1, [r5]
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0xB0
- ble _0809ACA8
- adds r0, r2, 0
- subs r0, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r0, 0x10
- strh r0, [r1, 0x22]
-_0809ACA8:
- ldr r2, [r5]
- ldrh r3, [r2, 0x22]
- movs r6, 0x22
- ldrsh r0, [r2, r6]
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _0809ACC4
- subs r0, r1, r3
- movs r1, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2, 0x22]
-_0809ACC4:
- ldr r0, _0809AD08
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809AD2A
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0809AD2A
- ldr r2, [r5]
- adds r2, 0x3F
- ldrb r3, [r2]
- lsrs r1, r3, 1
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0809AD2A
- .align 2, 0
-_0809ACF4: .4byte 0x000011c8
-_0809ACF8: .4byte 0x000011d0
-_0809ACFC: .4byte 0x000011cc
-_0809AD00: .4byte 0x000011d4
-_0809AD04: .4byte 0xffffff00
-_0809AD08: .4byte 0x000011e3
-_0809AD0C:
- movs r1, 0x8E
- lsls r1, 5
- adds r2, r4, r1
- ldr r1, [r2]
- ldr r3, _0809AD34
- adds r0, r4, r3
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- ldr r6, _0809AD38
- adds r0, r4, r6
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- bl sub_809AFB8
-_0809AD2A:
- movs r0, 0x1
-_0809AD2C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AD34: .4byte 0x000011d8
-_0809AD38: .4byte 0x000011da
- thumb_func_end sub_809AC00
-
- thumb_func_start sub_809AD3C
-sub_809AD3C: @ 809AD3C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- adds r6, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl sub_809AACC
- ldr r0, _0809AD88
- ldr r1, [r0]
- movs r2, 0x8F
- lsls r2, 5
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0809AD8C
- adds r0, r1, r3
- strb r5, [r0]
- mov r0, sp
- ldrh r2, [r0]
- subs r3, 0x9
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r6]
- ldr r2, _0809AD90
- adds r1, r2
- strh r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AD88: .4byte gUnknown_083B6DB4
-_0809AD8C: .4byte 0x000011e1
-_0809AD90: .4byte 0x000011da
- thumb_func_end sub_809AD3C
-
- thumb_func_start sub_809AD94
-sub_809AD94: @ 809AD94
- push {r4-r7,lr}
- ldr r0, _0809ADB0
- ldr r2, [r0]
- ldr r3, _0809ADB4
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809ADBC
- ldr r0, _0809ADB8
- adds r1, r2, r0
- movs r0, 0xC
- b _0809ADC2
- .align 2, 0
-_0809ADB0: .4byte gUnknown_083B6DB4
-_0809ADB4: .4byte 0x000011de
-_0809ADB8: .4byte 0x000011dc
-_0809ADBC:
- ldr r3, _0809AE04
- adds r1, r2, r3
- movs r0, 0x6
-_0809ADC2:
- strh r0, [r1]
- ldr r2, [r4]
- ldr r0, _0809AE08
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809ADDA
- ldr r3, _0809AE04
- adds r0, r2, r3
- ldrh r0, [r0]
- lsrs r0, 1
- strb r0, [r1]
-_0809ADDA:
- ldr r1, _0809AE0C
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE14
- cmp r1, 0x1
- beq _0809AE30
- ldr r3, _0809AE10
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- b _0809AE46
- .align 2, 0
-_0809AE04: .4byte 0x000011dc
-_0809AE08: .4byte 0x000011e3
-_0809AE0C: .4byte 0x000011de
-_0809AE10: .4byte 0x000011da
-_0809AE14:
- ldr r3, _0809AE2C
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AE46
- .align 2, 0
-_0809AE2C: .4byte 0x000011da
-_0809AE30:
- ldr r3, _0809AE74
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AE46:
- subs r7, r1, r0
- ldr r2, [r4]
- ldr r3, _0809AE78
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE80
- cmp r1, 0x1
- beq _0809AE9C
- ldr r1, _0809AE7C
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- b _0809AEB2
- .align 2, 0
-_0809AE74: .4byte 0x000011da
-_0809AE78: .4byte 0x000011df
-_0809AE7C: .4byte 0x000011d8
-_0809AE80:
- ldr r3, _0809AE98
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AEB2
- .align 2, 0
-_0809AE98: .4byte 0x000011d8
-_0809AE9C:
- ldr r3, _0809AF00
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AEB2:
- subs r0, r1, r0
- lsls r7, 8
- lsls r0, 8
- ldr r4, [r4]
- ldr r3, _0809AF04
- adds r6, r4, r3
- ldr r1, _0809AF08
- adds r5, r4, r1
- ldrh r1, [r5]
- bl __divsi3
- str r0, [r6]
- ldr r2, _0809AF0C
- adds r6, r4, r2
- ldrh r1, [r5]
- adds r0, r7, 0
- bl __divsi3
- str r0, [r6]
- ldr r3, _0809AF10
- adds r2, r4, r3
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r4, r0
- ldr r0, [r1]
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- lsls r0, 8
- str r0, [r2]
- ldr r0, _0809AF14
- adds r4, r0
- ldr r0, [r1]
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AF00: .4byte 0x000011d8
-_0809AF04: .4byte 0x000011d0
-_0809AF08: .4byte 0x000011dc
-_0809AF0C: .4byte 0x000011d4
-_0809AF10: .4byte 0x000011c8
-_0809AF14: .4byte 0x000011cc
- thumb_func_end sub_809AD94
-
- thumb_func_start sub_809AF18
-sub_809AF18: @ 809AF18
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809AD3C
- bl sub_809AD94
- ldr r0, _0809AFA4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AF46
- ldr r0, _0809AFA8
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
-_0809AF46:
- cmp r4, 0x1
- bne _0809AF70
- ldr r0, _0809AFAC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809AF70
- ldr r0, _0809AFA8
- ldr r0, [r0]
- ldr r2, _0809AFB0
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0809AFB4
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0809AF70:
- cmp r4, 0
- beq _0809AF9E
- cmp r4, 0
- blt _0809AF9E
- cmp r4, 0x3
- bgt _0809AF9E
- ldr r0, _0809AFA8
- ldr r2, [r0]
- ldr r0, _0809AFB4
- adds r2, r0
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, [r2]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
-_0809AF9E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AFA4: .4byte gUnknown_020384E6
-_0809AFA8: .4byte gUnknown_083B6DB4
-_0809AFAC: .4byte gUnknown_020384E4
-_0809AFB0: .4byte 0x000011e2
-_0809AFB4: .4byte 0x000011c4
- thumb_func_end sub_809AF18
-
- thumb_func_start sub_809AFB8
-sub_809AFB8: @ 809AFB8
- push {r4,r5,lr}
- ldr r5, _0809B000
- ldr r0, _0809B004
- ldr r4, [r0]
- movs r1, 0x8F
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _0809B008
- ldr r2, _0809B00C
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0809B010
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AFEA
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809AFEA:
- bl sub_809BF74
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x1
- beq _0809B020
- cmp r0, 0x1
- bgt _0809B014
- cmp r0, 0
- beq _0809B034
- b _0809B05E
- .align 2, 0
-_0809B000: .4byte gUnknown_020384E4
-_0809B004: .4byte gUnknown_083B6DB4
-_0809B008: .4byte gUnknown_020384E5
-_0809B00C: .4byte 0x000011e1
-_0809B010: .4byte gUnknown_020384E6
-_0809B014:
- cmp r0, 0x2
- bne _0809B05E
- movs r0, 0x1
- bl sub_809A860
- b _0809B05E
-_0809B020:
- ldr r2, _0809B030
- adds r0, r4, r2
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0xC
- strb r1, [r0]
- b _0809B05E
- .align 2, 0
-_0809B030: .4byte 0x000011c4
-_0809B034:
- ldr r0, _0809B064
- adds r2, r4, r0
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x14
- strb r1, [r0]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0809B05E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B064: .4byte 0x000011c4
- thumb_func_end sub_809AFB8
-
- thumb_func_start sub_809B068
-sub_809B068: @ 809B068
- push {lr}
- ldr r0, _0809B078
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809B07C
- movs r3, 0
- b _0809B08A
- .align 2, 0
-_0809B078: .4byte gUnknown_020384E6
-_0809B07C:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0809B08A
- movs r3, 0x5
-_0809B08A:
- ldr r0, _0809B0B8
- ldr r2, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r2, r1
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809B0AA
- ldr r0, _0809B0BC
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_0809B0AA:
- movs r0, 0x1
- adds r1, r3, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- .align 2, 0
-_0809B0B8: .4byte gUnknown_083B6DB4
-_0809B0BC: .4byte 0x000011e3
- thumb_func_end sub_809B068
-
- thumb_func_start sub_809B0C0
-sub_809B0C0: @ 809B0C0
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- thumb_func_end sub_809B0C0
-
- thumb_func_start sub_809B0D4
-sub_809B0D4: @ 809B0D4
- ldr r1, _0809B0DC
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B0DC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0D4
-
- thumb_func_start sub_809B0E0
-sub_809B0E0: @ 809B0E0
- ldr r0, _0809B0EC
- ldr r1, _0809B0F0
- ldrb r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0809B0EC: .4byte gUnknown_020384EA
-_0809B0F0: .4byte gUnknown_020384E5
- thumb_func_end sub_809B0E0
-
- thumb_func_start sub_809B0F4
-sub_809B0F4: @ 809B0F4
- ldr r0, _0809B0FC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809B0FC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0F4
-
- thumb_func_start sub_809B100
-sub_809B100: @ 809B100
- lsls r0, 24
- ldr r1, _0809B120
- ldr r1, [r1]
- ldr r2, _0809B124
- adds r3, r1, r2
- ldr r2, _0809B128
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0809B12C
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B120: .4byte gUnknown_083B6DB4
-_0809B124: .4byte 0x000012a4
-_0809B128: .4byte gUnknown_083BBBC8
-_0809B12C: .4byte 0x000012a8
- thumb_func_end sub_809B100
-
- thumb_func_start sub_809B130
-sub_809B130: @ 809B130
- push {lr}
- ldr r0, _0809B148
- ldr r0, [r0]
- ldr r1, _0809B14C
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809B148: .4byte gUnknown_083B6DB4
-_0809B14C: .4byte 0x000012a4
- thumb_func_end sub_809B130
-
- thumb_func_start sub_809B150
-sub_809B150: @ 809B150
- push {r4,r5,lr}
- ldr r0, _0809B16C
- ldr r5, [r0]
- ldr r0, _0809B170
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _0809B1A0
- cmp r0, 0x1
- bgt _0809B174
- cmp r0, 0
- beq _0809B17E
- b _0809B1CE
- .align 2, 0
-_0809B16C: .4byte gUnknown_083B6DB4
-_0809B170: .4byte 0x000012a8
-_0809B174:
- cmp r0, 0x2
- beq _0809B1BE
- cmp r0, 0x3
- beq _0809B186
- b _0809B1CE
-_0809B17E:
- ldr r0, _0809B18C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B190
-_0809B186:
- movs r0, 0
- b _0809B1D0
- .align 2, 0
-_0809B18C: .4byte gUnknown_020384E6
-_0809B190:
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- b _0809B1C8
-_0809B1A0:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- bl sub_809B384
- b _0809B1C8
-_0809B1BE:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
-_0809B1C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809B1CE:
- movs r0, 0x1
-_0809B1D0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B150
-
- thumb_func_start sub_809B1D8
-sub_809B1D8: @ 809B1D8
- push {r4,r5,lr}
- ldr r0, _0809B1F4
- ldr r4, [r0]
- ldr r0, _0809B1F8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B220
- cmp r0, 0x1
- bgt _0809B1FC
- cmp r0, 0
- beq _0809B202
- b _0809B244
- .align 2, 0
-_0809B1F4: .4byte gUnknown_083B6DB4
-_0809B1F8: .4byte 0x000012a8
-_0809B1FC:
- cmp r0, 0x2
- beq _0809B240
- b _0809B244
-_0809B202:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- bl sub_809B3E0
- b _0809B238
-_0809B220:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809B238:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B244
-_0809B240:
- movs r0, 0
- b _0809B246
-_0809B244:
- movs r0, 0x1
-_0809B246:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B1D8
-
- thumb_func_start sub_809B24C
-sub_809B24C: @ 809B24C
- push {r4,r5,lr}
- ldr r0, _0809B268
- ldr r4, [r0]
- ldr r0, _0809B26C
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B2E0
- cmp r0, 0x1
- bgt _0809B270
- cmp r0, 0
- beq _0809B276
- b _0809B31C
- .align 2, 0
-_0809B268: .4byte gUnknown_083B6DB4
-_0809B26C: .4byte 0x000012a8
-_0809B270:
- cmp r0, 0x2
- beq _0809B318
- b _0809B31C
-_0809B276:
- ldr r0, _0809B290
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B298
- cmp r0, 0x1
- bne _0809B318
- ldr r2, _0809B294
- adds r1, r4, r2
- movs r0, 0xE
- b _0809B2A0
- .align 2, 0
-_0809B290: .4byte gUnknown_020384E4
-_0809B294: .4byte 0x000012a9
-_0809B298:
- bl get_preferred_box
- ldr r2, _0809B2D0
- adds r1, r4, r2
-_0809B2A0:
- strb r0, [r1]
- ldr r0, _0809B2D4
- ldr r4, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0809B2D0
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B2D8
- ldrb r1, [r1]
- bl sub_80996B0
- ldr r0, _0809B2DC
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0809B31C
- .align 2, 0
-_0809B2D0: .4byte 0x000012a9
-_0809B2D4: .4byte gUnknown_083B6DB4
-_0809B2D8: .4byte gUnknown_020384E5
-_0809B2DC: .4byte 0x000012a8
-_0809B2E0:
- bl sub_809971C
- lsls r0, 24
- cmp r0, 0
- bne _0809B31C
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- ldr r2, _0809B310
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B314
- ldrb r1, [r1]
- bl diegohint1
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B31C
- .align 2, 0
-_0809B310: .4byte 0x000012a9
-_0809B314: .4byte gUnknown_020384E5
-_0809B318:
- movs r0, 0
- b _0809B31E
-_0809B31C:
- movs r0, 0x1
-_0809B31E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B24C
-
- thumb_func_start sub_809B324
-sub_809B324: @ 809B324
- push {lr}
- ldr r0, _0809B348
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B33E
- cmp r0, 0x8
- beq _0809B34C
-_0809B33E:
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _0809B350
- .align 2, 0
-_0809B348: .4byte gUnknown_083B6DB4
-_0809B34C:
- movs r0, 0
- b _0809B352
-_0809B350:
- movs r0, 0x1
-_0809B352:
- pop {r1}
- bx r1
- thumb_func_end sub_809B324
-
- thumb_func_start sub_809B358
-sub_809B358: @ 809B358
- push {lr}
- ldr r0, _0809B378
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B37C
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- strh r0, [r1, 0x26]
- movs r0, 0x1
- b _0809B37E
- .align 2, 0
-_0809B378: .4byte gUnknown_083B6DB4
-_0809B37C:
- movs r0, 0
-_0809B37E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B358
-
- thumb_func_start sub_809B384
-sub_809B384: @ 809B384
- push {r4,lr}
- ldr r0, _0809B3AC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B3B4
- cmp r0, 0x1
- bne _0809B3D2
- ldr r4, _0809B3B0
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0
- bl sub_8099584
- b _0809B3CC
- .align 2, 0
-_0809B3AC: .4byte gUnknown_020384E4
-_0809B3B0: .4byte gUnknown_020384E5
-_0809B3B4:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0809B3D8
- ldrb r1, [r4]
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0x1
- bl sub_8099584
-_0809B3CC:
- ldr r1, _0809B3DC
- movs r0, 0x1
- strb r0, [r1]
-_0809B3D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B3D8: .4byte gUnknown_020384E5
-_0809B3DC: .4byte gUnknown_020384E6
- thumb_func_end sub_809B384
-
- thumb_func_start sub_809B3E0
-sub_809B3E0: @ 809B3E0
- push {r4,r5,lr}
- ldr r0, _0809B408
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B410
- cmp r0, 0x1
- bne _0809B432
- ldr r4, _0809B40C
- ldrb r1, [r4]
- movs r0, 0xE
- bl diegohint2
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809960C
- b _0809B42C
- .align 2, 0
-_0809B408: .4byte gUnknown_020384E4
-_0809B40C: .4byte gUnknown_020384E5
-_0809B410:
- bl get_preferred_box
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0809B438
- ldrb r1, [r5]
- adds r0, r4, 0
- bl diegohint2
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809960C
-_0809B42C:
- ldr r1, _0809B43C
- movs r0, 0
- strb r0, [r1]
-_0809B432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B438: .4byte gUnknown_020384E5
-_0809B43C: .4byte gUnknown_020384E6
- thumb_func_end sub_809B3E0
-
- thumb_func_start sub_809B440
-sub_809B440: @ 809B440
- push {lr}
- bl sub_809BF74
- pop {r0}
- bx r0
- thumb_func_end sub_809B440
-
- thumb_func_start sub_809B44C
-sub_809B44C: @ 809B44C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0xE
- bne _0809B488
- ldr r0, _0809B478
- ldr r0, [r0]
- ldr r1, _0809B47C
- adds r0, r1
- ldr r3, _0809B480
- ldr r1, _0809B484
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- b _0809B4AA
- .align 2, 0
-_0809B478: .4byte gUnknown_083B6DB4
-_0809B47C: .4byte 0x000025b4
-_0809B480: .4byte gPlayerParty
-_0809B484: .4byte gUnknown_020384E5
-_0809B488:
- lsls r1, r4, 2
- adds r1, r4
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 4
- ldr r2, _0809B4C0
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B4C4
- ldr r1, [r1]
- ldr r2, _0809B4C8
- adds r1, r2
- bl sub_803B4B4
-_0809B4AA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809B548
- ldr r0, _0809B4CC
- strb r4, [r0]
- ldr r0, _0809B4D0
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B4C0: .4byte gUnknown_020300A4
-_0809B4C4: .4byte gUnknown_083B6DB4
-_0809B4C8: .4byte 0x000025b4
-_0809B4CC: .4byte gUnknown_020384E7
-_0809B4D0: .4byte gUnknown_020384E8
- thumb_func_end sub_809B44C
-
- thumb_func_start diegohint2
-diegohint2: @ 809B4D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r6, 0xE
- bne _0809B508
- ldr r1, _0809B4FC
- movs r0, 0x64
- muls r0, r5
- adds r0, r1
- ldr r1, _0809B500
- ldr r1, [r1]
- ldr r2, _0809B504
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B536
- .align 2, 0
-_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gUnknown_083B6DB4
-_0809B504: .4byte 0x000025b4
-_0809B508:
- ldr r0, _0809B53C
- ldr r4, [r0]
- ldr r0, _0809B540
- adds r4, r0
- adds r0, r4, 0
- bl pokemon_restore_pp
- ldr r3, _0809B544
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- lsls r2, r6, 2
- adds r2, r6
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- adds r0, r1
- adds r0, r3
- adds r0, 0x4
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809B536:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B53C: .4byte gUnknown_083B6DB4
-_0809B540: .4byte 0x000025b4
-_0809B544: .4byte gPokemonStorage
- thumb_func_end diegohint2
-
- thumb_func_start sub_809B548
-sub_809B548: @ 809B548
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0xE
- bne _0809B568
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0809B564
- adds r0, r1
- bl ZeroMonData
- b _0809B582
- .align 2, 0
-_0809B564: .4byte gPlayerParty
-_0809B568:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809B588
- adds r1, r2
- adds r0, r1
- bl ZeroBoxMonData
-_0809B582:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B588: .4byte gUnknown_020300A4
- thumb_func_end sub_809B548
-
- thumb_func_start diegohint1
-diegohint1: @ 809B58C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r5, 0xE
- bne _0809B5C0
- ldr r0, _0809B5B4
- ldr r0, [r0]
- ldr r1, _0809B5B8
- adds r0, r1
- ldr r2, _0809B5BC
- movs r1, 0x64
- muls r1, r6
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B5E2
- .align 2, 0
-_0809B5B4: .4byte gUnknown_083B6DB4
-_0809B5B8: .4byte 0x00002618
-_0809B5BC: .4byte gPlayerParty
-_0809B5C0:
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 4
- ldr r2, _0809B614
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B618
- ldr r1, [r1]
- ldr r2, _0809B61C
- adds r1, r2
- bl sub_803B4B4
-_0809B5E2:
- adds r0, r5, 0
- adds r1, r6, 0
- bl diegohint2
- ldr r0, _0809B618
- ldr r1, [r0]
- ldr r0, _0809B620
- adds r4, r1, r0
- ldr r2, _0809B61C
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_809C04C
- ldr r0, _0809B624
- strb r5, [r0]
- ldr r0, _0809B628
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B614: .4byte gUnknown_020300A4
-_0809B618: .4byte gUnknown_083B6DB4
-_0809B61C: .4byte 0x00002618
-_0809B620: .4byte 0x000025b4
-_0809B624: .4byte gUnknown_020384E7
-_0809B628: .4byte gUnknown_020384E8
- thumb_func_end diegohint1
-
- thumb_func_start sub_809B62C
-sub_809B62C: @ 809B62C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_8095B24
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0809B64A
- movs r0, 0
- b _0809B6AC
-_0809B64A:
- ldr r5, _0809B668
- ldrb r0, [r5]
- cmp r0, 0
- beq _0809B66C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- bl sub_8099480
- movs r0, 0
- strb r0, [r5]
- b _0809B686
- .align 2, 0
-_0809B668: .4byte gUnknown_020384E6
-_0809B66C:
- ldr r5, _0809B6B4
- ldrb r1, [r5]
- movs r0, 0xE
- bl sub_809B44C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- ldrb r0, [r5]
- bl sub_8099520
-_0809B686:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0809B698
- lsrs r0, r4, 24
- bl sub_8098D20
-_0809B698:
- ldr r0, _0809B6B8
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x1
-_0809B6AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809B6B4: .4byte gUnknown_020384E5
-_0809B6B8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B62C
-
- thumb_func_start sub_809B6BC
-sub_809B6BC: @ 809B6BC
- push {lr}
- ldr r0, _0809B6D8
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B6D8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B6BC
-
- thumb_func_start sub_809B6DC
-sub_809B6DC: @ 809B6DC
- push {lr}
- ldr r0, _0809B6EC
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B6F0
- movs r2, 0x2
- b _0809B700
- .align 2, 0
-_0809B6EC: .4byte gUnknown_020384E6
-_0809B6F0:
- ldr r0, _0809B720
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0x1
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r2, r0, 31
-_0809B700:
- ldr r0, _0809B724
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809981C
- ldr r0, _0809B728
- ldr r1, [r0]
- ldr r2, _0809B72C
- adds r0, r1, r2
- ldr r2, _0809B730
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_0809B720: .4byte gUnknown_020384E4
-_0809B724: .4byte gUnknown_020384E5
-_0809B728: .4byte gUnknown_083B6DB4
-_0809B72C: .4byte 0x000026e4
-_0809B730: .4byte 0x000011fa
- thumb_func_end sub_809B6DC
-
- thumb_func_start sub_809B734
-sub_809B734: @ 809B734
- push {lr}
- bl sub_80998D8
- lsls r0, 24
- cmp r0, 0
- beq _0809B744
- movs r0, 0x1
- b _0809B758
-_0809B744:
- ldr r0, _0809B75C
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
-_0809B758:
- pop {r1}
- bx r1
- .align 2, 0
-_0809B75C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B734
-
- thumb_func_start sub_809B760
-sub_809B760: @ 809B760
- push {lr}
- bl sub_8099920
- ldr r1, _0809B774
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809B778
- movs r0, 0
- strb r0, [r1]
- b _0809B79E
- .align 2, 0
-_0809B774: .4byte gUnknown_020384E6
-_0809B778:
- ldr r0, _0809B788
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B78C
- movs r2, 0xE
- b _0809B794
- .align 2, 0
-_0809B788: .4byte gUnknown_020384E4
-_0809B78C:
- bl get_preferred_box
- lsls r0, 24
- lsrs r2, r0, 24
-_0809B794:
- ldr r0, _0809B7A8
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809B548
-_0809B79E:
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7A8: .4byte gUnknown_020384E5
- thumb_func_end sub_809B760
-
- thumb_func_start sub_809B7AC
-sub_809B7AC: @ 809B7AC
- push {lr}
- ldr r0, _0809B7CC
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B7C8
- ldr r0, _0809B7D0
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
-_0809B7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7CC: .4byte gUnknown_020384E6
-_0809B7D0: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B7AC
-
- thumb_func_start sub_809B7D4
-sub_809B7D4: @ 809B7D4
- push {r4-r6,lr}
- ldr r0, _0809B804
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B81C
- ldr r0, _0809B808
- ldr r4, [r0]
- ldr r1, _0809B80C
- adds r0, r4, r1
- ldr r2, _0809B810
- adds r1, r4, r2
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B814
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0809B818
- adds r4, r1
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4]
- b _0809B8A6
- .align 2, 0
-_0809B804: .4byte gUnknown_020384E6
-_0809B808: .4byte gUnknown_083B6DB4
-_0809B80C: .4byte 0x00002618
-_0809B810: .4byte 0x000025b4
-_0809B814: .4byte 0x00002682
-_0809B818: .4byte 0x00002683
-_0809B81C:
- ldr r0, _0809B84C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B864
- ldr r0, _0809B850
- ldr r4, [r0]
- ldr r2, _0809B854
- adds r0, r4, r2
- ldr r3, _0809B858
- ldr r1, _0809B85C
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B860
- adds r4, r0
- movs r0, 0xE
- b _0809B896
- .align 2, 0
-_0809B84C: .4byte gUnknown_020384E4
-_0809B850: .4byte gUnknown_083B6DB4
-_0809B854: .4byte 0x00002618
-_0809B858: .4byte gPlayerParty
-_0809B85C: .4byte gUnknown_020384E5
-_0809B860: .4byte 0x00002682
-_0809B864:
- ldr r5, _0809B8FC
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809B900
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r2, r5, 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B904
- ldr r4, [r1]
- ldr r2, _0809B908
- adds r1, r4, r2
- bl sub_803B4B4
- ldrb r0, [r5]
- ldr r1, _0809B90C
- adds r4, r1
-_0809B896:
- strb r0, [r4]
- ldr r0, _0809B904
- ldr r0, [r0]
- ldr r1, _0809B900
- ldrb r1, [r1]
- ldr r2, _0809B910
- adds r0, r2
- strb r1, [r0]
-_0809B8A6:
- ldr r0, _0809B904
- ldr r6, [r0]
- ldr r0, _0809B914
- adds r4, r6, r0
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0809B918
- adds r5, r6, r1
- strb r0, [r5]
- ldr r0, _0809B91C
- adds r2, r6, r0
- movs r0, 0x39
- strh r0, [r2]
- ldr r0, _0809B920
- adds r1, r6, r0
- ldr r0, _0809B924
- strh r0, [r1]
- ldr r0, _0809B928
- adds r1, r6, r0
- ldr r0, _0809B92C
- strh r0, [r1]
- ldr r1, _0809B908
- adds r0, r6, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- strb r1, [r4]
- lsrs r0, 17
- movs r1, 0x1
- ands r0, r1
- strb r0, [r5]
- ldrh r0, [r4]
- cmp r0, 0
- beq _0809B934
- ldr r2, _0809B930
- adds r1, r6, r2
- movs r0, 0
- strb r0, [r1]
- b _0809B940
- .align 2, 0
-_0809B8FC: .4byte gPokemonStorage
-_0809B900: .4byte gUnknown_020384E5
-_0809B904: .4byte gUnknown_083B6DB4
-_0809B908: .4byte 0x00002618
-_0809B90C: .4byte 0x00002682
-_0809B910: .4byte 0x00002683
-_0809B914: .4byte 0x0000267e
-_0809B918: .4byte 0x0000267f
-_0809B91C: .4byte 0x00002686
-_0809B920: .4byte 0x00002688
-_0809B924: .4byte 0x00000123
-_0809B928: .4byte 0x0000268a
-_0809B92C: .4byte 0x00000163
-_0809B930: .4byte 0x0000267d
-_0809B934:
- ldr r2, _0809B954
- adds r0, r6, r2
- strb r1, [r0]
- subs r2, 0x1
- adds r0, r6, r2
- strb r1, [r0]
-_0809B940:
- ldr r0, _0809B958
- ldr r0, [r0]
- ldr r1, _0809B95C
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B954: .4byte 0x0000267d
-_0809B958: .4byte gUnknown_083B6DB4
-_0809B95C: .4byte 0x00002684
- thumb_func_end sub_809B7D4
-
- thumb_func_start sub_809B960
-sub_809B960: @ 809B960
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809B988
- ldr r2, [r0]
- ldr r3, _0809B98C
- adds r1, r2, r3
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _0809B994
- ldr r7, _0809B990
- adds r0, r2, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _0809BB5C
- .align 2, 0
-_0809B988: .4byte gUnknown_083B6DB4
-_0809B98C: .4byte 0x0000267d
-_0809B990: .4byte 0x0000267c
-_0809B994:
- ldr r1, _0809B9A4
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809B9A8
- cmp r0, 0x1
- beq _0809BA84
- b _0809BB58
- .align 2, 0
-_0809B9A4: .4byte 0x00002684
-_0809B9A8:
- movs r5, 0
- movs r6, 0
-_0809B9AC:
- mov r2, r12
- ldr r4, [r2]
- ldr r3, _0809BA28
- adds r0, r4, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xE
- bne _0809B9CC
- ldr r7, _0809BA2C
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r5
- beq _0809BA02
-_0809B9CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809BA30
- adds r0, r1
- ldr r1, _0809BA34
- adds r2, r4, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809B9F0
- ldr r2, _0809BA38
- adds r0, r4, r2
- strb r6, [r0]
-_0809B9F0:
- movs r0, 0x2
- ands r3, r0
- ldr r7, _0809BA3C
- mov r12, r7
- cmp r3, 0
- beq _0809BA02
- ldr r1, _0809BA40
- adds r0, r4, r1
- strb r6, [r0]
-_0809BA02:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809B9AC
- mov r3, r12
- ldr r2, [r3]
- ldr r7, _0809BA38
- adds r0, r2, r7
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BA4C
- ldr r1, _0809BA44
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r3, _0809BA48
- b _0809BB54
- .align 2, 0
-_0809BA28: .4byte 0x00002682
-_0809BA2C: .4byte 0x00002683
-_0809BA30: .4byte gPlayerParty
-_0809BA34: .4byte 0x00002686
-_0809BA38: .4byte 0x0000267e
-_0809BA3C: .4byte gUnknown_083B6DB4
-_0809BA40: .4byte 0x0000267f
-_0809BA44: .4byte 0x0000267d
-_0809BA48: .4byte 0x0000267c
-_0809BA4C:
- movs r7, 0x9A
- lsls r7, 6
- adds r0, r2, r7
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BA68
- adds r0, r2, r3
- strb r1, [r0]
- adds r7, 0x4
- adds r1, r2, r7
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0809BB58
- .align 2, 0
-_0809BA68: .4byte 0x00002681
-_0809BA6C:
- ldr r1, _0809BA7C
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r7, _0809BA80
- adds r0, r2, r7
- strb r3, [r0]
- b _0809BB3C
- .align 2, 0
-_0809BA7C: .4byte 0x0000267d
-_0809BA80: .4byte 0x0000267c
-_0809BA84:
- movs r5, 0
- mov r9, r12
- adds r4, r2, 0
- movs r0, 0x9A
- lsls r0, 6
- adds r6, r4, r0
- ldr r1, _0809BB6C
- adds r1, r4
- mov r8, r1
- ldr r2, _0809BB70
- mov r10, r2
-_0809BA9A:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r3, _0809BB74
- adds r1, r4, r3
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BB78
- adds r1, r2
- adds r0, r1
- movs r1, 0x50
- ldr r7, _0809BB7C
- adds r2, r4, r7
- bl GetBoxMonData
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0809BB00
- ldr r1, _0809BB80
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r2, [r6]
- mov r1, r10
- ands r1, r0
- mov r0, r10
- ands r0, r2
- cmp r1, r0
- beq _0809BB00
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809BAF2
- ldr r2, _0809BB84
- adds r1, r4, r2
- movs r0, 0
- strb r0, [r1]
-_0809BAF2:
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- beq _0809BB00
- movs r0, 0
- mov r3, r8
- strb r0, [r3]
-_0809BB00:
- mov r7, r9
- ldr r2, [r7]
- ldr r0, _0809BB74
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- ldr r7, _0809BB88
- mov r12, r7
- cmp r0, 0x1D
- ble _0809BB32
- strb r3, [r1]
- movs r0, 0x9A
- lsls r0, 6
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xD
- bgt _0809BA6C
-_0809BB32:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _0809BA9A
-_0809BB3C:
- mov r1, r12
- ldr r2, [r1]
- ldr r3, _0809BB84
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BB58
- ldr r7, _0809BB8C
- adds r0, r2, r7
- movs r1, 0x1
- strb r1, [r0]
- subs r3, 0x2
-_0809BB54:
- adds r0, r2, r3
- strb r1, [r0]
-_0809BB58:
- movs r0, 0x1
- negs r0, r0
-_0809BB5C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BB6C: .4byte 0x0000267f
-_0809BB70: .4byte 0x0000ffff
-_0809BB74: .4byte 0x00002681
-_0809BB78: .4byte gUnknown_020300A4
-_0809BB7C: .4byte 0x00002686
-_0809BB80: .4byte 0x00002682
-_0809BB84: .4byte 0x0000267e
-_0809BB88: .4byte gUnknown_083B6DB4
-_0809BB8C: .4byte 0x0000267d
- thumb_func_end sub_809B960
-
- thumb_func_start sub_809BB90
-sub_809BB90: @ 809BB90
- push {lr}
- ldr r0, _0809BBB0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BBAA
- ldr r0, _0809BBB4
- ldr r1, _0809BBB8
- ldr r1, [r1]
- ldr r2, _0809BBBC
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_0809BBAA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BBB0: .4byte gUnknown_020384E6
-_0809BBB4: .4byte gUnknown_02038480
-_0809BBB8: .4byte gUnknown_083B6DB4
-_0809BBBC: .4byte 0x000025b4
- thumb_func_end sub_809BB90
-
- thumb_func_start sub_809BBC0
-sub_809BBC0: @ 809BBC0
- push {lr}
- ldr r0, _0809BBE4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BC08
- ldr r0, _0809BBE8
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0809BBF8
- ldr r0, _0809BBEC
- ldr r0, [r0]
- ldr r1, _0809BBF0
- adds r0, r1
- ldr r1, _0809BBF4
- movs r2, 0x64
- bl memcpy
- b _0809BC08
- .align 2, 0
-_0809BBE4: .4byte gUnknown_020384E6
-_0809BBE8: .4byte gUnknown_020384E7
-_0809BBEC: .4byte gUnknown_083B6DB4
-_0809BBF0: .4byte 0x000025b4
-_0809BBF4: .4byte gUnknown_02038480
-_0809BBF8:
- ldr r0, _0809BC0C
- ldr r0, [r0]
- ldr r1, _0809BC10
- adds r0, r1
- ldr r1, _0809BC14
- movs r2, 0x50
- bl memcpy
-_0809BC08:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BC0C: .4byte gUnknown_083B6DB4
-_0809BC10: .4byte 0x000025b4
-_0809BC14: .4byte gUnknown_02038480
- thumb_func_end sub_809BBC0
-
- thumb_func_start sub_809BC18
-sub_809BC18: @ 809BC18
- push {r4,r5,lr}
- ldr r0, _0809BC48
- ldrb r5, [r0]
- cmp r5, 0
- beq _0809BC64
- bl sub_809BB90
- ldr r0, _0809BC4C
- ldr r2, [r0]
- ldr r0, _0809BC50
- adds r1, r2, r0
- ldr r0, _0809BC54
- str r0, [r1]
- ldr r1, _0809BC58
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BC5C
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809BC60
- adds r2, r0
- strb r1, [r2]
- b _0809BCF2
- .align 2, 0
-_0809BC48: .4byte gUnknown_020384E6
-_0809BC4C: .4byte gUnknown_083B6DB4
-_0809BC50: .4byte 0x00002690
-_0809BC54: .4byte gUnknown_02038480
-_0809BC58: .4byte 0x0000268d
-_0809BC5C: .4byte 0x0000268c
-_0809BC60: .4byte 0x0000268e
-_0809BC64:
- ldr r0, _0809BC9C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BCBC
- ldr r0, _0809BCA0
- ldr r4, [r0]
- ldr r2, _0809BCA4
- adds r1, r4, r2
- ldr r0, _0809BCA8
- str r0, [r1]
- ldr r0, _0809BCAC
- ldrb r1, [r0]
- ldr r3, _0809BCB0
- adds r0, r4, r3
- strb r1, [r0]
- bl sub_8095C28
- subs r0, 0x1
- ldr r2, _0809BCB4
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _0809BCB8
- adds r4, r3
- strb r5, [r4]
- b _0809BCF2
- .align 2, 0
-_0809BC9C: .4byte gUnknown_020384E4
-_0809BCA0: .4byte gUnknown_083B6DB4
-_0809BCA4: .4byte 0x00002690
-_0809BCA8: .4byte gPlayerParty
-_0809BCAC: .4byte gUnknown_020384E5
-_0809BCB0: .4byte 0x0000268d
-_0809BCB4: .4byte 0x0000268c
-_0809BCB8: .4byte 0x0000268e
-_0809BCBC:
- ldr r0, _0809BCF8
- ldr r3, [r0]
- ldr r0, _0809BCFC
- adds r4, r3, r0
- ldr r2, _0809BD00
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r2, 0x4
- adds r0, r2
- str r0, [r4]
- ldr r0, _0809BD04
- ldrb r1, [r0]
- ldr r2, _0809BD08
- adds r0, r3, r2
- strb r1, [r0]
- ldr r0, _0809BD0C
- adds r1, r3, r0
- movs r0, 0x1D
- strb r0, [r1]
- ldr r1, _0809BD10
- adds r3, r1
- movs r0, 0x5
- strb r0, [r3]
-_0809BCF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BCF8: .4byte gUnknown_083B6DB4
-_0809BCFC: .4byte 0x00002690
-_0809BD00: .4byte gPokemonStorage
-_0809BD04: .4byte gUnknown_020384E5
-_0809BD08: .4byte 0x0000268d
-_0809BD0C: .4byte 0x0000268c
-_0809BD10: .4byte 0x0000268e
- thumb_func_end sub_809BC18
-
- thumb_func_start sub_809BD14
-sub_809BD14: @ 809BD14
- push {lr}
- ldr r0, _0809BD24
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BD28
- bl sub_809BBC0
- b _0809BD30
- .align 2, 0
-_0809BD24: .4byte gUnknown_020384E6
-_0809BD28:
- ldr r0, _0809BD34
- ldr r1, _0809BD38
- ldrb r1, [r1, 0x9]
- strb r1, [r0]
-_0809BD30:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BD34: .4byte gUnknown_020384E5
-_0809BD38: .4byte 0x02018000
- thumb_func_end sub_809BD14
-
- thumb_func_start party_compaction
-party_compaction: @ 809BD3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _0809BD88
- movs r6, 0
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, _0809BD8C
- mov r8, r1
- subs r0, 0x65
- mov r10, r0
-_0809BD58:
- mov r0, r9
- muls r0, r6
- mov r1, r8
- adds r4, r0, r1
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- cmp r0, 0
- beq _0809BD90
- cmp r6, r5
- beq _0809BD80
- mov r0, r9
- muls r0, r5
- add r0, r8
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_0809BD80:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0809BD9A
- .align 2, 0
-_0809BD88: .4byte 0x0000ffff
-_0809BD8C: .4byte gPlayerParty
-_0809BD90:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r10
- bne _0809BD9A
- adds r7, r6, 0
-_0809BD9A:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _0809BD58
- lsls r7, 16
- cmp r5, 0x5
- bhi _0809BDC2
- movs r6, 0x64
- ldr r4, _0809BDD4
-_0809BDAE:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- bl ZeroMonData
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809BDAE
-_0809BDC2:
- asrs r0, r7, 16
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BDD4: .4byte gPlayerParty
- thumb_func_end party_compaction
-
- thumb_func_start sub_809BDD8
-sub_809BDD8: @ 809BDD8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0809BE04
- ldr r2, [r1]
- ldr r3, _0809BE08
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _0809BE0C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BE14
- ldr r1, _0809BE10
- adds r0, r2, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _0809BE68
- .align 2, 0
-_0809BE04: .4byte gUnknown_083B6DB4
-_0809BE08: .4byte 0x000011f7
-_0809BE0C: .4byte gUnknown_020384E6
-_0809BE10: .4byte 0x000025b4
-_0809BE14:
- ldr r4, _0809BE70
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1
- bne _0809BE34
- ldr r0, _0809BE74
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BE78
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
-_0809BE34:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _0809BE68
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809BE74
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BE7C
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_0809BE68:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BE70: .4byte gUnknown_020384E4
-_0809BE74: .4byte gUnknown_020384E5
-_0809BE78: .4byte gPlayerParty
-_0809BE7C: .4byte gUnknown_020300A4
- thumb_func_end sub_809BDD8
-
- thumb_func_start sub_809BE80
-sub_809BE80: @ 809BE80
- push {lr}
- ldr r0, _0809BEA8
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEB4
- ldr r0, _0809BEAC
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BEB4
- ldr r0, _0809BEB0
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEB4
- movs r0, 0x1
- b _0809BEB6
- .align 2, 0
-_0809BEA8: .4byte gUnknown_020384E4
-_0809BEAC: .4byte gUnknown_020384E6
-_0809BEB0: .4byte gUnknown_020384E5
-_0809BEB4:
- movs r0, 0
-_0809BEB6:
- pop {r1}
- bx r1
- thumb_func_end sub_809BE80
-
- thumb_func_start sub_809BEBC
-sub_809BEBC: @ 809BEBC
- push {lr}
- ldr r0, _0809BF00
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BF18
- ldr r0, _0809BF04
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEFC
- ldr r0, _0809BF08
- ldrb r0, [r0]
- bl sub_8095BB4
- lsls r0, 24
- cmp r0, 0
- bne _0809BEFC
- ldr r0, _0809BF0C
- ldr r1, [r0]
- ldr r2, _0809BF10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BF18
- ldr r2, _0809BF14
- adds r0, r1, r2
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0809BF18
-_0809BEFC:
- movs r0, 0x1
- b _0809BF1A
- .align 2, 0
-_0809BF00: .4byte gUnknown_020384E6
-_0809BF04: .4byte gUnknown_020384E4
-_0809BF08: .4byte gUnknown_020384E5
-_0809BF0C: .4byte gUnknown_083B6DB4
-_0809BF10: .4byte 0x000011f9
-_0809BF14: .4byte 0x000025b4
-_0809BF18:
- movs r0, 0
-_0809BF1A:
- pop {r1}
- bx r1
- thumb_func_end sub_809BEBC
-
- thumb_func_start sub_809BF20
-sub_809BF20: @ 809BF20
- ldr r0, _0809BF28
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809BF28: .4byte gUnknown_020384E6
- thumb_func_end sub_809BF20
-
- thumb_func_start sub_809BF2C
-sub_809BF2C: @ 809BF2C
- push {lr}
- movs r1, 0
- ldr r0, _0809BF44
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _0809BF3E
- movs r1, 0x1
-_0809BF3E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF44: .4byte gUnknown_020384E4
- thumb_func_end sub_809BF2C
-
- thumb_func_start sub_809BF48
-sub_809BF48: @ 809BF48
- push {lr}
- movs r1, 0
- ldr r0, _0809BF6C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _0809BF66
- ldr r0, _0809BF70
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BF66
- movs r1, 0x1
-_0809BF66:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF6C: .4byte gUnknown_020384E4
-_0809BF70: .4byte gUnknown_020384E5
- thumb_func_end sub_809BF48
-
- thumb_func_start sub_809BF74
-sub_809BF74: @ 809BF74
- push {r4,lr}
- ldr r0, _0809BFA8
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _0809BFAC
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809BF86
- movs r2, 0x1
-_0809BF86:
- ldr r4, _0809BFB0
- adds r0, r1, r4
- strb r2, [r0]
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809C018
- ldr r0, _0809BFB4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809BFBE
- cmp r0, 0x1
- bgt _0809BFB8
- cmp r0, 0
- beq _0809BFEE
- b _0809C018
- .align 2, 0
-_0809BFA8: .4byte gUnknown_083B6DB4
-_0809BFAC: .4byte gUnknown_020384E6
-_0809BFB0: .4byte 0x000011f6
-_0809BFB4: .4byte gUnknown_020384E4
-_0809BFB8:
- cmp r0, 0x3
- bgt _0809C018
- b _0809BFE4
-_0809BFBE:
- ldr r1, _0809BFDC
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0809BFE4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BFE0
- adds r0, r1
- movs r1, 0
- bl sub_809C04C
- b _0809C018
- .align 2, 0
-_0809BFDC: .4byte gUnknown_020384E5
-_0809BFE0: .4byte gPlayerParty
-_0809BFE4:
- movs r0, 0
- movs r1, 0x2
- bl sub_809C04C
- b _0809C018
-_0809BFEE:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809C020
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809C024
- adds r1, r2
- adds r0, r1
- movs r1, 0x1
- bl sub_809C04C
-_0809C018:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C020: .4byte gUnknown_020384E5
-_0809C024: .4byte gUnknown_020300A4
- thumb_func_end sub_809BF74
-
- thumb_func_start sub_809C028
-sub_809C028: @ 809C028
- push {lr}
- ldr r0, _0809C03C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C044
- ldr r0, _0809C040
- movs r1, 0
- bl sub_809C04C
- b _0809C048
- .align 2, 0
-_0809C03C: .4byte gUnknown_020384E6
-_0809C040: .4byte gUnknown_02038480
-_0809C044:
- bl sub_809BF74
-_0809C048:
- pop {r0}
- bx r0
- thumb_func_end sub_809C028
-
- thumb_func_start sub_809C04C
-sub_809C04C: @ 809C04C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp]
- ldr r0, _0809C0FC
- ldr r6, [r0]
- ldr r2, _0809C100
- adds r2, r6
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r2]
- cmp r1, 0
- bne _0809C120
- adds r0, r7, 0
- movs r1, 0x41
- bl GetMonData
- ldr r2, _0809C104
- adds r1, r6, r2
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0809C08C
- b _0809C1EC
-_0809C08C:
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- ldr r2, _0809C108
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C10C
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- ldr r2, _0809C110
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetMonData
- ldr r2, _0809C114
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r2, _0809C118
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl pokemon_get_pal
- ldr r2, _0809C11C
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- b _0809C1B2
- .align 2, 0
-_0809C0FC: .4byte gUnknown_083B6DB4
-_0809C100: .4byte 0x000011f2
-_0809C104: .4byte 0x000011f0
-_0809C108: .4byte 0x000011f9
-_0809C10C: .4byte 0x000011fa
-_0809C110: .4byte 0x000011f8
-_0809C114: .4byte 0x000011f7
-_0809C118: .4byte 0x000011ec
-_0809C11C: .4byte 0x000011e8
-_0809C120:
- cmp r1, 0x1
- bne _0809C1D4
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- ldr r2, _0809C1B8
- adds r5, r6, r2
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0809C1EC
- adds r0, r7, 0
- movs r1, 0x1
- bl GetBoxMonData
- mov r9, r0
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetBoxMonData
- ldr r2, _0809C1BC
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C1C0
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetBoxMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- bl GetLevelFromBoxMonExp
- ldr r2, _0809C1C4
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetBoxMonData
- ldr r2, _0809C1C8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r2, r0, 0
- ldr r0, _0809C1CC
- adds r4, r6, r0
- str r2, [r4]
- ldrh r0, [r5]
- mov r1, r9
- bl species_and_otid_get_pal
- ldr r2, _0809C1D0
- adds r1, r6, r2
- str r0, [r1]
- ldrh r0, [r5]
- ldr r1, [r4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetBoxMonData
-_0809C1B2:
- mov r1, r8
- strh r0, [r1]
- b _0809C1DE
- .align 2, 0
-_0809C1B8: .4byte 0x000011f0
-_0809C1BC: .4byte 0x000011f9
-_0809C1C0: .4byte 0x000011fa
-_0809C1C4: .4byte 0x000011f8
-_0809C1C8: .4byte 0x000011f7
-_0809C1CC: .4byte 0x000011ec
-_0809C1D0: .4byte 0x000011e8
-_0809C1D4:
- ldr r2, _0809C220
- adds r0, r6, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0]
-_0809C1DE:
- ldr r0, _0809C224
- ldr r4, [r0]
- ldr r2, _0809C220
- adds r0, r4, r2
- ldrh r1, [r0]
- cmp r1, 0
- bne _0809C23C
-_0809C1EC:
- ldr r0, _0809C224
- ldr r1, [r0]
- ldr r0, _0809C228
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r0, _0809C22C
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C230
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C234
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r2, _0809C238
- adds r1, r2
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C220: .4byte 0x000011f0
-_0809C224: .4byte gUnknown_083B6DB4
-_0809C228: .4byte 0x000011fa
-_0809C22C: .4byte 0x0000120f
-_0809C230: .4byte 0x00001234
-_0809C234: .4byte 0x00001259
-_0809C238: .4byte 0x0000127a
-_0809C23C:
- ldr r2, _0809C28C
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C2A4
- ldr r0, _0809C290
- adds r7, r4, r0
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x4
- strb r0, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r1, _0809C294
- adds r7, r4, r1
- adds r2, 0x1
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C298
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, _0809C29C
- adds r1, r4, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- ldr r0, _0809C2A0
- adds r1, r4, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C28C: .4byte 0x000011f9
-_0809C290: .4byte 0x0000120f
-_0809C294: .4byte 0x00001214
-_0809C298: .4byte 0x00001234
-_0809C29C: .4byte 0x00001259
-_0809C2A0: .4byte 0x0000127a
-_0809C2A4:
- cmp r1, 0x20
- beq _0809C2AC
- cmp r1, 0x1D
- bne _0809C2B0
-_0809C2AC:
- movs r1, 0xFF
- str r1, [sp]
-_0809C2B0:
- ldr r0, _0809C388
- ldr r4, [r0]
- ldr r2, _0809C38C
- adds r7, r4, r2
- movs r0, 0xFC
- mov r9, r0
- strb r0, [r7]
- movs r1, 0x4
- mov r8, r1
- strb r1, [r7, 0x1]
- movs r2, 0xF
- strb r2, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r6, 0x1
- strb r6, [r7, 0x4]
- ldr r1, _0809C390
- adds r7, r4, r1
- ldr r2, _0809C394
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C398
- adds r7, r4, r0
- mov r1, r9
- strb r1, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r7, 0x6]
- movs r1, 0x7
- strb r1, [r7, 0x7]
- movs r0, 0xBA
- strb r0, [r7, 0x8]
- ldr r2, _0809C39C
- adds r7, r4, r2
- ldr r1, _0809C3A0
- adds r0, r4, r1
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _0809C3A4
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r2, r9
- strb r2, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- movs r0, 0x50
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r1, _0809C3A8
- adds r7, r4, r1
- strb r2, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- mov r0, r10
- strb r0, [r7, 0x6]
- movs r6, 0x8
- strb r6, [r7, 0x7]
- ldr r1, _0809C3AC
- adds r7, r4, r1
- movs r0, 0x34
- strb r0, [r7]
- ldr r2, _0809C3B0
- adds r7, r4, r2
- ldr r0, _0809C3B4
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r7, 0
- movs r2, 0x22
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- mov r1, r9
- strb r1, [r7]
- movs r0, 0x11
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- adds r7, 0x3
- ldr r2, [sp]
- cmp r2, 0
- beq _0809C3B8
- cmp r2, 0xFE
- beq _0809C3D0
- b _0809C3EA
- .align 2, 0
-_0809C388: .4byte gUnknown_083B6DB4
-_0809C38C: .4byte 0x0000120f
-_0809C390: .4byte 0x00001214
-_0809C394: .4byte 0x000011fa
-_0809C398: .4byte 0x00001234
-_0809C39C: .4byte 0x0000123d
-_0809C3A0: .4byte 0x000011f0
-_0809C3A4: .4byte gSpeciesNames
-_0809C3A8: .4byte 0x00001259
-_0809C3AC: .4byte 0x00001261
-_0809C3B0: .4byte 0x00001262
-_0809C3B4: .4byte 0x000011f8
-_0809C3B8:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- strb r1, [r7, 0x2]
- mov r2, sp
- ldrb r2, [r2]
- strb r2, [r7, 0x3]
- movs r0, 0x5
- strb r0, [r7, 0x4]
- movs r0, 0xB5
- b _0809C3E6
-_0809C3D0:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- movs r2, 0
- strb r2, [r7, 0x3]
- movs r0, 0x7
- strb r0, [r7, 0x4]
- movs r0, 0xB6
-_0809C3E6:
- strb r0, [r7, 0x5]
- adds r7, 0x6
-_0809C3EA:
- movs r5, 0xFF
- strb r5, [r7]
- ldr r0, _0809C450
- ldr r2, [r0]
- ldr r1, _0809C454
- adds r7, r2, r1
- ldr r0, _0809C458
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _0809C43C
- movs r4, 0xFC
- strb r4, [r7]
- movs r1, 0x4
- strb r1, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r0, _0809C45C
- adds r7, r2, r0
- strb r4, [r7]
- movs r0, 0x6
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- ldr r1, _0809C460
- adds r7, r2, r1
- ldrh r0, [r3]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x7
- strb r0, [r7, 0x1]
- adds r7, 0x2
-_0809C43C:
- strb r5, [r7]
-_0809C43E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C450: .4byte gUnknown_083B6DB4
-_0809C454: .4byte 0x0000127a
-_0809C458: .4byte 0x000011f2
-_0809C45C: .4byte 0x0000127f
-_0809C460: .4byte 0x00001282
- thumb_func_end sub_809C04C
-
- thumb_func_start sub_809C464
-sub_809C464: @ 809C464
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0809C4D8
- ldrb r0, [r0]
- mov r8, r0
- ldr r2, _0809C4DC
- ldrb r4, [r2]
- ldr r0, _0809C4E0
- ldr r1, [r0]
- ldr r0, _0809C4E4
- adds r7, r1, r0
- movs r0, 0
- strb r0, [r7]
- ldr r3, _0809C4E8
- adds r5, r1, r3
- strb r0, [r5]
- adds r3, 0x4
- adds r6, r1, r3
- strb r0, [r6]
- ldr r0, _0809C4EC
- mov r12, r0
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _0809C4A0
- b _0809C62A
-_0809C4A0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C4F0
- movs r1, 0x1
- mov r9, r1
- lsls r0, r4, 24
- movs r3, 0xC0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x1D
- bgt _0809C4BE
- b _0809C648
-_0809C4BE:
- movs r1, 0x3
- mov r8, r1
- subs r0, 0x1E
- lsls r0, 24
- asrs r0, 24
- bl __divsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r9
- strb r3, [r7]
- strb r3, [r6]
- b _0809C648
- .align 2, 0
-_0809C4D8: .4byte gUnknown_020384E4
-_0809C4DC: .4byte gUnknown_020384E5
-_0809C4E0: .4byte gUnknown_083B6DB4
-_0809C4E4: .4byte 0x000011de
-_0809C4E8: .4byte 0x000011df
-_0809C4EC: .4byte gMain
-_0809C4F0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C524
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 24
- cmp r0, 0
- beq _0809C514
- lsls r0, r4, 24
- movs r1, 0xFF
- lsls r1, 24
- b _0809C63C
-_0809C514:
- movs r0, 0xFF
- strb r0, [r5]
- lsls r0, r4, 24
- movs r3, 0xA0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- b _0809C648
-_0809C524:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C554
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, 0x1
- movs r1, 0x6
- bl __modsi3
- cmp r0, 0
- beq _0809C548
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- b _0809C63C
-_0809C548:
- mov r3, r9
- strb r3, [r5]
- lsls r0, r4, 24
- movs r1, 0xFB
- lsls r1, 24
- b _0809C63C
-_0809C554:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C56A
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
- b _0809C646
-_0809C56A:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C5D4
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C5D4
- ldr r0, _0809C588
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C58C
- movs r0, 0x8
- b _0809C658
- .align 2, 0
-_0809C588: .4byte gUnknown_020384E9
-_0809C58C:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C5D4
- lsls r0, 2
- ldr r1, _0809C5A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C5A8: .4byte _0809C5AC
- .align 2, 0
-_0809C5AC:
- .4byte _0809C5C0
- .4byte _0809C5C4
- .4byte _0809C5C8
- .4byte _0809C5CC
- .4byte _0809C5D0
-_0809C5C0:
- movs r0, 0xB
- b _0809C658
-_0809C5C4:
- movs r0, 0xC
- b _0809C658
-_0809C5C8:
- movs r0, 0xD
- b _0809C658
-_0809C5CC:
- movs r0, 0xE
- b _0809C658
-_0809C5D0:
- movs r0, 0xF
- b _0809C658
-_0809C5D4:
- ldr r2, _0809C5E4
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C5E8
- movs r0, 0x10
- b _0809C658
- .align 2, 0
-_0809C5E4: .4byte gMain
-_0809C5E8:
- ldr r0, _0809C600
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C612
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0809C604
- movs r0, 0xA
- b _0809C658
- .align 2, 0
-_0809C600: .4byte gSaveBlock2
-_0809C604:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0809C612
- movs r0, 0x9
- b _0809C658
-_0809C612:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C624
- bl sub_809CD88
- movs r0, 0
- b _0809C658
-_0809C624:
- movs r3, 0
- mov r9, r3
- b _0809C656
-_0809C62A:
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- ble _0809C642
- lsls r0, r4, 24
- movs r1, 0xFA
- lsls r1, 24
-_0809C63C:
- adds r0, r1
- lsrs r4, r0, 24
- b _0809C648
-_0809C642:
- movs r3, 0x2
- mov r8, r3
-_0809C646:
- movs r4, 0
-_0809C648:
- mov r0, r9
- cmp r0, 0
- beq _0809C656
- mov r0, r8
- adds r1, r4, 0
- bl sub_809AF18
-_0809C656:
- mov r0, r9
-_0809C658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C464
-
- thumb_func_start sub_809C664
-sub_809C664: @ 809C664
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809C6D8
- ldrb r0, [r0]
- mov r10, r0
- ldr r7, _0809C6DC
- ldrb r4, [r7]
- ldr r2, _0809C6E0
- ldr r5, [r2]
- ldr r1, _0809C6E4
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C6E8
- adds r0, r5, r3
- strb r1, [r0]
- adds r3, 0x5
- adds r0, r5, r3
- strb r1, [r0]
- mov r9, r1
- mov r8, r1
- ldr r1, _0809C6EC
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- adds r6, r7, 0
- mov r12, r2
- adds r2, r1, 0
- cmp r0, 0
- beq _0809C6A8
- b _0809C81C
-_0809C6A8:
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C6F0
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x6
- ble _0809C6C2
- movs r4, 0
-_0809C6C2:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- bne _0809C6D0
- b _0809C83C
-_0809C6D0:
- movs r2, 0x1
- mov r8, r2
- b _0809C842
- .align 2, 0
-_0809C6D8: .4byte gUnknown_020384E4
-_0809C6DC: .4byte gUnknown_020384E5
-_0809C6E0: .4byte gUnknown_083B6DB4
-_0809C6E4: .4byte 0x000011df
-_0809C6E8: .4byte 0x000011de
-_0809C6EC: .4byte gMain
-_0809C6F0:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0809C714
- ldrb r1, [r6]
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- beq _0809C714
- movs r3, 0x1
- mov r8, r3
- ldr r2, _0809C710
- adds r0, r5, r2
- strb r1, [r0]
- movs r4, 0
- b _0809C83C
- .align 2, 0
-_0809C710: .4byte 0x000011e2
-_0809C714:
- ldrh r1, [r2, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C748
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- bne _0809C73C
- movs r3, 0x1
- mov r8, r3
- mov r1, r12
- ldr r0, [r1]
- ldr r2, _0809C738
- adds r0, r2
- ldrb r4, [r0]
- b _0809C83C
- .align 2, 0
-_0809C738: .4byte 0x000011e2
-_0809C73C:
- movs r3, 0x6
- mov r8, r3
- movs r0, 0
- mov r10, r0
- movs r4, 0
- b _0809C83C
-_0809C748:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C7D0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- bne _0809C76E
- mov r1, r12
- ldr r0, [r1]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C768
- movs r0, 0x4
- b _0809C84C
-_0809C768:
- movs r2, 0x1
- mov r9, r2
- b _0809C7D0
-_0809C76E:
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C7D0
- ldr r0, _0809C784
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C788
- movs r0, 0x8
- b _0809C84C
- .align 2, 0
-_0809C784: .4byte gUnknown_020384E9
-_0809C788:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C7D0
- lsls r0, 2
- ldr r1, _0809C7A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C7A4: .4byte _0809C7A8
- .align 2, 0
-_0809C7A8:
- .4byte _0809C7BC
- .4byte _0809C7C0
- .4byte _0809C7C4
- .4byte _0809C7C8
- .4byte _0809C7CC
-_0809C7BC:
- movs r0, 0xB
- b _0809C84C
-_0809C7C0:
- movs r0, 0xC
- b _0809C84C
-_0809C7C4:
- movs r0, 0xD
- b _0809C84C
-_0809C7C8:
- movs r0, 0xE
- b _0809C84C
-_0809C7CC:
- movs r0, 0xF
- b _0809C84C
-_0809C7D0:
- ldr r2, _0809C7EC
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C7F8
- ldr r0, _0809C7F0
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C7F4
- movs r0, 0x10
- b _0809C84C
- .align 2, 0
-_0809C7EC: .4byte gMain
-_0809C7F0: .4byte gUnknown_083B6DB4
-_0809C7F4:
- movs r3, 0x1
- mov r9, r3
-_0809C7F8:
- mov r0, r9
- cmp r0, 0
- beq _0809C80A
- movs r1, 0x6
- mov r8, r1
- movs r2, 0
- mov r10, r2
- movs r4, 0
- b _0809C83C
-_0809C80A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C83C
- bl sub_809CD88
- movs r0, 0
- b _0809C84C
-_0809C81C:
- lsls r0, r4, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r0, r3
- lsrs r4, r0, 24
- cmp r0, 0
- bge _0809C82C
- movs r4, 0x6
-_0809C82C:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r7, r1]
- cmp r0, r1
- beq _0809C83C
- movs r0, 0x1
- mov r8, r0
-_0809C83C:
- mov r1, r8
- cmp r1, 0
- beq _0809C84A
-_0809C842:
- mov r0, r10
- adds r1, r4, 0
- bl sub_809AF18
-_0809C84A:
- mov r0, r8
-_0809C84C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C664
-
- thumb_func_start sub_809C85C
-sub_809C85C: @ 809C85C
- push {r4-r6,lr}
- ldr r0, _0809C894
- ldr r2, [r0]
- ldr r1, _0809C898
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C89C
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809C8A0
- adds r2, r0
- strb r1, [r2]
- ldr r1, _0809C8A4
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- bne _0809C91A
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C8A8
- movs r4, 0x1
- movs r0, 0
- movs r5, 0x2
- b _0809C922
- .align 2, 0
-_0809C894: .4byte gUnknown_083B6DB4
-_0809C898: .4byte 0x000011df
-_0809C89C: .4byte 0x000011de
-_0809C8A0: .4byte 0x000011e3
-_0809C8A4: .4byte gMain
-_0809C8A8:
- ldrh r2, [r1, 0x2C]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0809C8CC
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0809C8DE
- ldr r0, _0809C8D0
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C8E2
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0809C8D4
-_0809C8CC:
- movs r0, 0xA
- b _0809C93E
- .align 2, 0
-_0809C8D0: .4byte gSaveBlock2
-_0809C8D4:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0809C8E2
-_0809C8DE:
- movs r0, 0x9
- b _0809C93E
-_0809C8E2:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C8FA
- movs r0, 0
- bl sub_809A860
- bl sub_809CA8C
- movs r0, 0x7
- b _0809C93E
-_0809C8FA:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C906
- movs r0, 0x10
- b _0809C93E
-_0809C906:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C916
- bl sub_809CD88
- movs r0, 0
- b _0809C93E
-_0809C916:
- movs r4, 0
- b _0809C93C
-_0809C91A:
- movs r4, 0x1
- movs r0, 0x3
- movs r5, 0
- strb r4, [r2]
-_0809C922:
- cmp r4, 0
- beq _0809C93C
- lsls r6, r0, 24
- cmp r0, 0x2
- beq _0809C932
- movs r0, 0
- bl sub_809A860
-_0809C932:
- lsrs r0, r6, 24
- lsls r1, r5, 24
- lsrs r1, 24
- bl sub_809AF18
-_0809C93C:
- adds r0, r4, 0
-_0809C93E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C85C
-
- thumb_func_start sub_809C944
-sub_809C944: @ 809C944
- push {r4-r7,lr}
- ldr r0, _0809C988
- ldrb r0, [r0]
- mov r12, r0
- ldr r7, _0809C98C
- ldrb r3, [r7]
- ldr r0, _0809C990
- ldr r1, [r0]
- ldr r0, _0809C994
- adds r5, r1, r0
- movs r0, 0
- strb r0, [r5]
- ldr r2, _0809C998
- adds r4, r1, r2
- strb r0, [r4]
- adds r2, 0x5
- adds r1, r2
- strb r0, [r1]
- ldr r6, _0809C99C
- ldrh r2, [r6, 0x30]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0809CA14
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- beq _0809C9A0
- movs r6, 0x1
- movs r0, 0x2
- mov r12, r0
- movs r3, 0
- b _0809CA2A
- .align 2, 0
-_0809C988: .4byte gUnknown_020384E4
-_0809C98C: .4byte gUnknown_020384E5
-_0809C990: .4byte gUnknown_083B6DB4
-_0809C994: .4byte 0x000011df
-_0809C998: .4byte 0x000011de
-_0809C99C: .4byte gMain
-_0809C9A0:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0809C9C0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r3, r0, 24
- cmp r0, 0
- bge _0809CA2C
- movs r0, 0xFF
- strb r0, [r5]
- movs r3, 0x1
- b _0809CA2C
-_0809C9C0:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _0809C9E0
- movs r6, 0x1
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x1
- ble _0809CA2C
- strb r6, [r5]
- movs r3, 0
- b _0809CA2C
-_0809C9E0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C9F4
- movs r0, 0x4
- cmp r3, 0
- bne _0809CA3A
- movs r0, 0x5
- b _0809CA3A
-_0809C9F4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CA00
- movs r0, 0x10
- b _0809CA3A
-_0809CA00:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809CA10
- bl sub_809CD88
- movs r0, 0
- b _0809CA3A
-_0809CA10:
- movs r6, 0
- b _0809CA38
-_0809CA14:
- movs r6, 0x1
- movs r0, 0
- mov r12, r0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- ldrsb r0, [r7, r0]
- movs r3, 0x1D
- cmp r0, 0
- bne _0809CA2A
- movs r3, 0x18
-_0809CA2A:
- strb r6, [r1]
-_0809CA2C:
- cmp r6, 0
- beq _0809CA38
- mov r0, r12
- adds r1, r3, 0
- bl sub_809AF18
-_0809CA38:
- adds r0, r6, 0
-_0809CA3A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C944
-
- thumb_func_start sub_809CA40
-sub_809CA40: @ 809CA40
- push {r4,r5,lr}
- movs r3, 0
- ldr r0, _0809CA6C
- ldr r1, [r0]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809CA84
- ldr r5, _0809CA70
-_0809CA50:
- lsls r0, r3, 3
- adds r2, r0, r4
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bne _0809CA74
- ldr r0, [r2]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- b _0809CA86
- .align 2, 0
-_0809CA6C: .4byte gUnknown_083BBBD4
-_0809CA70: .4byte gUnknown_020384E4
-_0809CA74:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r0, r3, 3
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- bne _0809CA50
-_0809CA84:
- movs r0, 0
-_0809CA86:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809CA40
-
- thumb_func_start sub_809CA8C
-sub_809CA8C: @ 809CA8C
- push {lr}
- bl sub_809CDCC
- movs r0, 0x9
- bl sub_809CDEC
- movs r0, 0xA
- bl sub_809CDEC
- movs r0, 0xB
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- pop {r0}
- bx r0
- thumb_func_end sub_809CA8C
-
- thumb_func_start sub_809CAB0
-sub_809CAB0: @ 809CAB0
- push {lr}
- bl sub_809CDCC
- bl sub_809AB8C
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0809CAD4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- beq _0809CADE
- cmp r0, 0x1
- bgt _0809CAD8
- cmp r0, 0
- beq _0809CAEA
- b _0809CB24
- .align 2, 0
-_0809CAD4: .4byte gUnknown_083B6DB4
-_0809CAD8:
- cmp r0, 0x2
- beq _0809CAF6
- b _0809CB24
-_0809CADE:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x1
- bl sub_809CDEC
- b _0809CB28
-_0809CAEA:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB28
-_0809CAF6:
- ldr r0, _0809CB0C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CB18
- cmp r1, 0
- beq _0809CB10
- movs r0, 0x4
- bl sub_809CDEC
- b _0809CB28
- .align 2, 0
-_0809CB0C: .4byte gUnknown_020384E6
-_0809CB10:
- movs r0, 0x5
- bl sub_809CDEC
- b _0809CB28
-_0809CB18:
- cmp r1, 0
- beq _0809CB24
- movs r0, 0x3
- bl sub_809CDEC
- b _0809CB28
-_0809CB24:
- movs r0, 0
- b _0809CB6E
-_0809CB28:
- movs r0, 0x6
- bl sub_809CDEC
- ldr r0, _0809CB4C
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x2
- bne _0809CB5A
- ldr r0, _0809CB50
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _0809CB54
- movs r0, 0x2
- bl sub_809CDEC
- b _0809CB5A
- .align 2, 0
-_0809CB4C: .4byte gUnknown_083B6DB4
-_0809CB50: .4byte gUnknown_020384E4
-_0809CB54:
- movs r0, 0x1
- bl sub_809CDEC
-_0809CB5A:
- movs r0, 0x8
- bl sub_809CDEC
- movs r0, 0x7
- bl sub_809CDEC
- movs r0, 0
- bl sub_809CDEC
- movs r0, 0x1
-_0809CB6E:
- pop {r1}
- bx r1
- thumb_func_end sub_809CAB0
-
- thumb_func_start sub_809CB74
-sub_809CB74: @ 809CB74
- ldr r1, _0809CB90
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r1, [r1]
- ldrh r1, [r1, 0x22]
- adds r1, 0x14
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0809CB90: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809CB74
-
- thumb_func_start unref_sub_809CB94
-unref_sub_809CB94: @ 809CB94
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0809CBBC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CBC8
- ldr r2, _0809CBC0
- ldr r0, _0809CBC4
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
- b _0809CBF6
- .align 2, 0
-_0809CBBC: .4byte gUnknown_020384E4
-_0809CBC0: .4byte gPlayerParty
-_0809CBC4: .4byte gUnknown_020384E5
-_0809CBC8:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0809CBFC
- ldr r1, _0809CC00
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- lsls r2, r0, 2
- adds r2, r0
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- adds r1, r0
- adds r1, r3
- adds r1, 0x4
- adds r0, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809CBF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CBFC: .4byte gPokemonStorage
-_0809CC00: .4byte gUnknown_020384E5
- thumb_func_end unref_sub_809CB94
-
- thumb_func_start sub_809CC04
-sub_809CC04: @ 809CC04
- push {r4-r7,lr}
- sub sp, 0x34
- mov r1, sp
- ldr r0, _0809CCB0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- add r4, sp, 0x18
- adds r1, r4, 0
- ldr r0, _0809CCB4
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- ldr r0, _0809CCB8
- bl IndexOfSpritePaletteTag
- ldr r1, _0809CCBC
- ldr r6, [r1]
- ldr r4, _0809CCC0
- adds r7, r6, r4
- strb r0, [r7]
- ldr r0, _0809CCC4
- bl IndexOfSpritePaletteTag
- ldr r5, _0809CCC8
- adds r1, r6, r5
- strb r0, [r1]
- ldr r0, _0809CCCC
- ldrb r0, [r0]
- ldr r1, _0809CCD0
- ldrb r1, [r1]
- add r4, sp, 0x30
- mov r5, sp
- adds r5, 0x32
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_809AACC
- ldr r0, _0809CCD4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0
- ldrsh r2, [r5, r3]
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CCE4
- movs r5, 0x8E
- lsls r5, 5
- adds r4, r6, r5
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CCD8
- adds r1, r0
- str r1, [r4]
- ldr r0, _0809CCDC
- ldrb r0, [r0]
- adds r0, r7, r0
- ldrb r2, [r0]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _0809CCE0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809CCEE
- ldr r0, [r4]
- movs r1, 0x3
- bl StartSpriteAnim
- b _0809CCEE
- .align 2, 0
-_0809CCB0: .4byte gHandCursorSpriteSheets
-_0809CCB4: .4byte gHandCursorSpritePalettes
-_0809CCB8: .4byte 0x0000dac6
-_0809CCBC: .4byte gUnknown_083B6DB4
-_0809CCC0: .4byte 0x000011e4
-_0809CCC4: .4byte 0x0000dad1
-_0809CCC8: .4byte 0x000011e5
-_0809CCCC: .4byte gUnknown_020384E4
-_0809CCD0: .4byte gUnknown_020384E5
-_0809CCD4: .4byte gSpriteTemplate_83BBC70
-_0809CCD8: .4byte gSprites
-_0809CCDC: .4byte gUnknown_020384E9
-_0809CCE0: .4byte gUnknown_020384E6
-_0809CCE4:
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r6, r0
- movs r0, 0
- str r0, [r1]
-_0809CCEE:
- ldr r0, _0809CD00
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809CD04
- movs r3, 0xC
- movs r5, 0x1
- b _0809CD08
- .align 2, 0
-_0809CD00: .4byte gUnknown_020384E4
-_0809CD04:
- movs r3, 0x14
- movs r5, 0x2
-_0809CD08:
- ldr r0, _0809CD58
- movs r1, 0
- movs r2, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0809CD6C
- ldr r0, _0809CD5C
- ldr r0, [r0]
- ldr r1, _0809CD60
- adds r4, r0, r1
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r0, _0809CD64
- adds r1, r0
- str r1, [r4]
- lsls r3, r5, 2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r0, _0809CD68
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809CD78
- ldr r0, [r4]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809CD78
- .align 2, 0
-_0809CD58: .4byte gSpriteTemplate_83BBC88
-_0809CD5C: .4byte gUnknown_083B6DB4
-_0809CD60: .4byte 0x000011c4
-_0809CD64: .4byte gSprites
-_0809CD68: .4byte gUnknown_020384E4
-_0809CD6C:
- ldr r0, _0809CD80
- ldr r0, [r0]
- ldr r2, _0809CD84
- adds r0, r2
- movs r1, 0
- str r1, [r0]
-_0809CD78:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CD80: .4byte gUnknown_083B6DB4
-_0809CD84: .4byte 0x000011c4
- thumb_func_end sub_809CC04
-
- thumb_func_start sub_809CD88
-sub_809CD88: @ 809CD88
- push {lr}
- ldr r2, _0809CDC0
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0
- bne _0809CD96
- movs r1, 0x1
-_0809CD96:
- strb r1, [r2]
- ldr r0, _0809CDC4
- ldr r0, [r0]
- movs r3, 0x8E
- lsls r3, 5
- adds r1, r0, r3
- ldr r3, [r1]
- ldr r1, _0809CDC8
- adds r0, r1
- ldrb r2, [r2]
- adds r0, r2
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r3, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- pop {r0}
- bx r0
- .align 2, 0
-_0809CDC0: .4byte gUnknown_020384E9
-_0809CDC4: .4byte gUnknown_083B6DB4
-_0809CDC8: .4byte 0x000011e4
- thumb_func_end sub_809CD88
-
- thumb_func_start sub_809CDCC
-sub_809CDCC: @ 809CDCC
- ldr r0, _0809CDE0
- ldr r0, [r0]
- ldr r2, _0809CDE4
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _0809CDE8
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0809CDE0: .4byte gUnknown_083B6DB4
-_0809CDE4: .4byte 0x000011b8
-_0809CDE8: .4byte 0x000011b9
- thumb_func_end sub_809CDCC
-
- thumb_func_start sub_809CDEC
-sub_809CDEC: @ 809CDEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809CE3C
- ldr r5, [r0]
- ldr r0, _0809CE40
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x6
- bhi _0809CE36
- adds r1, r0, 0
- lsls r1, 3
- movs r2, 0x8C
- lsls r2, 5
- adds r1, r2
- adds r1, r5, r1
- ldr r2, _0809CE44
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- str r3, [r1, 0x4]
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r1, 3
- ldr r2, _0809CE48
- adds r0, r5, r2
- ldrb r2, [r0]
- cmp r1, r2
- bls _0809CE30
- strb r1, [r0]
-_0809CE30:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809CE36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CE3C: .4byte gUnknown_083B6DB4
-_0809CE40: .4byte 0x000011b8
-_0809CE44: .4byte gUnknown_083BBCA0
-_0809CE48: .4byte 0x000011b9
- thumb_func_end sub_809CDEC
-
- thumb_func_start sub_809CE4C
-sub_809CE4C: @ 809CE4C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0809CE70
- ldr r1, [r0]
- ldr r3, _0809CE74
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0809CE7C
- lsls r0, r2, 3
- ldr r2, _0809CE78
- adds r1, r2
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- b _0809CE80
- .align 2, 0
-_0809CE70: .4byte gUnknown_083B6DB4
-_0809CE74: .4byte 0x000011b8
-_0809CE78: .4byte 0x00001184
-_0809CE7C:
- movs r0, 0x1
- negs r0, r0
-_0809CE80:
- pop {r1}
- bx r1
- thumb_func_end sub_809CE4C
-
- thumb_func_start sub_809CE84
-sub_809CE84: @ 809CE84
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _0809CF20
- ldr r4, [r0]
- ldr r0, _0809CF24
- adds r0, r4
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0xE
- subs r1, r0
- ldr r3, _0809CF28
- adds r6, r4, r3
- movs r0, 0
- mov r10, r0
- strh r1, [r6]
- ldr r1, _0809CF2C
- adds r1, r4
- mov r9, r1
- ldrb r1, [r1]
- movs r0, 0x1C
- subs r0, r1
- subs r3, 0x2
- adds r5, r4, r3
- strh r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuDrawTextWindow
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x8C
- lsls r3, 5
- adds r4, r3
- adds r3, r4, 0
- bl PrintMenuItems
- ldrb r1, [r5]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r4, r8
- ldrb r3, [r4]
- mov r0, r10
- str r0, [sp]
- mov r4, r9
- ldrb r0, [r4]
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- 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
-_0809CF20: .4byte gUnknown_083B6DB4
-_0809CF24: .4byte 0x000011b8
-_0809CF28: .4byte 0x000011bc
-_0809CF2C: .4byte 0x000011b9
- thumb_func_end sub_809CE84
-
- thumb_func_start sub_809CF30
-sub_809CF30: @ 809CF30
- push {r4,r5,lr}
- movs r5, 0x2
- negs r5, r5
- ldr r4, _0809CF6C
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809CF86
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809CF52
- movs r0, 0x5
- bl PlaySE
- adds r5, 0x1
-_0809CF52:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809CF70
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0809CF8E
- .align 2, 0
-_0809CF6C: .4byte gMain
-_0809CF70:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809CF8E
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0809CF8E
-_0809CF86:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r5, r0, 24
-_0809CF8E:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _0809CFB2
- bl sub_8072DEC
- ldr r0, _0809CFD0
- ldr r1, [r0]
- ldr r2, _0809CFD4
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_0809CFB2:
- cmp r5, 0
- blt _0809CFC4
- ldr r0, _0809CFD0
- ldr r0, [r0]
- lsls r1, r5, 3
- ldr r2, _0809CFD8
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
-_0809CFC4:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CFD0: .4byte gUnknown_083B6DB4
-_0809CFD4: .4byte 0x000011ba
-_0809CFD8: .4byte 0x00001184
- thumb_func_end sub_809CF30
-
- thumb_func_start sub_809CFDC
-sub_809CFDC: @ 809CFDC
- ldr r3, _0809CFEC
- str r0, [r3]
- str r1, [r0]
- movs r1, 0
- strb r2, [r0, 0x5]
- strb r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_0809CFEC: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFDC
-
- thumb_func_start sub_809CFF0
-sub_809CFF0: @ 809CFF0
- push {r4,r5,lr}
- ldr r2, _0809D030
- ldr r1, [r2]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809D02A
- movs r4, 0
- ldrb r1, [r1, 0x4]
- cmp r4, r1
- bcs _0809D022
- adds r5, r2, 0
-_0809D006:
- ldr r0, [r5]
- lsls r1, r4, 4
- ldr r0, [r0]
- adds r0, r1
- ldr r1, [r0, 0xC]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcc _0809D006
-_0809D022:
- ldr r0, _0809D030
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x4]
-_0809D02A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D030: .4byte gUnknown_020384EC
- thumb_func_end sub_809CFF0
-
- thumb_func_start sub_809D034
-sub_809D034: @ 809D034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- mov r9, r3
- ldr r0, [sp, 0x20]
- ldr r3, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0809D0A4
- ldr r2, [r0]
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0
- ldrb r7, [r2, 0x5]
- cmp r1, r7
- bcs _0809D0AC
- adds r0, 0x1
- strb r0, [r2, 0x4]
- lsls r0, r1, 4
- ldr r2, [r2]
- adds r2, r0
- lsls r0, r4, 1
- strh r0, [r2, 0x8]
- lsls r0, r6, 6
- add r0, r8
- mov r4, r10
- lsls r1, r4, 1
- adds r0, r1
- str r0, [r2, 0x4]
- lsls r0, r3, 6
- add r0, r9
- mov r7, r12
- lsls r1, r7, 1
- adds r0, r1
- str r0, [r2]
- strh r5, [r2, 0xA]
- ldr r0, _0809D0A8
- str r0, [r2, 0xC]
- movs r0, 0x1
- b _0809D0AE
- .align 2, 0
-_0809D0A4: .4byte gUnknown_020384EC
-_0809D0A8: .4byte sub_809D0BC
-_0809D0AC:
- movs r0, 0
-_0809D0AE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D034
-
- thumb_func_start sub_809D0BC
-sub_809D0BC: @ 809D0BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, [r0]
- ldr r5, [r0, 0x4]
- ldrh r7, [r0, 0xA]
- ldrh r2, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _0809D0F2
- lsrs r2, 1
- mov r8, r2
- ldr r0, _0809D100
- mov r9, r0
-_0809D0DA:
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r9
- ands r2, r3
- bl CpuSet
- adds r5, 0x40
- adds r6, 0x40
- adds r4, 0x1
- cmp r4, r7
- bcc _0809D0DA
-_0809D0F2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D100: .4byte 0x001fffff
- thumb_func_end sub_809D0BC
-
- thumb_func_start sub_809D104
-sub_809D104: @ 809D104
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- mov r8, r6
- ldr r6, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r5, 16
- lsls r4, 16
- mov r7, r8
- lsls r7, 16
- lsls r6, 16
- lsrs r6, 16
- lsrs r4, 10
- adds r3, r4
- lsrs r5, 15
- adds r5, r3, r5
- lsls r3, r2, 6
- adds r3, r0, r3
- lsrs r1, 15
- adds r4, r3, r1
- adds r2, r6
- lsls r2, 6
- adds r6, r0, r2
- lsrs r2, r7, 15
- cmp r4, r6
- bcs _0809D15C
- lsrs r7, r2, 1
- ldr r0, _0809D168
- mov r8, r0
-_0809D148:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- ands r2, r7
- bl CpuSet
- adds r4, 0x40
- adds r5, 0x40
- cmp r4, r6
- bcc _0809D148
-_0809D15C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D168: .4byte 0x001fffff
- thumb_func_end sub_809D104
-
- thumb_func_start sub_809D16C
-sub_809D16C: @ 809D16C
- push {r4-r7,lr}
- mov r12, r0
- ldr r0, [sp, 0x14]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0809D1B4
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- adds r2, r0, 0
- ldrb r7, [r1, 0x5]
- cmp r2, r7
- bcs _0809D1BC
- adds r0, 0x1
- strb r0, [r1, 0x4]
- lsls r0, r2, 4
- ldr r1, [r1]
- adds r1, r0
- lsls r0, r3, 1
- strh r0, [r1, 0x8]
- lsls r0, r4, 5
- adds r0, r6
- lsls r0, 1
- add r0, r12
- str r0, [r1, 0x4]
- strh r5, [r1, 0xA]
- ldr r0, _0809D1B8
- str r0, [r1, 0xC]
- movs r0, 0x1
- b _0809D1BE
- .align 2, 0
-_0809D1B4: .4byte gUnknown_020384EC
-_0809D1B8: .4byte sub_809D1C4
-_0809D1BC:
- movs r0, 0
-_0809D1BE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D16C
-
- thumb_func_start sub_809D1C4
-sub_809D1C4: @ 809D1C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- movs r0, 0
- ldrh r1, [r6, 0xA]
- cmp r0, r1
- bcs _0809D252
- movs r7, 0x80
- lsls r7, 5
- mov r5, sp
- ldr r2, _0809D210
- mov r8, r2
- movs r1, 0x81
- lsls r1, 24
- mov r10, r1
-_0809D1EA:
- ldr r2, [r6, 0x4]
- ldrh r3, [r6, 0x8]
- mov r12, r2
- adds r0, 0x1
- mov r9, r0
- cmp r3, r7
- bhi _0809D214
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- mov r0, r8
- str r2, [r0]
- mov r1, r12
- str r1, [r0, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
- mov r1, r8
- b _0809D23C
- .align 2, 0
-_0809D210: .4byte 0x040000d4
-_0809D214:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _0809D264
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0809D268
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r7
- subs r3, r7
- cmp r3, r7
- bhi _0809D214
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r10
- orrs r0, r2
-_0809D23C:
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- adds r0, 0x40
- str r0, [r6, 0x4]
- mov r1, r9
- lsls r0, r1, 16
- lsrs r0, 16
- ldrh r2, [r6, 0xA]
- cmp r0, r2
- bcc _0809D1EA
-_0809D252:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D264: .4byte 0x040000d4
-_0809D268: .4byte 0x81000800
- thumb_func_end sub_809D1C4
-
- thumb_func_start unref_sub_809D26C
-unref_sub_809D26C: @ 809D26C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D2E0
- str r4, [sp]
- ldr r5, _0809D2E4
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D2E8
- str r4, [sp, 0x8]
- ldr r4, _0809D2EC
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D2F0
- adds r0, r1
- ldr r4, _0809D2F4
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D2F8
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D2E0: .4byte gOamData_83BC5E8
-_0809D2E4: .4byte gMonIconTable
-_0809D2E8: .4byte gSpriteAnimTable_83BC62C
-_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
-_0809D2F0: .4byte gMonIconPaletteIndices
-_0809D2F4: .4byte 0x0000dac0
-_0809D2F8: .4byte gSprites
- thumb_func_end unref_sub_809D26C
-
- thumb_func_start sub_809D2FC
-sub_809D2FC: @ 809D2FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x48]
- ldr r1, [sp, 0x4C]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809D38C
- str r0, [sp, 0x18]
- adds r0, r4, 0
- bl sub_809D4F4
- str r0, [sp, 0x1C]
- ldr r0, _0809D390
- str r0, [sp, 0x20]
- ldr r0, _0809D394
- str r0, [sp, 0x24]
- str r5, [sp, 0x28]
- ldr r0, _0809D398
- adds r0, r4, r0
- ldr r1, _0809D39C
- adds r5, r1, 0
- ldrb r0, [r0]
- adds r1, r5, r0
- add r0, sp, 0x2C
- strh r1, [r0]
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _0809D35A
- mov r0, sp
- strh r5, [r0, 0x14]
-_0809D35A:
- lsls r1, r7, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r8
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D3A0
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D38C: .4byte gOamData_83BC5E8
-_0809D390: .4byte gSpriteAnimTable_83BC62C
-_0809D394: .4byte gSpriteAffineAnimTable_83BC660
-_0809D398: .4byte gMonIconPaletteIndices
-_0809D39C: .4byte 0x0000dac0
-_0809D3A0: .4byte gSprites
- thumb_func_end sub_809D2FC
-
- thumb_func_start sub_809D3A4
-sub_809D3A4: @ 809D3A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D418
- str r4, [sp]
- ldr r5, _0809D41C
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D420
- str r4, [sp, 0x8]
- ldr r4, _0809D424
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D428
- adds r0, r1
- ldr r4, _0809D42C
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D430
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D418: .4byte gOamData_83BC5E8
-_0809D41C: .4byte gMonIconTable
-_0809D420: .4byte gSpriteAnimTable_83BC62C
-_0809D424: .4byte gSpriteAffineAnimTable_83BC660
-_0809D428: .4byte gMonIconPaletteIndices
-_0809D42C: .4byte 0x0000dac0
-_0809D430: .4byte gSprites
- thumb_func_end sub_809D3A4
-
- thumb_func_start mon_icon_convert_unown_species_id
-mon_icon_convert_unown_species_id: @ 809D434
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, SPECIES_UNOWN
- bne _0809D45E
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0809D450
- movs r0, SPECIES_UNOWN
- b _0809D45A
-_0809D450:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0809D45A:
- adds r1, r0, 0
- b _0809D46C
-_0809D45E:
- movs r0, 0xCE
- lsls r0, 1
- adds r1, r2, 0
- cmp r1, r0
- bls _0809D46C
- movs r1, 0x82
- lsls r1, 1
-_0809D46C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end mon_icon_convert_unown_species_id
-
- thumb_func_start sub_809D474
-sub_809D474: @ 809D474
- push {lr}
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809D474
-
- thumb_func_start sub_809D4A8
-sub_809D4A8: @ 809D4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, SPECIES_UNOWN
- bne _0809D4DE
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809D4CE
- mov r1, sp
- adds r0, SPECIES_UNOWN
- b _0809D4D6
-_0809D4CE:
- mov r1, sp
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r2
-_0809D4D6:
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- b _0809D4EA
-_0809D4DE:
- adds r0, r4, 0
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
-_0809D4EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D4A8
-
- thumb_func_start sub_809D4F4
-sub_809D4F4: @ 809D4F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- ldr r1, _0809D50C
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0809D50C: .4byte gMonIconTable
- thumb_func_end sub_809D4F4
-
- thumb_func_start sub_809D510
-sub_809D510: @ 809D510
- push {lr}
- bl sub_809D7E8
- pop {r0}
- bx r0
- thumb_func_end sub_809D510
-
- thumb_func_start sub_809D51C
-sub_809D51C: @ 809D51C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D53C
-_0809D522:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadSpritePalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D522
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D53C: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D51C
-
- thumb_func_start unref_sub_809D540
-unref_sub_809D540: @ 809D540
- push {r4,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D552
- movs r1, 0x82
- lsls r1, 1
-_0809D552:
- ldr r0, _0809D578
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D57C
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D572
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D572:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D578: .4byte gMonIconPaletteIndices
-_0809D57C: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D540
-
- thumb_func_start sub_809D580
-sub_809D580: @ 809D580
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D5AC
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D5B0
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D5A6
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5AC: .4byte gMonIconPaletteIndices
-_0809D5B0: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D580
-
- thumb_func_start unref_sub_809D5B4
-unref_sub_809D5B4: @ 809D5B4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D5D4
-_0809D5BA:
- lsls r0, r4, 3
- adds r0, r5
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D5BA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5D4: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5B4
-
- thumb_func_start unref_sub_809D5D8
-unref_sub_809D5D8: @ 809D5D8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D5EA
- movs r1, 0x82
- lsls r1, 1
-_0809D5EA:
- ldr r0, _0809D600
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D604
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D600: .4byte gMonIconPaletteIndices
-_0809D604: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5D8
-
- thumb_func_start sub_809D608
-sub_809D608: @ 809D608
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D624
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D628
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D624: .4byte gMonIconPaletteIndices
-_0809D628: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D608
-
- thumb_func_start sub_809D62C
-sub_809D62C: @ 809D62C
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_809D62C
-
- thumb_func_start sub_809D638
-sub_809D638: @ 809D638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r7, 0
- adds r6, r4, 0
- adds r6, 0x2C
- ldrb r2, [r6]
- movs r0, 0x3F
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- bne _0809D6EC
- movs r1, 0x2A
- adds r1, r4
- mov r8, r1
- ldrb r1, [r1]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r5, r4, 0
- adds r5, 0x2B
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _0809D682
- adds r0, 0x1
- cmp r3, r0
- bne _0809D686
- b _0809D700
-_0809D682:
- strb r7, [r5]
- b _0809D700
-_0809D686:
- ldr r2, _0809D6E4
- ldrb r1, [r4, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r4, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- adds r1, r2, 0
- muls r1, r3
- ldr r0, [r4, 0xC]
- adds r0, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r3, _0809D6E8
- adds r1, r3
- bl RequestSpriteCopy
- mov r0, r8
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- mov r1, r9
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r7, [r5]
- b _0809D700
- .align 2, 0
-_0809D6E4: .4byte gSpriteImageSizes
-_0809D6E8: .4byte 0x06010000
-_0809D6EC:
- lsls r0, r2, 26
- lsrs r0, 26
- subs r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6]
-_0809D700:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D638
-
- thumb_func_start sub_809D710
-sub_809D710: @ 809D710
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x38
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- str r0, [sp, 0x30]
- ldr r2, _0809D7D8
- mov r0, r9
- ldr r6, [r0]
- ldrb r1, [r6, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r6, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- ldr r1, _0809D7DC
- add r3, sp, 0x30
- ldr r0, [r3, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r3, 0x4]
- add r1, sp, 0x18
- ldr r0, _0809D7E0
- strh r0, [r1]
- mov r0, r9
- ldrh r2, [r0, 0x14]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- str r6, [sp, 0x1C]
- mov r2, r9
- ldr r0, [r2, 0x8]
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x28]
- ldr r0, [r2, 0x10]
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0809D7E4
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r4, r3, r6
- adds r5, r4, 0
- adds r5, 0x2C
- ldrb r1, [r5]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r5]
- adds r4, 0x3F
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r6, 0xC
- adds r3, r6
- mov r2, r9
- ldr r1, [r2, 0x4]
- str r1, [r3]
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D7D8: .4byte gSpriteImageSizes
-_0809D7DC: .4byte 0xffff0000
-_0809D7E0: .4byte 0x0000ffff
-_0809D7E4: .4byte gSprites
- thumb_func_end sub_809D710
-
- thumb_func_start sub_809D7E8
-sub_809D7E8: @ 809D7E8
- push {lr}
- sub sp, 0x8
- movs r1, 0
- str r1, [sp]
- ldr r3, _0809D81C
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r2, 1
- ldrb r1, [r0, 0x1]
- lsrs r1, 6
- lsls r1, 3
- adds r2, r1
- adds r2, r3
- ldrh r3, [r2]
- ldr r2, _0809D820
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r3
- str r1, [sp, 0x4]
- mov r1, sp
- str r1, [r0, 0xC]
- bl DestroySprite
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809D81C: .4byte gSpriteImageSizes
-_0809D820: .4byte 0xffff0000
- thumb_func_end sub_809D7E8
-
- thumb_func_start sub_809D824
-sub_809D824: @ 809D824
- mov r12, r0
- adds r0, 0x2A
- movs r3, 0
- strb r1, [r0]
- mov r2, r12
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, r12
- adds r0, 0x2B
- strb r3, [r0]
- bx lr
- thumb_func_end sub_809D824
-
- thumb_func_start sub_809D844
-sub_809D844: @ 809D844
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809D844
-
- thumb_func_start sub_809D85C
-sub_809D85C: @ 809D85C
- push {lr}
- ldr r1, _0809D8A0
- ldr r0, _0809D8A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8A8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8AC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8A0: .4byte REG_BG1HOFS
-_0809D8A4: .4byte gUnknown_030042C0
-_0809D8A8: .4byte gUnknown_030041B4
-_0809D8AC: .4byte gUnknown_03004288
-_0809D8B0: .4byte gUnknown_03004280
-_0809D8B4: .4byte gUnknown_030041B0
-_0809D8B8: .4byte gUnknown_030041B8
- thumb_func_end sub_809D85C
-
- thumb_func_start sub_809D8BC
-sub_809D8BC: @ 809D8BC
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, _0809D904
- ldrb r4, [r6, 0x8]
- movs r5, 0x80
- orrs r4, r5
- strb r4, [r6, 0x8]
- ldr r5, _0809D908
- str r0, [r5]
- movs r4, 0
- strb r7, [r5, 0x8]
- strb r1, [r5, 0x9]
- strb r2, [r5, 0xA]
- str r3, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x74
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0x79
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x7C
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- subs r0, 0x5
- strb r1, [r0]
- cmp r7, 0x4
- bls _0809D90C
- movs r0, 0x1
- strb r0, [r5, 0xE]
- b _0809D90E
- .align 2, 0
-_0809D904: .4byte gPaletteFade
-_0809D908: .4byte 0x02018000
-_0809D90C:
- strb r1, [r5, 0xE]
-_0809D90E:
- cmp r7, 0x6
- bhi _0809D9D6
- lsls r0, r7, 2
- ldr r1, _0809D91C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D91C: .4byte _0809D920
- .align 2, 0
-_0809D920:
- .4byte _0809D93C
- .4byte _0809D9BC
- .4byte _0809D992
- .4byte _0809D9D6
- .4byte _0809D966
- .4byte _0809D93C
- .4byte _0809D9BC
-_0809D93C:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r5, 0
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x7
- strb r0, [r1]
- b _0809D9D6
-_0809D966:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x9
- movs r0, 0x7
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x7B
- b _0809D9D4
-_0809D992:
- adds r1, r5, 0
- adds r1, 0x75
- movs r3, 0
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x76
- movs r2, 0x3
- strb r2, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- strb r2, [r0]
- adds r0, 0x1
- strb r3, [r0]
- subs r0, 0x6
- strb r3, [r0]
- b _0809D9D6
-_0809D9BC:
- adds r1, r5, 0
- adds r1, 0x75
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x77
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
-_0809D9D4:
- strb r1, [r0]
-_0809D9D6:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- strb r0, [r5, 0xB]
- ldr r0, _0809D9EC
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9EC: .4byte sub_809DE44
- thumb_func_end sub_809D8BC
-
- thumb_func_start sub_809D9F0
-sub_809D9F0: @ 809D9F0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl sub_809D8BC
- ldr r0, _0809DA18
- adds r0, 0x7C
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA18: .4byte 0x02018000
- thumb_func_end sub_809D9F0
-
- thumb_func_start sub_809DA1C
-sub_809DA1C: @ 809DA1C
- push {lr}
- ldr r0, _0809DA30
- ldrb r0, [r0, 0x8]
- cmp r0, 0x6
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DA30: .4byte 0x02018000
-_0809DA34: .4byte _0809DA38
- .align 2, 0
-_0809DA38:
- .4byte _0809DA54
- .4byte _0809DA6C
- .4byte _0809DA64
- .4byte _0809DA64
- .4byte _0809DA5C
- .4byte _0809DA54
- .4byte _0809DA6C
-_0809DA54:
- ldr r0, _0809DA58
- b _0809DA6E
- .align 2, 0
-_0809DA58: .4byte sub_809E19C
-_0809DA5C:
- ldr r0, _0809DA60
- b _0809DA6E
- .align 2, 0
-_0809DA60: .4byte sub_809E19C
-_0809DA64:
- ldr r0, _0809DA68
- b _0809DA6E
- .align 2, 0
-_0809DA68: .4byte sub_809EB40
-_0809DA6C:
- ldr r0, _0809DA7C
-_0809DA6E:
- movs r1, 0
- bl CreateTask
- ldr r1, _0809DA80
- strb r0, [r1, 0xF]
-_0809DA78:
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA7C: .4byte sub_809E3FC
-_0809DA80: .4byte 0x02018000
- thumb_func_end sub_809DA1C
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _0809DAA4
- ldr r2, _0809DAA8
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x16
- bls _0809DA98
- b _0809DE00
-_0809DA98:
- lsls r0, 2
- ldr r1, _0809DAAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA4: .4byte gMain
-_0809DAA8: .4byte 0x0000043c
-_0809DAAC: .4byte _0809DAB0
- .align 2, 0
-_0809DAB0:
- .4byte _0809DB0C
- .4byte _0809DB18
- .4byte _0809DB2C
- .4byte _0809DB32
- .4byte _0809DB80
- .4byte _0809DB94
- .4byte _0809DBA0
- .4byte _0809DBBC
- .4byte _0809DBC8
- .4byte _0809DBDC
- .4byte _0809DC2C
- .4byte _0809DC48
- .4byte _0809DC5C
- .4byte _0809DC90
- .4byte _0809DCB0
- .4byte _0809DCC4
- .4byte _0809DCF8
- .4byte _0809DD02
- .4byte _0809DD30
- .4byte _0809DD3C
- .4byte _0809DD68
- .4byte _0809DD98
- .4byte _0809DDE0
-_0809DB0C:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- b _0809DDE8
-_0809DB18:
- bl remove_some_task
- ldr r1, _0809DB24
- ldr r2, _0809DB28
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB24: .4byte gMain
-_0809DB28: .4byte 0x0000043c
-_0809DB2C:
- bl FreeAllSpritePalettes
- b _0809DDE8
-_0809DB32:
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- movs r5, 0
- ldr r1, _0809DB74
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _0809DB78
- movs r7, 0x85
- lsls r7, 24
-_0809DB48:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0809DB48
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0809DB7C
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DB74: .4byte 0x040000d4
-_0809DB78: .4byte 0x85000400
-_0809DB7C: .4byte 0x0000043c
-_0809DB80:
- bl sub_809DE64
- ldr r1, _0809DB8C
- ldr r2, _0809DB90
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB8C: .4byte gMain
-_0809DB90: .4byte 0x0000043c
-_0809DB94:
- ldr r0, _0809DB9C
- bl SetUpWindowConfig
- b _0809DDE8
- .align 2, 0
-_0809DB9C: .4byte gWindowConfig_81E6E6C
-_0809DBA0:
- ldr r0, _0809DBB0
- bl MultistepInitMenuWindowBegin
- ldr r1, _0809DBB4
- ldr r2, _0809DBB8
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBB0: .4byte gWindowConfig_81E6E6C
-_0809DBB4: .4byte gMain
-_0809DBB8: .4byte 0x0000043c
-_0809DBBC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0809DBC6
- b _0809DE38
-_0809DBC6:
- b _0809DDE8
-_0809DBC8:
- bl sub_809DA1C
- ldr r1, _0809DBD4
- ldr r2, _0809DBD8
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBD4: .4byte gMain
-_0809DBD8: .4byte 0x0000043c
-_0809DBDC:
- ldr r1, _0809DC08
- ldr r2, _0809DC0C
- ldr r0, _0809DC10
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC14
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- ldr r1, _0809DC18
- ldr r2, _0809DC1C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC20
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0809DC24
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0809DC28
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DC08: .4byte gSummaryScreenTextTiles
-_0809DC0C: .4byte 0x0600d000
-_0809DC10: .4byte 0x040000d4
-_0809DC14: .4byte 0x800000a0
-_0809DC18: .4byte gSummaryScreenButtonTiles
-_0809DC1C: .4byte 0x0600d140
-_0809DC20: .4byte 0x80000080
-_0809DC24: .4byte 0x02018000
-_0809DC28: .4byte 0x0000043c
-_0809DC2C:
- bl sub_809DF00
- lsls r0, 24
- cmp r0, 0
- bne _0809DC38
- b _0809DE38
-_0809DC38:
- ldr r0, _0809DC44
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DC44: .4byte 0x02018000
-_0809DC48:
- bl sub_80A18C4
- ldr r1, _0809DC54
- ldr r2, _0809DC58
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DC54: .4byte gMain
-_0809DC58: .4byte 0x0000043c
-_0809DC5C:
- ldr r4, _0809DC78
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- bne _0809DC7C
- movs r0, 0
- bl sub_80A12D0
- b _0809DC82
- .align 2, 0
-_0809DC78: .4byte 0x02018010
-_0809DC7C:
- movs r0, 0xA
- bl sub_80A12D0
-_0809DC82:
- ldr r0, _0809DC8C
- bl sub_80A0EA4
- b _0809DDE8
- .align 2, 0
-_0809DC8C: .4byte 0x02018010
-_0809DC90:
- bl sub_80A1950
- ldr r0, _0809DCA4
- bl sub_80A1D84
- ldr r1, _0809DCA8
- ldr r2, _0809DCAC
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCA4: .4byte 0x02018010
-_0809DCA8: .4byte gMain
-_0809DCAC: .4byte 0x0000043c
-_0809DCB0:
- ldr r4, _0809DCC0
- adds r0, r4, 0
- bl sub_80A1DE8
- adds r4, 0x64
- movs r0, 0
- strb r0, [r4]
- b _0809DDE8
- .align 2, 0
-_0809DCC0: .4byte 0x02018010
-_0809DCC4:
- ldr r4, _0809DCEC
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- subs r4, 0x10
- strb r0, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809DCE0
- b _0809DE38
-_0809DCE0:
- movs r0, 0
- strb r0, [r5]
- ldr r1, _0809DCF0
- ldr r2, _0809DCF4
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCEC: .4byte 0x02018010
-_0809DCF0: .4byte gMain
-_0809DCF4: .4byte 0x0000043c
-_0809DCF8:
- bl sub_809E044
- bl sub_80A0EE8
- b _0809DDE8
-_0809DD02:
- ldr r1, _0809DD20
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bhi _0809DD18
- ldr r0, _0809DD24
- ldrb r1, [r1, 0xB]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0809DD18:
- ldr r1, _0809DD28
- ldr r2, _0809DD2C
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD20: .4byte 0x02018000
-_0809DD24: .4byte gUnknown_083C1580
-_0809DD28: .4byte gMain
-_0809DD2C: .4byte 0x0000043c
-_0809DD30:
- ldr r0, _0809DD38
- bl sub_809FAC8
- b _0809DDE8
- .align 2, 0
-_0809DD38: .4byte 0x02018010
-_0809DD3C:
- ldr r2, _0809DD58
- ldr r0, _0809DD5C
- ldrb r1, [r0, 0xB]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _0809DD60
- ldr r2, _0809DD64
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD58: .4byte gUnknown_083C1598
-_0809DD5C: .4byte 0x02018000
-_0809DD60: .4byte gMain
-_0809DD64: .4byte 0x0000043c
-_0809DD68:
- ldr r0, _0809DD84
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809DD8C
- ldr r1, _0809DD88
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809DDE8
- .align 2, 0
-_0809DD84: .4byte 0x02018010
-_0809DD88: .4byte gUnknown_030041B0
-_0809DD8C:
- ldr r0, _0809DD94
- strh r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DD94: .4byte gUnknown_030041B0
-_0809DD98:
- bl sub_809EBC4
- ldr r0, _0809DDB8
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DDBC
- movs r0, 0
- movs r1, 0
- bl sub_80A1488
- movs r0, 0
- movs r1, 0
- bl sub_80A1654
- b _0809DDCC
- .align 2, 0
-_0809DDB8: .4byte 0x02018000
-_0809DDBC:
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1654
-_0809DDCC:
- bl sub_80A0DD0
- ldr r1, _0809DDD8
- ldr r2, _0809DDDC
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DDD8: .4byte gMain
-_0809DDDC: .4byte 0x0000043c
-_0809DDE0:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809DE38
-_0809DDE8:
- ldr r1, _0809DDF8
- ldr r0, _0809DDFC
- adds r1, r0
-_0809DDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DE38
- .align 2, 0
-_0809DDF8: .4byte gMain
-_0809DDFC: .4byte 0x0000043c
-_0809DE00:
- ldr r0, _0809DE2C
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _0809DE30
- bl SetMainCallback2
- ldr r2, _0809DE34
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- b _0809DE3A
- .align 2, 0
-_0809DE2C: .4byte sub_809D85C
-_0809DE30: .4byte sub_809D844
-_0809DE34: .4byte gPaletteFade
-_0809DE38:
- movs r0, 0
-_0809DE3A:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DE44
-sub_809DE44: @ 809DE44
- push {lr}
-_0809DE46:
- bl sub_809DA84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809DE5E
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809DE46
-_0809DE5E:
- pop {r0}
- bx r0
- thumb_func_end sub_809DE44
-
- thumb_func_start sub_809DE64
-sub_809DE64: @ 809DE64
- ldr r1, _0809DED0
- ldr r2, _0809DED4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DED8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEDC
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEE0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0809DEE4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0809DEE8
- strh r0, [r1]
- ldr r1, _0809DEEC
- strh r0, [r1]
- ldr r1, _0809DEF0
- strh r0, [r1]
- ldr r1, _0809DEF4
- strh r0, [r1]
- ldr r1, _0809DEF8
- strh r0, [r1]
- ldr r1, _0809DEFC
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x32
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0809DED0: .4byte REG_BG0CNT
-_0809DED4: .4byte 0x00001e08
-_0809DED8: .4byte 0x00004801
-_0809DEDC: .4byte 0x00004a02
-_0809DEE0: .4byte 0x00005c03
-_0809DEE4: .4byte gUnknown_030042C0
-_0809DEE8: .4byte gUnknown_030041B4
-_0809DEEC: .4byte gUnknown_03004288
-_0809DEF0: .4byte gUnknown_03004280
-_0809DEF4: .4byte gUnknown_030041B0
-_0809DEF8: .4byte gUnknown_030041B8
-_0809DEFC: .4byte REG_BG0HOFS
- thumb_func_end sub_809DE64
-
- thumb_func_start sub_809DF00
-sub_809DF00: @ 809DF00
- push {lr}
- ldr r0, _0809DF18
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0809DF0E
- b _0809E030
-_0809DF0E:
- lsls r0, 2
- ldr r1, _0809DF1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DF18: .4byte 0x02018000
-_0809DF1C: .4byte _0809DF20
- .align 2, 0
-_0809DF20:
- .4byte _0809DF54
- .4byte _0809DF64
- .4byte _0809DF74
- .4byte _0809DF88
- .4byte _0809DF9C
- .4byte _0809DFAC
- .4byte _0809DFC4
- .4byte _0809DFD4
- .4byte _0809DFE0
- .4byte _0809DFEC
- .4byte _0809DFF8
- .4byte _0809E004
- .4byte _0809E010
-_0809DF54:
- ldr r0, _0809DF60
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF60: .4byte gStatusScreen_Gfx
-_0809DF64:
- ldr r0, _0809DF6C
- ldr r1, _0809DF70
- b _0809DFB0
- .align 2, 0
-_0809DF6C: .4byte gUnknown_08E73508
-_0809DF70: .4byte 0x0600e000
-_0809DF74:
- ldr r0, _0809DF80
- ldr r1, _0809DF84
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF80: .4byte gUnknown_08E74E88
-_0809DF84: .4byte 0x0600e800
-_0809DF88:
- ldr r0, _0809DF94
- ldr r1, _0809DF98
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF94: .4byte gStatusScreen_Tilemap
-_0809DF98: .4byte 0x06004800
-_0809DF9C:
- ldr r0, _0809DFA4
- ldr r1, _0809DFA8
- b _0809DFB0
- .align 2, 0
-_0809DFA4: .4byte gUnknown_08E73E88
-_0809DFA8: .4byte 0x06005800
-_0809DFAC:
- ldr r0, _0809DFBC
- ldr r1, _0809DFC0
-_0809DFB0:
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _0809E030
- .align 2, 0
-_0809DFBC: .4byte gUnknown_08E74688
-_0809DFC0: .4byte 0x06006800
-_0809DFC4:
- ldr r0, _0809DFD0
- movs r1, 0
- movs r2, 0xA0
- bl LoadCompressedPalette
- b _0809E030
- .align 2, 0
-_0809DFD0: .4byte gStatusScreen_Pal
-_0809DFD4:
- ldr r0, _0809DFDC
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFDC: .4byte gUnknown_083C11B8
-_0809DFE0:
- ldr r0, _0809DFE8
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFE8: .4byte gUnknown_083C1270
-_0809DFEC:
- ldr r0, _0809DFF4
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFF4: .4byte gUnknown_083C12F4
-_0809DFF8:
- ldr r0, _0809E000
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E000: .4byte gUnknown_083C12FC
-_0809E004:
- ldr r0, _0809E00C
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E00C: .4byte gUnknown_083C1278
-_0809E010:
- ldr r0, _0809E028
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _0809E02C
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0809E03C
- .align 2, 0
-_0809E028: .4byte gMoveTypes_Pal
-_0809E02C: .4byte 0x02018000
-_0809E030:
- ldr r1, _0809E040
- adds r1, 0x74
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0809E03C:
- pop {r1}
- bx r1
- .align 2, 0
-_0809E040: .4byte 0x02018000
- thumb_func_end sub_809DF00
-
- thumb_func_start sub_809E044
-sub_809E044: @ 809E044
- push {r4,r5,lr}
- ldr r4, _0809E0F4
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0x2
- bl LoadPalette
- adds r5, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x8F
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x89
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x12
- adds r0, r5, 0
- movs r1, 0xD1
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x8
- movs r1, 0xD3
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD5
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xD7
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x14
- movs r1, 0xD9
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0xC
- movs r1, 0xDB
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x18
- movs r1, 0xDD
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x6
- adds r0, r5, 0
- movs r1, 0xDE
- movs r2, 0x2
- bl LoadPalette
- subs r4, 0x1A
- adds r0, r4, 0
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0809E0F8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xF9
- movs r2, 0x2
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
-_0809E0F8: .4byte gFontDefaultPalette
- thumb_func_end sub_809E044
-
- thumb_func_start sub_809E0FC
-sub_809E0FC: @ 809E0FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809E134
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E138
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E134: .4byte gTasks
-_0809E138: .4byte sub_809E13C
- thumb_func_end sub_809E0FC
-
- thumb_func_start sub_809E13C
-sub_809E13C: @ 809E13C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0809E182
- ldr r0, _0809E188
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809E182
- ldr r1, _0809E18C
- ldr r4, _0809E190
- ldrb r0, [r4, 0x9]
- strb r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, _0809E194
- ldr r1, _0809E198
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0809E182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E188: .4byte gPaletteFade
-_0809E18C: .4byte gUnknown_020384F0
-_0809E190: .4byte 0x02018000
-_0809E194: .4byte gMPlay_BGM
-_0809E198: .4byte 0x0000ffff
- thumb_func_end sub_809E13C
-
- thumb_func_start sub_809E19C
-sub_809E19C: @ 809E19C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E1C8
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E25A
- ldr r5, _0809E1CC
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E1D0
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F1B8
- b _0809E25A
- .align 2, 0
-_0809E1C8: .4byte gPaletteFade
-_0809E1CC: .4byte gMain
-_0809E1D0:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E1E2
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F1B8
- b _0809E25A
-_0809E1E2:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E1F6
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E202
-_0809E1F6:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E25A
-_0809E202:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E218
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E222
-_0809E218:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E25A
-_0809E222:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E24C
- ldr r5, _0809E248
- ldrb r0, [r5, 0xB]
- cmp r0, 0x1
- bls _0809E23A
- adds r0, r4, 0
- bl sub_809EA50
-_0809E23A:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E25A
- .align 2, 0
-_0809E248: .4byte 0x02018000
-_0809E24C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E25A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809E19C
-
- thumb_func_start sub_809E260
-sub_809E260: @ 809E260
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E29C
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E276
- b _0809E3EE
-_0809E276:
- ldr r5, _0809E2A0
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E2AC
- ldr r1, _0809E2A4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E2A8
- adds r0, r4, 0
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E29C: .4byte gPaletteFade
-_0809E2A0: .4byte gMain
-_0809E2A4: .4byte gTasks
-_0809E2A8: .4byte 0x02018079
-_0809E2AC:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E2D8
- ldr r1, _0809E2D0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E2D4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E2D0: .4byte gTasks
-_0809E2D4: .4byte 0x02018079
-_0809E2D8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E2EC
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E324
-_0809E2EC:
- ldr r1, _0809E320
- ldrb r0, [r1, 0xB]
- cmp r0, 0x3
- bne _0809E314
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E308
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E314
-_0809E308:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E314:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E320: .4byte 0x02018000
-_0809E324:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E33A
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E37C
-_0809E33A:
- ldr r1, _0809E378
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E3EE
- cmp r0, 0x2
- bne _0809E36C
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E360
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E36C
-_0809E360:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E36C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E378: .4byte 0x02018000
-_0809E37C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E3D4
- adds r0, r4, 0
- bl sub_809F7D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809E3A0
- ldr r0, _0809E3BC
- adds r5, r0, 0
- adds r5, 0x79
- ldrb r0, [r5]
- cmp r0, 0x4
- bne _0809E3C4
-_0809E3A0:
- ldr r0, _0809E3BC
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r1, [r1]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r1, _0809E3C0
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E3EE
- .align 2, 0
-_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gUnknown_0202E8CE
-_0809E3C4:
- movs r0, 0x20
- bl PlaySE
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809F9D0
- b _0809E3EE
-_0809E3D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E3EE
- ldr r0, _0809E3F4
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _0809E3F8
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gUnknown_0202E8CE
- thumb_func_end sub_809E260
-
- thumb_func_start sub_809E3FC
-sub_809E3FC: @ 809E3FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _0809E438
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E502
- ldr r0, _0809E43C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E448
- ldr r1, _0809E440
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E444
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E438: .4byte gPaletteFade
-_0809E43C: .4byte gMain
-_0809E440: .4byte gTasks
-_0809E444: .4byte 0x02018079
-_0809E448:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E474
- ldr r1, _0809E46C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E470
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E46C: .4byte gTasks
-_0809E470: .4byte 0x02018079
-_0809E474:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E4EE
- ldr r4, _0809E4A8
- adds r6, r4, 0
- adds r6, 0x79
- ldrb r0, [r6]
- cmp r0, 0x4
- beq _0809E4E0
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809E4E0
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809E508
- lsls r0, 24
- cmp r0, 0
- bne _0809E4AC
- movs r0, 0x20
- bl PlaySE
- b _0809E502
- .align 2, 0
-_0809E4A8: .4byte 0x02018000
-_0809E4AC:
- movs r0, 0x5
- bl PlaySE
- ldrb r1, [r6]
- adds r0, r4, 0
- adds r0, 0x7A
- strb r1, [r0]
- movs r0, 0x1
- bl sub_80A1B40
- movs r0, 0x13
- bl sub_80A1A30
- ldr r1, _0809E4D8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E4DC
- str r1, [r0]
- b _0809E502
- .align 2, 0
-_0809E4D8: .4byte gTasks
-_0809E4DC: .4byte sub_809E534
-_0809E4E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
- b _0809E502
-_0809E4EE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E502
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
-_0809E502:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E3FC
-
- thumb_func_start sub_809E508
-sub_809E508: @ 809E508
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0x1
-_0809E50E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809F760
- lsls r0, 16
- cmp r0, 0
- beq _0809E520
- movs r0, 0x1
- b _0809E52C
-_0809E520:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0809E50E
- movs r0, 0
-_0809E52C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E508
-
- thumb_func_start sub_809E534
-sub_809E534: @ 809E534
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- ldr r0, _0809E564
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E570
- ldr r1, _0809E568
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- subs r1, 0x4
- ldr r2, _0809E56C
- adds r0, r3, 0
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E564: .4byte gMain
-_0809E568: .4byte gTasks
-_0809E56C: .4byte 0x0201807a
-_0809E570:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809E59C
- ldr r1, _0809E594
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- ldr r2, _0809E598
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E594: .4byte gTasks
-_0809E598: .4byte 0x0201807a
-_0809E59C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E5AE
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E83C
- b _0809E5C0
-_0809E5AE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E5C0
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_809E83C
-_0809E5C0:
- pop {r0}
- bx r0
- thumb_func_end sub_809E534
-
- thumb_func_start sub_809E5C4
-sub_809E5C4: @ 809E5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r1, _0809E6D0
- ldr r5, [r1]
- ldrb r2, [r1, 0x9]
- movs r0, 0x64
- muls r0, r2
- adds r5, r0
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r1, 0x7A
- ldrb r6, [r1]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E6D4
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E6D0: .4byte 0x02018000
-_0809E6D4: .4byte gUnknown_08208238
- thumb_func_end sub_809E5C4
-
- thumb_func_start sub_809E6D8
-sub_809E6D8: @ 809E6D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r2, _0809E7E8
- ldr r5, [r2]
- ldrb r1, [r2, 0x9]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r5, r0
- adds r0, r2, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r2, 0x7A
- ldrb r6, [r2]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetBoxMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetBoxMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E7EC
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetBoxMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E7E8: .4byte 0x02018000
-_0809E7EC: .4byte gUnknown_08208238
- thumb_func_end sub_809E6D8
-
- thumb_func_start sub_809E7F0
-sub_809E7F0: @ 809E7F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809E828
- ldr r1, _0809E830
- adds r2, r1, 0
- adds r2, 0x74
- movs r0, 0
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x79
- bl sub_80A0428
- ldr r1, _0809E834
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E838
- str r1, [r0]
- adds r0, r4, 0
- bl BgFrame_FillTileMap
-_0809E828:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E830: .4byte 0x02018000
-_0809E834: .4byte gTasks
-_0809E838: .4byte sub_809E3FC
- thumb_func_end sub_809E7F0
-
- thumb_func_start sub_809E83C
-sub_809E83C: @ 809E83C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- bl sub_80A1B1C
- movs r0, 0
- bl sub_80A1B40
- cmp r4, 0x1
- bne _0809E8C0
- ldr r1, _0809E87C
- adds r0, r1, 0
- adds r0, 0x79
- adds r2, r1, 0
- adds r2, 0x7A
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E8CA
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809E880
- bl sub_809E5C4
- b _0809E884
- .align 2, 0
-_0809E87C: .4byte 0x02018000
-_0809E880:
- bl sub_809E6D8
-_0809E884:
- ldr r4, _0809E8B4
- adds r0, r4, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x79
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809F678
- adds r1, r4, 0
- adds r1, 0x74
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809E8B8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E8BC
- str r1, [r0]
- b _0809E8DE
- .align 2, 0
-_0809E8B4: .4byte 0x02018000
-_0809E8B8: .4byte gTasks
-_0809E8BC: .4byte sub_809E7F0
-_0809E8C0:
- ldr r0, _0809E8E4
- adds r1, r0, 0
- adds r1, 0x69
- bl sub_80A0428
-_0809E8CA:
- ldr r0, _0809E8E8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809E8EC
- str r0, [r1]
- adds r0, r5, 0
- bl BgFrame_FillTileMap
-_0809E8DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E8E4: .4byte 0x02018010
-_0809E8E8: .4byte gTasks
-_0809E8EC: .4byte sub_809E3FC
- thumb_func_end sub_809E83C
-
- thumb_func_start sub_809E8F0
-sub_809E8F0: @ 809E8F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- bl PlaySE
- mov r1, r9
- ldrb r6, [r1]
- ldr r1, _0809E944
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r10, r4
- lsls r7, r0, 24
-_0809E930:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r10
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r1, r0, 24
- cmp r0, r7
- ble _0809E948
- movs r6, 0
- b _0809E94E
- .align 2, 0
-_0809E944: .4byte gTasks
-_0809E948:
- cmp r1, 0
- bge _0809E94E
- lsrs r6, r7, 24
-_0809E94E:
- lsls r4, r6, 24
- lsrs r1, r4, 24
- ldr r0, _0809EA10
- str r2, [sp, 0x4]
- bl sub_809F760
- lsls r0, 16
- adds r5, r4, 0
- ldr r2, [sp, 0x4]
- cmp r0, 0
- bne _0809E97A
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E97A
- lsls r0, r2, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0809E930
-_0809E97A:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _0809E996
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E996
- ldr r0, _0809EA14
- adds r0, 0x7C
- ldrh r0, [r0]
- mov r2, r8
- lsls r7, r2, 2
- cmp r0, 0
- beq _0809E9AC
-_0809E996:
- ldr r2, _0809EA18
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x1
- bne _0809E9D0
-_0809E9AC:
- lsrs r4, r5, 24
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1488
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1654
- ldr r1, _0809EA18
- mov r3, r8
- adds r0, r7, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x22]
- movs r0, 0
- str r0, [sp]
-_0809E9D0:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0809E9FE
- asrs r0, r5, 24
- cmp r0, 0x4
- bne _0809E9FE
- ldr r0, _0809EA14
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809E9FE
- movs r4, 0x2
- negs r4, r4
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1488
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1654
-_0809E9FE:
- mov r2, r9
- strb r6, [r2]
- ldr r0, _0809EA1C
- cmp r9, r0
- bne _0809EA20
- movs r0, 0
- bl sub_80A1C30
- b _0809EA26
- .align 2, 0
-_0809EA10: .4byte 0x02018010
-_0809EA14: .4byte 0x02018000
-_0809EA18: .4byte gTasks
-_0809EA1C: .4byte 0x02018079
-_0809EA20:
- movs r0, 0x1
- bl sub_80A1C30
-_0809EA26:
- ldr r3, [sp]
- cmp r3, 0
- beq _0809EA34
- ldr r0, _0809EA4C
- mov r1, r9
- bl sub_80A0428
-_0809EA34:
- mov r0, r8
- bl BgFrame_FillTileMap
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EA4C: .4byte 0x02018010
- thumb_func_end sub_809E8F0
-
- thumb_func_start sub_809EA50
-sub_809EA50: @ 809EA50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0809EABC
- adds r1, r4, 0
- adds r1, 0x79
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1488
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1654
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EA8C
- adds r1, r4, 0
- adds r1, 0x7F
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80A0DD0
-_0809EA8C:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
- movs r0, 0x9
- bl sub_80A1A30
- ldr r1, _0809EAC0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EAC4
- str r1, [r0]
- adds r0, r5, 0
- bl BgFrame_FillTileMap
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EABC: .4byte 0x02018000
-_0809EAC0: .4byte gTasks
-_0809EAC4: .4byte sub_809E3FC
- thumb_func_end sub_809EA50
-
- thumb_func_start sub_809EAC8
-sub_809EAC8: @ 809EAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0809EB34
- adds r0, r6, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0809EAEE
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1488
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1654
-_0809EAEE:
- movs r0, 0x9
- bl sub_80A1B1C
- movs r0, 0x1
- bl sub_80A16CC
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r1, r6, 0
- adds r1, 0x7F
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80A0DD0
- ldr r1, _0809EB38
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EB3C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EB34: .4byte 0x02018000
-_0809EB38: .4byte gTasks
-_0809EB3C: .4byte sub_809E19C
- thumb_func_end sub_809EAC8
-
- thumb_func_start sub_809EB40
-sub_809EB40: @ 809EB40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0809EB6C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809EB74
- cmp r0, 0x5
- bne _0809EBA4
- movs r0, 0x9
- bl sub_80A1A30
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0809EB70
- str r0, [r4]
- b _0809EBB4
- .align 2, 0
-_0809EB6C: .4byte gTasks
-_0809EB70: .4byte sub_809E260
-_0809EB74:
- ldr r4, _0809EBBC
- adds r6, r4, 0
- adds r6, 0x79
- strb r0, [r6]
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809EB96
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- ldrb r1, [r6]
- movs r0, 0xA
- bl sub_80A1654
-_0809EB96:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
-_0809EBA4:
- ldr r0, _0809EBC0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0809EBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EBBC: .4byte 0x02018000
-_0809EBC0: .4byte gTasks
- thumb_func_end sub_809EB40
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4,lr}
- ldr r4, _0809EC28
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0809EC22
- bl sub_80A0EE8
- ldr r0, _0809EC2C
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- strh r1, [r0]
- ldrb r0, [r4, 0xB]
- cmp r0, 0x1
- bne _0809EBF4
- ldr r2, _0809EC30
- ldrh r1, [r2]
- ldr r0, _0809EC34
- ands r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EBF4:
- ldrb r3, [r4, 0xB]
- cmp r3, 0x2
- bne _0809EC0C
- ldr r2, _0809EC30
- ldrh r1, [r2]
- ldr r0, _0809EC34
- ands r0, r1
- movs r4, 0xA0
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC0C:
- cmp r3, 0x3
- bne _0809EC22
- ldr r2, _0809EC30
- ldrh r1, [r2]
- ldr r0, _0809EC34
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EC28: .4byte 0x02018000
-_0809EC2C: .4byte gUnknown_030042C0
-_0809EC30: .4byte REG_BG1CNT
-_0809EC34: .4byte 0x0000e0ff
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809EC38
-sub_809EC38: @ 809EC38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EC5C
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0809EC52
- b _0809EE64
-_0809EC52:
- lsls r0, 2
- ldr r1, _0809EC60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EC5C: .4byte gUnknown_03004B28
-_0809EC60: .4byte _0809EC64
- .align 2, 0
-_0809EC64:
- .4byte _0809EC7C
- .4byte _0809ED14
- .4byte _0809ED98
- .4byte _0809EE12
- .4byte _0809EE1C
- .4byte _0809EE4C
-_0809EC7C:
- ldr r1, _0809ECB8
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ECC8
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809EC98
- ldr r1, _0809ECBC
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_0809EC98:
- cmp r3, 0x1
- bne _0809ECAE
- ldr r2, _0809ECC0
- ldrh r1, [r2]
- ldr r0, _0809ECC4
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECAE:
- cmp r3, 0x2
- beq _0809ECB4
- b _0809EE3A
-_0809ECB4:
- ldr r2, _0809ECC0
- b _0809ECF6
- .align 2, 0
-_0809ECB8: .4byte 0x02018000
-_0809ECBC: .4byte gUnknown_03004288
-_0809ECC0: .4byte REG_BG2CNT
-_0809ECC4: .4byte 0x0000e0ff
-_0809ECC8:
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809ECD8
- ldr r1, _0809ED08
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
-_0809ECD8:
- cmp r3, 0x1
- bne _0809ECEE
- ldr r2, _0809ED0C
- ldrh r1, [r2]
- ldr r0, _0809ED10
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECEE:
- cmp r3, 0x2
- beq _0809ECF4
- b _0809EE3A
-_0809ECF4:
- ldr r2, _0809ED0C
-_0809ECF6:
- ldrh r1, [r2]
- ldr r0, _0809ED10
- ands r0, r1
- movs r3, 0xA0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED08: .4byte gUnknown_030042C0
-_0809ED0C: .4byte REG_BG1CNT
-_0809ED10: .4byte 0x0000e0ff
-_0809ED14:
- ldr r0, _0809ED48
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ED5C
- ldr r1, _0809ED4C
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED2E
- b _0809EE64
-_0809ED2E:
- ldr r3, _0809ED50
- ldrh r2, [r3]
- ldr r1, _0809ED54
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x2
- strh r0, [r3]
- ldr r2, _0809ED58
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x1
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED48: .4byte 0x02018000
-_0809ED4C: .4byte gUnknown_030042C0
-_0809ED50: .4byte REG_BG1CNT
-_0809ED54: .4byte 0x0000fffc
-_0809ED58: .4byte REG_BG2CNT
-_0809ED5C:
- ldr r1, _0809ED88
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED6C
- b _0809EE64
-_0809ED6C:
- ldr r3, _0809ED8C
- ldrh r2, [r3]
- ldr r1, _0809ED90
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x1
- strh r0, [r3]
- ldr r2, _0809ED94
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x2
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED88: .4byte gUnknown_03004288
-_0809ED8C: .4byte REG_BG1CNT
-_0809ED90: .4byte 0x0000fffc
-_0809ED94: .4byte REG_BG2CNT
-_0809ED98:
- ldr r1, _0809EDD4
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809EDD8
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809EE3A
- .align 2, 0
-_0809EDD4: .4byte 0x02018000
-_0809EDD8:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809EDFA
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809EDF2
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809EDFA
-_0809EDF2:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809EE0E
-_0809EDFA:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809EE08
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809EE0E
-_0809EE08:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809EE0E:
- strb r0, [r1]
- b _0809EE3A
-_0809EE12:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809EE3A
-_0809EE1C:
- ldr r0, _0809EE44
- ldr r4, _0809EE48
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809EE3A:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809EE64
- .align 2, 0
-_0809EE44: .4byte gUnknown_083C1598
-_0809EE48: .4byte 0x02018000
-_0809EE4C:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809EE64
- ldr r1, _0809EE6C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EE70
- ldr r1, [r1]
- str r1, [r0]
-_0809EE64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EE6C: .4byte gTasks
-_0809EE70: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EC38
-
- thumb_func_start sub_809EE74
-sub_809EE74: @ 809EE74
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EE98
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x6
- bls _0809EE8E
- b _0809F0C0
-_0809EE8E:
- lsls r0, 2
- ldr r1, _0809EE9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EE98: .4byte gUnknown_03004B28
-_0809EE9C: .4byte _0809EEA0
- .align 2, 0
-_0809EEA0:
- .4byte _0809EEBC
- .4byte _0809EEE0
- .4byte _0809EFB4
- .4byte _0809EFF4
- .4byte _0809F06E
- .4byte _0809F078
- .4byte _0809F0A8
-_0809EEBC:
- ldr r0, _0809EECC
- adds r0, 0x80
- ldrb r1, [r0]
- cmp r1, 0
- bne _0809EED4
- ldr r0, _0809EED0
- strh r1, [r0]
- b _0809F096
- .align 2, 0
-_0809EECC: .4byte 0x02018000
-_0809EED0: .4byte gUnknown_03004288
-_0809EED4:
- ldr r1, _0809EEDC
- movs r0, 0
- strh r0, [r1]
- b _0809F096
- .align 2, 0
-_0809EEDC: .4byte gUnknown_030042C0
-_0809EEE0:
- ldr r1, _0809EF30
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EF4C
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF02
- ldr r2, _0809EF34
- ldrh r1, [r2]
- ldr r0, _0809EF38
- ands r0, r1
- ldr r4, _0809EF3C
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF02:
- cmp r3, 0x2
- bne _0809EF16
- ldr r2, _0809EF34
- ldrh r1, [r2]
- ldr r0, _0809EF38
- ands r0, r1
- ldr r4, _0809EF40
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF16:
- cmp r3, 0x3
- bne _0809EF2A
- ldr r2, _0809EF34
- ldrh r1, [r2]
- ldr r0, _0809EF38
- ands r0, r1
- ldr r3, _0809EF44
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF2A:
- ldr r2, _0809EF48
- b _0809EF8C
- .align 2, 0
-_0809EF30: .4byte 0x02018000
-_0809EF34: .4byte REG_BG2CNT
-_0809EF38: .4byte 0x0000e0fc
-_0809EF3C: .4byte 0x00000801
-_0809EF40: .4byte 0x00000a01
-_0809EF44: .4byte 0x00000c01
-_0809EF48: .4byte REG_BG1CNT
-_0809EF4C:
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF62
- ldr r2, _0809EF98
- ldrh r1, [r2]
- ldr r0, _0809EF9C
- ands r0, r1
- ldr r4, _0809EFA0
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF62:
- cmp r3, 0x2
- bne _0809EF76
- ldr r2, _0809EF98
- ldrh r1, [r2]
- ldr r0, _0809EF9C
- ands r0, r1
- ldr r4, _0809EFA4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF76:
- cmp r3, 0x3
- bne _0809EF8A
- ldr r2, _0809EF98
- ldrh r1, [r2]
- ldr r0, _0809EF9C
- ands r0, r1
- ldr r3, _0809EFA8
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF8A:
- ldr r2, _0809EFAC
-_0809EF8C:
- ldrh r1, [r2]
- ldr r0, _0809EFB0
- ands r0, r1
- adds r0, 0x2
- strh r0, [r2]
- b _0809F096
- .align 2, 0
-_0809EF98: .4byte REG_BG1CNT
-_0809EF9C: .4byte 0x0000e0fc
-_0809EFA0: .4byte 0x00000801
-_0809EFA4: .4byte 0x00000a01
-_0809EFA8: .4byte 0x00000c01
-_0809EFAC: .4byte REG_BG2CNT
-_0809EFB0: .4byte 0x0000fffc
-_0809EFB4:
- ldr r0, _0809EFD4
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EFDC
- ldr r0, _0809EFD8
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFD4: .4byte 0x02018000
-_0809EFD8: .4byte gUnknown_03004288
-_0809EFDC:
- ldr r0, _0809EFF0
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFF0: .4byte gUnknown_030042C0
-_0809EFF4:
- ldr r1, _0809F030
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809F034
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809F096
- .align 2, 0
-_0809F030: .4byte 0x02018000
-_0809F034:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809F056
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809F04E
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809F056
-_0809F04E:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809F06A
-_0809F056:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809F064
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809F06A
-_0809F064:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809F06A:
- strb r0, [r1]
- b _0809F096
-_0809F06E:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809F096
-_0809F078:
- ldr r0, _0809F0A0
- ldr r4, _0809F0A4
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809F096:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809F0C0
- .align 2, 0
-_0809F0A0: .4byte gUnknown_083C1598
-_0809F0A4: .4byte 0x02018000
-_0809F0A8:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F0C0
- ldr r1, _0809F0C8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F0CC
- ldr r1, [r1]
- str r1, [r0]
-_0809F0C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F0C8: .4byte gTasks
-_0809F0CC: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EE74
-
- thumb_func_start sub_809F0D0
-sub_809F0D0: @ 809F0D0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0809F110
- ldrb r0, [r1, 0xB]
- adds r0, r4
- movs r5, 0
- strb r0, [r1, 0xB]
- ldr r2, _0809F114
- ldr r1, _0809F118
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldr r0, [r6]
- str r0, [r2]
- bl sub_809FBE4
- strh r5, [r6, 0x8]
- lsls r4, 24
- asrs r4, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F120
- ldr r0, _0809F11C
- str r0, [r6]
- b _0809F12A
- .align 2, 0
-_0809F110: .4byte 0x02018000
-_0809F114: .4byte gUnknown_03005CF0
-_0809F118: .4byte gTasks
-_0809F11C: .4byte sub_809EC38
-_0809F120:
- ldr r1, _0809F130
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
-_0809F12A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F130: .4byte sub_809EE74
- thumb_func_end sub_809F0D0
-
- thumb_func_start sub_809F134
-sub_809F134: @ 809F134
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _0809F1AC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F1A6
- lsls r0, r5, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F168
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x65
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F168:
- cmp r5, 0x1
- bne _0809F17C
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x66
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F17C:
- ldr r0, _0809F1B0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- ldr r0, _0809F1B4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_809F0D0
-_0809F1A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F1AC: .4byte 0x02018010
-_0809F1B0: .4byte sub_80A1334
-_0809F1B4: .4byte sub_80A1500
- thumb_func_end sub_809F134
-
- thumb_func_start sub_809F1B8
-sub_809F1B8: @ 809F1B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0809F1E4
- ldrb r1, [r0, 0xE]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _0809F202
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0809F1E8
- lsls r1, r4, 24
- asrs r1, 24
- movs r4, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- b _0809F1F4
- .align 2, 0
-_0809F1E4: .4byte 0x02018000
-_0809F1E8:
- lsls r0, r4, 24
- asrs r0, 24
- movs r4, 0x3
- cmp r0, 0x1
- bne _0809F1F4
- movs r4, 0x2
-_0809F1F4:
- ldr r0, [r2]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- adds r3, r4, 0
- bl sub_8095DCC
- b _0809F22C
-_0809F202:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F3CC
- b _0809F22C
-_0809F224:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F284
-_0809F22C:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809F270
- movs r0, 0x5
- bl PlaySE
- ldr r5, _0809F278
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F258
- movs r0, 0x2
- negs r0, r0
- bl sub_80A12D0
-_0809F258:
- adds r0, r5, 0
- subs r0, 0x10
- strb r4, [r0, 0x9]
- ldr r1, _0809F27C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r5, 0x74]
- ldr r1, _0809F280
- str r1, [r0]
-_0809F270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F278: .4byte 0x02018010
-_0809F27C: .4byte gTasks
-_0809F280: .4byte sub_809F43C
- thumb_func_end sub_809F1B8
-
- thumb_func_start sub_809F284
-sub_809F284: @ 809F284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809F2C0
- ldr r7, [r0]
- movs r6, 0
- ldrb r1, [r0, 0xB]
- adds r4, r0, 0
- cmp r1, 0
- bne _0809F2C4
- lsls r0, r3, 24
- asrs r2, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- cmp r2, r1
- bne _0809F2AC
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809F2E4
-_0809F2AC:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0809F2BA
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- bcs _0809F2E4
-_0809F2BA:
- ldrb r0, [r4, 0x9]
- adds r0, r3
- b _0809F304
- .align 2, 0
-_0809F2C0: .4byte 0x02018000
-_0809F2C4:
- lsls r5, r3, 24
-_0809F2C6:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0809F2EC
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r2, [r4, 0x9]
- adds r1, r0, r2
- cmp r1, 0
- blt _0809F2E4
- ldrb r0, [r4, 0xA]
- cmp r1, r0
- ble _0809F2F0
-_0809F2E4:
- movs r0, 0x1
- negs r0, r0
- b _0809F308
- .align 2, 0
-_0809F2EC: .4byte 0x02018000
-_0809F2F0:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F2C6
- ldrb r0, [r4, 0x9]
- adds r0, r6
-_0809F304:
- lsls r0, 24
- asrs r0, 24
-_0809F308:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F284
-
- thumb_func_start sub_809F310
-sub_809F310: @ 809F310
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0809F33C
- ldr r0, _0809F338
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0809F332
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F33C
-_0809F332:
- movs r0, 0x1
- b _0809F33E
- .align 2, 0
-_0809F338: .4byte 0x02018000
-_0809F33C:
- movs r0, 0
-_0809F33E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F310
-
- thumb_func_start sub_809F344
-sub_809F344: @ 809F344
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F34A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0809F37C
- ldr r0, _0809F374
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F378
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F34A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F380
- .align 2, 0
-_0809F374: .4byte gUnknown_083C15A8
-_0809F378: .4byte gPlayerParty
-_0809F37C:
- movs r0, 0x1
- negs r0, r0
-_0809F380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F344
-
- thumb_func_start sub_809F388
-sub_809F388: @ 809F388
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F38E:
- cmp r4, 0
- beq _0809F3C0
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F3B8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F3BC
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F38E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F3C4
- .align 2, 0
-_0809F3B8: .4byte gUnknown_083C15A8
-_0809F3BC: .4byte gPlayerParty
-_0809F3C0:
- movs r0, 0x1
- negs r0, r0
-_0809F3C4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F388
-
- thumb_func_start sub_809F3CC
-sub_809F3CC: @ 809F3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- movs r1, 0
- ldr r3, _0809F41C
- ldr r4, _0809F420
- ldrb r0, [r3]
- ldrb r5, [r4, 0x9]
- cmp r0, r5
- beq _0809F3FC
- adds r5, r3, 0
- adds r3, r4, 0
-_0809F3E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bhi _0809F3FC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldrb r4, [r3, 0x9]
- cmp r0, r4
- bne _0809F3E6
- adds r2, r1, 0
-_0809F3FC:
- lsls r0, r6, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F40C
- cmp r2, 0
- beq _0809F414
-_0809F40C:
- cmp r1, 0x1
- bne _0809F424
- cmp r2, 0x5
- bne _0809F42C
-_0809F414:
- movs r0, 0x1
- negs r0, r0
- b _0809F436
- .align 2, 0
-_0809F41C: .4byte gUnknown_083C15A8
-_0809F420: .4byte 0x02018000
-_0809F424:
- adds r0, r2, 0
- bl sub_809F388
- b _0809F432
-_0809F42C:
- adds r0, r2, 0
- bl sub_809F344
-_0809F432:
- lsls r0, 24
- asrs r0, 24
-_0809F436:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809F3CC
-
- thumb_func_start sub_809F43C
-sub_809F43C: @ 809F43C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F45C
- ldr r1, _0809F460
- adds r5, r0, r1
- ldrb r2, [r5]
- adds r3, r0, 0
- cmp r2, 0x8
- bls _0809F452
- b _0809F5CC
-_0809F452:
- lsls r0, r2, 2
- ldr r1, _0809F464
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F45C: .4byte gMain
-_0809F460: .4byte 0x0000043c
-_0809F464: .4byte _0809F468
- .align 2, 0
-_0809F468:
- .4byte _0809F48C
- .4byte _0809F492
- .4byte _0809F4BC
- .4byte _0809F4D8
- .4byte _0809F4F4
- .4byte _0809F51C
- .4byte _0809F578
- .4byte _0809F584
- .4byte _0809F5A0
-_0809F48C:
- bl StopCryAndClearCrySongs
- b _0809F5B2
-_0809F492:
- ldr r0, _0809F4AC
- ldrb r1, [r0, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4B0
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r1, _0809F4B4
- ldr r0, _0809F4B8
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F4AC: .4byte 0x02018000
-_0809F4B0: .4byte gSprites
-_0809F4B4: .4byte gMain
-_0809F4B8: .4byte 0x0000043c
-_0809F4BC:
- ldr r0, _0809F4D0
- ldrb r1, [r0, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4D4
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _0809F5B2
- .align 2, 0
-_0809F4D0: .4byte 0x02018000
-_0809F4D4: .4byte gSprites
-_0809F4D8:
- ldr r0, _0809F4EC
- adds r1, r0, 0
- adds r1, 0x74
- movs r2, 0
- strb r2, [r1]
- adds r0, 0x79
- strb r2, [r0]
- ldr r0, _0809F4F0
- adds r1, r3, r0
- b _0809F5B8
- .align 2, 0
-_0809F4EC: .4byte 0x02018000
-_0809F4F0: .4byte 0x0000043c
-_0809F4F4:
- ldr r4, _0809F518
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F50E
- movs r0, 0x2
- bl sub_80A12D0
-_0809F50E:
- adds r0, r4, 0
- bl sub_80A0EA4
- b _0809F5B2
- .align 2, 0
-_0809F518: .4byte 0x02018010
-_0809F51C:
- ldr r4, _0809F558
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- adds r1, r4, 0
- subs r1, 0x10
- strb r0, [r1, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809F560
- ldr r1, _0809F55C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809F564
- .align 2, 0
-_0809F558: .4byte 0x02018010
-_0809F55C: .4byte gUnknown_030041B0
-_0809F560:
- ldr r0, _0809F56C
- strh r1, [r0]
-_0809F564:
- ldr r1, _0809F570
- ldr r0, _0809F574
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F56C: .4byte gUnknown_030041B0
-_0809F570: .4byte gMain
-_0809F574: .4byte 0x0000043c
-_0809F578:
- ldr r0, _0809F580
- bl sub_80A1DCC
- b _0809F5B2
- .align 2, 0
-_0809F580: .4byte 0x02018010
-_0809F584:
- ldr r0, _0809F594
- bl sub_80A1DE8
- ldr r1, _0809F598
- ldr r0, _0809F59C
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F594: .4byte 0x02018010
-_0809F598: .4byte gMain
-_0809F59C: .4byte 0x0000043c
-_0809F5A0:
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809F5EA
- ldr r0, _0809F5C0
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
-_0809F5B2:
- ldr r1, _0809F5C4
- ldr r2, _0809F5C8
- adds r1, r2
-_0809F5B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809F5EA
- .align 2, 0
-_0809F5C0: .4byte 0x02018000
-_0809F5C4: .4byte gMain
-_0809F5C8: .4byte 0x0000043c
-_0809F5CC:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0809F5F0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809F5F4
- adds r0, 0x84
- ldr r0, [r0]
- str r0, [r1]
-_0809F5EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F5F0: .4byte gTasks
-_0809F5F4: .4byte 0x02018000
- thumb_func_end sub_809F43C
-
- thumb_func_start sub_809F5F8
-sub_809F5F8: @ 809F5F8
- push {r4,lr}
- ldr r2, _0809F61C
- adds r4, r2, 0
- adds r4, 0x74
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809F624
- ldr r0, _0809F620
- ldrb r1, [r2, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- b _0809F634
- .align 2, 0
-_0809F61C: .4byte 0x02018000
-_0809F620: .4byte gUnknown_083C1588
-_0809F624:
- adds r0, r2, 0
- adds r0, 0x10
- bl sub_809FAC8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
-_0809F634:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F5F8
-
- thumb_func_start sub_809F63C
-sub_809F63C: @ 809F63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FE80
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F63C
-
- thumb_func_start sub_809F650
-sub_809F650: @ 809F650
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A00A4
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F650
-
- thumb_func_start sub_809F664
-sub_809F664: @ 809F664
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A0390
- adds r0, r4, 0
- bl sub_80A015C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F664
-
- thumb_func_start sub_809F678
-sub_809F678: @ 809F678
- push {lr}
- adds r3, r0, 0
- ldr r1, _0809F698
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809F69C
- ldr r2, [r1]
- ldrb r1, [r1, 0x9]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _0809F6AE
- .align 2, 0
-_0809F698: .4byte 0x02018000
-_0809F69C:
- ldr r0, [r1]
- ldrb r2, [r1, 0x9]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_803B4B4
-_0809F6AE:
- pop {r0}
- bx r0
- thumb_func_end sub_809F678
-
- thumb_func_start sub_809F6B4
-sub_809F6B4: @ 809F6B4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r1, 0
- ldrb r0, [r7]
- cmp r0, 0
- beq _0809F6D2
- cmp r0, 0x1
- beq _0809F718
- adds r0, r4, 0
- bl sub_80A1808
- lsls r0, 24
- lsrs r0, 24
- b _0809F756
-_0809F6D2:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _0809F70C
- adds r0, r1
- ldr r1, _0809F710
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0809F714
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _0809F74E
- .align 2, 0
-_0809F70C: .4byte gMonFrontPicTable
-_0809F710: .4byte gMonFrontPicCoords
-_0809F714: .4byte gUnknown_081FAF4C
-_0809F718:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
-_0809F74E:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- movs r0, 0xFF
-_0809F756:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F6B4
-
- thumb_func_start sub_809F760
-sub_809F760: @ 809F760
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F780
- cmp r1, 0x1
- bgt _0809F776
- cmp r1, 0
- beq _0809F77C
- b _0809F788
-_0809F776:
- cmp r2, 0x2
- beq _0809F784
- b _0809F788
-_0809F77C:
- movs r1, 0xD
- b _0809F78A
-_0809F780:
- movs r1, 0xE
- b _0809F78A
-_0809F784:
- movs r1, 0xF
- b _0809F78A
-_0809F788:
- movs r1, 0x10
-_0809F78A:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F760
-
- thumb_func_start sub_809F798
-sub_809F798: @ 809F798
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F7B8
- cmp r1, 0x1
- bgt _0809F7AE
- cmp r1, 0
- beq _0809F7B4
- b _0809F7C0
-_0809F7AE:
- cmp r2, 0x2
- beq _0809F7BC
- b _0809F7C0
-_0809F7B4:
- movs r1, 0x11
- b _0809F7C2
-_0809F7B8:
- movs r1, 0x12
- b _0809F7C2
-_0809F7BC:
- movs r1, 0x13
- b _0809F7C2
-_0809F7C0:
- movs r1, 0x14
-_0809F7C2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F798
-
- thumb_func_start sub_809F7D0
-sub_809F7D0: @ 809F7D0
- push {r4,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- ldr r4, _0809F804
- adds r0, r4, 0
- adds r0, 0x79
- ldrb r1, [r0]
- mov r0, sp
- bl sub_809F760
- lsls r0, 16
- lsrs r0, 16
- bl sub_806F7B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F808
- ldrb r0, [r4, 0x8]
- cmp r0, 0x3
- beq _0809F808
- movs r0, 0
- b _0809F80A
- .align 2, 0
-_0809F804: .4byte 0x02018000
-_0809F808:
- movs r0, 0x1
-_0809F80A:
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F7D0
-
- thumb_func_start sub_809F814
-sub_809F814: @ 809F814
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _0809F83C
- mov r8, r0
- adds r4, r6, r0
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _0809F840
- adds r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _0809F9C0
- .align 2, 0
-_0809F83C: .4byte gUnknown_03004B28
-_0809F840:
- ldr r7, _0809F874
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809F880
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F878
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F87C
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F874: .4byte gMain
-_0809F878: .4byte sub_809E260
-_0809F87C: .4byte 0x02018000
-_0809F880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F8B4
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F8AC
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F8B0
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F8AC: .4byte sub_809E260
-_0809F8B0: .4byte 0x02018000
-_0809F8B4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809F8C8
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F918
-_0809F8C8:
- ldr r1, _0809F90C
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- beq _0809F9C0
- cmp r0, 0x3
- bne _0809F8F4
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F8E8
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F8F4
-_0809F8E8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F8F4:
- ldr r1, _0809F910
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F914
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- b _0809F972
- .align 2, 0
-_0809F90C: .4byte 0x02018000
-_0809F910: .4byte gTasks
-_0809F914: .4byte sub_809E260
-_0809F918:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809F92E
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809F994
-_0809F92E:
- ldr r1, _0809F988
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809F9C0
- cmp r0, 0x2
- bne _0809F960
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F954
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F960
-_0809F954:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F960:
- ldr r1, _0809F98C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F990
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0x1
-_0809F972:
- bl sub_809F134
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1654
- b _0809F9C0
- .align 2, 0
-_0809F988: .4byte 0x02018000
-_0809F98C: .4byte gTasks
-_0809F990: .4byte sub_809E260
-_0809F994:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809F9A6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F9C0
-_0809F9A6:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1654
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F9CC
- str r1, [r0]
-_0809F9C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F9CC: .4byte sub_809E260
- thumb_func_end sub_809F814
-
- thumb_func_start sub_809F9D0
-sub_809F9D0: @ 809F9D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0809FA24
- adds r2, r4, r6
- movs r0, 0
- strh r0, [r2, 0x1C]
- strh r1, [r2, 0x1E]
- movs r5, 0x2
- negs r5, r5
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1488
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1654
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _0809FA28
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0809FA2C
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA24: .4byte gUnknown_03004B28
-_0809FA28: .4byte gOtherText_CantForgetHMs
-_0809FA2C: .4byte sub_809F814
- thumb_func_end sub_809F9D0
-
- thumb_func_start sub_809FA30
-sub_809FA30: @ 809FA30
- ldr r0, _0809FA38
- adds r0, 0x7A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809FA38: .4byte 0x02018000
- thumb_func_end sub_809FA30
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r2, 23
- lsrs r3, 18
- ldr r4, _0809FA70
- adds r3, r4
- adds r2, r3
- lsrs r1, 12
- lsrs r0, 23
- movs r4, 0x80
- lsls r4, 2
- adds r3, r4, 0
- adds r0, r3
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x80
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x81
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA70: .4byte 0x0600f000
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringCenterAlignXOffset
-GetStringCenterAlignXOffset: @ 809FA74
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xF
- adds r2, r4, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start sub_809FA94
-sub_809FA94: @ 809FA94
- push {lr}
- bl sub_8040CB4
- lsls r0, 24
- cmp r0, 0
- beq _0809FAB4
- ldr r0, _0809FAB0
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x1
- b _0809FAC0
- .align 2, 0
-_0809FAB0: .4byte gUnknown_083C157E
-_0809FAB4:
- ldr r0, _0809FAC4
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0
-_0809FAC0:
- pop {r1}
- bx r1
- .align 2, 0
-_0809FAC4: .4byte gUnknown_083C157C
- thumb_func_end sub_809FA94
-
- thumb_func_start sub_809FAC8
-sub_809FAC8: @ 809FAC8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FB28
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xB
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- ldr r4, _0809FB20
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMonNickname
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x3
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FB24
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- b _0809FBD6
- .align 2, 0
-_0809FB20: .4byte gStringVar1
-_0809FB24: .4byte gUnknown_083C157C
-_0809FB28:
- adds r0, r5, 0
- bl sub_809FA94
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl sub_80406D8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0809FB6C
- cmp r4, r0
- beq _0809FB96
- cmp r6, 0
- bne _0809FB70
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl GetStringCenterAlignXOffset
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0xD
- b _0809FB8C
- .align 2, 0
-_0809FB6C: .4byte 0x0000ffff
-_0809FB70:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x1
- movs r3, 0x2
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x8
-_0809FB8C:
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80A1F98
- b _0809FBA2
-_0809FB96:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
-_0809FBA2:
- ldr r1, _0809FBE0
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r1, r0, 0
- adds r0, r5, 0
- bl GetMonNickname
- adds r1, r0, 0
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- movs r0, 0x3C
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0809FBE0
- movs r1, 0x1
- movs r2, 0xC
- bl MenuPrint
- adds r0, r5, 0
- bl sub_80A0958
-_0809FBD6:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FBE0: .4byte gStringVar1
- thumb_func_end sub_809FAC8
-
- thumb_func_start sub_809FBE4
-sub_809FBE4: @ 809FBE4
- push {r4,lr}
- movs r4, 0
-_0809FBE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0809FBE8
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FBE4
-
- thumb_func_start sub_809FC0C
-sub_809FC0C: @ 809FC0C
- push {lr}
- ldr r0, _0809FC30
- movs r1, 0xB
- movs r2, 0x6
- bl MenuPrint
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- movs r0, 0x2
- movs r1, 0x17
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- pop {r0}
- bx r0
- .align 2, 0
-_0809FC30: .4byte gOtherText_Type2
- thumb_func_end sub_809FC0C
-
- thumb_func_start sub_809FC34
-sub_809FC34: @ 809FC34
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r4, 0
-_0809FC3C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FC3C
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FD1C
- ldr r5, _0809FCD0
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FCD4
- bl StringCopy
- adds r5, r0, 0
- ldr r4, _0809FCD8
- adds r1, r4, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FCD0
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0xC1
- movs r3, 0x20
- bl sub_80A1EF8
- movs r0, 0x9
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- adds r0, r6, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _0809FCE0
- ldr r0, _0809FCDC
- b _0809FCF2
- .align 2, 0
-_0809FCD0: .4byte gStringVar1
-_0809FCD4: .4byte gOtherText_OriginalTrainer
-_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
-_0809FCDC: .4byte gOtherText_EggAbout
-_0809FCE0:
- cmp r0, 0xA
- bhi _0809FCEC
- ldr r0, _0809FCE8
- b _0809FCF2
- .align 2, 0
-_0809FCE8: .4byte gOtherText_EggSoon
-_0809FCEC:
- cmp r1, 0x28
- bhi _0809FD00
- ldr r0, _0809FCFC
-_0809FCF2:
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- b _0809FD0A
- .align 2, 0
-_0809FCFC: .4byte gOtherText_EggSomeTime
-_0809FD00:
- ldr r0, _0809FD18
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
-_0809FD0A:
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0708
- b _0809FE4C
- .align 2, 0
-_0809FD18: .4byte gOtherText_EggLongTime
-_0809FD1C:
- ldr r4, _0809FD64
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r5, _0809FD68
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FD6C
- bl StringCopy
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x31
- bl GetMonData
- cmp r0, 0
- bne _0809FD70
- adds r0, r5, 0
- movs r1, 0x9
- b _0809FD74
- .align 2, 0
-_0809FD64: .4byte gStringVar2
-_0809FD68: .4byte gStringVar1
-_0809FD6C: .4byte gOtherText_OriginalTrainer
-_0809FD70:
- adds r0, r5, 0
- movs r1, 0xA
-_0809FD74:
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FE54
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FE58
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0809FE5C
- ands r1, r0
- movs r0, 0xC1
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0xD
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A1F98
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809FE60
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r5, r1, r2
- ldrb r4, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- ldrb r0, [r5, 0x7]
- cmp r4, r0
- beq _0809FDF8
- ldrb r0, [r5, 0x7]
- movs r1, 0xA0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_80A198C
-_0809FDF8:
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xD
- muls r0, r4
- ldr r1, _0809FE64
- adds r0, r1
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1FF8
- ldr r0, _0809FE68
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- movs r2, 0xB
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0798
-_0809FE4C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FE54: .4byte gStringVar2
-_0809FE58: .4byte gStringVar1
-_0809FE5C: .4byte 0x0000ffff
-_0809FE60: .4byte gBaseStats
-_0809FE64: .4byte gAbilityNames
-_0809FE68: .4byte gAbilityDescriptions
- thumb_func_end sub_809FC34
-
- thumb_func_start sub_809FE6C
-sub_809FE6C: @ 809FE6C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FC0C
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FE6C
-
- thumb_func_start sub_809FE80
-sub_809FE80: @ 809FE80
- push {lr}
- movs r0, 0xE
- movs r1, 0x4
- movs r2, 0x12
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x19
- movs r1, 0x4
- movs r2, 0x1E
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_809FE80
-
- thumb_func_start sub_809FEB8
-sub_809FEB8: @ 809FEB8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0809FF40
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xE
- bl sub_80A1FF8
- ldr r0, _0809FF44
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FF48
- movs r1, 0x15
- movs r2, 0x10
- bl MenuPrint
- ldr r0, _0809FF4C
- movs r4, 0x2A
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF50
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF54
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xB
- bl sub_80A1F48
- ldr r0, _0809FF58
- movs r4, 0x24
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF5C
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF60
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0xB
- bl sub_80A1F48
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FF40: .4byte gOtherText_ExpPoints
-_0809FF44: .4byte gOtherText_NextLv
-_0809FF48: .4byte gOtherText_Terminator18
-_0809FF4C: .4byte gOtherText_HP
-_0809FF50: .4byte gOtherText_Attack
-_0809FF54: .4byte gOtherText_Defense
-_0809FF58: .4byte gOtherText_SpAtk
-_0809FF5C: .4byte gOtherText_SpDef
-_0809FF60: .4byte gOtherText_Speed
- thumb_func_end sub_809FEB8
-
- thumb_func_start sub_809FF64
-sub_809FF64: @ 809FF64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0809FF6A:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FF6A
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- movs r2, 0x4
- bl sub_80A0BF4
- adds r0, r5, 0
- bl sub_80A0B88
- ldr r4, _080A008C
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1D
- movs r2, 0xE
- bl sub_8072B4C
- adds r0, r5, 0
- movs r1, 0x17
- movs r2, 0x10
- bl sub_80A0C80
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x7
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x9
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3D
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0xB
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A008C
- movs r1, 0x7E
- movs r2, 0x38
- movs r3, 0x1
- bl sub_80729D8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A008C: .4byte gStringVar1
- thumb_func_end sub_809FF64
-
- thumb_func_start sub_80A0090
-sub_80A0090: @ 80A0090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FEB8
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0090
-
- thumb_func_start sub_80A00A4
-sub_80A00A4: @ 80A00A4
- push {lr}
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x13
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x10
- movs r1, 0x7
- movs r2, 0x15
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- movs r0, 0x11
- movs r1, 0x9
- movs r2, 0x15
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1B
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x16
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80A00A4
-
- thumb_func_start sub_80A00F4
-sub_80A00F4: @ 80A00F4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _080A012C
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A010A
- cmp r1, 0x4
- beq _080A0150
-_080A010A:
- ldrb r0, [r2, 0xB]
- cmp r0, 0x2
- bne _080A0138
- ldr r0, _080A0130
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0134
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
- b _080A0150
- .align 2, 0
-_080A012C: .4byte 0x02018000
-_080A0130: .4byte gOtherText_Power2
-_080A0134: .4byte gOtherText_Accuracy2
-_080A0138:
- ldr r0, _080A0154
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0158
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
-_080A0150:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0154: .4byte gOtherText_Appeal2
-_080A0158: .4byte gOtherText_Jam2
- thumb_func_end sub_80A00F4
-
- thumb_func_start sub_80A015C
-sub_80A015C: @ 80A015C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- movs r7, 0
-_080A0168:
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F760
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F798
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0
- bne _080A01B8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A1918
- lsls r4, r7, 25
- movs r0, 0x80
- lsls r0, 19
- adds r4, r0
- lsrs r4, 24
- ldr r0, _080A01B0
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r4, 0
- bl sub_80A1FF8
- ldr r0, _080A01B4
- movs r1, 0x1A
- adds r2, r4, 0
- bl MenuPrint
- b _080A0276
- .align 2, 0
-_080A01B0: .4byte gOtherText_OneDash
-_080A01B4: .4byte gOtherText_TwoDashes
-_080A01B8:
- ldr r0, _080A01E0
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A01E8
- ldr r1, _080A01E4
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
- b _080A020C
- .align 2, 0
-_080A01E0: .4byte 0x02018000
-_080A01E4: .4byte gBattleMoves
-_080A01E8:
- ldr r1, _080A0290
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
-_080A020C:
- movs r0, 0xD
- muls r0, r6
- ldr r1, _080A0294
- adds r0, r1
- adds r5, r4, 0x4
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r5, 0
- bl sub_80A1FF8
- movs r0, 0x1
- movs r1, 0x18
- adds r2, r5, 0
- bl GetStringCenterAlignXOffset
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A0298
- adds r0, r1, 0
- mov r1, r9
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r1, r0, 0
- movs r0, 0xBA
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r1, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0298
- movs r1, 0x19
- adds r2, r5, 0
- bl MenuPrint
-_080A0276:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _080A0282
- b _080A0168
-_080A0282:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0290: .4byte gContestMoves
-_080A0294: .4byte gMoveNames
-_080A0298: .4byte gStringVar1
- thumb_func_end sub_80A015C
-
- thumb_func_start sub_80A029C
-sub_80A029C: @ 80A029C
- push {r4,r5,lr}
- ldr r1, _080A02B8
- adds r4, r1, 0
- adds r4, 0x7C
- ldrh r0, [r4]
- cmp r0, 0
- bne _080A02C0
- ldr r0, _080A02BC
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A037E
- .align 2, 0
-_080A02B8: .4byte 0x02018000
-_080A02BC: .4byte gOtherText_CancelNoTerminator
-_080A02C0:
- ldrh r5, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- bne _080A02E4
- ldr r1, _080A02E0
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- b _080A0304
- .align 2, 0
-_080A02E0: .4byte gBattleMoves
-_080A02E4:
- ldr r1, _080A0320
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- lsls r4, r5, 1
-_080A0304:
- ldr r0, _080A0324
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A032C
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0328
- adds r0, r1
- movs r1, 0xA
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A033E
- .align 2, 0
-_080A0320: .4byte gContestMoves
-_080A0324: .4byte 0x02018000
-_080A0328: .4byte gMoveNames
-_080A032C:
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0384
- adds r0, r1
- movs r1, 0x9
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
-_080A033E:
- movs r0, 0x1
- movs r1, 0x18
- movs r2, 0xC
- bl GetStringCenterAlignXOffset
- ldr r2, _080A0388
- ldr r1, _080A038C
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x4]
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0388
- movs r1, 0x19
- movs r2, 0xC
- bl MenuPrint
-_080A037E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0384: .4byte gMoveNames
-_080A0388: .4byte gStringVar1
-_080A038C: .4byte gBattleMoves
- thumb_func_end sub_80A029C
-
- thumb_func_start sub_80A0390
-sub_80A0390: @ 80A0390
- push {r4,lr}
- movs r4, 0
-_080A0394:
- lsls r3, r4, 1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xF
- movs r2, 0x1C
- bl MenuZeroFillWindowRect
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080A0394
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0390
-
- thumb_func_start sub_80A03BC
-sub_80A03BC: @ 80A03BC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- beq _080A03D0
- bl sub_809F760
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A03E0
-_080A03D0:
- ldr r0, _080A03E8
- adds r2, r0, 0
- adds r2, 0x7C
- ldrh r0, [r2]
- ldr r1, _080A03EC
- cmp r0, 0
- beq _080A03E0
- adds r1, r0, 0
-_080A03E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A03E8: .4byte 0x02018000
-_080A03EC: .4byte 0x0000ffff
- thumb_func_end sub_80A03BC
-
- thumb_func_start sub_80A03F0
-sub_80A03F0: @ 80A03F0
- push {lr}
- ldrb r1, [r1]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0414
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A041C
- adds r0, r1, 0
- bl sub_80A04CC
- ldr r0, _080A0418
- bl sub_80A057C
- b _080A0422
- .align 2, 0
-_080A0414: .4byte 0x02018000
-_080A0418: .4byte 0x0000ffff
-_080A041C:
- adds r0, r1, 0
- bl sub_80A057C
-_080A0422:
- pop {r0}
- bx r0
- thumb_func_end sub_80A03F0
-
- thumb_func_start sub_80A0428
-sub_80A0428: @ 80A0428
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r1, [r6]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _080A0454
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A0458
- adds r0, r4, 0
- bl sub_80A046C
- b _080A045E
- .align 2, 0
-_080A0454: .4byte 0x02018000
-_080A0458:
- adds r0, r4, 0
- bl sub_80A0498
-_080A045E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A03F0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0428
-
- thumb_func_start sub_80A046C
-sub_80A046C: @ 80A046C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0490
- cmp r1, r0
- beq _080A048A
- ldr r0, _080A0494
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A048A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0490: .4byte 0x0000ffff
-_080A0494: .4byte gMoveDescriptions
- thumb_func_end sub_80A046C
-
- thumb_func_start sub_80A0498
-sub_80A0498: @ 80A0498
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A04C0
- cmp r3, r0
- beq _080A04BC
- ldr r2, _080A04C4
- ldr r1, _080A04C8
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A04BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A04C0: .4byte 0x0000ffff
-_080A04C4: .4byte gUnknown_083CADD4
-_080A04C8: .4byte gContestMoves
- thumb_func_end sub_80A0498
-
- thumb_func_start sub_80A04CC
-sub_80A04CC: @ 80A04CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080A0504
- cmp r4, r0
- beq _080A0572
- ldr r2, _080A0508
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _080A0514
- ldr r0, _080A050C
- ldr r1, _080A0510
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A050C
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
- b _080A052A
- .align 2, 0
-_080A0504: .4byte 0x0000ffff
-_080A0508: .4byte gBattleMoves
-_080A050C: .4byte gStringVar1
-_080A0510: .4byte gOtherText_ThreeDashes2
-_080A0514:
- ldr r0, _080A0550
- ldrb r1, [r2, 0x1]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0550
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
-_080A052A:
- ldr r0, _080A0554
- adds r1, r5, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _080A055C
- ldr r0, _080A0550
- ldr r1, _080A0558
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A0550
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
- b _080A0572
- .align 2, 0
-_080A0550: .4byte gStringVar1
-_080A0554: .4byte gBattleMoves
-_080A0558: .4byte gOtherText_ThreeDashes2
-_080A055C:
- ldr r0, _080A0578
- ldrb r1, [r1, 0x3]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0578
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080A0572:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0578: .4byte gStringVar1
- thumb_func_end sub_80A04CC
-
- thumb_func_start sub_80A057C
-sub_80A057C: @ 80A057C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080A0648
- mov r8, r0
- ldr r0, _080A064C
- cmp r5, r0
- beq _080A063A
- ldr r1, _080A0650
- ldr r2, _080A0654
- lsls r3, r5, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r10, r2
- mov r9, r3
- cmp r4, 0xFF
- beq _080A05B8
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A05B8:
- movs r2, 0
- movs r7, 0x3
- movs r6, 0xF3
- lsls r6, 2
-_080A05C0:
- ldr r3, _080A0658
- cmp r4, 0xFF
- beq _080A05CC
- cmp r2, r4
- bcs _080A05CC
- adds r3, 0x1
-_080A05CC:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r7
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r6
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A05C0
- ldr r0, _080A064C
- cmp r5, r0
- beq _080A063A
- mov r0, r9
- add r0, r10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _080A0650
- adds r0, r1
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _080A060C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A060C:
- movs r2, 0
- movs r6, 0x3
- ldr r5, _080A065C
-_080A0612:
- ldr r3, _080A0660
- cmp r4, 0xFF
- beq _080A061E
- cmp r2, r4
- bcs _080A061E
- subs r3, 0x1
-_080A061E:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r6
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r5
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A0612
-_080A063A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0648: .4byte 0x06006800
-_080A064C: .4byte 0x0000ffff
-_080A0650: .4byte gContestEffects
-_080A0654: .4byte gContestMoves
-_080A0658: .4byte 0x00001039
-_080A065C: .4byte 0x0000044c
-_080A0660: .4byte 0x0000103d
- thumb_func_end sub_80A057C
-
- thumb_func_start sub_80A0664
-sub_80A0664: @ 80A0664
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A06A0
- ldr r1, [r0]
- ldr r0, _080A06A4
- cmp r1, r0
- bne _080A06B0
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A06A8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r5, [r0]
- ldr r4, _080A06AC
- adds r2, 0x8
- adds r1, r2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl SkipExtCtrlCodes
- b _080A06C2
- .align 2, 0
-_080A06A0: .4byte 0x02018000
-_080A06A4: .4byte gEnemyParty
-_080A06A8: .4byte gLinkPlayers
-_080A06AC: .4byte gStringVar1
-_080A06B0:
- bl sub_80BFB94
- adds r5, r0, 0
- ldr r0, _080A06F0
- ands r5, r0
- ldr r0, _080A06F4
- ldr r1, _080A06F8
- bl StringCopy
-_080A06C2:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _080A06F0
- ands r1, r0
- cmp r5, r1
- bne _080A06EA
- ldr r4, _080A06FC
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080A06F4
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080A0700
-_080A06EA:
- movs r0, 0
- b _080A0702
- .align 2, 0
-_080A06F0: .4byte 0x0000ffff
-_080A06F4: .4byte gStringVar1
-_080A06F8: .4byte gSaveBlock2
-_080A06FC: .4byte gStringVar2
-_080A0700:
- movs r0, 0x1
-_080A0702:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0664
-
- thumb_func_start sub_80A0708
-sub_80A0708: @ 80A0708
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r9, r5
- lsls r2, 24
- lsrs r6, r2, 24
- mov r8, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A073C
- ldr r0, _080A0738
- b _080A076E
- .align 2, 0
-_080A0738: .4byte gOtherText_EggObtainedInTrade
-_080A073C:
- adds r0, r4, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xFF
- bne _080A0754
- ldr r0, _080A0750
- b _080A076E
- .align 2, 0
-_080A0750: .4byte gOtherText_EggNicePlace
-_080A0754:
- adds r0, r4, 0
- bl sub_80A0664
- lsls r0, 24
- cmp r0, 0
- bne _080A0768
- ldr r0, _080A0764
- b _080A076E
- .align 2, 0
-_080A0764: .4byte gOtherText_EggObtainedInTrade
-_080A0768:
- cmp r7, 0xFD
- bne _080A077C
- ldr r0, _080A0778
-_080A076E:
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- b _080A0786
- .align 2, 0
-_080A0778: .4byte gOtherText_EggHotSprings
-_080A077C:
- ldr r0, _080A0794
- mov r1, r9
- mov r2, r8
- bl MenuPrint
-_080A0786:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0794: .4byte gOtherText_EggDayCare
- thumb_func_end sub_80A0708
-
- thumb_func_start sub_80A0798
-sub_80A0798: @ 80A0798
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, _080A0838
- bl GetNature
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A083C
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- cmp r4, 0x5
- beq _080A07DA
- cmp r4, 0x15
- beq _080A07DA
- ldr r1, _080A0840
- bl StringCopy
- adds r5, r0, 0
-_080A07DA:
- ldr r1, _080A0844
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- adds r0, r7, 0
- bl sub_80A0664
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0898
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _080A0850
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0848
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A084C
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0838: .4byte gStringVar4
-_080A083C: .4byte gNatureNames
-_080A0840: .4byte gOtherText_Terminator4
-_080A0844: .4byte gOtherText_Nature
-_080A0848: .4byte gStringVar1
-_080A084C: .4byte gOtherText_Egg2
-_080A0850:
- cmp r6, 0x57
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0890
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0894
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0890: .4byte gStringVar1
-_080A0894: .4byte gOtherText_Met
-_080A0898:
- adds r0, r7, 0
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A08E4
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08E0
- b _080A08F0
- .align 2, 0
-_080A08E0: .4byte gOtherText_FatefulEncounter
-_080A08E4:
- cmp r6, 0x57
- bls _080A08FC
-_080A08E8:
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08F8
-_080A08F0:
- adds r0, r5, 0
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A08F8: .4byte gOtherText_ObtainedInTrade
-_080A08FC:
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A094C
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0950
- bl StringCopy
-_080A0934:
- ldr r0, _080A0954
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A094C: .4byte gStringVar1
-_080A0950: .4byte gOtherText_Met2
-_080A0954: .4byte gStringVar4
- thumb_func_end sub_80A0798
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _080A0A24
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x7
- strb r0, [r2, 0x2]
- movs r0, 0xBA
- strb r0, [r2, 0x3]
- adds r2, 0x4
- movs r0, 0xB
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080A0A28
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r6, [r2]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r2, 0x1]
- movs r0, 0x50
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- mov r9, r0
- strb r0, [r2, 0x3]
- ldr r5, _080A0A24
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- bl MenuPrint
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r0, 0x34
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- strb r6, [r2]
- mov r0, r10
- strb r0, [r2, 0x1]
- movs r0, 0x20
- strb r0, [r2, 0x2]
- mov r0, r9
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x10
- bl MenuPrint
- mov r0, r8
- movs r1, 0x7
- movs r2, 0x10
- bl sub_80A0A2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A24: .4byte gStringVar1
-_080A0A28: .4byte gSpeciesNames
- thumb_func_end sub_80A0958
-
- thumb_func_start sub_80A0A2C
-sub_80A0A2C: @ 80A0A2C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x20
- beq _080A0A84
- cmp r0, 0x1D
- beq _080A0A84
- adds r0, r6, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A0A6E
- cmp r0, 0xFE
- beq _080A0A78
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuZeroFillWindowRect
- b _080A0A84
-_080A0A6E:
- ldr r0, _080A0A74
- movs r1, 0xB
- b _080A0A7C
- .align 2, 0
-_080A0A74: .4byte gOtherText_MaleSymbol2
-_080A0A78:
- ldr r0, _080A0A8C
- movs r1, 0xC
-_080A0A7C:
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80A1FF8
-_080A0A84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
- thumb_func_end sub_80A0A2C
-
- thumb_func_start sub_80A0A90
-sub_80A0A90: @ 80A0A90
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x33
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x34
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x35
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x36
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x43
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x44
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x45
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x46
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x47
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x48
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x49
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4A
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4B
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4C
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4D
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4E
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0A90
-
- thumb_func_start sub_80A0B88
-sub_80A0B88: @ 80A0B88
- push {r4,r5,lr}
- bl sub_80A0A90
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A0BA8
- ldr r0, _080A0BA0
- ldr r1, _080A0BA4
- bl StringCopy
- b _080A0BD8
- .align 2, 0
-_080A0BA0: .4byte gStringVar1
-_080A0BA4: .4byte gOtherText_None
-_080A0BA8:
- ldr r4, _080A0BE8
- ldr r1, _080A0BEC
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r0, 24
- subs r4, 0x2
- adds r0, r4
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A0BD8:
- ldr r0, _080A0BF0
- movs r1, 0x15
- movs r2, 0x4
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0BE8: .4byte gStringVar1
-_080A0BEC: .4byte gOtherText_Ribbons00
-_080A0BF0: .4byte gUnknown_083C15AE
- thumb_func_end sub_80A0B88
-
- thumb_func_start sub_80A0BF4
-sub_80A0BF4: @ 80A0BF4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r5, 0xAF
- bne _080A0C48
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- ldr r0, _080A0C40
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- beq _080A0C2E
- cmp r0, 0x4
- beq _080A0C2E
- cmp r0, 0x5
- bne _080A0C48
-_080A0C2E:
- ldr r4, _080A0C44
- adds r0, r5, 0
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C40: .4byte 0x02018000
-_080A0C44: .4byte gStringVar1
-_080A0C48:
- cmp r5, 0
- bne _080A0C60
- ldr r0, _080A0C58
- ldr r1, _080A0C5C
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C58: .4byte gStringVar1
-_080A0C5C: .4byte gOtherText_None
-_080A0C60:
- ldr r1, _080A0C78
- adds r0, r5, 0
- bl itemid_copy_name
-_080A0C68:
- ldr r0, _080A0C7C
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0C78: .4byte gStringVar1
-_080A0C7C: .4byte gUnknown_083C15B4
- thumb_func_end sub_80A0BF4
-
- thumb_func_start sub_80A0C80
-sub_80A0C80: @ 80A0C80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- movs r0, 0
- mov r9, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bhi _080A0D14
- ldr r3, _080A0D4C
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _080A0D50
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- mov r0, r8
- subs r0, r1, r0
- mov r9, r0
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r0, [r0]
- subs r1, r0
- mov r2, r8
- subs r4, r2, r0
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _080A0D14
- cmp r4, 0
- beq _080A0D14
- movs r6, 0x1
- movs r7, 0
-_080A0D14:
- ldr r4, _080A0D54
- adds r0, r4, 0
- mov r1, r9
- bl ConvertIntToDecimalString
- mov r1, r10
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp]
- bl sub_8072B4C
- ldr r0, _080A0D58
- mov r9, r0
- movs r2, 0
- mov r12, r2
- ldr r0, _080A0D5C
- mov r8, r0
-_080A0D3A:
- cmp r7, 0
- bgt _080A0D46
- cmp r7, 0
- bne _080A0D64
- cmp r6, 0x7
- bls _080A0D64
-_080A0D46:
- ldr r1, _080A0D60
- b _080A0D96
- .align 2, 0
-_080A0D4C: .4byte gExperienceTables
-_080A0D50: .4byte gBaseStats
-_080A0D54: .4byte gStringVar1
-_080A0D58: .4byte 0x06004caa
-_080A0D5C: .4byte 0x00002062
-_080A0D60: .4byte 0x0000206a
-_080A0D64:
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _080A0D74
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_080A0D74:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
-_080A0D96:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- strh r1, [r0]
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _080A0DB0
- movs r6, 0
- movs r7, 0
-_080A0DB0:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _080A0D3A
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0C80
-
- thumb_func_start sub_80A0DD0
-sub_80A0DD0: @ 80A0DD0
- push {r4,r5,lr}
- ldr r2, _080A0E3C
- movs r5, 0xFC
- strb r5, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E40
- ldr r4, _080A0E44
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r5, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x58
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E3C
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r4, 0x7F
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A0E48
- movs r0, 0x5
- movs r1, 0x17
- movs r2, 0
- bl GetStringCenterAlignXOffset
- movs r0, 0x6
- movs r1, 0x18
- movs r2, 0
- bl GetStringCenterAlignXOffset
- b _080A0E54
- .align 2, 0
-_080A0E3C: .4byte gStringVar1
-_080A0E40: .4byte gUnknown_083C1068
-_080A0E44: .4byte 0x02018000
-_080A0E48:
- movs r0, 0x17
- movs r1, 0
- movs r2, 0x18
- movs r3, 0x1
- bl MenuZeroFillWindowRect
-_080A0E54:
- ldr r2, _080A0E98
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E9C
- ldr r0, _080A0EA0
- adds r0, 0x7F
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x28
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E98
- movs r1, 0x19
- movs r2, 0
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E98: .4byte gStringVar1
-_080A0E9C: .4byte gUnknown_083C1068
-_080A0EA0: .4byte 0x02018000
- thumb_func_end sub_80A0DD0
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A0ECC
- ldr r6, _080A0ED0
- movs r1, 0
- bl sub_8040110
- lsls r0, 24
- cmp r0, 0
- bne _080A0ED4
- adds r0, r4, 0
- movs r1, 0
- bl sub_8040178
- lsls r0, 24
- cmp r0, 0
- beq _080A0ED4
- movs r0, 0x2C
- b _080A0ED8
- .align 2, 0
-_080A0ECC: .4byte 0x0600e444
-_080A0ED0: .4byte 0x0600ec44
-_080A0ED4:
- ldr r1, _080A0EE4
- adds r0, r1, 0
-_080A0ED8:
- strh r0, [r5]
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte 0x0000081a
- thumb_func_end sub_80A0EA4
-
- thumb_func_start sub_80A0EE8
-sub_80A0EE8: @ 80A0EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r3, 0
- ldr r6, _080A0F24
- adds r5, r6, 0
- ldr r1, _080A0F28
- mov r8, r1
- ldr r2, _080A0F2C
- mov r10, r2
-_080A0F02:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080A0F30
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r4, r8
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r7, sp
- adds r0, r7, r1
- strh r4, [r0]
- b _080A0FE2
- .align 2, 0
-_080A0F24: .4byte 0x02018000
-_080A0F28: .4byte 0x00004040
-_080A0F2C: .4byte 0x0000404a
-_080A0F30:
- movs r0, 0x76
- adds r0, r6
- mov r12, r0
- ldrb r1, [r0]
- cmp r3, r1
- bls _080A0F52
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r2, r10
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r4, sp
- adds r0, r4, r1
- strh r2, [r0]
- b _080A0FE2
-_080A0F52:
- ldrb r4, [r5, 0xB]
- cmp r3, r4
- bcs _080A0F6E
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0F88
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0F6E:
- cmp r3, r4
- bne _080A0FA6
- mov r0, r12
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0F90
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0F8C
- b _080A0F9A
- .align 2, 0
-_080A0F88: .4byte 0x00004046
-_080A0F8C: .4byte 0x00004041
-_080A0F90:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0FC4
-_080A0F9A:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FA6:
- ldrb r0, [r5, 0xB]
- cmp r3, r0
- bls _080A0FE2
- adds r0, r6, 0
- adds r0, 0x76
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0FCC
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0FC8
- b _080A0FD6
- .align 2, 0
-_080A0FC4: .4byte 0x0000404b
-_080A0FC8: .4byte 0x00004043
-_080A0FCC:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A1034
-_080A0FD6:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FE2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A0F02
- ldr r1, _080A1038
- ldr r0, _080A103C
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r3, 0
-_080A0FFE:
- lsls r0, r3, 1
- mov r4, sp
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _080A0FFE
- ldr r1, _080A1044
- ldr r0, _080A103C
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1034: .4byte 0x00004048
-_080A1038: .4byte 0x0600e016
-_080A103C: .4byte 0x040000d4
-_080A1040: .4byte 0x80000008
-_080A1044: .4byte 0x0600e056
- thumb_func_end sub_80A0EE8
-
- thumb_func_start sub_80A1048
-sub_80A1048: @ 80A1048
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A10A0
- adds r6, r0, r1
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r6, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A106E
- b _080A1224
-_080A106E:
- movs r5, 0x2
- ldrsh r2, [r6, r5]
- ldr r0, _080A10A4
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A10A8
- adds r4, r0, r1
- ldr r5, _080A10AC
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 5
- adds r7, r1, 0
- cmp r2, r0
- bhi _080A10B4
- ldr r0, _080A10B0
- str r4, [r0]
- str r5, [r0, 0x4]
- lsrs r1, r2, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A10E0
- .align 2, 0
-_080A10A0: .4byte gUnknown_03004B28
-_080A10A4: .4byte 0x0000024a
-_080A10A8: .4byte gUnknown_08E73508
-_080A10AC: .4byte 0x0600e480
-_080A10B0: .4byte 0x040000d4
-_080A10B4:
- ldr r3, _080A110C
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r0, _080A1110
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r5, r0
- ldr r1, _080A1114
- adds r2, r1
- cmp r2, r0
- bhi _080A10B4
- str r4, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r2, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_080A10E0:
- movs r5, 0x2
- ldrsh r0, [r6, r5]
- ldr r1, _080A1118
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A111C
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A1120
- ldr r0, _080A110C
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A114C
- .align 2, 0
-_080A110C: .4byte 0x040000d4
-_080A1110: .4byte 0x80000800
-_080A1114: .4byte 0xfffff000
-_080A1118: .4byte 0x0000026a
-_080A111C: .4byte 0x0600e4c0
-_080A1120:
- ldr r2, _080A1178
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A117C
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A1180
- adds r1, r5
- cmp r1, r0
- bhi _080A1120
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A114C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A1184
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A1188
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A118C
- ldr r0, _080A1178
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A11B8
- .align 2, 0
-_080A1178: .4byte 0x040000d4
-_080A117C: .4byte 0x80000800
-_080A1180: .4byte 0xfffff000
-_080A1184: .4byte 0x0000024a
-_080A1188: .4byte 0x0600ec80
-_080A118C:
- ldr r2, _080A11E4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A11E8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A11EC
- adds r1, r5
- cmp r1, r0
- bhi _080A118C
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A11B8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A11F0
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A11F4
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A11F8
- ldr r0, _080A11E4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A1224
- .align 2, 0
-_080A11E4: .4byte 0x040000d4
-_080A11E8: .4byte 0x80000800
-_080A11EC: .4byte 0xfffff000
-_080A11F0: .4byte 0x0000026a
-_080A11F4: .4byte 0x0600ecc0
-_080A11F8:
- ldr r2, _080A12B0
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A12B4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A12B8
- adds r1, r5
- cmp r1, r0
- bhi _080A11F8
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A1224:
- ldrb r4, [r6, 0x2]
- ldrh r7, [r6, 0x2]
- ldrh r0, [r6]
- mov r12, r0
- cmp r4, 0x9
- bhi _080A1272
- adds r3, r6, 0x4
- ldr r2, _080A12B0
- ldr r5, _080A12BC
-_080A1236:
- lsls r1, r4, 1
- ldr r6, _080A12C0
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r6, 0x40
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r6, _080A12C4
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080A12C8
- adds r1, r0
- str r3, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1236
-_080A1272:
- mov r1, r12
- lsls r0, r1, 16
- cmp r0, 0
- beq _080A1286
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- ble _080A1286
- cmp r0, 0x9
- ble _080A12A4
-_080A1286:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080A129A
- ldr r0, _080A12CC
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A129A:
- bl sub_80A1D18
- mov r0, r8
- bl DestroyTask
-_080A12A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A12B0: .4byte 0x040000d4
-_080A12B4: .4byte 0x80000800
-_080A12B8: .4byte 0xfffff000
-_080A12BC: .4byte 0x80000001
-_080A12C0: .4byte 0x0600e480
-_080A12C4: .4byte 0x0600ec80
-_080A12C8: .4byte 0x0600ecc0
-_080A12CC: .4byte gOtherText_Status
- thumb_func_end sub_80A1048
-
- thumb_func_start sub_80A12D0
-sub_80A12D0: @ 80A12D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1D
- bl sub_80A18E4
- ldr r0, _080A1310
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1314
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- cmp r4, 0
- bge _080A1318
- movs r0, 0xA
- b _080A131A
- .align 2, 0
-_080A1310: .4byte sub_80A1048
-_080A1314: .4byte gTasks
-_080A1318:
- movs r0, 0
-_080A131A:
- strh r0, [r1, 0xA]
- ldr r0, _080A1330
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1330: .4byte gTasks
- thumb_func_end sub_80A12D0
-
- thumb_func_start sub_80A1334
-sub_80A1334: @ 80A1334
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A13E4
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A136A
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A136A
- ldrh r0, [r7, 0x2]
-_080A136A:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A13A6
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A13E8
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A13EC
- mov r8, r0
-_080A1386:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A13F0
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1386
-_080A13A6:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A13F4
- ldr r4, _080A13E8
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A13EC
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A13C2:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A13C2
- b _080A1400
- .align 2, 0
-_080A13E4: .4byte gUnknown_03004B28
-_080A13E8: .4byte 0x06005b40
-_080A13EC: .4byte 0x001fffff
-_080A13F0: .4byte gUnknown_08E73E88
-_080A13F4:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1400:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A1410
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A144A
-_080A1410:
- ldr r4, _080A1480
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1444
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1444
- ldr r0, _080A1484
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1444:
- mov r0, r10
- bl DestroyTask
-_080A144A:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A1470
- ldr r4, _080A1480
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1460
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A1460:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A1470:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1480: .4byte 0x02018000
-_080A1484: .4byte gOtherText_Status
- thumb_func_end sub_80A1334
-
- thumb_func_start sub_80A1488
-sub_80A1488: @ 80A1488
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A14DC
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A14A6
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A14A6:
- ldr r5, _080A14E0
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A14C2
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A14C2:
- ldr r1, _080A14E4
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A14E8
- movs r0, 0xA
- b _080A14EA
- .align 2, 0
-_080A14DC: .4byte 0x02018000
-_080A14E0: .4byte sub_80A1334
-_080A14E4: .4byte gTasks
-_080A14E8:
- movs r0, 0
-_080A14EA:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1488
-
- thumb_func_start sub_80A1500
-sub_80A1500: @ 80A1500
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A15B0
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A1536
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A1536
- ldrh r0, [r7, 0x2]
-_080A1536:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A1572
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A15B4
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A15B8
- mov r8, r0
-_080A1552:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A15BC
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1552
-_080A1572:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A15C0
- ldr r4, _080A15B4
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A15B8
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A158E:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A158E
- b _080A15CC
- .align 2, 0
-_080A15B0: .4byte gUnknown_03004B28
-_080A15B4: .4byte 0x06006b40
-_080A15B8: .4byte 0x001fffff
-_080A15BC: .4byte gUnknown_08E74688
-_080A15C0:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A15CC:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A15DC
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A1616
-_080A15DC:
- ldr r4, _080A164C
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A1610
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1610
- ldr r0, _080A1650
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1610:
- mov r0, r10
- bl DestroyTask
-_080A1616:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A163C
- ldr r4, _080A164C
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A162C
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A162C:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A163C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A164C: .4byte 0x02018000
-_080A1650: .4byte gOtherText_Status
- thumb_func_end sub_80A1500
-
- thumb_func_start sub_80A1654
-sub_80A1654: @ 80A1654
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A16A8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x3
- bne _080A1672
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1672:
- ldr r5, _080A16AC
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A168E
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A168E:
- ldr r1, _080A16B0
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A16B4
- movs r0, 0xA
- b _080A16B6
- .align 2, 0
-_080A16A8: .4byte 0x02018000
-_080A16AC: .4byte sub_80A1500
-_080A16B0: .4byte gTasks
-_080A16B4:
- movs r0, 0
-_080A16B6:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1654
-
- thumb_func_start sub_80A16CC
-sub_80A16CC: @ 80A16CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080A1724
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A172C
- movs r5, 0
- ldr r7, _080A1728
- movs r0, 0x80
- lsls r0, 5
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A16F4:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A16F4
- b _080A1768
- .align 2, 0
-_080A1724: .4byte 0x06006ad4
-_080A1728: .4byte gUnknown_08E94510
-_080A172C:
- movs r5, 0
- ldr r6, _080A17B0
- movs r7, 0x80
- lsls r7, 5
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A173C:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A173C
-_080A1768:
- ldr r0, _080A17B4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A17BC
- movs r5, 0
- ldr r7, _080A17B8
- movs r0, 0xC0
- lsls r0, 6
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A1782:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A1782
- b _080A17F8
- .align 2, 0
-_080A17B0: .4byte gUnknown_08E94550
-_080A17B4: .4byte 0x06005ad4
-_080A17B8: .4byte gUnknown_08E94510
-_080A17BC:
- movs r5, 0
- ldr r6, _080A1804
- movs r7, 0xC0
- lsls r7, 6
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A17CC:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A17CC
-_080A17F8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1804: .4byte gUnknown_08E94550
- thumb_func_end sub_80A16CC
-
- thumb_func_start sub_80A1808
-sub_80A1808: @ 80A1808
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1860
- movs r1, 0x28
- movs r2, 0x40
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- ldr r5, _080A1864
- adds r7, r4, r5
- adds r0, r7, 0
- bl FreeSpriteOamMatrix
- strh r6, [r7, 0x2E]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080A1868
- str r0, [r4]
- adds r0, r6, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _080A186C
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _080A187A
- .align 2, 0
-_080A1860: .4byte gUnknown_02024E8C
-_080A1864: .4byte gSprites
-_080A1868: .4byte sub_80A1888
-_080A186C:
- adds r2, r7, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080A187A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1808
-
- thumb_func_start sub_80A1888
-sub_80A1888: @ 80A1888
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A18B8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18B0
- ldr r0, _080A18BC
- str r0, [r4, 0x1C]
- ldr r0, _080A18C0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080A18B0
- ldrh r0, [r4, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080A18B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B8: .4byte gPaletteFade
-_080A18BC: .4byte SpriteCallbackDummy
-_080A18C0: .4byte 0x02018010
- thumb_func_end sub_80A1888
-
- thumb_func_start sub_80A18C4
-sub_80A18C4: @ 80A18C4
- push {lr}
- movs r1, 0
- ldr r3, _080A18E0
- movs r2, 0xFF
-_080A18CC:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _080A18CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E0: .4byte 0x0201a000
- thumb_func_end sub_80A18C4
-
- thumb_func_start sub_80A18E4
-sub_80A18E4: @ 80A18E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A1910
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A1908
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1914
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080A1908:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1910: .4byte 0x0201a000
-_080A1914: .4byte gSprites
- thumb_func_end sub_80A18E4
-
- thumb_func_start sub_80A1918
-sub_80A1918: @ 80A1918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1948
- ldr r2, _080A194C
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080A1948: .4byte gSprites
-_080A194C: .4byte 0x0201a000
- thumb_func_end sub_80A1918
-
- thumb_func_start sub_80A1950
-sub_80A1950: @ 80A1950
- push {r4,r5,lr}
- movs r5, 0
-_080A1954:
- ldr r0, _080A1984
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A196C
- ldr r0, _080A1988
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl CreateSprite
- strb r0, [r4]
-_080A196C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080A1954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1984: .4byte 0x0201a000
-_080A1988: .4byte gSpriteTemplate_83C11C0
- thumb_func_end sub_80A1950
-
- thumb_func_start sub_80A198C
-sub_80A198C: @ 80A198C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080A1A24
- mov r8, r1
- add r8, r10
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1A28
- mov r9, r1
- add r0, r9
- adds r1, r4, 0
- bl StartSpriteAnim
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _080A1A2C
- adds r4, r0
- ldrb r2, [r4]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r5, 0x10
- strh r5, [r0, 0x20]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r6, 0x8
- strh r6, [r0, 0x22]
- mov r0, r10
- movs r1, 0
- bl sub_80A1918
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A24: .4byte 0x0201a000
-_080A1A28: .4byte gSprites
-_080A1A2C: .4byte gUnknown_083C11D8
- thumb_func_end sub_80A198C
-
- thumb_func_start sub_80A1A30
-sub_80A1A30: @ 80A1A30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _080A1A98
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bls _080A1B0A
- cmp r4, 0x9
- bne _080A1A52
- movs r3, 0x1
- mov r9, r3
-_080A1A52:
- movs r5, 0
- movs r0, 0x80
- lsls r0, 6
- adds r0, r1
- mov r8, r0
- ldr r6, _080A1A9C
- mov r10, r5
-_080A1A60:
- lsls r1, r5, 20
- movs r3, 0xB0
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- ldr r0, _080A1AA0
- movs r2, 0x28
- mov r3, r9
- bl CreateSprite
- adds r1, r4, r5
- mov r3, r8
- adds r2, r1, r3
- strb r0, [r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A1AA4
- adds r0, r4, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- b _080A1AD0
- .align 2, 0
-_080A1A98: .4byte 0x02018000
-_080A1A9C: .4byte gSprites
-_080A1AA0: .4byte gSpriteTemplate_83C1280
-_080A1AA4:
- cmp r5, 0x9
- bne _080A1AC0
- adds r0, r4, 0
- adds r0, 0x9
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- b _080A1AD0
-_080A1AC0:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
-_080A1AD0:
- mov r0, r8
- adds r2, r7, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1B18
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- strh r1, [r0, 0x30]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _080A1A60
-_080A1B0A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B18: .4byte sub_80A1BC0
- thumb_func_end sub_80A1A30
-
- thumb_func_start sub_80A1B1C
-sub_80A1B1C: @ 80A1B1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080A1B24:
- adds r0, r5, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A18E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1B24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1B1C
-
- thumb_func_start sub_80A1B40
-sub_80A1B40: @ 80A1B40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 24
- ldr r0, _080A1BB4
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _080A1BB8
- adds r0, r2
- lsrs r7, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r4, 0
- adds r0, r7, 0x6
- lsls r0, 24
- mov r8, r0
-_080A1B74:
- ldr r6, _080A1BBC
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A1BB8
- adds r0, r5
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A1B74
- ldrb r1, [r6, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r7, 0x5
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1BB4: .4byte 0x0201a009
-_080A1BB8: .4byte gSprites
-_080A1BBC: .4byte 0x0201a00a
- thumb_func_end sub_80A1B40
-
- thumb_func_start sub_80A1BC0
-sub_80A1BC0: @ 80A1BC0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A1BF8
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x30]
- cmp r0, 0x18
- ble _080A1BEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080A1C06
-_080A1BEC:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- b _080A1C04
-_080A1BF8:
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x5
-_080A1C04:
- ands r0, r1
-_080A1C06:
- strb r0, [r3]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x9
- bne _080A1C1C
- ldr r0, _080A1C18
- adds r0, 0x79
- b _080A1C20
- .align 2, 0
-_080A1C18: .4byte 0x02018000
-_080A1C1C:
- ldr r0, _080A1C2C
- adds r0, 0x7A
-_080A1C20:
- ldrb r0, [r0]
- lsls r0, 4
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C2C: .4byte 0x02018000
- thumb_func_end sub_80A1BC0
-
- thumb_func_start sub_80A1C30
-sub_80A1C30: @ 80A1C30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 25
- lsrs r3, r0, 24
- adds r4, r3, 0
- adds r0, r3, 0
- adds r0, 0xA
- cmp r3, r0
- bge _080A1C82
- ldr r5, _080A1C88
- movs r7, 0x5
- negs r7, r7
- ldr r6, _080A1C8C
-_080A1C50:
- adds r2, r3, r6
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0xA
- cmp r3, r0
- blt _080A1C50
-_080A1C82:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C88: .4byte gSprites
-_080A1C8C: .4byte 0x0201a009
- thumb_func_end sub_80A1C30
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 80A1C90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _080A1CA0
- movs r0, 0x1
- b _080A1CD2
-_080A1CA0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A1CAC
- movs r0, 0x2
- b _080A1CD2
-_080A1CAC:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080A1CB8
- movs r0, 0x3
- b _080A1CD2
-_080A1CB8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A1CC4
- movs r0, 0x4
- b _080A1CD2
-_080A1CC4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080A1CD0
- movs r0, 0
- b _080A1CD2
-_080A1CD0:
- movs r0, 0x5
-_080A1CD2:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start sub_80A1CD8
-sub_80A1CD8: @ 80A1CD8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A1CEA
- movs r0, 0x7
- b _080A1D12
-_080A1CEA:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A1D12
- adds r0, r4, 0
- movs r1, 0
- bl sub_8040110
- lsls r0, 24
- cmp r0, 0
- bne _080A1D10
- movs r0, 0
- b _080A1D12
-_080A1D10:
- movs r0, 0x6
-_080A1D12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1CD8
-
- thumb_func_start sub_80A1D18
-sub_80A1D18: @ 80A1D18
- push {r4,r5,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- mov r0, sp
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A1D58
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1D50
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A1D60
- ldr r0, _080A1D54
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- b _080A1D60
- .align 2, 0
-_080A1D50: .4byte 0x0201a01d
-_080A1D54: .4byte gSpriteTemplate_83C1304
-_080A1D58:
- movs r0, 0x1D
- bl sub_80A18E4
- b _080A1D74
-_080A1D60:
- ldr r0, _080A1D7C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1D80
- adds r0, r1
- adds r1, r5, 0
- bl StartSpriteAnim
-_080A1D74:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D7C: .4byte 0x0201a01d
-_080A1D80: .4byte gSprites
- thumb_func_end sub_80A1D18
-
- thumb_func_start sub_80A1D84
-sub_80A1D84: @ 80A1D84
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080A1DC0
- ldr r2, _080A1DC4
- adds r0, r1, 0
- bl sub_80F7920
- adds r4, r0, 0
- ldr r6, _080A1DC8
- str r4, [r6]
- cmp r4, 0
- beq _080A1DBA
- adds r0, r5, 0
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, [r6]
- movs r0, 0x3C
- strh r0, [r1, 0x20]
- movs r0, 0x1A
- strh r0, [r1, 0x22]
-_080A1DBA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DC0: .4byte 0x00007533
-_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
-_080A1DC8: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1D84
-
- thumb_func_start sub_80A1DCC
-sub_80A1DCC: @ 80A1DCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A1DE4
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- bl sub_80A1D84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DE4: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1DCC
-
- thumb_func_start sub_80A1DE8
-sub_80A1DE8: @ 80A1DE8
- push {r4,lr}
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A1E48
- adds r0, r1
- movs r1, 0x6
- movs r2, 0x88
- movs r3, 0
- bl CreateSprite
- ldr r2, _080A1E4C
- strb r0, [r2, 0xD]
- ldr r3, _080A1E50
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1E54
- str r1, [r0]
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E48: .4byte gSpriteTemplate_820AAB4
-_080A1E4C: .4byte 0x02018000
-_080A1E50: .4byte gSprites
-_080A1E54: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A1DE8
-
- thumb_func_start sub_80A1E58
-sub_80A1E58: @ 80A1E58
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- beq _080A1E92
- ldr r3, _080A1E6C
- ldrb r0, [r3]
- adds r4, r2, 0x5
- b _080A1E74
- .align 2, 0
-_080A1E6C: .4byte gUnknown_083C15BC
-_080A1E70:
- adds r3, 0x4
- ldrb r0, [r3]
-_080A1E74:
- cmp r0, 0xFF
- beq _080A1E7C
- cmp r0, r1
- bne _080A1E70
-_080A1E7C:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x2]
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x3]
- strb r0, [r2, 0x4]
- adds r2, r4, 0
-_080A1E92:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E58
-
- thumb_func_start sub_80A1E9C
-sub_80A1E9C: @ 80A1E9C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- mov r2, sp
- adds r2, 0x2
- mov r0, sp
- bl sub_8072CD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A1E58
- adds r6, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r6, r0, 0
- cmp r4, 0xFF
- beq _080A1EEC
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x4
- strb r0, [r6, 0x1]
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r6, 0x2]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r6, 0x3]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strb r0, [r6, 0x4]
- movs r0, 0xFF
- strb r0, [r6, 0x5]
- adds r6, 0x5
-_080A1EEC:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E9C
-
- thumb_func_start sub_80A1EF8
-sub_80A1EF8: @ 80A1EF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1F44
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- ldr r3, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80729D8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F44: .4byte gStringVar4
- thumb_func_end sub_80A1EF8
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _080A1F94
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- ldr r3, [sp]
- bl sub_8072BD8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F94: .4byte gStringVar4
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F98
-sub_80A1F98: @ 80A1F98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r8, r1
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1FF4
- mov r9, r0
- mov r1, r10
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- str r7, [sp]
- mov r0, r9
- mov r1, r8
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A1EF8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1FF4: .4byte gStringVar1
- thumb_func_end sub_80A1F98
-
- thumb_func_start sub_80A1FF8
-sub_80A1FF8: @ 80A1FF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080A2038
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2038: .4byte gStringVar4
- thumb_func_end sub_80A1FF8
-
- thumb_func_start sub_80A203C
-sub_80A203C: @ 80A203C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- adds r4, 0x1
- cmp r1, 0
- bne _080A2052
- movs r1, 0x5
-_080A2052:
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xE
- bl sub_80A1E9C
- adds r4, r0, 0
- ldr r1, _080A2074
- bl StringCopy
- adds r4, r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2074: .4byte gOtherText_Comma
- thumb_func_end sub_80A203C
-
- thumb_func_start BgFrame_FillTileMap
-BgFrame_FillTileMap: @ 80A2078
- push {lr}
- ldr r3, _080A209C
- ldr r2, _080A20A0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _080A20A4
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080A209C: .4byte gUnknown_03005CF0
-_080A20A0: .4byte gTasks
-_080A20A4: .4byte sub_80A20A8
- thumb_func_end BgFrame_FillTileMap
-
- thumb_func_start sub_80A20A8
-sub_80A20A8: @ 80A20A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _080A20C6
- ldr r1, _080A20CC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A20D0
- ldr r1, [r1]
- str r1, [r0]
-_080A20C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A20CC: .4byte gTasks
-_080A20D0: .4byte gUnknown_03005CF0
- thumb_func_end sub_80A20A8
-
- thumb_func_start exec_movement
-exec_movement: @ 80A20D4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080A20F6
- movs r0, 0x1
- b _080A211E
-_080A20F6:
- ldr r0, _080A2128
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080A2108
- movs r0, 0x32
- bl sub_80A2198
-_080A2108:
- bl sub_80A21E0
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- ldrb r1, [r1]
- adds r2, r4, 0
- bl sub_80A21F4
- lsls r0, 24
- lsrs r0, 24
-_080A211E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2128: .4byte sub_80A244C
- thumb_func_end exec_movement
-
- thumb_func_start sub_80A212C
-sub_80A212C: @ 80A212C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080A216E
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _080A216E
- adds r0, r4, 0
- bl sub_80A2370
- lsls r0, 24
- lsrs r0, 24
- b _080A2170
-_080A216E:
- movs r0, 0x1
-_080A2170:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A212C
-
- thumb_func_start sub_80A2178
-sub_80A2178: @ 80A2178
- push {r4,lr}
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080A2192
- adds r0, r4, 0
- bl sub_80A2408
- adds r0, r4, 0
- bl DestroyTask
-_080A2192:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2178
-
- thumb_func_start sub_80A2198
-sub_80A2198: @ 80A2198
- push {r4,r5,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080A21D4
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r5, _080A21D8
- ldr r0, _080A21DC
- adds r4, r0, 0
-_080A21B8:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080A21B8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A21D4: .4byte sub_80A244C
-_080A21D8: .4byte gUnknown_03004B28
-_080A21DC: .4byte 0x0000ffff
- thumb_func_end sub_80A2198
-
- thumb_func_start sub_80A21E0
-sub_80A21E0: @ 80A21E0
- push {lr}
- ldr r0, _080A21F0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A21F0: .4byte sub_80A244C
- thumb_func_end sub_80A21E0
-
- thumb_func_start sub_80A21F4
-sub_80A21F4: @ 80A21F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2230
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2370
- lsls r0, 24
- cmp r0, 0
- beq _080A2250
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- b _080A2246
-_080A2230:
- adds r0, r7, 0
- movs r1, 0xFF
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2250
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
-_080A2246:
- mov r3, r9
- bl sub_80A23C8
- movs r0, 0
- b _080A2252
-_080A2250:
- movs r0, 0x1
-_080A2252:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A21F4
-
- thumb_func_start sub_80A2260
-sub_80A2260: @ 80A2260
- 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, _080A2284
- adds r1, r0
- adds r1, 0x2
- movs r2, 0
-_080A2278:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080A2288
- adds r0, r2, 0
- b _080A2296
- .align 2, 0
-_080A2284: .4byte gUnknown_03004B28
-_080A2288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r2, 0xF
- bls _080A2278
- movs r0, 0x10
-_080A2296:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2260
-
- thumb_func_start sub_80A229C
-sub_80A229C: @ 80A229C
- 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, _080A22CC
- adds r1, r0
- adds r1, 0x2
- str r1, [r2]
- movs r0, 0
- cmp r0, r3
- bcs _080A22C8
-_080A22BA:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0x1
- cmp r0, r3
- bcc _080A22BA
- str r1, [r2]
-_080A22C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080A22CC: .4byte gUnknown_03004B28
- thumb_func_end sub_80A229C
-
- thumb_func_start sub_80A22D0
-sub_80A22D0: @ 80A22D0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22D0
-
- thumb_func_start sub_80A22F4
-sub_80A22F4: @ 80A22F4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- ldrb r0, [r0]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22F4
-
- thumb_func_start sub_80A2318
-sub_80A2318: @ 80A2318
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r2, _080A2340
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- mvns r2, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080A2344
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x8]
- ands r2, r0
- strh r2, [r1, 0x8]
- bx lr
- .align 2, 0
-_080A2340: .4byte gBitTable
-_080A2344: .4byte gTasks
- thumb_func_end sub_80A2318
-
- thumb_func_start sub_80A2348
-sub_80A2348: @ 80A2348
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2368
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A236C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080A2368: .4byte gTasks
-_080A236C: .4byte gBitTable
- thumb_func_end sub_80A2348
-
- thumb_func_start sub_80A2370
-sub_80A2370: @ 80A2370
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2398
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A239C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _080A23A0
- movs r0, 0
- b _080A23A2
- .align 2, 0
-_080A2398: .4byte gTasks
-_080A239C: .4byte gBitTable
-_080A23A0:
- movs r0, 0x1
-_080A23A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2370
-
- thumb_func_start npc_obj_offscreen_culling_and_flag_update
-npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
- lsls r0, 24
- ldr r2, _080A23B4
- lsrs r0, 22
- adds r0, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_080A23B4: .4byte gUnknown_020384F8
- thumb_func_end npc_obj_offscreen_culling_and_flag_update
-
- thumb_func_start sub_80A23B8
-sub_80A23B8: @ 80A23B8
- lsls r0, 24
- ldr r1, _080A23C4
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080A23C4: .4byte gUnknown_020384F8
- thumb_func_end sub_80A23B8
-
- thumb_func_start sub_80A23C8
-sub_80A23C8: @ 80A23C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2318
- adds r0, r4, 0
- mov r1, r8
- bl npc_obj_offscreen_culling_and_flag_update
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80A22D0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A23C8
-
- thumb_func_start sub_80A2408
-sub_80A2408: @ 80A2408
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2444
- adds r1, r0
- adds r4, r1, 0x2
- movs r5, 0
-_080A241C:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A2432
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A2448
- adds r0, r1
- bl npc_sync_anim_pause_bits
-_080A2432:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x1
- cmp r5, 0xF
- bls _080A241C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2444: .4byte gUnknown_03004B28
-_080A2448: .4byte gMapObjects
- thumb_func_end sub_80A2408
-
- thumb_func_start sub_80A244C
-sub_80A244C: @ 80A244C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- mov r6, sp
-_080A2458:
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_80A22F4
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A247C
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80A23B8
- adds r3, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A2490
-_080A247C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080A2458
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A244C
-
- thumb_func_start sub_80A2490
-sub_80A2490: @ 80A2490
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r1, _080A24E0
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080A24C8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080A24FA
-_080A24C8:
- ldrb r1, [r5]
- cmp r1, 0xFE
- bne _080A24E4
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80A2348
- adds r0, r4, 0
- bl sub_80643A4
- b _080A24FA
- .align 2, 0
-_080A24E0: .4byte gMapObjects
-_080A24E4:
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _080A24FA
- adds r5, 0x1
- mov r0, r8
- adds r1, r5, 0
- bl npc_obj_offscreen_culling_and_flag_update
-_080A24FA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2490
-
- thumb_func_start sub_80A2504
-sub_80A2504: @ 80A2504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x52
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2534
- ldr r1, _080A2524
- ldr r0, _080A2528
- str r0, [r1]
- ldr r1, _080A252C
- ldr r0, _080A2530
- b _080A25A8
- .align 2, 0
-_080A2524: .4byte gUnknown_0300485C
-_080A2528: .4byte sub_808AB90
-_080A252C: .4byte gUnknown_03005CE4
-_080A2530: .4byte sub_80A2634
-_080A2534:
- ldr r4, _080A25B0
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- mov r8, r4
-_080A2542:
- ldr r1, _080A25B4
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A2552:
- ldr r1, _080A25B4
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A25C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056E14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A259E
- adds r0, r4, 0
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A25C8
-_080A259E:
- ldr r1, _080A25B8
- ldr r0, _080A25BC
- str r0, [r1]
- ldr r1, _080A25C0
- ldr r0, _080A25C4
-_080A25A8:
- str r0, [r1]
- movs r0, 0x1
- b _080A25DE
- .align 2, 0
-_080A25B0: .4byte gUnknown_0203923C
-_080A25B4: .4byte 0x0000ffff
-_080A25B8: .4byte gUnknown_0300485C
-_080A25BC: .4byte sub_808AB90
-_080A25C0: .4byte gUnknown_03005CE4
-_080A25C4: .4byte sub_80A25E8
-_080A25C8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A2552
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A2542
- movs r0, 0
-_080A25DE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2504
-
- thumb_func_start sub_80A25E8
-sub_80A25E8: @ 80A25E8
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- ldr r0, _080A25FC
- ldr r1, _080A2600
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080A25FC: .4byte gUnknown_0202FF84
-_080A2600: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A25E8
-
- thumb_func_start sub_80A2604
-sub_80A2604: @ 80A2604
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A262C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2630
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A262C: .4byte gTasks
-_080A2630: .4byte sub_80A2684
- thumb_func_end sub_80A2604
-
- thumb_func_start sub_80A2634
-sub_80A2634: @ 80A2634
- push {lr}
- ldr r1, _080A2648
- ldr r0, _080A264C
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080A2650
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A2648: .4byte gUnknown_0202FF84
-_080A264C: .4byte gUnknown_03005CE0
-_080A2650: .4byte UseCutScript
- thumb_func_end sub_80A2634
-
- thumb_func_start sub_80A2654
-sub_80A2654: @ 80A2654
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A267C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2680
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A267C: .4byte gTasks
-_080A2680: .4byte sub_80A2B00
- thumb_func_end sub_80A2654
-
- thumb_func_start sub_80A2684
-sub_80A2684: @ 80A2684
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- movs r0, 0x3A
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80A2684
-
- thumb_func_start sub_80A2698
-sub_80A2698: @ 80A2698
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r0, 0x80
- bl PlaySE
- ldr r4, _080A2790
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
-_080A26B2:
- ldr r1, _080A2794
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A26C2:
- ldr r1, _080A2794
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80578F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A27A8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805BCC0
-_080A270E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A26C2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A26B2
- ldr r1, _080A2790
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r1, 0x2]
- subs r1, 0x2
- lsls r1, 16
- asrs r1, 16
- bl sub_80A28F4
- bl DrawWholeMapView
- movs r7, 0
- ldr r4, _080A2798
-_080A2740:
- ldr r0, _080A279C
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _080A27A0
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A27A4
- adds r1, r7, r1
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080A2740
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2790: .4byte gUnknown_0203923C
-_080A2794: .4byte 0x0000ffff
-_080A2798: .4byte gSprites
-_080A279C: .4byte gPlayerAvatar
-_080A27A0: .4byte gSpriteTemplate_CutGrass
-_080A27A4: .4byte 0x0201fff0
- thumb_func_end sub_80A2698
-
- thumb_func_start sub_80A27A8
-sub_80A27A8: @ 80A27A8
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r0, 16
- asrs r4, r0, 16
- lsrs r7, r1, 16
- asrs r5, r1, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080A27E0
- cmp r1, r0
- bgt _080A27F4
- subs r0, 0x1
- cmp r1, r0
- bge _080A286C
- cmp r1, 0x25
- beq _080A288E
- cmp r1, 0x25
- bgt _080A27E4
- cmp r1, 0xD
- beq _080A2834
- cmp r1, 0x15
- beq _080A2834
- b _080A2898
- .align 2, 0
-_080A27E0: .4byte 0x00000207
-_080A27E4:
- movs r0, 0xE3
- lsls r0, 1
- cmp r1, r0
- beq _080A2844
- adds r0, 0x1
- cmp r1, r0
- beq _080A284A
- b _080A2898
-_080A27F4:
- ldr r0, _080A280C
- cmp r1, r0
- beq _080A287C
- cmp r1, r0
- bgt _080A2810
- subs r0, 0xA
- cmp r1, r0
- beq _080A2834
- adds r0, 0x2
- cmp r1, r0
- beq _080A287C
- b _080A2898
- .align 2, 0
-_080A280C: .4byte 0x00000212
-_080A2810:
- ldr r0, _080A2824
- cmp r1, r0
- beq _080A285C
- cmp r1, r0
- bgt _080A2828
- subs r0, 0x1
- cmp r1, r0
- beq _080A2854
- b _080A2898
- .align 2, 0
-_080A2824: .4byte 0x00000282
-_080A2828:
- ldr r0, _080A2830
- cmp r1, r0
- beq _080A2864
- b _080A2898
- .align 2, 0
-_080A2830: .4byte 0x00000283
-_080A2834:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A2844:
- movs r2, 0xE7
- lsls r2, 1
- b _080A286E
-_080A284A:
- ldr r2, _080A2850
- b _080A286E
- .align 2, 0
-_080A2850: .4byte 0x000001cf
-_080A2854:
- ldr r2, _080A2858
- b _080A286E
- .align 2, 0
-_080A2858: .4byte 0x00000279
-_080A285C:
- ldr r2, _080A2860
- b _080A286E
- .align 2, 0
-_080A2860: .4byte 0x0000027a
-_080A2864:
- ldr r2, _080A2868
- b _080A286E
- .align 2, 0
-_080A2868: .4byte 0x0000027b
-_080A286C:
- ldr r2, _080A2878
-_080A286E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _080A2898
- .align 2, 0
-_080A2878: .4byte 0x00000271
-_080A287C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x86
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A288E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl MapGridSetMetatileIdAt
-_080A2898:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A27A8
-
- thumb_func_start sub_80A28A0
-sub_80A28A0: @ 80A28A0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x1
- bne _080A28BC
- movs r0, 0x1
- b _080A28EE
-_080A28BC:
- ldr r0, _080A28C8
- cmp r1, r0
- bne _080A28CC
- movs r0, 0x2
- b _080A28EE
- .align 2, 0
-_080A28C8: .4byte 0x00000279
-_080A28CC:
- ldr r0, _080A28D8
- cmp r1, r0
- bne _080A28DC
- movs r0, 0x3
- b _080A28EE
- .align 2, 0
-_080A28D8: .4byte 0x0000027a
-_080A28DC:
- ldr r0, _080A28E8
- cmp r2, r0
- beq _080A28EC
- movs r0, 0
- b _080A28EE
- .align 2, 0
-_080A28E8: .4byte 0x0000027b
-_080A28EC:
- movs r0, 0x4
-_080A28EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A28A0
-
- thumb_func_start sub_80A28F4
-sub_80A28F4: @ 80A28F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r1, r2
- lsrs r0, 16
- mov r9, r0
- movs r4, 0
- asrs r7, r1, 16
-_080A2914:
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r4, 16
- asrs r1, r4, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- mov r8, r4
- cmp r0, 0x15
- bne _080A2996
- adds r4, r7, 0x1
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80A28A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080A296A
- cmp r0, 0x2
- bgt _080A2952
- cmp r0, 0x1
- beq _080A295C
- b _080A2996
-_080A2952:
- cmp r0, 0x3
- beq _080A297C
- cmp r0, 0x4
- beq _080A298C
- b _080A2996
-_080A295C:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x82
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2996
-_080A296A:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2978
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2978: .4byte 0x00000281
-_080A297C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2988
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2988: .4byte 0x00000282
-_080A298C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A30
- bl MapGridSetMetatileIdAt
-_080A2996:
- lsls r0, r6, 16
- asrs r5, r0, 16
- mov r2, r9
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- cmp r0, 0x1
- bne _080A2A10
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x82
- lsls r1, 2
- cmp r0, r1
- bne _080A29C8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
-_080A29C8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A34
- cmp r0, r1
- bne _080A29E0
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A38
- bl MapGridSetMetatileIdAt
-_080A29E0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A3C
- cmp r0, r1
- bne _080A29F8
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A40
- bl MapGridSetMetatileIdAt
-_080A29F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A30
- cmp r0, r1
- bne _080A2A10
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A44
- bl MapGridSetMetatileIdAt
-_080A2A10:
- movs r0, 0x80
- lsls r0, 9
- add r0, r8
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A2A20
- b _080A2914
-_080A2A20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A30: .4byte 0x00000283
-_080A2A34: .4byte 0x00000281
-_080A2A38: .4byte 0x00000279
-_080A2A3C: .4byte 0x00000282
-_080A2A40: .4byte 0x0000027a
-_080A2A44: .4byte 0x0000027b
- thumb_func_end sub_80A28F4
-
- thumb_func_start sub_80A2A48
-sub_80A2A48: @ 80A2A48
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _080A2A58
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A2A58: .4byte objc_8097BBC
- thumb_func_end sub_80A2A48
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 80A2A5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _080A2AA8
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080A2AAC
-_080A2AA8:
- ldr r0, _080A2AB4
- str r0, [r4, 0x1C]
-_080A2AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AB4: .4byte sub_80A2AB8
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_80A2AB8
-sub_80A2AB8: @ 80A2AB8
- push {r4-r6,lr}
- movs r4, 0x1
-_080A2ABC:
- ldr r6, _080A2AF8
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A2AFC
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A2ABC
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AF8: .4byte 0x0201fff0
-_080A2AFC: .4byte gSprites
- thumb_func_end sub_80A2AB8
-
- thumb_func_start sub_80A2B00
-sub_80A2B00: @ 80A2B00
- push {lr}
- movs r0, 0x80
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B00
-
- thumb_func_start sub_80A2B18
-sub_80A2B18: @ 80A2B18
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A2B3C
-_080A2B1E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl sub_80A2B40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080A2B1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B40
-sub_80A2B40: @ 80A2B40
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _080A2B90
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_080A2B4C:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A2B4C
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_080A2B66:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A2B66
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_080A2B7A:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A2B7A
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B90: .4byte 0x0000ffff
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2B94
-sub_80A2B94: @ 80A2B94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _080A2BBC
- movs r0, 0x1
- b _080A2BBE
-_080A2BBC:
- movs r0, 0
-_080A2BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B94
-
- thumb_func_start sub_80A2BC4
-sub_80A2BC4: @ 80A2BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r3, sp, 0x4
- strb r2, [r3]
- mov r10, r3
- ldr r4, _080A2D00
- mov r9, r4
- mov r8, r3
- adds r2, r3, 0
-_080A2BF2:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r5, _080A2D04
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A2C08
- b _080A2D24
-_080A2C08:
- movs r3, 0
- ldr r0, _080A2D08
- mov r12, r0
- mov r4, r10
- ldr r6, _080A2D0C
- ldr r1, _080A2D10
- adds r5, r1, 0
-_080A2C16:
- lsls r2, r3, 1
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080A2C16
- movs r3, 0
- mov r2, r10
- ldr r4, _080A2D14
-_080A2C3A:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- mov r5, r12
- adds r1, r3, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bls _080A2C3A
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, _080A2D14
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r3, _080A2D14
- adds r0, r3
- movs r1, 0
- bl sub_814A518
- movs r3, 0
- mov r2, r10
- ldr r5, _080A2D18
- ldr r4, _080A2D1C
-_080A2C88:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r5
- adds r1, r3, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A2C88
- adds r0, r7, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A2D44
- mov r4, r8
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldr r5, _080A2D20
- adds r1, r5
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080A2D04
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r0]
- adds r0, r7, 0
- movs r1, 0x40
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2D32
- .align 2, 0
-_080A2D00: .4byte gSaveBlock1
-_080A2D04: .4byte 0x00002b6c
-_080A2D08: .4byte gSaveBlock2
-_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
-_080A2D10: .4byte 0x0000ffff
-_080A2D14: .4byte gSaveBlock1 + 0x2B5E
-_080A2D18: .4byte gSaveBlock1 + 0x2B66
-_080A2D1C: .4byte gSaveBlock2 + 0xA
-_080A2D20: .4byte 0x00002b6a
-_080A2D24:
- adds r0, r1, 0x1
- strb r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0x5
- bhi _080A2D30
- b _080A2BF2
-_080A2D30:
- movs r0, 0xFF
-_080A2D32:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2BC4
-
- thumb_func_start sub_80A2D44
-sub_80A2D44: @ 80A2D44
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080A2D5C
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- ldr r1, _080A2D60
- adds r0, r1
- lsrs r0, 16
-_080A2D5C:
- pop {r1}
- bx r1
- .align 2, 0
-_080A2D60: .4byte 0x75300000
- thumb_func_end sub_80A2D44
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080A2F04
- mov r8, r0
- ldr r2, _080A2F08
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C
- adds r1, r0
- strh r6, [r1]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl sub_8071C20
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0
- strb r0, [r4]
- ldr r1, _080A2FB4
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC
- ldr r2, _080A2FF0
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
- thumb_func_start sub_80A3118
-sub_80A3118: @ 80A3118
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl sub_80A740C
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80A3118
-
- thumb_func_start sub_80A3134
-sub_80A3134: @ 80A3134
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _080A3168
- ldr r2, _080A316C
- ldr r0, _080A3170
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r3, _080A3174
- str r3, [r0, 0x8]
- ldr r2, [r0, 0x8]
- movs r2, 0x80
- lsls r2, 4
- adds r1, r2
- ldr r2, _080A3178
- str r1, [r0]
- str r2, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3168: .4byte gBG1TilemapBuffer
-_080A316C: .4byte 0x06002000
-_080A3170: .4byte 0x040000d4
-_080A3174: .4byte 0x80000400
-_080A3178: .4byte 0x06006000
- thumb_func_end sub_80A3134
-
- thumb_func_start sub_80A317C
-sub_80A317C: @ 80A317C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080A3198
- ldr r1, _080A319C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _080A318E
- b _080A34A8
-_080A318E:
- lsls r0, 2
- ldr r1, _080A31A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A3198: .4byte gMain
-_080A319C: .4byte 0x0000043c
-_080A31A0: .4byte _080A31A4
- .align 2, 0
-_080A31A4:
- .4byte _080A31E8
- .4byte _080A31F2
- .4byte _080A3208
- .4byte _080A320E
- .4byte _080A3228
- .4byte _080A324C
- .4byte _080A3252
- .4byte _080A3270
- .4byte _080A327C
- .4byte _080A3298
- .4byte _080A32A4
- .4byte _080A3328
- .4byte _080A338C
- .4byte _080A33F4
- .4byte _080A3404
- .4byte _080A345C
- .4byte _080A347C
-_080A31E8:
- bl sub_80F9438
- bl sub_80A34E8
- b _080A3464
-_080A31F2:
- bl remove_some_task
- ldr r1, _080A3200
- ldr r0, _080A3204
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3200: .4byte gMain
-_080A3204: .4byte 0x0000043c
-_080A3208:
- bl gpu_pal_allocator_reset__manage_upper_four
- b _080A3464
-_080A320E:
- bl sub_80F9020
- ldr r0, _080A3220
- ldr r1, _080A3224
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _080A3464
- .align 2, 0
-_080A3220: .4byte 0x02000000
-_080A3224: .4byte 0x0001ffff
-_080A3228:
- bl ResetPaletteFade
- ldr r2, _080A3240
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080A3244
- ldr r0, _080A3248
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3240: .4byte gPaletteFade
-_080A3244: .4byte gMain
-_080A3248: .4byte 0x0000043c
-_080A324C:
- bl ResetSpriteData
- b _080A3464
-_080A3252:
- bl sub_80A3520
- lsls r0, 24
- cmp r0, 0
- bne _080A325E
- b _080A34A8
-_080A325E:
- ldr r1, _080A3268
- ldr r0, _080A326C
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3268: .4byte gMain
-_080A326C: .4byte 0x0000043c
-_080A3270:
- ldr r0, _080A3278
- bl SetUpWindowConfig
- b _080A3464
- .align 2, 0
-_080A3278: .4byte gWindowConfig_81E6DFC
-_080A327C:
- ldr r0, _080A328C
- bl MultistepInitMenuWindowBegin
- ldr r1, _080A3290
- ldr r0, _080A3294
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A328C: .4byte gWindowConfig_81E6DFC
-_080A3290: .4byte gMain
-_080A3294: .4byte 0x0000043c
-_080A3298:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _080A32A2
- b _080A34A8
-_080A32A2:
- b _080A3464
-_080A32A4:
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- movs r1, 0xAC
- movs r2, 0xC
- bl sub_80F953C
- movs r0, 0x1
- movs r1, 0xAC
- movs r2, 0x94
- bl sub_80F953C
- movs r0, 0x2
- movs r1, 0x1C
- movs r2, 0x58
- bl sub_80F953C
- movs r0, 0x3
- movs r1, 0x64
- movs r2, 0x58
- bl sub_80F953C
- movs r0, 0
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x1
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x2
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x3
- movs r1, 0x2
- bl sub_80F9988
- ldr r0, _080A331C
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A3312
- movs r0, 0x2
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0x1
- bl sub_80F979C
-_080A3312:
- ldr r1, _080A3320
- ldr r0, _080A3324
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A331C: .4byte gUnknown_03000701
-_080A3320: .4byte gMain
-_080A3324: .4byte 0x0000043c
-_080A3328:
- ldr r1, _080A3378
- movs r0, 0x10
- strb r0, [r1]
- ldr r4, _080A337C
- ldr r5, _080A3380
- ldrb r1, [r5]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A39B8
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80A3AC0
- bl sub_80A3D08
- ldr r4, _080A3384
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x14]
- bl sub_80A3C34
- ldr r0, [r4, 0x18]
- ldr r1, [r4, 0x1C]
- bl sub_80A3C34
- bl sub_80A3D40
- ldr r1, _080A3388
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 3
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- bl sub_80A362C
- b _080A3464
- .align 2, 0
-_080A3378: .4byte gUnknown_0203855A
-_080A337C: .4byte gBG2TilemapBuffer
-_080A3380: .4byte gUnknown_02038559
-_080A3384: .4byte gUnknown_083C1618
-_080A3388: .4byte gUnknown_03005D24
-_080A338C:
- ldr r0, _080A33D4
- movs r1, 0
- movs r2, 0x7
- bl sub_80A48E8
- ldr r1, _080A33D8
- ldr r4, _080A33DC
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A33E0
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_80A490C
- bl sub_80A736C
- ldr r1, _080A33E4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _080A33E8
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080A33EC
- ldr r0, _080A33F0
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A33D4: .4byte 0x0000ffff
-_080A33D8: .4byte gUnknown_03005D10
-_080A33DC: .4byte gUnknown_02038559
-_080A33E0: .4byte gUnknown_03005D24
-_080A33E4: .4byte gUnknown_0203855B
-_080A33E8: .4byte gUnknown_0203855C
-_080A33EC: .4byte gMain
-_080A33F0: .4byte 0x0000043c
-_080A33F4:
- bl sub_80A7B10
- movs r0, 0
- bl sub_80A7C20
- bl sub_80A3740
- b _080A3464
-_080A3404:
- ldr r3, _080A3444
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _080A3448
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _080A344C
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080A3450
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080A3454
- ldr r0, _080A3458
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3444: .4byte 0x04000208
-_080A3448: .4byte 0x04000200
-_080A344C: .4byte REG_DISPSTAT
-_080A3450: .4byte gPaletteFade
-_080A3454: .4byte gMain
-_080A3458: .4byte 0x0000043c
-_080A345C:
- bl sub_8055870
- cmp r0, 0x1
- beq _080A34A8
-_080A3464:
- ldr r1, _080A3474
- ldr r2, _080A3478
- adds r1, r2
-_080A346A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080A34A8
- .align 2, 0
-_080A3474: .4byte gMain
-_080A3478: .4byte 0x0000043c
-_080A347C:
- ldr r0, _080A34A0
- bl SetVBlankCallback
- ldr r0, _080A34A4
- bl SetMainCallback2
- bl sub_80A751C
- bl sub_80A7630
- bl sub_80A770C
- bl sub_80A7828
- bl sub_80A78B8
- movs r0, 0x1
- b _080A34AA
- .align 2, 0
-_080A34A0: .4byte sub_80A3134
-_080A34A4: .4byte sub_80A3118
-_080A34A8:
- movs r0, 0
-_080A34AA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A317C
-
- thumb_func_start sub_80A34B4
-sub_80A34B4: @ 80A34B4
- push {lr}
-_080A34B6:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A34D2
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A34B6
- movs r0, 0
- b _080A34DE
-_080A34D2:
- ldr r1, _080A34E4
- movs r0, 0
- strb r0, [r1]
- bl ResetTasks
- movs r0, 0x1
-_080A34DE:
- pop {r1}
- bx r1
- .align 2, 0
-_080A34E4: .4byte gUnknown_03000700
- thumb_func_end sub_80A34B4
-
- thumb_func_start sub_80A34E8
-sub_80A34E8: @ 80A34E8
- push {lr}
- bl sub_80F9368
- ldr r1, _080A3514
- ldr r2, _080A3518
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080A351C
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3514: .4byte REG_BG2CNT
-_080A3518: .4byte 0x00000c06
-_080A351C: .4byte 0x00000405
- thumb_func_end sub_80A34E8
-
- thumb_func_start sub_80A3520
-sub_80A3520: @ 80A3520
- push {lr}
- ldr r0, _080A353C
- ldr r1, _080A3540
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _080A3530
- b _080A3624
-_080A3530:
- lsls r0, 2
- ldr r1, _080A3544
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A353C: .4byte 0x02000000
-_080A3540: .4byte 0x0001ffff
-_080A3544: .4byte _080A3548
- .align 2, 0
-_080A3548:
- .4byte _080A355C
- .4byte _080A3570
- .4byte _080A3588
- .4byte _080A35C0
- .4byte _080A3604
-_080A355C:
- ldr r0, _080A3568
- ldr r1, _080A356C
- bl LZDecompressVram
- b _080A35EA
- .align 2, 0
-_080A3568: .4byte gBagScreen_Gfx
-_080A356C: .4byte 0x06004000
-_080A3570:
- ldr r0, _080A3580
- ldr r1, _080A3584
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _080A35EA
- .align 2, 0
-_080A3580: .4byte gUnknown_08E77004
-_080A3584: .4byte gBG2TilemapBuffer
-_080A3588:
- ldr r0, _080A35A4
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _080A3598
- ldr r0, _080A35A8
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080A35B0
-_080A3598:
- ldr r0, _080A35AC
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _080A35EA
- .align 2, 0
-_080A35A4: .4byte gSaveBlock2
-_080A35A8: .4byte gUnknown_03000701
-_080A35AC: .4byte gBagScreenMale_Pal
-_080A35B0:
- ldr r0, _080A35BC
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _080A35EA
- .align 2, 0
-_080A35BC: .4byte gBagScreenFemale_Pal
-_080A35C0:
- ldr r0, _080A35D8
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _080A35D0
- ldr r0, _080A35DC
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080A35E4
-_080A35D0:
- ldr r0, _080A35E0
- bl LoadCompressedObjectPic
- b _080A35EA
- .align 2, 0
-_080A35D8: .4byte gSaveBlock2
-_080A35DC: .4byte gUnknown_03000701
-_080A35E0: .4byte gUnknown_083C1CC8
-_080A35E4:
- ldr r0, _080A35F8
- bl LoadCompressedObjectPic
-_080A35EA:
- ldr r1, _080A35FC
- ldr r0, _080A3600
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080A3624
- .align 2, 0
-_080A35F8: .4byte gUnknown_083C1CD0
-_080A35FC: .4byte 0x02000000
-_080A3600: .4byte 0x0001ffff
-_080A3604:
- ldr r0, _080A3618
- bl LoadCompressedObjectPalette
- ldr r0, _080A361C
- ldr r1, _080A3620
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _080A3626
- .align 2, 0
-_080A3618: .4byte gUnknown_083C1CD8
-_080A361C: .4byte 0x02000000
-_080A3620: .4byte 0x0001ffff
-_080A3624:
- movs r0, 0
-_080A3626:
- pop {r1}
- bx r1
- thumb_func_end sub_80A3520
-
- thumb_func_start sub_80A362C
-sub_80A362C: @ 80A362C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080A3648
- ldr r5, _080A364C
-_080A3634:
- ldrb r0, [r6]
- cmp r0, 0x5
- bne _080A3650
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080A3656
- .align 2, 0
-_080A3648: .4byte gUnknown_03000701
-_080A364C: .4byte gUnknown_03005D10
-_080A3650:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrb r3, [r0, 0x2]
-_080A3656:
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _080A366C
- ldrb r2, [r1, 0x3]
- adds r0, r2
- cmp r0, r3
- ble _080A3674
- subs r0, r3, r2
- strb r0, [r1, 0x1]
- b _080A3674
-_080A366C:
- ldrb r0, [r1]
- cmp r0, r3
- bls _080A3674
- strb r3, [r1]
-_080A3674:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3634
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A362C
-
- thumb_func_start sub_80A3684
-sub_80A3684: @ 80A3684
- push {r4,lr}
- movs r2, 0
- ldr r4, _080A36B0
- ldr r3, _080A36B4
- movs r1, 0
-_080A368E:
- lsls r0, r2, 2
- adds r0, r3
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _080A368E
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A36B0: .4byte gUnknown_02038559
-_080A36B4: .4byte gUnknown_03005D10
- thumb_func_end sub_80A3684
-
- thumb_func_start sub_80A36B8
-sub_80A36B8: @ 80A36B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, [sp, 0x18]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r0, 24
- lsrs r0, 24
- lsrs r2, 24
- adds r0, r2, r0
- cmp r2, r0
- bgt _080A370A
- adds r7, r0, 0
-_080A36DE:
- mov r1, r8
- mov r3, r12
- adds r0, r1, r3
- adds r4, r2, 0x1
- cmp r1, r0
- bgt _080A3702
- lsls r3, r2, 5
- movs r5, 0
- adds r2, r0, 0
-_080A36F0:
- adds r0, r1, r3
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- ble _080A36F0
-_080A3702:
- lsls r0, r4, 16
- lsrs r2, r0, 16
- cmp r2, r7
- ble _080A36DE
-_080A370A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A36B8
-
- thumb_func_start sub_80A3714
-sub_80A3714: @ 80A3714
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A373C
-_080A371A:
- lsls r1, r4, 3
- adds r1, r5
- ldr r0, [r1]
- ldrb r1, [r1, 0x4]
- bl sub_80A9684
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080A371A
- bl sub_80A3684
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A373C: .4byte gUnknown_083C1618
- thumb_func_end sub_80A3714
-
- thumb_func_start sub_80A3740
-sub_80A3740: @ 80A3740
- push {lr}
- sub sp, 0x4
- ldr r1, _080A376C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A376C: .4byte gUnknown_083C1704
- thumb_func_end sub_80A3740
-
- thumb_func_start sub_80A3770
-sub_80A3770: @ 80A3770
- push {lr}
- ldr r0, _080A379C
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A37B6
- ldr r3, _080A37A0
- ldr r2, _080A37A4
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldr r1, _080A37A8
- adds r0, r1
- str r0, [r3]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x3
- beq _080A37B0
- ldr r1, _080A37AC
- movs r0, 0x4
- b _080A37B4
- .align 2, 0
-_080A379C: .4byte gUnknown_03000701
-_080A37A0: .4byte gUnknown_03000704
-_080A37A4: .4byte gUnknown_02038559
-_080A37A8: .4byte gUnknown_083C1690
-_080A37AC: .4byte gUnknown_02038564
-_080A37B0:
- ldr r1, _080A37BC
- movs r0, 0x6
-_080A37B4:
- strb r0, [r1]
-_080A37B6:
- pop {r0}
- bx r0
- .align 2, 0
-_080A37BC: .4byte gUnknown_02038564
- thumb_func_end sub_80A3770
-
- thumb_func_start sub_80A37C0
-sub_80A37C0: @ 80A37C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A37F0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080A37F4
- str r0, [r1]
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- movs r0, 0x2
- bl sub_80F98DC
- movs r0, 0x3
- bl sub_80F98DC
- pop {r0}
- bx r0
- .align 2, 0
-_080A37F0: .4byte gTasks
-_080A37F4: .4byte sub_80A50C8
- thumb_func_end sub_80A37C0
-
- thumb_func_start sub_80A37F8
-sub_80A37F8: @ 80A37F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _080A3854
- ldrb r5, [r6]
- cmp r5, 0xF
- bhi _080A3868
- adds r0, r5, 0x1
- strb r0, [r6]
- ldr r4, _080A3858
- ldrb r2, [r6]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x4F
- bl sub_80A396C
- ldr r0, _080A385C
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6]
- lsrs r2, 1
- ldr r3, _080A3860
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r3
- movs r3, 0x12
- ldrsb r3, [r0, r3]
- adds r0, r4, 0
- bl sub_80A39E4
- ldr r4, _080A3864
- movs r0, 0x1
- strb r0, [r4]
- lsrs r1, r5, 1
- ldrb r2, [r6]
- lsrs r2, 1
- subs r2, 0x1
- adds r0, r7, 0
- bl sub_80A48E8
- movs r0, 0
- strb r0, [r4]
- b _080A3932
- .align 2, 0
-_080A3854: .4byte gUnknown_0203855A
-_080A3858: .4byte gBG2TilemapBuffer
-_080A385C: .4byte gUnknown_02038559
-_080A3860: .4byte gTasks
-_080A3864: .4byte gUnknown_02038558
-_080A3868:
- ldr r0, _080A38A0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A38B4
- ldr r1, _080A38A4
- ldr r0, _080A38A8
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A38AC
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldr r4, _080A38B0
- ldrb r1, [r4]
- bl sub_80A49AC
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080A38F2
- .align 2, 0
-_080A38A0: .4byte gLinkOpen
-_080A38A4: .4byte gUnknown_03005D10
-_080A38A8: .4byte gUnknown_02038559
-_080A38AC: .4byte gUnknown_03005D24
-_080A38B0: .4byte gUnknown_02038562
-_080A38B4:
- ldr r1, _080A3938
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _080A38F2
- ldr r5, _080A393C
- adds r4, r1, 0
-_080A38C0:
- ldr r0, _080A3940
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A3944
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldrb r1, [r4]
- bl sub_80A49AC
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A38C0
-_080A38F2:
- ldr r0, _080A3938
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080A3932
- ldr r1, _080A3948
- movs r0, 0x10
- strb r0, [r1]
- ldr r1, _080A394C
- ldr r0, _080A3940
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080A3950
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A37C0
- adds r0, r7, 0
- bl DestroyTask
- bl sub_80A736C
- movs r0, 0x2
- movs r1, 0
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0
- bl sub_80F979C
-_080A3932:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3938: .4byte gUnknown_02038562
-_080A393C: .4byte gUnknown_03005D10
-_080A3940: .4byte gUnknown_02038559
-_080A3944: .4byte gUnknown_03005D24
-_080A3948: .4byte gUnknown_0203855A
-_080A394C: .4byte gUnknown_0203855B
-_080A3950: .4byte sub_80A4F68
- thumb_func_end sub_80A37F8
-
- thumb_func_start sub_80A3954
-sub_80A3954: @ 80A3954
- push {lr}
- adds r1, r0, 0
- ldr r0, _080A3968
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- pop {r0}
- bx r0
- .align 2, 0
-_080A3968: .4byte gUnknown_08E77004
- thumb_func_end sub_80A3954
-
- thumb_func_start sub_80A396C
-sub_80A396C: @ 80A396C
- push {r4-r7,lr}
- lsls r1, 24
- lsrs r5, r1, 24
- adds r4, r5, 0
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0x2
- lsls r1, 6
- adds r1, 0x1C
- adds r2, r0, r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r7, r4
- bls _080A39B2
-_080A398E:
- movs r1, 0
- adds r3, r5, 0x1
- adds r4, r2, 0
- adds r4, 0x40
-_080A3996:
- lsls r0, r1, 1
- adds r0, r2
- strh r6, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xE
- bls _080A3996
- adds r2, r4, 0
- adds r1, r5, 0
- lsls r0, r3, 24
- lsrs r5, r0, 24
- cmp r7, r1
- bhi _080A398E
-_080A39B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A396C
-
- thumb_func_start sub_80A39B8
-sub_80A39B8: @ 80A39B8
- push {lr}
- sub sp, 0x10
- lsls r1, 25
- lsrs r1, 24
- ldr r3, _080A39E0
- movs r2, 0
- str r2, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x4
- movs r2, 0xA
- bl sub_809D104
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080A39E0: .4byte gUnknown_08E96EC8
- thumb_func_end sub_80A39B8
-
- thumb_func_start sub_80A39E4
-sub_80A39E4: @ 80A39E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- adds r5, r6, 0
- lsls r2, r1, 1
- mov r9, r2
- lsls r3, 24
- asrs r3, 24
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080A3A5C
- adds r0, r1, 0x1
- lsls r7, r0, 1
- cmp r1, 0x5
- bne _080A3A18
- movs r7, 0x2
-_080A3A18:
- ldr r0, _080A3A58
- mov r10, r0
- movs r4, 0x8
- subs r4, r6
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp]
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x2
- mov r9, r0
- str r0, [sp, 0xC]
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xA
- mov r3, r10
- bl sub_809D104
- adds r1, r6, 0x4
- movs r0, 0
- str r0, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- movs r2, 0xA
- mov r3, r10
- bl sub_809D104
- b _080A3AAA
- .align 2, 0
-_080A3A58: .4byte gUnknown_08E96EC8
-_080A3A5C:
- cmp r3, 0x1
- bne _080A3AAA
- subs r0, r4, 0x1
- lsls r0, 17
- lsrs r7, r0, 16
- cmp r4, 0x1
- bne _080A3A6C
- movs r7, 0xA
-_080A3A6C:
- ldr r6, _080A3ABC
- str r5, [sp]
- str r7, [sp, 0x4]
- movs r0, 0x8
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r4, 0x2
- str r4, [sp, 0xC]
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_809D104
- movs r1, 0xC
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r0, r8
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_809D104
-_080A3AAA:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3ABC: .4byte gUnknown_08E96EC8
- thumb_func_end sub_80A39E4
-
- thumb_func_start sub_80A3AC0
-sub_80A3AC0: @ 80A3AC0
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r2, 0
- ldr r1, _080A3AE4
- ldr r0, _080A3AE8
- adds r6, r0, 0
- subs r0, 0x1
- adds r5, r0, 0
-_080A3AD4:
- cmp r2, r4
- bne _080A3AEC
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r1
- strh r6, [r0]
- b _080A3AF4
- .align 2, 0
-_080A3AE4: .4byte 0x0000024a
-_080A3AE8: .4byte 0x0000107d
-_080A3AEC:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r1
- strh r5, [r0]
-_080A3AF4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _080A3AD4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3AC0
-
- thumb_func_start sub_80A3B04
-sub_80A3B04: @ 80A3B04
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A3BA4
- ldrb r0, [r4]
- lsls r1, 24
- asrs r6, r1, 24
- adds r0, r6, r0
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080A3B20
- movs r0, 0
- strb r0, [r4]
-_080A3B20:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bge _080A3B2C
- movs r0, 0x4
- strb r0, [r4]
-_080A3B2C:
- bl sub_80A76A0
- bl sub_80A7590
- ldr r2, _080A3BA8
- ldr r1, _080A3BAC
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldrb r0, [r4]
- bl sub_80A3D24
- ldr r0, _080A3BB0
- movs r4, 0
- strb r4, [r0]
- adds r0, r5, 0
- bl sub_80A3954
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x3
- bl sub_80A396C
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A39B8
- ldr r1, _080A3BB4
- movs r0, 0x6
- strb r0, [r1]
- ldr r0, _080A3BB8
- strb r4, [r0]
- ldr r4, _080A3BBC
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A3B90
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
-_080A3B90:
- ldr r1, _080A3BC0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x12]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3BA4: .4byte gUnknown_02038559
-_080A3BA8: .4byte gUnknown_03005D24
-_080A3BAC: .4byte gUnknown_083C1618
-_080A3BB0: .4byte gUnknown_0203855A
-_080A3BB4: .4byte gUnknown_0203855B
-_080A3BB8: .4byte gUnknown_02038562
-_080A3BBC: .4byte sub_80A37F8
-_080A3BC0: .4byte gTasks
- thumb_func_end sub_80A3B04
-
- thumb_func_start swap32
-swap32: @ 80A3BC4
- ldr r3, [r0]
- ldr r2, [r1]
- str r2, [r0]
- str r3, [r1]
- bx lr
- thumb_func_end swap32
-
- thumb_func_start sub_80A3BD0
-sub_80A3BD0: @ 80A3BD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r1, 0
- adds r6, r0, 0
- movs r3, 0
- b _080A3C1A
-_080A3BE0:
- adds r0, r3, 0x1
- lsls r1, r0, 16
- lsrs r4, r1, 16
- lsls r1, r2, 24
- lsrs r1, 24
- mov r8, r0
- cmp r4, r1
- bcs _080A3C14
- lsls r0, r3, 2
- adds r5, r0, r6
- adds r2, r1, 0
-_080A3BF6:
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- bne _080A3C0A
- lsls r1, r4, 2
- adds r1, r6
- adds r0, r5, 0
- str r2, [sp]
- bl swap32
- ldr r2, [sp]
-_080A3C0A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bcc _080A3BF6
-_080A3C14:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
-_080A3C1A:
- adds r2, r7, 0
- lsls r0, r2, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r3, r0
- blt _080A3BE0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3BD0
-
- thumb_func_start sub_80A3C34
-sub_80A3C34: @ 80A3C34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r1, 0
- adds r6, r0, 0
- adds r2, r7, 0
- lsls r0, r2, 24
- movs r3, 0
- cmp r0, 0
- beq _080A3C9C
-_080A3C4A:
- adds r0, r3, 0x1
- lsls r1, r0, 16
- lsrs r4, r1, 16
- lsls r1, r2, 24
- lsrs r1, 24
- mov r8, r0
- cmp r4, r1
- bcs _080A3C8C
- lsls r0, r3, 2
- adds r5, r0, r6
- adds r2, r1, 0
-_080A3C60:
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- beq _080A3C82
- lsls r0, r4, 2
- adds r1, r0, r6
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080A3C82
- ldrh r0, [r5]
- ldrh r3, [r1]
- cmp r0, r3
- bls _080A3C82
- adds r0, r5, 0
- str r2, [sp]
- bl swap32
- ldr r2, [sp]
-_080A3C82:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bcc _080A3C60
-_080A3C8C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- adds r2, r7, 0
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r3, r0
- bcc _080A3C4A
-_080A3C9C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3C34
-
- thumb_func_start sub_80A3CA8
-sub_80A3CA8: @ 80A3CA8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A3D00
- lsls r0, r6, 2
- adds r3, r0, r1
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r4, 0
- ldr r0, _080A3D04
- lsls r2, r6, 3
- adds r1, r2, r0
- mov r12, r0
- ldrb r1, [r1, 0x4]
- cmp r4, r1
- bcs _080A3CEC
- mov r7, r12
- adds r5, r3, 0
-_080A3CCC:
- adds r3, r2, r7
- ldr r0, [r3]
- lsls r1, r4, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080A3CE0
- ldrb r0, [r5, 0x2]
- adds r0, 0x1
- strb r0, [r5, 0x2]
-_080A3CE0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r3, [r3, 0x4]
- cmp r4, r3
- bcc _080A3CCC
-_080A3CEC:
- lsls r0, r6, 3
- add r0, r12
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- bl sub_80A3BD0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3D00: .4byte gUnknown_03005D10
-_080A3D04: .4byte gUnknown_083C1618
- thumb_func_end sub_80A3CA8
-
- thumb_func_start sub_80A3D08
-sub_80A3D08: @ 80A3D08
- push {r4,lr}
- movs r4, 0
-_080A3D0C:
- adds r0, r4, 0
- bl sub_80A3CA8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3D0C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3D08
-
- thumb_func_start sub_80A3D24
-sub_80A3D24: @ 80A3D24
- push {lr}
- lsls r0, 24
- ldr r1, _080A3D3C
- lsrs r0, 22
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0x6
- bls _080A3D36
- movs r0, 0x7
-_080A3D36:
- strb r0, [r1, 0x3]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3D3C: .4byte gUnknown_03005D10
- thumb_func_end sub_80A3D24
-
- thumb_func_start sub_80A3D40
-sub_80A3D40: @ 80A3D40
- push {r4,lr}
- movs r4, 0
-_080A3D44:
- adds r0, r4, 0
- bl sub_80A3D24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3D44
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3D40
-
- thumb_func_start sub_80A3D5C
-sub_80A3D5C: @ 80A3D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A3DF4
- mov r9, r1
- ldr r2, _080A3DF8
- mov r8, r2
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x1]
- ldrb r1, [r1]
- adds r2, r1
- ldr r7, _080A3DFC
- ldr r1, [r7]
- lsls r6, r2, 2
- adds r3, r6, r1
- ldr r2, _080A3E00
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r3, 0x2]
- ldrh r1, [r1, 0xA]
- subs r0, r1
- strh r0, [r3, 0x2]
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080A3DE0
- ldr r0, _080A3E04
- ldr r1, _080A3E08
- adds r5, r0, r1
- ldrh r0, [r5]
- ldrh r3, [r3]
- cmp r0, r3
- bne _080A3DB4
- bl sub_80A40D0
- strh r4, [r5]
-_080A3DB4:
- ldr r0, [r7]
- adds r0, r6, r0
- strh r4, [r0]
- mov r2, r8
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- mov r3, r9
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- adds r0, r1, 0x7
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _080A3DD8
- cmp r1, 0
- beq _080A3DD8
- subs r0, r1, 0x1
- strb r0, [r2, 0x1]
-_080A3DD8:
- ldr r0, _080A3DF8
- ldrb r0, [r0]
- bl sub_80A3CA8
-_080A3DE0:
- ldr r0, _080A3DF8
- ldrb r0, [r0]
- bl sub_80A3D24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3DF4: .4byte gUnknown_03005D10
-_080A3DF8: .4byte gUnknown_02038559
-_080A3DFC: .4byte gUnknown_03005D24
-_080A3E00: .4byte gTasks
-_080A3E04: .4byte gSaveBlock1
-_080A3E08: .4byte 0x00000496
- thumb_func_end sub_80A3D5C
-
- thumb_func_start sub_80A3E0C
-sub_80A3E0C: @ 80A3E0C
- push {lr}
- ldr r3, _080A3E60
- ldr r2, _080A3E64
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A3E68
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A3E52
- strh r0, [r1]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- adds r0, r1, 0x7
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _080A3E4A
- cmp r1, 0
- beq _080A3E4A
- subs r0, r1, 0x1
- strb r0, [r2, 0x1]
-_080A3E4A:
- ldr r0, _080A3E64
- ldrb r0, [r0]
- bl sub_80A3CA8
-_080A3E52:
- ldr r0, _080A3E64
- ldrb r0, [r0]
- bl sub_80A3D24
- pop {r0}
- bx r0
- .align 2, 0
-_080A3E60: .4byte gUnknown_03005D10
-_080A3E64: .4byte gUnknown_02038559
-_080A3E68: .4byte gUnknown_03005D24
- thumb_func_end sub_80A3E0C
-
- thumb_func_start nullsub_16
-nullsub_16: @ 80A3E6C
- bx lr
- thumb_func_end nullsub_16
-
- thumb_func_start sub_80A3E70
-sub_80A3E70: @ 80A3E70
- lsls r0, 24
- lsls r1, 24
- ldr r2, _080A3E8C
- ldr r2, [r2]
- lsrs r0, 22
- adds r0, r2
- ldr r3, [r0]
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- str r2, [r0]
- str r3, [r1]
- bx lr
- .align 2, 0
-_080A3E8C: .4byte gUnknown_03005D24
- thumb_func_end sub_80A3E70
-
- thumb_func_start sub_80A3E90
-sub_80A3E90: @ 80A3E90
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- bl nullsub_16
- ldr r0, _080A3EE8
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- ldrb r0, [r5, 0x1C]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080A3EEC
- ldr r1, _080A3EF0
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x1]
- ldrb r2, [r2]
- adds r1, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_80A3E70
- movs r0, 0
- strh r0, [r5, 0x1C]
- bl sub_80A763C
- movs r0, 0
- bl sub_80A7528
- bl sub_80A736C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3EE8: .4byte gTasks
-_080A3EEC: .4byte gUnknown_03005D10
-_080A3EF0: .4byte gUnknown_02038559
- thumb_func_end sub_80A3E90
-
- thumb_func_start sub_80A3EF4
-sub_80A3EF4: @ 80A3EF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- bl nullsub_16
- ldr r0, _080A3F44
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080A3F48
- ldr r0, _080A3F4C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- mvns r0, r0
- ldrb r2, [r1, 0x1C]
- adds r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0
- strh r0, [r1, 0x1C]
- cmp r2, 0x7
- bhi _080A3F38
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
-_080A3F38:
- movs r0, 0
- bl sub_80A7528
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3F44: .4byte gTasks
-_080A3F48: .4byte gUnknown_03005D10
-_080A3F4C: .4byte gUnknown_02038559
- thumb_func_end sub_80A3EF4
-
- thumb_func_start sub_80A3F50
-sub_80A3F50: @ 80A3F50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A3F94
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r1
- ldr r5, _080A3F98
- ldr r4, _080A3F9C
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- ldrb r1, [r1]
- adds r2, r1
- adds r2, 0x1
- strh r2, [r3, 0x1C]
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1]
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x1
- bl sub_80A7528
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3F94: .4byte gTasks
-_080A3F98: .4byte gUnknown_03005D10
-_080A3F9C: .4byte gUnknown_02038559
- thumb_func_end sub_80A3F50
-
- thumb_func_start sub_80A3FA0
-sub_80A3FA0: @ 80A3FA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldr r0, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r6, r4, 16
- lsrs r2, 24
- adds r0, r2, r0
- cmp r2, r0
- bge _080A3FFC
- mov r8, r5
- adds r4, r5, r3
- mov r12, r0
-_080A3FCC:
- adds r0, r5, 0
- lsls r3, r2, 16
- cmp r8, r4
- bge _080A3FEE
- asrs r2, r3, 11
-_080A3FD6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, r4
- blt _080A3FD6
-_080A3FEE:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r12
- blt _080A3FCC
-_080A3FFC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3FA0
-
- thumb_func_start sub_80A4008
-sub_80A4008: @ 80A4008
- push {r4,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_80A3FA0
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4008
-
- thumb_func_start sub_80A4030
-sub_80A4030: @ 80A4030
- ldr r1, _080A4058
- lsls r0, 7
- adds r1, r0, r1
- movs r0, 0x5A
- strh r0, [r1]
- movs r0, 0x5B
- strh r0, [r1, 0x2]
- movs r0, 0x5C
- strh r0, [r1, 0x4]
- adds r2, r1, 0
- adds r2, 0x40
- movs r0, 0x6A
- strh r0, [r2]
- adds r2, 0x2
- movs r0, 0x6B
- strh r0, [r2]
- adds r1, 0x44
- movs r0, 0x6C
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A4058: .4byte gBG2TilemapBuffer + 0xB4
- thumb_func_end sub_80A4030
-
- thumb_func_start sub_80A405C
-sub_80A405C: @ 80A405C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080A40A8
- movs r0, 0
- adds r4, r2, 0
- movs r1, 0x4F
-_080A406A:
- strh r1, [r2]
- strh r1, [r2, 0x2]
- strh r1, [r2, 0x4]
- adds r2, 0x40
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF
- bls _080A406A
- lsls r0, r3, 7
- adds r2, r0, r4
- movs r0, 0x5A
- strh r0, [r2]
- movs r0, 0x5B
- strh r0, [r2, 0x2]
- movs r0, 0x5C
- strh r0, [r2, 0x4]
- adds r1, r2, 0
- adds r1, 0x40
- movs r0, 0x6A
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6B
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6C
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A40A8: .4byte gBG2TilemapBuffer + 0xB4
- thumb_func_end sub_80A405C
-
- thumb_func_start sub_80A40AC
-sub_80A40AC: @ 80A40AC
- lsls r0, 24
- ldr r1, _080A40CC
- lsrs r0, 17
- adds r1, r0, r1
- movs r2, 0x4F
- strh r2, [r1]
- strh r2, [r1, 0x2]
- strh r2, [r1, 0x4]
- adds r0, r1, 0
- adds r0, 0x40
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r1, 0x44
- strh r2, [r1]
- bx lr
- .align 2, 0
-_080A40CC: .4byte gBG2TilemapBuffer + 0xB4
- thumb_func_end sub_80A40AC
-
- thumb_func_start sub_80A40D0
-sub_80A40D0: @ 80A40D0
- push {r4-r7,lr}
- movs r4, 0
- ldr r2, _080A4114
- ldr r3, _080A4118
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r7, r2, 0
- adds r6, r3, 0
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- beq _080A4136
- ldr r5, _080A411C
-_080A40EE:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r3, r0, r7
- ldrb r2, [r3, 0x1]
- adds r1, r2, r4
- ldr r0, _080A4120
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080A4124
- adds r0, r4, 0
- bl sub_80A40AC
- b _080A4136
- .align 2, 0
-_080A4114: .4byte gUnknown_03005D10
-_080A4118: .4byte gUnknown_02038559
-_080A411C: .4byte gSaveBlock1 + 0x496
-_080A4120: .4byte gUnknown_03005D24
-_080A4124:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bhi _080A4136
- adds r0, r2, r4
- ldrb r3, [r3, 0x2]
- cmp r0, r3
- bne _080A40EE
-_080A4136:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A40D0
-
- thumb_func_start sub_80A413C
-sub_80A413C: @ 80A413C
- push {lr}
- bl sub_80A40D0
- ldr r1, _080A415C
- ldr r0, _080A4160
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80A405C
- pop {r0}
- bx r0
- .align 2, 0
-_080A415C: .4byte gUnknown_03005D10
-_080A4160: .4byte gUnknown_02038559
- thumb_func_end sub_80A413C
-
- thumb_func_start sub_80A4164
-sub_80A4164: @ 80A4164
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0xB9
- strb r4, [r0]
- adds r0, 0x1
- movs r4, 0xFC
- strb r4, [r0]
- movs r4, 0x14
- strb r4, [r0, 0x1]
- movs r4, 0x6
- strb r4, [r0, 0x2]
- adds r0, 0x3
- bl ConvertIntToDecimalStringN
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4164
-
- thumb_func_start sub_80A418C
-sub_80A418C: @ 80A418C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r4, r0, 0
- mov r9, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080A41D0
- mov r8, r0
- adds r1, r4, 0
- mov r2, r9
- bl sub_80A4164
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A41D0: .4byte gStringVar1
- thumb_func_end sub_80A418C
-
- thumb_func_start sub_80A41D4
-sub_80A41D4: @ 80A41D4
- push {lr}
- bl sub_80A763C
- pop {r0}
- bx r0
- thumb_func_end sub_80A41D4
-
- thumb_func_start sub_80A41E0
-sub_80A41E0: @ 80A41E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r9, r2
- adds r5, r3, 0
- ldr r4, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xFC
- mov r8, r0
- strb r0, [r7]
- movs r6, 0x13
- strb r6, [r7, 0x1]
- movs r0, 0x8
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r1, r8
- strb r1, [r0]
- strb r6, [r0, 0x1]
- movs r1, 0x18
- strb r1, [r0, 0x2]
- adds r7, r0, 0x3
- adds r4, 0x1
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- movs r2, 0x78
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- mov r1, r9
- movs r3, 0
- bl sub_8072C74
- movs r1, 0xB9
- strb r1, [r0]
- adds r7, r0, 0x1
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0x1
- bl sub_8072C14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A41E0
-
- thumb_func_start sub_80A425C
-sub_80A425C: @ 80A425C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080A42A4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1C
- ldrsh r1, [r1, r0]
- ldr r3, _080A42A8
- ldr r0, _080A42AC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r1, r0
- subs r1, 0x1
- cmp r1, r2
- bne _080A429C
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- movs r0, 0x2
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_080A429C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A42A4: .4byte gTasks
-_080A42A8: .4byte gUnknown_03005D10
-_080A42AC: .4byte gUnknown_02038559
- thumb_func_end sub_80A425C
-
- thumb_func_start sub_80A42B0
-sub_80A42B0: @ 80A42B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r0, _080A4344
- mov r8, r0
- ldr r1, _080A4348
- ldr r0, _080A434C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- adds r1, r6
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bgt _080A4370
- cmp r1, r0
- bne _080A4374
- ldr r0, _080A4350
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A4370
- lsls r0, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r0, r1
- lsrs r5, r0, 24
- ldr r4, _080A4354
- ldr r1, _080A4358
- adds r0, r4, 0
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- lsls r0, r5, 6
- ldr r1, _080A435C
- adds r0, r1
- movs r2, 0x4F
- strh r2, [r0]
- strh r2, [r0, 0x2]
- adds r1, r0, 0
- adds r1, 0x40
- strh r2, [r1]
- adds r0, 0x42
- strh r2, [r0]
- cmp r6, 0x7
- beq _080A4370
- cmp r7, 0x1
- bne _080A432E
- mov r1, r8
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _080A4332
-_080A432E:
- cmp r7, 0x2
- bne _080A4360
-_080A4332:
- adds r1, r5, 0x2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuFillWindowRectWithBlankTile
- b _080A4370
- .align 2, 0
-_080A4344: .4byte gUnknown_02038540
-_080A4348: .4byte gUnknown_03005D10
-_080A434C: .4byte gUnknown_02038559
-_080A4350: .4byte gUnknown_03000701
-_080A4354: .4byte gStringVar1
-_080A4358: .4byte gOtherText_CloseBag
-_080A435C: .4byte gBG2TilemapBuffer + 0x1C
-_080A4360:
- adds r1, r5, 0x2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1D
- movs r3, 0x11
- bl MenuFillWindowRectWithBlankTile
-_080A4370:
- movs r0, 0x1
- b _080A4376
-_080A4374:
- movs r0, 0
-_080A4376:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A42B0
-
- thumb_func_start sub_80A4380
-sub_80A4380: @ 80A4380
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r2, [sp]
- mov r10, r3
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A43A0
- mov r8, r0
- b _080A441A
- .align 2, 0
-_080A43A0: .4byte gUnknown_03005D24
-_080A43A4:
- ldr r1, _080A4440
- ldr r0, _080A4444
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r7, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r7, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- ldr r6, _080A4448
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_80A425C
- adds r6, r0, 0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0x66
- movs r3, 0
- bl sub_8072C74
- adds r6, r0, 0
- movs r0, 0xB9
- strb r0, [r6]
- adds r6, 0x1
- mov r1, r8
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4, 0x2]
- adds r0, r6, 0
- movs r2, 0x78
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A4448
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080A441A:
- ldr r0, [sp]
- cmp r7, r0
- bgt _080A4430
- adds r0, r7, 0
- mov r1, r10
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A43A4
-_080A4430:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4440: .4byte gUnknown_03005D10
-_080A4444: .4byte gUnknown_02038559
-_080A4448: .4byte gStringVar1
- thumb_func_end sub_80A4380
-
- thumb_func_start sub_80A444C
-sub_80A444C: @ 80A444C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r2, [sp]
- str r3, [sp, 0x4]
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _080A446C
- mov r9, r0
- b _080A4520
- .align 2, 0
-_080A446C: .4byte gSaveBlock1 + 0x496
-_080A4470:
- ldr r1, _080A44E8
- ldr r0, _080A44EC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r6, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- ldr r7, _080A44F0
- mov r2, r10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80A425C
- adds r7, r0, 0
- ldr r0, _080A44F4
- mov r8, r0
- ldr r0, [r0]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r7, 0
- movs r2, 0x60
- movs r3, 0
- bl sub_8072C74
- ldr r0, _080A44F0
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- ldr r0, _080A44F8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A44FC
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r2, r9
- ldrh r2, [r2]
- cmp r0, r2
- bne _080A451A
- adds r0, r6, 0
- bl sub_80A4030
- b _080A451A
- .align 2, 0
-_080A44E8: .4byte gUnknown_03005D10
-_080A44EC: .4byte gUnknown_02038559
-_080A44F0: .4byte gStringVar1
-_080A44F4: .4byte gUnknown_03005D24
-_080A44F8: .4byte gUnknown_02038558
-_080A44FC:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r2, r9
- ldrh r2, [r2]
- cmp r0, r2
- bne _080A4514
- adds r0, r6, 0
- bl sub_80A405C
- b _080A451A
-_080A4514:
- adds r0, r6, 0
- bl sub_80A40AC
-_080A451A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080A4520:
- ldr r0, [sp]
- cmp r6, r0
- bgt _080A4536
- adds r0, r6, 0
- ldr r1, [sp, 0x4]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4470
-_080A4536:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A444C
-
- thumb_func_start sub_80A4548
-sub_80A4548: @ 80A4548
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _080A456C
- mov r9, r0
- b _080A46C2
- .align 2, 0
-_080A456C: .4byte gBG2TilemapBuffer
-_080A4570:
- ldr r1, _080A461C
- ldr r0, _080A4620
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- add r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r0, r1, 25
- movs r3, 0x80
- lsls r3, 18
- adds r0, r3
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r0, 5
- adds r0, 0xE
- adds r5, r0, 0
- ldr r6, _080A4624
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r6, 0
- mov r2, r8
- bl sub_80A425C
- adds r6, r0, 0
- ldr r3, _080A4628
- mov r10, r3
- ldr r0, [r3]
- lsls r7, r4, 2
- adds r3, r7, r0
- ldrh r1, [r3]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _080A4634
- lsls r0, r5, 1
- add r0, r9
- movs r1, 0x59
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- movs r2, 0x4F
- strh r2, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- add r0, r9
- movs r1, 0x69
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x21
- lsls r0, 1
- add r0, r9
- strh r2, [r0]
- ldrh r0, [r3]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- adds r2, r0, 0
- muls r2, r1
- ldr r0, _080A462C
- adds r2, r0
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldr r3, _080A4630
- adds r1, r3, 0
- ldrh r3, [r0]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- ldrh r3, [r0, 0x2]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r6, 0
- bl sub_80A41E0
- b _080A46AE
- .align 2, 0
-_080A461C: .4byte gUnknown_03005D10
-_080A4620: .4byte gUnknown_02038559
-_080A4624: .4byte gStringVar1
-_080A4628: .4byte gUnknown_03005D24
-_080A462C: .4byte gMoveNames
-_080A4630: .4byte 0xfffffee0
-_080A4634:
- lsls r0, r5, 1
- add r0, r9
- ldr r1, _080A46EC
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- adds r1, 0x1
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- add r0, r9
- adds r1, 0xF
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x21
- lsls r0, 1
- add r0, r9
- adds r1, 0x1
- strh r1, [r0]
- movs r0, 0xFC
- strb r0, [r6]
- movs r4, 0x13
- strb r4, [r6, 0x1]
- movs r0, 0x11
- strb r0, [r6, 0x2]
- adds r6, 0x3
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r3, _080A46F0
- adds r1, r3
- adds r0, r6, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- movs r0, 0xFC
- strb r0, [r6]
- strb r4, [r6, 0x1]
- movs r0, 0x18
- strb r0, [r6, 0x2]
- adds r6, 0x3
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080A46F4
- adds r1, r0
- adds r0, r6, 0
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
-_080A46AE:
- ldr r0, _080A46F8
- movs r1, 0xE
- ldr r2, [sp, 0x10]
- bl MenuPrint
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080A46C2:
- ldr r3, [sp, 0x8]
- cmp r8, r3
- bgt _080A46DA
- mov r0, r8
- ldr r1, [sp, 0xC]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A46DA
- b _080A4570
-_080A46DA:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A46EC: .4byte 0x0000105d
-_080A46F0: .4byte 0xfffffeae
-_080A46F4: .4byte gMoveNames
-_080A46F8: .4byte gStringVar1
- thumb_func_end sub_80A4548
-
- thumb_func_start sub_80A46FC
-sub_80A46FC: @ 80A46FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _080A4724
- mov r10, r0
- ldr r1, _080A4728
- mov r9, r1
- ldr r0, _080A472C
- mov r8, r0
- b _080A47B4
- .align 2, 0
-_080A4724: .4byte gBG2TilemapBuffer
-_080A4728: .4byte gStringVar2
-_080A472C: .4byte gUnknown_03005D24
-_080A4730:
- ldr r1, _080A47DC
- ldr r0, _080A47E0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r6, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- lsls r0, r5, 5
- adds r0, 0xE
- lsls r1, r0, 1
- add r1, r10
- movs r2, 0x59
- strh r2, [r1]
- adds r0, 0x20
- lsls r0, 1
- add r0, r10
- movs r1, 0x69
- strh r1, [r0]
- ldr r7, _080A47E4
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80A425C
- adds r7, r0, 0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r1, r9
- bl itemid_copy_name
- mov r1, r8
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4]
- subs r1, 0x84
- lsls r1, 16
- lsrs r1, 16
- ldrh r3, [r4, 0x2]
- movs r0, 0x3
- str r0, [sp]
- adds r0, r7, 0
- mov r2, r9
- bl sub_80A41E0
- ldr r0, _080A47E4
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080A47B4:
- ldr r0, [sp, 0x8]
- cmp r6, r0
- bgt _080A47CA
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4730
-_080A47CA:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A47DC: .4byte gUnknown_03005D10
-_080A47E0: .4byte gUnknown_02038559
-_080A47E4: .4byte gStringVar1
- thumb_func_end sub_80A46FC
-
- thumb_func_start sub_80A47E8
-sub_80A47E8: @ 80A47E8
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080A4808
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _080A4852
- lsls r0, 2
- ldr r1, _080A480C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4808: .4byte gUnknown_02038559
-_080A480C: .4byte _080A4810
- .align 2, 0
-_080A4810:
- .4byte _080A4824
- .4byte _080A4824
- .4byte _080A483C
- .4byte _080A4848
- .4byte _080A4830
-_080A4824:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4380
- b _080A4852
-_080A4830:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A444C
- b _080A4852
-_080A483C:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4548
- b _080A4852
-_080A4848:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A46FC
-_080A4852:
- ldr r1, _080A4870
- ldr r0, _080A4874
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080A4878
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _080A4880
- .align 2, 0
-_080A4870: .4byte gUnknown_03005D10
-_080A4874: .4byte gUnknown_02038559
-_080A4878:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_080A4880:
- ldr r0, _080A48A4
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A48B0
- ldr r1, _080A48A8
- ldr r0, _080A48AC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- adds r1, 0x8
- ldrb r0, [r0, 0x2]
- adds r0, 0x1
- cmp r1, r0
- blt _080A48C6
- b _080A48D8
- .align 2, 0
-_080A48A4: .4byte gUnknown_03000701
-_080A48A8: .4byte gUnknown_03005D10
-_080A48AC: .4byte gUnknown_02038559
-_080A48B0:
- ldr r2, _080A48D0
- ldr r0, _080A48D4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- adds r0, 0x8
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- bge _080A48D8
-_080A48C6:
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _080A48E0
- .align 2, 0
-_080A48D0: .4byte gUnknown_03005D10
-_080A48D4: .4byte gUnknown_02038559
-_080A48D8:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_080A48E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A47E8
-
- thumb_func_start sub_80A48E8
-sub_80A48E8: @ 80A48E8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r3, 0
- bl sub_80A47E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A48E8
-
- thumb_func_start sub_80A48F8
-sub_80A48F8: @ 80A48F8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A47E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A48F8
-
- thumb_func_start sub_80A490C
-sub_80A490C: @ 80A490C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _080A4960
- ldr r0, _080A4964
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A4974
- ldr r0, _080A4968
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072A18
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A496C
- ldr r0, _080A4970
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0x78
- movs r3, 0x68
- bl sub_8072A18
- adds r0, r5, r0
- b _080A4988
- .align 2, 0
-_080A4960: .4byte gUnknown_03005D10
-_080A4964: .4byte gUnknown_02038559
-_080A4968: .4byte gOtherText_ReturnTo
-_080A496C: .4byte gUnknown_0840E740
-_080A4970: .4byte gUnknown_03000701
-_080A4974:
- adds r0, r3, 0
- bl itemid_get_description
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072A18
-_080A4988:
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bhi _080A49A4
- lsls r1, r5, 25
- movs r0, 0xD0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A49A4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A490C
-
- thumb_func_start sub_80A49AC
-sub_80A49AC: @ 80A49AC
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080A49E8
- ldr r0, _080A49EC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A4A18
- cmp r4, 0
- bne _080A49F4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080A49F0
- movs r1, 0x4
- movs r2, 0x68
- b _080A4A08
- .align 2, 0
-_080A49E8: .4byte gUnknown_03005D10
-_080A49EC: .4byte gUnknown_02038559
-_080A49F0: .4byte gOtherText_ReturnTo
-_080A49F4:
- cmp r4, 0x1
- bne _080A4A4C
- ldr r1, _080A4A10
- ldr r0, _080A4A14
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x4
- movs r2, 0x78
-_080A4A08:
- movs r3, 0
- bl sub_80729D8
- b _080A4A4C
- .align 2, 0
-_080A4A10: .4byte gUnknown_0840E740
-_080A4A14: .4byte gUnknown_03000701
-_080A4A18:
- cmp r4, 0
- bne _080A4A28
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A4A28:
- lsls r1, r5, 16
- asrs r1, 16
- mov r0, sp
- adds r2, r4, 0
- bl sub_80A99A8
- cmp r0, 0
- beq _080A4A4C
- lsls r2, r4, 20
- movs r0, 0xD0
- lsls r0, 15
- adds r2, r0
- lsrs r2, 16
- mov r0, sp
- movs r1, 0x4
- movs r3, 0
- bl sub_80729D8
-_080A4A4C:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A49AC
-
- thumb_func_start sub_80A4A54
-sub_80A4A54: @ 80A4A54
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r2, 0x1
- adds r2, r1, 0
- adds r1, r5, 0
-_080A4A5E:
- ldrb r3, [r2]
- adds r0, r3, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A4A8A
- subs r4, 0x1
- cmp r4, 0
- bne _080A4A78
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0x1
- b _080A4A92
-_080A4A78:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080A4A84
- movs r0, 0
- b _080A4A92
-_080A4A84:
- adds r1, r5, 0
- adds r2, 0x1
- b _080A4A5E
-_080A4A8A:
- strb r3, [r1]
- adds r2, 0x1
- adds r1, 0x1
- b _080A4A5E
-_080A4A92:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4A54
-
- thumb_func_start sub_80A4A98
-sub_80A4A98: @ 80A4A98
- push {r4,r5,lr}
- sub sp, 0x64
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- bne _080A4AB0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A4AB0:
- mov r0, sp
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A4A54
- cmp r0, 0
- beq _080A4AD2
- lsls r2, r4, 20
- movs r0, 0xD0
- lsls r0, 15
- adds r2, r0
- lsrs r2, 16
- mov r0, sp
- movs r1, 0x4
- movs r3, 0
- bl sub_80729D8
-_080A4AD2:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4A98
-
- thumb_func_start sub_80A4ADC
-sub_80A4ADC: @ 80A4ADC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A4B0C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A4AFA
- movs r0, 0
- bl sub_80A7528
-_080A4AFA:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080A4B10
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B0C: .4byte gTasks
-_080A4B10: .4byte gUnknown_0203855C
- thumb_func_end sub_80A4ADC
-
- thumb_func_start sub_80A4B14
-sub_80A4B14: @ 80A4B14
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080A4B50
- ldr r1, _080A4B54
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 2
- adds r1, r2
- lsrs r0, 24
- ldrb r2, [r1, 0x1]
- adds r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0
- bl MoveMenuCursor
- bl sub_80A73C0
- bl sub_80A763C
- adds r0, r4, 0
- bl sub_80A4ADC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B50: .4byte gUnknown_03005D10
-_080A4B54: .4byte gUnknown_02038559
- thumb_func_end sub_80A4B14
-
- thumb_func_start sub_80A4B58
-sub_80A4B58: @ 80A4B58
- push {r4,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- asrs r0, 24
- bl MoveMenuCursor
- ldr r2, _080A4B88
- ldr r1, _080A4B8C
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 2
- adds r1, r2
- strb r0, [r1]
- bl sub_80A73C0
- adds r0, r4, 0
- bl sub_80A4ADC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B88: .4byte gUnknown_03005D10
-_080A4B8C: .4byte gUnknown_02038559
- thumb_func_end sub_80A4B58
-
- thumb_func_start sub_80A4B90
-sub_80A4B90: @ 80A4B90
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080A4BBC
- ldr r0, _080A4BB4
- cmp r4, r0
- beq _080A4BAE
- adds r0, 0xD
- cmp r4, r0
- bne _080A4BBC
-_080A4BAE:
- ldr r0, _080A4BB8
- b _080A4BE6
- .align 2, 0
-_080A4BB4: .4byte 0x00000103
-_080A4BB8: .4byte gOtherText_Walk
-_080A4BBC:
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A4BE4
- ldr r1, _080A4BDC
- ldr r0, _080A4BE0
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- b _080A4BE6
- .align 2, 0
-_080A4BDC: .4byte gUnknown_083C1640
-_080A4BE0: .4byte gUnknown_03000704
-_080A4BE4:
- ldr r0, _080A4BEC
-_080A4BE6:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A4BEC: .4byte gOtherText_Check
- thumb_func_end sub_80A4B90
-
- thumb_func_start sub_80A4BF0
-sub_80A4BF0: @ 80A4BF0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r7, _080A4C38
- ldrb r4, [r7]
- cmp r4, 0x4
- beq _080A4C00
- b _080A4CF8
-_080A4C00:
- movs r0, 0
- movs r1, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80A4008
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4C40
- ldr r0, _080A4C3C
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A4C40
- movs r0, 0x1
- movs r1, 0
- bl sub_80A7834
- b _080A4CA0
- .align 2, 0
-_080A4C38: .4byte gUnknown_02038564
-_080A4C3C: .4byte gUnknown_03000701
-_080A4C40:
- movs r6, 0
- ldr r0, _080A4C5C
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080A4CA0
- ldr r4, _080A4C60
-_080A4C4C:
- cmp r6, 0
- bne _080A4C68
- ldr r0, _080A4C64
- ldrh r0, [r0]
- bl sub_80A4B90
- adds r3, r0, 0
- b _080A4C76
- .align 2, 0
-_080A4C5C: .4byte gUnknown_02038564
-_080A4C60: .4byte gUnknown_083C1640
-_080A4C64: .4byte word_203855E
-_080A4C68:
- ldr r0, _080A4CC4
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r4
- ldr r3, [r0]
-_080A4C76:
- lsrs r0, r6, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x1
- ands r2, r6
- lsls r2, 1
- adds r2, 0x8
- adds r0, r3, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A4CC8
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080A4C4C
-_080A4CA0:
- ldr r0, _080A4CCC
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A4CD4
- ldr r0, _080A4CC8
- ldrb r3, [r0]
- ldr r0, _080A4CD0
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x8
- bl InitMenu
- b _080A4CEA
- .align 2, 0
-_080A4CC4: .4byte gUnknown_03000704
-_080A4CC8: .4byte gUnknown_02038564
-_080A4CCC: .4byte gUnknown_03000701
-_080A4CD0: .4byte gUnknown_03000700
-_080A4CD4:
- ldr r0, _080A4CF4
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x8
- bl InitMenu
-_080A4CEA:
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A4D8A
- .align 2, 0
-_080A4CF4: .4byte gUnknown_02038564
-_080A4CF8:
- movs r0, 0
- movs r1, 0x5
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- movs r0, 0x6
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x6
- movs r3, 0xC
- bl sub_80A4008
- movs r6, 0
- ldrb r7, [r7]
- cmp r6, r7
- bcs _080A4D6E
- ldr r7, _080A4D98
-_080A4D1E:
- ldr r0, _080A4D9C
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r7
- ldr r5, [r0]
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 1
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 25
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A4DA0
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080A4D1E
-_080A4D6E:
- ldr r0, _080A4DA0
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x6
- bl InitMenu
- movs r0, 0x2F
- bl sub_8072DCC
-_080A4D8A:
- movs r0, 0x2
- bl sub_80A7528
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D98: .4byte gUnknown_083C1640
-_080A4D9C: .4byte gUnknown_03000704
-_080A4DA0: .4byte gUnknown_02038564
- thumb_func_end sub_80A4BF0
-
- thumb_func_start sub_80A4DA4
-sub_80A4DA4: @ 80A4DA4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_80A73FC
- movs r0, 0x6
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0xD
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0x5
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- bl sub_80A7590
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4DA4
-
- thumb_func_start sub_80A4DD8
-sub_80A4DD8: @ 80A4DD8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- adds r4, r1, 0
- adds r1, r2, 0
- adds r6, r3, 0
- ldr r5, [sp, 0x20]
- ldr r2, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r3, _080A4E84
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r0, 0x1
- strh r0, [r2, 0xA]
- adds r0, r4, 0x2
- mov r9, r0
- strh r0, [r2, 0xC]
- adds r0, r1, 0x1
- mov r8, r0
- strh r0, [r2, 0xE]
- adds r2, r4, r6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, r5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl MenuDrawTextWindow
- ldr r0, _080A4E88
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- subs r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp]
- adds r1, r4, 0
- mov r2, r8
- adds r3, r6, 0
- bl sub_80A4008
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- mov r0, r10
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- mov r3, r8
- bl sub_80A418C
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E84: .4byte gTasks
-_080A4E88: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A4DD8
-
- thumb_func_start sub_80A4E8C
-sub_80A4E8C: @ 80A4E8C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x2
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r0, 0x2
- bl sub_80F996C
- movs r0, 0x3
- bl sub_80F996C
- ldr r5, _080A4F04
- lsls r4, 24
- asrs r4, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A3B04
- ldr r0, _080A4F08
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80A3AC0
- bl sub_80A3770
- bl sub_80A7C64
- adds r0, r6, 0
- bl sub_80A7C20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4F04: .4byte gBG2TilemapBuffer
-_080A4F08: .4byte gUnknown_02038559
- thumb_func_end sub_80A4E8C
-
- thumb_func_start sub_80A4F0C
-sub_80A4F0C: @ 80A4F0C
- push {r4,lr}
- ldr r0, _080A4F38
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4F60
- ldr r4, _080A4F3C
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x10
- beq _080A4F30
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080A4F40
-_080A4F30:
- movs r0, 0x1
- movs r1, 0x2
- b _080A4F58
- .align 2, 0
-_080A4F38: .4byte gUnknown_03000701
-_080A4F3C: .4byte gMain
-_080A4F40:
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x20
- beq _080A4F52
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4F60
-_080A4F52:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x1
-_080A4F58:
- bl sub_80A4E8C
- movs r0, 0x1
- b _080A4F62
-_080A4F60:
- movs r0, 0
-_080A4F62:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4F0C
-
- thumb_func_start sub_80A4F68
-sub_80A4F68: @ 80A4F68
- push {lr}
- bl sub_80A4F0C
- pop {r0}
- bx r0
- thumb_func_end sub_80A4F68
-
- thumb_func_start sub_80A4F74
-sub_80A4F74: @ 80A4F74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- movs r5, 0
- ldr r0, _080A4FAC
- ldrh r0, [r0, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A4FE8
- ldr r1, _080A4FB0
- ldr r0, _080A4FB4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A4FB8
- movs r0, 0x1
- negs r0, r0
- adds r1, r4, 0
- bl sub_80A4B58
- b _080A4FC8
- .align 2, 0
-_080A4FAC: .4byte gMain
-_080A4FB0: .4byte gUnknown_03005D10
-_080A4FB4: .4byte gUnknown_02038559
-_080A4FB8:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _080A4FC8
- movs r0, 0x1
- negs r0, r0
- adds r1, r4, 0
- bl sub_80A4B14
-_080A4FC8:
- ldr r0, _080A4FE0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A50AE
- ldr r1, _080A4FE4
- ldrh r0, [r1, 0x32]
- cmp r0, 0x5
- bne _080A50AE
- movs r0, 0xB
- strh r0, [r1, 0x32]
- b _080A50AE
- .align 2, 0
-_080A4FE0: .4byte gLinkOpen
-_080A4FE4: .4byte gMain
-_080A4FE8:
- cmp r1, 0x80
- bne _080A5088
- ldr r0, _080A5020
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A502C
- ldr r1, _080A5024
- ldr r0, _080A5028
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bne _080A504E
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _080A5068
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B14
- b _080A5068
- .align 2, 0
-_080A5020: .4byte gUnknown_03000701
-_080A5024: .4byte gUnknown_03005D10
-_080A5028: .4byte gUnknown_02038559
-_080A502C:
- ldr r1, _080A5058
- ldr r0, _080A505C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0x1]
- ldrb r3, [r2]
- adds r1, r3
- ldrb r0, [r2, 0x2]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5068
- ldrb r2, [r2, 0x3]
- cmp r3, r2
- beq _080A5060
-_080A504E:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B58
- b _080A5068
- .align 2, 0
-_080A5058: .4byte gUnknown_03005D10
-_080A505C: .4byte gUnknown_02038559
-_080A5060:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B14
-_080A5068:
- movs r5, 0x1
- ldr r0, _080A5080
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A50C0
- ldr r1, _080A5084
- ldrh r0, [r1, 0x32]
- cmp r0, 0x5
- bne _080A50C0
- movs r0, 0xB
- strh r0, [r1, 0x32]
- b _080A50C0
- .align 2, 0
-_080A5080: .4byte gLinkOpen
-_080A5084: .4byte gMain
-_080A5088:
- ldr r0, _080A50B4
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A50BC
- bl sub_80A4F0C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A50BC
- bl sub_80A73F0
- ldr r0, _080A50B8
- str r0, [r4]
-_080A50AE:
- movs r5, 0x1
- b _080A50C0
- .align 2, 0
-_080A50B4: .4byte gTasks
-_080A50B8: .4byte sub_80A4F68
-_080A50BC:
- bl sub_80A73C0
-_080A50C0:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4F74
-
- thumb_func_start sub_80A50C8
-sub_80A50C8: @ 80A50C8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A5148
- adds r5, r0, r1
- ldr r0, _080A514C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080A50E6
- b _080A52BC
-_080A50E6:
- adds r0, r4, 0
- bl sub_80A4F74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A50F6
- b _080A526A
-_080A50F6:
- ldr r2, _080A5150
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080A5190
- ldr r3, _080A5154
- ldrb r0, [r3]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A5190
- ldr r0, _080A5158
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _080A5190
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5160
- ldr r1, _080A515C
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A5138
- b _080A526A
-_080A5138:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A3F50
- b _080A526A
- .align 2, 0
-_080A5148: .4byte gUnknown_03004B28
-_080A514C: .4byte gPaletteFade
-_080A5150: .4byte gMain
-_080A5154: .4byte gUnknown_02038559
-_080A5158: .4byte gUnknown_03000701
-_080A515C: .4byte gUnknown_03005D10
-_080A5160:
- ldr r1, _080A5184
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- beq _080A5188
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A3E90
- b _080A526A
- .align 2, 0
-_080A5184: .4byte gUnknown_03005D10
-_080A5188:
- adds r0, r4, 0
- bl sub_80A3EF4
- b _080A526A
-_080A5190:
- ldrh r2, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080A5272
- ldr r7, _080A51D4
- ldr r6, _080A51D8
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A51F0
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- cmp r1, 0
- bne _080A51E8
- ldr r0, _080A51DC
- strh r1, [r0]
- ldr r1, _080A51E0
- ldr r0, _080A51E4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A526A
- .align 2, 0
-_080A51D4: .4byte gUnknown_03005D10
-_080A51D8: .4byte gUnknown_02038559
-_080A51DC: .4byte word_203855E
-_080A51E0: .4byte gUnknown_083C16BC
-_080A51E4: .4byte gUnknown_03000701
-_080A51E8:
- adds r0, r4, 0
- bl sub_80A3EF4
- b _080A526A
-_080A51F0:
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5264
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080A5250
- movs r1, 0
- ldrsb r1, [r6, r1]
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strb r0, [r2]
- ldr r3, _080A5254
- ldrb r0, [r2]
- ldr r1, _080A5258
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- ldr r1, _080A525C
- ldr r0, _080A5260
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- movs r0, 0x2
- bl sub_80F98A4
- movs r0, 0x3
- bl sub_80F98A4
- bl sub_80A797C
- b _080A526A
- .align 2, 0
-_080A5250: .4byte gUnknown_02038560
-_080A5254: .4byte word_203855E
-_080A5258: .4byte gUnknown_03005D24
-_080A525C: .4byte gUnknown_083C16BC
-_080A5260: .4byte gUnknown_03000701
-_080A5264:
- adds r0, r4, 0
- bl sub_80A3E90
-_080A526A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _080A52BC
-_080A5272:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080A52BC
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- cmp r1, 0
- bne _080A52B0
- ldr r2, _080A52A4
- ldrb r0, [r2]
- cmp r0, 0x5
- beq _080A52B6
- ldr r0, _080A52A8
- strh r1, [r0]
- ldr r1, _080A52AC
- ldrb r0, [r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A52B6
- .align 2, 0
-_080A52A4: .4byte gUnknown_03000701
-_080A52A8: .4byte word_203855E
-_080A52AC: .4byte gUnknown_083C16BC
-_080A52B0:
- adds r0, r4, 0
- bl sub_80A3EF4
-_080A52B6:
- adds r0, r4, 0
- bl sub_808B5B4
-_080A52BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A50C8
-
- thumb_func_start sub_80A52C4
-sub_80A52C4: @ 80A52C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- adds r4, r3, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A52F4
- adds r1, r0
- ldr r0, _080A52F8
- ldrh r0, [r0, 0x30]
- movs r2, 0xF0
- ands r2, r0
- cmp r2, 0x40
- bne _080A52FC
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, r3
- beq _080A533E
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- b _080A5340
- .align 2, 0
-_080A52F4: .4byte gUnknown_03004B28
-_080A52F8: .4byte gMain
-_080A52FC:
- cmp r2, 0x80
- bne _080A5312
- ldrh r2, [r1, 0x2]
- movs r4, 0x2
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- beq _080A530E
- subs r0, r2, 0x1
- b _080A5340
-_080A530E:
- strh r3, [r1, 0x2]
- b _080A5342
-_080A5312:
- cmp r2, 0x10
- bne _080A532A
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- adds r0, 0xA
- cmp r0, r3
- bge _080A5326
- ldrh r0, [r1, 0x2]
- adds r0, 0xA
- b _080A5340
-_080A5326:
- strh r4, [r1, 0x2]
- b _080A5342
-_080A532A:
- cmp r2, 0x20
- bne _080A5346
- ldrh r2, [r1, 0x2]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0xA
- ble _080A533E
- adds r0, r2, 0
- subs r0, 0xA
- b _080A5340
-_080A533E:
- movs r0, 0x1
-_080A5340:
- strh r0, [r1, 0x2]
-_080A5342:
- movs r0, 0x1
- b _080A5348
-_080A5346:
- movs r0, 0
-_080A5348:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A52C4
-
- thumb_func_start sub_80A5350
-sub_80A5350: @ 80A5350
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080A539C
- adds r4, r1, r2
- ldr r1, _080A53A0
- ldrb r1, [r1]
- ldr r2, _080A53A4
- ldr r2, [r2]
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_80A52C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A53C0
- ldr r0, _080A53A8
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A53AC
- ldrh r0, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- bl sub_80A418C
- b _080A53BC
- .align 2, 0
-_080A539C: .4byte gUnknown_03004B28
-_080A53A0: .4byte gUnknown_02038560
-_080A53A4: .4byte gUnknown_03005D24
-_080A53A8: .4byte gUnknown_02038559
-_080A53AC:
- ldrh r0, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x1
- bl sub_80A418C
-_080A53BC:
- movs r0, 0x1
- b _080A53C2
-_080A53C0:
- movs r0, 0
-_080A53C2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A5350
-
- thumb_func_start sub_80A53CC
-sub_80A53CC: @ 80A53CC
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A53EA
- bl sub_80A3770
- ldr r0, _080A53F0
- movs r1, 0
- bl CreateTask
- ldr r1, _080A53F4
- strb r0, [r1]
-_080A53EA:
- pop {r0}
- bx r0
- .align 2, 0
-_080A53F0: .4byte sub_80A50C8
-_080A53F4: .4byte gUnknown_02038563
- thumb_func_end sub_80A53CC
-
- thumb_func_start sub_80A53F8
-sub_80A53F8: @ 80A53F8
- push {lr}
- ldr r0, _080A540C
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080A5410
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A540C: .4byte gUnknown_03000701
-_080A5410: .4byte sub_80A53CC
- thumb_func_end sub_80A53F8
-
- thumb_func_start sub_80A5414
-sub_80A5414: @ 80A5414
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl rfu_lacks_rfufunc
- cmp r0, 0
- bne _080A5426
- b _080A5552
-_080A5426:
- ldr r2, _080A5460
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A546C
- ldr r4, _080A5464
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5440
- b _080A5552
-_080A5440:
- ldrb r1, [r4]
- ldr r0, _080A5468
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0x8
- bne _080A5452
- b _080A5552
-_080A5452:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A54EE
- .align 2, 0
-_080A5460: .4byte gMain
-_080A5464: .4byte gUnknown_03000700
-_080A5468: .4byte gUnknown_03000704
-_080A546C:
- cmp r1, 0x80
- bne _080A549C
- ldr r4, _080A5494
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5552
- ldrb r1, [r4]
- ldr r0, _080A5498
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080A54EE
- .align 2, 0
-_080A5494: .4byte gUnknown_03000700
-_080A5498: .4byte gUnknown_03000704
-_080A549C:
- cmp r1, 0x20
- bne _080A54CC
- ldr r4, _080A54C4
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080A5552
- adds r1, r0, 0
- ldr r0, _080A54C8
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x2
- ldrb r0, [r1]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- negs r0, r0
- b _080A54EE
- .align 2, 0
-_080A54C4: .4byte gUnknown_03000700
-_080A54C8: .4byte gUnknown_03000704
-_080A54CC:
- cmp r1, 0x10
- bne _080A5500
- ldr r4, _080A54F8
- ldrb r0, [r4]
- cmp r0, 0x1
- bhi _080A5552
- adds r1, r0, 0
- ldr r0, _080A54FC
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
-_080A54EE:
- bl MoveMenuCursor3
- strb r0, [r4]
- b _080A5552
- .align 2, 0
-_080A54F8: .4byte gUnknown_03000700
-_080A54FC: .4byte gUnknown_03000704
-_080A5500:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5590
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5552
- ldr r1, _080A5570
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r1, _080A5574
- ldr r0, _080A5578
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A557C
- bl sub_80A4DA4
- ldr r1, _080A5580
- ldr r0, _080A5584
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
-_080A5552:
- cmp r5, 0
- bne _080A55FA
- ldr r0, _080A5588
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A55E0
- ldr r0, _080A558C
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A55D4
- movs r0, 0xC
- bl sub_8072DDC
- b _080A55FA
- .align 2, 0
-_080A5570: .4byte gTasks
-_080A5574: .4byte gUnknown_03005D10
-_080A5578: .4byte gUnknown_02038559
-_080A557C: .4byte gBG1TilemapBuffer
-_080A5580: .4byte gUnknown_083C1640
-_080A5584: .4byte gUnknown_03000704
-_080A5588: .4byte gUnknown_03000701
-_080A558C: .4byte gUnknown_03000700
-_080A5590:
- ldr r1, _080A55C0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r0, _080A55C4
- bl sub_80A4DA4
- ldr r1, _080A55C8
- ldr r0, _080A55CC
- ldrb r2, [r0]
- ldr r0, _080A55D0
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
- b _080A5552
- .align 2, 0
-_080A55C0: .4byte gTasks
-_080A55C4: .4byte gBG1TilemapBuffer
-_080A55C8: .4byte gUnknown_083C1640
-_080A55CC: .4byte gUnknown_03000700
-_080A55D0: .4byte gUnknown_03000704
-_080A55D4:
- cmp r0, 0x1
- bls _080A55E8
- movs r0, 0x30
- bl sub_8072DCC
- b _080A55FA
-_080A55E0:
- ldr r0, _080A55F0
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _080A55F4
-_080A55E8:
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A55FA
- .align 2, 0
-_080A55F0: .4byte gUnknown_03000700
-_080A55F4:
- movs r0, 0x30
- bl sub_8072DCC
-_080A55FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5414
-
- thumb_func_start sub_80A5600
-sub_80A5600: @ 80A5600
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r2, _080A563C
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A5648
- ldr r4, _080A5640
- ldrb r0, [r4]
- cmp r0, 0
- bne _080A561E
- b _080A5736
-_080A561E:
- adds r1, r0, 0
- ldr r0, _080A5644
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0x8
- bne _080A5630
- b _080A5736
-_080A5630:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A56D2
- .align 2, 0
-_080A563C: .4byte gMain
-_080A5640: .4byte gUnknown_03000700
-_080A5644: .4byte gUnknown_03000704
-_080A5648:
- cmp r1, 0x80
- bne _080A5680
- ldr r4, _080A5674
- ldrb r1, [r4]
- ldr r0, _080A5678
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5736
- cmp r1, 0x2
- beq _080A5736
- ldr r0, _080A567C
- ldr r0, [r0]
- adds r0, r1, r0
- ldrb r0, [r0, 0x1]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080A56D2
- .align 2, 0
-_080A5674: .4byte gUnknown_03000700
-_080A5678: .4byte gUnknown_02038564
-_080A567C: .4byte gUnknown_03000704
-_080A5680:
- cmp r1, 0x20
- bne _080A56B0
- ldr r4, _080A56A8
- ldrb r0, [r4]
- cmp r0, 0x2
- bls _080A5736
- adds r1, r0, 0
- ldr r0, _080A56AC
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x3
- ldrb r0, [r1]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- negs r0, r0
- b _080A56D2
- .align 2, 0
-_080A56A8: .4byte gUnknown_03000700
-_080A56AC: .4byte gUnknown_03000704
-_080A56B0:
- cmp r1, 0x10
- bne _080A56E4
- ldr r4, _080A56DC
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _080A5736
- adds r1, r0, 0
- ldr r0, _080A56E0
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
-_080A56D2:
- bl MoveMenuCursor3
- strb r0, [r4]
- b _080A5736
- .align 2, 0
-_080A56DC: .4byte gUnknown_03000700
-_080A56E0: .4byte gUnknown_03000704
-_080A56E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5768
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5736
- ldr r1, _080A574C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r1, _080A5750
- ldr r0, _080A5754
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A5758
- bl sub_80A4DA4
- ldr r1, _080A575C
- ldr r0, _080A5760
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
-_080A5736:
- cmp r5, 0
- bne _080A57BE
- ldr r0, _080A5764
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A57AC
- movs r0, 0xC
- bl sub_8072DDC
- b _080A57BE
- .align 2, 0
-_080A574C: .4byte gTasks
-_080A5750: .4byte gUnknown_03005D10
-_080A5754: .4byte gUnknown_02038559
-_080A5758: .4byte gBG1TilemapBuffer
-_080A575C: .4byte gUnknown_083C1640
-_080A5760: .4byte gUnknown_03000704
-_080A5764: .4byte gUnknown_03000700
-_080A5768:
- ldr r1, _080A5798
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r0, _080A579C
- bl sub_80A4DA4
- ldr r1, _080A57A0
- ldr r0, _080A57A4
- ldrb r2, [r0]
- ldr r0, _080A57A8
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
- b _080A5736
- .align 2, 0
-_080A5798: .4byte gTasks
-_080A579C: .4byte gBG1TilemapBuffer
-_080A57A0: .4byte gUnknown_083C1640
-_080A57A4: .4byte gUnknown_03000700
-_080A57A8: .4byte gUnknown_03000704
-_080A57AC:
- cmp r0, 0x2
- bhi _080A57B8
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A57BE
-_080A57B8:
- movs r0, 0x30
- bl sub_8072DCC
-_080A57BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5600
-
- thumb_func_start sub_80A57C4
-sub_80A57C4: @ 80A57C4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r5, _080A57EC
- ldr r0, _080A57F0
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r4, _080A57F4
- adds r1, r4
- str r1, [r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bne _080A57FC
- ldr r1, _080A57F8
- movs r0, 0x1
- strb r0, [r1]
- movs r5, 0x9
- b _080A582C
- .align 2, 0
-_080A57EC: .4byte gUnknown_03000704
-_080A57F0: .4byte gUnknown_02038559
-_080A57F4: .4byte gUnknown_083C16AE
-_080A57F8: .4byte gUnknown_02038564
-_080A57FC:
- ldr r0, _080A581C
- ldrh r0, [r0]
- bl sub_80F92F4
- lsls r0, 24
- cmp r0, 0
- bne _080A5824
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
- ldr r1, _080A5820
- movs r0, 0x1
- strb r0, [r1]
- movs r5, 0x9
- b _080A582C
- .align 2, 0
-_080A581C: .4byte word_203855E
-_080A5820: .4byte gUnknown_02038564
-_080A5824:
- ldr r1, _080A5880
- movs r0, 0x2
- strb r0, [r1]
- movs r5, 0x7
-_080A582C:
- adds r6, r1, 0
- ldr r0, _080A5884
- adds r4, r5, 0x1
- ldrb r1, [r6]
- lsls r1, 25
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0x7
- adds r2, r4, 0
- movs r3, 0x6
- bl sub_80A4008
- ldrb r3, [r6]
- lsls r3, 1
- adds r3, 0x1
- adds r3, r5, r3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x6
- adds r1, r5, 0
- movs r2, 0xD
- bl MenuDrawTextWindow
- movs r0, 0
- adds r1, r5, 0
- bl sub_80A7834
- ldrb r3, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl InitMenu
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5880: .4byte gUnknown_02038564
-_080A5884: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A57C4
-
- thumb_func_start sub_80A5888
-sub_80A5888: @ 80A5888
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl rfu_lacks_rfufunc
- cmp r0, 0
- beq _080A5988
- ldr r2, _080A58B8
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A58C0
- ldr r4, _080A58BC
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A5988
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A58E2
- .align 2, 0
-_080A58B8: .4byte gMain
-_080A58BC: .4byte gUnknown_03000700
-_080A58C0:
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080A58F4
- ldr r4, _080A58EC
- ldrb r1, [r4]
- ldr r0, _080A58F0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5988
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080A58E2:
- bl MoveMenuCursor
- strb r0, [r4]
- b _080A5988
- .align 2, 0
-_080A58EC: .4byte gUnknown_03000700
-_080A58F0: .4byte gUnknown_02038564
-_080A58F4:
- ldrh r1, [r2, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A5964
- ldr r1, _080A5948
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x1C]
- ldr r1, _080A594C
- ldr r0, _080A5950
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A5954
- bl sub_80A4DA4
- ldr r1, _080A5958
- ldr r0, _080A595C
- ldrb r2, [r0]
- ldr r0, _080A5960
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A5988
- .align 2, 0
-_080A5948: .4byte gTasks
-_080A594C: .4byte gUnknown_03005D10
-_080A5950: .4byte gUnknown_02038559
-_080A5954: .4byte gBG1TilemapBuffer
-_080A5958: .4byte gUnknown_083C1640
-_080A595C: .4byte gUnknown_03000700
-_080A5960: .4byte gUnknown_03000704
-_080A5964:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5988
- ldr r1, _080A5990
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r0, _080A5994
- bl sub_80A4DA4
- ldr r0, _080A5998
- ldr r1, [r0, 0x14]
- adds r0, r5, 0
- bl _call_via_r1
-_080A5988:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5990: .4byte gTasks
-_080A5994: .4byte gBG1TilemapBuffer
-_080A5998: .4byte gUnknown_083C1640
- thumb_func_end sub_80A5888
-
- thumb_func_start sub_80A599C
-sub_80A599C: @ 80A599C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A59C4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A59C8
- lsrs r2, r3, 16
- movs r4, 0
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- ldr r1, _080A59CC
- strb r4, [r1]
- bl sub_80A5AE4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59C4: .4byte gTasks
-_080A59C8: .4byte sub_805469C
-_080A59CC: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A599C
-
- thumb_func_start sub_80A59D0
-sub_80A59D0: @ 80A59D0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A5A3C
- movs r0, 0
- strb r0, [r1]
- ldr r7, _080A5A40
- ldrb r0, [r7]
- cmp r0, 0x5
- bne _080A59E8
- movs r0, 0x1
- strb r0, [r1]
-_080A59E8:
- ldr r1, _080A5A44
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r6, r0, r1
- ldr r3, _080A5A48
- ldr r2, _080A5A4C
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r6, 0x1C]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5A54
- ldrb r0, [r7]
- cmp r0, 0x5
- beq _080A5A54
- bl sub_80A57C4
- ldr r0, _080A5A50
- str r0, [r6]
- b _080A5A9C
- .align 2, 0
-_080A5A3C: .4byte gUnknown_03000700
-_080A5A40: .4byte gUnknown_03000701
-_080A5A44: .4byte gTasks
-_080A5A48: .4byte gUnknown_03005D10
-_080A5A4C: .4byte gUnknown_02038559
-_080A5A50: .4byte sub_80A5888
-_080A5A54:
- ldr r0, _080A5A7C
- bl sub_80A4BF0
- ldr r0, _080A5A80
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A5A6E
- ldr r0, _080A5A84
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A5A90
-_080A5A6E:
- ldr r0, _080A5A88
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A5A8C
- b _080A5A9A
- .align 2, 0
-_080A5A7C: .4byte gBG1TilemapBuffer
-_080A5A80: .4byte gUnknown_02038559
-_080A5A84: .4byte gUnknown_03000701
-_080A5A88: .4byte gTasks
-_080A5A8C: .4byte sub_80A5414
-_080A5A90:
- ldr r0, _080A5AA4
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A5AA8
-_080A5A9A:
- str r0, [r1]
-_080A5A9C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5AA4: .4byte gTasks
-_080A5AA8: .4byte sub_80A5600
- thumb_func_end sub_80A59D0
-
- thumb_func_start sub_80A5AAC
-sub_80A5AAC: @ 80A5AAC
- 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, _080A5ADC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5AE0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ADC: .4byte gTasks
-_080A5AE0: .4byte sub_80A5B00
- thumb_func_end sub_80A5AAC
-
- thumb_func_start sub_80A5AE4
-sub_80A5AE4: @ 80A5AE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A5AAC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5AE4
-
- thumb_func_start sub_80A5B00
-sub_80A5B00: @ 80A5B00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A5B38
- adds r2, r0, r1
- ldr r0, _080A5B3C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A5B32
- ldrh r0, [r2, 0x10]
- lsls r0, 16
- ldrh r1, [r2, 0x12]
- orrs r0, r1
- bl SetMainCallback2
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080A5B32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5B38: .4byte gUnknown_03004B28
-_080A5B3C: .4byte gPaletteFade
- thumb_func_end sub_80A5B00
-
- thumb_func_start sub_80A5B40
-sub_80A5B40: @ 80A5B40
- push {lr}
-_080A5B42:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5B68
- bl ResetTasks
- ldr r0, _080A5B60
- movs r1, 0
- bl CreateTask
- ldr r1, _080A5B64
- strb r0, [r1]
- b _080A5B74
- .align 2, 0
-_080A5B60: .4byte sub_80A50C8
-_080A5B64: .4byte gUnknown_02038563
-_080A5B68:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5B42
-_080A5B74:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B40
-
- thumb_func_start sub_80A5B78
-sub_80A5B78: @ 80A5B78
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080A5BB0
- ldrh r0, [r5]
- bl itemid_get_overworld_function
- cmp r0, 0
- beq _080A5BF2
- movs r0, 0x5
- bl PlaySE
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _080A5BB4
- ldrh r0, [r5]
- bl itemid_get_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5BB4
- adds r0, r4, 0
- bl sub_80A5BF8
- b _080A5BF2
- .align 2, 0
-_080A5BB0: .4byte word_203855E
-_080A5BB4:
- ldr r1, _080A5BE0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r0, _080A5BE4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- beq _080A5BEC
- ldr r0, _080A5BE8
- ldrh r0, [r0]
- bl itemid_get_overworld_function
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
- b _080A5BF2
- .align 2, 0
-_080A5BE0: .4byte gTasks
-_080A5BE4: .4byte gUnknown_02038559
-_080A5BE8: .4byte word_203855E
-_080A5BEC:
- adds r0, r4, 0
- bl sub_80C9C7C
-_080A5BF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B78
-
- thumb_func_start sub_80A5BF8
-sub_80A5BF8: @ 80A5BF8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A5C1C
- ldr r2, _080A5C20
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5C1C: .4byte gOtherText_NoPokemon
-_080A5C20: .4byte sub_80A5C48
- thumb_func_end sub_80A5BF8
-
- thumb_func_start sub_80A5C24
-sub_80A5C24: @ 80A5C24
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5C24
-
- thumb_func_start sub_80A5C48
-sub_80A5C48: @ 80A5C48
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A5C90
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A5C94
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5C98
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5C90: .4byte gBG1TilemapBuffer
-_080A5C94: .4byte gTasks
-_080A5C98: .4byte sub_80A5C24
- thumb_func_end sub_80A5C48
-
- thumb_func_start sub_80A5C9C
-sub_80A5C9C: @ 80A5C9C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5C9C
-
- thumb_func_start sub_80A5CC4
-sub_80A5CC4: @ 80A5CC4
- push {lr}
- bl pal_fill_black
- ldr r0, _080A5CD8
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
- thumb_func_end sub_80A5CC4
-
- thumb_func_start Task_CallItemUseOnFieldCallback
-Task_CallItemUseOnFieldCallback: @ 80A5CDC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5CF8
- ldr r0, _080A5D00
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080A5CF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D00: .4byte gUnknown_03005D00
- thumb_func_end Task_CallItemUseOnFieldCallback
-
- thumb_func_start sub_80A5D04
-sub_80A5D04: @ 80A5D04
- push {lr}
-_080A5D06:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5D28
- ldr r0, _080A5D20
- movs r1, 0
- bl CreateTask
- ldr r1, _080A5D24
- strb r0, [r1]
- b _080A5D34
- .align 2, 0
-_080A5D20: .4byte sub_80A50C8
-_080A5D24: .4byte gUnknown_02038563
-_080A5D28:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5D06
-_080A5D34:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5D04
-
- thumb_func_start sub_80A5D38
-sub_80A5D38: @ 80A5D38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A5D70
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r0, _080A5D74
- bl sub_80A4DA4
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D70: .4byte gTasks
-_080A5D74: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A5D38
-
- thumb_func_start sub_80A5D78
-sub_80A5D78: @ 80A5D78
- push {lr}
- sub sp, 0x4
- ldr r0, _080A5D9C
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A4008
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D9C: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A5D78
-
- thumb_func_start sub_80A5DA0
-sub_80A5DA0: @ 80A5DA0
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _080A5DC4
- bl itemid_copy_name
- cmp r4, 0x63
- bls _080A5DCC
- ldr r0, _080A5DC8
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- b _080A5DD8
- .align 2, 0
-_080A5DC4: .4byte gStringVar1
-_080A5DC8: .4byte gStringVar2
-_080A5DCC:
- ldr r0, _080A5DF0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A5DD8:
- ldr r0, _080A5DF4
- bl sub_80A4DA4
- movs r0, 0x5
- bl sub_80A7528
- bl sub_80A5D78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5DF0: .4byte gStringVar2
-_080A5DF4: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A5DA0
-
- thumb_func_start sub_80A5DF8
-sub_80A5DF8: @ 80A5DF8
- push {lr}
- ldr r0, _080A5E18
- bl sub_80A4DA4
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xB
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0x4
- bl sub_80A7528
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E18: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A5DF8
-
- thumb_func_start sub_80A5E1C
-sub_80A5E1C: @ 80A5E1C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A5E58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5E36
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5E50
-_080A5E36:
- ldr r0, _080A5E5C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x1C]
- adds r0, r4, 0
- bl sub_80A41D4
- adds r0, r4, 0
- bl sub_80A5D38
-_080A5E50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E58: .4byte gMain
-_080A5E5C: .4byte gTasks
- thumb_func_end sub_80A5E1C
-
- thumb_func_start sub_80A5E60
-sub_80A5E60: @ 80A5E60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A5DF8
- adds r0, r4, 0
- bl sub_80A3D5C
- ldr r1, _080A5E88
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5E8C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E88: .4byte gTasks
-_080A5E8C: .4byte sub_80A5E1C
- thumb_func_end sub_80A5E60
-
- thumb_func_start sub_80A5E90
-sub_80A5E90: @ 80A5E90
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A5D38
- pop {r0}
- bx r0
- thumb_func_end sub_80A5E90
-
- thumb_func_start sub_80A5EA0
-sub_80A5EA0: @ 80A5EA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A5F0C
- ldr r0, _080A5EE8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A5EF8
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A5EEC
- ldrh r0, [r0]
- ldr r2, _080A5EF0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl sub_80A5DA0
- ldr r1, _080A5EF4
- adds r0, r4, 0
- bl sub_80F914C
- b _080A5F0C
- .align 2, 0
-_080A5EE8: .4byte gMain
-_080A5EEC: .4byte word_203855E
-_080A5EF0: .4byte gTasks
-_080A5EF4: .4byte gUnknown_083C16F4
-_080A5EF8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5F0C
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_80A5D38
-_080A5F0C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5EA0
-
- thumb_func_start sub_80A5F14
-sub_80A5F14: @ 80A5F14
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080A5F58
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5F5C
- str r1, [r0]
- movs r0, 0x3
- bl sub_80A7528
- ldr r0, _080A5F60
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A5F64
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x9
- movs r3, 0x7
- bl sub_80A4DD8
- b _080A5F78
- .align 2, 0
-_080A5F58: .4byte gTasks
-_080A5F5C: .4byte sub_80A5EA0
-_080A5F60: .4byte gUnknown_02038559
-_080A5F64:
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x9
- movs r3, 0x6
- bl sub_80A4DD8
-_080A5F78:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F14
-
- thumb_func_start sub_80A5F80
-sub_80A5F80: @ 80A5F80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F80
-
- thumb_func_start sub_80A5FAC
-sub_80A5FAC: @ 80A5FAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A5FD0
- ldr r1, _080A5FD4
- adds r4, r0, r1
- ldr r5, _080A5FD8
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080A5FDC
- bl sub_80A40D0
- movs r0, 0
- b _080A5FE2
- .align 2, 0
-_080A5FD0: .4byte gSaveBlock1
-_080A5FD4: .4byte 0x00000496
-_080A5FD8: .4byte word_203855E
-_080A5FDC:
- bl sub_80A413C
- ldrh r0, [r5]
-_080A5FE2:
- strh r0, [r4]
- movs r0, 0
- bl sub_80A7528
- adds r0, r6, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r6, 0
- bl sub_80A37C0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5FAC
-
- thumb_func_start sub_80A6000
-sub_80A6000: @ 80A6000
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6000
-
- thumb_func_start sub_80A6024
-sub_80A6024: @ 80A6024
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A606C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A6062
- ldr r0, _080A6070
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A6074
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6078
- str r1, [r0]
-_080A6062:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A606C: .4byte gMain
-_080A6070: .4byte gBG1TilemapBuffer
-_080A6074: .4byte gTasks
-_080A6078: .4byte sub_80A6000
- thumb_func_end sub_80A6024
-
- thumb_func_start DisplayCannotDismountBikeMessage
-DisplayCannotDismountBikeMessage: @ 80A607C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A73FC
- ldr r0, _080A60B4
- ldrh r0, [r0]
- ldr r1, _080A60B8
- bl itemid_copy_name
- ldr r5, _080A60BC
- ldr r1, _080A60C0
- adds r0, r5, 0
- bl StringExpandPlaceholders
- bl sub_80A7590
- ldr r2, _080A60C4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A60B4: .4byte word_203855E
-_080A60B8: .4byte gStringVar1
-_080A60BC: .4byte gStringVar4
-_080A60C0: .4byte gOtherText_CantBeHeld
-_080A60C4: .4byte sub_80A6024
- thumb_func_end DisplayCannotDismountBikeMessage
-
- thumb_func_start ItemMenu_Give
-ItemMenu_Give: @ 80A60C8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- movs r0, 0x5
- bl PlaySE
- ldr r5, _080A60FC
- ldrh r0, [r5]
- bl sub_80F931C
- lsls r0, 24
- cmp r0, 0
- bne _080A6108
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A6100
- ldr r2, _080A6104
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A616E
- .align 2, 0
-_080A60FC: .4byte word_203855E
-_080A6100: .4byte gOtherText_CantWriteMail
-_080A6104: .4byte sub_80A6024
-_080A6108:
- ldrh r0, [r5]
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A6168
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _080A6128
- adds r0, r4, 0
- bl sub_80A5BF8
- b _080A616E
-_080A6128:
- ldr r1, _080A6158
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A615C
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080A6160
- str r1, [r0]
- ldr r1, _080A6164
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080A616E
- .align 2, 0
-_080A6158: .4byte gTasks
-_080A615C: .4byte sub_808B020
-_080A6160: .4byte sub_80A5B00
-_080A6164: .4byte gUnknown_02038561
-_080A6168:
- adds r0, r6, 0
- bl DisplayCannotDismountBikeMessage
-_080A616E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ItemMenu_Give
-
- thumb_func_start sub_80A6178
-sub_80A6178: @ 80A6178
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A5AE4
- ldr r1, _080A61A0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A61A4
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A61A0: .4byte gTasks
-_080A61A4: .4byte sub_814625C
- thumb_func_end sub_80A6178
-
- thumb_func_start sub_80A61A8
-sub_80A61A8: @ 80A61A8
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A61C2
- ldr r0, _080A61C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A61CC
- strb r0, [r1]
-_080A61C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080A61C8: .4byte sub_80A50C8
-_080A61CC: .4byte gUnknown_02038563
- thumb_func_end sub_80A61A8
-
- thumb_func_start sub_80A61D0
-sub_80A61D0: @ 80A61D0
- push {lr}
- ldr r0, _080A61E4
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _080A61E8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A61E4: .4byte gUnknown_03000701
-_080A61E8: .4byte sub_80A61A8
- thumb_func_end sub_80A61D0
-
- thumb_func_start sub_80A61EC
-sub_80A61EC: @ 80A61EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A620C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6210
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A620C: .4byte gTasks
-_080A6210: .4byte sub_808A3F8
- thumb_func_end sub_80A61EC
-
- thumb_func_start sub_80A6214
-sub_80A6214: @ 80A6214
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080A6244
- ldrb r0, [r0]
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080A6248
- ldrh r0, [r4]
- bl sub_80F931C
- lsls r0, 24
- cmp r0, 0
- bne _080A6254
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A624C
- ldr r2, _080A6250
- adds r0, r5, 0
- b _080A6280
- .align 2, 0
-_080A6244: .4byte gUnknown_02038559
-_080A6248: .4byte word_203855E
-_080A624C: .4byte gOtherText_CantWriteMail
-_080A6250: .4byte sub_80A6024
-_080A6254:
- ldrh r0, [r4]
- bl sub_80F92F4
- lsls r0, 24
- cmp r0, 0
- bne _080A6298
- bl sub_80A73FC
- ldrh r0, [r4]
- ldr r1, _080A6288
- bl itemid_copy_name
- ldr r4, _080A628C
- ldr r1, _080A6290
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80A7590
- ldr r2, _080A6294
- adds r0, r5, 0
- adds r1, r4, 0
-_080A6280:
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A62D2
- .align 2, 0
-_080A6288: .4byte gStringVar1
-_080A628C: .4byte gStringVar4
-_080A6290: .4byte gOtherText_CantBeHeldHere
-_080A6294: .4byte sub_80A6024
-_080A6298:
- cmp r6, 0x5
- beq _080A62CC
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _080A62CC
- ldr r1, _080A62C4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A62C8
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r5, 0
- bl sub_80A5AAC
- b _080A62D2
- .align 2, 0
-_080A62C4: .4byte gTasks
-_080A62C8: .4byte sub_808A3F8
-_080A62CC:
- adds r0, r5, 0
- bl DisplayCannotDismountBikeMessage
-_080A62D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6214
-
- thumb_func_start sub_80A62D8
-sub_80A62D8: @ 80A62D8
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A62F2
- ldr r0, _080A62F8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A62FC
- strb r0, [r1]
-_080A62F2:
- pop {r0}
- bx r0
- .align 2, 0
-_080A62F8: .4byte sub_80A50C8
-_080A62FC: .4byte gUnknown_02038563
- thumb_func_end sub_80A62D8
-
- thumb_func_start sub_80A6300
-sub_80A6300: @ 80A6300
- push {lr}
- ldr r0, _080A6314
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, _080A6318
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6314: .4byte gUnknown_03000701
-_080A6318: .4byte sub_80A62D8
- thumb_func_end sub_80A6300
-
- thumb_func_start sub_80A631C
-sub_80A631C: @ 80A631C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6344
- ldr r1, _080A6348
- str r1, [r2]
- ldr r2, _080A634C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6350
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6344: .4byte gUnknown_0300485C
-_080A6348: .4byte sub_80B3050
-_080A634C: .4byte gTasks
-_080A6350: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A631C
-
- thumb_func_start sub_80A6354
-sub_80A6354: @ 80A6354
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80A7590
- ldr r0, _080A63C4
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r0
- ldr r4, _080A63C8
- ldr r3, _080A63CC
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r2, 0x1C]
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r4, _080A63D0
- ldrh r0, [r4]
- ldr r1, _080A63D4
- bl itemid_copy_name
- ldrh r0, [r4]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _080A63E4
- ldr r4, _080A63D8
- ldr r1, _080A63DC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A63E0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A63FA
- .align 2, 0
-_080A63C4: .4byte gTasks
-_080A63C8: .4byte gUnknown_03005D10
-_080A63CC: .4byte gUnknown_02038559
-_080A63D0: .4byte word_203855E
-_080A63D4: .4byte gStringVar2
-_080A63D8: .4byte gStringVar4
-_080A63DC: .4byte gOtherText_CantBuyThat
-_080A63E0: .4byte sub_80A6444
-_080A63E4:
- ldr r4, _080A6400
- ldr r1, _080A6404
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6408
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
-_080A63FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6400: .4byte gStringVar4
-_080A6404: .4byte gOtherText_HowManyToSell
-_080A6408: .4byte sub_80A648C
- thumb_func_end sub_80A6354
-
- thumb_func_start sub_80A640C
-sub_80A640C: @ 80A640C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A6440
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6440: .4byte gTasks
- thumb_func_end sub_80A640C
-
- thumb_func_start sub_80A6444
-sub_80A6444: @ 80A6444
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A6480
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A6484
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6488
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6480: .4byte gBG1TilemapBuffer
-_080A6484: .4byte gTasks
-_080A6488: .4byte sub_80A640C
- thumb_func_end sub_80A6444
-
- thumb_func_start sub_80A648C
-sub_80A648C: @ 80A648C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A64E8
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080A64EC
- str r0, [r4]
- ldr r0, _080A64F0
- movs r5, 0x2
- str r5, [sp]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A4008
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuDrawTextWindow
- movs r0, 0x1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0xB
- strh r0, [r4, 0xE]
- ldr r0, _080A64F4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A64F8
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xB
- bl sub_80A418C
- b _080A6506
- .align 2, 0
-_080A64E8: .4byte gTasks
-_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
-_080A64F0: .4byte gBG1TilemapBuffer
-_080A64F4: .4byte gUnknown_02038559
-_080A64F8:
- str r5, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xB
- bl sub_80A418C
-_080A6506:
- ldr r0, _080A651C
- ldrh r0, [r0]
- movs r1, 0x1
- bl BuyMenuDisplayMessage
- bl sub_80A683C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A651C: .4byte word_203855E
- thumb_func_end sub_80A648C
-
- thumb_func_start sub_80A6520
-sub_80A6520: @ 80A6520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A6544
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A653E
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
-_080A653E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6544: .4byte gMain
- thumb_func_end sub_80A6520
-
- thumb_func_start sub_80A6548
-sub_80A6548: @ 80A6548
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A48F8
- ldr r1, _080A656C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6570
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A656C: .4byte gTasks
-_080A6570: .4byte sub_80A6520
- thumb_func_end sub_80A6548
-
- thumb_func_start sub_80A6574
-sub_80A6574: @ 80A6574
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x5F
- bl PlaySE
- ldr r0, _080A65A0
- ldrh r0, [r0]
- ldr r1, _080A65A4
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- ldrb r1, [r4, 0xA]
- bl sub_80A6870
- ldr r0, _080A65A8
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65A0: .4byte word_203855E
-_080A65A4: .4byte gTasks
-_080A65A8: .4byte sub_80A6548
- thumb_func_end sub_80A6574
-
- thumb_func_start sub_80A65AC
-sub_80A65AC: @ 80A65AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _080A6600
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x7
- movs r2, 0x6
- movs r3, 0x6
- bl sub_80A36B8
- ldr r0, _080A6604
- ldrh r0, [r0]
- ldr r1, _080A6608
- bl itemid_copy_name
- ldr r4, _080A660C
- ldr r1, _080A6610
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6614
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- adds r0, r5, 0
- bl sub_80A3D5C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6600: .4byte gBG1TilemapBuffer
-_080A6604: .4byte word_203855E
-_080A6608: .4byte gStringVar2
-_080A660C: .4byte gStringVar4
-_080A6610: .4byte gOtherText_SoldItem
-_080A6614: .4byte sub_80A6574
- thumb_func_end sub_80A65AC
-
- thumb_func_start sub_80A6618
-sub_80A6618: @ 80A6618
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _080A664C
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x7
- movs r2, 0x6
- movs r3, 0x6
- bl sub_80A36B8
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A664C: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A6618
-
- thumb_func_start sub_80A6650
-sub_80A6650: @ 80A6650
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A5D78
- ldr r1, _080A666C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A666C: .4byte gUnknown_083C16FC
- thumb_func_end sub_80A6650
-
- thumb_func_start Task_BuyHowManyDialogueHandleInput
-Task_BuyHowManyDialogueHandleInput: @ 80A6670
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- adds r0, r5, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A66B4
- movs r0, 0x6
- movs r1, 0xB
- movs r2, 0xC
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _080A66AC
- ldrh r0, [r0]
- ldr r2, _080A66B0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl BuyMenuDisplayMessage
- b _080A6758
- .align 2, 0
-_080A66AC: .4byte word_203855E
-_080A66B0: .4byte gTasks
-_080A66B4:
- ldr r0, _080A6724
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A6744
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080A6728
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80A36B8
- ldr r4, _080A672C
- ldr r0, _080A6730
- ldrh r0, [r0]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- ldr r2, _080A6734
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- muls r1, r0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _080A6738
- ldr r1, _080A673C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6740
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A6758
- .align 2, 0
-_080A6724: .4byte gMain
-_080A6728: .4byte gBG1TilemapBuffer
-_080A672C: .4byte gStringVar1
-_080A6730: .4byte word_203855E
-_080A6734: .4byte gTasks
-_080A6738: .4byte gStringVar4
-_080A673C: .4byte gOtherText_CanPay
-_080A6740: .4byte sub_80A6650
-_080A6744:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6758
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
-_080A6758:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_BuyHowManyDialogueHandleInput
-
- thumb_func_start sub_80A6760
-sub_80A6760: @ 80A6760
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A6794
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6794: .4byte gTasks
- thumb_func_end sub_80A6760
-
- thumb_func_start BuyMenuPrintItemQuantityAndPrice
-BuyMenuPrintItemQuantityAndPrice: @ 80A6798
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A67E8
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0
- bl RemoveMoneyLabelObject
- movs r0, 0
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A67EC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A67F0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A67E8: .4byte gBG1TilemapBuffer
-_080A67EC: .4byte gTasks
-_080A67F0: .4byte sub_80A6760
- thumb_func_end BuyMenuPrintItemQuantityAndPrice
-
- thumb_func_start BuyMenuDisplayMessage
-BuyMenuDisplayMessage: @ 80A67F4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- muls r0, r5
- movs r1, 0x6
- movs r2, 0x6
- movs r3, 0xB
- bl sub_80B7A94
- ldr r6, _080A6838
- adds r0, r4, 0
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- adds r1, r0, 0
- muls r1, r5
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6838: .4byte gStringVar1
- thumb_func_end BuyMenuDisplayMessage
-
- thumb_func_start sub_80A683C
-sub_80A683C: @ 80A683C
- push {lr}
- sub sp, 0x4
- ldr r0, _080A6868
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80B7C14
- ldr r0, _080A686C
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xC
- bl sub_80A4008
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6868: .4byte gSaveBlock1
-_080A686C: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80A683C
-
- thumb_func_start sub_80A6870
-sub_80A6870: @ 80A6870
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A68A0
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- adds r1, r0, 0
- muls r1, r4
- adds r0, r5, 0
- bl sub_80B79B8
- ldr r0, [r5]
- movs r1, 0
- movs r2, 0
- bl sub_80B7BEC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A68A0: .4byte gSaveBlock1 + 0x490
- thumb_func_end sub_80A6870
-
- thumb_func_start sub_80A68A4
-sub_80A68A4: @ 80A68A4
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A68BE
- ldr r0, _080A68C4
- movs r1, 0
- bl CreateTask
- ldr r1, _080A68C8
- strb r0, [r1]
-_080A68BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080A68C4: .4byte sub_80A50C8
-_080A68C8: .4byte gUnknown_02038563
- thumb_func_end sub_80A68A4
-
- thumb_func_start sub_80A68CC
-sub_80A68CC: @ 80A68CC
- push {lr}
- ldr r1, _080A68E4
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _080A68E8
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080A68EC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A68E4: .4byte gUnknown_02038559
-_080A68E8: .4byte gUnknown_03000701
-_080A68EC: .4byte sub_80A68A4
- thumb_func_end sub_80A68CC
-
- thumb_func_start sub_80A68F0
-sub_80A68F0: @ 80A68F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6910
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6914
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6910: .4byte gTasks
-_080A6914: .4byte sub_80546B8
- thumb_func_end sub_80A68F0
-
- thumb_func_start sub_80A6918
-sub_80A6918: @ 80A6918
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6938
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A693C
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AAC
- pop {r0}
- bx r0
- .align 2, 0
-_080A6938: .4byte gTasks
-_080A693C: .4byte sub_80546B8
- thumb_func_end sub_80A6918
-
- thumb_func_start sub_80A6940
-sub_80A6940: @ 80A6940
- push {lr}
-_080A6942:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6968
- ldr r0, _080A6960
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6964
- strb r0, [r1]
- bl sub_80A699C
- b _080A6974
- .align 2, 0
-_080A6960: .4byte sub_80A50C8
-_080A6964: .4byte gUnknown_02038563
-_080A6968:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6942
-_080A6974:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6940
-
- thumb_func_start sub_80A6978
-sub_80A6978: @ 80A6978
- push {lr}
- ldr r1, _080A6990
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _080A6994
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080A6998
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6990: .4byte gUnknown_02038559
-_080A6994: .4byte gUnknown_03000701
-_080A6998: .4byte sub_80A6940
- thumb_func_end sub_80A6978
-
- thumb_func_start sub_80A699C
-sub_80A699C: @ 80A699C
- ldr r1, _080A69AC
- ldr r0, _080A69B0
- str r0, [r1]
- ldr r1, _080A69B4
- movs r0, 0x4
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A69AC: .4byte gUnknown_03000704
-_080A69B0: .4byte gUnknown_083C16B8
-_080A69B4: .4byte gUnknown_02038564
- thumb_func_end sub_80A699C
-
- thumb_func_start sub_80A69B8
-sub_80A69B8: @ 80A69B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A69D8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A69DC
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A69D8: .4byte gTasks
-_080A69DC: .4byte sub_804E990
- thumb_func_end sub_80A69B8
-
- thumb_func_start sub_80A69E0
-sub_80A69E0: @ 80A69E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6A00
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6A04
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AAC
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A00: .4byte gTasks
-_080A6A04: .4byte sub_804E990
- thumb_func_end sub_80A69E0
-
- thumb_func_start sub_80A6A08
-sub_80A6A08: @ 80A6A08
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6A22
- ldr r0, _080A6A28
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6A2C
- strb r0, [r1]
-_080A6A22:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A28: .4byte sub_80A50C8
-_080A6A2C: .4byte gUnknown_02038563
- thumb_func_end sub_80A6A08
-
- thumb_func_start sub_80A6A30
-sub_80A6A30: @ 80A6A30
- push {lr}
- ldr r0, _080A6A44
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _080A6A48
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A44: .4byte gUnknown_03000701
-_080A6A48: .4byte sub_80A6A08
- thumb_func_end sub_80A6A30
-
- thumb_func_start sub_80A6A4C
-sub_80A6A4C: @ 80A6A4C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6A74
- ldr r1, _080A6A78
- str r1, [r2]
- ldr r2, _080A6A7C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6A80
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A74: .4byte gUnknown_0300485C
-_080A6A78: .4byte sub_813A0F8
-_080A6A7C: .4byte gTasks
-_080A6A80: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A6A4C
-
- thumb_func_start sub_80A6A84
-sub_80A6A84: @ 80A6A84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r6, _080A6AE8
- adds r0, r4, r6
- mov r8, r0
- ldr r0, _080A6AEC
- bl sub_80A4DA4
- ldr r0, _080A6AF0
- ldrh r0, [r0]
- ldr r1, _080A6AF4
- bl itemid_copy_name
- ldr r0, _080A6AF8
- mov r2, r8
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xB
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0x7
- bl sub_80A7528
- adds r0, r5, 0
- bl sub_80A3D5C
- subs r6, 0x8
- adds r4, r6
- ldr r0, _080A6AFC
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6AE8: .4byte gUnknown_03004B28
-_080A6AEC: .4byte gBG1TilemapBuffer
-_080A6AF0: .4byte word_203855E
-_080A6AF4: .4byte gStringVar1
-_080A6AF8: .4byte gStringVar2
-_080A6AFC: .4byte sub_80A5E1C
- thumb_func_end sub_80A6A84
-
- thumb_func_start sub_80A6B00
-sub_80A6B00: @ 80A6B00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A6B54
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A6B1A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6B4C
-_080A6B1A:
- ldr r1, _080A6B58
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r1, _080A6B5C
- ldr r0, _080A6B60
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A5D38
-_080A6B4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6B54: .4byte gMain
-_080A6B58: .4byte gTasks
-_080A6B5C: .4byte gUnknown_03005D10
-_080A6B60: .4byte gUnknown_02038559
- thumb_func_end sub_80A6B00
-
- thumb_func_start sub_80A6B64
-sub_80A6B64: @ 80A6B64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r6, _080A6B9C
- adds r7, r5, r6
- ldr r0, _080A6BA0
- mov r8, r0
- ldrh r0, [r0]
- bl itemid_is_unique
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080A6BA8
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080A6BA4
- str r1, [r0]
- movs r0, 0x9
- bl sub_80A7528
- b _080A6BD2
- .align 2, 0
-_080A6B9C: .4byte gUnknown_03004B28
-_080A6BA0: .4byte word_203855E
-_080A6BA4: .4byte sub_80A6B00
-_080A6BA8:
- mov r1, r8
- ldrh r0, [r1]
- ldrh r1, [r7, 0x2]
- bl sub_80A9760
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6BC2
- adds r0, r4, 0
- bl sub_80A6A84
- b _080A6BD2
-_080A6BC2:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080A6BDC
- str r1, [r0]
- movs r0, 0x8
- bl sub_80A7528
-_080A6BD2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6BDC: .4byte sub_80A6B00
- thumb_func_end sub_80A6B64
-
- thumb_func_start sub_80A6BE0
-sub_80A6BE0: @ 80A6BE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A6C58
- ldr r0, _080A6C18
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A6C20
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A6C1C
- bl sub_80A4DA4
- adds r0, r4, 0
- bl sub_80A6B64
- b _080A6C58
- .align 2, 0
-_080A6C18: .4byte gMain
-_080A6C1C: .4byte gBG1TilemapBuffer
-_080A6C20:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6C58
- ldr r1, _080A6C60
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _080A6C64
- ldr r0, _080A6C68
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_80A5D38
-_080A6C58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C60: .4byte gTasks
-_080A6C64: .4byte gUnknown_03005D10
-_080A6C68: .4byte gUnknown_02038559
- thumb_func_end sub_80A6BE0
-
- thumb_func_start sub_80A6C6C
-sub_80A6C6C: @ 80A6C6C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A6CE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldr r2, _080A6CE8
- ldr r6, _080A6CEC
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r5, 0x1C]
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- movs r0, 0x5
- bl PlaySE
- bl sub_80A7590
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x4
- beq _080A6D0A
- ldr r0, _080A6CF0
- str r0, [r5]
- movs r0, 0x6
- bl sub_80A7528
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x3
- bne _080A6CF4
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x9
- movs r3, 0x7
- bl sub_80A4DD8
- b _080A6D14
- .align 2, 0
-_080A6CE4: .4byte gTasks
-_080A6CE8: .4byte gUnknown_03005D10
-_080A6CEC: .4byte gUnknown_02038559
-_080A6CF0: .4byte sub_80A6BE0
-_080A6CF4:
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x9
- movs r3, 0x6
- bl sub_80A4DD8
- b _080A6D14
-_080A6D0A:
- movs r0, 0x1
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- bl sub_80A6B64
-_080A6D14:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6C6C
-
- thumb_func_start sub_80A6D1C
-sub_80A6D1C: @ 80A6D1C
- push {r4,r5,lr}
- bl HideMapNamePopUpWindow
- ldr r0, _080A6D70
- ldr r1, _080A6D74
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080A6D84
- movs r1, 0x1
- bl sub_80A92D4
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080A6D80
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80594C0
- bl sub_80597F4
- ldr r1, _080A6D78
- ldrh r0, [r4]
- strh r0, [r1]
- ldrh r0, [r4]
- bl itemid_get_overworld_function
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6D7C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0xC]
- b _080A6D8A
- .align 2, 0
-_080A6D70: .4byte gSaveBlock1
-_080A6D74: .4byte 0x00000496
-_080A6D78: .4byte word_203855E
-_080A6D7C: .4byte gTasks
-_080A6D80:
- movs r0, 0
- strh r0, [r4]
-_080A6D84:
- ldr r0, _080A6D94
- bl ScriptContext1_SetupScript
-_080A6D8A:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A6D94: .4byte Event_NoRegisteredItem
- thumb_func_end sub_80A6D1C
-
- thumb_func_start sub_80A6D98
-sub_80A6D98: @ 80A6D98
- push {lr}
-_080A6D9A:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6DBC
- ldr r0, _080A6DB4
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6DB8
- strb r0, [r1]
- b _080A6DC8
- .align 2, 0
-_080A6DB4: .4byte sub_80A50C8
-_080A6DB8: .4byte gUnknown_02038563
-_080A6DBC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6D9A
-_080A6DC8:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6D98
-
- thumb_func_start sub_80A6DCC
-sub_80A6DCC: @ 80A6DCC
- push {lr}
- ldr r1, _080A6DE4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080A6DE8
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080A6DEC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6DE4: .4byte gUnknown_03000700
-_080A6DE8: .4byte gUnknown_03000701
-_080A6DEC: .4byte sub_80A6D98
- thumb_func_end sub_80A6DCC
-
- thumb_func_start sub_80A6DF0
-sub_80A6DF0: @ 80A6DF0
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r4, _080A6E4C
- ldrb r0, [r4]
- subs r0, 0x1
- lsls r0, 25
- lsrs r6, r0, 24
- movs r1, 0x9
- subs r1, r6
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- movs r2, 0xA
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x8
- movs r3, 0x5
- bl sub_80A4008
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A6E58
- ldr r1, _080A6E50
- ldr r0, _080A6E54
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0xA
- bl MenuPrint
- b _080A6E80
- .align 2, 0
-_080A6E4C: .4byte gUnknown_02038564
-_080A6E50: .4byte gUnknown_083C1640
-_080A6E54: .4byte gUnknown_03000704
-_080A6E58:
- ldr r5, _080A6EAC
- ldr r4, _080A6EB0
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0x8
- bl MenuPrint
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0xA
- bl MenuPrint
-_080A6E80:
- movs r2, 0xA
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080A6EB4
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- bl InitMenu
- movs r0, 0x2
- bl sub_80A7528
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6EAC: .4byte gUnknown_083C1640
-_080A6EB0: .4byte gUnknown_03000704
-_080A6EB4: .4byte gUnknown_02038564
- thumb_func_end sub_80A6DF0
-
- thumb_func_start sub_80A6EB8
-sub_80A6EB8: @ 80A6EB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r2, _080A6EE0
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A6EE8
- ldr r4, _080A6EE4
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A6FC0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A6F02
- .align 2, 0
-_080A6EE0: .4byte gMain
-_080A6EE4: .4byte gUnknown_03000700
-_080A6EE8:
- cmp r1, 0x80
- bne _080A6F14
- ldr r4, _080A6F0C
- ldrb r0, [r4]
- adds r0, 0x1
- ldr r1, _080A6F10
- ldrb r1, [r1]
- cmp r0, r1
- bge _080A6FC0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080A6F02:
- bl MoveMenuCursor
- strb r0, [r4]
- b _080A6FC0
- .align 2, 0
-_080A6F0C: .4byte gUnknown_03000700
-_080A6F10: .4byte gUnknown_02038564
-_080A6F14:
- ldrh r1, [r2, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A6F84
- ldr r1, _080A6F68
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r1, _080A6F6C
- ldr r0, _080A6F70
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A6F74
- bl sub_80A4DA4
- ldr r1, _080A6F78
- ldr r0, _080A6F7C
- ldrb r2, [r0]
- ldr r0, _080A6F80
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A6FC0
- .align 2, 0
-_080A6F68: .4byte gTasks
-_080A6F6C: .4byte gUnknown_03005D10
-_080A6F70: .4byte gUnknown_02038559
-_080A6F74: .4byte gBG1TilemapBuffer
-_080A6F78: .4byte gUnknown_083C1640
-_080A6F7C: .4byte gUnknown_03000700
-_080A6F80: .4byte gUnknown_03000704
-_080A6F84:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6FC0
- ldr r1, _080A6FC8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _080A6FCC
- ldr r0, _080A6FD0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A6FD4
- bl sub_80A4DA4
- ldr r0, _080A6FD8
- ldr r1, [r0, 0x2C]
- adds r0, r5, 0
- bl _call_via_r1
-_080A6FC0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6FC8: .4byte gTasks
-_080A6FCC: .4byte gUnknown_03005D10
-_080A6FD0: .4byte gUnknown_02038559
-_080A6FD4: .4byte gBG1TilemapBuffer
-_080A6FD8: .4byte gUnknown_083C1640
- thumb_func_end sub_80A6EB8
-
- thumb_func_start sub_80A6FDC
-sub_80A6FDC: @ 80A6FDC
- push {lr}
- ldr r0, _080A6FF8
- ldrh r0, [r0]
- bl itemid_get_usage
- lsls r0, 24
- cmp r0, 0
- beq _080A7008
- ldr r1, _080A6FFC
- ldr r0, _080A7000
- str r0, [r1]
- ldr r1, _080A7004
- movs r0, 0x2
- b _080A7012
- .align 2, 0
-_080A6FF8: .4byte word_203855E
-_080A6FFC: .4byte gUnknown_03000704
-_080A7000: .4byte gUnknown_083C1708
-_080A7004: .4byte gUnknown_02038564
-_080A7008:
- ldr r1, _080A7018
- ldr r0, _080A701C
- str r0, [r1]
- ldr r1, _080A7020
- movs r0, 0x1
-_080A7012:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A7018: .4byte gUnknown_03000704
-_080A701C: .4byte gUnknown_083C170A
-_080A7020: .4byte gUnknown_02038564
- thumb_func_end sub_80A6FDC
-
- thumb_func_start sub_80A7024
-sub_80A7024: @ 80A7024
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080A707C
- movs r0, 0
- strb r0, [r1]
- bl sub_80A6FDC
- ldr r0, _080A7080
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldr r3, _080A7084
- ldr r2, _080A7088
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r4, 0x1C]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r0, _080A708C
- bl sub_80A6DF0
- ldr r0, _080A7090
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A707C: .4byte gUnknown_03000700
-_080A7080: .4byte gTasks
-_080A7084: .4byte gUnknown_03005D10
-_080A7088: .4byte gUnknown_02038559
-_080A708C: .4byte gBG1TilemapBuffer
-_080A7090: .4byte sub_80A6EB8
- thumb_func_end sub_80A7024
-
- thumb_func_start sub_80A7094
-sub_80A7094: @ 80A7094
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A70CC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A70D0
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080A70D4
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A70CC: .4byte gTasks
-_080A70D0: .4byte sub_802E424
-_080A70D4: .4byte sub_80A5B00
- thumb_func_end sub_80A7094
-
- thumb_func_start sub_80A70D8
-sub_80A70D8: @ 80A70D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A7094
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A70D8
-
- thumb_func_start ItemMenu_UseInBattle
-ItemMenu_UseInBattle: @ 80A70F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7120
- ldrh r0, [r4]
- bl itemid_get_battle_function
- cmp r0, 0
- beq _080A711A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- bl itemid_get_battle_function
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
-_080A711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7120: .4byte word_203855E
- thumb_func_end ItemMenu_UseInBattle
-
- thumb_func_start sub_80A7124
-sub_80A7124: @ 80A7124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl sub_80A736C
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7124
-
- thumb_func_start sub_80A7150
-sub_80A7150: @ 80A7150
- push {r4,r5,lr}
- ldr r4, _080A7158
- ldr r5, _080A715C
- b _080A716C
- .align 2, 0
-_080A7158: .4byte gUnknown_02038563
-_080A715C: .4byte gTasks
-_080A7160:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A7190
-_080A716C:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A7160
- ldr r0, _080A7198
- movs r1, 0
- bl CreateTask
- strb r0, [r4]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x26]
-_080A7190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7198: .4byte sub_80A7230
- thumb_func_end sub_80A7150
-
- thumb_func_start PrepareBagForWallyTutorial
-PrepareBagForWallyTutorial: @ 80A719C
- push {r4,r5,lr}
- ldr r0, _080A7214
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080A7218
- strb r1, [r0]
- movs r1, 0
- ldr r4, _080A721C
- ldr r5, _080A7220
- ldr r3, _080A7224
- movs r2, 0
-_080A71B2:
- lsls r0, r1, 2
- adds r0, r3
- strb r2, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080A71B2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x50
- bl memcpy
- movs r1, 0x80
- lsls r1, 5
- adds r0, r4, r1
- adds r4, r5, 0
- adds r4, 0xA0
- adds r1, r4, 0
- movs r2, 0x40
- bl memcpy
- adds r0, r5, 0
- movs r1, 0x14
- bl sub_80A9684
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_80A9684
- movs r0, 0xD
- movs r1, 0x1
- bl sub_80A9424
- movs r0, 0x4
- movs r1, 0x1
- bl sub_80A9424
- ldr r1, _080A7228
- movs r0, 0x7
- strb r0, [r1]
- ldr r0, _080A722C
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7214: .4byte gUnknown_03000700
-_080A7218: .4byte gUnknown_02038559
-_080A721C: .4byte 0x0201e000
-_080A7220: .4byte gSaveBlock1 + 0x560
-_080A7224: .4byte gUnknown_03005D10
-_080A7228: .4byte gUnknown_03000701
-_080A722C: .4byte sub_80A7150
- thumb_func_end PrepareBagForWallyTutorial
-
- thumb_func_start sub_80A7230
-sub_80A7230: @ 80A7230
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _080A725C
- mov r8, r0
- adds r7, r6, r0
- movs r0, 0x1E
- ldrsh r1, [r7, r0]
- cmp r1, 0xCC
- beq _080A727A
- cmp r1, 0xCC
- bgt _080A7260
- cmp r1, 0x66
- beq _080A726A
- b _080A7358
- .align 2, 0
-_080A725C: .4byte gUnknown_03004B28
-_080A7260:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _080A72F4
- b _080A7358
-_080A726A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0x2
- bl sub_80A4E8C
- b _080A7358
-_080A727A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- bl sub_80F98A4
- movs r0, 0x3
- bl sub_80F98A4
- ldr r1, _080A72D8
- movs r0, 0x4
- strh r0, [r1]
- ldr r1, _080A72DC
- ldr r0, _080A72E0
- str r0, [r1]
- ldr r1, _080A72E4
- movs r0, 0x2
- strb r0, [r1]
- mov r0, r8
- adds r4, r0, r6
- ldr r3, _080A72E8
- ldr r2, _080A72EC
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r4, 0x14]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r0, _080A72F0
- bl sub_80A6DF0
- b _080A7358
- .align 2, 0
-_080A72D8: .4byte word_203855E
-_080A72DC: .4byte gUnknown_03000704
-_080A72E0: .4byte gUnknown_083C1708
-_080A72E4: .4byte gUnknown_02038564
-_080A72E8: .4byte gUnknown_03005D10
-_080A72EC: .4byte gUnknown_02038559
-_080A72F0: .4byte gBG1TilemapBuffer
-_080A72F4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A7344
- bl sub_80A4DA4
- ldr r4, _080A7348
- ldr r5, _080A734C
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x50
- bl memcpy
- adds r4, 0xA0
- movs r0, 0x80
- lsls r0, 5
- adds r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x40
- bl memcpy
- ldr r1, _080A7350
- lsrs r0, r1, 16
- strh r0, [r7, 0x10]
- strh r1, [r7, 0x12]
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080A7354
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080A735E
- .align 2, 0
-_080A7344: .4byte gBG1TilemapBuffer
-_080A7348: .4byte gSaveBlock1 + 0x560
-_080A734C: .4byte 0x0201e000
-_080A7350: .4byte sub_802E424
-_080A7354: .4byte sub_80A5B00
-_080A7358:
- ldrh r0, [r7, 0x1E]
- adds r0, 0x1
- strh r0, [r7, 0x1E]
-_080A735E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7230
-
- thumb_func_start sub_80A736C
-sub_80A736C: @ 80A736C
- push {lr}
- sub sp, 0x8
- ldr r1, _080A73B0
- ldr r0, _080A73B4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0xE
- movs r2, 0x2
- bl InitMenu
- ldr r1, _080A73B8
- ldr r3, _080A73BC
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl sub_814AC58
- bl sub_80A73C0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080A73B0: .4byte gUnknown_03005D10
-_080A73B4: .4byte gUnknown_02038559
-_080A73B8: .4byte 0x0000ffff
-_080A73BC: .4byte 0x00002d9f
- thumb_func_end sub_80A736C
-
- thumb_func_start sub_80A73C0
-sub_80A73C0: @ 80A73C0
- push {lr}
- ldr r1, _080A73E8
- ldr r0, _080A73EC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 28
- movs r0, 0x80
- lsls r0, 21
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x70
- bl sub_814AD7C
- pop {r0}
- bx r0
- .align 2, 0
-_080A73E8: .4byte gUnknown_03005D10
-_080A73EC: .4byte gUnknown_02038559
- thumb_func_end sub_80A73C0
-
- thumb_func_start sub_80A73F0
-sub_80A73F0: @ 80A73F0
- push {lr}
- bl sub_814ADC8
- pop {r0}
- bx r0
- thumb_func_end sub_80A73F0
-
- thumb_func_start sub_80A73FC
-sub_80A73FC: @ 80A73FC
- push {lr}
- bl sub_8072DEC
- bl sub_814AD44
- pop {r0}
- bx r0
- thumb_func_end sub_80A73FC
-
- thumb_func_start sub_80A740C
-sub_80A740C: @ 80A740C
- push {lr}
- bl sub_80A75E4
- bl sub_80A7768
- bl sub_80A7420
- pop {r0}
- bx r0
- thumb_func_end sub_80A740C
-
- thumb_func_start sub_80A7420
-sub_80A7420: @ 80A7420
- push {r4,lr}
- ldr r4, _080A7438
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080A743C
- cmp r0, 0x3
- beq _080A7430
- b _080A7512
-_080A7430:
- movs r0, 0x2
- strb r0, [r4]
- b _080A7512
- .align 2, 0
-_080A7438: .4byte gUnknown_0203853C
-_080A743C:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x9
- bhi _080A74FC
- lsls r0, 2
- ldr r1, _080A744C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A744C: .4byte _080A7450
- .align 2, 0
-_080A7450:
- .4byte _080A7478
- .4byte _080A74AC
- .4byte _080A74B4
- .4byte _080A74BC
- .4byte _080A74C4
- .4byte _080A74CC
- .4byte _080A74D4
- .4byte _080A74DC
- .4byte _080A74E4
- .4byte _080A74F4
-_080A7478:
- ldr r1, _080A74A0
- ldr r0, _080A74A4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A74A8
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldrb r1, [r4, 0x1]
- bl sub_80A49AC
- b _080A74FC
- .align 2, 0
-_080A74A0: .4byte gUnknown_03005D10
-_080A74A4: .4byte gUnknown_02038559
-_080A74A8: .4byte gUnknown_03005D24
-_080A74AC:
- ldr r0, _080A74B0
- b _080A74E6
- .align 2, 0
-_080A74B0: .4byte gOtherText_SwitchWhichItem
-_080A74B4:
- ldr r0, _080A74B8
- b _080A74E6
- .align 2, 0
-_080A74B8: .4byte gOtherText_WhatWillYouDo2
-_080A74BC:
- ldr r0, _080A74C0
- b _080A74E6
- .align 2, 0
-_080A74C0: .4byte gOtherText_HowManyToToss
-_080A74C4:
- ldr r0, _080A74C8
- b _080A74E6
- .align 2, 0
-_080A74C8: .4byte gOtherText_ThrewAwayItem
-_080A74CC:
- ldr r0, _080A74D0
- b _080A74E6
- .align 2, 0
-_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt
-_080A74D4:
- ldr r0, _080A74D8
- b _080A74E6
- .align 2, 0
-_080A74D8: .4byte gOtherText_HowManyToDeposit
-_080A74DC:
- ldr r0, _080A74E0
- b _080A74E6
- .align 2, 0
-_080A74E0: .4byte gOtherText_DepositedItems
-_080A74E4:
- ldr r0, _080A74F0
-_080A74E6:
- ldrb r1, [r4, 0x1]
- bl sub_80A4A98
- b _080A74FC
- .align 2, 0
-_080A74F0: .4byte gOtherText_NoRoomForItems
-_080A74F4:
- ldr r0, _080A7518
- ldrb r1, [r4, 0x1]
- bl sub_80A4A98
-_080A74FC:
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080A7512
- movs r0, 0
- strb r0, [r4]
- bl sub_80A7918
-_080A7512:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7518: .4byte gOtherText_CantStoreSomeoneItem
- thumb_func_end sub_80A7420
-
- thumb_func_start sub_80A751C
-sub_80A751C: @ 80A751C
- ldr r1, _080A7524
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7524: .4byte gUnknown_0203853C
- thumb_func_end sub_80A751C
-
- thumb_func_start sub_80A7528
-sub_80A7528: @ 80A7528
- push {r4,lr}
- ldr r4, _080A7544
- movs r1, 0
- strb r1, [r4, 0x1]
- strb r0, [r4, 0x2]
- bl sub_80A78F4
- cmp r0, 0x1
- beq _080A755E
- cmp r0, 0x1
- bgt _080A7548
- cmp r0, 0
- beq _080A754E
- b _080A7566
- .align 2, 0
-_080A7544: .4byte gUnknown_0203853C
-_080A7548:
- cmp r0, 0x2
- beq _080A7562
- b _080A7566
-_080A754E:
- movs r0, 0x2
- strb r0, [r4]
-_080A7552:
- bl sub_80A7420
- ldrb r0, [r4]
- cmp r0, 0
- bne _080A7552
- b _080A7566
-_080A755E:
- movs r0, 0x3
- b _080A7564
-_080A7562:
- movs r0, 0x1
-_080A7564:
- strb r0, [r4]
-_080A7566:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7528
-
- thumb_func_start sub_80A756C
-sub_80A756C: @ 80A756C
- push {r4,lr}
- ldr r4, _080A758C
- ldrb r0, [r4]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A7580
- bl sub_80A7918
-_080A7580:
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A758C: .4byte gUnknown_0203853C
- thumb_func_end sub_80A756C
-
- thumb_func_start sub_80A7590
-sub_80A7590: @ 80A7590
- push {lr}
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- bl sub_80A756C
- pop {r0}
- bx r0
- thumb_func_end sub_80A7590
-
- thumb_func_start sub_80A75A8
-sub_80A75A8: @ 80A75A8
- push {lr}
- ldr r1, _080A75C0
- ldrb r0, [r1]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A75BC
- movs r0, 0x1
- strb r0, [r1]
-_080A75BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A75C0: .4byte gUnknown_0203853C
- thumb_func_end sub_80A75A8
-
- thumb_func_start sub_80A75C4
-sub_80A75C4: @ 80A75C4
- push {lr}
- ldr r1, _080A75D8
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A75DC
- cmp r0, 0x1
- bne _080A75E0
- movs r0, 0x3
- strb r0, [r1]
- b _080A75E0
- .align 2, 0
-_080A75D8: .4byte gUnknown_0203853C
-_080A75DC:
- bl sub_80A7918
-_080A75E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80A75C4
-
- thumb_func_start sub_80A75E4
-sub_80A75E4: @ 80A75E4
- push {r4,r5,lr}
- ldr r4, _080A7628
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7622
- bl sub_80A7988
- adds r5, r0, 0
- cmp r5, 0
- bne _080A7622
- ldr r0, _080A762C
- ldrb r0, [r0]
- ldrb r2, [r4, 0x1]
- adds r1, r2, 0
- movs r3, 0x1
- bl sub_80A47E8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- movs r1, 0x7
- cmp r0, 0
- beq _080A7616
- movs r1, 0x5
-_080A7616:
- ldrb r0, [r4, 0x1]
- cmp r1, r0
- bge _080A7622
- strb r5, [r4]
- bl sub_80A78E8
-_080A7622:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7628: .4byte gUnknown_02038540
-_080A762C: .4byte gUnknown_02038563
- thumb_func_end sub_80A75E4
-
- thumb_func_start sub_80A7630
-sub_80A7630: @ 80A7630
- ldr r1, _080A7638
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7638: .4byte gUnknown_02038540
- thumb_func_end sub_80A7630
-
- thumb_func_start sub_80A763C
-sub_80A763C: @ 80A763C
- push {r4,lr}
- ldr r4, _080A7650
- bl sub_80A78C4
- adds r1, r0, 0
- cmp r1, 0
- beq _080A7654
- cmp r1, 0x1
- beq _080A7668
- b _080A7670
- .align 2, 0
-_080A7650: .4byte gUnknown_02038540
-_080A7654:
- ldr r0, _080A7664
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0x7
- bl sub_80A48E8
- b _080A7670
- .align 2, 0
-_080A7664: .4byte gUnknown_02038563
-_080A7668:
- movs r0, 0
- strb r1, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
-_080A7670:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A763C
-
- thumb_func_start sub_80A7678
-sub_80A7678: @ 80A7678
- push {r4,lr}
- ldr r4, _080A7690
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7686
- bl sub_80A78E8
-_080A7686:
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7690: .4byte gUnknown_02038540
- thumb_func_end sub_80A7678
-
- thumb_func_start sub_80A7694
-sub_80A7694: @ 80A7694
- ldr r1, _080A769C
- movs r0, 0x1
- strb r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_080A769C: .4byte gUnknown_02038540
- thumb_func_end sub_80A7694
-
- thumb_func_start sub_80A76A0
-sub_80A76A0: @ 80A76A0
- push {lr}
- movs r0, 0xE
- movs r1, 0x2
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- bl sub_80A7678
- pop {r0}
- bx r0
- thumb_func_end sub_80A76A0
-
- thumb_func_start sub_80A76B8
-sub_80A76B8: @ 80A76B8
- push {lr}
- ldr r0, _080A76CC
- movs r1, 0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A76C6
- movs r1, 0x1
-_080A76C6:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A76CC: .4byte gUnknown_02038540
- thumb_func_end sub_80A76B8
-
- thumb_func_start sub_80A76D0
-sub_80A76D0: @ 80A76D0
- push {lr}
- ldr r0, _080A76E4
- movs r1, 0
- ldrb r0, [r0, 0x1]
- cmp r0, 0x5
- bls _080A76DE
- movs r1, 0x1
-_080A76DE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A76E4: .4byte gUnknown_02038540
- thumb_func_end sub_80A76D0
-
- thumb_func_start sub_80A76E8
-sub_80A76E8: @ 80A76E8
- push {r4,lr}
- ldr r4, _080A7708
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7702
- ldrb r0, [r4, 0x1]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- ldrh r3, [r4, 0x2]
- bl DisplayItemMessageOnField
- movs r0, 0
- strb r0, [r4]
-_080A7702:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7708: .4byte gUnknown_02038544
- thumb_func_end sub_80A76E8
-
- thumb_func_start sub_80A770C
-sub_80A770C: @ 80A770C
- ldr r1, _080A7714
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7714: .4byte gUnknown_02038544
- thumb_func_end sub_80A770C
-
- thumb_func_start DisplayCannotUseItemMessage
-DisplayCannotUseItemMessage: @ 80A7718
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r7, r1, 0
- mov r8, r2
- adds r6, r3, 0
- ldr r4, _080A7738
- bl sub_80A7924
- cmp r0, 0
- beq _080A773C
- cmp r0, 0x2
- beq _080A774E
- b _080A775C
- .align 2, 0
-_080A7738: .4byte gUnknown_02038544
-_080A773C:
- lsls r0, r5, 24
- lsrs r0, 24
- lsls r3, r6, 16
- lsrs r3, 16
- adds r1, r7, 0
- mov r2, r8
- bl DisplayItemMessageOnField
- b _080A775C
-_080A774E:
- movs r0, 0x1
- strb r0, [r4]
- strb r5, [r4, 0x1]
- str r7, [r4, 0x4]
- mov r0, r8
- str r0, [r4, 0x8]
- strh r6, [r4, 0x2]
-_080A775C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DisplayCannotUseItemMessage
-
- thumb_func_start sub_80A7768
-sub_80A7768: @ 80A7768
- push {r4,lr}
- ldr r4, _080A77A8
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _080A7814
- ldrb r1, [r4, 0x1]
- cmp r1, 0
- beq _080A780E
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- beq _080A77B4
- ldr r2, _080A77AC
- ldr r0, _080A77B0
- ldr r0, [r0]
- adds r0, r1, r0
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0]
- subs r1, 0x1
- lsls r1, 1
- adds r1, 0x1
- ldrb r2, [r4, 0x3]
- adds r2, r1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x7
- bl MenuPrint
- b _080A77FC
- .align 2, 0
-_080A77A8: .4byte gUnknown_02038550
-_080A77AC: .4byte gUnknown_083C1640
-_080A77B0: .4byte gUnknown_03000704
-_080A77B4:
- cmp r1, 0x1
- bne _080A77C8
- ldr r0, _080A77C4
- ldrh r0, [r0]
- bl sub_80A4B90
- adds r3, r0, 0
- b _080A77DC
- .align 2, 0
-_080A77C4: .4byte word_203855E
-_080A77C8:
- ldr r2, _080A781C
- ldrb r0, [r4, 0x1]
- ldr r1, _080A7820
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r3, [r0]
-_080A77DC:
- ldrb r2, [r4, 0x1]
- subs r2, 0x1
- asrs r0, r2, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- ands r2, r0
- lsls r2, 1
- adds r2, 0x8
- adds r0, r3, 0
- bl MenuPrint
-_080A77FC:
- ldr r1, _080A7824
- ldrb r0, [r4, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080A780E
- movs r0, 0
- strb r0, [r4]
- bl sub_80A7970
-_080A780E:
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
-_080A7814:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A781C: .4byte gUnknown_083C1640
-_080A7820: .4byte gUnknown_03000704
-_080A7824: .4byte gUnknown_02038564
- thumb_func_end sub_80A7768
-
- thumb_func_start sub_80A7828
-sub_80A7828: @ 80A7828
- ldr r1, _080A7830
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7830: .4byte gUnknown_02038550
- thumb_func_end sub_80A7828
-
- thumb_func_start sub_80A7834
-sub_80A7834: @ 80A7834
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, _080A784C
- bl sub_80A7958
- cmp r0, 0x1
- beq _080A7850
- cmp r0, 0x2
- beq _080A7856
- b _080A7862
- .align 2, 0
-_080A784C: .4byte gUnknown_02038550
-_080A7850:
- movs r1, 0
- movs r0, 0x2
- b _080A785A
-_080A7856:
- movs r1, 0
- movs r0, 0x1
-_080A785A:
- strb r0, [r4]
- strb r1, [r4, 0x1]
- strb r5, [r4, 0x2]
- strb r6, [r4, 0x3]
-_080A7862:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7834
-
- thumb_func_start sub_80A7868
-sub_80A7868: @ 80A7868
- push {lr}
- ldr r1, _080A787C
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _080A7876
- movs r0, 0x1
- strb r0, [r1]
-_080A7876:
- pop {r0}
- bx r0
- .align 2, 0
-_080A787C: .4byte gUnknown_02038550
- thumb_func_end sub_80A7868
-
- thumb_func_start sub_80A7880
-sub_80A7880: @ 80A7880
- push {lr}
- ldr r1, _080A7894
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A7898
- cmp r0, 0x1
- bne _080A789C
- movs r0, 0x2
- strb r0, [r1]
- b _080A789C
- .align 2, 0
-_080A7894: .4byte gUnknown_02038550
-_080A7898:
- bl sub_80A7970
-_080A789C:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7880
-
- thumb_func_start rfu_lacks_rfufunc
-rfu_lacks_rfufunc: @ 80A78A0
- push {lr}
- ldr r0, _080A78B4
- movs r1, 0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A78AE
- movs r1, 0x1
-_080A78AE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A78B4: .4byte gUnknown_02038550
- thumb_func_end rfu_lacks_rfufunc
-
- thumb_func_start sub_80A78B8
-sub_80A78B8: @ 80A78B8
- ldr r1, _080A78C0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A78C0: .4byte gUnknown_02038554
- thumb_func_end sub_80A78B8
-
- thumb_func_start sub_80A78C4
-sub_80A78C4: @ 80A78C4
- push {lr}
- ldr r0, _080A78DC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A78E0
- bl sub_80A7868
- bl sub_80A75A8
- movs r0, 0x1
- b _080A78E2
- .align 2, 0
-_080A78DC: .4byte gLinkOpen
-_080A78E0:
- movs r0, 0
-_080A78E2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A78C4
-
- thumb_func_start sub_80A78E8
-sub_80A78E8: @ 80A78E8
- push {lr}
- bl sub_80A7880
- pop {r0}
- bx r0
- thumb_func_end sub_80A78E8
-
- thumb_func_start sub_80A78F4
-sub_80A78F4: @ 80A78F4
- push {lr}
- ldr r0, _080A790C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A7910
- bl sub_80A76B8
- movs r1, 0x2
- cmp r0, 0
- beq _080A7912
- movs r1, 0x1
- b _080A7912
- .align 2, 0
-_080A790C: .4byte gLinkOpen
-_080A7910:
- movs r1, 0
-_080A7912:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A78F4
-
- thumb_func_start sub_80A7918
-sub_80A7918: @ 80A7918
- push {lr}
- bl sub_80A76E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A7918
-
- thumb_func_start sub_80A7924
-sub_80A7924: @ 80A7924
- push {lr}
- ldr r0, _080A7948
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A7942
- bl sub_80A76B8
- cmp r0, 0
- bne _080A7942
- bl sub_80A76D0
- cmp r0, 0
- beq _080A794C
- bl sub_80A7678
-_080A7942:
- movs r0, 0
- b _080A7952
- .align 2, 0
-_080A7948: .4byte gLinkOpen
-_080A794C:
- bl sub_80A7694
- movs r0, 0x2
-_080A7952:
- pop {r1}
- bx r1
- thumb_func_end sub_80A7924
-
- thumb_func_start sub_80A7958
-sub_80A7958: @ 80A7958
- push {lr}
- bl sub_80A76B8
- cmp r0, 0
- beq _080A796A
- bl sub_80A75A8
- movs r0, 0x1
- b _080A796C
-_080A796A:
- movs r0, 0x2
-_080A796C:
- pop {r1}
- bx r1
- thumb_func_end sub_80A7958
-
- thumb_func_start sub_80A7970
-sub_80A7970: @ 80A7970
- push {lr}
- bl sub_80A75C4
- pop {r0}
- bx r0
- thumb_func_end sub_80A7970
-
- thumb_func_start sub_80A797C
-sub_80A797C: @ 80A797C
- ldr r1, _080A7984
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7984: .4byte gUnknown_02038554
- thumb_func_end sub_80A797C
-
- thumb_func_start sub_80A7988
-sub_80A7988: @ 80A7988
- ldr r1, _080A7994
- ldrb r0, [r1]
- movs r2, 0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_080A7994: .4byte gUnknown_02038554
- thumb_func_end sub_80A7988
-
- thumb_func_start sub_80A7998
-sub_80A7998: @ 80A7998
- adds r2, r0, 0
- adds r2, 0x2A
- movs r1, 0
- strb r1, [r2]
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- ldr r1, _080A79B0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A79B0: .4byte sub_80A79B4
- thumb_func_end sub_80A7998
-
- thumb_func_start sub_80A79B4
-sub_80A79B4: @ 80A79B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A79E4
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A79CC
- adds r0, r4, 0
- bl sub_80A79EC
-_080A79CC:
- ldr r0, _080A79E8
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080A79DE
- adds r0, r4, 0
- bl sub_80A7A94
-_080A79DE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A79E4: .4byte gUnknown_0203855B
-_080A79E8: .4byte gUnknown_0203855C
- thumb_func_end sub_80A79B4
-
- thumb_func_start sub_80A79EC
-sub_80A79EC: @ 80A79EC
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r0, 0x34
- ldrsh r4, [r2, r0]
- cmp r4, 0
- beq _080A79FE
- cmp r4, 0x1
- beq _080A7A54
- b _080A7A8A
-_080A79FE:
- ldr r5, _080A7A28
- ldrb r6, [r5]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x6
- beq _080A7A2C
- adds r3, r2, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x2A
- strb r6, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strb r0, [r5]
- b _080A7A8A
- .align 2, 0
-_080A7A28: .4byte gUnknown_0203855B
-_080A7A2C:
- adds r3, r2, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x2A
- strb r4, [r0]
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- movs r0, 0x1
- strh r0, [r2, 0x34]
- adds r0, r2, 0
- bl sub_80A7AE4
- b _080A7A8A
-_080A7A54:
- ldrh r4, [r2, 0x2E]
- movs r0, 0x2E
- ldrsh r3, [r2, r0]
- cmp r3, 0
- beq _080A7A7C
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080A7A72
- ldrh r0, [r2, 0x22]
- adds r0, 0x1
- strh r0, [r2, 0x22]
- subs r0, r4, 0x1
- strh r0, [r2, 0x2E]
-_080A7A72:
- adds r0, r1, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2, 0x30]
- b _080A7A8A
-_080A7A7C:
- ldr r1, _080A7A90
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r1]
- strh r3, [r2, 0x30]
- strh r3, [r2, 0x34]
-_080A7A8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A90: .4byte gUnknown_0203855B
- thumb_func_end sub_80A79EC
-
- thumb_func_start sub_80A7A94
-sub_80A7A94: @ 80A7A94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7AA6
- cmp r0, 0x1
- beq _080A7AC8
- b _080A7ADC
-_080A7AA6:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080A7AC4
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080A7ADC
- .align 2, 0
-_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4
-_080A7AC8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080A7ADC
- adds r0, r4, 0
- bl sub_80A7AE4
-_080A7ADC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7A94
-
- thumb_func_start sub_80A7AE4
-sub_80A7AE4: @ 80A7AE4
- push {lr}
- ldr r2, _080A7B0C
- movs r1, 0
- strb r1, [r2]
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x36]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B0C: .4byte gUnknown_0203855C
- thumb_func_end sub_80A7AE4
-
- thumb_func_start sub_80A7B10
-sub_80A7B10: @ 80A7B10
- push {lr}
- ldr r0, _080A7B24
- movs r1, 0x3A
- movs r2, 0x28
- movs r3, 0
- bl CreateSprite
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B24: .4byte gSpriteTemplate_83C1CE0
- thumb_func_end sub_80A7B10
-
- thumb_func_start sub_80A7B28
-sub_80A7B28: @ 80A7B28
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A7B6C
- ldr r0, _080A7B44
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B44: .4byte sub_80A7B6C
- thumb_func_end sub_80A7B28
-
- thumb_func_start sub_80A7B48
-sub_80A7B48: @ 80A7B48
- ldrh r2, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- movs r3, 0x1
- ands r1, r3
- subs r2, r1
- adds r1, r0, 0
- adds r1, 0x28
- strb r2, [r1]
- ldrh r2, [r0, 0x3A]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- ands r1, r3
- subs r2, r1
- adds r0, 0x29
- strb r2, [r0]
- bx lr
- thumb_func_end sub_80A7B48
-
- thumb_func_start sub_80A7B6C
-sub_80A7B6C: @ 80A7B6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080A7C16
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7B86
- cmp r0, 0x1
- beq _080A7BD4
- b _080A7C16
-_080A7B86:
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r4, 0x1]
- cmp r2, 0x1
- bne _080A7BA0
- ldr r0, _080A7B9C
- b _080A7BA2
- .align 2, 0
-_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20
-_080A7BA0:
- ldr r0, _080A7BD0
-_080A7BA2:
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- adds r0, r4, 0
- bl sub_80A7B48
- b _080A7C16
- .align 2, 0
-_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4
-_080A7BD4:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A7B48
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _080A7C16
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x34]
- ldrh r1, [r4, 0x38]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- ldrh r0, [r4, 0x3A]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080A7C1C
- str r0, [r4, 0x1C]
-_080A7C16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C1C: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A7B6C
-
- thumb_func_start sub_80A7C20
-sub_80A7C20: @ 80A7C20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A7C54
- bl LoadSpritePalette
- ldr r0, _080A7C58
- movs r1, 0x10
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A7C5C
- strb r0, [r1]
- ldr r2, _080A7C60
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C54: .4byte gUnknown_083C1D30
-_080A7C58: .4byte gSpriteTemplate_83C1D38
-_080A7C5C: .4byte gUnknown_02038568
-_080A7C60: .4byte gSprites
- thumb_func_end sub_80A7C20
-
- thumb_func_start sub_80A7C64
-sub_80A7C64: @ 80A7C64
- push {r4,r5,lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- ldr r5, _080A7C98
- ldr r4, _080A7C9C
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C98: .4byte gSprites
-_080A7C9C: .4byte gUnknown_02038568
- thumb_func_end sub_80A7C64
-
- thumb_func_start sub_80A7CA0
-sub_80A7CA0: @ 80A7CA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r2, 0x80
- lsls r2, 4
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- movs r7, 0
-_080A7CBE:
- adds r4, 0x20
- movs r5, 0
- adds r1, r7, 0x1
- mov r8, r1
-_080A7CC6:
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x20
- bl memcpy
- adds r4, 0x20
- adds r6, 0x20
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080A7CC6
- cmp r7, 0x5
- beq _080A7CE4
- adds r4, 0x20
-_080A7CE4:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _080A7CBE
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7CA0
-
- thumb_func_start sub_80A7CF8
-sub_80A7CF8: @ 80A7CF8
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2A
- bne _080A7D44
- bl sub_80B4940
- cmp r0, 0x1
- bne _080A7D44
- ldr r4, _080A7D34
- ldr r1, _080A7D38
- adds r0, r4, 0
- bl sub_80A7CA0
- movs r0, 0x90
- lsls r0, 3
- adds r4, r0
- str r4, [sp]
- ldr r1, _080A7D3C
- ldr r0, [sp, 0x4]
- ands r0, r1
- ldr r1, _080A7D40
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- b _080A7D72
- .align 2, 0
-_080A7D34: .4byte gSaveBlock1 + 0x317C
-_080A7D38: .4byte 0x02000000
-_080A7D3C: .4byte 0xffff0000
-_080A7D40: .4byte 0x00007544
-_080A7D44:
- ldr r5, _080A7D7C
- lsls r4, 3
- adds r0, r5, 0x4
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [sp]
- mov r1, sp
- ldr r0, _080A7D80
- strh r0, [r1, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPalette
- adds r4, r5
- ldr r0, [r4]
- ldr r4, _080A7D84
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _080A7D88
- adds r1, r4, r0
- adds r0, r4, 0
- bl sub_80A7CA0
-_080A7D72:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7D7C: .4byte gBerryGraphicsTable
-_080A7D80: .4byte 0x00007544
-_080A7D84: .4byte 0x02001000
-_080A7D88: .4byte 0xfffff000
- thumb_func_end sub_80A7CF8
-
- thumb_func_start sub_80A7D8C
-sub_80A7D8C: @ 80A7D8C
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl sub_80A7CF8
- ldr r0, _080A7DC0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A7DC0: .4byte gSpriteTemplate_83C1D74
- thumb_func_end sub_80A7D8C
-
- thumb_func_start sub_80A7DC4
-sub_80A7DC4: @ 80A7DC4
- ldr r1, _080A7DD0
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_080A7DD0: .4byte gUnknown_030041B4
- thumb_func_end sub_80A7DC4
-
- thumb_func_start sub_80A7DD4
-sub_80A7DD4: @ 80A7DD4
- push {lr}
- ldr r0, _080A7DE8
- bl FreeSpritePaletteByTag
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_080A7DE8: .4byte 0x00007544
- thumb_func_end sub_80A7DD4
-
- thumb_func_start sub_80A7DEC
-sub_80A7DEC: @ 80A7DEC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080A7E50
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl sub_80A7CF8
- ldr r0, _080A7E54
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- adds r4, r1, 0
- mov r0, r8
- cmp r0, 0x1
- bne _080A7E42
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A7E58
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A7E42:
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080A7E50: .4byte 0x00007544
-_080A7E54: .4byte gSpriteTemplate_83C1E04
-_080A7E58: .4byte gSprites
- thumb_func_end sub_80A7DEC
-
- thumb_func_start sub_80A7E5C
-sub_80A7E5C: @ 80A7E5C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080A7E78
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x63
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A7E78: .4byte gSpriteTemplate_83C1F98
- thumb_func_end sub_80A7E5C
-
- thumb_func_start sub_80A7E7C
-sub_80A7E7C: @ 80A7E7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7E9C
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A7EA0
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A7EDC
- .align 2, 0
-_080A7E9C: .4byte gUnknown_03004B00
-_080A7EA0:
- ldr r1, _080A7EE4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A7EE8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x8]
- ldrh r1, [r4, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A7EEC
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A7EDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EE4: .4byte gSprites
-_080A7EE8: .4byte gTasks
-_080A7EEC: .4byte sub_80A7EF0
- thumb_func_end sub_80A7E7C
-
- thumb_func_start sub_80A7EF0
-sub_80A7EF0: @ 80A7EF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A7F2C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xE]
- movs r2, 0xE
- ldrsh r5, [r3, r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A7F96
- ldr r2, _080A7F30
- movs r6, 0x8
- ldrsh r1, [r3, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r6, 0x24
- ldrsh r0, [r1, r6]
- adds r6, r2, 0
- cmp r0, 0
- bne _080A7F34
- ldrh r0, [r3, 0x10]
- strh r0, [r1, 0x24]
- b _080A7F36
- .align 2, 0
-_080A7F2C: .4byte gTasks
-_080A7F30: .4byte gSprites
-_080A7F34:
- strh r5, [r1, 0x24]
-_080A7F36:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r7
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r5, 0x26
- ldrsh r0, [r1, r5]
- cmp r0, 0
- bne _080A7F56
- ldrh r0, [r3, 0x12]
- b _080A7F58
-_080A7F56:
- movs r0, 0
-_080A7F58:
- strh r0, [r1, 0x26]
- adds r0, r2, r4
- lsls r0, 3
- adds r2, r0, r7
- ldrh r0, [r2, 0xC]
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A7F9A
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x24]
- movs r5, 0x8
- ldrsh r1, [r2, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x26]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080A7F9A
-_080A7F96:
- subs r0, 0x1
- strh r0, [r3, 0xE]
-_080A7F9A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7EF0
-
- thumb_func_start sub_80A7FA0
-sub_80A7FA0: @ 80A7FA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080A7FC8
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x3
- bgt _080A7FCC
- lsls r0, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8022
- b _080A8026
- .align 2, 0
-_080A7FC8: .4byte gUnknown_03004B00
-_080A7FCC:
- cmp r1, 0x8
- beq _080A8018
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- beq _080A7FEC
- cmp r0, 0x5
- bgt _080A7FE2
- cmp r0, 0x4
- beq _080A7FE8
- b _080A7FF4
-_080A7FE2:
- cmp r0, 0x6
- beq _080A7FF0
- b _080A7FF4
-_080A7FE8:
- movs r0, 0
- b _080A7FF6
-_080A7FEC:
- movs r0, 0x2
- b _080A7FF6
-_080A7FF0:
- movs r0, 0x1
- b _080A7FF6
-_080A7FF4:
- movs r0, 0x3
-_080A7FF6:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080A800C
- movs r6, 0x1
-_080A800C:
- ldr r0, _080A8014
- adds r0, r4, r0
- b _080A8020
- .align 2, 0
-_080A8014: .4byte gUnknown_02024BE0
-_080A8018:
- ldr r1, _080A8030
- ldr r0, _080A8034
- ldrb r0, [r0]
- adds r0, r1
-_080A8020:
- ldrb r3, [r0]
-_080A8022:
- cmp r6, 0
- beq _080A8038
-_080A8026:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A8076
- .align 2, 0
-_080A8030: .4byte gUnknown_02024BE0
-_080A8034: .4byte gUnknown_0202F7C8
-_080A8038:
- ldr r1, _080A807C
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r2, _080A8080
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A8084
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A8088
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A8076:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A807C: .4byte gSprites
-_080A8080: .4byte gUnknown_03004B00
-_080A8084: .4byte gTasks
-_080A8088: .4byte sub_80A808C
- thumb_func_end sub_80A7FA0
-
- thumb_func_start sub_80A808C
-sub_80A808C: @ 80A808C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A80D0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080A8144
- ldr r2, _080A80D4
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrh r5, [r3, 0x10]
- movs r7, 0x10
- ldrsh r0, [r3, r7]
- adds r7, r2, 0
- cmp r1, r0
- bne _080A80D8
- negs r0, r5
- strh r0, [r4, 0x24]
- b _080A80DA
- .align 2, 0
-_080A80D0: .4byte gTasks
-_080A80D4: .4byte gSprites
-_080A80D8:
- strh r5, [r4, 0x24]
-_080A80DA:
- lsls r3, r6, 2
- adds r1, r3, r6
- lsls r1, 3
- add r1, r12
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- mov r8, r2
- ldrh r5, [r1, 0x12]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r8, r0
- bne _080A8104
- negs r0, r5
- strh r0, [r4, 0x26]
- b _080A8106
-_080A8104:
- strh r5, [r4, 0x26]
-_080A8106:
- adds r0, r3, r6
- lsls r0, 3
- mov r4, r12
- adds r3, r0, r4
- ldrh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080A8148
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x24]
- movs r4, 0x8
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8148
-_080A8144:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080A8148:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A808C
-
- thumb_func_start sub_80A8154
-sub_80A8154: @ 80A8154
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8174
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8178
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A81C6
- .align 2, 0
-_080A8174: .4byte gUnknown_03004B00
-_080A8178:
- ldr r0, _080A81CC
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x2]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x4]
- ldrh r6, [r1, 0x26]
- adds r0, r6
- strh r0, [r1, 0x26]
- ldr r0, _080A81D0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- strh r3, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0xC]
- strh r2, [r1, 0xE]
- ldrh r0, [r4, 0x8]
- strh r0, [r1, 0x10]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 1
- strh r0, [r1, 0x12]
- movs r6, 0x4
- ldrsh r0, [r4, r6]
- lsls r0, 1
- strh r0, [r1, 0x14]
- ldr r2, _080A81D4
- str r2, [r1]
- adds r0, r5, 0
- bl _call_via_r2
-_080A81C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81CC: .4byte gSprites
-_080A81D0: .4byte gTasks
-_080A81D4: .4byte sub_80A81D8
- thumb_func_end sub_80A8154
-
- thumb_func_start sub_80A81D8
-sub_80A81D8: @ 80A81D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A8230
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- adds r6, r1, 0
- cmp r0, 0
- beq _080A81F6
- b _080A8308
-_080A81F6:
- ldrh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8238
- ldr r2, _080A8234
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r3, [r0, 0x24]
- adds r1, r3
- strh r1, [r0, 0x24]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x14]
- ldrh r3, [r0, 0x26]
- adds r1, r3
- strh r1, [r0, 0x26]
- adds r3, r2, 0
- b _080A8262
- .align 2, 0
-_080A8230: .4byte gTasks
-_080A8234: .4byte gSprites
-_080A8238:
- ldr r3, _080A82C4
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- ldrh r2, [r4, 0x14]
- subs r1, r2
- strh r1, [r0, 0x26]
-_080A8262:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r0, [r4, 0x10]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0xC
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080A830C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A82C8
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r6, [r1, 0x24]
- adds r0, r6
- strh r0, [r1, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _080A8300
- .align 2, 0
-_080A82C4: .4byte gSprites
-_080A82C8:
- movs r6, 0x8
- ldrsh r0, [r4, r6]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x26]
- subs r0, r1
- strh r0, [r2, 0x26]
-_080A8300:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A830C
-_080A8308:
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
-_080A830C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A81D8
-
- thumb_func_start sub_80A8314
-sub_80A8314: @ 80A8314
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A8364
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8368
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r5, 0x2]
- strh r2, [r1, 0x24]
- ldr r2, _080A836C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r1, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x10]
- ldr r2, _080A8370
- str r2, [r1]
- adds r0, r4, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8364: .4byte gUnknown_03004B00
-_080A8368: .4byte gSprites
-_080A836C: .4byte gTasks
-_080A8370: .4byte sub_80A8374
- thumb_func_end sub_80A8314
-
- thumb_func_start sub_80A8374
-sub_80A8374: @ 80A8374
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080A8400
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrb r5, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- ldrh r1, [r3, 0x18]
- adds r0, r1, 0x1
- strh r0, [r3, 0x18]
- movs r7, 0xC
- ldrsh r0, [r3, r7]
- lsls r1, 16
- asrs r1, 16
- mov r12, r2
- ldr r7, _080A8404
- cmp r0, r1
- bne _080A83C6
- movs r0, 0
- strh r0, [r3, 0x18]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0, r7
- ldrh r3, [r1, 0x24]
- movs r0, 0x24
- ldrsh r2, [r1, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r2, r0
- bne _080A83BE
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A83BE:
- lsls r0, r4, 16
- asrs r0, 16
- adds r0, r3
- strh r0, [r1, 0x24]
-_080A83C6:
- lsls r2, r6, 2
- adds r2, r6
- lsls r2, 3
- add r2, r12
- strh r4, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r0, [r2, 0x1A]
- adds r1, r0
- strh r1, [r2, 0x1A]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r7
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x26]
- ldrh r0, [r2, 0x10]
- subs r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _080A83F8
- adds r0, r6, 0
- bl move_anim_task_del
-_080A83F8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8400: .4byte gTasks
-_080A8404: .4byte gSprites
- thumb_func_end sub_80A8374
-
- thumb_func_start sub_80A8408
-sub_80A8408: @ 80A8408
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- ldr r4, _080A847C
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A842C
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_080A842C:
- movs r1, 0
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r3, r4, 0
- ldr r2, _080A8480
- mov r12, r2
- lsls r4, r5, 2
- ldr r2, _080A8484
- mov r8, r2
- cmp r1, r0
- bge _080A8452
- adds r2, r0, 0
-_080A8444:
- lsls r0, r6, 25
- lsrs r6, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- blt _080A8444
-_080A8452:
- adds r0, r4, r5
- lsls r0, 3
- add r0, r12
- strh r7, [r0, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r1, r8
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A847C: .4byte gUnknown_03004B00
-_080A8480: .4byte gTasks
-_080A8484: .4byte sub_80A8488
- thumb_func_end sub_80A8408
-
- thumb_func_start sub_80A8488
-sub_80A8488: @ 80A8488
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A84F8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x8]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r2, _080A84FC
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r4, r1, r2
- strh r0, [r4, 0x24]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x10]
- ldrh r1, [r5, 0x12]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- cmp r0, 0
- bne _080A84E0
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
-_080A84E0:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080A84F2
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A84F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84F8: .4byte gTasks
-_080A84FC: .4byte gSprites
- thumb_func_end sub_80A8488
-
- thumb_func_start sub_80A8500
-sub_80A8500: @ 80A8500
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8528
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A851C
- ldr r1, _080A852C
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A851C:
- adds r0, r4, 0
- bl sub_80A8408
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8528: .4byte gUnknown_0202F7C8
-_080A852C: .4byte gUnknown_03004B00
- thumb_func_end sub_80A8500
-
- thumb_func_start sub_80A8530
-sub_80A8530: @ 80A8530
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8558
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8560
- ldr r1, _080A855C
- ldrh r0, [r1, 0x2]
- negs r0, r0
- b _080A8564
- .align 2, 0
-_080A8558: .4byte gUnknown_0202F7C8
-_080A855C: .4byte gUnknown_03004B00
-_080A8560:
- ldr r1, _080A8590
- ldrh r0, [r1, 0x2]
-_080A8564:
- strh r0, [r4, 0x30]
- ldrh r2, [r1]
- movs r0, 0
- strh r2, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r1, _080A8594
- ldr r0, _080A8598
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A859C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A85A0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8590: .4byte gUnknown_03004B00
-_080A8594: .4byte gUnknown_02024BE0
-_080A8598: .4byte gUnknown_0202F7C8
-_080A859C: .4byte sub_80A85A4
-_080A85A0: .4byte sub_8078458
- thumb_func_end sub_80A8530
-
- thumb_func_start sub_80A85A4
-sub_80A85A4: @ 80A85A4
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x30]
- negs r1, r1
- strh r1, [r0, 0x30]
- ldr r1, _080A85C0
- str r1, [r0, 0x1C]
- ldr r1, _080A85C4
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A85C0: .4byte sub_8078458
-_080A85C4: .4byte move_anim_8072740
- thumb_func_end sub_80A85A4
-
- thumb_func_start sub_80A85C8
-sub_80A85C8: @ 80A85C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r5, _080A8608
- ldrb r0, [r5, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r5]
- movs r1, 0
- strh r2, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldrh r1, [r5, 0x2]
- strh r1, [r4, 0x32]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A860C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8610
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8608: .4byte gUnknown_03004B00
-_080A860C: .4byte sub_80A8614
-_080A8610: .4byte sub_8078458
- thumb_func_end sub_80A85C8
-
- thumb_func_start sub_80A8614
-sub_80A8614: @ 80A8614
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x32]
- negs r1, r1
- strh r1, [r0, 0x32]
- ldr r1, _080A8630
- str r1, [r0, 0x1C]
- ldr r1, _080A8634
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A8630: .4byte sub_8078458
-_080A8634: .4byte move_anim_8072740
- thumb_func_end sub_80A8614
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080A8650
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A865C
- ldr r1, _080A8654
- ldr r0, _080A8658
- b _080A8660
- .align 2, 0
-_080A8650: .4byte gUnknown_03004B00
-_080A8654: .4byte gUnknown_02024BE0
-_080A8658: .4byte gUnknown_0202F7C8
-_080A865C:
- ldr r1, _080A86C0
- ldr r0, _080A86C4
-_080A8660:
- ldrb r0, [r0]
- adds r0, r1
- ldrb r7, [r0]
- ldr r5, _080A86C8
- ldrh r0, [r5, 0x4]
- movs r3, 0
- strh r0, [r6, 0x2E]
- ldr r0, _080A86CC
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x20]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x22]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- str r3, [sp]
- bl sub_8078A5C
- ldr r3, [sp]
- strh r3, [r6, 0x34]
- strh r3, [r6, 0x36]
- ldrh r0, [r4, 0x24]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x26]
- strh r0, [r6, 0x3A]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A86D0
- strh r3, [r6, 0x32]
- b _080A86D6
- .align 2, 0
-_080A86C0: .4byte gUnknown_02024BE0
-_080A86C4: .4byte gUnknown_0202F7C9
-_080A86C8: .4byte gUnknown_03004B00
-_080A86CC: .4byte gSprites
-_080A86D0:
- cmp r0, 0x2
- bne _080A86D6
- strh r3, [r6, 0x30]
-_080A86D6:
- ldr r0, _080A86EC
- ldrh r1, [r0, 0x2]
- lsls r0, r7, 8
- orrs r0, r1
- strh r0, [r6, 0x3C]
- ldr r0, _080A86F0
- str r0, [r6, 0x1C]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86EC: .4byte gUnknown_03004B00
-_080A86F0: .4byte sub_80A86F4
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A86F4
-sub_80A86F4: @ 80A86F4
- push {r4-r6,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3C]
- lsls r1, r0, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- lsls r0, 16
- asrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080A8730
- adds r3, r1, r0
- ldrh r0, [r2, 0x2E]
- movs r6, 0x2E
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bne _080A8734
- cmp r4, 0x1
- bhi _080A871E
- strh r1, [r3, 0x24]
-_080A871E:
- cmp r5, 0x2
- beq _080A8726
- cmp r5, 0
- bne _080A8728
-_080A8726:
- strh r1, [r3, 0x26]
-_080A8728:
- adds r0, r2, 0
- bl move_anim_8072740
- b _080A875E
- .align 2, 0
-_080A8730: .4byte gSprites
-_080A8734:
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r1, r0
- strh r1, [r2, 0x34]
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r0, r4
- strh r0, [r2, 0x36]
- lsls r1, 16
- asrs r1, 24
- ldrh r6, [r2, 0x38]
- adds r1, r6
- strh r1, [r3, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r2, 0x3A]
- adds r0, r2
- strh r0, [r3, 0x26]
-_080A875E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A86F4
-
- thumb_func_start sub_80A8764
-sub_80A8764: @ 80A8764
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A8778
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8780
- ldr r0, _080A877C
- b _080A8782
- .align 2, 0
-_080A8778: .4byte gUnknown_03004B00
-_080A877C: .4byte gUnknown_0202F7C8
-_080A8780:
- ldr r0, _080A8800
-_080A8782:
- ldrb r2, [r0]
- ldr r0, _080A8804
- adds r0, r2, r0
- ldrb r6, [r0]
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A87AC
- ldr r1, _080A8808
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A87AC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A87AC:
- ldr r2, _080A8808
- ldrh r0, [r2, 0x8]
- movs r4, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A880C
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x2]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x22]
- strh r0, [r5, 0x34]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- strh r6, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080A8810
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8814
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8800: .4byte gUnknown_0202F7C9
-_080A8804: .4byte gUnknown_02024BE0
-_080A8808: .4byte gUnknown_03004B00
-_080A880C: .4byte gSprites
-_080A8810: .4byte move_anim_8072740
-_080A8814: .4byte sub_80784A8
- thumb_func_end sub_80A8764
-
- thumb_func_start sub_80A8818
-sub_80A8818: @ 80A8818
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8838
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8840
- ldr r0, _080A883C
- b _080A8842
- .align 2, 0
-_080A8838: .4byte gUnknown_03004B00
-_080A883C: .4byte gUnknown_0202F7C8
-_080A8840:
- ldr r0, _080A88C0
-_080A8842:
- ldrb r1, [r0]
- ldr r0, _080A88C4
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r0, r1, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A886C
- ldr r1, _080A88C8
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A886C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A886C:
- ldr r5, _080A88C8
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r0, _080A88CC
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r6, 0x34]
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x26]
- lsls r0, 8
- strh r0, [r6, 0x36]
- strh r7, [r6, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r6, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bne _080A88D4
- ldr r1, _080A88D0
- adds r0, r6, 0
- bl oamt_set_x3A_32
- b _080A88DC
- .align 2, 0
-_080A88C0: .4byte gUnknown_0202F7C9
-_080A88C4: .4byte gUnknown_02024BE0
-_080A88C8: .4byte gUnknown_03004B00
-_080A88CC: .4byte gSprites
-_080A88D0: .4byte move_anim_8072740
-_080A88D4:
- ldr r1, _080A88E8
- adds r0, r6, 0
- bl oamt_set_x3A_32
-_080A88DC:
- ldr r0, _080A88EC
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A88E8: .4byte sub_80A88F0
-_080A88EC: .4byte sub_80784A8
- thumb_func_end sub_80A8818
-
- thumb_func_start sub_80A88F0
-sub_80A88F0: @ 80A88F0
- push {r4,lr}
- ldr r4, _080A891C
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- movs r3, 0
- strh r3, [r1, 0x24]
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r3, [r1, 0x26]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A891C: .4byte gSprites
- thumb_func_end sub_80A88F0
-
- thumb_func_start sub_80A8920
-sub_80A8920: @ 80A8920
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A89A4
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A89A8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8952
- ldrh r0, [r5, 0x2]
- negs r0, r0
- strh r0, [r5, 0x2]
- ldrh r0, [r5, 0xA]
- negs r0, r0
- strh r0, [r5, 0xA]
-_080A8952:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- ldr r1, _080A89AC
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- strh r7, [r4, 0x16]
- ldr r0, _080A89B0
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A89A4: .4byte gUnknown_03004B00
-_080A89A8: .4byte gUnknown_0202F7C8
-_080A89AC: .4byte gTasks
-_080A89B0: .4byte sub_80A89B4
- thumb_func_end sub_80A8920
-
- thumb_func_start sub_80A89B4
-sub_80A89B4: @ 80A89B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8A0C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- ldrh r2, [r5, 0x1E]
- adds r0, r2
- strh r0, [r5, 0x1E]
- ldr r2, _080A8A10
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r2
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x1C]
- lsrs r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x16]
- ldrh r1, [r5, 0x1C]
- adds r0, r1
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A04
- ldr r0, _080A8A14
- str r0, [r5]
-_080A8A04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A0C: .4byte gTasks
-_080A8A10: .4byte gSprites
-_080A8A14: .4byte sub_80A8A18
- thumb_func_end sub_80A89B4
-
- thumb_func_start sub_80A8A18
-sub_80A8A18: @ 80A8A18
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8A3C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A8A40
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- b _080A8A74
- .align 2, 0
-_080A8A3C: .4byte gTasks
-_080A8A40:
- ldrb r0, [r4, 0x8]
- ldrh r2, [r4, 0x12]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldr r3, _080A8A7C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 24
- adds r2, r0
- strh r2, [r1, 0x24]
- ldrh r0, [r4, 0x14]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A74
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A7C: .4byte gSprites
- thumb_func_end sub_80A8A18
-
- thumb_func_start sub_80A8A80
-sub_80A8A80: @ 80A8A80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8AA4
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _080A8AAE
- cmp r0, 0x2
- bgt _080A8AA8
- cmp r0, 0
- blt _080A8AE0
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080A8AE8
- .align 2, 0
-_080A8AA4: .4byte gUnknown_03004B00
-_080A8AA8:
- cmp r0, 0x3
- beq _080A8AB8
- b _080A8AE0
-_080A8AAE:
- ldr r5, _080A8AB4
- b _080A8ABA
- .align 2, 0
-_080A8AB4: .4byte gUnknown_0202F7C8
-_080A8AB8:
- ldr r5, _080A8AD8
-_080A8ABA:
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A8AE0
- ldr r1, _080A8ADC
- ldrb r0, [r5]
- eors r0, r4
- adds r0, r1
- ldrb r2, [r0]
- b _080A8AE8
- .align 2, 0
-_080A8AD8: .4byte gUnknown_0202F7C9
-_080A8ADC: .4byte gUnknown_02024BE0
-_080A8AE0:
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8B28
-_080A8AE8:
- ldr r1, _080A8B08
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- strh r2, [r5, 0x8]
- ldr r0, _080A8B0C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8B14
- ldr r0, _080A8B10
- ldrh r0, [r0, 0x2]
- b _080A8B1A
- .align 2, 0
-_080A8B08: .4byte gTasks
-_080A8B0C: .4byte gUnknown_0202F7C9
-_080A8B10: .4byte gUnknown_03004B00
-_080A8B14:
- ldr r0, _080A8B30
- ldrh r0, [r0, 0x2]
- negs r0, r0
-_080A8B1A:
- strh r0, [r5, 0xA]
- ldr r0, _080A8B34
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8B38
- str r0, [r1]
-_080A8B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B30: .4byte gUnknown_03004B00
-_080A8B34: .4byte gTasks
-_080A8B38: .4byte sub_80A8B3C
- thumb_func_end sub_80A8A80
-
- thumb_func_start sub_80A8B3C
-sub_80A8B3C: @ 80A8B3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8B80
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r2, [r1, 0x8]
- ldr r3, _080A8B84
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r1, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _080A8B7A
- adds r0, r4, 0
- bl move_anim_task_del
-_080A8B7A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B80: .4byte gTasks
-_080A8B84: .4byte gSprites
- thumb_func_end sub_80A8B3C
-
- thumb_func_start sub_80A8B88
-sub_80A8B88: @ 80A8B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080A8BD8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8BA4
- ldr r1, _080A8BDC
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A8BA4:
- ldr r4, _080A8BDC
- ldrb r0, [r4, 0x8]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8BE0
- lsls r3, r5, 2
- adds r1, r3, r5
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r4]
- strh r1, [r2, 0x8]
- ldrh r1, [r4, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r4, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r4, 0x6]
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8BE4
- ldrb r0, [r6]
- b _080A8BE8
- .align 2, 0
-_080A8BD8: .4byte gUnknown_0202F7C8
-_080A8BDC: .4byte gUnknown_03004B00
-_080A8BE0: .4byte gTasks
-_080A8BE4:
- ldr r0, _080A8C00
- ldrb r0, [r0]
-_080A8BE8:
- strh r0, [r2, 0x12]
- ldr r1, _080A8C04
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r1, _080A8C08
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C00: .4byte gUnknown_0202F7C9
-_080A8C04: .4byte gTasks
-_080A8C08: .4byte sub_80A8C0C
- thumb_func_end sub_80A8B88
-
- thumb_func_start sub_80A8C0C
-sub_80A8C0C: @ 80A8C0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8C5C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrb r7, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- lsls r1, r0, 16
- strh r0, [r4, 0x1C]
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- lsrs r5, r0, 16
- mov r9, r5
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8C64
- ldr r0, _080A8C60
- lsls r2, r7, 4
- adds r1, r2, r7
- lsls r1, 2
- adds r1, r0
- strh r5, [r1, 0x24]
- mov r9, r0
- adds r4, r2, 0
- b _080A8CAA
- .align 2, 0
-_080A8C5C: .4byte gTasks
-_080A8C60: .4byte gSprites
-_080A8C64:
- ldrb r0, [r4, 0x12]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080A8C8C
- ldr r1, _080A8C88
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- lsls r0, r5, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA8
- b _080A8CA6
- .align 2, 0
-_080A8C88: .4byte gSprites
-_080A8C8C:
- ldr r1, _080A8D2C
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA6
- negs r0, r0
-_080A8CA6:
- negs r0, r0
-_080A8CA8:
- strh r0, [r3, 0x26]
-_080A8CAA:
- mov r5, r8
- cmp r5, 0x7F
- bls _080A8CCC
- ldr r1, _080A8D30
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _080A8CCC
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A8CEE
-_080A8CCC:
- mov r2, r8
- cmp r2, 0x7E
- bhi _080A8D20
- ldr r1, _080A8D30
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0x1
- bne _080A8D20
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A8D20
-_080A8CEE:
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x1E]
- movs r2, 0x1
- eors r0, r2
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- eors r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A8D20
- adds r0, r4, r7
- lsls r0, 2
- add r0, r9
- strh r3, [r0, 0x24]
- strh r3, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A8D20:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D2C: .4byte gSprites
-_080A8D30: .4byte gTasks
- thumb_func_end sub_80A8C0C
-
- thumb_func_start sub_80A8D34
-sub_80A8D34: @ 80A8D34
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080A8D80
- ldrb r0, [r6, 0x6]
- bl obj_id_for_side_relative_to_move
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_8078E70
- ldr r1, _080A8D84
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r6]
- strh r1, [r0, 0x8]
- ldrh r1, [r6, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- ldr r1, _080A8D88
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D80: .4byte gUnknown_03004B00
-_080A8D84: .4byte gTasks
-_080A8D88: .4byte sub_80A8D8C
- thumb_func_end sub_80A8D34
-
- thumb_func_start sub_80A8D8C
-sub_80A8D8C: @ 80A8D8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8DEC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrb r0, [r4, 0x10]
- adds r6, r0, 0
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A8DFC
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- ble _080A8DF0
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r1, [r4, 0xE]
- b _080A8DFC
- .align 2, 0
-_080A8DEC: .4byte gTasks
-_080A8DF0:
- adds r0, r6, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8DFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8D8C
-
- thumb_func_start sub_80A8E04
-sub_80A8E04: @ 80A8E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080A8E40
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8E44
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2, 0xA]
- ldrh r0, [r4]
- strh r0, [r2, 0xC]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080A8E48
- strh r1, [r2, 0xE]
- b _080A8E54
- .align 2, 0
-_080A8E40: .4byte gUnknown_03004B00
-_080A8E44: .4byte gTasks
-_080A8E48:
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r3, r0, 0
- muls r3, r1
- adds r0, r3, 0
- strh r0, [r2, 0xE]
-_080A8E54:
- ldr r1, _080A8E80
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r6, _080A8E84
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x10]
- mov r0, r8
- strh r0, [r5, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x14]
- bl sub_8076BE0
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- beq _080A8E88
- movs r0, 0x1
- strh r0, [r5, 0x16]
- b _080A8EAC
- .align 2, 0
-_080A8E80: .4byte gTasks
-_080A8E84: .4byte gUnknown_03004B00
-_080A8E88:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A8E98
- ldr r0, _080A8E94
- b _080A8E9A
- .align 2, 0
-_080A8E94: .4byte gUnknown_0202F7C8
-_080A8E98:
- ldr r0, _080A8EF0
-_080A8E9A:
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080A8EAA
- movs r1, 0x1
-_080A8EAA:
- strh r1, [r5, 0x16]
-_080A8EAC:
- ldr r0, _080A8EF4
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r4, r1, r0
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A8ED8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080A8ED8
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xE]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
-_080A8ED8:
- ldr r0, _080A8EF4
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8EF8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EF0: .4byte gUnknown_0202F7C9
-_080A8EF4: .4byte gTasks
-_080A8EF8: .4byte sub_80A8FD8
- thumb_func_end sub_80A8E04
-
- thumb_func_start sub_80A8EFC
-sub_80A8EFC: @ 80A8EFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8F38
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8F3C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldrh r1, [r4]
- strh r1, [r0, 0xC]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8F44
- ldr r0, _080A8F40
- b _080A8F46
- .align 2, 0
-_080A8F38: .4byte gUnknown_03004B00
-_080A8F3C: .4byte gTasks
-_080A8F40: .4byte gUnknown_0202F7C8
-_080A8F44:
- ldr r0, _080A8F74
-_080A8F46:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8F58
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080A8F58:
- ldr r0, _080A8F78
- movs r2, 0x6
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _080A8F80
- ldr r2, _080A8F7C
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0xE]
- b _080A8F9A
- .align 2, 0
-_080A8F74: .4byte gUnknown_0202F7C9
-_080A8F78: .4byte gUnknown_03004B00
-_080A8F7C: .4byte gTasks
-_080A8F80:
- ldr r3, _080A8FD0
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r3
- ldrh r2, [r6]
- ldrh r1, [r6, 0x2]
- adds r7, r2, 0
- muls r7, r1
- adds r1, r7, 0
- strh r1, [r0, 0xE]
- adds r2, r3, 0
- adds r3, r4, 0
-_080A8F9A:
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r6, 0x2]
- strh r0, [r1, 0x10]
- mov r0, r8
- strh r0, [r1, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r1, 0x14]
- movs r0, 0x1
- strh r0, [r1, 0x16]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0xE]
- movs r7, 0x10
- ldrsh r0, [r1, r7]
- negs r0, r0
- strh r0, [r1, 0x10]
- ldr r0, _080A8FD4
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FD0: .4byte gTasks
-_080A8FD4: .4byte sub_80A8FD8
- thumb_func_end sub_80A8EFC
-
- thumb_func_start sub_80A8FD8
-sub_80A8FD8: @ 80A8FD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9030
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x12]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xE]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A900C
- ldrb r0, [r4, 0x12]
- bl sub_8078F9C
-_080A900C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080A9052
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A9034
- cmp r0, 0x1
- ble _080A903A
- cmp r0, 0x2
- beq _080A9042
- b _080A903A
- .align 2, 0
-_080A9030: .4byte gTasks
-_080A9034:
- ldrb r0, [r4, 0x12]
- bl sub_8078F40
-_080A903A:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A9052
-_080A9042:
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080A9052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8FD8
-
- thumb_func_start sub_80A9058
-sub_80A9058: @ 80A9058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080A9084
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r8, r0
- cmp r1, 0
- bne _080A9090
- ldr r4, _080A9088
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A908C
- ldrh r0, [r0]
- movs r1, 0xC
- bl __udivsi3
- b _080A90A4
- .align 2, 0
-_080A9084: .4byte gUnknown_03004B00
-_080A9088: .4byte gTasks
-_080A908C: .4byte gUnknown_0202F7BC
-_080A9090:
- ldr r4, _080A912C
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A9130
- ldr r0, [r0]
- movs r1, 0xC
- bl __divsi3
-_080A90A4:
- strh r0, [r6, 0x26]
- lsls r0, 16
- adds r1, r4, 0
- cmp r0, 0
- bgt _080A90B2
- movs r0, 0x1
- strh r0, [r6, 0x26]
-_080A90B2:
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- cmp r0, 0x10
- ble _080A90BE
- movs r0, 0x10
- strh r0, [r6, 0x26]
-_080A90BE:
- adds r4, r5, r7
- lsls r4, 3
- adds r4, r1
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- movs r5, 0
- strh r1, [r4, 0x24]
- ldrh r2, [r4, 0x26]
- movs r0, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r4, 0x22]
- strh r5, [r4, 0x20]
- mov r1, r8
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x1E]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r2, _080A9134
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x18]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x1A]
- strh r5, [r4, 0x8]
- mov r1, r8
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080A9138
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A912C: .4byte gTasks
-_080A9130: .4byte gUnknown_0202F7B8
-_080A9134: .4byte gSprites
-_080A9138: .4byte sub_80A913C
- thumb_func_end sub_80A9058
-
- thumb_func_start sub_80A913C
-sub_80A913C: @ 80A913C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9190
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _080A921A
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0x20]
- adds r1, r0, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x20]
- movs r2, 0x1C
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080A91AE
- cmp r1, 0
- beq _080A9198
- ldr r2, _080A9194
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x18]
- adds r1, r2
- b _080A91AC
- .align 2, 0
-_080A9190: .4byte gTasks
-_080A9194: .4byte gSprites
-_080A9198:
- ldr r2, _080A91D4
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x18]
- ldrh r2, [r3, 0x24]
- subs r1, r2
-_080A91AC:
- strh r1, [r0, 0x24]
-_080A91AE:
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A91E8
- movs r2, 0x20
- ldrsh r4, [r3, r2]
- cmp r4, 0
- beq _080A91D8
- ldr r2, _080A91D4
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x26]
- strh r1, [r0, 0x26]
- b _080A91E8
- .align 2, 0
-_080A91D4: .4byte gSprites
-_080A91D8:
- ldr r2, _080A9220
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
-_080A91E8:
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _080A921A
- ldr r2, _080A9220
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x24]
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
- adds r0, r5, 0
- bl move_anim_task_del
-_080A921A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9220: .4byte gSprites
- thumb_func_end sub_80A913C
-
- thumb_func_start itemid_copy_name
-itemid_copy_name: @ 80A9224
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080A924C
- movs r0, 0x2B
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _080A9248
- adds r0, r4, 0
- bl StringAppend
- b _080A9258
- .align 2, 0
-_080A9248: .4byte gOtherText_Berry2
-_080A924C:
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
-_080A9258:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end itemid_copy_name
-
- thumb_func_start unref_sub_80A9260
-unref_sub_80A9260: @ 80A9260
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _080A9284
- lsrs r0, 21
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _080A9292
- ldr r3, [r0]
-_080A9274:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A9288
- lsls r0, r2, 24
- asrs r0, 24
- b _080A9296
- .align 2, 0
-_080A9284: .4byte gUnknown_083C1618
-_080A9288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080A9274
-_080A9292:
- movs r0, 0x1
- negs r0, r0
-_080A9296:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A9260
-
- thumb_func_start IsBagPocketNonEmpty
-IsBagPocketNonEmpty: @ 80A929C
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _080A92C0
- lsrs r0, 21
- subs r0, 0x8
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _080A92CE
- ldr r3, [r0]
-_080A92B2:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A92C4
- movs r0, 0x1
- b _080A92D0
- .align 2, 0
-_080A92C0: .4byte gUnknown_083C1618
-_080A92C4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080A92B2
-_080A92CE:
- movs r0, 0
-_080A92D0:
- pop {r1}
- bx r1
- thumb_func_end IsBagPocketNonEmpty
-
- thumb_func_start sub_80A92D4
-sub_80A92D4: @ 80A92D4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r5, 0
- bl itemid_get_pocket_number
- lsls r0, 24
- cmp r0, 0
- bne _080A92F0
- b _080A9336
-_080A92EC:
- movs r0, 0x1
- b _080A9338
-_080A92F0:
- adds r0, r5, 0
- bl itemid_get_pocket_number
- subs r0, 0x1
- lsls r0, 24
- movs r3, 0
- ldr r6, _080A9340
- lsrs r2, r0, 21
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A9336
- adds r7, r6, 0
-_080A930A:
- adds r0, r2, r7
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r5
- bne _080A9328
- ldrh r0, [r1, 0x2]
- cmp r0, r4
- bcs _080A92EC
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080A92EC
-_080A9328:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A930A
-_080A9336:
- movs r0, 0
-_080A9338:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9340: .4byte gUnknown_083C1618
- thumb_func_end sub_80A92D4
-
- thumb_func_start sub_80A9344
-sub_80A9344: @ 80A9344
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r6, 0
- bl itemid_get_pocket_number
- lsls r0, 24
- cmp r0, 0
- beq _080A9408
- adds r0, r6, 0
- bl itemid_get_pocket_number
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r5, _080A940C
- cmp r1, 0x3
- beq _080A9376
- movs r5, 0x63
-_080A9376:
- movs r3, 0
- ldr r0, _080A9410
- mov r8, r0
- lsls r2, r1, 3
- adds r0, r2, r0
- mov r12, r8
- mov r9, r2
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A93CA
- mov r10, r12
- subs r0, r1, 0x2
- lsls r0, 24
- lsrs r7, r0, 24
-_080A9392:
- mov r1, r10
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A93BA
- ldrh r1, [r1, 0x2]
- adds r0, r1, r4
- cmp r0, r5
- ble _080A9414
- cmp r7, 0x1
- bls _080A9408
- subs r0, r5, r1
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080A9414
-_080A93BA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- mov r1, r8
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A9392
-_080A93CA:
- cmp r4, 0
- beq _080A9414
- movs r3, 0
- mov r6, r12
- mov r2, r9
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A9404
- adds r7, r6, 0
-_080A93DE:
- adds r0, r2, r7
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A93F6
- cmp r4, r5
- bls _080A9414
- subs r0, r4, r5
- lsls r0, 16
- lsrs r4, r0, 16
-_080A93F6:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A93DE
-_080A9404:
- cmp r4, 0
- beq _080A9414
-_080A9408:
- movs r0, 0
- b _080A9416
- .align 2, 0
-_080A940C: .4byte 0x000003e7
-_080A9410: .4byte gUnknown_083C1618
-_080A9414:
- movs r0, 0x1
-_080A9416:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A9344
-
- thumb_func_start sub_80A9424
-sub_80A9424: @ 80A9424
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x100
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r4, r1, 16
- bl itemid_get_pocket_number
- lsls r0, 24
- cmp r0, 0
- beq _080A9510
- mov r0, r8
- bl itemid_get_pocket_number
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A94F8
- lsls r0, r6, 3
- adds r5, r0, r1
- ldr r1, [r5]
- ldrb r2, [r5, 0x4]
- lsls r2, 2
- mov r0, sp
- bl memcpy
- ldr r7, _080A94FC
- cmp r6, 0x3
- beq _080A9468
- movs r7, 0x63
-_080A9468:
- movs r1, 0
- ldrb r0, [r5, 0x4]
- cmp r1, r0
- bcs _080A94B2
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
-_080A9478:
- lsls r0, r1, 2
- mov r2, sp
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, r8
- bne _080A94A6
- ldrh r2, [r3, 0x2]
- adds r0, r2, r4
- cmp r0, r7
- ble _080A9500
- mov r0, r12
- cmp r0, 0x1
- bls _080A9510
- subs r0, r7, r2
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- strh r7, [r3, 0x2]
- ldr r2, _080A94F8
- mov r9, r2
- lsls r3, r6, 3
- cmp r4, 0
- beq _080A9516
-_080A94A6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r5, 0x4]
- cmp r1, r0
- bcc _080A9478
-_080A94B2:
- ldr r2, _080A94F8
- mov r9, r2
- lsls r3, r6, 3
- cmp r4, 0
- beq _080A9516
- movs r1, 0
- adds r0, r3, r2
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080A94F2
- mov r6, r9
- adds r5, r3, r6
-_080A94CA:
- lsls r0, r1, 2
- mov r6, sp
- adds r2, r6, r0
- ldrh r0, [r2]
- cmp r0, 0
- bne _080A94E6
- mov r0, r8
- strh r0, [r2]
- cmp r4, r7
- bls _080A9514
- subs r0, r4, r7
- lsls r0, 16
- lsrs r4, r0, 16
- strh r7, [r2, 0x2]
-_080A94E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r2, [r5, 0x4]
- cmp r1, r2
- bcc _080A94CA
-_080A94F2:
- cmp r4, 0
- beq _080A9516
- b _080A9510
- .align 2, 0
-_080A94F8: .4byte gUnknown_083C1618
-_080A94FC: .4byte 0x000003e7
-_080A9500:
- strh r0, [r3, 0x2]
- ldr r0, _080A950C
- lsls r1, r6, 3
- adds r1, r0
- b _080A951A
- .align 2, 0
-_080A950C: .4byte gUnknown_083C1618
-_080A9510:
- movs r0, 0
- b _080A9528
-_080A9514:
- strh r4, [r2, 0x2]
-_080A9516:
- mov r6, r9
- adds r1, r3, r6
-_080A951A:
- ldr r0, [r1]
- ldrb r2, [r1, 0x4]
- lsls r2, 2
- mov r1, sp
- bl memcpy
- movs r0, 0x1
-_080A9528:
- add sp, 0x100
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A9424
-
- thumb_func_start sub_80A9538
-sub_80A9538: @ 80A9538
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r7, 0
- adds r0, r6, 0
- bl itemid_get_pocket_number
- lsls r0, 24
- cmp r0, 0
- beq _080A959E
- cmp r6, 0
- beq _080A959E
- adds r0, r6, 0
- bl itemid_get_pocket_number
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r5, 0
- ldr r1, _080A95A4
- lsls r2, r0, 3
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r5, r0
- bcs _080A959A
- mov r8, r1
-_080A9576:
- mov r0, r8
- adds r3, r2, r0
- ldr r0, [r3]
- lsls r1, r5, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A958E
- ldrh r0, [r1, 0x2]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_080A958E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r3, [r3, 0x4]
- cmp r5, r3
- bcc _080A9576
-_080A959A:
- cmp r7, r4
- bcs _080A95A8
-_080A959E:
- movs r0, 0
- b _080A9664
- .align 2, 0
-_080A95A4: .4byte gUnknown_083C1618
-_080A95A8:
- ldr r0, _080A95DC
- mov r2, r12
- lsls r1, r2, 3
- adds r5, r1, r0
- ldr r2, _080A95E0
- ldrb r3, [r5, 0x4]
- mov r8, r0
- adds r7, r1, 0
- ldrb r0, [r2]
- cmp r3, r0
- bls _080A9606
- ldrb r0, [r2]
- ldr r1, [r5]
- lsls r0, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A9606
- ldrh r0, [r1, 0x2]
- cmp r0, r4
- bcc _080A95E4
- subs r0, r4
- strh r0, [r1, 0x2]
- movs r4, 0
- b _080A95EE
- .align 2, 0
-_080A95DC: .4byte gUnknown_083C1618
-_080A95E0: .4byte gUnknown_02038560
-_080A95E4:
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- strh r0, [r1, 0x2]
-_080A95EE:
- mov r1, r8
- adds r0, r7, r1
- ldrb r1, [r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A9602
- strh r0, [r1]
-_080A9602:
- cmp r4, 0
- beq _080A9662
-_080A9606:
- movs r5, 0
- adds r1, r7, 0
- mov r2, r8
- adds r0, r1, r2
- ldrb r2, [r0, 0x4]
- cmp r5, r2
- bcs _080A9662
- mov r12, r8
- adds r3, r0, 0
-_080A9618:
- mov r2, r12
- adds r0, r1, r2
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r6
- bne _080A9650
- ldrh r0, [r2, 0x2]
- cmp r0, r4
- bcc _080A9636
- subs r0, r4
- strh r0, [r2, 0x2]
- movs r4, 0
- b _080A9640
-_080A9636:
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- strh r0, [r2, 0x2]
-_080A9640:
- ldr r0, [r3]
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A964C
- strh r0, [r1]
-_080A964C:
- cmp r4, 0
- beq _080A9662
-_080A9650:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r7, 0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r5, r0
- bcc _080A9618
-_080A9662:
- movs r0, 0x1
-_080A9664:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A9538
-
- thumb_func_start sub_80A9670
-sub_80A9670: @ 80A9670
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_pocket_number
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80A9670
-
- thumb_func_start sub_80A9684
-sub_80A9684: @ 80A9684
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- movs r2, 0
- lsrs r1, 24
- cmp r2, r1
- bcs _080A96A6
- movs r3, 0
-_080A9694:
- lsls r0, r2, 2
- adds r0, r4
- strh r3, [r0]
- strh r3, [r0, 0x2]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bcc _080A9694
-_080A96A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9684
-
- thumb_func_start sub_80A96AC
-sub_80A96AC: @ 80A96AC
- push {lr}
- movs r1, 0
- ldr r3, _080A96CC
- movs r2, 0x93
- lsls r2, 3
-_080A96B6:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A96D0
- adds r0, r1, 0
- b _080A96E0
- .align 2, 0
-_080A96CC: .4byte gSaveBlock1
-_080A96D0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x31
- ble _080A96B6
- movs r0, 0x1
- negs r0, r0
-_080A96E0:
- pop {r1}
- bx r1
- thumb_func_end sub_80A96AC
-
- thumb_func_start sub_80A96E4
-sub_80A96E4: @ 80A96E4
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r4, _080A9714
- movs r3, 0x93
- lsls r3, 3
-_080A96F0:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A9702
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080A9702:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x31
- bls _080A96F0
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9714: .4byte gSaveBlock1
- thumb_func_end sub_80A96E4
-
- thumb_func_start sub_80A9718
-sub_80A9718: @ 80A9718
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r7, _080A9744
- movs r6, 0x93
- lsls r6, 3
- ldr r5, _080A9748
-_080A972C:
- lsls r0, r3, 2
- adds r2, r0, r7
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r4
- bne _080A974C
- adds r0, r2, r5
- ldrh r0, [r0]
- cmp r0, r1
- bcc _080A974C
- movs r0, 0x1
- b _080A9758
- .align 2, 0
-_080A9744: .4byte gSaveBlock1
-_080A9748: .4byte 0x0000049a
-_080A974C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x31
- bls _080A972C
- movs r0, 0
-_080A9758:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A9718
-
- thumb_func_start sub_80A9760
-sub_80A9760: @ 80A9760
- push {r4-r7,lr}
- sub sp, 0xC8
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _080A97C4
- mov r0, sp
- movs r2, 0xC8
- bl memcpy
- movs r5, 0
- ldr r0, _080A97C8
- adds r7, r0, 0
-_080A977C:
- lsls r0, r5, 2
- mov r1, sp
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r6
- bne _080A97A0
- ldrh r1, [r2, 0x2]
- adds r0, r1, r4
- ldr r3, _080A97CC
- cmp r0, r3
- ble _080A97D0
- adds r0, r4, r7
- adds r0, r1, r0
- lsls r0, 16
- lsrs r4, r0, 16
- strh r3, [r2, 0x2]
- cmp r4, 0
- beq _080A97DC
-_080A97A0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _080A977C
- cmp r4, 0
- beq _080A97DC
- bl sub_80A96AC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A97D4
- movs r0, 0
- b _080A97E8
- .align 2, 0
-_080A97C4: .4byte gSaveBlock1 + 0x498
-_080A97C8: .4byte 0x0000fc19
-_080A97CC: .4byte 0x000003e7
-_080A97D0:
- strh r0, [r2, 0x2]
- b _080A97DC
-_080A97D4:
- lsls r0, r1, 2
- add r0, sp
- strh r6, [r0]
- strh r4, [r0, 0x2]
-_080A97DC:
- ldr r0, _080A97F0
- mov r1, sp
- movs r2, 0xC8
- bl memcpy
- movs r0, 0x1
-_080A97E8:
- add sp, 0xC8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A97F0: .4byte gSaveBlock1 + 0x498
- thumb_func_end sub_80A9760
-
- thumb_func_start sub_80A97F4
-sub_80A97F4: @ 80A97F4
- push {lr}
- lsls r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080A9824
- lsrs r0, 22
- adds r3, r0, r2
- ldr r0, _080A9828
- adds r2, r3, r0
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080A9820
- movs r2, 0x93
- lsls r2, 3
- adds r0, r3, r2
- strh r1, [r0]
- bl sub_80A982C
-_080A9820:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9824: .4byte gSaveBlock1
-_080A9828: .4byte 0x0000049a
- thumb_func_end sub_80A97F4
-
- thumb_func_start sub_80A982C
-sub_80A982C: @ 80A982C
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _080A987C
- mov r12, r0
-_080A9834:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r3, r0, 16
- adds r7, r1, 0
- cmp r3, 0x31
- bhi _080A986C
- lsls r1, r2, 2
- mov r2, r12
- adds r0, r1, r2
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldr r6, _080A9880
- adds r4, r1, r6
-_080A9850:
- ldrh r0, [r5]
- cmp r0, 0
- bne _080A9862
- ldr r2, [r4]
- lsls r1, r3, 2
- adds r1, r6
- ldr r0, [r1]
- str r0, [r4]
- str r2, [r1]
-_080A9862:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x31
- bls _080A9850
-_080A986C:
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x30
- bls _080A9834
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A987C: .4byte gSaveBlock1
-_080A9880: .4byte gSaveBlock1 + 0x498
- thumb_func_end sub_80A982C
-
- thumb_func_start sub_80A9884
-sub_80A9884: @ 80A9884
- push {lr}
- ldr r0, _080A98A0
- ldr r1, _080A98A4
- adds r2, r0, r1
- ldrh r1, [r2]
- ldr r3, _080A98A8
- cmp r1, r3
- beq _080A98AC
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- beq _080A98B4
- b _080A98B6
- .align 2, 0
-_080A98A0: .4byte gSaveBlock1
-_080A98A4: .4byte 0x00000496
-_080A98A8: .4byte 0x00000103
-_080A98AC:
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r2]
- b _080A98B6
-_080A98B4:
- strh r3, [r2]
-_080A98B6:
- pop {r0}
- bx r0
- thumb_func_end sub_80A9884
-
- thumb_func_start itemid_sanitize
-itemid_sanitize: @ 80A98BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xAE
- lsls r0, 1
- cmp r1, r0
- bhi _080A98CE
- adds r0, r1, 0
- b _080A98D0
-_080A98CE:
- movs r0, 0
-_080A98D0:
- pop {r1}
- bx r1
- thumb_func_end itemid_sanitize
-
- thumb_func_start itemid_get_item
-itemid_get_item: @ 80A98D4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- ldr r1, _080A98F0
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_080A98F0: .4byte gItems
- thumb_func_end itemid_get_item
-
- thumb_func_start itemid_get_number
-itemid_get_number: @ 80A98F4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9914
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0xE]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9914: .4byte gItems
- thumb_func_end itemid_get_number
-
- thumb_func_start itemid_get_market_price
-itemid_get_market_price: @ 80A9918
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9938
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0x10]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9938: .4byte gItems
- thumb_func_end itemid_get_market_price
-
- thumb_func_start itemid_get_x12
-itemid_get_x12: @ 80A993C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A995C
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x12]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A995C: .4byte gItems
- thumb_func_end itemid_get_x12
-
- thumb_func_start itemid_get_quality
-itemid_get_quality: @ 80A9960
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9980
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x13]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9980: .4byte gItems
- thumb_func_end itemid_get_quality
-
- thumb_func_start itemid_get_description
-itemid_get_description: @ 80A9984
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A99A4
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x14
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A99A4: .4byte gItems
- thumb_func_end itemid_get_description
-
- thumb_func_start sub_80A99A8
-sub_80A99A8: @ 80A99A8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0x1
- ldr r4, _080A99E4
- lsls r0, 16
- lsrs r0, 16
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x14
- adds r0, r4
- ldr r3, [r0]
- adds r2, r6, 0
-_080A99CA:
- ldrb r1, [r3]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A99FA
- subs r5, 0x1
- cmp r5, 0
- bne _080A99E8
- movs r0, 0xFF
- strb r0, [r2]
- movs r0, 0x1
- b _080A9A02
- .align 2, 0
-_080A99E4: .4byte gItems
-_080A99E8:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080A99F4
- movs r0, 0
- b _080A9A02
-_080A99F4:
- adds r2, r6, 0
- adds r3, 0x1
- b _080A99CA
-_080A99FA:
- strb r1, [r2]
- adds r3, 0x1
- adds r2, 0x1
- b _080A99CA
-_080A9A02:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A99A8
-
- thumb_func_start itemid_is_unique
-itemid_is_unique: @ 80A9A08
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A28
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x18]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A28: .4byte gItems
- thumb_func_end itemid_is_unique
-
- thumb_func_start itemid_get_x19
-itemid_get_x19: @ 80A9A2C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A4C
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x19]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A4C: .4byte gItems
- thumb_func_end itemid_get_x19
-
- thumb_func_start itemid_get_pocket_number
-itemid_get_pocket_number: @ 80A9A50
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A70
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1A]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A70: .4byte gItems
- thumb_func_end itemid_get_pocket_number
-
- thumb_func_start itemid_get_type
-itemid_get_type: @ 80A9A74
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A94
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1B]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A94: .4byte gItems
- thumb_func_end itemid_get_type
-
- thumb_func_start itemid_get_overworld_function
-itemid_get_overworld_function: @ 80A9A98
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9AB8
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x1C
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9AB8: .4byte gItems
- thumb_func_end itemid_get_overworld_function
-
- thumb_func_start itemid_get_usage
-itemid_get_usage: @ 80A9ABC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9ADC
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9ADC: .4byte gItems
- thumb_func_end itemid_get_usage
-
- thumb_func_start itemid_get_battle_function
-itemid_get_battle_function: @ 80A9AE0
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9B00
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x24
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B00: .4byte gItems
- thumb_func_end itemid_get_battle_function
-
- thumb_func_start itemid_get_x28
-itemid_get_x28: @ 80A9B04
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9B24
- bl itemid_sanitize
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x28
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B24: .4byte gItems
- thumb_func_end itemid_get_x28
-
- thumb_func_start unref_sub_80A9B28
-unref_sub_80A9B28: @ 80A9B28
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x11
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _080A9B6C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x7
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x7
- bl InitMenu
- ldr r1, _080A9B70
- ldr r0, _080A9B74
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B6C: .4byte gUnknown_083C91F0
-_080A9B70: .4byte gCallback_03004AE8
-_080A9B74: .4byte sub_80A9B78
- thumb_func_end unref_sub_80A9B28
-
- thumb_func_start sub_80A9B78
-sub_80A9B78: @ 80A9B78
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _080A9B8E
- movs r0, 0
- b _080A9BB6
-_080A9B8E:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A9BB0
- ldr r2, _080A9BA8
- ldr r0, _080A9BAC
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _080A9BB6
- .align 2, 0
-_080A9BA8: .4byte gCallback_03004AE8
-_080A9BAC: .4byte gUnknown_083C91F0
-_080A9BB0:
- bl sub_8071C20
- movs r0, 0x1
-_080A9BB6:
- pop {r1}
- bx r1
- thumb_func_end sub_80A9B78
-
- thumb_func_start sub_80A9BBC
-sub_80A9BBC: @ 80A9BBC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080A9BE0
- movs r1, 0xFF
- bl CreateTask
- movs r0, 0x1
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080A9BE0: .4byte sub_80A9BE4
- thumb_func_end sub_80A9BBC
-
- thumb_func_start sub_80A9BE4
-sub_80A9BE4: @ 80A9BE4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A9C14
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A9C10
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080A9C18
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A9C0C
- bl sub_80AF668
-_080A9C0C:
- bl sub_80C2358
-_080A9C10:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C14: .4byte gPaletteFade
-_080A9C18: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9BE4
-
- thumb_func_start sub_80A9C1C
-sub_80A9C1C: @ 80A9C1C
- push {lr}
- ldr r1, _080A9C30
- movs r0, 0
- strb r0, [r1]
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C30: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9C1C
-
- thumb_func_start sub_80A9C34
-sub_80A9C34: @ 80A9C34
- push {lr}
- bl sub_80AA10C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A9C34
-
- thumb_func_start sub_80A9C40
-sub_80A9C40: @ 80A9C40
- push {r4,r5,lr}
- ldr r5, _080A9C88
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080A9C8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080A9C90
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9C94
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x1C]
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x1C]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9C88: .4byte sub_80A9E3C
-_080A9C8C: .4byte sub_80A9C98
-_080A9C90: .4byte sub_80A9E04
-_080A9C94: .4byte gTasks
- thumb_func_end sub_80A9C40
-
- thumb_func_start sub_80A9C98
-sub_80A9C98: @ 80A9C98
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80AE098
- ldr r1, _080A9CB8
- ldr r2, _080A9CBC
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CB8: .4byte sub_80C8734
-_080A9CBC: .4byte sub_80A9CC0
- thumb_func_end sub_80A9C98
-
- thumb_func_start sub_80A9CC0
-sub_80A9CC0: @ 80A9CC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CD4
- ldr r2, _080A9CD8
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CD4: .4byte sub_80C88AC
-_080A9CD8: .4byte sub_80A9CDC
- thumb_func_end sub_80A9CC0
-
- thumb_func_start sub_80A9CDC
-sub_80A9CDC: @ 80A9CDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9CF0
- ldr r2, _080A9CF4
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9CF0: .4byte sub_80C8E1C
-_080A9CF4: .4byte sub_80A9D58
- thumb_func_end sub_80A9CDC
-
- thumb_func_start sub_80A9CF8
-sub_80A9CF8: @ 80A9CF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9D28
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A9D20
- ldr r0, _080A9D2C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
-_080A9D20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D28: .4byte gReceivedRemoteLinkPlayers
-_080A9D2C: .4byte gTasks
- thumb_func_end sub_80A9CF8
-
- thumb_func_start sub_80A9D30
-sub_80A9D30: @ 80A9D30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080A9D50
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A9D54
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9D50: .4byte gTasks
-_080A9D54: .4byte sub_80A9CF8
- thumb_func_end sub_80A9D30
-
- thumb_func_start sub_80A9D58
-sub_80A9D58: @ 80A9D58
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r1, _080A9DA8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, 0x12
- adds r2, r0, r1
-_080A9D6E:
- mov r0, sp
- adds r1, r0, r3
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080A9D6E
- mov r0, sp
- bl sub_80C4B34
- ldr r1, _080A9DAC
- strb r0, [r1]
- ldr r0, _080A9DB0
- ldrb r0, [r0]
- bl sub_80AE82C
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080A9DB4
- ldr r2, _080A9DB8
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA8: .4byte gTasks
-_080A9DAC: .4byte gUnknown_0203869B
-_080A9DB0: .4byte gUnknown_0203869C
-_080A9DB4: .4byte sub_80C8EBC
-_080A9DB8: .4byte sub_80A9DBC
- thumb_func_end sub_80A9D58
-
- thumb_func_start sub_80A9DBC
-sub_80A9DBC: @ 80A9DBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A9DD0
- ldr r2, _080A9DD4
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DD0: .4byte sub_80C8F34
-_080A9DD4: .4byte sub_80A9DD8
- thumb_func_end sub_80A9DBC
-
- thumb_func_start sub_80A9DD8
-sub_80A9DD8: @ 80A9DD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A9E00
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1C]
- bl DestroyTask
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8071C20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E00: .4byte gTasks
- thumb_func_end sub_80A9DD8
-
- thumb_func_start sub_80A9E04
-sub_80A9E04: @ 80A9E04
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080A9E30
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x2
- bne _080A9E2A
- ldr r2, _080A9E34
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080A9E38
- str r1, [r0]
-_080A9E2A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E30: .4byte gMain
-_080A9E34: .4byte gTasks
-_080A9E38: .4byte sub_80A9D30
- thumb_func_end sub_80A9E04
-
- thumb_func_start sub_80A9E3C
-sub_80A9E3C: @ 80A9E3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl OpenLink
- movs r1, 0
- ldr r3, _080A9E74
- movs r2, 0xFF
-_080A9E4C:
- lsls r0, r1, 8
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080A9E4C
- ldr r1, _080A9E78
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080A9E7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9E74: .4byte gBlockRecvBuffer
-_080A9E78: .4byte gTasks
-_080A9E7C: .4byte sub_80A9E80
- thumb_func_end sub_80A9E3C
-
- thumb_func_start sub_80A9E80
-sub_80A9E80: @ 80A9E80
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9EA0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080A9EA4
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080A9ECC
- .align 2, 0
-_080A9EA0: .4byte gTasks
-_080A9EA4:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080A9ECC
- movs r0, 0
- strh r0, [r4, 0x8]
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _080A9EC8
- ldr r0, _080A9EC4
- b _080A9ECA
- .align 2, 0
-_080A9EC4: .4byte sub_80A9ED8
-_080A9EC8:
- ldr r0, _080A9ED4
-_080A9ECA:
- str r0, [r4]
-_080A9ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9ED4: .4byte sub_80A9F10
- thumb_func_end sub_80A9E80
-
- thumb_func_start sub_80A9ED8
-sub_80A9ED8: @ 80A9ED8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9F08
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080A9F02
- bl sub_8007F4C
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080A9F0C
- str r0, [r4]
-_080A9F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F08: .4byte gTasks
-_080A9F0C: .4byte sub_80A9F10
- thumb_func_end sub_80A9ED8
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A9F44
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A9F3E
- bl GetMultiplayerId
- ldr r1, _080A9F48
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080A9F3E
- ldr r1, _080A9F4C
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080A9F3E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9F44: .4byte gReceivedRemoteLinkPlayers
-_080A9F48: .4byte gUnknown_02038695
-_080A9F4C: .4byte gUnknown_0203869A
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80A9F50
-sub_80A9F50: @ 80A9F50
- push {r4,lr}
- movs r2, 0x80
- lsls r2, 19
- movs r0, 0x40
- strh r0, [r2]
- ldrh r0, [r2]
- movs r3, 0x88
- lsls r3, 5
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080A9FB8
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080A9FBC
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _080A9FC0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x44
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _080A9FC4
- strh r1, [r0]
- ldr r0, _080A9FC8
- strh r1, [r0]
- ldr r0, _080A9FCC
- strh r1, [r0]
- ldr r0, _080A9FD0
- strh r1, [r0]
- ldr r0, _080A9FD4
- strh r1, [r0]
- ldr r0, _080A9FD8
- strh r1, [r0]
- ldr r0, _080A9FDC
- strh r1, [r0]
- ldr r0, _080A9FE0
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9FB8: .4byte gWindowConfig_81E6C3C
-_080A9FBC: .4byte gMenuWindow
-_080A9FC0: .4byte REG_MOSAIC
-_080A9FC4: .4byte gUnknown_030042A4
-_080A9FC8: .4byte gUnknown_030042A0
-_080A9FCC: .4byte gUnknown_030042C0
-_080A9FD0: .4byte gUnknown_030041B4
-_080A9FD4: .4byte gUnknown_03004288
-_080A9FD8: .4byte gUnknown_03004280
-_080A9FDC: .4byte gUnknown_030041B0
-_080A9FE0: .4byte gUnknown_030041B8
- thumb_func_end sub_80A9F50
-
- thumb_func_start sub_80A9FE4
-sub_80A9FE4: @ 80A9FE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r1, _080AA054
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- add r5, sp, 0x8
- movs r6, 0
- ldr r1, _080AA058
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080AA05C
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080AA012:
- str r6, [sp, 0x8]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AA012
- str r6, [sp, 0x8]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xC0
- lsls r0, 19
- mov r1, sp
- bl sub_80034D4
- ldr r0, _080AA060
- bl LoadFontDefaultPalette
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA054: .4byte gUnknown_083C9228
-_080AA058: .4byte 0x040000d4
-_080AA05C: .4byte 0x85000400
-_080AA060: .4byte gWindowConfig_81E6C3C
- thumb_func_end sub_80A9FE4
-
- thumb_func_start sub_80AA064
-sub_80AA064: @ 80AA064
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- ldr r0, _080AA088
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x4
- bne _080AA084
- ldr r0, _080AA08C
- bl SetMainCallback2
-_080AA084:
- pop {r0}
- bx r0
- .align 2, 0
-_080AA088: .4byte gMain
-_080AA08C: .4byte sub_805469C
- thumb_func_end sub_80AA064
-
- thumb_func_start sub_80AA090
-sub_80AA090: @ 80AA090
- push {lr}
- ldr r1, _080AA0E8
- ldr r0, _080AA0EC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0F8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA0FC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA100
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA104
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080AA108
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080AA0E8: .4byte REG_BG0HOFS
-_080AA0EC: .4byte gUnknown_030042A4
-_080AA0F0: .4byte gUnknown_030042A0
-_080AA0F4: .4byte gUnknown_030042C0
-_080AA0F8: .4byte gUnknown_030041B4
-_080AA0FC: .4byte gUnknown_03004288
-_080AA100: .4byte gUnknown_03004280
-_080AA104: .4byte gUnknown_030041B0
-_080AA108: .4byte gUnknown_030041B8
- thumb_func_end sub_80AA090
-
- thumb_func_start sub_80AA10C
-sub_80AA10C: @ 80AA10C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _080AA238
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80A9F50
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80A9FE4
- ldr r0, _080AA23C
- bl SetVBlankCallback
- ldr r0, _080AA240
- bl SetMainCallback2
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- ldr r4, _080AA244
- movs r0, 0
- strb r0, [r4]
- ldr r0, _080AA248
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _080AA16A
- movs r0, 0
- movs r1, 0
- bl sub_80AE398
-_080AA16A:
- ldrb r0, [r4]
- bl sub_80AE098
- movs r5, 0
- ldr r6, _080AA24C
- adds r0, r6, 0x1
- mov r8, r0
- ldr r7, _080AA250
-_080AA17A:
- lsls r2, r5, 2
- adds r0, r2, r7
- ldr r1, [r0]
- adds r2, r5
- lsls r2, 17
- movs r0, 0xA8
- lsls r0, 14
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA254
- bl sub_8003460
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080AA17A
- ldr r1, _080AA258
- ldr r4, _080AA25C
- movs r0, 0
- strh r0, [r4]
- strh r0, [r1]
- movs r5, 0
- movs r0, 0
- bl sub_80AA5BC
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r4, _080AA254
- ldr r1, _080AA260
- movs r0, 0x12
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xD6
- movs r3, 0x12
- bl sub_8003460
- ldr r1, _080AA264
- movs r0, 0xC
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xDC
- movs r3, 0
- bl sub_8003460
- ldr r0, _080AA268
- bl LoadSpriteSheet
- ldr r0, _080AA26C
- bl LoadSpritePalette
- movs r0, 0x3
- bl sub_80AA280
- movs r0, 0x3
- bl sub_80AA658
- movs r0, 0x3
- movs r1, 0
- bl sub_80AA614
- ldr r0, _080AA270
- ldr r1, _080AA274
- ldrb r1, [r1, 0x3]
- ldr r2, _080AA278
- ldrb r2, [r2, 0x1]
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AA27C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- movs r0, 0x3
- strh r0, [r1, 0x32]
- strh r5, [r1, 0x34]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA238: .4byte gPaletteFade
-_080AA23C: .4byte sub_80AA090
-_080AA240: .4byte sub_80AA064
-_080AA244: .4byte gUnknown_02038694
-_080AA248: .4byte gUnknown_02038570
-_080AA24C: .4byte gUnknown_083C9276
-_080AA250: .4byte gUnknown_083C9364
-_080AA254: .4byte gMenuWindow
-_080AA258: .4byte gUnknown_0203869C
-_080AA25C: .4byte gUnknown_0203869E
-_080AA260: .4byte gUnknown_083C9337
-_080AA264: .4byte gUnknown_083C933B
-_080AA268: .4byte gUnknown_083C92B4
-_080AA26C: .4byte gUnknown_083C92BC
-_080AA270: .4byte gSpriteTemplate_83C92CC
-_080AA274: .4byte gUnknown_083C9296
-_080AA278: .4byte gUnknown_083C92A8
-_080AA27C: .4byte gSprites
- thumb_func_end sub_80AA10C
-
- thumb_func_start sub_80AA280
-sub_80AA280: @ 80AA280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080AA2E8
- movs r1, 0x1E
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r4, _080AA2EC
- ldr r1, _080AA2F0
- adds r0, r4, 0
- bl StringCopy
- lsls r1, r7, 6
- ldr r0, _080AA2F4
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- movs r5, 0
- ldr r6, _080AA2F8
- adds r0, r6, 0x1
- mov r8, r0
-_080AA2BE:
- cmp r7, r5
- bne _080AA2FC
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r1, r5, 1
- adds r0, r1, r6
- ldrb r3, [r0]
- add r1, r8
- ldrb r0, [r1]
- str r0, [sp]
- ldr r0, _080AA2E8
- ldr r1, _080AA2EC
- bl sub_8003460
- b _080AA322
- .align 2, 0
-_080AA2E8: .4byte gMenuWindow
-_080AA2EC: .4byte 0x02000000
-_080AA2F0: .4byte gUnknown_083C932C
-_080AA2F4: .4byte gUnknown_0203857D
-_080AA2F8: .4byte gUnknown_083C926E
-_080AA2FC:
- lsls r1, r5, 6
- ldr r0, _080AA338
- adds r1, r0
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 17
- movs r0, 0x80
- lsls r0, 10
- adds r2, r0
- lsrs r2, 16
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrb r3, [r0]
- add r4, r8
- ldrb r0, [r4]
- str r0, [sp]
- ldr r0, _080AA33C
- bl sub_8003460
-_080AA322:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AA2BE
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA338: .4byte gUnknown_0203857D
-_080AA33C: .4byte gMenuWindow
- thumb_func_end sub_80AA280
-
- thumb_func_start sub_80AA340
-sub_80AA340: @ 80AA340
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA378
- ldr r1, _080AA37C
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x26
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA380
- ldr r1, _080AA384
- ldrb r3, [r1]
- ldrb r1, [r1, 0x1]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x66
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA378: .4byte 0x02000000
-_080AA37C: .4byte gUnknown_02038570
-_080AA380: .4byte gMenuWindow
-_080AA384: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA340
-
- thumb_func_start sub_80AA388
-sub_80AA388: @ 80AA388
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA3C0
- ldr r1, _080AA3C4
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA3C8
- ldr r1, _080AA3CC
- ldrb r3, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x6C
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C0: .4byte 0x02000000
-_080AA3C4: .4byte gUnknown_02038570
-_080AA3C8: .4byte gMenuWindow
-_080AA3CC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA388
-
- thumb_func_start sub_80AA3D0
-sub_80AA3D0: @ 80AA3D0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA408
- ldr r1, _080AA40C
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x27
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA410
- ldr r1, _080AA414
- ldrb r3, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x72
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA408: .4byte 0x02000000
-_080AA40C: .4byte gUnknown_02038570
-_080AA410: .4byte gMenuWindow
-_080AA414: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA3D0
-
- thumb_func_start sub_80AA418
-sub_80AA418: @ 80AA418
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA450
- ldr r1, _080AA454
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x29
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA458
- ldr r1, _080AA45C
- ldrb r3, [r1, 0x6]
- ldrb r1, [r1, 0x7]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x78
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA450: .4byte 0x02000000
-_080AA454: .4byte gUnknown_02038570
-_080AA458: .4byte gMenuWindow
-_080AA45C: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA418
-
- thumb_func_start sub_80AA460
-sub_80AA460: @ 80AA460
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA498
- ldr r1, _080AA49C
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4A0
- ldr r1, _080AA4A4
- ldrb r3, [r1, 0x8]
- ldrb r1, [r1, 0x9]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x7E
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte 0x02000000
-_080AA49C: .4byte gUnknown_02038570
-_080AA4A0: .4byte gMenuWindow
-_080AA4A4: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA460
-
- thumb_func_start sub_80AA4A8
-sub_80AA4A8: @ 80AA4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _080AA4E0
- ldr r1, _080AA4E4
- lsrs r0, 18
- adds r0, r1
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA4E8
- ldr r1, _080AA4EC
- ldrb r3, [r1, 0xA]
- ldrb r1, [r1, 0xB]
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x84
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA4E0: .4byte 0x02000000
-_080AA4E4: .4byte gUnknown_02038570
-_080AA4E8: .4byte gMenuWindow
-_080AA4EC: .4byte gUnknown_083C9282
- thumb_func_end sub_80AA4A8
-
- thumb_func_start sub_80AA4F0
-sub_80AA4F0: @ 80AA4F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080AA5A8
- ldr r0, _080AA5AC
- lsls r5, r6, 1
- adds r1, r5, r0
- ldrb r1, [r1]
- mov r9, r1
- adds r0, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x7
- add r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r0, [sp]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- mov r2, r9
- mov r3, r10
- bl FillWindowRect_DefaultPalette
- ldr r0, _080AA5B0
- lsls r4, 6
- adds r4, r5, r4
- adds r0, 0x1E
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080AA5B4
- adds r1, r0
- lsls r2, r6, 3
- subs r2, r6
- lsls r2, 17
- movs r0, 0x8A
- lsls r0, 16
- adds r2, r0
- lsrs r2, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r3, r9
- bl sub_8003460
- ldr r0, _080AA5B8
- mov r9, r0
- ldrh r1, [r4]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r6
- lsls r5, 17
- movs r0, 0xFA
- lsls r0, 16
- adds r5, r0
- lsrs r5, 16
- mov r0, r10
- str r0, [sp]
- adds r0, r7, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_8003460
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA5A8: .4byte gMenuWindow
-_080AA5AC: .4byte gUnknown_083C928E
-_080AA5B0: .4byte gUnknown_02038570
-_080AA5B4: .4byte gMoveNames
-_080AA5B8: .4byte gStringVar1
- thumb_func_end sub_80AA4F0
-
- thumb_func_start sub_80AA5BC
-sub_80AA5BC: @ 80AA5BC
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA5E0
- ldr r1, _080AA5E4
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x12
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xC2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA5E0: .4byte gMenuWindow
-_080AA5E4: .4byte gUnknown_083C93B4
- thumb_func_end sub_80AA5BC
-
- thumb_func_start sub_80AA5E8
-sub_80AA5E8: @ 80AA5E8
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- ldr r2, _080AA60C
- ldr r1, _080AA610
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xE8
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AA60C: .4byte gMenuWindow
-_080AA610: .4byte gUnknown_083C93F0
- thumb_func_end sub_80AA5E8
-
- thumb_func_start sub_80AA614
-sub_80AA614: @ 80AA614
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AE770
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _080AA650
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080AA654
- movs r1, 0xC
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0xE2
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA650: .4byte 0x02000000
-_080AA654: .4byte gMenuWindow
- thumb_func_end sub_80AA614
-
- thumb_func_start sub_80AA658
-sub_80AA658: @ 80AA658
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80AA340
- adds r0, r5, 0
- bl sub_80AA388
- adds r0, r5, 0
- bl sub_80AA3D0
- adds r0, r5, 0
- bl sub_80AA418
- adds r0, r5, 0
- bl sub_80AA460
- adds r0, r5, 0
- bl sub_80AA4A8
- movs r4, 0
-_080AA684:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AA4F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AA684
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA658
-
- thumb_func_start sub_80AA69C
-sub_80AA69C: @ 80AA69C
- push {r4-r6,lr}
- ldr r6, _080AA748
- ldr r5, _080AA74C
- ldrb r2, [r5]
- lsls r2, 6
- ldr r4, _080AA750
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0x16
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x2
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x18
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x1
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x17
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x3
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x21
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x4
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x2F
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r0, r4, 0x5
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x30
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- subs r4, 0x8
- adds r2, r4
- adds r0, r6, 0
- movs r1, 0xD
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x2
- adds r0, r6, 0
- movs r1, 0xE
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x4
- adds r0, r6, 0
- movs r1, 0xF
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 6
- adds r2, r4
- adds r2, 0x6
- adds r0, r6, 0
- movs r1, 0x10
- bl SetMonData
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA748: .4byte gPlayerParty
-_080AA74C: .4byte gUnknown_02038695
-_080AA750: .4byte gUnknown_02038596
- thumb_func_end sub_80AA69C
-
- thumb_func_start sub_80AA754
-sub_80AA754: @ 80AA754
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080AA774
- ldrh r1, [r0, 0x30]
- cmp r1, 0x20
- beq _080AA7A2
- cmp r1, 0x20
- bgt _080AA782
- cmp r1, 0x2
- beq _080AA7F8
- cmp r1, 0x2
- bgt _080AA778
- cmp r1, 0x1
- beq _080AA7D8
- b _080AA870
- .align 2, 0
-_080AA774: .4byte gMain
-_080AA778:
- cmp r1, 0x8
- beq _080AA868
- cmp r1, 0x10
- beq _080AA7A2
- b _080AA870
-_080AA782:
- cmp r1, 0x80
- beq _080AA7C2
- cmp r1, 0x80
- bgt _080AA790
- cmp r1, 0x40
- beq _080AA7AC
- b _080AA870
-_080AA790:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080AA814
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- beq _080AA834
- b _080AA870
-_080AA7A2:
- ldrh r0, [r4, 0x2E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x2E]
- b _080AA870
-_080AA7AC:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080AA7BC
- movs r0, 0x8
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7BC:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7C2:
- ldrh r1, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x8
- bne _080AA7D2
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D2:
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080AA870
-_080AA7D8:
- ldr r2, _080AA7F4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- b _080AA84E
- .align 2, 0
-_080AA7F4: .4byte gUnknown_083C92E4
-_080AA7F8:
- ldr r1, _080AA810
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0x1
- negs r1, r1
- b _080AA84A
- .align 2, 0
-_080AA810: .4byte gUnknown_083C92E4
-_080AA814:
- ldr r2, _080AA830
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- movs r1, 0xA
- b _080AA84E
- .align 2, 0
-_080AA830: .4byte gUnknown_083C92E4
-_080AA834:
- ldr r1, _080AA864
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- movs r1, 0xA
- negs r1, r1
-_080AA84A:
- ldr r2, [r2]
- adds r0, r4, 0
-_080AA84E:
- bl _call_via_r2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80AA614
- b _080AA870
- .align 2, 0
-_080AA864: .4byte gUnknown_083C92E4
-_080AA868:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80AAD08
-_080AA870:
- ldr r2, _080AA898
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- strh r0, [r4, 0x20]
- ldr r1, _080AA89C
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA898: .4byte gUnknown_083C9296
-_080AA89C: .4byte gUnknown_083C92A8
- thumb_func_end sub_80AA754
-
- thumb_func_start sub_80AA8A0
-sub_80AA8A0: @ 80AA8A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r0, r2, 24
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AA8C0
- strh r0, [r4, 0x32]
- bl sub_80AA280
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
-_080AA8C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8A0
-
- thumb_func_start sub_80AA8C8
-sub_80AA8C8: @ 80AA8C8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8C8
-
- thumb_func_start sub_80AA8D8
-sub_80AA8D8: @ 80AA8D8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8D8
-
- thumb_func_start sub_80AA8E8
-sub_80AA8E8: @ 80AA8E8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x2
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8E8
-
- thumb_func_start sub_80AA8F8
-sub_80AA8F8: @ 80AA8F8
- push {lr}
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x3
- bl sub_80AA8A0
- pop {r0}
- bx r0
- thumb_func_end sub_80AA8F8
-
- thumb_func_start sub_80AA908
-sub_80AA908: @ 80AA908
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- asrs r2, 24
- adds r2, r1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0xFF
- ble _080AA922
- movs r0, 0xFF
- b _080AA928
-_080AA922:
- cmp r2, 0
- bge _080AA928
- movs r0, 0
-_080AA928:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80AA908
-
- thumb_func_start sub_80AA930
-sub_80AA930: @ 80AA930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA970
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x26
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x26
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA340
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA970: .4byte gUnknown_02038570
- thumb_func_end sub_80AA930
-
- thumb_func_start sub_80AA974
-sub_80AA974: @ 80AA974
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9B4
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x28
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA388
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9B4: .4byte gUnknown_02038570
- thumb_func_end sub_80AA974
-
- thumb_func_start sub_80AA9B8
-sub_80AA9B8: @ 80AA9B8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AA9F8
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x27
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x27
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA3D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA9F8: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9B8
-
- thumb_func_start sub_80AA9FC
-sub_80AA9FC: @ 80AA9FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA3C
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x29
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA418
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA3C: .4byte gUnknown_02038570
- thumb_func_end sub_80AA9FC
-
- thumb_func_start sub_80AAA40
-sub_80AAA40: @ 80AAA40
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAA80
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2A
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2A
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA460
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA80: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA40
-
- thumb_func_start sub_80AAA84
-sub_80AAA84: @ 80AAA84
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAAC4
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- adds r2, 0x2B
- ldrb r3, [r2]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AA908
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- adds r1, 0x2B
- strb r0, [r1]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA4A8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAAC4: .4byte gUnknown_02038570
- thumb_func_end sub_80AAA84
-
- thumb_func_start sub_80AAAC8
-sub_80AAAC8: @ 80AAAC8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- asrs r2, 24
- adds r1, r2
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- movs r2, 0xB1
- lsls r2, 1
- cmp r1, r2
- ble _080AAAE6
- movs r0, 0x1
- b _080AAAEC
-_080AAAE6:
- cmp r1, 0
- bge _080AAAEC
- adds r0, r2, 0
-_080AAAEC:
- pop {r1}
- bx r1
- thumb_func_end sub_80AAAC8
-
- thumb_func_start sub_80AAAF0
-sub_80AAAF0: @ 80AAAF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB2C
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x1E]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x1E]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB2C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAAF0
-
- thumb_func_start sub_80AAB30
-sub_80AAB30: @ 80AAB30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AAB6C
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x20]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB6C: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB30
-
- thumb_func_start sub_80AAB70
-sub_80AAB70: @ 80AAB70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABAC
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x22]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABAC: .4byte gUnknown_02038570
- thumb_func_end sub_80AAB70
-
- thumb_func_start sub_80AABB0
-sub_80AABB0: @ 80AABB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080AABEC
- movs r3, 0x32
- ldrsh r2, [r4, r3]
- lsls r2, 6
- adds r2, r5
- ldrh r3, [r2, 0x24]
- lsls r2, r1, 24
- asrs r2, 24
- adds r1, r3, 0
- bl sub_80AAAC8
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_80AA4F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AABEC: .4byte gUnknown_02038570
- thumb_func_end sub_80AABB0
-
- thumb_func_start sub_80AABF0
-sub_80AABF0: @ 80AABF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- movs r0, 0xFF
- cmp r1, 0
- ble _080AABFE
- movs r0, 0x1
-_080AABFE:
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r5, 0x34]
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080AAC14
- movs r4, 0
- b _080AAC1A
-_080AAC14:
- cmp r0, 0x4
- ble _080AAC1A
- movs r4, 0x4
-_080AAC1A:
- lsls r4, 24
- lsrs r0, r4, 24
- bl sub_80AA5BC
- asrs r4, 24
- strh r4, [r5, 0x34]
- ldr r0, _080AAC54
- strh r4, [r0]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080AAC58
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAC54: .4byte gUnknown_0203869C
-_080AAC58: .4byte gUnknown_0203869E
- thumb_func_end sub_80AABF0
-
- thumb_func_start sub_80AAC5C
-sub_80AAC5C: @ 80AAC5C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- ble _080AAC78
- ldr r1, _080AAC74
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r4, r1, 0
- b _080AAC86
- .align 2, 0
-_080AAC74: .4byte gUnknown_0203869E
-_080AAC78:
- ldr r0, _080AACBC
- ldrh r2, [r0]
- adds r4, r0, 0
- cmp r2, 0
- beq _080AAC86
- subs r0, r2, 0x1
- strh r0, [r4]
-_080AAC86:
- adds r1, r4, 0
- ldrh r0, [r1]
- cmp r0, 0x3
- bls _080AAC92
- movs r0, 0x3
- strh r0, [r1]
-_080AAC92:
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r0, _080AACC0
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AACBC: .4byte gUnknown_0203869E
-_080AACC0: .4byte gUnknown_0203869C
- thumb_func_end sub_80AAC5C
-
- thumb_func_start sub_80AACC4
-sub_80AACC4: @ 80AACC4
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080AACF8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AACF4
- bl sub_80AA69C
- ldr r0, _080AACFC
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AACEE
- ldr r0, _080AAD00
- ldrb r0, [r0]
- bl sub_80AE82C
-_080AACEE:
- ldr r0, _080AAD04
- bl SetMainCallback2
-_080AACF4:
- pop {r0}
- bx r0
- .align 2, 0
-_080AACF8: .4byte gPaletteFade
-_080AACFC: .4byte gUnknown_0203869A
-_080AAD00: .4byte 0x02000000
-_080AAD04: .4byte sub_80AB47C
- thumb_func_end sub_80AACC4
-
- thumb_func_start sub_80AAD08
-sub_80AAD08: @ 80AAD08
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD32
- ldr r1, _080AAD3C
- ldrh r0, [r0, 0x34]
- movs r4, 0
- strb r0, [r1]
- ldr r0, _080AAD40
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080AAD32:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD3C: .4byte 0x02000000
-_080AAD40: .4byte sub_80AACC4
- thumb_func_end sub_80AAD08
-
- thumb_func_start sub_80AAD44
-sub_80AAD44: @ 80AAD44
- push {r4,r5,lr}
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD72
- bl sub_80AA69C
- movs r4, 0
- ldr r5, _080AAD78
-_080AAD56:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _080AAD7C
- ldrb r1, [r1]
- bl sub_80AE770
- strh r0, [r5]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AAD56
- ldr r0, _080AAD80
- bl SetMainCallback2
-_080AAD72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD78: .4byte gUnknown_02038670
-_080AAD7C: .4byte gUnknown_0203869C
-_080AAD80: .4byte sub_805469C
- thumb_func_end sub_80AAD44
-
- thumb_func_start sub_80AAD84
-sub_80AAD84: @ 80AAD84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x64
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x48]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4C]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- mov r5, r10
- adds r5, 0x1
- lsls r1, r5, 8
- ldr r0, _080AAEC4
- subs r1, r0, r1
- movs r0, 0
- str r0, [sp, 0x44]
- ldr r4, _080AAEC8
- add r0, sp, 0x44
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r0, _080AAECC
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x8
- bls _080AADD0
- movs r7, 0x8
-_080AADD0:
- movs r6, 0
- mov r8, r5
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x58]
- ldr r2, [sp, 0x48]
- adds r2, 0x20
- str r2, [sp, 0x5C]
- cmp r6, r7
- bge _080AAE1E
- add r5, sp, 0x40
- add r0, sp, 0x20
- mov r10, r0
- ldr r2, _080AAEC4
-_080AADEC:
- mov r1, r9
- adds r0, r1, r6
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- mov r0, sp
- adds r1, r5, 0
- str r2, [sp, 0x60]
- bl sub_80034D4
- mov r1, r8
- lsls r0, r1, 8
- ldr r2, [sp, 0x60]
- subs r0, r2, r0
- mov r1, r10
- str r1, [r4]
- str r0, [r4, 0x4]
- ldr r0, _080AAED0
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x20
- adds r6, 0x1
- cmp r6, r7
- blt _080AADEC
-_080AAE1E:
- movs r1, 0x7C
- ldr r2, [sp, 0x58]
- subs r1, r2
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080AAED4
- mov r9, r0
- lsls r3, r7, 3
- add r3, r9
- ldr r0, _080AAED8
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x50]
- str r2, [sp, 0x54]
- str r1, [r3, 0x3C]
- str r2, [r3, 0x40]
- mov r2, r8
- lsls r0, r2, 3
- movs r1, 0x80
- lsls r1, 3
- adds r2, r1, 0
- subs r2, r0
- adds r6, r3, 0
- adds r6, 0x40
- ldr r0, _080AAEDC
- mov r8, r0
- mov r1, r8
- ands r2, r1
- ldrh r5, [r6]
- ldr r4, _080AAEE0
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r2
- strh r0, [r6]
- ldrh r5, [r3, 0x3E]
- ldr r2, _080AAEE4
- adds r0, r2, 0
- ands r0, r5
- ldr r1, [sp, 0x48]
- orrs r0, r1
- strh r0, [r3, 0x3E]
- adds r3, 0x3C
- add r0, sp, 0x4C
- ldrb r0, [r0]
- strb r0, [r3]
- adds r1, r7, 0x1
- lsls r1, 3
- mov r0, r9
- adds r7, r1, r0
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- str r0, [r7, 0x3C]
- str r1, [r7, 0x40]
- ldrh r0, [r6]
- lsls r0, 22
- lsrs r0, 22
- adds r0, 0x4
- adds r5, r7, 0
- adds r5, 0x40
- mov r1, r8
- ands r0, r1
- ldrh r3, [r5]
- ands r4, r3
- orrs r4, r0
- strh r4, [r5]
- ldrh r0, [r7, 0x3E]
- ands r2, r0
- ldr r0, [sp, 0x5C]
- orrs r2, r0
- strh r2, [r7, 0x3E]
- adds r1, r7, 0
- adds r1, 0x3C
- add r2, sp, 0x4C
- ldrb r2, [r2]
- strb r2, [r1]
- add sp, 0x64
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAEC4: .4byte 0x06018000
-_080AAEC8: .4byte 0x040000d4
-_080AAECC: .4byte 0x85000040
-_080AAED0: .4byte 0x84000008
-_080AAED4: .4byte gMain
-_080AAED8: .4byte gUnknown_083C9400
-_080AAEDC: .4byte 0x000003ff
-_080AAEE0: .4byte 0xfffffc00
-_080AAEE4: .4byte 0xfffffe00
- thumb_func_end sub_80AAD84
-
- thumb_func_start unref_sub_80AAEE8
-unref_sub_80AAEE8: @ 80AAEE8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- movs r0, 0
- cmp r4, 0
- bge _080AAF08
- mov r1, sp
- movs r0, 0xAE
- strb r0, [r1]
- movs r0, 0x1
-_080AAF08:
- add r0, sp
- adds r1, r4, 0
- cmp r1, 0
- bge _080AAF12
- negs r1, r1
-_080AAF12:
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_80AAD84
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AAEE8
-
- thumb_func_start sub_80AAF30
-sub_80AAF30: @ 80AAF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080AAFC0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080AAFC4
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r4, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r3, _080AAFC8
- movs r2, 0x3
-_080AAF56:
- adds r1, r4, r3
- subs r0, r2, r4
- strb r0, [r1]
- subs r4, 0x1
- cmp r4, r5
- bgt _080AAF56
- movs r4, 0
- movs r6, 0
- ldr r7, _080AAFCC
- ldr r5, _080AAFD0
- mov r9, r5
-_080AAF6C:
- lsls r1, r4, 1
- strh r6, [r7]
- ldr r0, _080AAFD4
- mov r8, r0
- adds r0, r1, r0
- strh r6, [r0]
- ldr r3, _080AAFD8
- adds r1, r3
- strh r6, [r1]
- adds r0, r5, 0
- mov r1, r9
- adds r1, 0xC0
- movs r2, 0x40
- str r3, [sp]
- bl memcpy
- adds r7, 0x2
- adds r5, 0x40
- adds r4, 0x1
- ldr r3, [sp]
- cmp r4, 0x2
- ble _080AAF6C
- ldr r0, _080AAFCC
- movs r1, 0x96
- lsls r1, 1
- strh r1, [r0, 0x6]
- movs r0, 0xC8
- lsls r0, 1
- mov r1, r8
- strh r0, [r1, 0x6]
- strh r0, [r3, 0x6]
- movs r0, 0xFE
- bl sub_80B2A7C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAFC0: .4byte gUnknown_0203856C
-_080AAFC4: .4byte gUnknown_02038695
-_080AAFC8: .4byte gUnknown_02038690
-_080AAFCC: .4byte gUnknown_02038670
-_080AAFD0: .4byte gUnknown_02038570
-_080AAFD4: .4byte gUnknown_02038680
-_080AAFD8: .4byte gUnknown_02038678
- thumb_func_end sub_80AAF30
-
- thumb_func_start sub_80AAFDC
-sub_80AAFDC: @ 80AAFDC
- push {lr}
- bl sub_80AAF30
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80AAFDC
-
- thumb_func_start sub_80AAFEC
-sub_80AAFEC: @ 80AAFEC
- push {r4,lr}
- ldr r1, _080AB01C
- movs r0, 0
- strb r0, [r1]
- movs r4, 0
- ldr r3, _080AB020
- ldr r2, _080AB024
- ldr r1, _080AB028
- movs r0, 0x3
-_080AAFFE:
- strh r4, [r1]
- strh r4, [r2]
- strh r4, [r3]
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- subs r0, 0x1
- cmp r0, 0
- bge _080AAFFE
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB01C: .4byte gUnknown_0203856C
-_080AB020: .4byte gUnknown_02038678
-_080AB024: .4byte gUnknown_02038680
-_080AB028: .4byte gUnknown_02038670
- thumb_func_end sub_80AAFEC
-
- thumb_func_start sub_80AB02C
-sub_80AB02C: @ 80AB02C
- push {r4,r5,lr}
- ldr r1, _080AB078
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r2, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r4, _080AB07C
- movs r3, 0x3
-_080AB044:
- adds r1, r2, r4
- subs r0, r3, r2
- strb r0, [r1]
- subs r2, 0x1
- cmp r2, r5
- bgt _080AB044
- ldr r1, _080AB080
- movs r0, 0
- strh r0, [r1]
- adds r4, r1, 0
-_080AB058:
- movs r0, 0xFF
- bl sub_80B2A7C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080AB058
- bl sub_8071C20
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB078: .4byte gUnknown_02038695
-_080AB07C: .4byte gUnknown_02038690
-_080AB080: .4byte gUnknown_0203869C
- thumb_func_end sub_80AB02C
-
- thumb_func_start unref_sub_80AB084
-unref_sub_80AB084: @ 80AB084
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r0, _080AB160
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x22
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- movs r2, 0x80
- lsls r2, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r2]
- ldr r3, _080AB164
- ldrh r2, [r3]
- strh r1, [r3]
- ldr r4, _080AB168
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _080AB16C
- movs r0, 0x8
- strh r0, [r1]
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080AB170
- bl SetMainCallback2
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _080AB174
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080AB178
- movs r7, 0x85
- lsls r7, 24
-_080AB108:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB108
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _080AB17C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r5, _080AB180
- adds r0, r5, 0
- adds r1, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- bl LoadFontDefaultPalette
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- mov r1, r8
- movs r2, 0x1
- movs r3, 0x9
- bl sub_8003460
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte REG_BG0HOFS
-_080AB164: .4byte 0x04000208
-_080AB168: .4byte 0x04000200
-_080AB16C: .4byte REG_DISPSTAT
-_080AB170: .4byte sub_80AB184
-_080AB174: .4byte 0x040000d4
-_080AB178: .4byte 0x85000400
-_080AB17C: .4byte gWindowConfig_81E6FD8
-_080AB180: .4byte gUnknown_03004210
- thumb_func_end unref_sub_80AB084
-
- thumb_func_start sub_80AB184
-sub_80AB184: @ 80AB184
- ldr r0, _080AB1A8
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080AB1A8: .4byte REG_BG0HOFS
- thumb_func_end sub_80AB184
-
- thumb_func_start nullsub_89
-nullsub_89: @ 80AB1AC
- bx lr
- thumb_func_end nullsub_89
-
- thumb_func_start sub_80AB1B0
-sub_80AB1B0: @ 80AB1B0
- ldr r1, _080AB1B8
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080AB1B8: .4byte gUnknown_0203869A
- thumb_func_end sub_80AB1B0
-
- thumb_func_start sub_80AB1BC
-sub_80AB1BC: @ 80AB1BC
- push {r4-r6,lr}
- movs r6, 0x80
- lsls r6, 19
- movs r0, 0x40
- strh r0, [r6]
- ldr r4, _080AB260
- ldrh r3, [r4]
- movs r2, 0
- strh r2, [r4]
- ldr r5, _080AB264
- ldrh r0, [r5]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r5]
- strh r3, [r4]
- ldr r1, _080AB268
- movs r0, 0x8
- strh r0, [r1]
- adds r1, 0x4
- movs r3, 0x98
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080AB26C
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x9C
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080AB270
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080AB274
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- subs r0, 0xC
- ldr r3, _080AB278
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r0, [r6]
- movs r3, 0xFE
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r6]
- ldr r0, _080AB27C
- strh r2, [r0]
- ldr r0, _080AB280
- strh r2, [r0]
- ldr r0, _080AB284
- strh r2, [r0]
- ldr r0, _080AB288
- strh r2, [r0]
- ldr r0, _080AB28C
- strh r2, [r0]
- ldr r0, _080AB290
- strh r2, [r0]
- ldr r0, _080AB294
- strh r2, [r0]
- ldr r0, _080AB298
- strh r2, [r0]
- ldr r0, _080AB29C
- strh r2, [r0]
- ldr r0, _080AB2A0
- strh r2, [r0]
- ldr r0, _080AB2A4
- strh r2, [r0]
- ldr r0, _080AB2A8
- strh r2, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB260: .4byte 0x04000208
-_080AB264: .4byte 0x04000200
-_080AB268: .4byte REG_DISPSTAT
-_080AB26C: .4byte 0x00009e09
-_080AB270: .4byte 0x00003a03
-_080AB274: .4byte REG_BLDCNT
-_080AB278: .4byte 0x00003f3f
-_080AB27C: .4byte gUnknown_030042A4
-_080AB280: .4byte gUnknown_030042A0
-_080AB284: .4byte gUnknown_030042C0
-_080AB288: .4byte gUnknown_030041B4
-_080AB28C: .4byte gUnknown_03004288
-_080AB290: .4byte gUnknown_03004280
-_080AB294: .4byte gUnknown_030041B0
-_080AB298: .4byte gUnknown_030041B8
-_080AB29C: .4byte gUnknown_030042C4
-_080AB2A0: .4byte gUnknown_03004240
-_080AB2A4: .4byte gUnknown_03004200
-_080AB2A8: .4byte gUnknown_03004244
- thumb_func_end sub_80AB1BC
-
- thumb_func_start sub_80AB2AC
-sub_80AB2AC: @ 80AB2AC
- push {r4,r5,lr}
- ldr r0, _080AB300
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _080AB304
- ldr r1, _080AB308
- bl LZDecompressVram
- ldr r0, _080AB30C
- ldr r1, _080AB310
- bl LZDecompressVram
- ldr r0, _080AB314
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- bl sub_80AB350
- movs r4, 0
- movs r5, 0xA0
-_080AB2DC:
- ldr r0, _080AB318
- adds r0, r5, r0
- ldr r1, _080AB31C
- adds r1, r4, r1
- ldrb r1, [r1]
- adds r1, 0x5
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x20
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AB2DC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB300: .4byte gContestMiscGfx
-_080AB304: .4byte gContestAudienceGfx
-_080AB308: .4byte 0x06002000
-_080AB30C: .4byte gUnknown_08D1725C
-_080AB310: .4byte 0x0600d000
-_080AB314: .4byte gUnknown_08D17144
-_080AB318: .4byte 0x02018004
-_080AB31C: .4byte gUnknown_02038696
- thumb_func_end sub_80AB2AC
-
- thumb_func_start sub_80AB320
-sub_80AB320: @ 80AB320
- push {r4,lr}
- ldr r4, _080AB340
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080AB344
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _080AB348
- ldr r1, _080AB34C
- bl InitWindowFromConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB340: .4byte gWindowConfig_81E6FD8
-_080AB344: .4byte gUnknown_03004210
-_080AB348: .4byte gMenuWindow
-_080AB34C: .4byte gWindowConfig_81E6FF4
- thumb_func_end sub_80AB320
-
- thumb_func_start sub_80AB350
-sub_80AB350: @ 80AB350
- push {r4,lr}
- ldr r0, _080AB38C
- bl LoadFontDefaultPalette
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- movs r4, 0xA
-_080AB364:
- adds r1, r4, 0
- adds r1, 0xF0
- ldr r0, _080AB390
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xD
- bls _080AB364
- ldr r0, _080AB394
- movs r1, 0xF3
- movs r2, 0x2
- bl FillPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB38C: .4byte gWindowConfig_81E6FD8
-_080AB390: .4byte gPlttBufferUnfaded + 0x1E2
-_080AB394: .4byte 0x00007e3f
- thumb_func_end sub_80AB350
-
- thumb_func_start sub_80AB398
-sub_80AB398: @ 80AB398
- push {r4-r6,lr}
- ldr r4, _080AB468
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x5C
- bl memset
- movs r5, 0
- adds r4, 0x2
- movs r2, 0xFF
-_080AB3AC:
- adds r1, r5, r4
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x3
- ble _080AB3AC
- ldr r4, _080AB46C
- movs r5, 0x3
-_080AB3BE:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1C
- bl memset
- adds r4, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _080AB3BE
- ldr r4, _080AB470
- movs r6, 0x4
- negs r6, r6
- movs r3, 0xFF
- adds r2, r4, 0
- subs r2, 0x65
- movs r5, 0x3
-_080AB3DE:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r2, 0x8]
- orrs r0, r3
- strb r0, [r2, 0x8]
- ldrb r0, [r2, 0x9]
- orrs r0, r3
- strb r0, [r2, 0x9]
- adds r2, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _080AB3DE
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x14
- bl memset
- adds r0, r4, 0
- adds r0, 0x14
- movs r1, 0
- movs r2, 0x44
- bl memset
- adds r0, r4, 0
- adds r0, 0x58
- movs r1, 0
- movs r2, 0x4
- bl memset
- adds r0, r4, 0
- adds r0, 0x68
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldr r0, _080AB474
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AB43A
- movs r0, 0
- bl sub_80B0F28
-_080AB43A:
- movs r5, 0
- movs r6, 0xFF
- adds r3, r4, 0
- subs r3, 0xB8
- adds r2, r4, 0
- subs r2, 0x57
- ldr r4, _080AB478
-_080AB448:
- ldrb r0, [r2]
- orrs r0, r6
- strb r0, [r2]
- adds r1, r3, r5
- adds r0, r5, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080AB448
- bl sub_80B159C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB468: .4byte 0x02019204
-_080AB46C: .4byte 0x02019260
-_080AB470: .4byte 0x020192d0
-_080AB474: .4byte gUnknown_0203869A
-_080AB478: .4byte gUnknown_02038696
- thumb_func_end sub_80AB398
-
- thumb_func_start sub_80AB47C
-sub_80AB47C: @ 80AB47C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _080AB498
- ldr r1, _080AB49C
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _080AB554
- cmp r0, 0x1
- bgt _080AB4A0
- cmp r0, 0
- beq _080AB4AA
- b _080AB5AE
- .align 2, 0
-_080AB498: .4byte gMain
-_080AB49C: .4byte 0x0000043c
-_080AB4A0:
- cmp r0, 0x2
- beq _080AB55A
- cmp r0, 0x3
- beq _080AB578
- b _080AB5AE
-_080AB4AA:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80AB320
- bl sub_80AB1BC
- bl dp12_8087EA4
- bl ResetPaletteFade
- ldr r0, _080AB538
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _080AB53C
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080AB540
- movs r7, 0x85
- lsls r7, 24
-_080AB4E0:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB4E0
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r1, _080AB544
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080AB548
- movs r1, 0xC0
- lsls r1, 9
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bl sub_8040710
- bl sub_80AB398
- ldr r1, _080AB54C
- ldr r0, _080AB550
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080AB5AE
- .align 2, 0
-_080AB538: .4byte gPaletteFade
-_080AB53C: .4byte 0x040000d4
-_080AB540: .4byte 0x85000400
-_080AB544: .4byte gReservedSpritePaletteCount
-_080AB548: .4byte 0x02000000
-_080AB54C: .4byte gMain
-_080AB550: .4byte 0x0000043c
-_080AB554:
- bl sub_80AB350
- b _080AB56C
-_080AB55A:
- ldr r5, _080AB574
- adds r0, r5, 0
- bl sub_80AB70C
- lsls r0, 24
- cmp r0, 0
- beq _080AB5AE
- movs r0, 0
- strb r0, [r5]
-_080AB56C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080AB5AE
- .align 2, 0
-_080AB574: .4byte 0x0201925d
-_080AB578:
- bl sub_80B2184
- ldr r0, _080AB5B8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AB5BC
- strh r1, [r0]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r2, _080AB5C0
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080AB5C4
- bl SetVBlankCallback
- ldr r0, _080AB5C8
- movs r1, 0xA
- bl CreateTask
- ldr r1, _080AB5CC
- strb r0, [r1, 0x8]
- ldr r0, _080AB5D0
- bl SetMainCallback2
-_080AB5AE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB5B8: .4byte gUnknown_030042C0
-_080AB5BC: .4byte gUnknown_030041B4
-_080AB5C0: .4byte gPaletteFade
-_080AB5C4: .4byte sub_80ABAC4
-_080AB5C8: .4byte sub_80AB5D4
-_080AB5CC: .4byte 0x02019204
-_080AB5D0: .4byte sub_80ABAAC
- thumb_func_end sub_80AB47C
-
- thumb_func_start sub_80AB5D4
-sub_80AB5D4: @ 80AB5D4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080AB5F8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AB5F4
- ldr r0, _080AB5FC
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AB600
- str r0, [r1]
-_080AB5F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080AB5F8: .4byte gPaletteFade
-_080AB5FC: .4byte gTasks
-_080AB600: .4byte sub_80AB604
- thumb_func_end sub_80AB5D4
-
- thumb_func_start sub_80AB604
-sub_80AB604: @ 80AB604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080AB648
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AB65C
- ldr r2, _080AB64C
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AB66A
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- bl sub_80AF860
- ldr r0, _080AB650
- movs r1, 0
- bl CreateTask
- ldr r1, _080AB654
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080AB658
- str r1, [r0]
- b _080AB66A
- .align 2, 0
-_080AB648: .4byte gUnknown_0203869A
-_080AB64C: .4byte gPaletteFade
-_080AB650: .4byte sub_80AB678
-_080AB654: .4byte gTasks
-_080AB658: .4byte nullsub_89
-_080AB65C:
- ldr r0, _080AB670
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AB674
- str r0, [r1]
-_080AB66A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB670: .4byte gTasks
-_080AB674: .4byte sub_80AB960
- thumb_func_end sub_80AB604
-
- thumb_func_start sub_80AB678
-sub_80AB678: @ 80AB678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080AB68C
- ldr r2, _080AB690
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080AB68C: .4byte sub_80C89DC
-_080AB690: .4byte sub_80AB694
- thumb_func_end sub_80AB678
-
- thumb_func_start sub_80AB694
-sub_80AB694: @ 80AB694
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- ldr r2, _080AB6AC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r3, [r1, 0x8]
- ldr r0, _080AB6B0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080AB6AC: .4byte gTasks
-_080AB6B0: .4byte sub_80AB6B4
- thumb_func_end sub_80AB694
-
- thumb_func_start sub_80AB6B4
-sub_80AB6B4: @ 80AB6B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080AB6F8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r5
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bgt _080AB6F2
- bl GetMultiplayerId
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080AB6FC
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- ldr r1, _080AB700
- str r1, [r0]
- ldr r1, _080AB704
- ldr r0, _080AB708
- ldr r0, [r0]
- str r0, [r1]
-_080AB6F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB6F8: .4byte gTasks
-_080AB6FC: .4byte 0x02019204
-_080AB700: .4byte sub_80AB960
-_080AB704: .4byte gRngValue
-_080AB708: .4byte gUnknown_03005D28
- thumb_func_end sub_80AB6B4
-
- thumb_func_start sub_80AB70C
-sub_80AB70C: @ 80AB70C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _080AB722
- b _080AB93C
-_080AB722:
- lsls r0, 2
- ldr r1, _080AB72C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AB72C: .4byte _080AB730
- .align 2, 0
-_080AB730:
- .4byte _080AB74C
- .4byte _080AB7A0
- .4byte _080AB7B0
- .4byte _080AB800
- .4byte _080AB814
- .4byte _080AB844
- .4byte _080AB8CC
-_080AB74C:
- ldr r0, _080AB794
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- add r5, sp, 0x40
- movs r6, 0
- ldr r1, _080AB798
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r7, _080AB79C
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080AB772:
- str r6, [sp, 0x40]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB772
- str r6, [sp, 0x40]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- b _080AB7E6
- .align 2, 0
-_080AB794: .4byte gPaletteFade
-_080AB798: .4byte 0x040000d4
-_080AB79C: .4byte 0x85000400
-_080AB7A0:
- ldr r0, _080AB7AC
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _080AB946
- .align 2, 0
-_080AB7AC: .4byte gContestMiscGfx
-_080AB7B0:
- ldr r0, _080AB7EC
- ldr r4, _080AB7F0
- adds r1, r4, 0
- bl LZDecompressVram
- ldr r3, _080AB7F4
- movs r5, 0x80
- lsls r5, 6
- ldr r1, _080AB7F8
- ldr r6, _080AB7FC
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x84
- lsls r7, 24
-_080AB7CC:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _080AB7CC
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 2
- orrs r0, r7
-_080AB7E6:
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _080AB946
- .align 2, 0
-_080AB7EC: .4byte gContestAudienceGfx
-_080AB7F0: .4byte 0x06002000
-_080AB7F4: .4byte 0x02015800
-_080AB7F8: .4byte 0x040000d4
-_080AB7FC: .4byte 0x84000400
-_080AB800:
- ldr r0, _080AB80C
- ldr r1, _080AB810
- bl LZDecompressVram
- b _080AB946
- .align 2, 0
-_080AB80C: .4byte gUnknown_08D1725C
-_080AB810: .4byte 0x0600d000
-_080AB814:
- ldr r0, _080AB830
- ldr r4, _080AB834
- adds r1, r4, 0
- bl LZDecompressVram
- ldr r1, _080AB838
- ldr r0, _080AB83C
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080AB840
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080AB946
- .align 2, 0
-_080AB830: .4byte gUnknown_08D17424
-_080AB834: .4byte 0x0600e000
-_080AB838: .4byte 0x02018a04
-_080AB83C: .4byte 0x040000d4
-_080AB840: .4byte 0x84000200
-_080AB844:
- ldr r0, _080AB8AC
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- ldr r5, _080AB8B0
- ldr r6, _080AB8B4
- adds r0, r5, 0
- mov r1, sp
- adds r2, r6, 0
- bl CpuSet
- ldr r0, _080AB8B8
- mov r9, r0
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 5
- ldr r1, _080AB8BC
- adds r1, r5
- mov r8, r1
- add r0, r8
- add r4, sp, 0x20
- adds r1, r4, 0
- adds r2, r6, 0
- bl CpuSet
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CpuSet
- mov r2, r9
- ldrb r1, [r2]
- adds r1, 0x5
- lsls r1, 5
- add r1, r8
- mov r0, sp
- adds r2, r6, 0
- bl CpuSet
- ldr r1, _080AB8C0
- ldr r0, _080AB8C4
- mov r2, r8
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080AB8C8
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_80AB350
- b _080AB946
- .align 2, 0
-_080AB8AC: .4byte gUnknown_08D17144
-_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
-_080AB8B4: .4byte REG_BG0CNT
-_080AB8B8: .4byte gUnknown_02038695
-_080AB8BC: .4byte 0xffffff00
-_080AB8C0: .4byte 0x02018004
-_080AB8C4: .4byte 0x040000d4
-_080AB8C8: .4byte 0x84000080
-_080AB8CC:
- bl sub_80B1118
- bl sub_80AFA5C
- bl sub_80AEB30
- bl sub_80AE8B4
- ldr r1, _080AB924
- movs r4, 0
- strb r0, [r1, 0x12]
- bl sub_80AFE30
- bl sub_80B0034
- bl sub_80B00C8
- bl sub_80B0324
- bl sub_80B0518
- ldr r1, _080AB928
- strb r4, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r3, 0x3
- strb r3, [r1, 0x2]
- movs r2, 0x2
- strb r2, [r1, 0x3]
- ldr r0, _080AB92C
- strh r4, [r0]
- ldr r4, _080AB930
- strb r2, [r4]
- ldr r0, _080AB934
- strb r3, [r0]
- bl sub_80AE858
- ldr r2, _080AB938
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- bl sub_80B292C
- b _080AB946
- .align 2, 0
-_080AB924: .4byte 0x02019204
-_080AB928: .4byte gUnknown_02024A72
-_080AB92C: .4byte gUnknown_020239F8
-_080AB930: .4byte gUnknown_02024C07
-_080AB934: .4byte gUnknown_02024C08
-_080AB938: .4byte gUnknown_02024BE0
-_080AB93C:
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x1
- b _080AB950
-_080AB946:
- mov r2, r10
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r0, 0
-_080AB950:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80AB70C
-
- thumb_func_start sub_80AB960
-sub_80AB960: @ 80AB960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080AB994
- ldrb r2, [r1, 0x8]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x8]
- ldrb r1, [r1, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080AB990
- ldr r0, _080AB998
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, _080AB99C
- str r0, [r1]
-_080AB990:
- pop {r0}
- bx r0
- .align 2, 0
-_080AB994: .4byte gPaletteFade
-_080AB998: .4byte gTasks
-_080AB99C: .4byte sub_80AB9A0
- thumb_func_end sub_80AB960
-
- thumb_func_start sub_80AB9A0
-sub_80AB9A0: @ 80AB9A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AB9C4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080ABA7C
- lsls r0, 2
- ldr r1, _080AB9C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AB9C4: .4byte gTasks
-_080AB9C8: .4byte _080AB9CC
- .align 2, 0
-_080AB9CC:
- .4byte _080AB9E0
- .4byte _080ABA0A
- .4byte _080ABA28
- .4byte _080ABA44
- .4byte _080ABA7C
-_080AB9E0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080ABA9C
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x61
- movs r1, 0
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080ABA9C
-_080ABA0A:
- ldr r1, _080ABA24
- ldrh r0, [r1]
- adds r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _080ABA9C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- b _080ABA68
- .align 2, 0
-_080ABA24: .4byte gUnknown_030041B4
-_080ABA28:
- bl sub_80B2280
- ldr r0, _080ABA40
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080ABA9C
- .align 2, 0
-_080ABA40: .4byte gTasks
-_080ABA44:
- ldr r3, _080ABA70
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldr r2, _080ABA74
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- bl sub_80B1B14
- ldr r1, _080ABA78
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
-_080ABA68:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080ABA9C
- .align 2, 0
-_080ABA70: .4byte REG_BG0CNT
-_080ABA74: .4byte REG_BG2CNT
-_080ABA78: .4byte gTasks
-_080ABA7C:
- ldr r0, _080ABAA4
- ldrb r1, [r0, 0x6]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080ABA9C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, _080ABAA8
- str r1, [r0]
-_080ABA9C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABAA4: .4byte 0x02019204
-_080ABAA8: .4byte sub_80ABB70
- thumb_func_end sub_80AB9A0
-
- thumb_func_start sub_80ABAAC
-sub_80ABAAC: @ 80ABAAC
- push {lr}
- bl AnimateSprites
- bl RunTasks
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80ABAAC
-
- thumb_func_start sub_80ABAC4
-sub_80ABAC4: @ 80ABAC4
- push {lr}
- ldr r1, _080ABB3C
- ldr r0, _080ABB40
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB44
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB48
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB4C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB50
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB54
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB58
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080ABB5C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _080ABB60
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080ABB64
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _080ABB68
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080ABB6C
- ldrh r0, [r0]
- strh r0, [r1]
- bl TransferPlttBuffer
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080ABB3C: .4byte REG_BG0HOFS
-_080ABB40: .4byte gUnknown_030042A4
-_080ABB44: .4byte gUnknown_030042A0
-_080ABB48: .4byte gUnknown_030042C0
-_080ABB4C: .4byte gUnknown_030041B4
-_080ABB50: .4byte gUnknown_03004288
-_080ABB54: .4byte gUnknown_03004280
-_080ABB58: .4byte gUnknown_030041B0
-_080ABB5C: .4byte gUnknown_030041B8
-_080ABB60: .4byte gUnknown_030042C4
-_080ABB64: .4byte gUnknown_03004240
-_080ABB68: .4byte gUnknown_03004200
-_080ABB6C: .4byte gUnknown_03004244
- thumb_func_end sub_80ABAC4
-
- thumb_func_start sub_80ABB70
-sub_80ABB70: @ 80ABB70
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080ABBB0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080ABBB4
- strh r1, [r0]
- bl sub_80B0D7C
- ldr r1, _080ABBB8
- ldr r2, _080ABBBC
- ldr r0, _080ABBC0
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080ABBC4
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080ABBC8
- ldrb r0, [r0]
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080ABBD4
- ldr r0, _080ABBCC
- ldr r1, _080ABBD0
- bl StringCopy
- b _080ABBDC
- .align 2, 0
-_080ABBB0: .4byte gUnknown_030042A0
-_080ABBB4: .4byte gUnknown_03004280
-_080ABBB8: .4byte gPlttBufferUnfaded
-_080ABBBC: .4byte 0x02018204
-_080ABBC0: .4byte 0x040000d4
-_080ABBC4: .4byte 0x84000100
-_080ABBC8: .4byte gUnknown_02038695
-_080ABBCC: .4byte gUnknown_020238CC
-_080ABBD0: .4byte gUnknown_083CAF84
-_080ABBD4:
- ldr r0, _080ABC20
- ldr r1, _080ABC24
- bl StringCopy
-_080ABBDC:
- ldr r5, _080ABC20
- ldr r0, _080ABC28
- ldrb r1, [r0, 0x1]
- adds r1, 0x1
- adds r0, r5, 0
- bl sub_80AE020
- bl sub_80AF138
- ldr r4, _080ABC2C
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringExpandPlaceholders
- ldr r0, _080ABC30
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080ABC34
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ABC38
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABC20: .4byte gUnknown_020238CC
-_080ABC24: .4byte gUnknown_083CAFAE
-_080ABC28: .4byte 0x02019204
-_080ABC2C: .4byte gStringVar4
-_080ABC30: .4byte gMenuWindow
-_080ABC34: .4byte gTasks
-_080ABC38: .4byte sub_80ABC3C
- thumb_func_end sub_80ABB70
-
- thumb_func_start sub_80ABC3C
-sub_80ABC3C: @ 80ABC3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080ABC64
- bl sub_80037A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080ABC5E
- ldr r0, _080ABC68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ABC6C
- str r0, [r1]
-_080ABC5E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABC64: .4byte gMenuWindow
-_080ABC68: .4byte gTasks
-_080ABC6C: .4byte sub_80ABC70
- thumb_func_end sub_80ABC3C
-
- thumb_func_start sub_80ABC70
-sub_80ABC70: @ 80ABC70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _080ABCB0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080ABC88
- cmp r1, 0x2
- bne _080ABCCE
-_080ABC88:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ABCB4
- ldrb r0, [r0]
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080ABCC0
- movs r0, 0x1
- bl sub_80AFFE0
- ldr r0, _080ABCB8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ABCBC
- b _080ABCCC
- .align 2, 0
-_080ABCB0: .4byte gMain
-_080ABCB4: .4byte gUnknown_02038695
-_080ABCB8: .4byte gTasks
-_080ABCBC: .4byte sub_80ABCDC
-_080ABCC0:
- ldr r0, _080ABCD4
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ABCD8
-_080ABCCC:
- str r0, [r1]
-_080ABCCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABCD4: .4byte gTasks
-_080ABCD8: .4byte sub_80AC0C8
- thumb_func_end sub_80ABC70
-
- thumb_func_start sub_80ABCDC
-sub_80ABCDC: @ 80ABCDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, _080ABD80
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080ABD84
- strh r1, [r0]
- ldr r5, _080ABD88
- ldr r4, _080ABD8C
- ldrb r2, [r4]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- str r0, [sp]
- ldrb r0, [r4, 0x3]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- movs r6, 0
- ldr r0, _080ABD90
- mov r8, r0
- ldr r7, _080ABD94
- mov r9, r5
- mov r10, r4
-_080ABD1C:
- lsls r1, r6, 1
- mov r3, r8
- ldrb r2, [r3]
- lsls r0, r2, 6
- adds r1, r0
- ldr r0, _080ABD98
- adds r1, r0
- ldrh r4, [r1]
- add r5, sp, 0x8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _080ABDA0
- adds r0, r2, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _080ABDA0
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r0, [r0, 0x8]
- adds r1, r4, 0
- bl AreMovesContestCombo
- lsls r0, 24
- cmp r0, 0
- beq _080ABDA0
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080ABDA0
- add r0, sp, 0x8
- ldr r1, _080ABD9C
- b _080ABDC6
- .align 2, 0
-_080ABD80: .4byte gUnknown_030042A0
-_080ABD84: .4byte gUnknown_03004280
-_080ABD88: .4byte gUnknown_03004210
-_080ABD8C: .4byte gUnknown_083CA340
-_080ABD90: .4byte gUnknown_02038695
-_080ABD94: .4byte 0x02019260
-_080ABD98: .4byte gUnknown_0203858E
-_080ABD9C: .4byte gUnknownText_UnknownFormatting2
-_080ABDA0:
- cmp r4, 0
- beq _080ABDCC
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrh r0, [r1, 0x8]
- cmp r0, r4
- bne _080ABDCC
- ldr r0, _080ABE74
- lsls r1, r4, 3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- beq _080ABDCC
- add r0, sp, 0x8
- ldr r1, _080ABE78
-_080ABDC6:
- bl StringCopy
- adds r5, r0, 0
-_080ABDCC:
- movs r0, 0xD
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080ABE7C
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- lsls r1, r6, 2
- adds r2, r1, r6
- lsls r2, 18
- movs r3, 0xC2
- lsls r3, 18
- adds r2, r3
- lsrs r2, 16
- mov r3, r10
- adds r0, r1, r3
- ldrb r3, [r0]
- lsls r3, 3
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080ABE80
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r0, r9
- add r1, sp, 0x8
- bl sub_8002E4C
- mov r0, r9
- bl sub_8002F44
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080ABE20
- b _080ABD1C
-_080ABE20:
- ldr r1, _080ABE84
- ldr r3, _080ABE88
- movs r0, 0x48
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- ldr r4, _080ABE8C
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl sub_80AC0AC
- ldr r2, _080ABE90
- ldrb r1, [r4]
- lsls r1, 1
- ldr r0, _080ABE94
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl sub_80AEBEC
- ldr r1, _080ABE98
- ldr r2, [sp, 0x28]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ABE9C
- str r1, [r0]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABE74: .4byte gContestMoves
-_080ABE78: .4byte gUnknownText_UnknownFormatting3
-_080ABE7C: .4byte gMoveNames
-_080ABE80: .4byte gUnknown_083CA340 + 0x1
-_080ABE84: .4byte 0x0000ffff
-_080ABE88: .4byte 0x00002d9f
-_080ABE8C: .4byte 0x02019204
-_080ABE90: .4byte gUnknown_02038570
-_080ABE94: .4byte gUnknown_02038695
-_080ABE98: .4byte gTasks
-_080ABE9C: .4byte sub_80ABEA0
- thumb_func_end sub_80ABCDC
-
- thumb_func_start sub_80ABEA0
-sub_80ABEA0: @ 80ABEA0
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r3, _080ABEF4
- ldr r1, _080ABEF8
- ldr r0, _080ABEFC
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, 0x1E
- adds r1, r0, r1
- movs r2, 0x3
-_080ABEBA:
- ldrh r0, [r1]
- cmp r0, 0
- beq _080ABEC6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080ABEC6:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080ABEBA
- ldrh r0, [r3, 0x2E]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- beq _080ABF08
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ABF00
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ABF04
- str r0, [r1]
- b _080AC098
- .align 2, 0
-_080ABEF4: .4byte gMain
-_080ABEF8: .4byte gUnknown_02038570
-_080ABEFC: .4byte gUnknown_02038695
-_080ABF00: .4byte gTasks
-_080ABF04: .4byte sub_80AC0C8
-_080ABF08:
- ldrh r0, [r3, 0x30]
- cmp r0, 0x20
- bne _080ABF10
- b _080AC098
-_080ABF10:
- cmp r0, 0x20
- bgt _080ABF1A
- cmp r0, 0x2
- beq _080ABF26
- b _080AC098
-_080ABF1A:
- cmp r0, 0x40
- beq _080ABFEC
- cmp r0, 0x80
- bne _080ABF24
- b _080AC048
-_080ABF24:
- b _080AC098
-_080ABF26:
- bl sub_814A904
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80AFFE0
- ldr r0, _080ABF64
- ldr r1, _080ABF68
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- ldrb r4, [r1, 0x2]
- str r4, [sp]
- ldrb r1, [r1, 0x3]
- str r1, [sp, 0x4]
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, _080ABF6C
- ldrb r0, [r0]
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080ABF78
- ldr r0, _080ABF70
- ldr r1, _080ABF74
- bl StringCopy
- b _080ABF80
- .align 2, 0
-_080ABF64: .4byte gUnknown_03004210
-_080ABF68: .4byte gUnknown_083CA340
-_080ABF6C: .4byte gUnknown_02038695
-_080ABF70: .4byte gUnknown_020238CC
-_080ABF74: .4byte gUnknown_083CAF84
-_080ABF78:
- ldr r0, _080ABFC8
- ldr r1, _080ABFCC
- bl StringCopy
-_080ABF80:
- ldr r5, _080ABFC8
- ldr r0, _080ABFD0
- ldrb r1, [r0, 0x1]
- adds r1, 0x1
- adds r0, r5, 0
- bl sub_80AE020
- bl sub_80AF138
- ldr r4, _080ABFD4
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringExpandPlaceholders
- ldr r0, _080ABFD8
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8003460
- ldr r0, _080ABFDC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080ABFE0
- strh r1, [r0]
- ldr r1, _080ABFE4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ABFE8
- str r1, [r0]
- b _080AC098
- .align 2, 0
-_080ABFC8: .4byte gUnknown_020238CC
-_080ABFCC: .4byte gUnknown_083CAFAE
-_080ABFD0: .4byte 0x02019204
-_080ABFD4: .4byte gStringVar4
-_080ABFD8: .4byte gMenuWindow
-_080ABFDC: .4byte gUnknown_030042A0
-_080ABFE0: .4byte gUnknown_03004280
-_080ABFE4: .4byte gTasks
-_080ABFE8: .4byte sub_80ABC70
-_080ABFEC:
- ldr r4, _080AC000
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl nullsub_17
- ldrb r0, [r4]
- cmp r0, 0
- bne _080AC004
- subs r0, r6, 0x1
- b _080AC006
- .align 2, 0
-_080AC000: .4byte 0x02019204
-_080AC004:
- subs r0, 0x1
-_080AC006:
- strb r0, [r4]
- ldr r4, _080AC03C
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl sub_80AC0AC
- bl sub_80AED58
- ldr r2, _080AC040
- ldrb r1, [r4]
- lsls r1, 1
- ldr r0, _080AC044
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl sub_80AEBEC
- cmp r6, 0x1
- bls _080AC098
- movs r0, 0x5
- bl PlaySE
- b _080AC098
- .align 2, 0
-_080AC03C: .4byte 0x02019204
-_080AC040: .4byte gUnknown_02038570
-_080AC044: .4byte gUnknown_02038695
-_080AC048:
- ldr r4, _080AC060
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl nullsub_17
- ldrb r1, [r4]
- subs r0, r6, 0x1
- cmp r1, r0
- bne _080AC064
- strb r5, [r4]
- b _080AC068
- .align 2, 0
-_080AC060: .4byte 0x02019204
-_080AC064:
- adds r0, r1, 0x1
- strb r0, [r4]
-_080AC068:
- ldr r4, _080AC0A0
- movs r0, 0
- ldrsb r0, [r4, r0]
- bl sub_80AC0AC
- bl sub_80AED58
- ldr r2, _080AC0A4
- ldrb r1, [r4]
- lsls r1, 1
- ldr r0, _080AC0A8
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl sub_80AEBEC
- cmp r6, 0x1
- bls _080AC098
- movs r0, 0x5
- bl PlaySE
-_080AC098:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC0A0: .4byte 0x02019204
-_080AC0A4: .4byte gUnknown_02038570
-_080AC0A8: .4byte gUnknown_02038695
- thumb_func_end sub_80ABEA0
-
- thumb_func_start sub_80AC0AC
-sub_80AC0AC: @ 80AC0AC
- push {lr}
- adds r1, r0, 0
- lsls r1, 28
- movs r0, 0xB0
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x4
- bl sub_814A880
- pop {r0}
- bx r0
- thumb_func_end sub_80AC0AC
-
- thumb_func_start nullsub_17
-nullsub_17: @ 80AC0C4
- bx lr
- thumb_func_end nullsub_17
-
- thumb_func_start sub_80AC0C8
-sub_80AC0C8: @ 80AC0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080AC120
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AC13C
- ldr r4, _080AC124
- ldrb r0, [r4]
- bl sub_80AF15C
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r2, _080AC128
- adds r1, r2
- strh r0, [r1, 0x6]
- ldr r4, _080AC12C
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC130
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080AC134
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080AC138
- str r1, [r0]
- bl sub_80AF860
- movs r0, 0
- bl sub_80AFFE0
- b _080AC14E
- .align 2, 0
-_080AC120: .4byte gUnknown_0203869A
-_080AC124: .4byte gUnknown_02038695
-_080AC128: .4byte 0x02019260
-_080AC12C: .4byte sub_80C8A38
-_080AC130: .4byte sub_80AC15C
-_080AC134: .4byte gTasks
-_080AC138: .4byte nullsub_89
-_080AC13C:
- bl sub_80AF1B8
- ldr r0, _080AC154
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AC158
- str r0, [r1]
-_080AC14E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC154: .4byte gTasks
-_080AC158: .4byte sub_80AC188
- thumb_func_end sub_80AC0C8
-
- thumb_func_start sub_80AC15C
-sub_80AC15C: @ 80AC15C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r2, _080AC17C
- ldr r0, _080AC180
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080AC184
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080AC17C: .4byte gTasks
-_080AC180: .4byte 0x02019204
-_080AC184: .4byte sub_80AC188
- thumb_func_end sub_80AC15C
-
- thumb_func_start sub_80AC188
-sub_80AC188: @ 80AC188
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_80AF138
- ldr r0, _080AC1E4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AC1E8
- strh r1, [r0]
- movs r0, 0
- bl sub_80AFFE0
- ldr r1, _080AC1EC
- ldr r0, _080AC1F0
- movs r2, 0x80
- lsls r2, 3
- ldr r4, _080AC1F4
- str r1, [r4]
- str r0, [r4, 0x4]
- lsrs r1, r2, 2
- movs r3, 0x84
- lsls r3, 24
- orrs r1, r3
- str r1, [r4, 0x8]
- ldr r1, [r4, 0x8]
- ldr r1, _080AC1F8
- adds r0, r1
- movs r1, 0
- bl LoadPalette
- ldr r1, _080AC1FC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, _080AC200
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC1E4: .4byte gUnknown_030042A0
-_080AC1E8: .4byte gUnknown_03004280
-_080AC1EC: .4byte gPlttBufferFaded
-_080AC1F0: .4byte 0x02018604
-_080AC1F4: .4byte 0x040000d4
-_080AC1F8: .4byte 0xfffffc00
-_080AC1FC: .4byte gTasks
-_080AC200: .4byte sub_80AC204
- thumb_func_end sub_80AC188
-
- thumb_func_start sub_80AC204
-sub_80AC204: @ 80AC204
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC248
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080AC242
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AC242
- bl sub_80B1BDC
- movs r0, 0x1
- bl sub_80B25E4
- ldr r0, _080AC24C
- str r0, [r4]
-_080AC242:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC248: .4byte gTasks
-_080AC24C: .4byte sub_80AC250
- thumb_func_end sub_80AC204
-
- thumb_func_start sub_80AC250
-sub_80AC250: @ 80AC250
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080AC278
- ldrh r1, [r0, 0x6]
- movs r0, 0x90
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _080AC272
- ldr r0, _080AC27C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AC280
- str r0, [r1]
-_080AC272:
- pop {r0}
- bx r0
- .align 2, 0
-_080AC278: .4byte 0x02019204
-_080AC27C: .4byte gTasks
-_080AC280: .4byte sub_80AC284
- thumb_func_end sub_80AC250
-
- thumb_func_start sub_80AC284
-sub_80AC284: @ 80AC284
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC2BC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080AC2B6
- ldr r1, _080AC2C0
- movs r0, 0
- strb r0, [r1, 0x10]
- ldr r0, _080AC2C4
- ldr r0, [r0]
- str r0, [r1, 0x18]
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, _080AC2C8
- str r0, [r2]
-_080AC2B6:
- pop {r0}
- bx r0
- .align 2, 0
-_080AC2BC: .4byte gTasks
-_080AC2C0: .4byte 0x02019204
-_080AC2C4: .4byte gRngValue
-_080AC2C8: .4byte sub_80AC2CC
- thumb_func_end sub_80AC284
-
- thumb_func_start sub_80AC2CC
-sub_80AC2CC: @ 80AC2CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _080AC308
- ldrb r7, [r2, 0x11]
- ldr r1, _080AC30C
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- adds r6, r2, 0
- mov r12, r1
- cmp r0, 0x3B
- bls _080AC2FC
- bl _080AD8CA
-_080AC2FC:
- lsls r0, 2
- ldr r1, _080AC310
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AC308: .4byte 0x02019204
-_080AC30C: .4byte gTasks
-_080AC310: .4byte _080AC314
- .align 2, 0
-_080AC314:
- .4byte _080AC404
- .4byte _080AC4B4
- .4byte _080AC4D4
- .4byte _080AC534
- .4byte _080AC5E8
- .4byte _080AC638
- .4byte _080AC6F8
- .4byte _080AC730
- .4byte _080AC77C
- .4byte _080AC7F4
- .4byte _080AD750
- .4byte _080AD77C
- .4byte _080AC98C
- .4byte _080AC9C0
- .4byte _080ACEC0
- .4byte _080ACFD4
- .4byte _080AD040
- .4byte _080AD070
- .4byte _080AD168
- .4byte _080AD11A
- .4byte _080AD7B8
- .4byte _080AD868
- .4byte _080AD88C
- .4byte _080AC81E
- .4byte _080AC8CC
- .4byte _080ACAD8
- .4byte _080ACAEE
- .4byte _080ACBB0
- .4byte _080ACBDC
- .4byte _080ACC44
- .4byte _080ACD2A
- .4byte _080AD7E8
- .4byte _080AD840
- .4byte _080AD648
- .4byte _080AD6D8
- .4byte _080AC9EC
- .4byte _080ACA24
- .4byte _080ACA44
- .4byte _080ACA84
- .4byte _080ACC98
- .4byte _080ACD00
- .4byte _080AD1A4
- .4byte _080AD8CA
- .4byte _080AD514
- .4byte _080AD8CA
- .4byte _080ACFA8
- .4byte _080AD0FA
- .4byte _080AC96C
- .4byte _080AC8F8
- .4byte _080AC94C
- .4byte _080ACAAE
- .4byte _080ACDC8
- .4byte _080ACE64
- .4byte _080AD316
- .4byte _080AD3D0
- .4byte _080AD700
- .4byte _080AD71C
- .4byte _080AD53C
- .4byte _080AD5D0
- .4byte _080AD624
-_080AC404:
- bl sub_80B0D7C
- movs r6, 0
- ldr r0, _080AC484
- adds r1, r0, 0
- adds r1, 0xCC
- ldrb r0, [r0, 0x10]
- mov r4, r8
- lsls r4, 2
- mov r9, r4
- ldrb r5, [r1]
- cmp r0, r5
- beq _080AC42C
- adds r2, r1, 0
- adds r1, r0, 0
-_080AC422:
- adds r6, 0x1
- adds r0, r6, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _080AC422
-_080AC42C:
- ldr r4, _080AC484
- strb r6, [r4, 0x11]
- ldrb r7, [r4, 0x11]
- ldr r0, _080AC488
- ldrb r1, [r0]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080AC498
- ldrb r0, [r4, 0x7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x7]
- bl sub_80AE074
- lsls r0, 24
- cmp r0, 0
- beq _080AC458
- ldrb r0, [r4, 0x11]
- bl sub_80B114C
-_080AC458:
- ldr r4, _080AC48C
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AC490
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl sub_80AF860
- ldr r1, _080AC494
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC484: .4byte 0x02019204
-_080AC488: .4byte gUnknown_0203869A
-_080AC48C: .4byte sub_80C8C80
-_080AC490: .4byte sub_80AD8DC
-_080AC494: .4byte gTasks
-_080AC498:
- adds r0, r7, 0
- bl sub_80B114C
- ldr r0, _080AC4B0
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC4B0: .4byte gTasks
-_080AC4B4:
- ldrb r1, [r6, 0x7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AC4C2
- bl _080AD8CA
-_080AC4C2:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AC4D4:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AC508
- adds r2, r0, r1
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080AC4F6
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080AC50C
-_080AC4F6:
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x1F
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC508: .4byte 0x02019260
-_080AC50C:
- bl sub_80AF138
- adds r0, r7, 0
- movs r1, 0
- bl sub_80B0CDC
- ldr r0, _080AC530
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r6, [r1, 0x1C]
- movs r0, 0x3
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC530: .4byte gTasks
-_080AC534:
- mov r4, r8
- lsls r4, 2
- mov r9, r4
- ldr r4, _080AC5C4
- ldr r1, _080AC5C8
- movs r2, 0
- adds r0, r1, 0x3
-_080AC542:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080AC542
- movs r6, 0x4
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x14
- bl memset
- ldr r5, _080AC5CC
- adds r7, r4, r5
- ldrb r0, [r7, 0x11]
- bl sub_80B28F0
- ldr r3, _080AC5D0
- ldrb r2, [r7, 0x11]
- lsls r2, 6
- adds r0, r2, r3
- ldrh r0, [r0]
- adds r1, r3, 0
- adds r1, 0x3C
- adds r1, r2, r1
- ldr r1, [r1]
- adds r3, 0x38
- adds r2, r3
- ldr r2, [r2]
- bl sub_80AE9FC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080AC5D4
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r3, r0, r2
- movs r1, 0x78
- strh r1, [r3, 0x24]
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080AC5D8
- str r1, [r0]
- ldr r0, _080AC5DC
- mov r4, r9
- add r4, r8
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0xC]
- ldr r1, _080AC5E0
- ldr r0, _080AC5E4
- ldrb r0, [r0]
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r7, 0x11]
- bl sub_80B09E4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80B0BC4
- strh r6, [r4, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC5C4: .4byte 0x02019348
-_080AC5C8: .4byte gUnknown_02024E84
-_080AC5CC: .4byte 0xfffffebc
-_080AC5D0: .4byte gUnknown_02038570
-_080AC5D4: .4byte gSprites
-_080AC5D8: .4byte sub_80AD8FC
-_080AC5DC: .4byte gTasks
-_080AC5E0: .4byte gUnknown_02024BE0
-_080AC5E4: .4byte gUnknown_02024C07
-_080AC5E8:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- mov r3, r12
- adds r2, r0, r3
- ldrb r5, [r2, 0xC]
- ldr r1, _080AC62C
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080AC630
- cmp r1, r0
- beq _080AC60E
- bl _080AD8CA
-_080AC60E:
- lsls r0, r7, 2
- ldr r1, _080AC634
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080AC622
- bl _080AD8CA
-_080AC622:
- movs r0, 0x5
- strh r0, [r2, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC62C: .4byte gSprites
-_080AC630: .4byte SpriteCallbackDummy
-_080AC634: .4byte 0x02019338
-_080AC638:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AC660
- adds r5, r0, r1
- ldrb r1, [r5, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AC664
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x21
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC660: .4byte 0x02019260
-_080AC664:
- bl sub_80AF138
- ldr r0, _080AC690
- lsls r1, r7, 6
- ldr r2, _080AC694
- adds r1, r2
- bl StringCopy
- ldrh r1, [r5, 0x6]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bhi _080AC6A0
- ldr r0, _080AC698
- adds r2, r1, 0
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080AC69C
- adds r1, r2
- bl StringCopy
- b _080AC6B0
- .align 2, 0
-_080AC690: .4byte gStringVar1
-_080AC694: .4byte gUnknown_02038572
-_080AC698: .4byte gStringVar2
-_080AC69C: .4byte gMoveNames
-_080AC6A0:
- ldr r0, _080AC6E0
- ldr r2, _080AC6E4
- ldrb r1, [r5, 0xA]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_080AC6B0:
- ldr r4, _080AC6E8
- ldr r1, _080AC6EC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080AC6F0
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AC6F4
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC6E0: .4byte gStringVar2
-_080AC6E4: .4byte gUnknown_083CC330
-_080AC6E8: .4byte gStringVar4
-_080AC6EC: .4byte gUnknown_083CAFD7
-_080AC6F0: .4byte gMenuWindow
-_080AC6F4: .4byte gTasks
-_080AC6F8:
- ldr r0, _080AC724
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AC708
- bl _080AD8CA
-_080AC708:
- ldr r0, _080AC728
- adds r0, 0x5A
- movs r1, 0
- strb r1, [r0]
- ldr r1, _080AC72C
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC724: .4byte gMenuWindow
-_080AC728: .4byte 0x02019204
-_080AC72C: .4byte gTasks
-_080AC730:
- ldrb r1, [r6, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x5C
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl sub_80B2760
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6, 0x11]
- bl sub_80B2790
- ldrb r0, [r6, 0x11]
- bl sub_80B28F0
- adds r0, r4, 0
- bl sub_80B29B4
- adds r0, r4, 0
- bl move_anim_start_t1
- ldr r1, _080AC778
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC778: .4byte gTasks
-_080AC77C:
- ldr r0, _080AC7B8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080AC7BC
- ldrb r4, [r0]
- cmp r4, 0
- beq _080AC790
- bl _080AD8CA
-_080AC790:
- adds r0, r7, 0
- bl unref_sub_80B28CC
- ldr r1, _080AC7C0
- adds r0, r1, 0
- adds r0, 0x5A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080AC7C8
- ldr r0, _080AC7C4
- mov r5, r8
- lsls r1, r5, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r4, [r1, 0x1C]
- movs r0, 0x9
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC7B8: .4byte gUnknown_0202F7AC
-_080AC7BC: .4byte gUnknown_0202F7B1
-_080AC7C0: .4byte 0x02019204
-_080AC7C4: .4byte gTasks
-_080AC7C8:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r1, 0x5C
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080AC7E2
- adds r0, r7, 0
- bl sub_80B03A8
-_080AC7E2:
- bl unref_sub_80B20C4
- ldr r0, _080AC7F0
- mov r2, r8
- lsls r1, r2, 2
- b _080AC8E2
- .align 2, 0
-_080AC7F0: .4byte gTasks
-_080AC7F4:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- mov r4, r12
- adds r2, r0, r4
- ldrh r0, [r2, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bgt _080AC812
- bl _080AD8CA
-_080AC812:
- movs r0, 0
- strh r0, [r2, 0x1C]
- movs r0, 0x7
- strh r0, [r2, 0x8]
- bl _080AD8CA
-_080AC81E:
- mov r5, r8
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- mov r1, r12
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0xA]
- lsls r2, r7, 3
- subs r0, r2, r7
- lsls r0, 2
- ldr r1, _080AC858
- adds r6, r0, r1
- ldrb r0, [r6, 0x13]
- mov r9, r3
- mov r10, r2
- adds r3, r1, 0
- cmp r0, 0xFF
- beq _080AC85C
- adds r1, r0, 0
- adds r0, r7, 0
- bl sub_80B146C
- movs r0, 0xFF
- strb r0, [r6, 0x13]
- movs r0, 0x18
- strh r0, [r4, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC858: .4byte 0x02019260
-_080AC85C:
- ldrb r0, [r6, 0x14]
- cmp r0, 0xFF
- beq _080AC8C4
- movs r6, 0
- cmp r6, r7
- beq _080AC86E
- ldrb r0, [r3, 0x13]
- cmp r0, 0xFF
- bne _080AC886
-_080AC86E:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080AC886
- cmp r6, r7
- beq _080AC86E
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x13]
- cmp r0, 0xFF
- beq _080AC86E
-_080AC886:
- cmp r6, 0x4
- bne _080AC8B4
- mov r2, r10
- subs r4, r2, r7
- lsls r4, 2
- adds r4, r3
- ldrb r1, [r4, 0x14]
- adds r0, r7, 0
- bl sub_80B146C
- movs r0, 0xFF
- strb r0, [r4, 0x14]
- ldr r1, _080AC8B0
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC8B0: .4byte gTasks
-_080AC8B4:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x30
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AC8C4:
- movs r0, 0x30
- strh r0, [r4, 0x8]
- bl _080AD8CA
-_080AC8CC:
- ldr r0, _080AC8F0
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AC8DC
- bl _080AD8CA
-_080AC8DC:
- ldr r0, _080AC8F4
- mov r3, r8
- lsls r1, r3, 2
-_080AC8E2:
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x17
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC8F0: .4byte gMenuWindow
-_080AC8F4: .4byte gTasks
-_080AC8F8:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AC914
- adds r0, r1
- ldrb r0, [r0, 0x11]
- movs r3, 0x3
- ands r3, r0
- cmp r3, 0x1
- bne _080AC918
- movs r0, 0x5
- bl sub_80B1710
- b _080AC934
- .align 2, 0
-_080AC914: .4byte 0x02019260
-_080AC918:
- cmp r3, 0x2
- bne _080AC924
- movs r0, 0x6
- bl sub_80B1710
- b _080AC934
-_080AC924:
- cmp r3, 0x3
- beq _080AC92E
- mov r4, r8
- lsls r0, r4, 2
- b _080AC95E
-_080AC92E:
- movs r0, 0x7
- bl sub_80B1710
-_080AC934:
- ldr r0, _080AC948
- mov r5, r8
- lsls r1, r5, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x31
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC948: .4byte gTasks
-_080AC94C:
- ldrb r1, [r6, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AC95A
- bl _080AD8CA
-_080AC95A:
- mov r1, r8
- lsls r0, r1, 2
-_080AC95E:
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x2F
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AC96C:
- movs r0, 0x1
- bl sub_80B1FD0
- ldr r0, _080AC988
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xC
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC988: .4byte gTasks
-_080AC98C:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AC9B8
- adds r0, r1
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- movs r0, 0
- adds r2, r7, 0
- bl sub_80AFBA0
- ldr r1, _080AC9BC
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0xD
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AC9B8: .4byte 0x02019260
-_080AC9BC: .4byte gTasks
-_080AC9C0:
- ldrb r0, [r6, 0x11]
- lsls r0, 2
- movs r5, 0x9A
- lsls r5, 1
- adds r1, r6, r5
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AC9DA
- bl _080AD8CA
-_080AC9DA:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x23
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AC9EC:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080ACA1C
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0x10
- bne _080ACA06
- movs r0, 0x8
- bl sub_80B1710
-_080ACA06:
- ldr r0, _080ACA20
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x24
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACA1C: .4byte 0x02019260
-_080ACA20: .4byte gTasks
-_080ACA24:
- ldrb r1, [r6, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080ACA32
- bl _080AD8CA
-_080ACA32:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x25
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080ACA44:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80AEE54
- lsls r0, 24
- cmp r0, 0
- beq _080ACA70
- ldr r1, _080ACA6C
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x26
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACA6C: .4byte gTasks
-_080ACA70:
- ldr r0, _080ACA80
- mov r5, r8
- lsls r1, r5, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- b _080ACAA6
- .align 2, 0
-_080ACA80: .4byte gTasks
-_080ACA84:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080ACAA2
- bl _080AD8CA
-_080ACAA2:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_080ACAA6:
- movs r0, 0x32
- strh r0, [r1, 0x8]
- bl _080AD8CA
-_080ACAAE:
- adds r0, r7, 0
- bl sub_80AF038
- lsls r0, 24
- cmp r0, 0
- beq _080ACAC0
- movs r0, 0x63
- bl PlaySE
-_080ACAC0:
- ldr r0, _080ACAD4
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x19
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACAD4: .4byte gTasks
-_080ACAD8:
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0xA]
- movs r1, 0x1A
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080ACAEE:
- movs r2, 0
- movs r4, 0
- mov r5, r8
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- movs r3, 0xA
- ldrsh r6, [r0, r3]
- mov r9, r1
- cmp r6, 0x3
- bgt _080ACB58
- ldr r3, _080ACB24
- ldr r1, _080ACB28
-_080ACB0A:
- movs r4, 0
- movs r2, 0
- cmp r4, r7
- beq _080ACB2C
- ldrb r0, [r3]
- cmp r0, r6
- bne _080ACB2C
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFF
- beq _080ACB2C
- movs r4, 0x1
- b _080ACB60
- .align 2, 0
-_080ACB24: .4byte gUnknown_02038696
-_080ACB28: .4byte 0x02019260
-_080ACB2C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080ACB4E
- cmp r2, r7
- beq _080ACB2C
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r6
- bne _080ACB2C
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0xFF
- beq _080ACB2C
- movs r4, 0x1
-_080ACB4E:
- cmp r4, 0
- bne _080ACB60
- adds r6, 0x1
- cmp r6, 0x3
- ble _080ACB0A
-_080ACB58:
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080ACB98
-_080ACB60:
- mov r5, r9
- add r5, r8
- lsls r5, 3
- add r5, r12
- ldr r0, _080ACB90
- adds r0, r2, r0
- ldrb r0, [r0]
- strh r0, [r5, 0xA]
- lsls r0, r2, 24
- lsrs r0, 24
- lsls r4, r2, 3
- subs r4, r2
- lsls r4, 2
- ldr r1, _080ACB94
- adds r4, r1
- ldrb r1, [r4, 0x13]
- bl sub_80B146C
- movs r0, 0xFF
- strb r0, [r4, 0x13]
- movs r0, 0x1B
- strh r0, [r5, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACB90: .4byte gUnknown_02038696
-_080ACB94: .4byte 0x02019260
-_080ACB98:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- add r0, r12
- strh r1, [r0, 0xA]
- strh r1, [r0, 0x1C]
- movs r1, 0x33
- strh r1, [r0, 0x8]
- bl sub_80AF120
- bl _080AD8CA
-_080ACBB0:
- ldr r0, _080ACBD4
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080ACBC0
- bl _080AD8CA
-_080ACBC0:
- ldr r0, _080ACBD8
- mov r4, r8
- lsls r1, r4, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1C
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACBD4: .4byte gMenuWindow
-_080ACBD8: .4byte gTasks
-_080ACBDC:
- movs r6, 0
- mov r5, r8
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- add r1, r12
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- ldr r1, _080ACC38
- mov r9, r0
- ldr r3, _080ACC3C
- adds r5, r1, 0
- ldrb r4, [r5]
- cmp r2, r4
- beq _080ACC08
- adds r1, r2, 0
- adds r2, r5, 0
-_080ACBFE:
- adds r6, 0x1
- adds r0, r6, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _080ACBFE
-_080ACC08:
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0xE]
- ldrh r0, [r0, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- negs r1, r1
- lsls r2, r6, 24
- lsrs r2, 24
- bl sub_80AFBA0
- ldr r1, _080ACC40
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1D
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACC38: .4byte gUnknown_02038696
-_080ACC3C: .4byte 0x02019260
-_080ACC40: .4byte gTasks
-_080ACC44:
- movs r6, 0
- mov r5, r8
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- add r1, r12
- movs r2, 0xA
- ldrsh r3, [r1, r2]
- ldr r1, _080ACC90
- mov r9, r0
- ldr r2, _080ACC94
- adds r5, r1, 0
- ldrb r4, [r5]
- cmp r3, r4
- beq _080ACC6C
-_080ACC62:
- adds r6, 0x1
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r3, r0
- bne _080ACC62
-_080ACC6C:
- lsls r0, r6, 2
- adds r0, r2
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080ACC7E
- bl _080AD8CA
-_080ACC7E:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x27
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACC90: .4byte gUnknown_02038696
-_080ACC94: .4byte 0x02019338
-_080ACC98:
- movs r6, 0
- mov r5, r8
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- add r1, r12
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- ldr r1, _080ACCE8
- mov r9, r0
- adds r5, r1, 0
- ldrb r4, [r5]
- cmp r2, r4
- beq _080ACCC2
- adds r1, r2, 0
- adds r2, r5, 0
-_080ACCB8:
- adds r6, 0x1
- adds r0, r6, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _080ACCB8
-_080ACCC2:
- lsls r0, r6, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80AEE54
- lsls r0, 24
- cmp r0, 0
- beq _080ACCF0
- ldr r1, _080ACCEC
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x28
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACCE8: .4byte gUnknown_02038696
-_080ACCEC: .4byte gTasks
-_080ACCF0:
- ldr r0, _080ACCFC
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- b _080ACD22
- .align 2, 0
-_080ACCFC: .4byte gTasks
-_080ACD00:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080ACD1E
- bl _080AD8CA
-_080ACD1E:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_080ACD22:
- movs r0, 0x1E
- strh r0, [r1, 0x8]
- bl _080AD8CA
-_080ACD2A:
- movs r6, 0
- ldr r2, _080ACD78
- ldrb r3, [r2]
- mov r4, r8
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- mov r5, r12
- adds r4, r0, r5
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- mov r9, r1
- adds r5, r2, 0
- cmp r3, r0
- beq _080ACD5E
- adds r3, r5, 0
- adds r2, r4, 0
-_080ACD4C:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080ACD5E
- adds r0, r6, r3
- ldrb r1, [r0]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080ACD4C
-_080ACD5E:
- lsls r4, r6, 24
- lsrs r0, r4, 24
- bl sub_80AF038
- lsls r0, 24
- adds r5, r4, 0
- cmp r0, 0
- beq _080ACD7C
- movs r0, 0x63
- bl PlaySE
- b _080ACD82
- .align 2, 0
-_080ACD78: .4byte gUnknown_02038696
-_080ACD7C:
- movs r0, 0x64
- bl PlaySE
-_080ACD82:
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- ldr r1, _080ACDC0
- adds r4, r0, r1
- ldrb r1, [r4, 0x15]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080ACDA6
- lsrs r0, r5, 24
- bl sub_80B03A8
- ldrb r1, [r4, 0x15]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x15]
-_080ACDA6:
- ldr r0, _080ACDC4
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x1A
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACDC0: .4byte 0x02019260
-_080ACDC4: .4byte gTasks
-_080ACDC8:
- mov r5, r8
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r12
- adds r3, r0, r1
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r9, r2
- cmp r0, 0x9
- bgt _080ACDE8
- bl _080AD8CA
-_080ACDE8:
- movs r0, 0
- strh r0, [r3, 0x1C]
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080ACE48
- adds r2, r0, r1
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080ACE0A
- ldrb r1, [r2, 0x11]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080ACE36
-_080ACE0A:
- bl sub_80AF138
- ldr r0, _080ACE4C
- lsls r1, r7, 6
- ldr r2, _080ACE50
- adds r1, r2
- bl StringCopy
- ldr r4, _080ACE54
- ldr r1, _080ACE58
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080ACE5C
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
-_080ACE36:
- ldr r0, _080ACE60
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x34
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACE48: .4byte 0x02019260
-_080ACE4C: .4byte gStringVar1
-_080ACE50: .4byte gUnknown_02038572
-_080ACE54: .4byte gStringVar4
-_080ACE58: .4byte gUnknown_083CC103
-_080ACE5C: .4byte gMenuWindow
-_080ACE60: .4byte gTasks
-_080ACE64:
- ldr r0, _080ACE9C
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080ACE74
- bl _080AD8CA
-_080ACE74:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080ACEA0
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080ACEA8
- ldr r0, _080ACEA4
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x11
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACE9C: .4byte gMenuWindow
-_080ACEA0: .4byte 0x02019260
-_080ACEA4: .4byte gTasks
-_080ACEA8:
- ldr r0, _080ACEBC
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xE
- strh r0, [r1, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACEBC: .4byte gTasks
-_080ACEC0:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080ACEE4
- adds r0, r1
- ldrb r4, [r0, 0x16]
- lsls r4, 24
- lsrs r5, r4, 24
- cmp r5, 0
- beq _080ACF48
- bl sub_80AF138
- asrs r0, r4, 24
- cmp r0, 0x1
- bne _080ACEF0
- ldr r0, _080ACEE8
- ldr r1, _080ACEEC
- b _080ACEF8
- .align 2, 0
-_080ACEE4: .4byte 0x02019260
-_080ACEE8: .4byte gMenuWindow
-_080ACEEC: .4byte gUnknown_083CBD79
-_080ACEF0:
- cmp r0, 0x2
- bne _080ACF10
- ldr r0, _080ACF08
- ldr r1, _080ACF0C
-_080ACEF8:
- movs r2, 0xC2
- lsls r2, 2
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x1
- bl sub_8002EB0
- b _080ACF22
- .align 2, 0
-_080ACF08: .4byte gMenuWindow
-_080ACF0C: .4byte gUnknown_083CBD9D
-_080ACF10:
- ldr r0, _080ACF3C
- ldr r1, _080ACF40
- movs r2, 0xC2
- lsls r2, 2
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x1
- bl sub_8002EB0
-_080ACF22:
- movs r0, 0x3
- bl sub_80B1710
- ldr r1, _080ACF44
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- b _080ACF88
- .align 2, 0
-_080ACF3C: .4byte gMenuWindow
-_080ACF40: .4byte gUnknown_083CBDC6
-_080ACF44: .4byte gTasks
-_080ACF48:
- bl sub_80AF138
- ldr r0, _080ACF90
- lsls r1, r7, 6
- ldr r2, _080ACF94
- adds r1, r2
- bl StringCopy
- ldr r4, _080ACF98
- ldr r1, _080ACF9C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080ACFA0
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- movs r0, 0x2
- bl sub_80B1710
- ldr r1, _080ACFA4
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
-_080ACF88:
- movs r1, 0x2D
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACF90: .4byte gStringVar1
-_080ACF94: .4byte gUnknown_02038572
-_080ACF98: .4byte gStringVar4
-_080ACF9C: .4byte gUnknown_083CBD52
-_080ACFA0: .4byte gMenuWindow
-_080ACFA4: .4byte gTasks
-_080ACFA8:
- ldrb r1, [r6, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080ACFB6
- bl _080AD8CA
-_080ACFB6:
- ldrb r0, [r6, 0x11]
- bl sub_80B09B0
- ldr r1, _080ACFD0
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0xF
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080ACFD0: .4byte gTasks
-_080ACFD4:
- ldr r0, _080AD034
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080ACFE4
- bl _080AD8CA
-_080ACFE4:
- ldr r1, _080AD038
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bgt _080AD002
- bl _080AD8CA
-_080AD002:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AD03C
- adds r6, r0, r1
- ldrb r1, [r6, 0x15]
- movs r5, 0x10
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _080AD02C
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldrb r1, [r6, 0x17]
- adds r2, r7, 0
- bl sub_80AFBA0
- ldrh r0, [r6, 0x2]
- ldrb r2, [r6, 0x17]
- adds r0, r2
- strh r0, [r6, 0x2]
-_080AD02C:
- strh r5, [r4, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AD034: .4byte gMenuWindow
-_080AD038: .4byte gTasks
-_080AD03C: .4byte 0x02019260
-_080AD040:
- lsls r0, r7, 2
- ldr r1, _080AD06C
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080AD058
- bl _080AD8CA
-_080AD058:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- strh r1, [r0, 0x1C]
- movs r1, 0x11
- strh r1, [r0, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AD06C: .4byte 0x02019338
-_080AD070:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AD0CC
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD0E8
- bl sub_80AF138
- ldr r0, _080AD0D0
- lsls r1, r7, 6
- ldr r2, _080AD0D4
- adds r1, r2
- bl StringCopy
- ldr r4, _080AD0D8
- ldr r1, _080AD0DC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080AD0E0
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r0, _080AD0E4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x1C]
- bl sub_80B1710
- movs r0, 0x2E
- strh r0, [r4, 0x8]
- bl _080AD8CA
- .align 2, 0
-_080AD0CC: .4byte 0x02019260
-_080AD0D0: .4byte gStringVar1
-_080AD0D4: .4byte gUnknown_02038572
-_080AD0D8: .4byte gStringVar4
-_080AD0DC: .4byte gUnknown_083CC075
-_080AD0E0: .4byte gMenuWindow
-_080AD0E4: .4byte gTasks
-_080AD0E8:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x29
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AD0FA:
- ldrb r1, [r6, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AD108
- bl _080AD8CA
-_080AD108:
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x13
- strh r1, [r0, 0x8]
- bl _080AD8CA
-_080AD11A:
- ldr r0, _080AD15C
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD12A
- bl _080AD8CA
-_080AD12A:
- lsls r4, r7, 3
- subs r4, r7
- lsls r4, 2
- ldr r0, _080AD160
- adds r4, r0
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- ldrb r1, [r4, 0x18]
- negs r1, r1
- adds r2, r7, 0
- bl sub_80AFBA0
- ldrb r1, [r4, 0x18]
- ldrh r0, [r4, 0x2]
- subs r0, r1
- strh r0, [r4, 0x2]
- ldr r1, _080AD164
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD15C: .4byte gMenuWindow
-_080AD160: .4byte 0x02019260
-_080AD164: .4byte gTasks
-_080AD168:
- bl sub_80B0D7C
- lsls r0, r7, 2
- ldr r1, _080AD19C
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080AD182
- b _080AD8CA
-_080AD182:
- ldr r0, _080AD1A0
- mov r5, r8
- lsls r4, r5, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- strh r6, [r4, 0x1C]
- bl sub_80AF138
- movs r0, 0x29
- strh r0, [r4, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD19C: .4byte 0x02019338
-_080AD1A0: .4byte gTasks
-_080AD1A4:
- ldr r2, _080AD1CC
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- adds r1, r2, 0
- cmp r0, 0
- beq _080AD1D0
- ldr r0, [r1]
- lsls r0, 20
- lsrs r0, 29
- cmp r7, r0
- beq _080AD1D0
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- movs r1, 0x39
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD1CC: .4byte 0x02019328
-_080AD1D0:
- ldrb r4, [r1]
- lsls r2, r7, 3
- subs r0, r2, r7
- lsls r0, 2
- subs r1, 0xC8
- adds r5, r0, r1
- ldrb r1, [r5, 0x11]
- movs r0, 0x10
- ands r0, r1
- mov r10, r2
- cmp r0, 0
- beq _080AD204
- movs r4, 0x1
- ldr r0, _080AD1FC
- ldrh r2, [r5, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080AD200
- adds r1, r2
- bl StringCopy
- b _080AD21E
- .align 2, 0
-_080AD1FC: .4byte gStringVar3
-_080AD200: .4byte gMoveNames
-_080AD204:
- ldr r0, _080AD270
- ldr r3, _080AD274
- ldr r2, _080AD278
- ldrh r1, [r5, 0x6]
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x1]
- lsls r1, 29
- lsrs r1, 27
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
-_080AD21E:
- lsls r0, r4, 24
- cmp r0, 0
- ble _080AD23A
- mov r2, r10
- subs r0, r2, r7
- lsls r0, 2
- ldr r1, _080AD27C
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD23A
- movs r4, 0
-_080AD23A:
- bl sub_80AF138
- ldr r0, _080AD280
- lsls r1, r7, 6
- ldr r2, _080AD284
- adds r1, r2
- bl StringCopy
- ldr r3, _080AD288
- ldrb r0, [r3, 0x13]
- lsls r1, r4, 24
- asrs r2, r1, 24
- adds r0, r2, r0
- strb r0, [r3, 0x13]
- lsls r0, 24
- adds r4, r1, 0
- cmp r0, 0
- bge _080AD262
- movs r0, 0
- strb r0, [r3, 0x13]
-_080AD262:
- cmp r2, 0
- bne _080AD290
- ldr r0, _080AD28C
- mov r3, r8
- lsls r1, r3, 2
- b _080AD6EC
- .align 2, 0
-_080AD270: .4byte gStringVar3
-_080AD274: .4byte gUnknown_083CC2D8
-_080AD278: .4byte gContestMoves
-_080AD27C: .4byte 0x02019260
-_080AD280: .4byte gStringVar1
-_080AD284: .4byte gUnknown_02038572
-_080AD288: .4byte 0x02019204
-_080AD28C: .4byte gTasks
-_080AD290:
- cmp r2, 0
- bge _080AD2A8
- ldr r0, _080AD2A0
- ldr r1, _080AD2A4
- bl StringExpandPlaceholders
- b _080AD2D0
- .align 2, 0
-_080AD2A0: .4byte gStringVar4
-_080AD2A4: .4byte gUnknown_083CC0BC
-_080AD2A8:
- cmp r2, 0
- ble _080AD2C8
- movs r0, 0x13
- ldrsb r0, [r3, r0]
- cmp r0, 0x4
- bgt _080AD2C8
- ldr r0, _080AD2C0
- ldr r1, _080AD2C4
- bl StringExpandPlaceholders
- b _080AD2D0
- .align 2, 0
-_080AD2C0: .4byte gStringVar4
-_080AD2C4: .4byte gUnknown_083CC0A0
-_080AD2C8:
- ldr r0, _080AD300
- ldr r1, _080AD304
- bl StringExpandPlaceholders
-_080AD2D0:
- ldr r0, _080AD308
- ldr r1, _080AD300
- movs r2, 0xC2
- lsls r2, 2
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AD30C
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- cmp r4, 0
- bge _080AD310
- movs r0, 0x35
- strh r0, [r1, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD300: .4byte gStringVar4
-_080AD304: .4byte gUnknown_083CC0E3
-_080AD308: .4byte gMenuWindow
-_080AD30C: .4byte gTasks
-_080AD310:
- movs r0, 0x36
- strh r0, [r1, 0x8]
- b _080AD8CA
-_080AD316:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- mov r2, r12
- adds r4, r0, r2
- movs r3, 0x1C
- ldrsh r2, [r4, r3]
- cmp r2, 0x1
- beq _080AD354
- cmp r2, 0x1
- bgt _080AD334
- cmp r2, 0
- beq _080AD33E
- b _080AD8CA
-_080AD334:
- cmp r2, 0x2
- beq _080AD37C
- cmp r2, 0x3
- beq _080AD3B0
- b _080AD8CA
-_080AD33E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x1
- bl sub_80B1EA8
- ldr r0, _080AD350
- bl PlayFanfare
- b _080AD3A8
- .align 2, 0
-_080AD350: .4byte 0x00000187
-_080AD354:
- ldrb r0, [r6, 0x7]
- ands r2, r0
- cmp r2, 0
- beq _080AD35E
- b _080AD8CA
-_080AD35E:
- ldr r0, _080AD378
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD36C
- b _080AD8CA
-_080AD36C:
- movs r0, 0x1
- negs r0, r0
- bl sub_80B1CBC
- b _080AD3A8
- .align 2, 0
-_080AD378: .4byte gMenuWindow
-_080AD37C:
- ldrb r1, [r6, 0x6]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080AD38C
- b _080AD8CA
-_080AD38C:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _080AD39C
- b _080AD8CA
-_080AD39C:
- strh r2, [r4, 0x1E]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- bl sub_80B1EA8
-_080AD3A8:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _080AD8CA
-_080AD3B0:
- ldr r0, _080AD3CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080AD3C2
- b _080AD8CA
-_080AD3C2:
- strh r0, [r4, 0x1C]
- strh r0, [r4, 0x1E]
- movs r0, 0x2B
- strh r0, [r4, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD3CC: .4byte gPaletteFade
-_080AD3D0:
- mov r4, r8
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- add r0, r12
- movs r5, 0x1C
- ldrsh r0, [r0, r5]
- mov r9, r1
- cmp r0, 0x4
- bls _080AD3E6
- b _080AD8CA
-_080AD3E6:
- lsls r0, 2
- ldr r1, _080AD3F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AD3F0: .4byte _080AD3F4
- .align 2, 0
-_080AD3F4:
- .4byte _080AD408
- .4byte _080AD420
- .4byte _080AD43E
- .4byte _080AD4A0
- .4byte _080AD4EC
-_080AD408:
- ldr r0, _080AD41C
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD416
- b _080AD8CA
-_080AD416:
- movs r0, 0x1
- movs r1, 0x1
- b _080AD4C8
- .align 2, 0
-_080AD41C: .4byte gMenuWindow
-_080AD420:
- ldrb r1, [r6, 0x7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AD42C
- b _080AD8CA
-_080AD42C:
- bl sub_80B1DDC
- movs r0, 0xDF
- bl PlaySE
- movs r0, 0x1
- bl sub_80B1CBC
- b _080AD4CC
-_080AD43E:
- ldrb r1, [r6, 0x6]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080AD44E
- b _080AD8CA
-_080AD44E:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- mov r1, r12
- adds r3, r0, r1
- ldrh r0, [r3, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _080AD468
- b _080AD8CA
-_080AD468:
- strh r2, [r3, 0x1E]
- lsls r4, r7, 3
- subs r4, r7
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x5C
- adds r4, r0
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- movs r1, 0x92
- lsls r1, 1
- adds r5, r6, r1
- movs r1, 0x2
- ldrsb r1, [r5, r1]
- adds r2, r7, 0
- str r3, [sp, 0x4]
- bl sub_80AFBA0
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrh r2, [r4, 0x2]
- adds r0, r2
- strh r0, [r4, 0x2]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _080AD8CA
-_080AD4A0:
- lsls r0, r7, 2
- ldr r2, _080AD4E0
- adds r0, r2
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AD4B2
- b _080AD8CA
-_080AD4B2:
- ldr r3, _080AD4E4
- adds r0, r2, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080AD4C2
- b _080AD8CA
-_080AD4C2:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0x1
-_080AD4C8:
- bl sub_80B1EA8
-_080AD4CC:
- ldr r0, _080AD4E8
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- b _080AD8CA
- .align 2, 0
-_080AD4E0: .4byte 0x02019338
-_080AD4E4: .4byte 0xfffffecc
-_080AD4E8: .4byte gTasks
-_080AD4EC:
- ldr r0, _080AD510
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080AD4FE
- b _080AD8CA
-_080AD4FE:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- add r0, r12
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- movs r1, 0x2B
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD510: .4byte gPaletteFade
-_080AD514:
- lsls r0, r7, 2
- ldr r1, _080AD534
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AD526
- b _080AD8CA
-_080AD526:
- bl sub_80AF138
- ldr r0, _080AD538
- mov r4, r8
- lsls r1, r4, 2
- b _080AD6EC
- .align 2, 0
-_080AD534: .4byte 0x02019338
-_080AD538: .4byte gTasks
-_080AD53C:
- bl sub_80AF138
- ldr r0, _080AD5A8
- ldr r4, _080AD5AC
- ldr r1, [r4]
- lsls r1, 20
- lsrs r1, 29
- lsls r1, 6
- ldr r5, _080AD5B0
- adds r1, r5
- bl StringCopy
- ldr r0, _080AD5B4
- lsls r1, r7, 6
- adds r1, r5
- bl StringCopy
- ldr r0, _080AD5B8
- lsls r1, r7, 3
- subs r1, r7
- lsls r1, 2
- subs r4, 0xC8
- adds r1, r4
- ldrh r2, [r1, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080AD5BC
- adds r1, r2
- bl StringCopy
- ldr r4, _080AD5C0
- ldr r1, _080AD5C4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080AD5C8
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AD5CC
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3A
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD5A8: .4byte gStringVar3
-_080AD5AC: .4byte 0x02019328
-_080AD5B0: .4byte gUnknown_02038572
-_080AD5B4: .4byte gStringVar1
-_080AD5B8: .4byte gStringVar2
-_080AD5BC: .4byte gMoveNames
-_080AD5C0: .4byte gStringVar4
-_080AD5C4: .4byte gUnknown_083CC14A
-_080AD5C8: .4byte gMenuWindow
-_080AD5CC: .4byte gTasks
-_080AD5D0:
- ldr r5, _080AD614
- adds r0, r5, 0
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD5E0
- b _080AD8CA
-_080AD5E0:
- bl sub_80AF138
- ldr r4, _080AD618
- ldr r1, _080AD61C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r2, 0xC2
- lsls r2, 2
- movs r0, 0xF
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AD620
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3B
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD614: .4byte gMenuWindow
-_080AD618: .4byte gStringVar4
-_080AD61C: .4byte gUnknown_083CC16E
-_080AD620: .4byte gTasks
-_080AD624:
- ldr r0, _080AD640
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD632
- b _080AD8CA
-_080AD632:
- bl sub_80AF138
- ldr r0, _080AD644
- mov r3, r8
- lsls r1, r3, 2
- b _080AD6EC
- .align 2, 0
-_080AD640: .4byte gMenuWindow
-_080AD644: .4byte gTasks
-_080AD648:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _080AD6B4
- adds r4, r0, r1
- ldrb r1, [r4, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AD664
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x15]
-_080AD664:
- adds r0, r7, 0
- bl sub_80B09B0
- ldr r0, _080AD6B8
- lsls r1, r7, 6
- ldr r2, _080AD6BC
- adds r1, r2
- bl StringCopy
- ldr r0, _080AD6C0
- ldrh r2, [r4, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080AD6C4
- adds r1, r2
- bl StringCopy
- ldr r4, _080AD6C8
- ldr r1, _080AD6CC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080AD6D0
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AD6D4
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x22
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD6B4: .4byte 0x02019260
-_080AD6B8: .4byte gStringVar1
-_080AD6BC: .4byte gUnknown_02038572
-_080AD6C0: .4byte gStringVar2
-_080AD6C4: .4byte gMoveNames
-_080AD6C8: .4byte gStringVar4
-_080AD6CC: .4byte gUnknown_083CBF60
-_080AD6D0: .4byte gMenuWindow
-_080AD6D4: .4byte gTasks
-_080AD6D8:
- ldr r0, _080AD6F8
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- bne _080AD6E6
- b _080AD8CA
-_080AD6E6:
- ldr r0, _080AD6FC
- mov r5, r8
- lsls r1, r5, 2
-_080AD6EC:
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x37
- strh r0, [r1, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD6F8: .4byte gMenuWindow
-_080AD6FC: .4byte gTasks
-_080AD700:
- bl sub_80B1BDC
- ldr r0, _080AD718
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x38
- strh r0, [r1, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD718: .4byte gTasks
-_080AD71C:
- ldrb r1, [r6, 0x6]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080AD72C
- b _080AD8CA
-_080AD72C:
- movs r0, 0x13
- ldrsb r0, [r6, r0]
- cmp r0, 0x4
- ble _080AD73A
- strb r1, [r6, 0x13]
- bl sub_80B1928
-_080AD73A:
- ldr r0, _080AD74C
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xA
- strh r0, [r1, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD74C: .4byte gTasks
-_080AD750:
- mov r4, r8
- lsls r2, r4, 2
- add r2, r8
- lsls r2, 3
- add r2, r12
- ldrb r5, [r2, 0xC]
- ldr r1, _080AD774
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080AD778
- str r1, [r0]
- movs r0, 0xB
- strh r0, [r2, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD774: .4byte gSprites
-_080AD778: .4byte sub_80AD92C
-_080AD77C:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- mov r1, r12
- adds r4, r0, r1
- ldrb r5, [r4, 0xC]
- ldr r1, _080AD7B4
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r6, r0, r1
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _080AD7A2
- b _080AD8CA
-_080AD7A2:
- adds r0, r6, 0
- bl FreeSpriteOamMatrix
- adds r0, r6, 0
- bl DestroySprite
- movs r0, 0x14
- strh r0, [r4, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD7B4: .4byte gSprites
-_080AD7B8:
- movs r6, 0
- mov r2, r8
- lsls r2, 2
- mov r9, r2
-_080AD7C0:
- lsls r0, r6, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80B0CDC
- adds r6, 0x1
- cmp r6, 0x3
- ble _080AD7C0
- ldr r1, _080AD7E4
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x15
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD7E4: .4byte gTasks
-_080AD7E8:
- bl sub_80AF138
- ldr r0, _080AD828
- lsls r1, r7, 6
- ldr r2, _080AD82C
- adds r1, r2
- bl StringCopy
- ldr r4, _080AD830
- ldr r1, _080AD834
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080AD838
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080AD83C
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD828: .4byte gStringVar1
-_080AD82C: .4byte gUnknown_02038572
-_080AD830: .4byte gStringVar4
-_080AD834: .4byte gUnknown_083CB00D
-_080AD838: .4byte gMenuWindow
-_080AD83C: .4byte gTasks
-_080AD840:
- ldr r0, _080AD860
- bl sub_80037A0
- lsls r0, 24
- cmp r0, 0
- beq _080AD8CA
- ldr r0, _080AD864
- mov r4, r8
- lsls r1, r4, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x15
- strh r0, [r1, 0x8]
- b _080AD8CA
- .align 2, 0
-_080AD860: .4byte gMenuWindow
-_080AD864: .4byte gTasks
-_080AD868:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080AD8CA
- movs r0, 0
- strh r0, [r1, 0x1C]
- movs r0, 0x16
- strh r0, [r1, 0x8]
- b _080AD8CA
-_080AD88C:
- ldrb r0, [r6, 0x10]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r6, 0x10]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080AD8B8
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- ldr r1, _080AD8B4
- str r1, [r0]
- b _080AD8C4
- .align 2, 0
-_080AD8B4: .4byte sub_80AD960
-_080AD8B8:
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- add r0, r12
- strh r1, [r0, 0x8]
-_080AD8C4:
- movs r0, 0
- bl nullsub_18
-_080AD8CA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC2CC
-
- thumb_func_start sub_80AD8DC
-sub_80AD8DC: @ 80AD8DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080AD8F8
- ldrb r2, [r3, 0x7]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x7]
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AD8F8: .4byte 0x02019204
- thumb_func_end sub_80AD8DC
-
- thumb_func_start sub_80AD8FC
-sub_80AD8FC: @ 80AD8FC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x24]
- movs r3, 0x24
- ldrsh r2, [r1, r3]
- cmp r2, 0
- beq _080AD910
- subs r0, 0x2
- strh r0, [r1, 0x24]
- b _080AD924
-_080AD910:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080AD924
- strh r2, [r1, 0x2E]
- ldr r0, _080AD928
- str r0, [r1, 0x1C]
-_080AD924:
- pop {r0}
- bx r0
- .align 2, 0
-_080AD928: .4byte SpriteCallbackDummy
- thumb_func_end sub_80AD8FC
-
- thumb_func_start sub_80AD92C
-sub_80AD92C: @ 80AD92C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- subs r0, 0x6
- strh r0, [r2, 0x24]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080AD956
- ldr r0, _080AD95C
- str r0, [r2, 0x1C]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080AD956:
- pop {r0}
- bx r0
- .align 2, 0
-_080AD95C: .4byte SpriteCallbackDummy
- thumb_func_end sub_80AD92C
-
- thumb_func_start sub_80AD960
-sub_80AD960: @ 80AD960
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AD984
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080AD9F2
- cmp r0, 0x1
- bgt _080AD988
- cmp r0, 0
- beq _080AD98E
- b _080ADA10
- .align 2, 0
-_080AD984: .4byte gTasks
-_080AD988:
- cmp r0, 0x2
- beq _080ADA08
- b _080ADA10
-_080AD98E:
- ldr r0, _080AD9D8
- ldrb r1, [r0]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080AD9E8
- ldr r2, _080AD9DC
- ldrb r0, [r2, 0x7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x7]
- bl sub_80AE074
- lsls r0, 24
- cmp r0, 0
- beq _080AD9B8
- bl sub_80AF2FC
- bl sub_80AF3C0
-_080AD9B8:
- ldr r4, _080AD9E0
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AD9E4
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl sub_80AF860
- strh r6, [r5, 0x8]
- b _080ADA10
- .align 2, 0
-_080AD9D8: .4byte gUnknown_0203869A
-_080AD9DC: .4byte 0x02019204
-_080AD9E0: .4byte sub_80C8C80
-_080AD9E4: .4byte sub_80AD8DC
-_080AD9E8:
- bl sub_80AF2FC
- bl sub_80AF3C0
- b _080AD9FE
-_080AD9F2:
- ldr r0, _080ADA04
- ldrb r1, [r0, 0x7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080ADA10
-_080AD9FE:
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080ADA10
- .align 2, 0
-_080ADA04: .4byte 0x02019204
-_080ADA08:
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080ADA18
- str r0, [r5]
-_080ADA10:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADA18: .4byte sub_80ADA1C
- thumb_func_end sub_80AD960
-
- thumb_func_start sub_80ADA1C
-sub_80ADA1C: @ 80ADA1C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80B1FD0
- ldr r1, _080ADA44
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, _080ADA48
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADA44: .4byte gTasks
-_080ADA48: .4byte sub_80ADA4C
- thumb_func_end sub_80ADA1C
-
- thumb_func_start sub_80ADA4C
-sub_80ADA4C: @ 80ADA4C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADA70
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080ADA92
- cmp r5, 0x1
- bgt _080ADA74
- cmp r5, 0
- beq _080ADA7A
- b _080ADACE
- .align 2, 0
-_080ADA70: .4byte gTasks
-_080ADA74:
- cmp r5, 0x2
- beq _080ADAC0
- b _080ADACE
-_080ADA7A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080ADACE
- movs r0, 0x2
- bl sub_80B25E4
- strh r5, [r4, 0xA]
- b _080ADAB2
-_080ADA92:
- ldr r0, _080ADABC
- ldrb r1, [r0, 0x7]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080ADACE
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080ADACE
- strh r1, [r4, 0xA]
-_080ADAB2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080ADACE
- .align 2, 0
-_080ADABC: .4byte 0x02019204
-_080ADAC0:
- bl sub_80AFF10
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r0, _080ADAD4
- str r0, [r4]
-_080ADACE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAD4: .4byte sub_80ADAD8
- thumb_func_end sub_80ADA4C
-
- thumb_func_start sub_80ADAD8
-sub_80ADAD8: @ 80ADAD8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80AFF28
- lsls r0, 24
- cmp r0, 0
- beq _080ADAF6
- ldr r0, _080ADAFC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ADB00
- str r0, [r1]
-_080ADAF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAFC: .4byte gTasks
-_080ADB00: .4byte sub_80ADB04
- thumb_func_end sub_80ADAD8
-
- thumb_func_start sub_80ADB04
-sub_80ADB04: @ 80ADB04
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADB30
- ldr r3, _080ADB34
- ldr r1, _080ADB38
- str r2, [r1]
- str r3, [r1, 0x4]
- ldr r2, _080ADB3C
- str r2, [r1, 0x8]
- ldr r1, [r1, 0x8]
- ldr r2, _080ADB40
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0xA]
- ldr r0, _080ADB44
- str r0, [r1]
- bx lr
- .align 2, 0
-_080ADB30: .4byte 0x02018204
-_080ADB34: .4byte gPlttBufferUnfaded
-_080ADB38: .4byte 0x040000d4
-_080ADB3C: .4byte 0x84000100
-_080ADB40: .4byte gTasks
-_080ADB44: .4byte sub_80ADB48
- thumb_func_end sub_80ADB04
-
- thumb_func_start sub_80ADB48
-sub_80ADB48: @ 80ADB48
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADB80
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080ADB7A
- movs r0, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- subs r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080ADB7A
- ldr r0, _080ADB84
- str r0, [r1]
-_080ADB7A:
- pop {r0}
- bx r0
- .align 2, 0
-_080ADB80: .4byte gTasks
-_080ADB84: .4byte sub_80ADB88
- thumb_func_end sub_80ADB48
-
- thumb_func_start sub_80ADB88
-sub_80ADB88: @ 80ADB88
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080ADBEC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080ADBF0
- adds r0, r1
- ldrb r4, [r0, 0x1A]
- bl sub_80AF138
- ldr r0, _080ADBF4
- ldrb r1, [r6]
- lsls r1, 6
- ldr r2, _080ADBF8
- adds r1, r2
- bl StringCopy
- ldr r6, _080ADBFC
- ldr r0, _080ADC00
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r6, 0
- bl StringExpandPlaceholders
- ldr r0, _080ADC04
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r6, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080ADC08
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ADC0C
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADBEC: .4byte gUnknown_02038695
-_080ADBF0: .4byte 0x02019260
-_080ADBF4: .4byte gStringVar1
-_080ADBF8: .4byte gUnknown_02038572
-_080ADBFC: .4byte gStringVar4
-_080ADC00: .4byte gUnknown_083CB2F0
-_080ADC04: .4byte gMenuWindow
-_080ADC08: .4byte gTasks
-_080ADC0C: .4byte sub_80ADC10
- thumb_func_end sub_80ADB88
-
- thumb_func_start sub_80ADC10
-sub_80ADC10: @ 80ADC10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080ADC40
- bl sub_80037A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080ADC3A
- ldr r1, _080ADC44
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080ADC48
- str r1, [r0]
- bl sub_80B0D7C
-_080ADC3A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC40: .4byte gMenuWindow
-_080ADC44: .4byte gTasks
-_080ADC48: .4byte sub_80ADC4C
- thumb_func_end sub_80ADC10
-
- thumb_func_start sub_80ADC4C
-sub_80ADC4C: @ 80ADC4C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADC7C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080ADC76
- movs r0, 0
- strh r0, [r4, 0x8]
- bl sub_80AFF10
- ldr r0, _080ADC80
- str r0, [r4]
-_080ADC76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC7C: .4byte gTasks
-_080ADC80: .4byte sub_80ADC84
- thumb_func_end sub_80ADC4C
-
- thumb_func_start sub_80ADC84
-sub_80ADC84: @ 80ADC84
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80AFF28
- lsls r0, 24
- cmp r0, 0
- beq _080ADCA6
- ldr r1, _080ADCAC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080ADCB0
- str r1, [r0]
-_080ADCA6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADCAC: .4byte gTasks
-_080ADCB0: .4byte sub_80ADCB4
- thumb_func_end sub_80ADC84
-
- thumb_func_start sub_80ADCB4
-sub_80ADCB4: @ 80ADCB4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B2184
- ldr r1, _080ADCD4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ADCD8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADCD4: .4byte gTasks
-_080ADCD8: .4byte sub_80B237C
- thumb_func_end sub_80ADCB4
-
- thumb_func_start sub_80ADCDC
-sub_80ADCDC: @ 80ADCDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B2280
- ldr r1, _080ADCFC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ADD00
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADCFC: .4byte gTasks
-_080ADD00: .4byte sub_80ADD04
- thumb_func_end sub_80ADCDC
-
- thumb_func_start sub_80ADD04
-sub_80ADD04: @ 80ADD04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, _080ADD40
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldr r2, _080ADD44
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldr r1, _080ADD48
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080ADD54
- ldr r0, _080ADD4C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ADD50
- b _080ADD64
- .align 2, 0
-_080ADD40: .4byte REG_BG0CNT
-_080ADD44: .4byte REG_BG2CNT
-_080ADD48: .4byte 0x02019204
-_080ADD4C: .4byte gTasks
-_080ADD50: .4byte sub_80ADDA4
-_080ADD54:
- bl sub_80B1B14
- ldr r0, _080ADD6C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ADD70
-_080ADD64:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADD6C: .4byte gTasks
-_080ADD70: .4byte sub_80ADD74
- thumb_func_end sub_80ADD04
-
- thumb_func_start sub_80ADD74
-sub_80ADD74: @ 80ADD74
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080ADD98
- ldrb r1, [r0, 0x6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080ADD94
- ldr r0, _080ADD9C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ADDA0
- str r0, [r1]
-_080ADD94:
- pop {r0}
- bx r0
- .align 2, 0
-_080ADD98: .4byte 0x02019204
-_080ADD9C: .4byte gTasks
-_080ADDA0: .4byte sub_80ABB70
- thumb_func_end sub_80ADD74
-
- thumb_func_start sub_80ADDA4
-sub_80ADDA4: @ 80ADDA4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080ADE24
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080ADE28
- strh r1, [r0]
- ldr r3, _080ADE2C
- ldr r2, _080ADE30
- movs r1, 0x3
-_080ADDBC:
- ldrh r0, [r3, 0x4]
- strh r0, [r2]
- adds r3, 0x1C
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080ADDBC
- movs r5, 0
- bl sub_80AF668
- bl sub_80AF138
- ldr r0, _080ADE34
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080ADE2C
- adds r0, r1
- ldrh r0, [r0, 0x8]
- bl sub_80BE23C
- ldr r1, _080ADE38
- ldr r0, _080ADE3C
- ldr r0, [r0]
- str r0, [r1]
- ldr r4, _080ADE40
- ldr r1, _080ADE44
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080ADE48
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- ldr r1, _080ADE4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xC]
- ldr r1, _080ADE50
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADE24: .4byte gUnknown_030042A0
-_080ADE28: .4byte gUnknown_03004280
-_080ADE2C: .4byte 0x02019260
-_080ADE30: .4byte gUnknown_02038680
-_080ADE34: .4byte gUnknown_02038695
-_080ADE38: .4byte gUnknown_03005D28
-_080ADE3C: .4byte gRngValue
-_080ADE40: .4byte gStringVar4
-_080ADE44: .4byte gUnknown_083CB02C
-_080ADE48: .4byte gMenuWindow
-_080ADE4C: .4byte gTasks
-_080ADE50: .4byte sub_80ADE54
- thumb_func_end sub_80ADDA4
-
- thumb_func_start sub_80ADE54
-sub_80ADE54: @ 80ADE54
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080ADE98
- bl sub_80037A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080ADE92
- bl sub_80B2184
- ldr r1, _080ADE9C
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080ADEA0
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0x62
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r1, _080ADEA4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080ADEA8
- str r1, [r0]
-_080ADE92:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADE98: .4byte gMenuWindow
-_080ADE9C: .4byte gUnknown_030042C0
-_080ADEA0: .4byte gUnknown_030041B4
-_080ADEA4: .4byte gTasks
-_080ADEA8: .4byte sub_80ADEAC
- thumb_func_end sub_80ADE54
-
- thumb_func_start sub_80ADEAC
-sub_80ADEAC: @ 80ADEAC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080ADEE0
- ldrh r0, [r1]
- subs r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080ADEC4
- movs r0, 0
- strh r0, [r1]
-_080ADEC4:
- ldrh r2, [r1]
- cmp r2, 0
- bne _080ADEDA
- ldr r0, _080ADEE4
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldr r0, _080ADEE8
- str r0, [r1]
- strh r2, [r1, 0x8]
-_080ADEDA:
- pop {r0}
- bx r0
- .align 2, 0
-_080ADEE0: .4byte gUnknown_030041B4
-_080ADEE4: .4byte gTasks
-_080ADEE8: .4byte sub_80ADEEC
- thumb_func_end sub_80ADEAC
-
- thumb_func_start sub_80ADEEC
-sub_80ADEEC: @ 80ADEEC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADF20
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x31
- ble _080ADF40
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080ADF24
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080ADF2C
- ldr r0, _080ADF28
- b _080ADF3E
- .align 2, 0
-_080ADF20: .4byte gTasks
-_080ADF24: .4byte gUnknown_0203869A
-_080ADF28: .4byte sub_80ADF4C
-_080ADF2C:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080ADF48
-_080ADF3E:
- str r0, [r4]
-_080ADF40:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADF48: .4byte sub_80ADFD8
- thumb_func_end sub_80ADEEC
-
- thumb_func_start sub_80ADF4C
-sub_80ADF4C: @ 80ADF4C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080ADF88
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080ADF8C
- adds r1, r5, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080ADF90
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080ADF94
- str r1, [r0]
- bl sub_80AF860
- movs r0, 0
- bl sub_80AFFE0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADF88: .4byte sub_80C8AD0
-_080ADF8C: .4byte sub_80ADF98
-_080ADF90: .4byte gTasks
-_080ADF94: .4byte nullsub_89
- thumb_func_end sub_80ADF4C
-
- thumb_func_start sub_80ADF98
-sub_80ADF98: @ 80ADF98
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _080ADFCC
- ldr r0, _080ADFD0
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080ADFD4
- str r1, [r0]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080ADFCC: .4byte gTasks
-_080ADFD0: .4byte 0x02019204
-_080ADFD4: .4byte sub_80ADFD8
- thumb_func_end sub_80ADF98
-
- thumb_func_start sub_80ADFD8
-sub_80ADFD8: @ 80ADFD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080AE000
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ADFFC
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080AE004
- ldr r1, _080AE008
- str r1, [r0]
- ldr r0, _080AE00C
- bl SetMainCallback2
-_080ADFFC:
- pop {r0}
- bx r0
- .align 2, 0
-_080AE000: .4byte gPaletteFade
-_080AE004: .4byte gUnknown_0300485C
-_080AE008: .4byte sub_80AE010
-_080AE00C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80ADFD8
-
- thumb_func_start sub_80AE010
-sub_80AE010: @ 80AE010
- push {lr}
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80AE010
-
- thumb_func_start sub_80AE020
-sub_80AE020: @ 80AE020
- push {r4,lr}
- adds r4, r0, 0
- b _080AE028
-_080AE026:
- adds r4, 0x1
-_080AE028:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080AE04C
- cmp r0, 0xFC
- bne _080AE026
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _080AE026
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r1, 0xFF
- strb r1, [r0]
- adds r1, r4, 0x2
- bl StringAppend
-_080AE04C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AE020
-
- thumb_func_start sub_80AE054
-sub_80AE054: @ 80AE054
- push {lr}
- ldr r0, _080AE06C
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AE068
- ldr r1, _080AE070
- movs r0, 0x3
- strb r0, [r1]
-_080AE068:
- pop {r0}
- bx r0
- .align 2, 0
-_080AE06C: .4byte gUnknown_0203869A
-_080AE070: .4byte gUnknown_02038695
- thumb_func_end sub_80AE054
-
- thumb_func_start sub_80AE074
-sub_80AE074: @ 80AE074
- push {lr}
- ldr r0, _080AE088
- ldr r1, _080AE08C
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080AE090
- movs r0, 0
- b _080AE092
- .align 2, 0
-_080AE088: .4byte gUnknown_02038695
-_080AE08C: .4byte gUnknown_0203869B
-_080AE090:
- movs r0, 0x1
-_080AE092:
- pop {r1}
- bx r1
- thumb_func_end sub_80AE074
-
- thumb_func_start sub_80AE098
-sub_80AE098: @ 80AE098
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _080AE0F0
- mov r0, sp
- adds r1, r6, 0
- bl StringCopy
- mov r0, sp
- bl SkipExtCtrlCodes
- ldr r0, _080AE0F4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AE0CE
- mov r0, sp
- ldrb r2, [r0, 0x5]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- mov r0, sp
- strb r2, [r0, 0x7]
-_080AE0CE:
- ldr r5, _080AE0F8
- ldrb r0, [r5]
- lsls r0, 6
- ldr r4, _080AE0FC
- adds r0, r4
- mov r1, sp
- movs r2, 0x8
- bl memcpy
- ldrb r0, [r6, 0x8]
- cmp r0, 0
- bne _080AE100
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, r4, r0
- movs r1, 0xD8
- b _080AE108
- .align 2, 0
-_080AE0F0: .4byte gSaveBlock2
-_080AE0F4: .4byte gUnknown_0203869A
-_080AE0F8: .4byte gUnknown_02038695
-_080AE0FC: .4byte gUnknown_0203857D
-_080AE100:
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, r4, r0
- movs r1, 0xD9
-_080AE108:
- strb r1, [r0, 0x8]
- ldr r5, _080AE17C
- ldr r4, _080AE180
- ldrb r0, [r4]
- lsls r0, 6
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r4]
- lsls r0, 6
- adds r0, r5
- adds r0, 0x2C
- strb r1, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080AE184
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r4]
- lsls r1, 6
- adds r1, r5
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- bl StringGetEnd10
- ldr r0, _080AE188
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AE19A
- mov r0, sp
- bl SkipExtCtrlCodes
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- bne _080AE18C
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- movs r0, 0xFC
- strb r0, [r1, 0xA]
- b _080AE19A
- .align 2, 0
-_080AE17C: .4byte gUnknown_02038570
-_080AE180: .4byte gUnknown_02038695
-_080AE184: .4byte gPlayerParty
-_080AE188: .4byte gUnknown_0203869A
-_080AE18C:
- mov r0, sp
- ldrb r2, [r0, 0x5]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- mov r0, sp
- strb r2, [r0, 0xA]
-_080AE19A:
- ldr r5, _080AE2C4
- ldrb r0, [r5]
- lsls r0, 6
- ldr r1, _080AE2C8
- mov r8, r1
- add r0, r8
- mov r1, sp
- movs r2, 0xB
- bl memcpy
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _080AE2CC
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x16
- bl GetMonData
- mov r6, r8
- subs r6, 0x2
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x26
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x17
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x18
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x28
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x21
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x29
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2F
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x2A
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x30
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- adds r1, 0x2B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0xD
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- movs r1, 0xE
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- strh r0, [r1, 0x20]
- adds r0, r4, 0
- movs r1, 0xF
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- strh r0, [r1, 0x22]
- adds r0, r4, 0
- movs r1, 0x10
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- adds r1, r6
- strh r0, [r1, 0x24]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- mov r2, r8
- adds r2, 0x36
- adds r1, r2
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- ldrb r1, [r5]
- lsls r1, 6
- movs r2, 0x3A
- add r8, r2
- add r1, r8
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- mov r8, r2
- ldrb r0, [r5]
- lsls r0, 6
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r3, [r0]
- adds r0, 0x1
- ldrb r4, [r0]
- adds r0, 0x1
- ldrb r5, [r0]
- adds r0, 0x1
- ldrb r6, [r0]
- adds r0, 0x1
- ldrb r7, [r0]
- cmp r2, 0xFE
- bne _080AE2D0
- adds r3, 0x14
- b _080AE31E
- .align 2, 0
-_080AE2C4: .4byte gUnknown_02038695
-_080AE2C8: .4byte gUnknown_02038572
-_080AE2CC: .4byte gPlayerParty
-_080AE2D0:
- cmp r2, 0xFF
- bne _080AE2E0
- lsls r0, r4, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- b _080AE31E
-_080AE2E0:
- movs r0, 0x80
- lsls r0, 1
- cmp r2, r0
- bne _080AE2F4
- lsls r0, r5, 16
- movs r2, 0xA0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- b _080AE31E
-_080AE2F4:
- ldr r0, _080AE308
- cmp r2, r0
- bne _080AE30C
- lsls r0, r6, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r6, r0, 16
- b _080AE31E
- .align 2, 0
-_080AE308: .4byte 0x00000101
-_080AE30C:
- movs r0, 0x81
- lsls r0, 1
- cmp r8, r0
- bne _080AE31E
- lsls r0, r7, 16
- movs r2, 0xA0
- lsls r2, 13
- adds r0, r2
- lsrs r7, r0, 16
-_080AE31E:
- cmp r3, 0xFF
- ble _080AE324
- movs r3, 0xFF
-_080AE324:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080AE32E
- movs r4, 0xFF
-_080AE32E:
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080AE338
- movs r5, 0xFF
-_080AE338:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080AE342
- movs r6, 0xFF
-_080AE342:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080AE34C
- movs r7, 0xFF
-_080AE34C:
- ldr r2, _080AE390
- ldr r1, _080AE394
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x26
- strb r3, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x27
- strb r4, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x28
- strb r5, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x29
- strb r6, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x2A
- strb r7, [r0]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE390: .4byte gUnknown_02038570
-_080AE394: .4byte gUnknown_02038695
- thumb_func_end sub_80AE098
-
- thumb_func_start sub_80AE398
-sub_80AE398: @ 80AE398
- push {r4-r7,lr}
- sub sp, 0x40
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r6, 0
- bl sub_80AE054
- movs r5, 0
- ldr r2, _080AE470
-_080AE3AE:
- ldrb r1, [r2, 0x1C]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r7, r0
- bne _080AE3FE
- cmp r4, 0
- bne _080AE3C2
- lsls r0, r1, 29
- cmp r0, 0
- blt _080AE3F2
-_080AE3C2:
- cmp r4, 0x1
- bne _080AE3CE
- ldrb r0, [r2, 0x1C]
- lsls r0, 28
- cmp r0, 0
- blt _080AE3F2
-_080AE3CE:
- cmp r4, 0x2
- bne _080AE3DA
- ldrb r0, [r2, 0x1C]
- lsls r0, 27
- cmp r0, 0
- blt _080AE3F2
-_080AE3DA:
- cmp r4, 0x3
- bne _080AE3E6
- ldrb r0, [r2, 0x1C]
- lsls r0, 26
- cmp r0, 0
- blt _080AE3F2
-_080AE3E6:
- cmp r4, 0x4
- bne _080AE3FE
- ldrb r0, [r2, 0x1C]
- lsls r0, 25
- cmp r0, 0
- bge _080AE3FE
-_080AE3F2:
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- add r0, sp
- strb r5, [r0]
-_080AE3FE:
- adds r2, 0x40
- adds r5, 0x1
- cmp r5, 0x3B
- ble _080AE3AE
- mov r0, sp
- adds r1, r0, r6
- movs r0, 0xFF
- strb r0, [r1]
- movs r5, 0
- ldr r7, _080AE470
-_080AE412:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080AE474
- lsls r2, r5, 6
- adds r2, r1
- mov r1, sp
- adds r4, r1, r0
- ldrb r1, [r4]
- lsls r1, 6
- adds r1, r7
- adds r0, r2, 0
- movs r2, 0x40
- bl memcpy
- ldrb r0, [r4]
- adds r2, r5, 0x1
- subs r1, r6, 0x1
- cmp r0, 0xFF
- beq _080AE454
- adds r3, r4, 0
-_080AE448:
- ldrb r0, [r3, 0x1]
- strb r0, [r3]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080AE448
-_080AE454:
- lsls r0, r1, 24
- lsrs r6, r0, 24
- adds r5, r2, 0
- cmp r5, 0x2
- ble _080AE412
- ldr r0, _080AE478
- ldrb r0, [r0]
- bl sub_80AE098
- add sp, 0x40
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE470: .4byte gUnknown_083C9408
-_080AE474: .4byte gUnknown_02038570
-_080AE478: .4byte gUnknown_02038694
- thumb_func_end sub_80AE398
-
- thumb_func_start sub_80AE47C
-sub_80AE47C: @ 80AE47C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _080AE48E
- movs r0, 0x3
- b _080AE50A
-_080AE48E:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080AE49E
- movs r0, 0x4
- b _080AE50A
-_080AE49E:
- ldr r0, _080AE4B0
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080AE4F2
- lsls r0, 2
- ldr r1, _080AE4B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AE4B0: .4byte gUnknown_0203869C
-_080AE4B4: .4byte _080AE4B8
- .align 2, 0
-_080AE4B8:
- .4byte _080AE4CC
- .4byte _080AE4D2
- .4byte _080AE4D8
- .4byte _080AE4DE
- .4byte _080AE4E4
-_080AE4CC:
- adds r0, r4, 0
- movs r1, 0x32
- b _080AE4E8
-_080AE4D2:
- adds r0, r4, 0
- movs r1, 0x33
- b _080AE4E8
-_080AE4D8:
- adds r0, r4, 0
- movs r1, 0x34
- b _080AE4E8
-_080AE4DE:
- adds r0, r4, 0
- movs r1, 0x35
- b _080AE4E8
-_080AE4E4:
- adds r0, r4, 0
- movs r1, 0x36
-_080AE4E8:
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- b _080AE4F6
-_080AE4F2:
- movs r0, 0
- b _080AE50A
-_080AE4F6:
- ldr r0, _080AE510
- adds r2, r1, 0
- ldrh r1, [r0]
- movs r0, 0x2
- cmp r2, r1
- bhi _080AE50A
- movs r0, 0
- cmp r2, r1
- bcc _080AE50A
- movs r0, 0x1
-_080AE50A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AE510: .4byte gUnknown_0203869E
- thumb_func_end sub_80AE47C
-
- thumb_func_start sub_80AE514
-sub_80AE514: @ 80AE514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r5, 0
- ldr r7, _080AE588
- adds r0, r7, 0x1
- mov r9, r0
- ldr r6, _080AE58C
- adds r3, r6, 0x1
- mov r8, r3
-_080AE52C:
- ldr r4, _080AE590
- adds r4, r5, r4
- ldrb r0, [r4]
- lsls r0, 1
- adds r1, r0, r7
- ldrb r2, [r1]
- mov r3, r9
- adds r1, r0, r3
- ldrb r3, [r1]
- adds r0, r6
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrb r0, [r0]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080AE594
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- adds r0, r5, 0
- bl sub_80AE5BC
- adds r0, r5, 0
- bl sub_80AE6CC
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AE52C
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE588: .4byte gUnknown_083CA308
-_080AE58C: .4byte gUnknown_083CA310
-_080AE590: .4byte gUnknown_02038696
-_080AE594: .4byte gUnknown_03004210
- thumb_func_end sub_80AE514
-
- thumb_func_start PutWindowTilemap
-PutWindowTilemap: @ 80AE598
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r1, _080AE5B8
- bl StringCopy
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- bl StringCopy
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AE5B8: .4byte gUnknown_083CC59C
- thumb_func_end PutWindowTilemap
-
- thumb_func_start sub_80AE5BC
-sub_80AE5BC: @ 80AE5BC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r0, r1, 24
- movs r2, 0xA0
- lsls r2, 20
- adds r1, r2
- lsrs r1, 24
- bl sub_80AE5D4
- pop {r0}
- bx r0
- thumb_func_end sub_80AE5BC
-
- thumb_func_start sub_80AE5D4
-sub_80AE5D4: @ 80AE5D4
- push {r4-r7,lr}
- sub sp, 0x8
- adds r2, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080AE660
- ldr r1, _080AE664
- adds r0, r3, 0
- bl PutWindowTilemap
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x6
- strb r0, [r3, 0x1]
- movs r0, 0x4
- strb r0, [r3, 0x2]
- adds r3, 0x3
- movs r0, 0xBA
- strb r0, [r3]
- adds r3, 0x1
- ldr r0, _080AE668
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AE67C
- ldr r1, _080AE66C
- lsls r0, r4, 3
- subs r0, r4
- lsls r2, r0, 2
- adds r0, r2, r1
- ldrh r6, [r0, 0x1A]
- cmp r6, 0x1
- bne _080AE67C
- adds r1, 0x8
- adds r1, r2, r1
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _080AE670
- ldr r1, _080AE660
- ldr r2, _080AE674
- adds r2, r4, r2
- ldrb r4, [r2]
- movs r2, 0x16
- muls r2, r4
- movs r3, 0x94
- lsls r3, 2
- adds r2, r3
- ldr r5, _080AE678
- lsls r4, 1
- adds r3, r4, r5
- ldrb r3, [r3]
- lsls r3, 27
- movs r7, 0xFB
- lsls r7, 24
- adds r3, r7
- lsrs r3, 24
- adds r5, 0x1
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 3
- str r4, [sp]
- str r6, [sp, 0x4]
- bl sub_8004D04
- b _080AE6B0
- .align 2, 0
-_080AE660: .4byte gUnknown_020238CC
-_080AE664: .4byte gEmptyString_81E72B0
-_080AE668: .4byte gUnknown_0203869A
-_080AE66C: .4byte gLinkPlayers
-_080AE670: .4byte gUnknown_03004210
-_080AE674: .4byte gUnknown_02038696
-_080AE678: .4byte gUnknown_083CA310
-_080AE67C:
- lsls r1, r4, 6
- ldr r0, _080AE6B8
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _080AE6BC
- ldr r1, _080AE6C0
- ldr r2, _080AE6C4
- adds r2, r4, r2
- ldrb r4, [r2]
- movs r2, 0x16
- muls r2, r4
- movs r3, 0x94
- lsls r3, 2
- adds r2, r3
- ldr r5, _080AE6C8
- lsls r4, 1
- adds r3, r4, r5
- ldrb r3, [r3]
- adds r5, 0x1
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl sub_8003460
-_080AE6B0:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE6B8: .4byte gUnknown_0203857D
-_080AE6BC: .4byte gUnknown_03004210
-_080AE6C0: .4byte gUnknown_020238CC
-_080AE6C4: .4byte gUnknown_02038696
-_080AE6C8: .4byte gUnknown_083CA310
- thumb_func_end sub_80AE5D4
-
- thumb_func_start sub_80AE6CC
-sub_80AE6CC: @ 80AE6CC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r0, r1, 24
- movs r2, 0xA0
- lsls r2, 20
- adds r1, r2
- lsrs r1, 24
- bl sub_80AE6E4
- pop {r0}
- bx r0
- thumb_func_end sub_80AE6CC
-
- thumb_func_start sub_80AE6E4
-sub_80AE6E4: @ 80AE6E4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r2, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080AE75C
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x6
- strb r0, [r3, 0x1]
- movs r0, 0x4
- strb r0, [r3, 0x2]
- adds r3, 0x3
- lsls r1, r4, 6
- ldr r0, _080AE760
- adds r1, r0
- adds r0, r3, 0
- bl PutWindowTilemap
- adds r3, r0, 0
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _080AE764
- ldr r1, _080AE75C
- ldr r2, _080AE768
- adds r4, r2
- ldrb r4, [r4]
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 18
- adds r2, r3
- lsrs r2, 16
- ldr r5, _080AE76C
- lsls r4, 1
- adds r3, r4, r5
- ldrb r3, [r3]
- lsls r3, 27
- movs r6, 0xFD
- lsls r6, 24
- adds r3, r6
- lsrs r3, 24
- adds r5, 0x1
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 3
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_8004D04
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE75C: .4byte gUnknown_020238CC
-_080AE760: .4byte gUnknown_02038572
-_080AE764: .4byte gUnknown_03004210
-_080AE768: .4byte gUnknown_02038696
-_080AE76C: .4byte gUnknown_083CA308
- thumb_func_end sub_80AE6E4
-
- thumb_func_start sub_80AE770
-sub_80AE770: @ 80AE770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x4
- bhi _080AE7FC
- lsls r0, 2
- ldr r1, _080AE788
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AE788: .4byte _080AE78C
- .align 2, 0
-_080AE78C:
- .4byte _080AE7A0
- .4byte _080AE7B8
- .4byte _080AE7D0
- .4byte _080AE7E0
- .4byte _080AE7FC
-_080AE7A0:
- ldr r0, _080AE7B4
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x26
- ldrb r5, [r3]
- adds r3, 0x4
- ldrb r4, [r3]
- adds r1, 0x27
- b _080AE80E
- .align 2, 0
-_080AE7B4: .4byte gUnknown_02038570
-_080AE7B8:
- ldr r0, _080AE7CC
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x27
- ldrb r5, [r3]
- subs r3, 0x1
- ldrb r4, [r3]
- adds r1, 0x28
- b _080AE80E
- .align 2, 0
-_080AE7CC: .4byte gUnknown_02038570
-_080AE7D0:
- ldr r1, _080AE7DC
- lsls r2, 6
- adds r3, r2, r1
- adds r0, r3, 0
- adds r0, 0x28
- b _080AE7EA
- .align 2, 0
-_080AE7DC: .4byte gUnknown_02038570
-_080AE7E0:
- ldr r1, _080AE7F8
- lsls r2, 6
- adds r3, r2, r1
- adds r0, r3, 0
- adds r0, 0x29
-_080AE7EA:
- ldrb r5, [r0]
- subs r0, 0x1
- ldrb r4, [r0]
- adds r0, 0x2
- ldrb r3, [r0]
- adds r0, r1, 0
- b _080AE810
- .align 2, 0
-_080AE7F8: .4byte gUnknown_02038570
-_080AE7FC:
- ldr r0, _080AE828
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x2A
- ldrb r5, [r3]
- subs r3, 0x1
- ldrb r4, [r3]
- adds r1, 0x26
-_080AE80E:
- ldrb r3, [r1]
-_080AE810:
- adds r1, r2, r0
- adds r1, 0x2B
- adds r0, r4, r3
- ldrb r1, [r1]
- adds r0, r1
- asrs r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AE828: .4byte gUnknown_02038570
- thumb_func_end sub_80AE770
-
- thumb_func_start sub_80AE82C
-sub_80AE82C: @ 80AE82C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, _080AE854
-_080AE836:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80AE770
- lsls r1, r4, 1
- adds r1, r6
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AE836
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AE854: .4byte gUnknown_02038670
- thumb_func_end sub_80AE82C
-
- thumb_func_start sub_80AE858
-sub_80AE858: @ 80AE858
- push {r4,r5,lr}
- ldr r0, _080AE8A0
- bl LoadCompressedObjectPic
- ldr r0, _080AE8A4
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080AE8A8
- movs r1, 0x70
- movs r2, 0x24
- movs r3, 0x1E
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080AE8AC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r5, r2, r4
- ldrb r3, [r5, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0x10
- orrs r1, r3
- strb r1, [r5, 0x5]
- adds r4, 0x1C
- adds r2, r4
- ldr r1, _080AE8B0
- str r1, [r2]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AE8A0: .4byte gUnknown_083CA4BC
-_080AE8A4: .4byte gContest2Pal
-_080AE8A8: .4byte gSpriteTemplate_83CA4A4
-_080AE8AC: .4byte gSprites
-_080AE8B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_80AE858
-
- thumb_func_start sub_80AE8B4
-sub_80AE8B4: @ 80AE8B4
- push {lr}
- ldr r0, _080AE8F8
- bl LoadCompressedObjectPic
- ldr r0, _080AE8FC
- bl LoadCompressedObjectPalette
- ldr r0, _080AE900
- movs r1, 0x60
- movs r2, 0xA
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080AE904
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x4]
- lsls r1, 22
- lsrs r1, 22
- strh r1, [r2, 0x2E]
- pop {r1}
- bx r1
- .align 2, 0
-_080AE8F8: .4byte gUnknown_083CA4C4
-_080AE8FC: .4byte gUnknown_083CA4CC
-_080AE900: .4byte gUnknown_083CA4D4
-_080AE904: .4byte gSprites
- thumb_func_end sub_80AE8B4
-
- thumb_func_start unref_sub_80AE908
-unref_sub_80AE908: @ 80AE908
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _080AE9D4
- mov r9, r0
- ldr r1, _080AE9D8
- mov r8, r1
- ldrb r0, [r1]
- lsls r0, 6
- add r0, r9
- ldrh r5, [r0]
- lsls r6, r5, 3
- ldr r0, _080AE9DC
- adds r0, r6, r0
- ldr r2, _080AE9E0
- mov r10, r2
- lsls r2, r5, 2
- add r2, r10
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080AE9E4
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- ldr r0, _080AE9E8
- adds r6, r0
- ldr r0, [r6]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 6
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080AE9EC
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- add r1, r9
- ldrh r1, [r1]
- lsls r1, 2
- add r1, r10
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x70
- movs r3, 0x1E
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080AE9F0
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r0, r3, r5
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r1, r5, 0
- adds r1, 0x1C
- adds r1, r3, r1
- ldr r2, _080AE9F4
- str r2, [r1]
- adds r5, 0x10
- adds r3, r5
- ldr r1, _080AE9F8
- str r1, [r3]
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080AE9D4: .4byte gUnknown_02038570
-_080AE9D8: .4byte gUnknown_02038695
-_080AE9DC: .4byte gMonFrontPicTable
-_080AE9E0: .4byte gMonFrontPicCoords
-_080AE9E4: .4byte gUnknown_081FAF4C
-_080AE9E8: .4byte gMonPaletteTable
-_080AE9EC: .4byte gUnknown_02024E8C
-_080AE9F0: .4byte gSprites
-_080AE9F4: .4byte SpriteCallbackDummy
-_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18
- thumb_func_end unref_sub_80AE908
-
- thumb_func_start sub_80AE9FC
-sub_80AE9FC: @ 80AE9FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- mov r8, r1
- adds r6, r2, 0
- lsls r0, 16
- lsrs r0, 16
- bl sub_80B2778
- mov r9, r0
- mov r5, r9
- lsls r0, r5, 3
- ldr r1, _080AEACC
- adds r0, r1
- ldr r1, _080AEAD0
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080AEAD4
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- adds r0, r5, 0
- mov r1, r8
- adds r2, r6, 0
- bl species_and_otid_get_pal
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r5, 0
- movs r1, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r4, _080AEAD8
- movs r0, 0x2
- adds r1, r5, 0
- movs r2, 0
- bl sub_8077E44
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- movs r1, 0x70
- movs r3, 0x1E
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080AEADC
- mov r8, r0
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- mov r0, r8
- adds r4, r6, r0
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0x2
- bl sub_8079E90
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- mov r0, r8
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _080AEAE0
- str r1, [r0]
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x32]
- adds r0, r5, 0
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _080AEAE8
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _080AEAE4
- b _080AEAF0
- .align 2, 0
-_080AEACC: .4byte gMonBackPicTable
-_080AEAD0: .4byte gMonBackPicCoords
-_080AEAD4: .4byte gUnknown_081FAF4C
-_080AEAD8: .4byte gUnknown_02024E8C
-_080AEADC: .4byte gSprites
-_080AEAE0: .4byte SpriteCallbackDummy
-_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18
-_080AEAE8:
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _080AEB14
-_080AEAF0:
- str r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _080AEB18
- adds r0, r1
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r0, r7, 0
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC
-_080AEB18: .4byte gSprites
- thumb_func_end sub_80AE9FC
-
- thumb_func_start sub_80AEB1C
-sub_80AEB1C: @ 80AEB1C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- beq _080AEB2A
- movs r0, 0x1
- b _080AEB2C
-_080AEB2A:
- movs r0, 0
-_080AEB2C:
- pop {r1}
- bx r1
- thumb_func_end sub_80AEB1C
-
- thumb_func_start sub_80AEB30
-sub_80AEB30: @ 80AEB30
- push {lr}
- ldr r0, _080AEB44
- bl sub_80AEB4C
- ldr r0, _080AEB48
- bl sub_80AEB4C
- pop {r0}
- bx r0
- .align 2, 0
-_080AEB44: .4byte 0x0600c000
-_080AEB48: .4byte 0x0600e000
- thumb_func_end sub_80AEB30
-
- thumb_func_start sub_80AEB4C
-sub_80AEB4C: @ 80AEB4C
- movs r1, 0xA0
- lsls r1, 3
- adds r2, r0, r1
- ldr r1, _080AEB60
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080AEB64
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_080AEB60: .4byte 0x040000d4
-_080AEB64: .4byte 0x80000140
- thumb_func_end sub_80AEB4C
-
- thumb_func_start sub_80AEB68
-sub_80AEB68: @ 80AEB68
- push {lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _080AEB90
- ldr r1, _080AEB94
- lsrs r0, 13
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080AEBD0
- lsls r0, 2
- ldr r1, _080AEB98
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AEB90: .4byte gContestEffects
-_080AEB94: .4byte gContestMoves
-_080AEB98: .4byte _080AEB9C
- .align 2, 0
-_080AEB9C:
- .4byte _080AEBC0
- .4byte _080AEBC0
- .4byte _080AEBC8
- .4byte _080AEBC8
- .4byte _080AEBD0
- .4byte _080AEBD0
- .4byte _080AEBD0
- .4byte _080AEBD0
- .4byte _080AEBC0
-_080AEBC0:
- ldr r0, _080AEBC4
- b _080AEBD2
- .align 2, 0
-_080AEBC4: .4byte 0x00009082
-_080AEBC8:
- ldr r0, _080AEBCC
- b _080AEBD2
- .align 2, 0
-_080AEBCC: .4byte 0x00009088
-_080AEBD0:
- ldr r0, _080AEBE8
-_080AEBD2:
- lsls r1, r3, 12
- movs r2, 0x90
- lsls r2, 8
- adds r1, r2
- lsls r0, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080AEBE8: .4byte 0x00009086
- thumb_func_end sub_80AEB68
-
- thumb_func_start sub_80AEBEC
-sub_80AEBEC: @ 80AEBEC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080AEC74
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0x22
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x1F
- bl FillWindowRect_DefaultPalette
- ldr r1, _080AEC78
- lsls r0, r4, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- ldr r1, _080AEC7C
- cmp r0, 0
- beq _080AEC34
- adds r1, 0x5
- cmp r0, 0x1
- beq _080AEC34
- adds r1, 0x5
- cmp r0, 0x2
- beq _080AEC34
- adds r1, 0x40
- cmp r0, 0x3
- bne _080AEC34
- subs r1, 0x20
-_080AEC34:
- ldr r0, _080AEC74
- mov r8, r0
- ldr r6, _080AEC78
- lsls r5, r4, 3
- ldr r7, _080AEC80
- ldr r0, _080AEC84
- mov r9, r0
- ldr r4, _080AEC88
- ldr r3, _080AEC8C
- movs r2, 0x4
-_080AEC48:
- strh r1, [r3]
- adds r0, r1, 0
- adds r0, 0x10
- strh r0, [r4]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080AEC48
- adds r0, r5, r6
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- bne _080AEC90
- movs r0, 0
- b _080AEC9C
- .align 2, 0
-_080AEC74: .4byte gUnknown_03004210
-_080AEC78: .4byte gContestMoves
-_080AEC7C: .4byte 0x00004040
-_080AEC80: .4byte gContestEffects
-_080AEC84: .4byte gUnknown_083CADD4
-_080AEC88: .4byte 0x0600c816
-_080AEC8C: .4byte 0x0600c7d6
-_080AEC90:
- ldrb r0, [r1, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_080AEC9C:
- cmp r0, 0x8
- bls _080AECA2
- movs r0, 0x8
-_080AECA2:
- movs r2, 0
- ldr r1, _080AECB8
- adds r4, r1, 0
- adds r1, 0x23
- adds r3, r1, 0
- ldr r1, _080AECBC
-_080AECAE:
- cmp r2, r0
- bge _080AECC0
- strh r4, [r1]
- b _080AECC2
- .align 2, 0
-_080AECB8: .4byte 0x00005012
-_080AECBC: .4byte 0x0600c7ea
-_080AECC0:
- strh r3, [r1]
-_080AECC2:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _080AECAE
- adds r0, r5, r6
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFF
- bne _080AECDC
- movs r0, 0
- b _080AECE8
-_080AECDC:
- ldrb r0, [r1, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_080AECE8:
- cmp r0, 0x8
- bls _080AECEE
- movs r0, 0x8
-_080AECEE:
- movs r2, 0
- ldr r1, _080AED04
- adds r4, r1, 0
- adds r1, 0x22
- adds r3, r1, 0
- ldr r1, _080AED08
-_080AECFA:
- cmp r2, r0
- bge _080AED0C
- strh r4, [r1]
- b _080AED0E
- .align 2, 0
-_080AED04: .4byte 0x00005014
-_080AED08: .4byte 0x0600c82a
-_080AED0C:
- strh r3, [r1]
-_080AED0E:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _080AECFA
- adds r0, r5, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r9
- ldr r1, [r0]
- movs r2, 0xD9
- lsls r2, 2
- movs r0, 0x23
- str r0, [sp]
- mov r0, r8
- movs r3, 0xB
- bl sub_8003460
- ldr r1, _080AED50
- ldr r2, _080AED54
- movs r0, 0x1F
- str r0, [sp]
- mov r0, r8
- movs r3, 0x10
- bl sub_8003460
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AED50: .4byte gUnknown_083CC5A2
-_080AED54: .4byte 0x00000362
- thumb_func_end sub_80AEBEC
-
- thumb_func_start sub_80AED58
-sub_80AED58: @ 80AED58
- push {lr}
- sub sp, 0x8
- ldr r0, _080AED78
- movs r1, 0x1C
- str r1, [sp]
- movs r1, 0x28
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080AED78: .4byte gUnknown_03004210
- thumb_func_end sub_80AED58
-
- thumb_func_start sub_80AED7C
-sub_80AED7C: @ 80AED7C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _080AEDD8
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080AEDEC
- cmp r6, 0
- beq _080AEDEC
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80AEB68
- lsls r0, 16
- lsrs r0, 16
- lsls r3, r5, 6
- ldr r1, _080AEDDC
- adds r1, r3, r1
- strh r0, [r1]
- ldr r1, _080AEDE0
- adds r1, r3, r1
- adds r2, r0, 0x1
- strh r2, [r1]
- ldr r1, _080AEDE4
- adds r2, r3, r1
- adds r1, r0, 0
- adds r1, 0x10
- strh r1, [r2]
- ldr r1, _080AEDE8
- adds r3, r1
- adds r0, 0x11
- strh r0, [r3]
- b _080AEE08
- .align 2, 0
-_080AEDD8: .4byte gUnknown_02038696
-_080AEDDC: .4byte 0x0600c028
-_080AEDE0: .4byte 0x0600c02a
-_080AEDE4: .4byte 0x0600c068
-_080AEDE8: .4byte 0x0600c06a
-_080AEDEC:
- lsls r1, r5, 6
- ldr r0, _080AEE10
- adds r0, r1, r0
- movs r2, 0
- strh r2, [r0]
- ldr r0, _080AEE14
- adds r0, r1, r0
- strh r2, [r0]
- ldr r3, _080AEE18
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _080AEE1C
- adds r1, r0
- strh r2, [r1]
-_080AEE08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEE10: .4byte 0x0600c028
-_080AEE14: .4byte 0x0600c02a
-_080AEE18: .4byte 0x0600c068
-_080AEE1C: .4byte 0x0600c06a
- thumb_func_end sub_80AED7C
-
- thumb_func_start unref_sub_80AEE20
-unref_sub_80AEE20: @ 80AEE20
- push {r4,lr}
- movs r4, 0
-_080AEE24:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080AEE48
- adds r0, r1
- ldrh r0, [r0, 0x6]
- adds r1, r4, 0
- bl sub_80AED7C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AEE24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEE48: .4byte 0x02019260
- thumb_func_end unref_sub_80AEE20
-
- thumb_func_start sub_80AEE4C
-sub_80AEE4C: @ 80AEE4C
- ldr r0, _080AEE50
- bx lr
- .align 2, 0
-_080AEE50: .4byte 0x00002034
- thumb_func_end sub_80AEE4C
-
- thumb_func_start sub_80AEE54
-sub_80AEE54: @ 80AEE54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r5, r7, 3
- subs r0, r5, r7
- lsls r0, 2
- ldr r1, _080AEE84
- adds r0, r1
- ldrb r0, [r0, 0x10]
- movs r2, 0x30
- ands r2, r0
- mov r10, r1
- cmp r2, 0
- bne _080AEE88
- movs r0, 0
- b _080AEF3C
- .align 2, 0
-_080AEE84: .4byte 0x02019260
-_080AEE88:
- ldr r0, _080AEEB0
- adds r0, r7, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r2, 0x10
- bne _080AEEF0
- adds r0, r7, 0
- bl sub_80AEE4C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r4, 0
- adds r6, r5, 0
- b _080AEEC4
- .align 2, 0
-_080AEEB0: .4byte gUnknown_02038696
-_080AEEB4:
- mov r1, r9
- adds r0, r1, r4
- lsls r0, 6
- ldr r1, _080AEEE8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- adds r4, 0x1
-_080AEEC4:
- subs r0, r6, r7
- lsls r0, 2
- ldr r1, _080AEEEC
- adds r5, r0, r1
- movs r0, 0xD
- ldrsb r0, [r5, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- cmp r0, r4
- bgt _080AEEB4
- ldr r0, [sp]
- cmp r0, 0
- beq _080AEF3A
- movs r0, 0x5B
- b _080AEF2C
- .align 2, 0
-_080AEEE8: .4byte 0x0600c026
-_080AEEEC: .4byte 0x02019260
-_080AEEF0:
- movs r1, 0
- mov r8, r1
- movs r4, 0x3
- adds r6, r5, 0
- b _080AEF0A
-_080AEEFA:
- mov r1, r9
- adds r0, r1, r4
- lsls r0, 6
- ldr r1, _080AEF4C
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- subs r4, 0x1
-_080AEF0A:
- subs r0, r6, r7
- lsls r0, 2
- mov r1, r10
- adds r5, r0, r1
- movs r0, 0xD
- ldrsb r0, [r5, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- cmp r0, r4
- blt _080AEEFA
- ldr r0, [sp]
- cmp r0, 0
- beq _080AEF3A
- movs r0, 0x26
-_080AEF2C:
- bl PlaySE
- ldrb r1, [r5, 0x10]
- movs r0, 0x31
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x10]
-_080AEF3A:
- movs r0, 0x1
-_080AEF3C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AEF4C: .4byte 0x0600bfe6
- thumb_func_end sub_80AEE54
-
- thumb_func_start sub_80AEF50
-sub_80AEF50: @ 80AEF50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r5, 0
-_080AEF5A:
- ldr r0, _080AEF80
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80AEE4C
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
- lsls r7, r5, 3
- adds r2, r5, 0x1
- b _080AEF92
- .align 2, 0
-_080AEF80: .4byte gUnknown_02038696
-_080AEF84:
- mov r1, r8
- adds r0, r1, r4
- lsls r0, 6
- ldr r3, _080AEFE0
- adds r0, r3
- strh r6, [r0]
- adds r4, 0x1
-_080AEF92:
- subs r0, r7, r5
- lsls r0, 2
- ldr r1, _080AEFE4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- str r2, [sp]
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- ldr r2, [sp]
- cmp r4, r0
- blt _080AEF84
- movs r6, 0
- cmp r4, 0x2
- bgt _080AEFCE
- lsls r0, r4, 6
- ldr r1, _080AEFE0
- adds r0, r1
- mov r3, r8
- lsls r1, r3, 6
- adds r0, r1
-_080AEFC4:
- strh r6, [r0]
- adds r0, 0x40
- adds r4, 0x1
- cmp r4, 0x2
- ble _080AEFC4
-_080AEFCE:
- adds r5, r2, 0
- cmp r5, 0x3
- ble _080AEF5A
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AEFE0: .4byte 0x0600c026
-_080AEFE4: .4byte 0x02019260
- thumb_func_end sub_80AEF50
-
- thumb_func_start sub_80AEFE8
-sub_80AEFE8: @ 80AEFE8
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x4
- bhi _080AF02A
- lsls r0, r1, 2
- ldr r1, _080AF000
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AF000: .4byte _080AF004
- .align 2, 0
-_080AF004:
- .4byte _080AF018
- .4byte _080AF01C
- .4byte _080AF020
- .4byte _080AF024
- .4byte _080AF028
-_080AF018:
- movs r0, 0x80
- b _080AF02A
-_080AF01C:
- movs r0, 0x84
- b _080AF02A
-_080AF020:
- movs r0, 0x86
- b _080AF02A
-_080AF024:
- movs r0, 0x88
- b _080AF02A
-_080AF028:
- movs r0, 0x82
-_080AF02A:
- movs r1, 0x90
- lsls r1, 8
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80AEFE8
-
- thumb_func_start sub_80AF038
-sub_80AF038: @ 80AF038
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r5, 0x1
- movs r4, 0
- ldr r0, _080AF074
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- ldr r1, _080AF078
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, _080AF07C
- ands r0, r1
- cmp r0, 0
- bne _080AF06C
- ldrb r0, [r2, 0xF]
- cmp r0, 0
- beq _080AF080
-_080AF06C:
- adds r0, r3, 0
- movs r1, 0
- b _080AF0A6
- .align 2, 0
-_080AF074: .4byte gUnknown_02038696
-_080AF078: .4byte 0x02019260
-_080AF07C: .4byte 0x00ff0003
-_080AF080:
- ldrb r1, [r2, 0xC]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080AF090
- adds r0, r3, 0
- movs r1, 0x1
- b _080AF0A6
-_080AF090:
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080AF0A2
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080AF0B0
-_080AF0A2:
- adds r0, r3, 0
- movs r1, 0x2
-_080AF0A6:
- bl sub_80AEFE8
- lsls r0, 16
- lsrs r4, r0, 16
- b _080AF0B2
-_080AF0B0:
- movs r5, 0
-_080AF0B2:
- cmp r5, 0
- beq _080AF0EC
- lsls r2, r6, 6
- ldr r0, _080AF0DC
- adds r0, r2, r0
- strh r4, [r0]
- ldr r0, _080AF0E0
- adds r0, r2, r0
- adds r1, r4, 0x1
- strh r1, [r0]
- ldr r0, _080AF0E4
- adds r1, r2, r0
- adds r0, r4, 0
- adds r0, 0x10
- strh r0, [r1]
- ldr r0, _080AF0E8
- adds r2, r0
- adds r0, r4, 0
- adds r0, 0x11
- strh r0, [r2]
- b _080AF106
- .align 2, 0
-_080AF0DC: .4byte 0x0600c028
-_080AF0E0: .4byte 0x0600c02a
-_080AF0E4: .4byte 0x0600c068
-_080AF0E8: .4byte 0x0600c06a
-_080AF0EC:
- lsls r1, r6, 6
- ldr r0, _080AF110
- adds r0, r1, r0
- strh r5, [r0]
- ldr r0, _080AF114
- adds r0, r1, r0
- strh r5, [r0]
- ldr r2, _080AF118
- adds r0, r1, r2
- strh r5, [r0]
- ldr r0, _080AF11C
- adds r1, r0
- strh r5, [r1]
-_080AF106:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080AF110: .4byte 0x0600c028
-_080AF114: .4byte 0x0600c02a
-_080AF118: .4byte 0x0600c068
-_080AF11C: .4byte 0x0600c06a
- thumb_func_end sub_80AF038
-
- thumb_func_start sub_80AF120
-sub_80AF120: @ 80AF120
- push {r4,lr}
- movs r4, 0
-_080AF124:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80AF038
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AF124
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF120
-
- thumb_func_start sub_80AF138
-sub_80AF138: @ 80AF138
- push {lr}
- sub sp, 0x8
- ldr r0, _080AF158
- movs r1, 0x11
- str r1, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080AF158: .4byte gUnknown_03004210
- thumb_func_end sub_80AF138
-
- thumb_func_start sub_80AF15C
-sub_80AF15C: @ 80AF15C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- beq _080AF174
- movs r0, 0
- b _080AF1AA
-_080AF174:
- ldr r0, _080AF190
- ldrb r0, [r0]
- cmp r4, r0
- beq _080AF198
- adds r0, r4, 0
- bl sub_81288F4
- bl sub_8128944
- lsls r0, 24
- ldr r2, _080AF194
- lsrs r0, 23
- lsls r1, r4, 6
- b _080AF1A2
- .align 2, 0
-_080AF190: .4byte gUnknown_02038695
-_080AF194: .4byte gUnknown_02038570
-_080AF198:
- ldr r2, _080AF1B0
- ldr r0, _080AF1B4
- ldrb r0, [r0]
- lsls r0, 1
- lsls r1, r5, 6
-_080AF1A2:
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
-_080AF1AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AF1B0: .4byte gUnknown_02038570
-_080AF1B4: .4byte 0x02019204
- thumb_func_end sub_80AF15C
-
- thumb_func_start sub_80AF1B8
-sub_80AF1B8: @ 80AF1B8
- push {r4,lr}
- movs r4, 0
-_080AF1BC:
- adds r0, r4, 0
- bl sub_80AF15C
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _080AF1E0
- adds r1, r2
- strh r0, [r1, 0x6]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF1BC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF1E0: .4byte 0x02019260
- thumb_func_end sub_80AF1B8
-
- thumb_func_start sub_80AF1E4
-sub_80AF1E4: @ 80AF1E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _080AF1FC
- adds r0, r5, 0
- adds r0, 0xA
- lsls r0, 24
- lsrs r3, r0, 24
- b _080AF1FE
-_080AF1FC:
- movs r3, 0xE
-_080AF1FE:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- ldr r1, _080AF21C
- adds r1, r0, r1
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- bne _080AF228
- ldr r0, _080AF220
- ldr r1, _080AF224
- adds r2, r3, 0
- bl PutWindowTilemap
- b _080AF23A
- .align 2, 0
-_080AF21C: .4byte 0x02019260
-_080AF220: .4byte gUnknown_020238CC
-_080AF224: .4byte gUnknownText_MissedTurn
-_080AF228:
- ldr r0, _080AF270
- ldrh r2, [r1, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080AF274
- adds r1, r2
- adds r2, r3, 0
- bl PutWindowTilemap
-_080AF23A:
- adds r0, r5, 0
- bl sub_80AF2A0
- ldr r0, _080AF278
- ldr r1, _080AF270
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 18
- movs r3, 0xAE
- lsls r3, 18
- adds r2, r3
- lsrs r2, 16
- ldr r4, _080AF27C
- lsls r5, 1
- adds r3, r5, r4
- ldrb r3, [r3]
- adds r4, 0x1
- adds r5, r4
- ldrb r4, [r5]
- str r4, [sp]
- bl sub_8003460
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF270: .4byte gUnknown_020238CC
-_080AF274: .4byte gMoveNames
-_080AF278: .4byte gUnknown_03004210
-_080AF27C: .4byte gUnknown_083CA318
- thumb_func_end sub_80AF1E4
-
- thumb_func_start unref_sub_80AF280
-unref_sub_80AF280: @ 80AF280
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080AF288:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80AF1E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF288
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AF280
-
- thumb_func_start sub_80AF2A0
-sub_80AF2A0: @ 80AF2A0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- ldr r4, _080AF2D8
- ldr r1, _080AF2DC
- lsrs r0, 23
- adds r2, r0, r1
- ldrb r2, [r2]
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- adds r0, r2, 0x7
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF2D8: .4byte gUnknown_03004210
-_080AF2DC: .4byte gUnknown_083CA318
- thumb_func_end sub_80AF2A0
-
- thumb_func_start unref_sub_80AF2E0
-unref_sub_80AF2E0: @ 80AF2E0
- push {r4,lr}
- movs r4, 0
-_080AF2E4:
- adds r0, r4, 0
- bl sub_80AF2A0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF2E4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AF2E0
-
- thumb_func_start sub_80AF2FC
-sub_80AF2FC: @ 80AF2FC
- push {r4-r7,lr}
- sub sp, 0x8
- movs r4, 0
- ldr r2, _080AF398
-_080AF304:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2]
- ldrh r3, [r0, 0x4]
- adds r1, r3
- strh r1, [r0, 0x4]
- lsls r0, r4, 1
- add r0, sp
- strh r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF304
- movs r4, 0
-_080AF326:
- movs r2, 0x3
- cmp r2, r4
- bls _080AF354
-_080AF32C:
- subs r5, r2, 0x1
- lsls r0, r5, 1
- mov r7, sp
- adds r3, r7, r0
- lsls r0, r2, 1
- adds r2, r7, r0
- ldrh r6, [r3]
- movs r0, 0
- ldrsh r1, [r3, r0]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080AF34C
- ldrh r0, [r2]
- strh r6, [r2]
- strh r0, [r3]
-_080AF34C:
- lsls r0, r5, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bhi _080AF32C
-_080AF354:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080AF326
- movs r4, 0
- ldr r0, _080AF398
- mov r12, r0
- movs r7, 0x4
- negs r7, r7
- movs r6, 0x3
-_080AF36A:
- movs r2, 0
- lsls r0, r4, 3
- adds r5, r4, 0x1
- subs r0, r4
- lsls r0, 2
- mov r1, r12
- adds r3, r0, r1
- movs r4, 0x4
- ldrsh r1, [r3, r4]
-_080AF37C:
- lsls r0, r2, 1
- add r0, sp
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r1, r0
- bne _080AF39C
- ands r2, r6
- ldrb r1, [r3, 0xB]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0xB]
- b _080AF3A6
- .align 2, 0
-_080AF398: .4byte 0x02019260
-_080AF39C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080AF37C
-_080AF3A6:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF36A
- movs r0, 0x1
- bl sub_80B0F28
- bl sub_80B159C
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF2FC
-
- thumb_func_start sub_80AF3C0
-sub_80AF3C0: @ 80AF3C0
- push {lr}
- ldr r2, _080AF3D0
- adds r3, r2, 0
-_080AF3C6:
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _080AF3D4
- movs r1, 0x5
- b _080AF3F2
- .align 2, 0
-_080AF3D0: .4byte 0x02019260
-_080AF3D4:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r1, 0
- cmp r0, 0
- ble _080AF3F2
- movs r1, 0x1
- cmp r0, 0x1D
- ble _080AF3F2
- movs r1, 0x2
- cmp r0, 0x3B
- ble _080AF3F2
- movs r1, 0x4
- cmp r0, 0x4F
- bgt _080AF3F2
- movs r1, 0x3
-_080AF3F2:
- strb r1, [r2, 0x1A]
- adds r2, 0x1C
- adds r0, r3, 0
- adds r0, 0x54
- cmp r2, r0
- ble _080AF3C6
- pop {r0}
- bx r0
- thumb_func_end sub_80AF3C0
-
- thumb_func_start sub_80AF404
-sub_80AF404: @ 80AF404
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _080AF42C
- adds r2, r1, r0
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080AF428
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080AF430
-_080AF428:
- movs r0, 0
- b _080AF432
- .align 2, 0
-_080AF42C: .4byte 0x02019260
-_080AF430:
- movs r0, 0x1
-_080AF432:
- pop {r1}
- bx r1
- thumb_func_end sub_80AF404
-
- thumb_func_start sub_80AF438
-sub_80AF438: @ 80AF438
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r0, _080AF594
- mov r10, r0
- movs r1, 0
- mov r12, r1
- movs r0, 0x7
- negs r0, r0
- mov r9, r0
- movs r1, 0x2
- negs r1, r1
- mov r8, r1
-_080AF458:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- mov r1, r10
- adds r3, r0, r1
- movs r0, 0
- strh r0, [r3, 0x2]
- strh r0, [r3]
- mov r0, r12
- strb r0, [r3, 0x12]
- ldrb r2, [r3, 0xC]
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0
- beq _080AF48A
- lsls r0, r2, 29
- lsrs r0, 30
- subs r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 1
- mov r1, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
-_080AF48A:
- mov r1, r12
- strb r1, [r3, 0xE]
- ldrb r0, [r3, 0x10]
- mov r1, r8
- ands r1, r0
- mov r0, r12
- strb r0, [r3, 0xF]
- movs r0, 0x3
- negs r0, r0
- ands r1, r0
- movs r6, 0x5
- negs r6, r6
- ands r1, r6
- movs r7, 0x9
- negs r7, r7
- ands r1, r7
- ldrb r0, [r3, 0xC]
- mov r4, r8
- ands r4, r0
- strb r4, [r3, 0xC]
- movs r0, 0xFF
- strb r0, [r3, 0x13]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r3, 0x14]
- subs r0, 0x30
- ands r1, r0
- strb r1, [r3, 0x10]
- ldrb r2, [r3, 0x15]
- lsls r1, r2, 31
- lsrs r1, 31
- lsls r1, 2
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r8
- ands r0, r1
- strb r0, [r3, 0x15]
- ldrb r0, [r3, 0x11]
- movs r2, 0x4
- negs r2, r2
- ands r2, r0
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- strb r2, [r3, 0x11]
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080AF500
- adds r0, r4, 0
- mov r1, r9
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3, 0xC]
- adds r0, r2, 0
- ands r0, r6
- strb r0, [r3, 0x11]
-_080AF500:
- ldrb r2, [r3, 0x11]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080AF518
- ldrb r0, [r3, 0xB]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0xB]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r3, 0x11]
-_080AF518:
- ldrb r0, [r3, 0x11]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x11]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AF458
- movs r5, 0
- mov r6, r10
- mov r9, r5
- adds r7, r6, 0
- subs r7, 0x5C
- movs r0, 0x18
- negs r0, r0
- adds r0, r6
- mov r8, r0
-_080AF53E:
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- adds r4, r6
- ldrh r2, [r4, 0x6]
- strh r2, [r4, 0x8]
- lsls r1, r5, 1
- ldrb r0, [r7, 0x1]
- lsls r0, 3
- adds r1, r0
- adds r0, r6, 0
- subs r0, 0x40
- adds r0, r1
- strh r2, [r0]
- ldrh r0, [r4, 0x6]
- bl contest_get_move_excitement
- ldrb r1, [r7, 0x1]
- lsls r1, 2
- adds r1, r5, r1
- add r1, r8
- strb r0, [r1]
- mov r1, r9
- strh r1, [r4, 0x6]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080AF53E
- ldr r2, _080AF598
- ldrb r1, [r2, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF594: .4byte 0x02019260
-_080AF598: .4byte 0x02019328
- thumb_func_end sub_80AF438
-
- thumb_func_start sub_80AF59C
-sub_80AF59C: @ 80AF59C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _080AF5C4
- adds r2, r1, r0
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080AF5C0
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080AF5C8
-_080AF5C0:
- movs r0, 0x1
- b _080AF5CA
- .align 2, 0
-_080AF5C4: .4byte 0x02019260
-_080AF5C8:
- movs r0, 0
-_080AF5CA:
- pop {r1}
- bx r1
- thumb_func_end sub_80AF59C
-
- thumb_func_start unref_sub_80AF5D0
-unref_sub_80AF5D0: @ 80AF5D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r1, _080AF5E8
- ldrb r1, [r1]
- cmp r0, r1
- beq _080AF600
-_080AF5E2:
- movs r0, 0x1
- b _080AF626
- .align 2, 0
-_080AF5E8: .4byte gUnknown_02038695
-_080AF5EC:
- ldrb r0, [r4, 0x6]
- movs r1, 0x1
- b _080AF5F6
-_080AF5F2:
- ldrb r0, [r4, 0x6]
- movs r1, 0x2
-_080AF5F6:
- orrs r0, r1
- strb r0, [r4, 0x6]
- b _080AF5E2
-_080AF5FC:
- strb r3, [r2]
- b _080AF5E2
-_080AF600:
- movs r0, 0
- ldr r4, _080AF62C
- adds r5, r4, 0x2
-_080AF606:
- cmp r3, 0x3
- beq _080AF5EC
- cmp r3, 0x4
- beq _080AF5F2
- adds r2, r0, r5
- ldrb r1, [r2]
- cmp r1, r3
- beq _080AF5E2
- cmp r1, 0xFF
- beq _080AF5FC
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080AF606
- movs r0, 0
-_080AF626:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AF62C: .4byte 0x02019204
- thumb_func_end unref_sub_80AF5D0
-
- thumb_func_start sub_80AF630
-sub_80AF630: @ 80AF630
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80AF688
- ldr r1, _080AF65C
- lsls r4, 1
- adds r1, r4, r1
- strh r0, [r1]
- ldr r2, _080AF660
- adds r2, r4, r2
- ldr r1, _080AF664
- adds r4, r1
- ldrh r4, [r4]
- adds r0, r4
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF65C: .4byte gUnknown_02038688
-_080AF660: .4byte gUnknown_02038678
-_080AF664: .4byte gUnknown_02038670
- thumb_func_end sub_80AF630
-
- thumb_func_start sub_80AF668
-sub_80AF668: @ 80AF668
- push {r4,lr}
- movs r4, 0
-_080AF66C:
- adds r0, r4, 0
- bl sub_80AF630
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080AF66C
- bl sub_80AF6A0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF668
-
- thumb_func_start sub_80AF688
-sub_80AF688: @ 80AF688
- lsls r0, 24
- ldr r1, _080AF69C
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 17
- asrs r0, 16
- bx lr
- .align 2, 0
-_080AF69C: .4byte gUnknown_02038680
- thumb_func_end sub_80AF688
-
- thumb_func_start sub_80AF6A0
-sub_80AF6A0: @ 80AF6A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x70
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x8
- str r1, [sp, 0x64]
- mov r3, sp
- adds r3, 0xC
- str r3, [sp, 0x68]
- mov r6, sp
- adds r6, 0x14
- str r6, [sp, 0x6C]
- mov r4, sp
-_080AF6CE:
- bl Random
- strh r0, [r4]
- movs r2, 0
- cmp r2, r9
- bge _080AF70C
- mov r1, sp
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- cmp r0, r1
- bne _080AF6F0
- subs r4, 0x2
- movs r7, 0x1
- negs r7, r7
- add r9, r7
- b _080AF70C
-_080AF6F0:
- adds r2, 0x1
- cmp r2, r9
- bge _080AF70C
- lsls r0, r2, 1
- mov r3, sp
- adds r1, r3, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080AF6F0
- subs r4, 0x2
- movs r6, 0x1
- negs r6, r6
- add r9, r6
-_080AF70C:
- adds r4, 0x2
- movs r7, 0x1
- add r9, r7
- mov r0, r9
- cmp r0, 0x3
- ble _080AF6CE
- movs r1, 0
- mov r9, r1
- mov r4, sp
- ldr r6, _080AF81C
- ldr r2, [sp, 0x64]
- ldr r5, _080AF820
- ldr r3, [sp, 0x68]
-_080AF726:
- mov r7, r9
- lsls r1, r7, 4
- movs r7, 0
- ldrsh r0, [r6, r7]
- str r0, [r2]
- movs r7, 0
- ldrsh r0, [r5, r7]
- str r0, [r3]
- ldrh r0, [r4]
- str r0, [r2, 0x8]
- ldr r0, [sp, 0x6C]
- adds r1, r0, r1
- mov r7, r9
- str r7, [r1]
- adds r4, 0x2
- adds r6, 0x2
- adds r2, 0x10
- adds r5, 0x2
- adds r3, 0x10
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x3
- ble _080AF726
- movs r3, 0
- mov r9, r3
-_080AF75A:
- movs r4, 0x3
- cmp r4, r9
- ble _080AF7E4
- add r7, sp, 0x48
- ldr r6, [sp, 0x68]
- str r6, [sp, 0x58]
- ldr r0, [sp, 0x64]
- adds r0, 0x8
- str r0, [sp, 0x5C]
- ldr r1, [sp, 0x6C]
- str r1, [sp, 0x60]
-_080AF770:
- subs r3, r4, 0x1
- mov r10, r3
- mov r0, r10
- adds r1, r4, 0
- ldr r2, [sp, 0x64]
- bl sub_80AF828
- lsls r0, 24
- cmp r0, 0
- beq _080AF7DE
- mov r6, r10
- lsls r2, r6, 4
- ldr r0, [sp, 0x64]
- adds r3, r0, r2
- ldr r0, [r3]
- str r0, [sp, 0x48]
- ldr r1, [sp, 0x58]
- adds r6, r1, r2
- ldr r0, [r6]
- str r0, [r7, 0x4]
- ldr r0, [sp, 0x5C]
- adds r0, r2
- mov r8, r0
- ldr r0, [r0]
- str r0, [r7, 0x8]
- ldr r1, [sp, 0x60]
- adds r2, r1, r2
- ldr r0, [r2]
- str r0, [r7, 0xC]
- lsls r1, r4, 4
- ldr r0, [sp, 0x64]
- adds r5, r0, r1
- ldr r0, [r5]
- str r0, [r3]
- ldr r3, [sp, 0x58]
- adds r4, r3, r1
- ldr r0, [r4]
- str r0, [r6]
- ldr r6, [sp, 0x5C]
- adds r3, r6, r1
- ldr r0, [r3]
- mov r6, r8
- str r0, [r6]
- ldr r0, [sp, 0x60]
- adds r1, r0, r1
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, [sp, 0x48]
- str r0, [r5]
- ldr r0, [r7, 0x4]
- str r0, [r4]
- ldr r0, [r7, 0x8]
- str r0, [r3]
- ldr r0, [r7, 0xC]
- str r0, [r1]
-_080AF7DE:
- mov r4, r10
- cmp r4, r9
- bgt _080AF770
-_080AF7E4:
- movs r1, 0x1
- add r9, r1
- mov r3, r9
- cmp r3, 0x2
- ble _080AF75A
- movs r6, 0
- mov r9, r6
- ldr r2, _080AF824
- ldr r1, [sp, 0x6C]
-_080AF7F6:
- ldr r0, [r1]
- adds r0, r2
- mov r7, r9
- strb r7, [r0]
- adds r1, 0x10
- movs r0, 0x1
- add r9, r0
- mov r3, r9
- cmp r3, 0x3
- ble _080AF7F6
- add sp, 0x70
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AF81C: .4byte gUnknown_02038678
-_080AF820: .4byte gUnknown_02038670
-_080AF824: .4byte gUnknown_02038690
- thumb_func_end sub_80AF6A0
-
- thumb_func_start sub_80AF828
-sub_80AF828: @ 80AF828
- push {lr}
- lsls r0, 4
- adds r0, r2
- lsls r1, 4
- adds r3, r1, r2
- ldr r2, [r0]
- ldr r1, [r3]
- cmp r2, r1
- blt _080AF858
- cmp r2, r1
- bgt _080AF84A
- ldr r2, [r0, 0x4]
- ldr r1, [r3, 0x4]
- cmp r2, r1
- blt _080AF858
- cmp r2, r1
- ble _080AF84E
-_080AF84A:
- movs r2, 0
- b _080AF85A
-_080AF84E:
- ldr r1, [r0, 0x8]
- ldr r0, [r3, 0x8]
- movs r2, 0
- cmp r1, r0
- bge _080AF85A
-_080AF858:
- movs r2, 0x1
-_080AF85A:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80AF828
-
- thumb_func_start sub_80AF860
-sub_80AF860: @ 80AF860
- push {lr}
- sub sp, 0x4
- ldr r0, _080AF88C
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080AF890
- strh r1, [r0]
- bl sub_80AF138
- ldr r0, _080AF894
- ldr r1, _080AF898
- movs r2, 0xC2
- lsls r2, 2
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x1
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080AF88C: .4byte gUnknown_030042A0
-_080AF890: .4byte gUnknown_03004280
-_080AF894: .4byte gMenuWindow
-_080AF898: .4byte gUnknownText_LinkStandbyAndWinner
- thumb_func_end sub_80AF860
-
- thumb_func_start unref_sub_80AF89C
-unref_sub_80AF89C: @ 80AF89C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r2, r3, 2
- ldr r0, _080AF940
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r0, _080AF944
- movs r1, 0x14
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80AFB74
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- asrs r6, 16
- adds r4, r6
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80AFB74
- adds r4, r0, 0
- subs r4, r5
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- bl sub_80AFB40
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080AF948
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- add r0, r8
- strh r0, [r1, 0xC]
- mov r0, r9
- strh r0, [r1, 0xE]
- cmp r6, 0
- bge _080AF932
- mov r0, r9
- bl nullsub_19
-_080AF932:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AF940: .4byte 0x02019338
-_080AF944: .4byte sub_80AF94C
-_080AF948: .4byte gTasks
- thumb_func_end unref_sub_80AF89C
-
- thumb_func_start sub_80AF94C
-sub_80AF94C: @ 80AF94C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AF988
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xE]
- ldrh r3, [r2, 0xA]
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- cmp r1, 0
- bne _080AF990
- adds r0, r5, 0
- bl nullsub_19
- adds r0, r4, 0
- bl DestroyTask
- lsls r1, r5, 2
- ldr r0, _080AF98C
- adds r1, r0
- ldrb r2, [r1, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x2]
- b _080AFA56
- .align 2, 0
-_080AF988: .4byte gTasks
-_080AF98C: .4byte 0x02019338
-_080AF990:
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080AFA56
- movs r0, 0
- strh r0, [r2, 0x1C]
- cmp r1, 0
- bge _080AF9BC
- ldrh r0, [r2, 0x8]
- subs r1, r0, 0x1
- strh r1, [r2, 0x8]
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r3, 0x1
- strh r0, [r2, 0xA]
- movs r0, 0x16
- bl PlaySE
- b _080AF9D0
-_080AF9BC:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 24
- lsrs r6, r0, 24
- subs r0, r3, 0x1
- strh r0, [r2, 0xA]
- movs r0, 0x15
- bl PlaySE
-_080AF9D0:
- ldr r3, _080AFA00
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 3
- adds r0, r2, r3
- ldrh r1, [r0, 0xC]
- ldr r0, _080AFA04
- cmp r1, r0
- beq _080AFA38
- adds r0, r3, r2
- adds r0, 0xC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 5
- adds r1, 0x93
- adds r1, r6, r1
- lsls r1, 1
- ldr r2, _080AFA08
- adds r1, r2
- movs r2, 0x2
- bl RequestSpriteCopy
- b _080AFA56
- .align 2, 0
-_080AFA00: .4byte gTasks
-_080AFA04: .4byte 0x0000ffff
-_080AFA08: .4byte 0x0600c000
-_080AFA0C:
- adds r0, r2, r3
- lsls r1, 1
- adds r1, 0xE
- adds r0, r1
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 5
- adds r1, 0x93
- adds r1, r6, r1
- lsls r1, 1
- ldr r7, _080AFA34
- adds r1, r7
- movs r2, 0x2
- bl RequestSpriteCopy
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080AFA56
- .align 2, 0
-_080AFA34: .4byte 0x0600c000
-_080AFA38:
- movs r1, 0
- adds r3, 0x8
-_080AFA3C:
- adds r0, r1, 0x4
- lsls r0, 1
- adds r0, r2
- adds r4, r0, r3
- movs r7, 0
- ldrsh r0, [r4, r7]
- cmp r0, 0
- blt _080AFA0C
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080AFA3C
-_080AFA56:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80AF94C
-
- thumb_func_start sub_80AFA5C
-sub_80AFA5C: @ 80AFA5C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- ldr r0, _080AFAAC
- mov r12, r0
- mov r4, sp
- movs r6, 0
- ldr r2, _080AFAB0
- ldr r5, _080AFAB4
-_080AFA6E:
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 5
- adds r0, r1, 0
- adds r0, 0x56
- lsls r0, 1
- add r0, r12
- strh r6, [r4]
- mov r7, sp
- str r7, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, 0x76
- lsls r1, 1
- add r1, r12
- strh r6, [r4]
- str r7, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080AFA6E
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFAAC: .4byte 0x0600c000
-_080AFAB0: .4byte 0x040000d4
-_080AFAB4: .4byte 0x81000008
- thumb_func_end sub_80AFA5C
-
- thumb_func_start unref_sub_80AFAB8
-unref_sub_80AFAB8: @ 80AFAB8
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r0, 16
- asrs r0, 16
- bl sub_80AFB74
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080AFAF4
- cmp r4, 0
- beq _080AFAE0
- ldr r2, _080AFAF8
- cmp r4, 0x1
- beq _080AFAE0
- ldr r2, _080AFAFC
- cmp r4, 0x2
- bne _080AFAE0
- ldr r2, _080AFB00
-_080AFAE0:
- movs r1, 0
- lsls r3, r4, 2
- movs r6, 0
-_080AFAE6:
- cmp r1, r5
- bcs _080AFB04
- lsls r0, r1, 1
- add r0, sp
- strh r2, [r0]
- b _080AFB0A
- .align 2, 0
-_080AFAF4: .4byte 0x000050a2
-_080AFAF8: .4byte 0x000060a2
-_080AFAFC: .4byte 0x000080a2
-_080AFB00: .4byte 0x000070a2
-_080AFB04:
- lsls r0, r1, 1
- add r0, sp
- strh r6, [r0]
-_080AFB0A:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x8
- bls _080AFAE6
- adds r0, r3, r4
- lsls r0, 6
- ldr r1, _080AFB34
- adds r0, r1
- ldr r1, _080AFB38
- mov r2, sp
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080AFB3C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFB34: .4byte 0x0600c128
-_080AFB38: .4byte 0x040000d4
-_080AFB3C: .4byte 0x80000009
- thumb_func_end unref_sub_80AFAB8
-
- thumb_func_start sub_80AFB40
-sub_80AFB40: @ 80AFB40
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080AFB64
- cmp r0, 0
- beq _080AFB5A
- ldr r1, _080AFB68
- cmp r0, 0x1
- beq _080AFB5A
- ldr r1, _080AFB6C
- cmp r0, 0x2
- bne _080AFB5A
- ldr r1, _080AFB70
-_080AFB5A:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080AFB64: .4byte 0x00005011
-_080AFB68: .4byte 0x00006011
-_080AFB6C: .4byte 0x00008011
-_080AFB70: .4byte 0x00007011
- thumb_func_end sub_80AFB40
-
- thumb_func_start sub_80AFB74
-sub_80AFB74: @ 80AFB74
- push {lr}
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r2, r0, 24
- cmp r2, 0x10
- ble _080AFB8E
- movs r1, 0x10
- b _080AFB98
-_080AFB8E:
- movs r0, 0x10
- negs r0, r0
- cmp r2, r0
- bge _080AFB98
- movs r1, 0xF0
-_080AFB98:
- lsls r0, r1, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80AFB74
-
- thumb_func_start sub_80AFBA0
-sub_80AFBA0: @ 80AFBA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r2, r7, 2
- ldr r0, _080AFC30
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r0, _080AFC34
- movs r1, 0x14
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r5, 16
- asrs r5, 16
- adds r0, r5, 0
- bl sub_80AFB74
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r5, r0
- lsls r5, 16
- asrs r5, 16
- adds r0, r5, 0
- bl sub_80AFB74
- lsls r4, 24
- asrs r4, 24
- subs r0, r4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0
- bl sub_80AFB40
- ldr r2, _080AFC38
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- adds r1, r0, r2
- adds r0, r4, 0
- cmp r4, 0
- bge _080AFC14
- negs r0, r4
-_080AFC14:
- strh r0, [r1, 0x8]
- lsls r0, r5, 24
- asrs r0, 24
- strh r0, [r1, 0xA]
- cmp r4, 0
- bgt _080AFC28
- cmp r4, 0
- bne _080AFC3C
- cmp r0, 0
- ble _080AFC3C
-_080AFC28:
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _080AFC4A
- .align 2, 0
-_080AFC30: .4byte 0x02019338
-_080AFC34: .4byte sub_80AFC74
-_080AFC38: .4byte gTasks
-_080AFC3C:
- ldr r2, _080AFC6C
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r2
- ldr r1, _080AFC70
- strh r1, [r0, 0xC]
-_080AFC4A:
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r2
- strh r7, [r0, 0xE]
- mov r1, r8
- lsls r0, r1, 16
- cmp r0, 0
- bge _080AFC60
- adds r0, r7, 0
- bl nullsub_19
-_080AFC60:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AFC6C: .4byte gTasks
-_080AFC70: .4byte 0x0000ffff
- thumb_func_end sub_80AFBA0
-
- thumb_func_start sub_80AFC74
-sub_80AFC74: @ 80AFC74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080AFCD4
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r7, [r4, 0xE]
- ldrh r3, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bgt _080AFCA6
- b _080AFE1C
-_080AFCA6:
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r2, [r4, 0xA]
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, 0
- bne _080AFCDC
- adds r0, r7, 0
- bl nullsub_19
- mov r0, r8
- bl DestroyTask
- lsls r1, r7, 2
- ldr r0, _080AFCD8
- adds r1, r0
- ldrb r2, [r1, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x2]
- b _080AFE1C
- .align 2, 0
-_080AFCD4: .4byte gTasks
-_080AFCD8: .4byte 0x02019338
-_080AFCDC:
- cmp r3, 0
- bne _080AFD28
- lsls r0, r1, 16
- mov r9, r0
- cmp r0, 0
- bge _080AFCFA
- adds r0, r7, 0
- bl sub_80AFB40
- adds r0, 0x2
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- b _080AFD08
-_080AFCFA:
- adds r0, r7, 0
- bl sub_80AFB40
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
-_080AFD08:
- strh r0, [r4, 0xA]
- ldr r1, _080AFD24
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r2, r1, 0x1
- strh r2, [r0, 0x8]
- lsls r1, 24
- lsrs r5, r1, 24
- b _080AFD94
- .align 2, 0
-_080AFD24: .4byte gTasks
-_080AFD28:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080AFD62
- lsls r0, r1, 16
- mov r9, r0
- cmp r0, 0
- bge _080AFD50
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- adds r0, r7, 0
- bl sub_80AFB40
- adds r0, 0x2
- b _080AFD90
-_080AFD50:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- subs r0, r2, 0x1
- strh r0, [r4, 0xA]
- b _080AFD94
-_080AFD62:
- lsls r0, r1, 16
- mov r9, r0
- cmp r0, 0
- bge _080AFD7C
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- b _080AFD94
-_080AFD7C:
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 24
- lsrs r5, r0, 24
- subs r0, r2, 0x1
- strh r0, [r4, 0xA]
- adds r0, r7, 0
- bl sub_80AFB40
-_080AFD90:
- lsls r0, 16
- lsrs r6, r0, 16
-_080AFD94:
- mov r10, r5
- cmp r5, 0x7
- bls _080AFDA2
- adds r0, r5, 0
- adds r0, 0x18
- lsls r0, 24
- lsrs r5, r0, 24
-_080AFDA2:
- mov r0, sp
- strh r6, [r0]
- ldr r0, _080AFDE8
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, 0x56
- adds r1, r5, r1
- lsls r1, 1
- ldr r0, _080AFDEC
- adds r1, r0
- ldr r2, _080AFDF0
- mov r0, sp
- bl CpuSet
- mov r2, r9
- cmp r2, 0
- ble _080AFDFC
- movs r0, 0x60
- bl PlaySE
- ldr r4, _080AFDF4
- adds r0, r4, 0
- bl m4aMPlayImmInit
- ldr r1, _080AFDF8
- mov r3, r10
- lsls r2, r3, 24
- asrs r2, 16
- adds r0, r4, 0
- bl m4aMPlayPitchControl
- b _080AFE02
- .align 2, 0
-_080AFDE8: .4byte gUnknown_02038696
-_080AFDEC: .4byte 0x0600c000
-_080AFDF0: .4byte 0x01000001
-_080AFDF4: .4byte gMPlay_SE1
-_080AFDF8: .4byte 0x0000ffff
-_080AFDFC:
- movs r0, 0x16
- bl PlaySE
-_080AFE02:
- cmp r5, 0
- bne _080AFE1C
- cmp r6, 0
- bne _080AFE1C
- ldr r0, _080AFE2C
- mov r5, r8
- lsls r1, r5, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- negs r0, r0
- strh r0, [r1, 0xC]
-_080AFE1C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFE2C: .4byte gTasks
- thumb_func_end sub_80AFC74
-
- thumb_func_start sub_80AFE30
-sub_80AFE30: @ 80AFE30
- push {r4,r5,lr}
- ldr r0, _080AFE64
- bl LoadSpriteSheet
- movs r4, 0
- ldr r5, _080AFE68
-_080AFE3C:
- ldr r0, _080AFE6C
- adds r0, r4, r0
- ldrb r0, [r0]
- adds r0, r5
- ldrb r2, [r0]
- ldr r0, _080AFE70
- movs r1, 0xB4
- movs r3, 0x1
- bl CreateSprite
- lsls r1, r4, 2
- ldr r2, _080AFE74
- adds r1, r2
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AFE3C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFE64: .4byte gUnknown_083CA350
-_080AFE68: .4byte gUnknown_083CA338
-_080AFE6C: .4byte gUnknown_02038696
-_080AFE70: .4byte gSpriteTemplate_83CA3AC
-_080AFE74: .4byte 0x02019338
- thumb_func_end sub_80AFE30
-
- thumb_func_start sub_80AFE78
-sub_80AFE78: @ 80AFE78
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, r6, 2
- ldr r3, _080AFEB0
- adds r2, r3
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r7, [r2]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- subs r3, 0xD8
- adds r0, r3
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 17
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x38
- ble _080AFEB4
- movs r5, 0x38
- b _080AFEBA
- .align 2, 0
-_080AFEB0: .4byte 0x02019338
-_080AFEB4:
- cmp r0, 0
- bge _080AFEBA
- movs r5, 0
-_080AFEBA:
- ldr r2, _080AFEEC
- lsls r3, r7, 4
- adds r0, r3, r7
- lsls r0, 2
- adds r4, r0, r2
- movs r0, 0x3E
- adds r0, r4
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- strh r6, [r4, 0x2E]
- strh r5, [r4, 0x30]
- lsls r0, r5, 16
- asrs r0, 16
- movs r5, 0x24
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080AFEF0
- movs r0, 0x1
- b _080AFEF2
- .align 2, 0
-_080AFEEC: .4byte gSprites
-_080AFEF0:
- ldr r0, _080AFF08
-_080AFEF2:
- strh r0, [r4, 0x32]
- adds r0, r3, r7
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080AFF0C
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFF08: .4byte 0x0000ffff
-_080AFF0C: .4byte sub_80AFF60
- thumb_func_end sub_80AFE78
-
- thumb_func_start sub_80AFF10
-sub_80AFF10: @ 80AFF10
- push {r4,lr}
- movs r4, 0
-_080AFF14:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80AFE78
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AFF14
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFF10
-
- thumb_func_start sub_80AFF28
-sub_80AFF28: @ 80AFF28
- push {r4,lr}
- movs r3, 0
- ldr r2, _080AFF54
- ldrb r1, [r2, 0x2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AFF4C
- movs r4, 0x1
-_080AFF3A:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x3
- bgt _080AFF4C
- ldrb r1, [r2, 0x2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080AFF3A
-_080AFF4C:
- cmp r3, 0x4
- beq _080AFF58
- movs r0, 0
- b _080AFF5A
- .align 2, 0
-_080AFF54: .4byte 0x02019338
-_080AFF58:
- movs r0, 0x1
-_080AFF5A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80AFF28
-
- thumb_func_start sub_80AFF60
-sub_80AFF60: @ 80AFF60
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x24]
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- cmp r1, r0
- bne _080AFF94
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r1, 2
- ldr r0, _080AFF8C
- adds r1, r0
- ldrb r2, [r1, 0x2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x2]
- ldr r0, _080AFF90
- str r0, [r3, 0x1C]
- b _080AFF9A
- .align 2, 0
-_080AFF8C: .4byte 0x02019338
-_080AFF90: .4byte SpriteCallbackDummy
-_080AFF94:
- ldrh r0, [r3, 0x32]
- adds r0, r2, r0
- strh r0, [r3, 0x24]
-_080AFF9A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFF60
-
- thumb_func_start sub_80AFFA0
-sub_80AFFA0: @ 80AFFA0
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, _080AFFD0
- ldr r5, _080AFFD4
- ldr r3, _080AFFD8
- ldr r4, _080AFFDC
-_080AFFAC:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- strh r0, [r1, 0x22]
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x3
- ble _080AFFAC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AFFD0: .4byte gSprites
-_080AFFD4: .4byte gUnknown_083CA338
-_080AFFD8: .4byte 0x02019338
-_080AFFDC: .4byte gUnknown_02038696
- thumb_func_end sub_80AFFA0
-
- thumb_func_start sub_80AFFE0
-sub_80AFFE0: @ 80AFFE0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r6, _080B0008
- ldr r4, _080B000C
- ldr r2, _080B0010
-_080AFFEE:
- adds r0, r3, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080B0024
- cmp r5, 0
- bne _080B0014
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0xB4
- b _080B0022
- .align 2, 0
-_080B0008: .4byte gUnknown_02038696
-_080B000C: .4byte gSprites
-_080B0010: .4byte 0x02019338
-_080B0014:
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x80
- lsls r0, 1
-_080B0022:
- strh r0, [r1, 0x20]
-_080B0024:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x3
- ble _080AFFEE
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80AFFE0
-
- thumb_func_start sub_80B0034
-sub_80B0034: @ 80B0034
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080B00A8
- bl LoadSpritePalette
- movs r5, 0
- ldr r0, _080B00AC
- mov r8, r0
- ldr r7, _080B00B0
- movs r6, 0
-_080B004A:
- lsls r0, r5, 3
- ldr r1, _080B00B4
- adds r0, r1
- bl LoadCompressedObjectPic
- ldr r0, _080B00B8
- adds r0, r6, r0
- ldr r1, _080B00BC
- adds r1, r5, r1
- ldrb r1, [r1]
- add r1, r8
- ldrb r2, [r1]
- movs r1, 0xCC
- movs r3, 0
- bl CreateSprite
- lsls r4, r5, 2
- ldr r1, _080B00C0
- adds r4, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _080B00C4
- bl SetSubspriteTables
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r6, 0x18
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B004A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B00A8: .4byte gUnknown_083CA3E4
-_080B00AC: .4byte gUnknown_083CA33C
-_080B00B0: .4byte gSprites
-_080B00B4: .4byte gUnknown_083CA3C4
-_080B00B8: .4byte gSpriteTemplate_83CA3F4
-_080B00BC: .4byte gUnknown_02038696
-_080B00C0: .4byte 0x02019338
-_080B00C4: .4byte gUnknown_083CA464
- thumb_func_end sub_80B0034
-
- thumb_func_start sub_80B00C8
-sub_80B00C8: @ 80B00C8
- push {lr}
- ldr r0, _080B0104
- bl LoadCompressedObjectPic
- ldr r0, _080B0108
- bl LoadSpritePalette
- ldr r0, _080B010C
- movs r1, 0x1E
- movs r2, 0x2C
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B0110
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- ldr r1, _080B0114
- adds r1, 0x58
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080B0104: .4byte gUnknown_083CA46C
-_080B0108: .4byte gUnknown_083CA474
-_080B010C: .4byte gSpriteTemplate_83CA484
-_080B0110: .4byte gSprites
-_080B0114: .4byte 0x02019204
- thumb_func_end sub_80B00C8
-
- thumb_func_start nullsub_18
-nullsub_18: @ 80B0118
- bx lr
- thumb_func_end nullsub_18
-
- thumb_func_start unref_sub_80B011C
-unref_sub_80B011C: @ 80B011C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080B0198
- bl LoadCompressedObjectPic
- movs r4, 0
- ldr r5, _080B019C
-_080B012C:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadCompressedObjectPalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B012C
- movs r4, 0
- ldr r5, _080B01A0
- adds r0, r5, 0x1
- mov r8, r0
- ldr r7, _080B01A4
- ldr r6, _080B01A8
-_080B014A:
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 3
- ldr r1, _080B01AC
- adds r0, r1
- adds r1, r2, r5
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- movs r2, 0x3E
- adds r2, r1
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x4
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- strh r4, [r1, 0x2E]
- adds r1, r4, r6
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B014A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0198: .4byte gUnknown_083CC3AC
-_080B019C: .4byte gUnknown_083CC3B4
-_080B01A0: .4byte gUnknown_083CA330
-_080B01A4: .4byte gSprites
-_080B01A8: .4byte 0x0201920d
-_080B01AC: .4byte gSpriteTemplate_83CC454
- thumb_func_end unref_sub_80B011C
-
- thumb_func_start unref_sub_80B01B0
-unref_sub_80B01B0: @ 80B01B0
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, _080B01D4
- ldr r4, _080B01D8
- ldr r3, _080B01DC
-_080B01BA:
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B01BA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B01D4: .4byte 0x0201920d
-_080B01D8: .4byte gSprites + 0x1C
-_080B01DC: .4byte ObjectCB_SwitchPocketRotatingBallInit
- thumb_func_end unref_sub_80B01B0
-
- thumb_func_start unref_sub_80B01E0
-unref_sub_80B01E0: @ 80B01E0
- push {r4,r5,lr}
- movs r3, 0
- ldr r2, _080B0224
- ldr r4, _080B0228
- ldrb r1, [r4, 0x9]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080B022C
- cmp r1, r0
- bne _080B021A
- adds r5, r4, 0
- adds r5, 0x9
- adds r4, r1, 0
-_080B0202:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _080B021A
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- beq _080B0202
-_080B021A:
- cmp r3, 0x4
- beq _080B0230
- movs r0, 0
- b _080B0232
- .align 2, 0
-_080B0224: .4byte gSprites
-_080B0228: .4byte 0x02019204
-_080B022C: .4byte SpriteCallbackDummy
-_080B0230:
- movs r0, 0x1
-_080B0232:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B01E0
-
- thumb_func_start ObjectCB_SwitchPocketRotatingBallInit
-ObjectCB_SwitchPocketRotatingBallInit: @ 80B0238
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B0268
- ldr r0, _080B0264
- b _080B0272
- .align 2, 0
-_080B0264: .4byte sub_80B02A8
-_080B0268:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080B027C
-_080B0272:
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B027C: .4byte sub_80B0280
- thumb_func_end ObjectCB_SwitchPocketRotatingBallInit
-
- thumb_func_start sub_80B0280
-sub_80B0280: @ 80B0280
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B02A0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080B02A4
- str r0, [r3, 0x1C]
-_080B02A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080B02A4: .4byte sub_80B02A8
- thumb_func_end sub_80B0280
-
- thumb_func_start sub_80B02A8
-sub_80B02A8: @ 80B02A8
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080B02EC
- adds r0, r1
- ldrb r1, [r0, 0xB]
- lsls r1, 30
- lsrs r1, 30
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080B02F0
- str r0, [r4, 0x1C]
- movs r0, 0x18
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B02EC: .4byte 0x02019260
-_080B02F0: .4byte sub_80B02F4
- thumb_func_end sub_80B02A8
-
- thumb_func_start sub_80B02F4
-sub_80B02F4: @ 80B02F4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B0318
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x1]
- ldr r0, _080B0320
- str r0, [r4, 0x1C]
-_080B0318:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0320: .4byte SpriteCallbackDummy
- thumb_func_end sub_80B02F4
-
- thumb_func_start sub_80B0324
-sub_80B0324: @ 80B0324
- push {r4,lr}
- ldr r0, _080B035C
- movs r1, 0x1E
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B0360
- strb r0, [r1, 0xD]
- movs r2, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r4, _080B0364
- movs r3, 0xFF
-_080B0342:
- lsls r0, r2, 3
- adds r0, r1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080B0342
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B035C: .4byte sub_80B0458
-_080B0360: .4byte 0x02019204
-_080B0364: .4byte gUnknown_03004B28
- thumb_func_end sub_80B0324
-
- thumb_func_start sub_80B0368
-sub_80B0368: @ 80B0368
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080B03A0
- ldr r5, _080B03A4
- ldrb r2, [r5, 0xD]
- lsls r1, r2, 2
- adds r1, r2
- adds r1, r0
- lsls r1, 3
- adds r3, 0x8
- adds r1, r3
- movs r4, 0
- strh r4, [r1]
- lsls r0, 2
- adds r0, 0x1
- lsls r0, 1
- ldrb r2, [r5, 0xD]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r0, r1
- adds r0, r3
- strh r4, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B03A0: .4byte gTasks
-_080B03A4: .4byte 0x02019204
- thumb_func_end sub_80B0368
-
- thumb_func_start sub_80B03A8
-sub_80B03A8: @ 80B03A8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B03D0
- movs r1, 0x1F
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B03D4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B03D0: .4byte sub_80B03D8
-_080B03D4: .4byte gTasks
- thumb_func_end sub_80B03A8
-
- thumb_func_start sub_80B03D8
-sub_80B03D8: @ 80B03D8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r2, _080B044C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x8]
- adds r4, r0, 0
- ldr r6, _080B0450
- ldrb r1, [r6, 0xD]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 3
- adds r7, r2, 0
- adds r7, 0x8
- adds r1, r0, r7
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B040C
- cmp r0, 0xFF
- bne _080B0444
-_080B040C:
- movs r3, 0
- movs r0, 0xFF
- strh r0, [r1]
- lsls r1, r4, 2
- adds r1, 0x1
- lsls r1, 1
- ldrb r2, [r6, 0xD]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r7
- strh r3, [r1]
- adds r0, r6, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 4
- adds r0, 0x6
- ldr r3, _080B0454
- movs r1, 0x2
- movs r2, 0
- bl BlendPalette
- adds r0, r5, 0
- bl DestroyTask
-_080B0444:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B044C: .4byte gTasks
-_080B0450: .4byte 0x02019204
-_080B0454: .4byte 0x00004bff
- thumb_func_end sub_80B03D8
-
- thumb_func_start sub_80B0458
-sub_80B0458: @ 80B0458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- lsls r1, r0, 2
- adds r1, r0
- mov r9, r1
- lsls r7, r1, 3
- ldr r0, _080B04A8
- mov r8, r0
- movs r1, 0x8
- negs r1, r1
- add r1, r8
- mov r10, r1
-_080B047C:
- lsls r0, r6, 26
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r7
- mov r4, r8
- adds r2, r0, r4
- ldrh r4, [r2]
- movs r5, 0
- ldrsh r0, [r2, r5]
- cmp r0, 0xFF
- beq _080B04F6
- adds r0, r3, 0x1
- lsls r1, r0, 1
- adds r1, r7
- add r1, r8
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r5, r0, 0
- cmp r1, 0
- bne _080B04AC
- adds r0, r4, 0x1
- b _080B04AE
- .align 2, 0
-_080B04A8: .4byte gUnknown_03004B28
-_080B04AC:
- subs r0, r4, 0x1
-_080B04AE:
- strh r0, [r2]
- lsls r1, r3, 1
- mov r0, r9
- lsls r2, r0, 3
- adds r0, r1, r2
- mov r3, r10
- adds r3, 0x8
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x10
- beq _080B04CC
- cmp r0, 0
- bne _080B04DA
-_080B04CC:
- lsls r0, r5, 1
- adds r0, r2
- adds r0, r3
- ldrh r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0]
-_080B04DA:
- ldr r0, _080B0510
- adds r0, 0x14
- adds r0, r6, r0
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 4
- adds r0, 0x6
- adds r1, r4, r7
- add r1, r8
- ldrb r2, [r1]
- movs r1, 0x2
- ldr r3, _080B0514
- bl BlendPalette
-_080B04F6:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _080B047C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0510: .4byte 0x02019204
-_080B0514: .4byte 0x00004bff
- thumb_func_end sub_80B0458
-
- thumb_func_start sub_80B0518
-sub_80B0518: @ 80B0518
- push {r4,lr}
- ldr r0, _080B0540
- movs r1, 0x1E
- bl CreateTask
- ldr r1, _080B0544
- strb r0, [r1, 0xE]
- movs r4, 0
-_080B0528:
- adds r0, r4, 0
- bl sub_80B0548
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0528
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0540: .4byte sub_80B05FC
-_080B0544: .4byte 0x02019204
- thumb_func_end sub_80B0518
-
- thumb_func_start sub_80B0548
-sub_80B0548: @ 80B0548
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080B0580
- ldr r4, _080B0584
- ldrb r2, [r4, 0xE]
- lsls r1, r2, 2
- adds r1, r2
- adds r1, r0
- lsls r1, 3
- adds r3, 0x8
- adds r1, r3
- movs r5, 0
- movs r2, 0xFF
- strh r2, [r1]
- lsls r0, 2
- adds r0, 0x1
- lsls r0, 1
- ldrb r2, [r4, 0xE]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r0, r1
- adds r0, r3
- strh r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0580: .4byte gTasks
-_080B0584: .4byte 0x02019204
- thumb_func_end sub_80B0548
-
- thumb_func_start sub_80B0588
-sub_80B0588: @ 80B0588
- push {r4,lr}
- movs r4, 0
-_080B058C:
- adds r0, r4, 0
- bl sub_80B05A4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B058C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0588
-
- thumb_func_start sub_80B05A4
-sub_80B05A4: @ 80B05A4
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80B0548
- adds r0, r4, 0x5
- lsls r2, r0, 5
- ldr r3, _080B05E8
- adds r6, r2, r3
- ldr r5, _080B05EC
- adds r2, r5
- ldr r1, _080B05F0
- str r6, [r1]
- str r2, [r1, 0x4]
- ldr r2, _080B05F4
- str r2, [r1, 0x8]
- ldr r6, [r1, 0x8]
- lsls r0, 4
- adds r4, 0xC
- adds r0, r4
- lsls r0, 1
- subs r3, 0x14
- adds r3, r0, r3
- subs r5, 0x14
- adds r0, r5
- str r3, [r1]
- str r0, [r1, 0x4]
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B05E8: .4byte gPlttBufferUnfaded + 0x14
-_080B05EC: .4byte gPlttBufferFaded + 0x14
-_080B05F0: .4byte 0x040000d4
-_080B05F4: .4byte 0x80000001
- thumb_func_end sub_80B05A4
-
- thumb_func_start nullsub_19
-nullsub_19: @ 80B05F8
- bx lr
- thumb_func_end nullsub_19
-
- thumb_func_start sub_80B05FC
-sub_80B05FC: @ 80B05FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- movs r7, 0
- lsls r1, r0, 2
- adds r1, r0
- mov r9, r1
- lsls r6, r1, 3
- ldr r0, _080B0664
- mov r8, r0
- ldr r1, _080B0668
- mov r10, r1
-_080B061C:
- lsls r0, r7, 26
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r6
- mov r4, r8
- adds r2, r0, r4
- movs r5, 0
- ldrsh r0, [r2, r5]
- cmp r0, 0xFF
- beq _080B06C2
- adds r0, r3, 0x2
- lsls r0, 1
- adds r0, r6
- adds r1, r0, r4
- ldrh r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B06C2
- strh r4, [r1]
- adds r0, r3, 0x1
- lsls r1, r0, 1
- adds r1, r6
- add r1, r8
- movs r4, 0
- ldrsh r1, [r1, r4]
- adds r4, r0, 0
- cmp r1, 0
- bne _080B066C
- ldrh r0, [r2]
- adds r0, 0x1
- b _080B0670
- .align 2, 0
-_080B0664: .4byte gUnknown_03004B28
-_080B0668: .4byte 0x00004bff
-_080B066C:
- ldrh r0, [r2]
- subs r0, 0x1
-_080B0670:
- strh r0, [r2]
- lsls r1, r3, 1
- mov r5, r9
- lsls r2, r5, 3
- adds r0, r1, r2
- ldr r3, _080B06DC
- adds r3, 0x8
- adds r0, r3
- movs r5, 0
- ldrsh r0, [r0, r5]
- adds r5, r1, 0
- cmp r0, 0x10
- beq _080B068E
- cmp r0, 0
- bne _080B069C
-_080B068E:
- lsls r0, r4, 1
- adds r0, r2
- adds r0, r3
- ldrh r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0]
-_080B069C:
- adds r4, r7, 0x5
- lsls r4, 4
- adds r0, r4, 0
- adds r0, 0xA
- adds r5, r6
- add r5, r8
- ldrb r2, [r5]
- movs r1, 0x1
- mov r3, r10
- bl BlendPalette
- adds r4, 0xC
- adds r4, r7
- ldrb r2, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- mov r3, r10
- bl BlendPalette
-_080B06C2:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _080B061C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B06DC: .4byte gTasks
- thumb_func_end sub_80B05FC
-
- thumb_func_start unref_sub_80B06E0
-unref_sub_80B06E0: @ 80B06E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldr r0, _080B073C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _080B0740
- mov r8, r0
- ldr r1, _080B0744
- mov r12, r1
-_080B0704:
- lsls r4, r3, 2
- lsls r0, r3, 26
- lsrs r0, 23
- adds r0, r6
- add r0, r8
- adds r2, r7, r3
- ldrb r1, [r2]
- strh r1, [r0]
- ldrb r0, [r2]
- cmp r0, 0
- beq _080B0726
- mov r1, r12
- adds r0, r4, r1
- ldrb r1, [r0, 0x2]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x2]
-_080B0726:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080B0704
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B073C: .4byte sub_80B0748
-_080B0740: .4byte gUnknown_03004B28
-_080B0744: .4byte 0x02019338
- thumb_func_end unref_sub_80B06E0
-
- thumb_func_start sub_80B0748
-sub_80B0748: @ 80B0748
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r2, _080B07F4
- movs r1, 0x8
- adds r1, r2
- mov r10, r1
- ldr r3, [sp]
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r1, [sp]
- adds r0, r3, r1
- lsls r0, 3
- str r0, [sp, 0xC]
-_080B0774:
- ldr r0, _080B07F8
- ldr r3, [sp, 0x4]
- adds r0, r3, r0
- ldrb r4, [r0]
- lsls r0, r4, 26
- lsrs r1, r0, 24
- lsls r0, r1, 1
- str r0, [sp, 0x8]
- ldr r3, [sp]
- lsls r0, r3, 2
- adds r0, r3
- lsls r6, r0, 3
- ldr r3, [sp, 0x8]
- adds r0, r3, r6
- add r0, r10
- mov r9, r0
- ldrb r7, [r0]
- cmp r7, 0
- bne _080B079C
- b _080B0910
-_080B079C:
- adds r3, r1, 0x1
- lsls r0, r3, 1
- adds r0, r6
- add r0, r10
- ldrb r0, [r0]
- mov r8, r0
- adds r2, r1, 0x2
- lsls r0, r2, 1
- adds r0, r6
- add r0, r10
- ldrb r5, [r0]
- adds r1, 0x3
- lsls r0, r1, 1
- adds r0, r6
- add r0, r10
- ldrb r6, [r0]
- str r3, [sp, 0x10]
- str r2, [sp, 0x14]
- str r1, [sp, 0x18]
- cmp r7, 0x1
- bne _080B0818
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- beq _080B07D2
- b _080B08EA
-_080B07D2:
- movs r6, 0
- adds r0, r4, 0x5
- lsls r0, 4
- adds r0, 0x1
- movs r1, 0x3
- adds r2, r5, 0
- ldr r3, _080B07FC
- bl BlendPalette
- cmp r5, 0
- bne _080B0800
- mov r0, r8
- cmp r0, 0x4
- bne _080B0800
- mov r1, r9
- strh r6, [r1]
- b _080B08EA
- .align 2, 0
-_080B07F4: .4byte gTasks
-_080B07F8: .4byte gUnknown_02038696
-_080B07FC: .4byte 0x00007fff
-_080B0800:
- adds r0, r5, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xD
- bls _080B08EA
- movs r5, 0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- b _080B08EA
-_080B0818:
- cmp r7, 0x2
- beq _080B0820
- cmp r7, 0x4
- bne _080B0896
-_080B0820:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bne _080B08EA
- movs r6, 0
- adds r0, r4, 0x5
- lsls r0, 4
- adds r0, 0x1
- ldr r2, _080B0854
- lsls r1, r4, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x3
- adds r2, r5, 0
- bl BlendPalette
- cmp r5, 0
- bne _080B0858
- mov r2, r8
- cmp r2, 0x2
- bne _080B0858
- mov r3, r9
- strh r6, [r3]
- b _080B08EA
- .align 2, 0
-_080B0854: .4byte gUnknown_083CC5A4
-_080B0858:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xE
- bne _080B08EA
- movs r5, 0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r7, 0x4
- bne _080B08EA
- cmp r0, 0x1
- bne _080B08EA
- adds r4, 0x9
- lsls r4, 4
- adds r0, r4, 0x2
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0
- bl BlendPalette
- adds r4, 0x5
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0
- bl BlendPalette
- b _080B08EA
-_080B0896:
- cmp r7, 0x3
- bne _080B08EA
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xC
- bne _080B08EA
- movs r6, 0
- adds r0, r4, 0x5
- lsls r0, 4
- adds r4, r0, 0x1
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bne _080B08EA
- ldr r0, _080B0930
- lsls r1, r4, 1
- adds r0, r1, r0
- ldrh r2, [r0]
- ldr r0, _080B0934
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _080B0938
- str r2, [r1]
- str r0, [r1, 0x4]
- movs r0, 0x80
- lsls r0, 24
- orrs r7, r0
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x8]
- ldr r2, [sp, 0xC]
- adds r0, r1, r2
- add r0, r10
- strh r6, [r0]
-_080B08EA:
- ldr r3, [sp, 0x10]
- lsls r0, r3, 1
- ldr r1, [sp, 0xC]
- adds r0, r1
- add r0, r10
- mov r2, r8
- strh r2, [r0]
- ldr r3, [sp, 0x14]
- lsls r0, r3, 1
- adds r0, r1
- add r0, r10
- strh r5, [r0]
- ldr r1, [sp, 0x18]
- lsls r0, r1, 1
- ldr r2, [sp, 0xC]
- adds r0, r2
- add r0, r10
- strh r6, [r0]
- ldr r2, _080B093C
-_080B0910:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0x3
- bhi _080B0920
- b _080B0774
-_080B0920:
- movs r4, 0
- ldr r3, [sp, 0x1C]
- ldr r1, [sp]
- adds r0, r3, r1
- lsls r1, r0, 3
- adds r2, 0x8
- adds r0, r1, r2
- b _080B0950
- .align 2, 0
-_080B0930: .4byte gPlttBufferFaded
-_080B0934: .4byte gPlttBufferUnfaded
-_080B0938: .4byte 0x040000d4
-_080B093C: .4byte gTasks
-_080B0940:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bhi _080B0958
- lsls r0, r4, 3
- adds r0, r1
- adds r0, r2
-_080B0950:
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- beq _080B0940
-_080B0958:
- cmp r4, 0x4
- bne _080B0980
- movs r4, 0
- ldr r3, _080B0990
- movs r5, 0x3
- negs r5, r5
-_080B0964:
- lsls r1, r4, 2
- adds r1, r3
- ldrb r2, [r1, 0x2]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1, 0x2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0964
- ldr r0, [sp]
- bl DestroyTask
-_080B0980:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0990: .4byte 0x02019338
- thumb_func_end sub_80B0748
-
- thumb_func_start unref_sub_80B0994
-unref_sub_80B0994: @ 80B0994
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080B09A6
- ldr r0, _080B09AC
- ldrb r1, [r0, 0x6]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x6]
-_080B09A6:
- pop {r0}
- bx r0
- .align 2, 0
-_080B09AC: .4byte 0x02019204
- thumb_func_end unref_sub_80B0994
-
- thumb_func_start sub_80B09B0
-sub_80B09B0: @ 80B09B0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r1, _080B09D4
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B09D8
- adds r0, r2, 0
- bl sub_80B0368
- b _080B09DE
- .align 2, 0
-_080B09D4: .4byte 0x02019260
-_080B09D8:
- adds r0, r2, 0
- bl sub_80B03A8
-_080B09DE:
- pop {r0}
- bx r0
- thumb_func_end sub_80B09B0
-
- thumb_func_start sub_80B09E4
-sub_80B09E4: @ 80B09E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r9, r0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B0B2C
- mov r1, r9
- adds r7, r1, r0
- ldrb r0, [r7]
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 27
- movs r2, 0x80
- lsls r2, 22
- adds r5, r2
- lsrs r5, 24
- lsls r4, r1, 3
- ldr r0, _080B0B30
- adds r0, r4, r0
- bl LoadCompressedObjectPic
- ldr r0, _080B0B34
- adds r4, r0
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r3, r9
- lsls r4, r3, 1
- add r4, r9
- lsls r4, 3
- ldr r0, _080B0B38
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB8
- adds r2, r5, 0
- movs r3, 0x1D
- bl CreateSprite
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0xF8
- adds r2, r5, 0
- movs r3, 0x1D
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080B0B3C
- mov r10, r1
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- add r5, r10
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r3, _080B0B40
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080B0B44
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldrb r0, [r7]
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 6
- ldr r0, _080B0B48
- adds r3, r0
- mov r1, r8
- lsls r4, r1, 4
- add r4, r8
- lsls r4, 2
- add r4, r10
- ldrh r0, [r4, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r2, _080B0B4C
- mov r10, r2
- add r0, r10
- str r0, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0xC0
- lsls r2, 19
- bl sub_8040F80
- ldrb r0, [r7]
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 6
- ldr r7, _080B0B50
- adds r3, r7
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r0, 17
- add r0, r10
- str r0, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0xC0
- lsls r2, 19
- bl sub_8040F80
- ldrh r0, [r4, 0x4]
- lsls r0, 22
- lsrs r0, 17
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1
- add r0, r10
- movs r2, 0
- str r2, [sp, 0x8]
- ldr r1, _080B0B54
- add r3, sp, 0x8
- mov r12, r3
- str r3, [r1]
- str r0, [r1, 0x4]
- ldr r3, _080B0B58
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strb r2, [r0]
- strb r2, [r0]
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r0, 17
- movs r7, 0xA0
- lsls r7, 3
- adds r0, r7
- add r0, r10
- str r2, [sp, 0x8]
- mov r2, r12
- str r2, [r1]
- str r0, [r1, 0x4]
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- strh r6, [r4, 0x2E]
- mov r3, r8
- strh r3, [r5, 0x2E]
- mov r7, r9
- strh r7, [r4, 0x30]
- mov r0, r9
- strh r0, [r5, 0x30]
- mov r0, r8
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B0B2C: .4byte gUnknown_02038696
-_080B0B30: .4byte gUnknown_083CC4B4
-_080B0B34: .4byte gUnknown_083CC4D4
-_080B0B38: .4byte gSpriteTemplate_83CC53C
-_080B0B3C: .4byte gSprites
-_080B0B40: .4byte 0x000003ff
-_080B0B44: .4byte 0xfffffc00
-_080B0B48: .4byte 0x0600e026
-_080B0B4C: .4byte 0x06010000
-_080B0B50: .4byte 0x0600e036
-_080B0B54: .4byte 0x040000d4
-_080B0B58: .4byte 0x850000c0
- thumb_func_end sub_80B09E4
-
- thumb_func_start sub_80B0B5C
-sub_80B0B5C: @ 80B0B5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B0B94
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- adds r5, r1
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- adds r0, r5, 0
- bl DestroySpriteAndFreeResources
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0B94: .4byte gSprites
- thumb_func_end sub_80B0B5C
-
- thumb_func_start sub_80B0B98
-sub_80B0B98: @ 80B0B98
- ldr r1, _080B0BAC
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080B0BB0
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080B0BAC: .4byte REG_BLDCNT
-_080B0BB0: .4byte 0x00000907
- thumb_func_end sub_80B0B98
-
- thumb_func_start sub_80B0BB4
-sub_80B0BB4: @ 80B0BB4
- ldr r0, _080B0BC0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080B0BC0: .4byte REG_BLDCNT
- thumb_func_end sub_80B0BB4
-
- thumb_func_start sub_80B0BC4
-sub_80B0BC4: @ 80B0BC4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r4, r0, 0
- mov r9, r1
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- bl sub_80B0B98
- ldr r1, _080B0C38
- mov r8, r1
- lsls r6, r4, 4
- adds r6, r4
- lsls r6, 2
- adds r0, r6, r1
- movs r1, 0x30
- ldrsh r2, [r0, r1]
- lsls r2, 2
- ldr r1, _080B0C3C
- adds r2, r1
- ldrb r1, [r2, 0x2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2, 0x2]
- ldrh r5, [r0, 0x2E]
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x1
- bl StartSpriteAffineAnim
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- mov r1, r8
- adds r0, r4, r1
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0x1C
- add r8, r0
- add r6, r8
- ldr r0, _080B0C40
- str r0, [r6]
- add r4, r8
- ldr r0, _080B0C44
- str r0, [r4]
- mov r1, r9
- cmp r1, 0
- bne _080B0C48
- movs r0, 0x65
- bl PlaySE
- b _080B0C4E
- .align 2, 0
-_080B0C38: .4byte gSprites
-_080B0C3C: .4byte 0x02019338
-_080B0C40: .4byte sub_80B0C5C
-_080B0C44: .4byte SpriteCallbackDummy
-_080B0C48:
- movs r0, 0x2
- bl PlaySE
-_080B0C4E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B0BC4
-
- thumb_func_start sub_80B0C5C
-sub_80B0C5C: @ 80B0C5C
- push {lr}
- mov r12, r0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B0CA4
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080B0CA8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080B0CA4
- mov r3, r12
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _080B0CAC
- mov r1, r12
- str r0, [r1, 0x1C]
-_080B0CA4:
- pop {r0}
- bx r0
- .align 2, 0
-_080B0CA8: .4byte gSprites
-_080B0CAC: .4byte sub_80B0CB0
- thumb_func_end sub_80B0C5C
-
- thumb_func_start sub_80B0CB0
-sub_80B0CB0: @ 80B0CB0
- push {lr}
- movs r1, 0x30
- ldrsh r2, [r0, r1]
- lsls r2, 2
- ldr r1, _080B0CD8
- adds r2, r1
- ldrb r3, [r2, 0x2]
- movs r1, 0x3
- negs r1, r1
- ands r1, r3
- strb r1, [r2, 0x2]
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80B0B5C
- bl sub_80B0BB4
- pop {r0}
- bx r0
- .align 2, 0
-_080B0CD8: .4byte 0x02019338
- thumb_func_end sub_80B0CB0
-
- thumb_func_start sub_80B0CDC
-sub_80B0CDC: @ 80B0CDC
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080B0CF0
- adds r0, r1
- ldrb r2, [r0, 0x2]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_080B0CF0: .4byte 0x02019338
- thumb_func_end sub_80B0CDC
-
- thumb_func_start unref_sub_80B0CF4
-unref_sub_80B0CF4: @ 80B0CF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r0, _080B0D5C
- movs r1, 0xC0
- lsls r1, 9
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- cmp r1, 0
- bne _080B0D6C
- movs r4, 0
- ldr r6, _080B0D60
- adds r3, r6, 0x1
- mov r8, r3
- ldr r5, _080B0D64
- adds r7, r5, 0x1
-_080B0D1C:
- lsls r1, r4, 1
- adds r0, r1, r6
- ldrb r2, [r0]
- mov r3, r8
- adds r0, r1, r3
- ldrb r3, [r0]
- adds r0, r1, r5
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r1, r7
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080B0D68
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0D1C
- bl sub_80AE514
- bl sub_80AEB30
- b _080B0D70
- .align 2, 0
-_080B0D5C: .4byte 0x02000000
-_080B0D60: .4byte gUnknown_083CA308
-_080B0D64: .4byte gUnknown_083CA310
-_080B0D68: .4byte gUnknown_03004210
-_080B0D6C:
- bl sub_80B0D7C
-_080B0D70:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80B0CF4
-
- thumb_func_start sub_80B0D7C
-sub_80B0D7C: @ 80B0D7C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- movs r5, 0
- ldr r0, _080B0ED0
- movs r1, 0xC0
- lsls r1, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B0D98
- b _080B0EC2
-_080B0D98:
- movs r4, 0
- ldr r7, _080B0ED4
- adds r3, r7, 0x1
- mov r9, r3
- ldr r6, _080B0ED8
- adds r0, r6, 0x1
- mov r8, r0
-_080B0DA6:
- lsls r1, r4, 1
- adds r0, r1, r7
- ldrb r2, [r0]
- mov r3, r9
- adds r0, r1, r3
- ldrb r3, [r0]
- adds r0, r1, r6
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- add r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080B0EDC
- movs r1, 0
- bl FillWindowRect_DefaultPalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0DA6
- movs r4, 0
- ldr r6, _080B0ED8
- adds r7, r6, 0x1
-_080B0DE2:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080B0EE0
- adds r0, r1
- ldrh r2, [r0, 0x4]
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080B0E08
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- add r1, sp, 0x8
- movs r0, 0xAE
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080B0E08:
- mov r0, sp
- adds r0, r5
- adds r0, 0x8
- lsls r1, r2, 16
- asrs r1, 16
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r0, _080B0EE4
- adds r0, r4, r0
- ldrb r0, [r0]
- movs r1, 0x16
- adds r2, r0, 0
- muls r2, r1
- movs r3, 0x94
- lsls r3, 2
- adds r2, r3
- lsls r0, 1
- adds r1, r0, r6
- ldrb r3, [r1]
- adds r0, r7
- ldrb r0, [r0]
- str r0, [sp]
- ldr r0, _080B0EDC
- add r1, sp, 0x8
- bl sub_8003460
- movs r5, 0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0DE2
- movs r4, 0
- ldr r6, _080B0ED4
- adds r7, r6, 0x1
-_080B0E52:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080B0EE0
- adds r0, r1
- ldrh r2, [r0, 0x2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080B0E78
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- add r1, sp, 0x8
- movs r0, 0xAE
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080B0E78:
- mov r0, sp
- adds r0, r5
- adds r0, 0x8
- lsls r1, r2, 16
- asrs r1, 16
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r0, _080B0EE4
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 18
- adds r2, r3
- lsrs r2, 16
- lsls r1, 1
- adds r0, r1, r6
- ldrb r3, [r0]
- adds r1, r7
- ldrb r0, [r1]
- str r0, [sp]
- ldr r0, _080B0EDC
- add r1, sp, 0x8
- bl sub_8003460
- movs r5, 0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080B0E52
- bl sub_80AEB30
-_080B0EC2:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B0ED0: .4byte 0x02000000
-_080B0ED4: .4byte gUnknown_083CA308
-_080B0ED8: .4byte gUnknown_083CA310
-_080B0EDC: .4byte gUnknown_03004210
-_080B0EE0: .4byte 0x02019260
-_080B0EE4: .4byte gUnknown_02038696
- thumb_func_end sub_80B0D7C
-
- thumb_func_start unref_sub_80B0EE8
-unref_sub_80B0EE8: @ 80B0EE8
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- subs r0, r1, 0x1
- cmp r4, r0
- bge _080B0F20
- adds r6, r0, 0
-_080B0EF6:
- adds r3, r0, 0
- adds r5, r4, 0x1
- cmp r0, r4
- ble _080B0F18
- lsls r0, 2
- subs r0, 0x4
- adds r0, r7
-_080B0F04:
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- cmp r1, r2
- ble _080B0F10
- str r1, [r0, 0x4]
- str r2, [r0]
-_080B0F10:
- subs r0, 0x4
- subs r3, 0x1
- cmp r3, r4
- bgt _080B0F04
-_080B0F18:
- adds r4, r5, 0
- adds r0, r6, 0
- cmp r4, r0
- blt _080B0EF6
-_080B0F20:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80B0EE8
-
- thumb_func_start sub_80B0F28
-sub_80B0F28: @ 80B0F28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- add r4, sp, 0x4
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r5, 0
- add r4, sp, 0x4
- adds r6, r4, 0
- movs r7, 0
-_080B0F4E:
- bl Random
- adds r1, r0, 0
- mov r0, sp
- adds r0, r7
- adds r0, 0x4
- strh r1, [r0]
- movs r2, 0
- cmp r2, r5
- bge _080B0F86
- lsls r0, r1, 16
- lsrs r0, 16
- mov r1, sp
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- beq _080B0F80
-_080B0F6E:
- adds r2, 0x1
- cmp r2, r5
- bge _080B0F86
- lsls r0, r2, 1
- adds r0, r4, r0
- ldrh r1, [r6]
- ldrh r0, [r0]
- cmp r1, r0
- bne _080B0F6E
-_080B0F80:
- subs r6, 0x2
- subs r7, 0x2
- subs r5, 0x1
-_080B0F86:
- adds r6, 0x2
- adds r7, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B0F4E
- mov r2, r8
- cmp r2, 0
- bne _080B1050
- movs r5, 0
- ldr r3, _080B1008
- mov r8, r3
-_080B0F9C:
- mov r6, r8
- strb r5, [r6]
- movs r4, 0
- cmp r4, r5
- bge _080B1018
- ldr r7, _080B100C
- mov r9, r7
- lsls r0, r5, 1
- adds r1, r0, 0
- add r1, r9
- mov r12, r1
- mov r2, sp
- adds r2, 0x4
- str r2, [sp, 0xC]
- add r0, sp
- adds r0, 0x4
- str r0, [sp, 0x10]
- ldr r3, _080B1008
- adds r6, r3, 0
- mov r10, r6
-_080B0FC4:
- ldrb r0, [r3]
- lsls r2, r0, 1
- mov r7, r9
- adds r0, r2, r7
- movs r6, 0
- ldrsh r1, [r0, r6]
- mov r7, r12
- movs r6, 0
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080B0FEC
- cmp r1, r0
- bne _080B1010
- ldr r7, [sp, 0xC]
- adds r0, r7, r2
- ldrh r0, [r0]
- ldr r1, [sp, 0x10]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _080B1010
-_080B0FEC:
- adds r2, r5, 0
- cmp r5, r4
- ble _080B1004
- subs r0, r5, 0x1
- mov r6, r10
- adds r1, r0, r6
-_080B0FF8:
- ldrb r0, [r1]
- strb r0, [r1, 0x1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, r4
- bgt _080B0FF8
-_080B1004:
- strb r5, [r3]
- b _080B1018
- .align 2, 0
-_080B1008: .4byte gUnknown_02038696
-_080B100C: .4byte gUnknown_02038670
-_080B1010:
- adds r3, 0x1
- adds r4, 0x1
- cmp r4, r5
- blt _080B0FC4
-_080B1018:
- cmp r4, r5
- bne _080B1020
- mov r7, r8
- strb r5, [r7]
-_080B1020:
- movs r0, 0x1
- add r8, r0
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B0F9C
- ldr r4, _080B104C
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
- movs r5, 0
-_080B1038:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- adds r0, r4
- strb r5, [r0]
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B1038
- b _080B10FC
- .align 2, 0
-_080B104C: .4byte gUnknown_02038696
-_080B1050:
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x4
- bl memset
- movs r5, 0
- ldr r3, _080B1070
- movs r6, 0
-_080B1060:
- ldr r0, _080B1074
- adds r0, r6, r0
- ldrb r0, [r0, 0xB]
- lsls r0, 30
- lsrs r2, r0, 30
- mov r7, sp
- adds r1, r7, r2
- b _080B1082
- .align 2, 0
-_080B1070: .4byte gUnknown_02038696
-_080B1074: .4byte 0x02019260
-_080B1078:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- mov r0, sp
- adds r1, r0, r2
-_080B1082:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080B1078
- strb r5, [r1]
- strb r2, [r3]
- adds r3, 0x1
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B1060
- movs r5, 0
-_080B1098:
- movs r4, 0x3
- adds r1, r5, 0x1
- mov r10, r1
- cmp r4, r5
- ble _080B10F6
- mov r9, r4
- ldr r2, _080B110C
- mov r8, r2
- add r3, sp, 0x4
- mov r12, r3
-_080B10AC:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r6, _080B1110
- adds r1, r0, r6
- ldrb r2, [r1, 0xB]
- ldr r7, _080B1114
- adds r0, r7
- ldrb r3, [r0, 0xB]
- mov r1, r9
- ands r1, r2
- mov r0, r9
- ands r0, r3
- subs r3, r4, 0x1
- cmp r1, r0
- bne _080B10F0
- mov r0, r8
- adds r7, r3, r0
- adds r2, r4, r0
- ldrb r6, [r7]
- ldrb r1, [r2]
- cmp r6, r1
- bcs _080B10F0
- lsls r0, r3, 1
- add r0, r12
- lsls r1, r4, 1
- add r1, r12
- ldrh r0, [r0]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _080B10F0
- ldrb r0, [r2]
- strb r6, [r2]
- strb r0, [r7]
-_080B10F0:
- adds r4, r3, 0
- cmp r4, r5
- bgt _080B10AC
-_080B10F6:
- mov r5, r10
- cmp r5, 0x2
- ble _080B1098
-_080B10FC:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B110C: .4byte gUnknown_02038696
-_080B1110: .4byte 0x02019244
-_080B1114: .4byte 0x02019260
- thumb_func_end sub_80B0F28
-
- thumb_func_start sub_80B1118
-sub_80B1118: @ 80B1118
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0xA0
-_080B111E:
- ldr r0, _080B1144
- adds r0, r5, r0
- ldr r1, _080B1148
- adds r1, r4, r1
- ldrb r1, [r1]
- adds r1, 0x5
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x20
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B111E
- bl sub_80AE514
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1144: .4byte 0x02018004
-_080B1148: .4byte gUnknown_02038696
- thumb_func_end sub_80B1118
-
- thumb_func_start sub_80B114C
-sub_80B114C: @ 80B114C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r7, r6, 3
- subs r0, r7, r6
- lsls r0, 2
- ldr r4, _080B11B8
- adds r5, r0, r4
- movs r0, 0
- strh r0, [r5, 0x2]
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_80AF404
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- bne _080B1176
- b _080B13DC
-_080B1176:
- ldrh r0, [r5, 0x6]
- ldr r1, _080B11BC
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0]
- mov r12, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- strb r0, [r5, 0xA]
- ldrh r0, [r5, 0x6]
- ldrh r1, [r5, 0x8]
- cmp r0, r1
- bne _080B11C0
- cmp r0, 0
- beq _080B11C0
- ldrb r0, [r5, 0x15]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x15]
- ldrb r2, [r5, 0xB]
- lsls r1, r2, 25
- lsrs r1, 29
- adds r1, 0x1
- movs r0, 0x7
- ands r1, r0
- lsls r1, 4
- movs r0, 0x71
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xB]
- b _080B11D8
- .align 2, 0
-_080B11B8: .4byte 0x02019260
-_080B11BC: .4byte gContestMoves
-_080B11C0:
- lsls r4, r6, 3
- subs r1, r4, r6
- lsls r1, 2
- ldr r3, _080B1264
- adds r1, r3
- ldrb r2, [r1, 0xB]
- movs r0, 0x71
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- adds r7, r4, 0
- mov r8, r3
-_080B11D8:
- subs r0, r7, r6
- lsls r0, 2
- add r0, r8
- ldr r2, _080B1268
- mov r1, r12
- lsls r3, r1, 2
- adds r2, r3, r2
- ldrb r1, [r2, 0x1]
- strh r1, [r0]
- strh r1, [r0, 0x2]
- mov r0, r8
- adds r0, 0x70
- ldrb r1, [r2, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strb r6, [r0, 0x11]
- movs r2, 0
- adds r4, r3, 0
- movs r1, 0
- mov r5, r8
- adds r5, 0x7D
- mov r3, r8
-_080B1204:
- strb r1, [r3, 0xE]
- adds r0, r5, r2
- strb r1, [r0]
- adds r3, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B1204
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B1264
- adds r5, r0, r1
- ldrb r1, [r5, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B123C
- ldrh r0, [r5, 0x8]
- ldrh r1, [r5, 0x6]
- bl AreMovesContestCombo
- lsls r0, 24
- cmp r0, 0
- bne _080B123C
- ldrb r1, [r5, 0x15]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x15]
-_080B123C:
- ldr r0, _080B126C
- adds r0, r4, r0
- ldr r0, [r0]
- bl _call_via_r0
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B1264
- adds r2, r0, r1
- ldrb r1, [r2, 0x10]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0x10
- bne _080B1270
- ldrh r1, [r2, 0x2]
- subs r1, 0xA
- movs r0, 0xD
- ldrsb r0, [r2, r0]
- b _080B128A
- .align 2, 0
-_080B1264: .4byte 0x02019260
-_080B1268: .4byte gContestEffects
-_080B126C: .4byte gContestEffectFuncs
-_080B1270:
- ldrb r1, [r2, 0x11]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080B1284
- movs r1, 0xD
- ldrsb r1, [r2, r1]
- lsls r0, r1, 1
- adds r0, r1
- b _080B1288
-_080B1284:
- movs r0, 0xD
- ldrsb r0, [r2, r0]
-_080B1288:
- ldrh r1, [r2, 0x2]
-_080B128A:
- adds r0, r1
- strh r0, [r2, 0x2]
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B12E8
- adds r4, r0, r1
- movs r0, 0
- strb r0, [r4, 0x16]
- ldrb r1, [r4, 0x15]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r4, 0x15]
- adds r0, r6, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _080B1322
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x6]
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080B12EC
- ldrb r1, [r4, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B12EC
- strb r2, [r4, 0x16]
- movs r0, 0x40
- orrs r1, r0
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- movs r0, 0
- ldrsh r2, [r4, r0]
- ldrb r0, [r4, 0x16]
- muls r0, r2
- strb r0, [r4, 0x17]
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r4, 0x15]
- b _080B1322
- .align 2, 0
-_080B12E8: .4byte 0x02019260
-_080B12EC:
- ldr r2, _080B1310
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B1314
- adds r3, r0, r1
- ldrh r0, [r3, 0x6]
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _080B1318
- ldrb r0, [r3, 0x15]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x40
- orrs r0, r1
- b _080B1320
- .align 2, 0
-_080B1310: .4byte gContestMoves
-_080B1314: .4byte 0x02019260
-_080B1318:
- ldrb r1, [r3, 0x15]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
-_080B1320:
- strb r0, [r3, 0x15]
-_080B1322:
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B139C
- mov r8, r1
- adds r4, r0, r1
- ldrb r1, [r4, 0x15]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080B1348
- ldrb r0, [r4, 0xB]
- lsls r0, 25
- lsrs r0, 29
- adds r0, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- strb r1, [r4, 0x18]
-_080B1348:
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080B1362
- ldrb r0, [r4, 0x15]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x15]
- movs r0, 0
- strh r0, [r4, 0x2]
- strh r0, [r4]
-_080B1362:
- ldrh r0, [r4, 0x6]
- bl contest_get_move_excitement
- mov r2, r8
- adds r2, 0xC8
- strb r0, [r2]
- ldrb r1, [r4, 0x11]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B137A
- strb r5, [r2]
-_080B137A:
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- ble _080B13A4
- mov r0, r8
- subs r0, 0x5C
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r2, r1]
- adds r0, r1
- cmp r0, 0x4
- ble _080B13A0
- movs r0, 0x3C
- b _080B13A6
- .align 2, 0
-_080B139C: .4byte 0x02019260
-_080B13A0:
- movs r0, 0xA
- b _080B13A6
-_080B13A4:
- movs r0, 0
-_080B13A6:
- strb r0, [r2, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- b _080B13CA
-_080B13BE:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080B13C4:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080B13D2
-_080B13CA:
- cmp r2, r6
- beq _080B13C4
- cmp r0, 0
- bne _080B13BE
-_080B13D2:
- subs r0, r7, r6
- lsls r0, 2
- ldr r1, _080B13E8
- adds r0, r1
- strb r2, [r0, 0x1B]
-_080B13DC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B13E8: .4byte 0x02019260
- thumb_func_end sub_80B114C
-
- thumb_func_start sub_80B13EC
-sub_80B13EC: @ 80B13EC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- ldr r0, _080B1400
- adds r2, r0
- strb r1, [r2, 0x13]
- bx lr
- .align 2, 0
-_080B1400: .4byte 0x02019260
- thumb_func_end sub_80B13EC
-
- thumb_func_start sub_80B1404
-sub_80B1404: @ 80B1404
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- ldr r0, _080B1418
- adds r2, r0
- strb r1, [r2, 0x14]
- bx lr
- .align 2, 0
-_080B1418: .4byte 0x02019260
- thumb_func_end sub_80B1404
-
- thumb_func_start sub_80B141C
-sub_80B141C: @ 80B141C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x3B
- bls _080B1436
- movs r1, 0x35
- bl sub_80B13EC
- b _080B1466
-_080B1436:
- cmp r1, 0x27
- bls _080B1442
- movs r1, 0x34
- bl sub_80B13EC
- b _080B1466
-_080B1442:
- cmp r1, 0x1D
- bls _080B144E
- movs r1, 0x33
- bl sub_80B13EC
- b _080B1466
-_080B144E:
- cmp r1, 0x13
- bls _080B145A
- movs r1, 0x32
- bl sub_80B13EC
- b _080B1466
-_080B145A:
- cmp r2, 0x9
- bls _080B1466
- adds r0, r3, 0
- movs r1, 0x31
- bl sub_80B13EC
-_080B1466:
- pop {r0}
- bx r0
- thumb_func_end sub_80B141C
-
- thumb_func_start sub_80B146C
-sub_80B146C: @ 80B146C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080B14C8
- lsls r1, r4, 6
- ldr r2, _080B14CC
- adds r1, r2
- bl StringCopy
- ldr r0, _080B14D0
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r4, _080B14D4
- adds r1, r4
- ldrh r2, [r1, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080B14D8
- adds r1, r2
- bl StringCopy
- ldr r2, _080B14DC
- adds r0, r4, 0
- adds r0, 0x70
- ldrb r1, [r0, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 29
- cmp r1, 0
- bne _080B14E8
- ldr r0, _080B14E0
- ldr r1, _080B14E4
- bl StringCopy
- b _080B1538
- .align 2, 0
-_080B14C8: .4byte gStringVar1
-_080B14CC: .4byte gUnknown_02038572
-_080B14D0: .4byte gStringVar2
-_080B14D4: .4byte 0x02019260
-_080B14D8: .4byte gMoveNames
-_080B14DC: .4byte gContestMoves
-_080B14E0: .4byte gStringVar3
-_080B14E4: .4byte gUnknown_083CC280
-_080B14E8:
- lsrs r0, r1, 29
- cmp r0, 0x1
- bne _080B1500
- ldr r0, _080B14F8
- ldr r1, _080B14FC
- bl StringCopy
- b _080B1538
- .align 2, 0
-_080B14F8: .4byte gStringVar3
-_080B14FC: .4byte gUnknown_083CC288
-_080B1500:
- lsrs r0, r1, 29
- cmp r0, 0x2
- bne _080B1518
- ldr r0, _080B1510
- ldr r1, _080B1514
- bl StringCopy
- b _080B1538
- .align 2, 0
-_080B1510: .4byte gStringVar3
-_080B1514: .4byte gUnknown_083CC290
-_080B1518:
- lsrs r0, r1, 29
- cmp r0, 0x3
- bne _080B1530
- ldr r0, _080B1528
- ldr r1, _080B152C
- bl StringCopy
- b _080B1538
- .align 2, 0
-_080B1528: .4byte gStringVar3
-_080B152C: .4byte gUnknown_083CC299
-_080B1530:
- ldr r0, _080B1568
- ldr r1, _080B156C
- bl StringCopy
-_080B1538:
- ldr r4, _080B1570
- ldr r1, _080B1574
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80AF138
- ldr r0, _080B1578
- movs r2, 0xC2
- lsls r2, 2
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8002EB0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1568: .4byte gStringVar3
-_080B156C: .4byte gUnknown_083CC2A3
-_080B1570: .4byte gStringVar4
-_080B1574: .4byte gUnknown_083CC188
-_080B1578: .4byte gMenuWindow
- thumb_func_end sub_80B146C
-
- thumb_func_start sub_80B157C
-sub_80B157C: @ 80B157C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _080B1598
- adds r1, r0
- ldrb r0, [r1, 0xC]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1, 0xC]
- movs r0, 0
- strh r0, [r1, 0x6]
- bx lr
- .align 2, 0
-_080B1598: .4byte 0x02019260
- thumb_func_end sub_80B157C
-
- thumb_func_start sub_80B159C
-sub_80B159C: @ 80B159C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- movs r4, 0
- ldr r1, _080B1600
- mov r9, r1
- add r2, sp, 0x4
- mov r6, r9
- movs r5, 0
- adds r3, r2, 0
-_080B15B8:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r4, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B15B8
- movs r4, 0
- ldr r7, _080B1604
- adds r5, r2, 0
- movs r1, 0x1
- mov r8, r1
-_080B15D6:
- movs r2, 0
- adds r1, r7, 0
-_080B15DA:
- ldrb r0, [r1, 0x19]
- cmp r0, r4
- beq _080B1608
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B15DA
-_080B15E8:
- cmp r2, 0x4
- bne _080B1680
- movs r2, 0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080B1616
- ldrb r0, [r7, 0x19]
- cmp r0, 0xFF
- bne _080B1616
- mov r12, r2
- movs r2, 0x1
- b _080B163A
- .align 2, 0
-_080B1600: .4byte gUnknown_02038696
-_080B1604: .4byte 0x02019260
-_080B1608:
- mov r1, sp
- adds r0, r1, r2
- strb r4, [r0]
- adds r0, r5, r2
- mov r1, r8
- strb r1, [r0]
- b _080B15E8
-_080B1616:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080B1672
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B1616
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x19]
- cmp r0, 0xFF
- bne _080B1616
- lsls r0, r2, 24
- lsrs r0, 24
- mov r12, r0
- adds r2, 0x1
-_080B163A:
- cmp r2, 0x3
- bgt _080B1672
- ldr r6, _080B16C8
- lsls r0, r2, 3
- subs r0, r2
- lsls r3, r0, 2
-_080B1646:
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B166A
- adds r0, r3, r7
- ldrb r0, [r0, 0x19]
- cmp r0, 0xFF
- bne _080B166A
- mov r1, r12
- adds r0, r1, r6
- adds r1, r2, r6
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B166A
- lsls r0, r2, 24
- lsrs r0, 24
- mov r12, r0
-_080B166A:
- adds r3, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B1646
-_080B1672:
- mov r0, sp
- add r0, r12
- strb r4, [r0]
- mov r1, r12
- adds r0, r5, r1
- mov r1, r8
- strb r1, [r0]
-_080B1680:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B15D6
- movs r4, 0
- ldr r5, _080B16CC
- adds r3, r5, 0
- subs r3, 0x60
- movs r6, 0xFF
- movs r7, 0x3F
-_080B1692:
- adds r1, r4, r5
- mov r0, sp
- adds r2, r0, r4
- ldrb r0, [r2]
- strb r0, [r1]
- ldrb r0, [r3, 0x9]
- orrs r0, r6
- strb r0, [r3, 0x9]
- ldrb r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r3]
- mov r0, r9
- adds r1, r4, r0
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B1692
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B16C8: .4byte gUnknown_02038696
-_080B16CC: .4byte 0x020192d0
- thumb_func_end sub_80B159C
-
- thumb_func_start sub_80B16D0
-sub_80B16D0: @ 80B16D0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x54
- ble _080B1702
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldr r0, _080B1708
- str r0, [r2, 0x1C]
- ldr r2, _080B170C
- ldrb r1, [r2, 0x6]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x6]
-_080B1702:
- pop {r0}
- bx r0
- .align 2, 0
-_080B1708: .4byte SpriteCallbackDummy
-_080B170C: .4byte 0x02019204
- thumb_func_end sub_80B16D0
-
- thumb_func_start sub_80B1710
-sub_80B1710: @ 80B1710
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080B172C
- ldrb r5, [r0, 0x12]
- cmp r1, 0x8
- bls _080B1720
- b _080B18C0
-_080B1720:
- lsls r0, r1, 2
- ldr r1, _080B1730
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B172C: .4byte 0x02019204
-_080B1730: .4byte _080B1734
- .align 2, 0
-_080B1734:
- .4byte _080B1758
- .4byte _080B1758
- .4byte _080B1788
- .4byte _080B17BC
- .4byte _080B17F0
- .4byte _080B1824
- .4byte _080B1858
- .4byte _080B18C0
- .4byte _080B188C
-_080B1758:
- ldr r0, _080B177C
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2E]
- ldr r2, _080B1780
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B1784
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x20
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B177C: .4byte gSprites
-_080B1780: .4byte 0x000003ff
-_080B1784: .4byte 0xfffffc00
-_080B1788:
- ldr r0, _080B17B0
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0x4
- ldr r3, _080B17B4
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B17B8
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x1F
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B17B0: .4byte gSprites
-_080B17B4: .4byte 0x000003ff
-_080B17B8: .4byte 0xfffffc00
-_080B17BC:
- ldr r0, _080B17E4
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0x8
- ldr r3, _080B17E8
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B17EC
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x1F
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B17E4: .4byte gSprites
-_080B17E8: .4byte 0x000003ff
-_080B17EC: .4byte 0xfffffc00
-_080B17F0:
- ldr r0, _080B1818
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0xC
- ldr r3, _080B181C
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B1820
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x2D
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B1818: .4byte gSprites
-_080B181C: .4byte 0x000003ff
-_080B1820: .4byte 0xfffffc00
-_080B1824:
- ldr r0, _080B184C
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0xC
- ldr r3, _080B1850
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B1854
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x2D
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B184C: .4byte gSprites
-_080B1850: .4byte 0x000003ff
-_080B1854: .4byte 0xfffffc00
-_080B1858:
- ldr r0, _080B1880
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0x10
- ldr r3, _080B1884
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B1888
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x2D
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B1880: .4byte gSprites
-_080B1884: .4byte 0x000003ff
-_080B1888: .4byte 0xfffffc00
-_080B188C:
- ldr r0, _080B18B4
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0x18
- ldr r3, _080B18B8
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B18BC
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0xC3
- bl PlaySE
- b _080B18E4
- .align 2, 0
-_080B18B4: .4byte gSprites
-_080B18B8: .4byte 0x000003ff
-_080B18BC: .4byte 0xfffffc00
-_080B18C0:
- ldr r0, _080B1914
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x2E]
- adds r2, 0x14
- ldr r3, _080B1918
- adds r0, r3, 0
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _080B191C
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- movs r0, 0x2D
- bl PlaySE
-_080B18E4:
- adds r2, r4, 0
- ldr r4, _080B1914
- adds r2, r5
- lsls r2, 2
- adds r1, r2, r4
- movs r0, 0
- strh r0, [r1, 0x30]
- adds r1, 0x3E
- ldrb r3, [r1]
- subs r0, 0x5
- ands r0, r3
- strb r0, [r1]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, _080B1920
- str r0, [r2]
- ldr r2, _080B1924
- ldrb r0, [r2, 0x6]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x6]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1914: .4byte gSprites
-_080B1918: .4byte 0x000003ff
-_080B191C: .4byte 0xfffffc00
-_080B1920: .4byte sub_80B16D0
-_080B1924: .4byte 0x02019204
- thumb_func_end sub_80B1710
-
- thumb_func_start sub_80B1928
-sub_80B1928: @ 80B1928
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r6, _080B19BC
- ldr r0, _080B19C0
- mov r10, r0
- movs r1, 0x58
- adds r1, r6
- mov r9, r1
- ldr r0, _080B19C4
- mov r8, r0
- ldr r7, _080B19C8
-_080B1946:
- movs r0, 0x13
- ldrsb r0, [r6, r0]
- ldr r4, _080B19CC
- cmp r5, r0
- bge _080B1952
- adds r4, 0x40
-_080B1952:
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r0, r5, 0
- adds r0, 0x11
- adds r1, r0
- lsls r1, 5
- add r1, r8
- adds r0, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r0, r4, 0
- adds r0, 0x20
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r10
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0
- adds r2, 0x19
- adds r1, r2
- lsls r1, 5
- add r1, r8
- adds r2, r7, 0
- bl CpuSet
- movs r0, 0x13
- ldrsb r0, [r6, r0]
- cmp r0, 0x4
- ble _080B19A8
- bl sub_80B1A2C
-_080B19A8:
- adds r5, 0x1
- cmp r5, 0x4
- ble _080B1946
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B19BC: .4byte 0x02019204
-_080B19C0: .4byte gSprites
-_080B19C4: .4byte 0x06010000
-_080B19C8: .4byte REG_BG0CNT
-_080B19CC: .4byte gContestApplauseMeterGfx
- thumb_func_end sub_80B1928
-
- thumb_func_start unref_sub_80B19D0
-unref_sub_80B19D0: @ 80B19D0
- push {lr}
- sub sp, 0x18
- ldr r1, _080B19F4
- add r0, sp, 0x4
- bl StringCopy
- ldr r0, _080B19F8
- movs r2, 0xAA
- lsls r2, 2
- movs r1, 0
- str r1, [sp]
- add r1, sp, 0x4
- movs r3, 0
- bl sub_8003460
- add sp, 0x18
- pop {r0}
- bx r0
- .align 2, 0
-_080B19F4: .4byte gUnknown_083CC2EC
-_080B19F8: .4byte gUnknown_03004210
- thumb_func_end unref_sub_80B19D0
-
- thumb_func_start contest_get_move_excitement
-contest_get_move_excitement: @ 80B19FC
- lsls r0, 16
- ldr r3, _080B1A20
- ldr r1, _080B1A24
- lsrs r0, 13
- adds r0, r1
- ldrb r1, [r0, 0x1]
- lsls r1, 29
- lsrs r1, 29
- ldr r0, _080B1A28
- ldrh r2, [r0]
- lsls r0, r2, 2
- adds r0, r2
- adds r1, r0
- adds r1, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- bx lr
- .align 2, 0
-_080B1A20: .4byte gContestExcitementTable
-_080B1A24: .4byte gContestMoves
-_080B1A28: .4byte gUnknown_0203869C
- thumb_func_end contest_get_move_excitement
-
- thumb_func_start sub_80B1A2C
-sub_80B1A2C: @ 80B1A2C
- push {r4,r5,lr}
- ldr r0, _080B1A60
- movs r1, 0xA
- bl CreateTask
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B1A64
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _080B1A68
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B1A60: .4byte c3_08130B10
-_080B1A64: .4byte gTasks
-_080B1A68: .4byte 0x0000abe2
- thumb_func_end sub_80B1A2C
-
- thumb_func_start c3_08130B10
-c3_08130B10: @ 80B1A6C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B1A9C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080B1B06
- movs r0, 0
- strh r0, [r2, 0x8]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080B1AA0
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- b _080B1AA4
- .align 2, 0
-_080B1A9C: .4byte gTasks
-_080B1AA0:
- ldrh r0, [r2, 0x10]
- subs r0, 0x1
-_080B1AA4:
- strh r0, [r2, 0x10]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r6, r3, 0
- adds r0, r6
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldr r3, _080B1B0C
- movs r1, 0x1
- bl BlendPalette
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B1AD6
- cmp r0, 0x10
- bne _080B1B06
-_080B1AD6:
- ldrh r0, [r4, 0xE]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0xE]
- ldr r0, _080B1B10
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bgt _080B1B06
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 4
- adds r0, r6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1F
- bl BlendPalette
- adds r0, r5, 0
- bl DestroyTask
-_080B1B06:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1B0C: .4byte 0x00007fff
-_080B1B10: .4byte 0x02019204
- thumb_func_end c3_08130B10
-
- thumb_func_start sub_80B1B14
-sub_80B1B14: @ 80B1B14
- push {r4,lr}
- ldr r0, _080B1B58
- movs r1, 0xA
- bl CreateTask
- ldr r4, _080B1B5C
- ldr r3, _080B1B60
- adds r2, r3, 0
- adds r2, 0x58
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080B1B64
- strh r1, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r3, 0x6]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1B58: .4byte sub_80B1B68
-_080B1B5C: .4byte gSprites
-_080B1B60: .4byte 0x02019204
-_080B1B64: .4byte 0x0000ffba
- thumb_func_end sub_80B1B14
-
- thumb_func_start sub_80B1B68
-sub_80B1B68: @ 80B1B68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r4, _080B1BD0
- adds r0, r4, 0
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B1BD4
- adds r2, r0, r1
- ldr r0, _080B1BD8
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r5, 0xD0
- lsls r5, 3
- adds r0, r5, 0
- ldrh r5, [r1, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 24
- ldrh r5, [r2, 0x24]
- adds r0, r5
- strh r0, [r2, 0x24]
- ldrb r0, [r1, 0x1C]
- strh r0, [r1, 0x1C]
- movs r1, 0x24
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _080B1BB2
- movs r0, 0
- strh r0, [r2, 0x24]
-_080B1BB2:
- movs r5, 0x24
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080B1BCA
- ldrb r1, [r4, 0x6]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x6]
- adds r0, r3, 0
- bl DestroyTask
-_080B1BCA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1BD0: .4byte 0x02019204
-_080B1BD4: .4byte gSprites
-_080B1BD8: .4byte gTasks
- thumb_func_end sub_80B1B68
-
- thumb_func_start sub_80B1BDC
-sub_80B1BDC: @ 80B1BDC
- push {r4-r6,lr}
- ldr r6, _080B1C04
- ldr r4, _080B1C08
- adds r5, r4, 0
- adds r5, 0x58
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _080B1C0C
- ldrb r1, [r4, 0x6]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- b _080B1C28
- .align 2, 0
-_080B1C04: .4byte gSprites
-_080B1C08: .4byte 0x02019204
-_080B1C0C:
- ldr r0, _080B1C30
- movs r1, 0xA
- bl CreateTask
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrb r0, [r4, 0x6]
- movs r1, 0x40
- orrs r0, r1
-_080B1C28:
- strb r0, [r4, 0x6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1C30: .4byte sub_80B1C34
- thumb_func_end sub_80B1BDC
-
- thumb_func_start sub_80B1C34
-sub_80B1C34: @ 80B1C34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r5, _080B1CAC
- adds r0, r5, 0
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B1CB0
- adds r3, r0, r1
- ldr r0, _080B1CB4
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r0
- movs r1, 0xD0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r1, [r2, 0x1C]
- adds r0, r1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r3, 0x24]
- subs r1, r0
- strh r1, [r3, 0x24]
- ldrb r0, [r2, 0x1C]
- strh r0, [r2, 0x1C]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- movs r1, 0x46
- negs r1, r1
- cmp r0, r1
- bge _080B1C82
- ldr r0, _080B1CB8
- strh r0, [r3, 0x24]
-_080B1C82:
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, r1
- bne _080B1CA6
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r5, 0x6]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x6]
- adds r0, r4, 0
- bl DestroyTask
-_080B1CA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1CAC: .4byte 0x02019204
-_080B1CB0: .4byte gSprites
-_080B1CB4: .4byte gTasks
-_080B1CB8: .4byte 0x0000ffba
- thumb_func_end sub_80B1C34
-
- thumb_func_start sub_80B1CBC
-sub_80B1CBC: @ 80B1CBC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B1CF0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B1CF4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- ldr r2, _080B1CF8
- ldrb r0, [r2, 0x6]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1CF0: .4byte sub_80B1CFC
-_080B1CF4: .4byte gTasks
-_080B1CF8: .4byte 0x02019204
- thumb_func_end sub_80B1CBC
-
- thumb_func_start sub_80B1CFC
-sub_80B1CFC: @ 80B1CFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B1D20
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B1D30
- cmp r0, 0x1
- bgt _080B1D24
- cmp r0, 0
- beq _080B1D2A
- b _080B1D78
- .align 2, 0
-_080B1D20: .4byte gTasks
-_080B1D24:
- cmp r0, 0x2
- beq _080B1D50
- b _080B1D78
-_080B1D2A:
- bl sub_80B1B14
- b _080B1D44
-_080B1D30:
- ldr r0, _080B1D4C
- ldrb r1, [r0, 0x6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080B1D78
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl nullsub_18
-_080B1D44:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _080B1D78
- .align 2, 0
-_080B1D4C: .4byte 0x02019204
-_080B1D50:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B1D78
- movs r0, 0
- strh r0, [r4, 0x1E]
- bl sub_80B1928
- ldr r2, _080B1D80
- ldrb r1, [r2, 0x6]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x6]
- adds r0, r5, 0
- bl DestroyTask
-_080B1D78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1D80: .4byte 0x02019204
- thumb_func_end sub_80B1CFC
-
- thumb_func_start unref_sub_80B1D84
-unref_sub_80B1D84: @ 80B1D84
- ldr r3, _080B1DB0
- ldr r2, _080B1DB4
- adds r2, 0x58
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080B1DB0: .4byte gSprites
-_080B1DB4: .4byte 0x02019204
- thumb_func_end unref_sub_80B1D84
-
- thumb_func_start unref_sub_80B1DB8
-unref_sub_80B1DB8: @ 80B1DB8
- ldr r2, _080B1DD4
- ldr r0, _080B1DD8
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080B1DD4: .4byte gSprites
-_080B1DD8: .4byte 0x02019204
- thumb_func_end unref_sub_80B1DB8
-
- thumb_func_start sub_80B1DDC
-sub_80B1DDC: @ 80B1DDC
- push {lr}
- ldr r0, _080B1DF4
- movs r1, 0xF
- bl CreateTask
- ldr r2, _080B1DF8
- ldrb r0, [r2, 0x6]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x6]
- pop {r0}
- bx r0
- .align 2, 0
-_080B1DF4: .4byte sub_80B1DFC
-_080B1DF8: .4byte 0x02019204
- thumb_func_end sub_80B1DDC
-
- thumb_func_start sub_80B1DFC
-sub_80B1DFC: @ 80B1DFC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080B1E3C
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x6
- ble _080B1E8E
- movs r0, 0
- strh r0, [r3, 0x1C]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080B1E50
- ldr r1, _080B1E40
- ldr r2, _080B1E44
- ldr r0, _080B1E48
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080B1E4C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080B1E66
- .align 2, 0
-_080B1E3C: .4byte gTasks
-_080B1E40: .4byte 0x02016800
-_080B1E44: .4byte 0x06002000
-_080B1E48: .4byte 0x040000d4
-_080B1E4C: .4byte 0x84000400
-_080B1E50:
- ldr r1, _080B1E94
- ldr r2, _080B1E98
- ldr r0, _080B1E9C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080B1EA0
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
-_080B1E66:
- adds r0, r4, 0
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r0, 0x1E]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x1E]
- movs r1, 0x20
- ldrsh r0, [r0, r1]
- cmp r0, 0x9
- bne _080B1E8E
- ldr r2, _080B1EA4
- ldrb r1, [r2, 0x6]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x6]
- adds r0, r5, 0
- bl DestroyTask
-_080B1E8E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1E94: .4byte 0x02015800
-_080B1E98: .4byte 0x06002000
-_080B1E9C: .4byte 0x040000d4
-_080B1EA0: .4byte 0x84000400
-_080B1EA4: .4byte 0x02019204
- thumb_func_end sub_80B1DFC
-
- thumb_func_start sub_80B1EA8
-sub_80B1EA8: @ 80B1EA8
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080B1EE4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- cmp r4, 0
- ble _080B1F08
- ldr r7, _080B1EE8
- lsls r0, r5, 24
- adds r4, r0, 0
- cmp r4, 0
- ble _080B1EF0
- movs r5, 0
- ldr r2, _080B1EEC
- movs r1, 0x13
- ldrsb r1, [r2, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080B1F1E
- .align 2, 0
-_080B1EE4: .4byte sub_80B1F4C
-_080B1EE8: .4byte 0x0000237e
-_080B1EEC: .4byte 0x02019204
-_080B1EF0:
- ldr r2, _080B1F04
- movs r1, 0x13
- ldrsb r1, [r2, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- b _080B1F1E
- .align 2, 0
-_080B1F04: .4byte 0x02019204
-_080B1F08:
- movs r7, 0
- lsls r0, r5, 24
- adds r4, r0, 0
- cmp r4, 0
- ble _080B1F18
- movs r5, 0
- movs r3, 0xC
- b _080B1F1C
-_080B1F18:
- movs r5, 0xC
- movs r3, 0
-_080B1F1C:
- ldr r2, _080B1F44
-_080B1F1E:
- ldr r1, _080B1F48
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- strh r5, [r0, 0xA]
- asrs r1, r4, 24
- strh r1, [r0, 0xC]
- strh r3, [r0, 0xE]
- ldrb r1, [r2, 0x7]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1F44: .4byte 0x02019204
-_080B1F48: .4byte gTasks
- thumb_func_end sub_80B1EA8
-
- thumb_func_start sub_80B1F4C
-sub_80B1F4C: @ 80B1F4C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080B1F7C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- cmp r0, 0
- blt _080B1FC4
- movs r0, 0
- strh r0, [r3, 0x1C]
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _080B1F80
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- b _080B1F84
- .align 2, 0
-_080B1F7C: .4byte gTasks
-_080B1F80:
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
-_080B1F84:
- strh r0, [r3, 0xA]
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r2
- ldrb r2, [r4, 0xA]
- ldrh r3, [r4, 0x8]
- movs r0, 0x11
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldrh r3, [r4, 0x8]
- movs r0, 0x1A
- movs r1, 0x1
- bl BlendPalette
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B1FC4
- adds r0, r5, 0
- bl DestroyTask
- ldr r2, _080B1FCC
- ldrb r1, [r2, 0x7]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x7]
-_080B1FC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B1FCC: .4byte 0x02019204
- thumb_func_end sub_80B1F4C
-
- thumb_func_start sub_80B1FD0
-sub_80B1FD0: @ 80B1FD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, _080B204C
- ldr r6, _080B2050
- adds r4, r0, 0
- adds r4, 0xD8
- adds r7, r0, 0
-_080B1FE8:
- ldrb r1, [r7, 0x10]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080B2064
- mov r0, r8
- cmp r0, 0
- beq _080B2064
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80B208C
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _080B2054
- adds r1, r2
- ldr r2, _080B2058
- bl CpuSet
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r2, _080B205C
- ldr r0, _080B2060
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x22]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x5
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- b _080B2076
- .align 2, 0
-_080B204C: .4byte 0x02019260
-_080B2050: .4byte gSprites
-_080B2054: .4byte 0x060100a0
-_080B2058: .4byte REG_BG0HOFS
-_080B205C: .4byte gUnknown_083CA33C
-_080B2060: .4byte gUnknown_02038696
-_080B2064:
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_080B2076:
- strb r1, [r0]
- adds r4, 0x4
- adds r7, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B1FE8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B1FD0
-
- thumb_func_start sub_80B208C
-sub_80B208C: @ 80B208C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _080B20B0
- adds r2, r1, r0
- ldrb r1, [r2, 0x10]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- bne _080B20B8
- ldrb r0, [r2, 0x19]
- lsls r0, 6
- ldr r1, _080B20B4
- adds r0, r1
- b _080B20BA
- .align 2, 0
-_080B20B0: .4byte 0x02019260
-_080B20B4: .4byte gContestNextTurnNumbersGfx
-_080B20B8:
- ldr r0, _080B20C0
-_080B20BA:
- pop {r1}
- bx r1
- .align 2, 0
-_080B20C0: .4byte gContestNextTurnRandomGfx
- thumb_func_end sub_80B208C
-
- thumb_func_start unref_sub_80B20C4
-unref_sub_80B20C4: @ 80B20C4
- push {r4-r7,lr}
- movs r6, 0
- ldr r7, _080B2134
-_080B20CA:
- adds r0, r6, r7
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B2126
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080B2126
- ldr r0, _080B2138
- adds r0, r6, r0
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_80AEFE8
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 6
- ldr r2, _080B213C
- adds r1, r4, r2
- strh r0, [r1]
- ldr r1, _080B2140
- adds r2, r4, r1
- adds r1, r0, 0x1
- strh r1, [r2]
- ldr r1, _080B2144
- adds r2, r4, r1
- adds r1, r0, 0
- adds r1, 0x10
- strh r1, [r2]
- ldr r2, _080B2148
- adds r4, r2
- adds r0, 0x11
- strh r0, [r4]
- movs r0, 0x63
- bl PlaySE
-_080B2126:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B20CA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2134: .4byte 0x020192dd
-_080B2138: .4byte gUnknown_02038696
-_080B213C: .4byte 0x0600c028
-_080B2140: .4byte 0x0600c02a
-_080B2144: .4byte 0x0600c068
-_080B2148: .4byte 0x0600c06a
- thumb_func_end unref_sub_80B20C4
-
- thumb_func_start sub_80B214C
-sub_80B214C: @ 80B214C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _080B2178
- adds r2, r1, r0
- ldrb r1, [r2, 0x15]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080B2172
- ldrb r1, [r2, 0xC]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080B217C
-_080B2172:
- movs r0, 0
- b _080B217E
- .align 2, 0
-_080B2178: .4byte 0x02019260
-_080B217C:
- movs r0, 0x1
-_080B217E:
- pop {r1}
- bx r1
- thumb_func_end sub_80B214C
-
- thumb_func_start sub_80B2184
-sub_80B2184: @ 80B2184
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _080B2250
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080B2254
- movs r2, 0xF0
- strh r2, [r0]
- ldr r0, _080B2258
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080B225C
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080B2260
- movs r0, 0
- str r0, [sp]
- ldr r0, _080B2264
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080B2268
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080B226C
- bl LZDecompressVram
- ldrb r1, [r4]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r4]
- movs r4, 0
- ldr r6, _080B2270
- adds r7, r2, 0
- movs r5, 0x4
- ldr r3, _080B2274
-_080B21EE:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B21EE
- ldr r3, _080B2278
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r3]
- ldr r2, _080B227C
- ldrb r0, [r2]
- ands r1, r0
- orrs r1, r4
- strb r1, [r2]
- adds r2, 0x2
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2250: .4byte REG_BG1CNT
-_080B2254: .4byte gUnknown_030042C0
-_080B2258: .4byte gUnknown_030041B4
-_080B225C: .4byte REG_BG1HOFS
-_080B2260: .4byte 0x0600f000
-_080B2264: .4byte 0x040000d4
-_080B2268: .4byte 0x85000400
-_080B226C: .4byte gUnknown_08D17C3C
-_080B2270: .4byte gSprites
-_080B2274: .4byte 0x02019338
-_080B2278: .4byte REG_BG2CNT
-_080B227C: .4byte REG_BG0CNT
- thumb_func_end sub_80B2184
-
- thumb_func_start sub_80B2280
-sub_80B2280: @ 80B2280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r2, _080B2358
- movs r3, 0x80
- lsls r3, 6
- ldr r0, _080B235C
- mov r12, r0
- ldr r0, _080B2360
- mov r8, r0
- movs r5, 0
- ldr r1, _080B2364
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080B2368
- movs r7, 0x85
- lsls r7, 24
-_080B22A4:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080B22A4
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _080B236C
- movs r2, 0
- str r2, [sp]
- ldr r0, _080B2364
- mov r3, sp
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080B2368
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- strh r2, [r0]
- mov r3, r8
- strh r2, [r3]
- ldr r2, _080B2370
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- movs r4, 0
- ldr r5, _080B2374
- adds r6, r3, 0
- ldr r3, _080B2378
-_080B231E:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x5]
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B231E
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2358: .4byte 0x06008000
-_080B235C: .4byte gUnknown_030042C0
-_080B2360: .4byte gUnknown_030041B4
-_080B2364: .4byte 0x040000d4
-_080B2368: .4byte 0x85000400
-_080B236C: .4byte 0x0600f000
-_080B2370: .4byte REG_BG1CNT
-_080B2374: .4byte gSprites
-_080B2378: .4byte 0x02019338
- thumb_func_end sub_80B2280
-
- thumb_func_start sub_80B237C
-sub_80B237C: @ 80B237C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080B23AC
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080B23B0
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0x62
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r1, _080B23B4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B23B8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B23AC: .4byte gUnknown_030042C0
-_080B23B0: .4byte gUnknown_030041B4
-_080B23B4: .4byte gTasks
-_080B23B8: .4byte sub_80B23BC
- thumb_func_end sub_80B237C
-
- thumb_func_start sub_80B23BC
-sub_80B23BC: @ 80B23BC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080B23F4
- ldrh r0, [r1]
- subs r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080B23D4
- movs r0, 0
- strh r0, [r1]
-_080B23D4:
- ldrh r2, [r1]
- cmp r2, 0
- bne _080B23EE
- ldr r0, _080B23F8
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldr r0, _080B23FC
- str r0, [r1]
-_080B23EE:
- pop {r0}
- bx r0
- .align 2, 0
-_080B23F4: .4byte gUnknown_030041B4
-_080B23F8: .4byte gTasks
-_080B23FC: .4byte sub_80B2400
- thumb_func_end sub_80B23BC
-
- thumb_func_start sub_80B2400
-sub_80B2400: @ 80B2400
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B2424
- lsls r3, r4, 2
- adds r0, r3, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x1
- beq _080B247C
- cmp r1, 0x1
- bgt _080B2428
- cmp r1, 0
- beq _080B2432
- b _080B24FC
- .align 2, 0
-_080B2424: .4byte gTasks
-_080B2428:
- cmp r1, 0x2
- beq _080B24D6
- cmp r1, 0x3
- beq _080B24EC
- b _080B24FC
-_080B2432:
- movs r2, 0
- adds r6, r3, 0
- ldr r5, _080B2470
- ldr r3, _080B2474
-_080B243A:
- adds r0, r2, r5
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B243A
- bl sub_80AFA5C
- bl sub_80B0588
- bl sub_80AEF50
- bl sub_80B1118
- movs r0, 0x1
- bl sub_80B1FD0
- bl sub_80AFFA0
- ldr r0, _080B2478
- adds r1, r6, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x8]
- b _080B24FC
- .align 2, 0
-_080B2470: .4byte 0x02019218
-_080B2474: .4byte gUnknown_02038696
-_080B2478: .4byte gTasks
-_080B247C:
- ldr r0, _080B24C0
- ldrb r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080B24D0
- ldr r2, _080B24C4
- ldrb r0, [r2, 0x7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x7]
- bl sub_80AE074
- lsls r0, 24
- cmp r0, 0
- beq _080B249E
- bl sub_80AF438
-_080B249E:
- ldr r4, _080B24C8
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B24CC
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl sub_80AF860
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080B24FC
- .align 2, 0
-_080B24C0: .4byte gUnknown_0203869A
-_080B24C4: .4byte 0x02019204
-_080B24C8: .4byte sub_80C8C80
-_080B24CC: .4byte sub_80AD8DC
-_080B24D0:
- bl sub_80AF438
- b _080B24E2
-_080B24D6:
- ldr r0, _080B24E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080B24FC
-_080B24E2:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080B24FC
- .align 2, 0
-_080B24E8: .4byte 0x02019204
-_080B24EC:
- bl sub_80AF120
- bl sub_80AEB30
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080B2504
- str r0, [r5]
-_080B24FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2504: .4byte sub_80B253C
- thumb_func_end sub_80B2400
-
- thumb_func_start sub_80B2508
-sub_80B2508: @ 80B2508
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080B2530
- ldrh r0, [r1]
- adds r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _080B252C
- ldr r0, _080B2534
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080B2538
- str r0, [r1]
-_080B252C:
- pop {r0}
- bx r0
- .align 2, 0
-_080B2530: .4byte gUnknown_030041B4
-_080B2534: .4byte gTasks
-_080B2538: .4byte sub_80ADCDC
- thumb_func_end sub_80B2508
-
- thumb_func_start sub_80B253C
-sub_80B253C: @ 80B253C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B255C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x9
- bgt _080B2560
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B259C
- .align 2, 0
-_080B255C: .4byte gTasks
-_080B2560:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _080B257E
- ldrh r2, [r1, 0x8]
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x10
- bne _080B257A
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080B259C
-_080B257A:
- adds r0, r2, 0x1
- b _080B259A
-_080B257E:
- ldrh r0, [r1, 0x8]
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080B2598
- strh r2, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldr r0, _080B2594
- str r0, [r1]
- b _080B259C
- .align 2, 0
-_080B2594: .4byte sub_80B25A4
-_080B2598:
- subs r0, 0x1
-_080B259A:
- strh r0, [r1, 0x8]
-_080B259C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B253C
-
- thumb_func_start sub_80B25A4
-sub_80B25A4: @ 80B25A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B25C4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080B25C8
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- b _080B25D8
- .align 2, 0
-_080B25C4: .4byte gTasks
-_080B25C8:
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r0, 0x61
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _080B25E0
- str r0, [r4]
-_080B25D8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B25E0: .4byte sub_80B2508
- thumb_func_end sub_80B25A4
-
- thumb_func_start sub_80B25E4
-sub_80B25E4: @ 80B25E4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r6, 0
- ldr r5, _080B26B4
-_080B25F6:
- bl AllocOamMatrix
- lsls r1, r6, 2
- ldr r2, _080B26B8
- mov r8, r2
- adds r4, r1, r2
- ldrb r1, [r4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r3, 0x3]
- movs r7, 0x3F
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- negs r3, r3
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strb r2, [r0, 0x1]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r7, r9
- cmp r7, 0x2
- bne _080B267A
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl AnimateSprite
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x5
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- strb r1, [r0]
-_080B267A:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B25F6
- ldr r0, _080B26BC
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B26C0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r7, r9
- strh r7, [r1, 0x8]
- ldr r2, _080B26C4
- add r2, r8
- ldrb r0, [r2, 0x7]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x7]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B26B4: .4byte gSprites
-_080B26B8: .4byte 0x02019338
-_080B26BC: .4byte sub_80B26C8
-_080B26C0: .4byte gTasks
-_080B26C4: .4byte 0xfffffecc
- thumb_func_end sub_80B25E4
-
- thumb_func_start sub_80B26C8
-sub_80B26C8: @ 80B26C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080B2750
- ldr r4, _080B2754
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080B274A
- ldr r0, _080B2758
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- cmp r0, 0x1
- bne _080B2718
- adds r5, r2, 0
- movs r3, 0x4
- adds r2, r4, 0
- movs r4, 0x3
-_080B26FE:
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r3
- strb r0, [r1]
- adds r2, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _080B26FE
-_080B2718:
- movs r4, 0
-_080B271A:
- lsls r0, r4, 2
- ldr r5, _080B2754
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B2750
- adds r0, r1
- bl FreeSpriteOamMatrix
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B271A
- ldr r0, _080B275C
- adds r2, r5, r0
- ldrb r1, [r2, 0x7]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x7]
- adds r0, r6, 0
- bl DestroyTask
-_080B274A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2750: .4byte gSprites
-_080B2754: .4byte 0x02019338
-_080B2758: .4byte gTasks
-_080B275C: .4byte 0xfffffecc
- thumb_func_end sub_80B26C8
-
- thumb_func_start sub_80B2760
-sub_80B2760: @ 80B2760
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _080B2770
- movs r1, 0x1
-_080B2770:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B2760
-
- thumb_func_start sub_80B2778
-sub_80B2778: @ 80B2778
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080B278C
- cmp r1, r0
- bls _080B2786
- movs r1, 0
-_080B2786:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B278C: .4byte 0x0000019b
- thumb_func_end sub_80B2778
-
- thumb_func_start sub_80B2790
-sub_80B2790: @ 80B2790
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- ldr r4, _080B27F0
- adds r0, r4
- ldrh r0, [r0, 0x6]
- bl sub_80B2760
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080B27F4
- lsls r0, r6, 6
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80B2778
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, 0xE8
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x14
- bl memset
- bl sub_8075624
- ldr r1, _080B27F8
- movs r2, 0
- adds r0, r1, 0x3
-_080B27D0:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080B27D0
- cmp r5, 0x90
- beq _080B2848
- cmp r5, 0x90
- bgt _080B2806
- cmp r5, 0x4C
- beq _080B2898
- cmp r5, 0x4C
- bgt _080B27FC
- cmp r5, 0xD
- beq _080B2898
- b _080B28BE
- .align 2, 0
-_080B27F0: .4byte 0x02019260
-_080B27F4: .4byte gUnknown_02038570
-_080B27F8: .4byte gUnknown_02024E84
-_080B27FC:
- cmp r5, 0x82
- beq _080B2898
- cmp r5, 0x8F
- beq _080B2898
- b _080B28BE
-_080B2806:
- cmp r5, 0xD8
- beq _080B2880
- cmp r5, 0xD8
- bgt _080B2814
- cmp r5, 0xAE
- beq _080B2822
- b _080B28BE
-_080B2814:
- cmp r5, 0xDA
- beq _080B288C
- movs r0, 0x88
- lsls r0, 1
- cmp r5, r0
- beq _080B2848
- b _080B28BE
-_080B2822:
- ldr r0, _080B2840
- lsls r1, r7, 3
- subs r1, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x7
- beq _080B2838
- ldrb r0, [r1, 0x7]
- cmp r0, 0x7
- bne _080B28B8
-_080B2838:
- ldr r1, _080B2844
- movs r0, 0
- b _080B28BC
- .align 2, 0
-_080B2840: .4byte gBaseStats
-_080B2844: .4byte gUnknown_0202F7C4
-_080B2848:
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- ldr r4, _080B2878
- adds r0, r4
- ldrb r5, [r0, 0x1B]
- ldr r6, _080B287C
- lsls r5, 6
- adds r0, r5, r6
- ldrh r0, [r0]
- bl sub_80B2778
- adds r4, 0xE8
- strh r0, [r4, 0x2]
- adds r6, 0x38
- adds r5, r6
- ldr r0, [r5]
- str r0, [r4, 0x10]
- ldrb r0, [r4, 0x4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x4]
- b _080B28BE
- .align 2, 0
-_080B2878: .4byte 0x02019260
-_080B287C: .4byte gUnknown_02038570
-_080B2880:
- ldr r1, _080B2888
- movs r0, 0xFF
- b _080B28BC
- .align 2, 0
-_080B2888: .4byte gUnknown_0202F7BE
-_080B288C:
- ldr r1, _080B2894
- movs r0, 0
- b _080B28BC
- .align 2, 0
-_080B2894: .4byte gUnknown_0202F7BE
-_080B2898:
- ldr r0, _080B28B0
- adds r2, r0, 0
- adds r2, 0x5A
- ldrb r1, [r2]
- cmp r1, 0
- bne _080B28B8
- movs r0, 0x2
- strb r0, [r2]
- ldr r0, _080B28B4
- strb r1, [r0]
- b _080B28BE
- .align 2, 0
-_080B28B0: .4byte 0x02019204
-_080B28B4: .4byte gUnknown_0202F7C4
-_080B28B8:
- ldr r1, _080B28C8
- movs r0, 0x1
-_080B28BC:
- strb r0, [r1]
-_080B28BE:
- bl sub_80B2968
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B28C8: .4byte gUnknown_0202F7C4
- thumb_func_end sub_80B2790
-
- thumb_func_start unref_sub_80B28CC
-unref_sub_80B28CC: @ 80B28CC
- push {r4,lr}
- ldr r4, _080B28EC
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x14
- bl memset
- subs r4, 0xEA
- ldrb r0, [r4]
- cmp r0, 0
- beq _080B28E6
- subs r0, 0x1
- strb r0, [r4]
-_080B28E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B28EC: .4byte 0x02019348
- thumb_func_end unref_sub_80B28CC
-
- thumb_func_start sub_80B28F0
-sub_80B28F0: @ 80B28F0
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080B2924
- strb r4, [r6, 0x5]
- ldr r5, _080B2928
- lsls r4, 6
- adds r0, r4, r5
- ldrh r0, [r0]
- bl sub_80B2778
- strh r0, [r6]
- adds r0, r5, 0
- adds r0, 0x38
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [r6, 0x8]
- adds r5, 0x3C
- adds r4, r5
- ldr r0, [r4]
- str r0, [r6, 0xC]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2924: .4byte 0x02019348
-_080B2928: .4byte gUnknown_02038570
- thumb_func_end sub_80B28F0
-
- thumb_func_start sub_80B292C
-sub_80B292C: @ 80B292C
- push {lr}
- ldr r0, _080B2958
- bl object_new_hidden_with_callback
- ldr r1, _080B295C
- strb r0, [r1, 0x3]
- ldr r0, _080B2960
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B2964
- adds r0, r1
- bl InitSpriteAffineAnim
- bl sub_80B2968
- pop {r0}
- bx r0
- .align 2, 0
-_080B2958: .4byte SpriteCallbackDummy
-_080B295C: .4byte gUnknown_02024BE0
-_080B2960: .4byte gUnknown_02024C08
-_080B2964: .4byte gSprites
- thumb_func_end sub_80B292C
-
- thumb_func_start sub_80B2968
-sub_80B2968: @ 80B2968
- push {r4,lr}
- ldr r0, _080B29AC
- ldrb r0, [r0, 0x3]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080B29B0
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0x3
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- movs r0, 0x3
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B29AC: .4byte gUnknown_02024BE0
-_080B29B0: .4byte gSprites
- thumb_func_end sub_80B2968
-
- thumb_func_start sub_80B29B4
-sub_80B29B4: @ 80B29B4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080B29D4
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- cmp r0, 0x20
- bhi _080B2A6C
- lsls r0, 2
- ldr r1, _080B29D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B29D4: .4byte gBattleMoves
-_080B29D8: .4byte _080B29DC
- .align 2, 0
-_080B29DC:
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A60
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A60
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
- .4byte _080B2A6C
-_080B2A60:
- ldr r1, _080B2A68
- movs r0, 0x2
- b _080B2A70
- .align 2, 0
-_080B2A68: .4byte gUnknown_02024C08
-_080B2A6C:
- ldr r1, _080B2A78
- movs r0, 0x3
-_080B2A70:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080B2A78: .4byte gUnknown_02024C08
- thumb_func_end sub_80B29B4
-
- thumb_func_start sub_80B2A7C
-sub_80B2A7C: @ 80B2A7C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r1, _080B2AC8
- ldrb r0, [r1]
- cmp r0, 0
- beq _080B2AB6
-_080B2AA8:
- adds r6, 0x1
- cmp r6, 0x2
- bgt _080B2AB6
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B2AA8
-_080B2AB6:
- mov r0, r9
- cmp r0, 0xFF
- bne _080B2AD0
- ldr r0, _080B2ACC
- ldrb r0, [r0]
- cmp r6, r0
- beq _080B2AD0
- movs r0, 0
- b _080B2C38
- .align 2, 0
-_080B2AC8: .4byte gUnknown_02038690
-_080B2ACC: .4byte gUnknown_02038695
-_080B2AD0:
- ldr r0, _080B2AE4
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080B2B16
- lsls r0, 2
- ldr r1, _080B2AE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B2AE4: .4byte gUnknown_0203869C
-_080B2AE8: .4byte _080B2AEC
- .align 2, 0
-_080B2AEC:
- .4byte _080B2B16
- .4byte _080B2B00
- .4byte _080B2B04
- .4byte _080B2B08
- .4byte _080B2B0E
-_080B2B00:
- adds r0, r7, 0x3
- b _080B2B12
-_080B2B04:
- adds r0, r7, 0x6
- b _080B2B12
-_080B2B08:
- adds r0, r7, 0
- adds r0, 0x9
- b _080B2B12
-_080B2B0E:
- adds r0, r7, 0
- adds r0, 0xC
-_080B2B12:
- lsls r0, 24
- lsrs r7, r0, 24
-_080B2B16:
- mov r1, r9
- cmp r1, 0xFE
- beq _080B2BC4
- mov r0, r9
- movs r1, 0x1
- bl sub_80B2C4C
- adds r4, r0, 0
- lsls r4, 24
- ldr r2, _080B2B98
- lsrs r4, 19
- ldr r0, _080B2B9C
- adds r1, r2, r0
- adds r1, r4, r1
- ldr r5, _080B2BA0
- lsls r6, 6
- adds r0, r5, 0
- adds r0, 0x38
- adds r0, r6, r0
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r4, r2
- mov r8, r1
- adds r0, r6, r5
- ldrh r1, [r0]
- ldr r0, _080B2BA4
- add r0, r8
- strh r1, [r0]
- movs r0, 0xB8
- lsls r0, 6
- adds r1, r2, r0
- adds r1, r4, r1
- adds r0, r5, 0
- adds r0, 0x3C
- adds r0, r6, r0
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _080B2BA8
- adds r0, r2, r1
- adds r0, r4, r0
- adds r1, r5, 0x2
- adds r1, r6, r1
- str r2, [sp]
- bl StringCopy
- ldr r2, [sp]
- ldr r0, _080B2BAC
- adds r2, r0
- adds r4, r2
- adds r5, 0xD
- adds r6, r5
- adds r0, r4, 0
- adds r1, r6, 0
- bl StringCopy
- mov r1, r9
- cmp r1, 0xFF
- beq _080B2BB8
- ldr r0, _080B2BB0
- ldrh r1, [r0]
- ldr r0, _080B2BB4
- add r0, r8
- strb r1, [r0]
- b _080B2C36
- .align 2, 0
-_080B2B98: .4byte gSaveBlock1
-_080B2B9C: .4byte 0x00002dfc
-_080B2BA0: .4byte gUnknown_02038570
-_080B2BA4: .4byte 0x00002e04
-_080B2BA8: .4byte 0x00002e07
-_080B2BAC: .4byte 0x00002e12
-_080B2BB0: .4byte gUnknown_0203869C
-_080B2BB4: .4byte 0x00002e06
-_080B2BB8:
- ldr r0, _080B2BC0
- add r0, r8
- strb r7, [r0]
- b _080B2C36
- .align 2, 0
-_080B2BC0: .4byte 0x00002e06
-_080B2BC4:
- ldr r5, _080B2C14
- ldr r2, _080B2C18
- lsls r4, r6, 6
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [r5]
- adds r0, r2, 0
- adds r0, 0x3C
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [r5, 0x4]
- adds r0, r4, r2
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- adds r0, r5, 0
- adds r0, 0xB
- adds r1, r2, 0x2
- adds r1, r4, r1
- str r2, [sp]
- bl StringCopy
- ldr r0, _080B2C1C
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- ldr r2, [sp]
- cmp r0, 0
- beq _080B2C24
- adds r0, r5, 0
- adds r0, 0x16
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _080B2C20
- adds r1, r2
- bl StringCopy
- b _080B2C32
- .align 2, 0
-_080B2C14: .4byte 0x02015de0
-_080B2C18: .4byte gUnknown_02038570
-_080B2C1C: .4byte gUnknown_0203869A
-_080B2C20: .4byte gLinkPlayers + 0x8
-_080B2C24:
- adds r0, r5, 0
- adds r0, 0x16
- adds r1, r2, 0
- adds r1, 0xD
- adds r1, r4, r1
- bl StringCopy
-_080B2C32:
- ldr r0, _080B2C48
- strb r7, [r0, 0xA]
-_080B2C36:
- movs r0, 0x1
-_080B2C38:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B2C48: .4byte 0x02015de0
- thumb_func_end sub_80B2A7C
-
- thumb_func_start sub_80B2C4C
-sub_80B2C4C: @ 80B2C4C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0x2
- beq _080B2C6E
- cmp r0, 0x2
- ble _080B2C66
- cmp r0, 0x3
- beq _080B2CA0
- b _080B2CD4
-_080B2C66:
- cmp r2, 0
- blt _080B2CD4
- adds r0, r2, 0
- b _080B2D16
-_080B2C6E:
- cmp r1, 0
- beq _080B2C98
- movs r2, 0x4
- ldr r0, _080B2C9C
- adds r4, r0, 0
- adds r4, 0x60
- adds r3, r0, 0
- adds r3, 0x80
-_080B2C7E:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- subs r4, 0x20
- subs r3, 0x20
- subs r2, 0x1
- cmp r2, 0x2
- bgt _080B2C7E
-_080B2C98:
- movs r0, 0x2
- b _080B2D16
- .align 2, 0
-_080B2C9C: .4byte gSaveBlock1 + 0x2DFC
-_080B2CA0:
- cmp r1, 0
- beq _080B2CCA
- movs r2, 0x7
- ldr r0, _080B2CD0
- adds r4, r0, 0
- adds r4, 0xC0
- adds r3, r0, 0
- adds r3, 0xE0
-_080B2CB0:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5,r7}
- stm r1!, {r5,r7}
- subs r4, 0x20
- subs r3, 0x20
- subs r2, 0x1
- cmp r2, 0x5
- bgt _080B2CB0
-_080B2CCA:
- movs r0, 0x5
- b _080B2D16
- .align 2, 0
-_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
-_080B2CD4:
- ldr r0, _080B2CE8
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080B2D14
- lsls r0, 2
- ldr r1, _080B2CEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B2CE8: .4byte gUnknown_0203869C
-_080B2CEC: .4byte _080B2CF0
- .align 2, 0
-_080B2CF0:
- .4byte _080B2D04
- .4byte _080B2D08
- .4byte _080B2D0C
- .4byte _080B2D10
- .4byte _080B2D14
-_080B2D04:
- movs r0, 0x8
- b _080B2D16
-_080B2D08:
- movs r0, 0x9
- b _080B2D16
-_080B2D0C:
- movs r0, 0xA
- b _080B2D16
-_080B2D10:
- movs r0, 0xB
- b _080B2D16
-_080B2D14:
- movs r0, 0xC
-_080B2D16:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B2C4C
-
- thumb_func_start sub_80B2D1C
-sub_80B2D1C: @ 80B2D1C
- push {r4-r7,lr}
- ldr r0, _080B2D48
- ldr r4, _080B2D4C
- ldr r1, _080B2D50
- adds r3, r0, r1
- movs r2, 0x7
-_080B2D28:
- adds r1, r3, 0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- adds r4, 0x20
- adds r3, 0x20
- subs r2, 0x1
- cmp r2, 0
- bge _080B2D28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2D48: .4byte gSaveBlock1
-_080B2D4C: .4byte gUnknown_083CC5D0
-_080B2D50: .4byte 0x00002dfc
- thumb_func_end sub_80B2D1C
-
- thumb_func_start CreateShopMenu
-CreateShopMenu: @ 80B2D54
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r1, _080B2D90
- movs r0, 0
- strb r4, [r1, 0xC]
- strb r0, [r1, 0x9]
- cmp r4, 0
- bne _080B2D9C
- movs r0, 0x2
- strb r0, [r1, 0xA]
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r3, _080B2D94
- ldr r0, _080B2D98
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x3
- bl PrintMenuItemsReordered
- b _080B2DBC
- .align 2, 0
-_080B2D90: .4byte gUnknown_03000708
-_080B2D94: .4byte gUnknown_083CC6D0
-_080B2D98: .4byte gUnknown_083CC6E8
-_080B2D9C:
- movs r0, 0x1
- strb r0, [r1, 0xA]
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r3, _080B2DEC
- ldr r0, _080B2DF0
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x2
- bl PrintMenuItemsReordered
-_080B2DBC:
- ldr r0, _080B2DF4
- ldrb r3, [r0, 0xA]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r0, _080B2DF8
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B2DEC: .4byte gUnknown_083CC6D0
-_080B2DF0: .4byte gUnknown_083CC6EB
-_080B2DF4: .4byte gUnknown_03000708
-_080B2DF8: .4byte sub_80B2E38
- thumb_func_end CreateShopMenu
-
- thumb_func_start SetShopMenuCallback
-SetShopMenuCallback: @ 80B2DFC
- ldr r1, _080B2E04
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B2E04: .4byte gUnknown_03000708
- thumb_func_end SetShopMenuCallback
-
- thumb_func_start SetShopItemsForSale
-SetShopItemsForSale: @ 80B2E08
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldr r3, _080B2E34
- str r1, [r3, 0x4]
- strb r2, [r3, 0x8]
- ldrh r0, [r1]
- cmp r0, 0
- beq _080B2E30
-_080B2E1A:
- ldrb r0, [r3, 0x8]
- adds r0, 0x1
- strb r0, [r3, 0x8]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080B2E1A
-_080B2E30:
- pop {r0}
- bx r0
- .align 2, 0
-_080B2E34: .4byte gUnknown_03000708
- thumb_func_end SetShopItemsForSale
-
- thumb_func_start sub_80B2E38
-sub_80B2E38: @ 80B2E38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080B2E60
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080B2E68
- ldr r4, _080B2E64
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080B2E82
- .align 2, 0
-_080B2E60: .4byte gMain
-_080B2E64: .4byte gUnknown_03000708
-_080B2E68:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B2E90
- ldr r4, _080B2E8C
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080B2E82:
- bl MoveMenuCursor
- strb r0, [r4, 0x9]
- b _080B2EF4
- .align 2, 0
-_080B2E8C: .4byte gUnknown_03000708
-_080B2E90:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2EE0
- movs r0, 0x5
- bl PlaySE
- ldr r3, _080B2EB0
- ldrb r0, [r3, 0xC]
- cmp r0, 0
- bne _080B2EBC
- ldr r1, _080B2EB4
- ldr r2, _080B2EB8
- b _080B2EC0
- .align 2, 0
-_080B2EB0: .4byte gUnknown_03000708
-_080B2EB4: .4byte gUnknown_083CC6D0
-_080B2EB8: .4byte gUnknown_083CC6E8
-_080B2EBC:
- ldr r1, _080B2ED8
- ldr r2, _080B2EDC
-_080B2EC0:
- ldrb r0, [r3, 0x9]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080B2EF4
- .align 2, 0
-_080B2ED8: .4byte gUnknown_083CC6D0
-_080B2EDC: .4byte gUnknown_083CC6EB
-_080B2EE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl HandleShopMenuQuit
-_080B2EF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B2E38
-
- thumb_func_start sub_80B2EFC
-sub_80B2EFC: @ 80B2EFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2F24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080B2F28
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080B2F2C
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F24: .4byte gTasks
-_080B2F28: .4byte BuyMenuDrawGraphics
-_080B2F2C: .4byte sub_80B2FA0
- thumb_func_end sub_80B2EFC
-
- thumb_func_start sub_80B2F30
-sub_80B2F30: @ 80B2F30
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2F58
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080B2F5C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080B2F60
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F58: .4byte gTasks
-_080B2F5C: .4byte sub_80A6300
-_080B2F60: .4byte sub_80B2FA0
- thumb_func_end sub_80B2F30
-
- thumb_func_start HandleShopMenuQuit
-HandleShopMenuQuit: @ 80B2F64
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl sub_80BE3BC
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080B2F9C
- ldr r0, [r0]
- cmp r0, 0
- beq _080B2F96
- bl _call_via_r0
-_080B2F96:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F9C: .4byte gUnknown_03000708
- thumb_func_end HandleShopMenuQuit
-
- thumb_func_start sub_80B2FA0
-sub_80B2FA0: @ 80B2FA0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B2FD4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B2FCE
- ldr r0, _080B2FD8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- lsls r0, 16
- ldrh r1, [r1, 0x1A]
- orrs r0, r1
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B2FCE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2FD4: .4byte gPaletteFade
-_080B2FD8: .4byte gTasks
- thumb_func_end sub_80B2FA0
-
- thumb_func_start ReturnToShopMenuAfterExitingSellMenu
-ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B2FF8
- ldrb r0, [r0, 0xC]
- bl CreateShopMenu
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2FF8: .4byte gUnknown_03000708
- thumb_func_end ReturnToShopMenuAfterExitingSellMenu
-
- thumb_func_start Task_ExitSellMenu
-Task_ExitSellMenu: @ 80B2FFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3040
- ldr r0, _080B3028
- ldrb r0, [r0, 0xC]
- cmp r0, 0x2
- bne _080B3034
- ldr r1, _080B302C
- ldr r2, _080B3030
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080B3040
- .align 2, 0
-_080B3028: .4byte gUnknown_03000708
-_080B302C: .4byte gOtherText_CanIHelpYou
-_080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu
-_080B3034:
- ldr r1, _080B3048
- ldr r2, _080B304C
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080B3040:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3048: .4byte gOtherText_AnythingElse
-_080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu
- thumb_func_end Task_ExitSellMenu
-
- thumb_func_start sub_80B3050
-sub_80B3050: @ 80B3050
- push {lr}
- bl pal_fill_black
- ldr r0, _080B3064
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B3064: .4byte Task_ExitSellMenu
- thumb_func_end sub_80B3050
-
- thumb_func_start sub_80B3068
-sub_80B3068: @ 80B3068
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl Task_ExitSellMenu
- pop {r0}
- bx r0
- thumb_func_end sub_80B3068
-
- thumb_func_start unref_sub_80B3078
-unref_sub_80B3078: @ 80B3078
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B308C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080B3090
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B308C: .4byte gTasks
-_080B3090: .4byte Task_ExitSellMenu
- thumb_func_end unref_sub_80B3078
-
- thumb_func_start sub_80B3094
-sub_80B3094: @ 80B3094
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80B3094
-
- thumb_func_start sub_80B30AC
-sub_80B30AC: @ 80B30AC
- push {r4,lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r3, _080B30F0
- ldr r1, _080B30F4
- ldr r0, _080B30F8
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r4, _080B30FC
- str r4, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r2, 0x80
- lsls r2, 4
- adds r1, r3, r2
- ldr r2, _080B3100
- str r1, [r0]
- str r2, [r0, 0x4]
- str r4, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r1, 0x80
- lsls r1, 5
- adds r3, r1
- ldr r1, _080B3104
- str r3, [r0]
- str r1, [r0, 0x4]
- str r4, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B30F0: .4byte gBG1TilemapBuffer
-_080B30F4: .4byte 0x0600e800
-_080B30F8: .4byte 0x040000d4
-_080B30FC: .4byte 0x80000400
-_080B3100: .4byte 0x0600e000
-_080B3104: .4byte 0x0600f000
- thumb_func_end sub_80B30AC
-
- thumb_func_start BuyMenuDrawGraphics
-BuyMenuDrawGraphics: @ 80B3108
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- bl sub_80F9438
- bl remove_some_task
- ldr r0, _080B3204
- movs r5, 0
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r0, _080B3208
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- movs r1, 0xE0
- lsls r1, 19
- movs r6, 0
- str r6, [sp, 0x4]
- ldr r0, _080B320C
- add r2, sp, 0x4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080B3210
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080B3214
- ldr r1, _080B3218
- bl LZDecompressVram
- ldr r0, _080B321C
- ldr r1, _080B3220
- bl sub_800D238
- ldr r0, _080B3224
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadCompressedPalette
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- ldr r4, _080B3228
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl BuyMenuDrawMapGraphics
- ldr r0, _080B322C
- strb r6, [r0, 0x9]
- strb r5, [r0, 0xB]
- movs r0, 0
- movs r1, 0
- movs r2, 0x20
- movs r3, 0x20
- bl MenuZeroFillWindowRect
- ldr r0, _080B3230
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80B7C14
- movs r0, 0
- movs r1, 0x7
- bl sub_80B3764
- bl sub_80B37EC
- bl sub_80B3270
- ldr r0, _080B3234
- movs r1, 0x8
- bl CreateTask
- bl sub_80B3240
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080B3238
- bl SetVBlankCallback
- ldr r0, _080B323C
- bl SetMainCallback2
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3204: .4byte REG_BG1HOFS
-_080B3208: .4byte gPaletteFade
-_080B320C: .4byte 0x040000d4
-_080B3210: .4byte 0x85000100
-_080B3214: .4byte gBuyMenuFrame_Gfx
-_080B3218: .4byte 0x06007c00
-_080B321C: .4byte gBuyMenuFrame_Tilemap
-_080B3220: .4byte 0x02018000
-_080B3224: .4byte gMenuMoneyPal
-_080B3228: .4byte gWindowConfig_81E6DFC
-_080B322C: .4byte gUnknown_03000708
-_080B3230: .4byte gSaveBlock1
-_080B3234: .4byte sub_80B40E8
-_080B3238: .4byte sub_80B30AC
-_080B323C: .4byte sub_80B3094
- thumb_func_end BuyMenuDrawGraphics
-
- thumb_func_start sub_80B3240
-sub_80B3240: @ 80B3240
- push {lr}
- sub sp, 0x4
- ldr r1, _080B326C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B326C: .4byte gUnknown_083CC710
- thumb_func_end sub_80B3240
-
- thumb_func_start sub_80B3270
-sub_80B3270: @ 80B3270
- push {lr}
- bl sub_80F944C
- ldr r0, _080B32A0
- ldrb r0, [r0, 0x8]
- cmp r0, 0x7
- bls _080B329A
- movs r0, 0
- movs r1, 0xAC
- movs r2, 0xC
- bl sub_80F953C
- movs r0, 0x1
- movs r1, 0xAC
- movs r2, 0x94
- bl sub_80F953C
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_080B329A:
- pop {r0}
- bx r0
- .align 2, 0
-_080B32A0: .4byte gUnknown_03000708
- thumb_func_end sub_80B3270
-
- thumb_func_start sub_80B32A4
-sub_80B32A4: @ 80B32A4
- push {lr}
- ldr r0, _080B32B8
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _080B32BC
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
- b _080B32C4
- .align 2, 0
-_080B32B8: .4byte gUnknown_03000708
-_080B32BC:
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
-_080B32C4:
- ldr r1, _080B32DC
- ldrb r0, [r1, 0xB]
- adds r0, 0x7
- ldrb r1, [r1, 0x8]
- cmp r0, r1
- blt _080B32E0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- b _080B32E8
- .align 2, 0
-_080B32DC: .4byte gUnknown_03000708
-_080B32E0:
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_080B32E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80B32A4
-
- thumb_func_start sub_80B32EC
-sub_80B32EC: @ 80B32EC
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldr r2, _080B3304
- adds r0, r2, 0
- strh r0, [r1]
- strh r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_080B3304: .4byte 0x0000c3e1
- thumb_func_end sub_80B32EC
-
- thumb_func_start BuyMenuDrawMapMetatileLayer
-BuyMenuDrawMapMetatileLayer: @ 80B3308
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r3]
- strh r0, [r1]
- ldrh r0, [r3, 0x2]
- strh r0, [r1, 0x2]
- adds r2, r1, 0
- adds r2, 0x40
- ldrh r0, [r3, 0x4]
- strh r0, [r2]
- adds r1, 0x42
- ldrh r0, [r3, 0x6]
- strh r0, [r1]
- bx lr
- thumb_func_end BuyMenuDrawMapMetatileLayer
-
- thumb_func_start BuyMenuDrawMapMetatile
-BuyMenuDrawMapMetatile: @ 80B3330
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r3, 24
- lsrs r3, 24
- adds r2, r3, 0
- lsls r0, 17
- lsrs r0, 16
- lsls r1, 22
- movs r4, 0x80
- lsls r4, 15
- adds r1, r4
- lsrs r1, 16
- cmp r3, 0x1
- beq _080B3364
- cmp r3, 0x1
- bgt _080B3356
- cmp r3, 0
- beq _080B335C
- b _080B33C0
-_080B3356:
- cmp r2, 0x2
- beq _080B3398
- b _080B33C0
-_080B335C:
- ldr r5, _080B3360
- b _080B3366
- .align 2, 0
-_080B3360: .4byte gBG2TilemapBuffer
-_080B3364:
- ldr r5, _080B3390
-_080B3366:
- lsls r6, r0, 16
- asrs r6, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B3394
- adds r5, r0
- adds r3, r7, 0
- adds r3, 0x8
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
- b _080B33C0
- .align 2, 0
-_080B3390: .4byte gBG3TilemapBuffer
-_080B3394: .4byte 0xfffff800
-_080B3398:
- ldr r5, _080B33C8
- lsls r6, r0, 16
- asrs r6, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B33CC
- adds r5, r0
- adds r3, r7, 0
- adds r3, 0x8
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
-_080B33C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B33C8: .4byte gBG3TilemapBuffer
-_080B33CC: .4byte 0xfffff000
- thumb_func_end BuyMenuDrawMapMetatile
-
- thumb_func_start sub_80B33D0
-sub_80B33D0: @ 80B33D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- lsls r4, 22
- ldr r5, _080B3418
- lsls r6, 17
- asrs r6, 16
- movs r0, 0x80
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B341C
- adds r5, r0
- movs r0, 0x8
- add r8, r0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl BuyMenuDrawMapMetatileLayer
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3418: .4byte gBG3TilemapBuffer
-_080B341C: .4byte 0xfffff800
- thumb_func_end sub_80B33D0
-
- thumb_func_start sub_80B3420
-sub_80B3420: @ 80B3420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x3
- strh r0, [r1]
- ldrh r0, [r4]
- subs r0, 0x3
- strh r0, [r4]
- movs r1, 0
- ldr r0, _080B34A8
- mov r10, r0
- ldr r2, _080B34AC
- mov r9, r2
-_080B3452:
- movs r4, 0
- lsls r1, 16
- mov r8, r1
- asrs r7, r1, 16
-_080B345A:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r7, 0x5
- beq _080B34D0
- cmp r6, 0x6
- beq _080B34D0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r5, r10
- bhi _080B34B0
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- lsls r1, r5, 4
- ldr r2, [r0, 0xC]
- adds r2, r1
- b _080B34C0
- .align 2, 0
-_080B34A8: .4byte 0x000001ff
-_080B34AC: .4byte gMapHeader
-_080B34B0:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, [r0, 0x14]
- ldr r2, _080B34CC
- adds r0, r5, r2
- lsls r0, 4
- ldr r2, [r1, 0xC]
- adds r2, r0
-_080B34C0:
- adds r0, r6, 0
- adds r1, r7, 0
- bl BuyMenuDrawMapMetatile
- b _080B3506
- .align 2, 0
-_080B34CC: .4byte 0xfffffe00
-_080B34D0:
- cmp r5, r10
- bhi _080B34EC
- asrs r0, r4, 16
- mov r3, r9
- ldr r1, [r3]
- ldr r1, [r1, 0x10]
- lsls r3, r5, 4
- ldr r2, [r1, 0xC]
- adds r2, r3
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
- b _080B3506
-_080B34EC:
- asrs r0, r4, 16
- mov r2, r9
- ldr r1, [r2]
- ldr r2, [r1, 0x14]
- ldr r3, _080B354C
- adds r1, r5, r3
- lsls r1, 4
- ldr r2, [r2, 0xC]
- adds r2, r1
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
-_080B3506:
- cmp r7, 0
- bne _080B3520
- asrs r1, r4, 16
- cmp r1, 0
- beq _080B3520
- cmp r1, 0x6
- beq _080B3520
- lsls r1, 17
- asrs r1, 16
- ldr r0, _080B3550
- movs r2, 0x40
- bl sub_80B32EC
-_080B3520:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080B345A
- adds r0, r1, 0
- add r0, r8
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B3452
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B354C: .4byte 0xfffffe00
-_080B3550: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80B3420
-
- thumb_func_start BuyMenuDrawMapGraphics
-BuyMenuDrawMapGraphics: @ 80B3554
- push {lr}
- bl sub_80F9020
- bl sub_80B356C
- bl sub_80B368C
- bl sub_80B3420
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDrawMapGraphics
-
- thumb_func_start sub_80B356C
-sub_80B356C: @ 80B356C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r5, 0
- ldr r2, _080B3674
- movs r1, 0x10
-_080B3598:
- lsls r0, r5, 3
- adds r0, r2
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080B3598
- movs r5, 0
- ldr r7, _080B3678
- subs r1, r7, 0x6
- mov r9, r1
-_080B35B0:
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
-_080B35B6:
- mov r1, sp
- ldr r3, _080B367C
- adds r0, r3, 0
- ldrh r1, [r1]
- adds r0, r1
- adds r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080B3680
- adds r1, r2, 0
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _080B3650
- mov r0, r8
- lsls r3, r0, 3
- mov r1, r9
- adds r0, r3, r1
- movs r6, 0
- strh r2, [r0]
- mov r0, r9
- adds r0, 0x2
- adds r0, r3, r0
- strh r4, [r0]
- ldr r1, _080B3684
- adds r0, r3, r1
- strh r5, [r0]
- ldr r1, _080B3688
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080B3616
- adds r0, r3, r7
- strh r6, [r0]
-_080B3616:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x2
- bne _080B3626
- adds r1, r3, r7
- movs r0, 0x1
- strh r0, [r1]
-_080B3626:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x3
- bne _080B3636
- adds r1, r3, r7
- movs r0, 0x2
- strh r0, [r1]
-_080B3636:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- bne _080B3646
- adds r1, r3, r7
- movs r0, 0x3
- strh r0, [r1]
-_080B3646:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B3650:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080B35B6
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080B35B0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3674: .4byte gUnknown_020386A4
-_080B3678: .4byte gUnknown_020386AA
-_080B367C: .4byte 0x0000fffd
-_080B3680: .4byte 0x0000fffe
-_080B3684: .4byte gUnknown_020386A8
-_080B3688: .4byte gMapObjects
- thumb_func_end sub_80B356C
-
- thumb_func_start sub_80B368C
-sub_80B368C: @ 80B368C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r5, 0
- ldr r6, _080B3710
- adds r0, r6, 0x6
- mov r8, r0
- ldr r7, _080B3714
-_080B369E:
- lsls r4, r5, 3
- adds r1, r4, r6
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- beq _080B36F8
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0x2
- adds r1, r4, r1
- ldrh r2, [r1]
- lsls r2, 4
- adds r2, 0x8
- lsls r2, 16
- asrs r2, 16
- adds r1, r6, 0x4
- adds r1, r4, r1
- ldrh r3, [r1]
- lsls r3, 20
- movs r1, 0x80
- lsls r1, 14
- adds r3, r1
- asrs r3, 16
- movs r1, 0x2
- str r1, [sp]
- ldr r1, _080B3718
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080B371C
- adds r2, r0
- mov r1, r8
- adds r0, r4, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl StartSpriteAnim
-_080B36F8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080B369E
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3710: .4byte gUnknown_020386A4
-_080B3714: .4byte gMapObjects
-_080B3718: .4byte SpriteCallbackDummy
-_080B371C: .4byte gSprites
- thumb_func_end sub_80B368C
-
- thumb_func_start sub_80B3720
-sub_80B3720: @ 80B3720
- push {r4-r6,lr}
- movs r1, 0
- ldr r6, _080B3754
- ldr r5, _080B3758
- ldr r4, _080B375C
- ldr r0, _080B3760
- adds r3, r0, 0
-_080B372E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080B3742
- adds r1, r6
- adds r0, r3
- strh r0, [r1]
-_080B3742:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, r5
- ble _080B372E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3754: .4byte gBG1TilemapBuffer
-_080B3758: .4byte 0x000003ff
-_080B375C: .4byte 0x02018000
-_080B3760: .4byte 0x0000c3e0
- thumb_func_end sub_80B3720
-
- thumb_func_start sub_80B3764
-sub_80B3764: @ 80B3764
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80B3720
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_80B39D0
- ldr r0, _080B3798
- ldrb r0, [r0, 0x9]
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x2
- movs r3, 0x8
- bl InitMenu
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3798: .4byte gUnknown_03000708
- thumb_func_end sub_80B3764
-
- thumb_func_start sub_80B379C
-sub_80B379C: @ 80B379C
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080B37E0
- mov r12, r0
- ldr r7, _080B37E4
- ldr r0, _080B37E8
- adds r6, r0, 0
-_080B37AA:
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xC
- adds r5, r1, 0x1
- lsls r4, r0, 5
- lsls r3, r1, 5
-_080B37B6:
- adds r1, r4, r2
- lsls r1, 1
- add r1, r12
- adds r0, r3, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- adds r0, r6, r0
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xD
- bls _080B37B6
- lsls r0, r5, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _080B37AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B37E0: .4byte gBG1TilemapBuffer
-_080B37E4: .4byte 0x02018300
-_080B37E8: .4byte 0x0000c3e0
- thumb_func_end sub_80B379C
-
- thumb_func_start sub_80B37EC
-sub_80B37EC: @ 80B37EC
- push {lr}
- bl sub_80B3A70
- pop {r0}
- bx r0
- thumb_func_end sub_80B37EC
-
- thumb_func_start sub_80B37F8
-sub_80B37F8: @ 80B37F8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080B3884
- ldrb r0, [r1, 0xB]
- ldrb r2, [r1, 0x9]
- adds r0, r2
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl itemid_get_market_price
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, _080B3888
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- adds r5, r0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- muls r0, r4
- movs r1, 0x6
- movs r2, 0x6
- movs r3, 0xB
- bl sub_80B7A94
- ldr r0, _080B388C
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080B3890
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- ldr r0, _080B3894
- movs r1, 0x2
- str r1, [sp]
- ldr r1, _080B3898
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3884: .4byte gUnknown_03000708
-_080B3888: .4byte gTasks
-_080B388C: .4byte gStringVar1
-_080B3890: .4byte gOtherText_xString1
-_080B3894: .4byte gBG1TilemapBuffer
-_080B3898: .4byte 0x0000c3e1
- thumb_func_end sub_80B37F8
-
- thumb_func_start sub_80B389C
-sub_80B389C: @ 80B389C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r2
- lsls r0, 16
- lsrs r2, r0, 16
- mov r9, r2
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _080B392C
- mov r0, r8
- cmp r0, 0
- beq _080B38C8
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0x2
- strb r0, [r5, 0x2]
- adds r5, 0x3
-_080B38C8:
- adds r0, r2, 0
- adds r1, r5, 0
- bl itemid_copy_name
- ldr r6, _080B392C
- lsls r7, r4, 3
- movs r0, 0x1
- str r0, [sp]
- adds r0, r6, 0
- movs r1, 0x70
- adds r2, r7, 0
- movs r3, 0x58
- bl sub_8072A18
- adds r5, r6, 0
- mov r0, r8
- cmp r0, 0
- beq _080B38EE
- adds r5, r6, 0x3
-_080B38EE:
- mov r0, r9
- bl itemid_get_market_price
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x4
- bl sub_80B79F8
- adds r0, r6, 0
- movs r1, 0xCA
- adds r2, r7, 0
- movs r3, 0x1
- bl sub_80729D8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B392C: .4byte gStringVar1
- thumb_func_end sub_80B389C
-
- thumb_func_start sub_80B3930
-sub_80B3930: @ 80B3930
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r2, _080B39A0
- cmp r4, 0
- beq _080B395A
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
-_080B395A:
- lsls r6, r3, 5
- ldr r0, _080B39A4
- mov r8, r0
- adds r1, r6, r0
- adds r0, r2, 0
- bl StringCopy
- ldr r5, _080B39A0
- mov r0, r9
- lsls r7, r0, 3
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x70
- adds r2, r7, 0
- movs r3, 0x58
- bl sub_8072A18
- adds r2, r5, 0
- cmp r4, 0
- beq _080B3986
- adds r2, r5, 0x3
-_080B3986:
- mov r0, r8
- subs r0, 0x1
- adds r3, r6, r0
- ldrh r1, [r3, 0x14]
- ldr r0, _080B39A8
- cmp r1, r0
- bne _080B39AC
- movs r0, 0x19
- mov r1, r9
- adds r2, r4, 0
- bl sub_80B7B34
- b _080B39C2
- .align 2, 0
-_080B39A0: .4byte gStringVar1
-_080B39A4: .4byte gDecorations + 0x1
-_080B39A8: .4byte 0x00002710
-_080B39AC:
- ldrh r1, [r3, 0x14]
- adds r0, r2, 0
- movs r2, 0x4
- bl sub_80B79F8
- adds r0, r5, 0
- movs r1, 0xCA
- adds r2, r7, 0
- movs r3, 0x1
- bl sub_80729D8
-_080B39C2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3930
-
- thumb_func_start sub_80B39D0
-sub_80B39D0: @ 80B39D0
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r2, 0
- b _080B3A1A
-_080B39D8:
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- bne _080B39FC
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 25
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- adds r2, r5, 0
- bl sub_80B389C
- b _080B3A18
-_080B39FC:
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 25
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- adds r2, r5, 0
- bl sub_80B3930
-_080B3A18:
- adds r0, r4, 0x1
-_080B3A1A:
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bgt _080B3A2E
- ldr r1, _080B3A68
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldrb r2, [r1, 0x8]
- cmp r0, r2
- blt _080B39D8
-_080B3A2E:
- cmp r4, 0x8
- beq _080B3A60
- ldr r1, _080B3A68
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldrb r1, [r1, 0x8]
- cmp r0, r1
- bne _080B3A60
- lsls r3, r4, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xE
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080B3A6C
- movs r1, 0xE
- adds r2, r4, 0
- bl MenuPrint
-_080B3A60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3A68: .4byte gUnknown_03000708
-_080B3A6C: .4byte gOtherText_CancelNoTerminator
- thumb_func_end sub_80B39D0
-
- thumb_func_start sub_80B3A70
-sub_80B3A70: @ 80B3A70
- push {r4,lr}
- sub sp, 0x8
- ldr r2, _080B3A9C
- ldrb r1, [r2, 0xB]
- ldrb r0, [r2, 0x9]
- adds r0, r1, r0
- ldrb r1, [r2, 0x8]
- cmp r0, r1
- beq _080B3ACC
- ldrb r4, [r2, 0xC]
- cmp r4, 0
- bne _080B3AA0
- ldr r1, [r2, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl itemid_get_description
- movs r1, 0x30
- str r1, [sp]
- str r4, [sp, 0x4]
- b _080B3ABA
- .align 2, 0
-_080B3A9C: .4byte gUnknown_03000708
-_080B3AA0:
- ldr r1, _080B3AC8
- ldr r2, [r2, 0x4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 5
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
-_080B3ABA:
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- b _080B3AE0
- .align 2, 0
-_080B3AC8: .4byte gDecorations
-_080B3ACC:
- ldr r0, _080B3AE8
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
-_080B3AE0:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3AE8: .4byte gOtherText_QuitShopping
- thumb_func_end sub_80B3A70
-
- thumb_func_start sub_80B3AEC
-sub_80B3AEC: @ 80B3AEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B3B5C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B3B06
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B3B7A
-_080B3B06:
- ldr r4, _080B3B60
- ldrb r1, [r4, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bne _080B3B74
- ldr r0, _080B3B64
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x9
- ble _080B3B74
- movs r0, 0xC
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3B74
- ldr r1, _080B3B68
- ldr r2, _080B3B6C
- ldr r3, _080B3B70
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- b _080B3B7A
- .align 2, 0
-_080B3B5C: .4byte gMain
-_080B3B60: .4byte gUnknown_03000708
-_080B3B64: .4byte gTasks
-_080B3B68: .4byte gOtherText_FreePremierBall
-_080B3B6C: .4byte sub_80B4378
-_080B3B70: .4byte 0x0000c3e1
-_080B3B74:
- adds r0, r5, 0
- bl sub_80B4378
-_080B3B7A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3AEC
-
- thumb_func_start sub_80B3B80
-sub_80B3B80: @ 80B3B80
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x26
- bl sav12_xor_increment
- ldr r5, _080B3BC0
- ldr r0, _080B3BC4
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_80B79E0
- movs r0, 0x5F
- bl PlaySE
- ldr r0, [r5]
- movs r1, 0
- movs r2, 0
- bl sub_80B7BEC
- ldr r1, _080B3BC8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B3BCC
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3BC0: .4byte gSaveBlock1 + 0x490
-_080B3BC4: .4byte gUnknown_020386A0
-_080B3BC8: .4byte gTasks
-_080B3BCC: .4byte sub_80B3AEC
- thumb_func_end sub_80B3B80
-
- thumb_func_start sub_80B3BD0
-sub_80B3BD0: @ 80B3BD0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B3BF0
- ldrb r1, [r0, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- adds r0, r4, 0
- bl sub_80B4378
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3BF0: .4byte gUnknown_03000708
- thumb_func_end sub_80B3BD0
-
- thumb_func_start sub_80B3BF4
-sub_80B3BF4: @ 80B3BF4
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3C7C
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- bl sub_80B379C
- bl sub_80B3420
- ldr r0, _080B3C80
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B3C84
- ldr r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- beq _080B3D18
- ldr r4, _080B3C88
- ldrb r0, [r4, 0xC]
- cmp r0, 0
- bne _080B3CAC
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r2, _080B3C8C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl sub_80A9424
- lsls r0, 24
- cmp r0, 0
- beq _080B3C9C
- ldr r1, _080B3C90
- ldr r2, _080B3C94
- ldr r3, _080B3C98
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- adds r0, r5, 0
- bl sub_80B4470
- b _080B3D24
- .align 2, 0
-_080B3C7C: .4byte gBG1TilemapBuffer
-_080B3C80: .4byte gSaveBlock1
-_080B3C84: .4byte gUnknown_020386A0
-_080B3C88: .4byte gUnknown_03000708
-_080B3C8C: .4byte gTasks
-_080B3C90: .4byte gOtherText_HereYouGo
-_080B3C94: .4byte sub_80B3B80
-_080B3C98: .4byte 0x0000c3e1
-_080B3C9C:
- ldr r1, _080B3CA4
- ldr r2, _080B3CA8
- b _080B3CD8
- .align 2, 0
-_080B3CA4: .4byte gOtherText_NoRoomFor
-_080B3CA8: .4byte sub_80B3BD0
-_080B3CAC:
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl IsThereStorageSpaceForDecoration
- lsls r0, 24
- cmp r0, 0
- beq _080B3CF0
- ldrb r0, [r4, 0xC]
- cmp r0, 0x1
- bne _080B3CD4
- ldr r1, _080B3CD0
- b _080B3CD6
- .align 2, 0
-_080B3CD0: .4byte gOtherText_HereYouGo2
-_080B3CD4:
- ldr r1, _080B3CE4
-_080B3CD6:
- ldr r2, _080B3CE8
-_080B3CD8:
- ldr r3, _080B3CEC
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- b _080B3D24
- .align 2, 0
-_080B3CE4: .4byte gOtherText_HereYouGo3
-_080B3CE8: .4byte sub_80B3B80
-_080B3CEC: .4byte 0x0000c3e1
-_080B3CF0:
- ldr r4, _080B3D08
- ldr r1, _080B3D0C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B3D10
- ldr r3, _080B3D14
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B3D24
- .align 2, 0
-_080B3D08: .4byte gStringVar4
-_080B3D0C: .4byte gOtherText_SpaceForIsFull
-_080B3D10: .4byte sub_80B3BD0
-_080B3D14: .4byte 0x0000c3e1
-_080B3D18:
- ldr r1, _080B3D2C
- ldr r2, _080B3D30
- ldr r3, _080B3D34
- adds r0, r5, 0
- bl DisplayItemMessageOnField
-_080B3D24:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3D2C: .4byte gOtherText_NotEnoughMoney
-_080B3D30: .4byte sub_80B3BD0
-_080B3D34: .4byte 0x0000c3e1
- thumb_func_end sub_80B3BF4
-
- thumb_func_start sub_80B3D38
-sub_80B3D38: @ 80B3D38
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080B3D70
- movs r1, 0x4
- str r1, [sp]
- ldr r1, _080B3D74
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- ldr r1, _080B3D78
- adds r0, r4, 0
- bl sub_80F914C
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3D70: .4byte gBG1TilemapBuffer
-_080B3D74: .4byte 0x0000c3e1
-_080B3D78: .4byte gUnknown_083CC708
- thumb_func_end sub_80B3D38
-
- thumb_func_start sub_80B3D7C
-sub_80B3D7C: @ 80B3D7C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B3DC0
- ldrb r1, [r0, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3DC4
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- adds r0, r4, 0
- bl sub_80B4378
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3DC0: .4byte gUnknown_03000708
-_080B3DC4: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80B3D7C
-
- thumb_func_start sub_80B3DC8
-sub_80B3DC8: @ 80B3DC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r6, 0
- ldr r7, _080B3EA8
- ldrb r1, [r7, 0xD]
- adds r0, r6, 0
- bl sub_80A52C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3DEE
- adds r0, r6, 0
- bl sub_80B37F8
-_080B3DEE:
- ldr r0, _080B3EAC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B3ED8
- ldr r0, _080B3EB0
- mov r8, r0
- ldrb r0, [r7, 0xB]
- ldrb r1, [r7, 0x9]
- adds r0, r1
- ldr r1, [r7, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl itemid_get_market_price
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, _080B3EB4
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- adds r5, r0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- muls r0, r4
- mov r2, r8
- str r0, [r2]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3EB8
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- bl sub_80B379C
- bl sub_80B3420
- ldrb r0, [r7, 0xB]
- ldrb r1, [r7, 0x9]
- adds r0, r1
- ldr r1, [r7, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _080B3EBC
- bl itemid_copy_name
- ldr r0, _080B3EC0
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080B3EC4
- mov r2, r8
- ldr r1, [r2]
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- ldr r4, _080B3EC8
- ldr r1, _080B3ECC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B3ED0
- ldr r3, _080B3ED4
- adds r0, r6, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B3EF0
- .align 2, 0
-_080B3EA8: .4byte gUnknown_03000708
-_080B3EAC: .4byte gMain
-_080B3EB0: .4byte gUnknown_020386A0
-_080B3EB4: .4byte gTasks
-_080B3EB8: .4byte gBG1TilemapBuffer
-_080B3EBC: .4byte gStringVar1
-_080B3EC0: .4byte gStringVar2
-_080B3EC4: .4byte gStringVar3
-_080B3EC8: .4byte gStringVar4
-_080B3ECC: .4byte gOtherText_ThatWillBe
-_080B3ED0: .4byte sub_80B3D38
-_080B3ED4: .4byte 0x0000c3e1
-_080B3ED8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B3EF0
- ldrb r1, [r7, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- adds r0, r4, 0
- bl sub_80B4378
-_080B3EF0:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3DC8
-
- thumb_func_start sub_80B3EFC
-sub_80B3EFC: @ 80B3EFC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B3F78
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0xA]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuDrawTextWindow
- adds r0, r5, 0
- bl sub_80B37F8
- ldr r6, _080B3F7C
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl itemid_get_market_price
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- ldr r1, _080B3F80
- movs r2, 0x92
- lsls r2, 3
- adds r1, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, [r1]
- adds r1, r4, 0
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x63
- bls _080B3F62
- movs r0, 0x63
-_080B3F62:
- strb r0, [r6, 0xD]
- ldr r0, _080B3F78
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080B3F84
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3F78: .4byte gTasks
-_080B3F7C: .4byte gUnknown_03000708
-_080B3F80: .4byte gSaveBlock1
-_080B3F84: .4byte sub_80B3DC8
- thumb_func_end sub_80B3EFC
-
- thumb_func_start sub_80B3F88
-sub_80B3F88: @ 80B3F88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080B4020
- mov r8, r0
- ldr r1, [r0, 0x28]
- ldr r3, _080B4024
- adds r1, r3
- adds r2, r1, 0
- adds r2, 0x80
- ldr r7, [r0, 0x24]
- mov r10, r7
- ldr r0, _080B4028
- mov r9, r0
- movs r6, 0xD
-_080B3FAC:
- adds r3, r2, 0
- subs r3, 0x40
- str r3, [sp]
- movs r7, 0x40
- negs r7, r7
- adds r7, r1
- mov r12, r7
- adds r3, r2, 0
- adds r4, r1, 0
- movs r5, 0xE
-_080B3FC0:
- ldrh r2, [r4]
- mov r1, r9
- ands r1, r2
- mov r7, r8
- ldrh r0, [r7, 0x1A]
- adds r0, 0x1
- cmp r1, r0
- ble _080B3FD4
- adds r0, r2, 0
- adds r0, 0x3C
-_080B3FD4:
- strh r0, [r3]
- adds r3, 0x2
- adds r4, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _080B3FC0
- ldr r2, [sp]
- mov r1, r12
- subs r6, 0x1
- cmp r6, 0
- bge _080B3FAC
- ldr r1, _080B402C
- add r1, r10
- movs r0, 0xF0
- lsls r0, 3
- adds r2, r1, r0
- ldr r3, _080B4030
- ldr r5, _080B4034
- ldr r4, _080B4038
- movs r6, 0xD
-_080B3FFC:
- str r1, [r3]
- str r2, [r3, 0x4]
- str r5, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r4
- adds r1, r4
- subs r6, 0x1
- cmp r6, 0
- bge _080B3FFC
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4020: .4byte gMenuWindow
-_080B4024: .4byte 0x000003de
-_080B4028: .4byte 0x000003ff
-_080B402C: .4byte 0x00003a20
-_080B4030: .4byte 0x040000d4
-_080B4034: .4byte 0x800000f0
-_080B4038: .4byte 0xfffffc40
- thumb_func_end sub_80B3F88
-
- thumb_func_start sub_80B403C
-sub_80B403C: @ 80B403C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080B40D8
- mov r8, r0
- ldr r2, [r0, 0x28]
- adds r1, r2, 0
- adds r1, 0x9E
- adds r2, r1, 0
- adds r1, 0x80
- ldr r3, [r0, 0x24]
- mov r10, r3
- ldr r7, _080B40DC
- mov r9, r7
- movs r6, 0xD
-_080B4060:
- adds r0, r2, 0
- adds r0, 0x40
- str r0, [sp]
- movs r3, 0x40
- adds r3, r1
- mov r12, r3
- adds r3, r2, 0
- adds r4, r1, 0
- movs r5, 0xE
-_080B4072:
- ldrh r2, [r4]
- mov r1, r9
- ands r1, r2
- mov r7, r8
- ldrh r0, [r7, 0x1A]
- adds r0, 0x1
- cmp r1, r0
- ble _080B4086
- adds r0, r2, 0
- subs r0, 0x3C
-_080B4086:
- strh r0, [r3]
- adds r3, 0x2
- adds r4, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _080B4072
- ldr r2, [sp]
- mov r1, r12
- subs r6, 0x1
- cmp r6, 0
- bge _080B4060
- movs r1, 0x96
- lsls r1, 4
- add r1, r10
- adds r2, r1, 0
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r0
- ldr r3, _080B40E0
- ldr r5, _080B40E4
- movs r4, 0xF0
- lsls r4, 2
- movs r6, 0xD
-_080B40B4:
- str r1, [r3]
- str r2, [r3, 0x4]
- str r5, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r4
- adds r1, r4
- subs r6, 0x1
- cmp r6, 0
- bge _080B40B4
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B40D8: .4byte gMenuWindow
-_080B40DC: .4byte 0x000003ff
-_080B40E0: .4byte 0x040000d4
-_080B40E4: .4byte 0x800000f0
- thumb_func_end sub_80B403C
-
- thumb_func_start sub_80B40E8
-sub_80B40E8: @ 80B40E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- mov r8, r7
- ldr r0, _080B4134
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B4102
- b _080B436C
-_080B4102:
- ldr r2, _080B4138
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080B414C
- ldr r4, _080B413C
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080B4140
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _080B411E
- b _080B436C
-_080B411E:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- subs r0, 0x1
- strb r0, [r4, 0xB]
- bl sub_80B3F88
- movs r0, 0
- movs r1, 0
- b _080B417A
- .align 2, 0
-_080B4134: .4byte gPaletteFade
-_080B4138: .4byte gMain
-_080B413C: .4byte gUnknown_03000708
-_080B4140:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080B41A0
-_080B414C:
- cmp r1, 0x80
- bne _080B41AC
- ldr r4, _080B418C
- ldrb r0, [r4, 0x9]
- cmp r0, 0x7
- bne _080B4190
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _080B4166
- b _080B436C
-_080B4166:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- adds r0, 0x1
- strb r0, [r4, 0xB]
- bl sub_80B403C
- movs r0, 0x7
- movs r1, 0x7
-_080B417A:
- movs r2, 0
- bl sub_80B39D0
- bl sub_80B3A70
- bl sub_80B32A4
- b _080B436C
- .align 2, 0
-_080B418C: .4byte gUnknown_03000708
-_080B4190:
- ldrb r2, [r4, 0x8]
- cmp r0, r2
- bne _080B4198
- b _080B436C
-_080B4198:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080B41A0:
- bl MoveMenuCursor
- strb r0, [r4, 0x9]
- bl sub_80B3A70
- b _080B436C
-_080B41AC:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B41B8
- b _080B4358
-_080B41B8:
- movs r0, 0x5
- bl PlaySE
- ldr r6, _080B426C
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldrb r1, [r6, 0x8]
- cmp r0, r1
- bne _080B41CE
- b _080B4350
-_080B41CE:
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldrb r1, [r6, 0x9]
- adds r0, r1, 0
- movs r2, 0x1
- bl sub_80B39D0
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xD
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrb r0, [r6, 0xC]
- cmp r0, 0
- bne _080B428C
- ldr r5, _080B4270
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl itemid_get_market_price
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- str r4, [r5]
- ldr r0, _080B4274
- movs r2, 0x92
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- adds r1, r4, 0
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- beq _080B42BA
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _080B4278
- bl itemid_copy_name
- ldr r4, _080B427C
- ldr r1, _080B4280
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B4284
- ldr r3, _080B4288
- adds r0, r7, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B426C: .4byte gUnknown_03000708
-_080B4270: .4byte gUnknown_020386A0
-_080B4274: .4byte gSaveBlock1
-_080B4278: .4byte gStringVar1
-_080B427C: .4byte gStringVar4
-_080B4280: .4byte gOtherText_HowManyYouWant
-_080B4284: .4byte sub_80B3EFC
-_080B4288: .4byte 0x0000c3e1
-_080B428C:
- ldr r5, _080B42C8
- ldr r4, _080B42CC
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 5
- adds r0, r4
- ldrh r1, [r0, 0x14]
- str r1, [r5]
- ldr r0, _080B42D0
- movs r2, 0x92
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- bne _080B42E0
-_080B42BA:
- ldr r1, _080B42D4
- ldr r2, _080B42D8
- ldr r3, _080B42DC
- adds r0, r7, 0
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B42C8: .4byte gUnknown_020386A0
-_080B42CC: .4byte gDecorations
-_080B42D0: .4byte gSaveBlock1
-_080B42D4: .4byte gOtherText_NotEnoughMoney
-_080B42D8: .4byte sub_80B3BD0
-_080B42DC: .4byte 0x0000c3e1
-_080B42E0:
- ldr r0, _080B4318
- ldrb r1, [r6, 0xB]
- ldrb r2, [r6, 0x9]
- adds r1, r2
- ldr r2, [r6, 0x4]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 5
- adds r2, r4, 0x1
- adds r1, r2
- bl StringCopy
- ldr r0, _080B431C
- ldr r1, [r5]
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- ldrb r0, [r6, 0xC]
- cmp r0, 0x1
- bne _080B4328
- ldr r0, _080B4320
- ldr r1, _080B4324
- bl StringExpandPlaceholders
- b _080B4330
- .align 2, 0
-_080B4318: .4byte gStringVar1
-_080B431C: .4byte gStringVar2
-_080B4320: .4byte gStringVar4
-_080B4324: .4byte gOtherText_ThatWillBe2
-_080B4328:
- ldr r0, _080B4340
- ldr r1, _080B4344
- bl StringExpandPlaceholders
-_080B4330:
- ldr r1, _080B4340
- ldr r2, _080B4348
- ldr r3, _080B434C
- mov r0, r8
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B4340: .4byte gStringVar4
-_080B4344: .4byte gOtherText_ThatWillBe3
-_080B4348: .4byte sub_80B3D38
-_080B434C: .4byte 0x0000c3e1
-_080B4350:
- adds r0, r7, 0
- bl sub_80B43F0
- b _080B436C
-_080B4358:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B436C
- movs r0, 0x5
- bl PlaySE
- mov r0, r8
- bl sub_80B43F0
-_080B436C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B40E8
-
- thumb_func_start sub_80B4378
-sub_80B4378: @ 80B4378
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B43E4
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- bl sub_80B3420
- movs r0, 0x6
- movs r1, 0x7
- bl sub_80B3764
- bl sub_80B37EC
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- bl sub_80B32A4
- ldr r1, _080B43E8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B43EC
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B43E4: .4byte gBG1TilemapBuffer
-_080B43E8: .4byte gTasks
-_080B43EC: .4byte sub_80B40E8
- thumb_func_end sub_80B4378
-
- thumb_func_start sub_80B43F0
-sub_80B43F0: @ 80B43F0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080B4428
- ldr r0, _080B442C
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080B4430
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B4434
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4428: .4byte gUnknown_0300485C
-_080B442C: .4byte sub_80B3050
-_080B4430: .4byte gTasks
-_080B4434: .4byte Task_ExitBuyMenu
- thumb_func_end sub_80B43F0
-
- thumb_func_start Task_ExitBuyMenu
-Task_ExitBuyMenu: @ 80B4438
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B4468
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B4462
- movs r0, 0
- movs r1, 0
- bl RemoveMoneyLabelObject
- bl BuyMenuFreeMemory
- ldr r0, _080B446C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B4462:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4468: .4byte gPaletteFade
-_080B446C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end Task_ExitBuyMenu
-
- thumb_func_start sub_80B4470
-sub_80B4470: @ 80B4470
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r0, _080B44C8
- mov r12, r0
- ldr r6, _080B44CC
- mov r8, r12
- adds r4, r6, 0
- ldr r1, _080B44D0
- mov r9, r1
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
-_080B4492:
- lsls r0, r2, 2
- mov r1, r8
- adds r3, r0, r1
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r3]
- ldrh r0, [r0]
- cmp r1, r0
- bne _080B44DC
- ldrh r0, [r3, 0x2]
- cmp r0, 0
- beq _080B44DC
- adds r2, r0, 0
- mov r4, r9
- adds r1, r7, r4
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- adds r0, r2, r0
- cmp r0, 0xFF
- ble _080B44D4
- movs r0, 0xFF
- strh r0, [r3, 0x2]
- b _080B451E
- .align 2, 0
-_080B44C8: .4byte gUnknown_02038724
-_080B44CC: .4byte gUnknown_03000708
-_080B44D0: .4byte gTasks
-_080B44D4:
- ldrh r0, [r1, 0xA]
- adds r0, r2, r0
- strh r0, [r3, 0x2]
- b _080B451E
-_080B44DC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x2
- bls _080B4492
- ldr r3, _080B452C
- ldrb r0, [r3]
- cmp r0, 0x2
- bhi _080B451E
- adds r2, r0, 0
- lsls r2, 2
- add r2, r12
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r1, 2
- add r1, r12
- ldr r2, _080B4530
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- strh r0, [r1, 0x2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_080B451E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B452C: .4byte gUnknown_02038730
-_080B4530: .4byte gTasks
- thumb_func_end sub_80B4470
-
- thumb_func_start ClearItemPurchases
-ClearItemPurchases: @ 80B4534
- push {lr}
- ldr r0, _080B4548
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080B454C
- movs r1, 0x3
- bl sub_80A9684
- pop {r0}
- bx r0
- .align 2, 0
-_080B4548: .4byte gUnknown_02038730
-_080B454C: .4byte gUnknown_02038724
- thumb_func_end ClearItemPurchases
-
- thumb_func_start CreatePokemartMenu
-CreatePokemartMenu: @ 80B4550
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- bl ClearItemPurchases
- ldr r0, _080B4570
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4570: .4byte EnableBothScriptContexts
- thumb_func_end CreatePokemartMenu
-
- thumb_func_start CreateDecorationShop1Menu
-CreateDecorationShop1Menu: @ 80B4574
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, _080B4590
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4590: .4byte EnableBothScriptContexts
- thumb_func_end CreateDecorationShop1Menu
-
- thumb_func_start CreateDecorationShop2Menu
-CreateDecorationShop2Menu: @ 80B4594
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, _080B45B0
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B45B0: .4byte EnableBothScriptContexts
- thumb_func_end CreateDecorationShop2Menu
-
- thumb_func_start sub_80B45B4
-sub_80B45B4: @ 80B45B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- ldr r2, _080B4648
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x10]
- subs r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r1, 0xA]
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B4678
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp]
- asrs r1, 16
- str r1, [sp, 0x4]
- lsls r0, r1, 1
- mov r1, r9
- adds r7, r0, r1
-_080B4608:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r2, [sp]
- adds r6, r2, r0
-_080B4614:
- ldr r0, [sp, 0xC]
- asrs r1, r0, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r2, 0
- ldrsh r1, [r7, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080B465C
- ldr r0, [sp, 0x4]
- cmp r0, 0x2
- beq _080B464C
- ldrh r0, [r7, 0x2]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080B465C
- .align 2, 0
-_080B4648: .4byte gTasks
-_080B464C:
- mov r1, r9
- ldrh r0, [r1]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080B465C:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4614
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4608
- b _080B4700
-_080B4678:
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- asrs r7, r1, 16
-_080B4688:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r1, [sp, 0x8]
- adds r6, r1, r0
-_080B4694:
- ldr r2, [sp, 0xC]
- asrs r1, r2, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x2
- subs r1, r7
- lsls r1, 1
- add r1, r9
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080B46E6
- cmp r7, 0x2
- beq _080B46D6
- movs r0, 0x1
- subs r0, r7
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080B46E6
-_080B46D6:
- mov r1, r9
- ldrh r0, [r1, 0x4]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080B46E6:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4694
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4688
-_080B4700:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B45B4
-
- thumb_func_start sub_80B4710
-sub_80B4710: @ 80B4710
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080B4738
- adds r4, r0, r1
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bhi _080B47AA
- lsls r0, 2
- ldr r1, _080B473C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4738: .4byte gUnknown_03004B28
-_080B473C: .4byte _080B4740
- .align 2, 0
-_080B4740:
- .4byte _080B475C
- .4byte _080B4764
- .4byte _080B476C
- .4byte _080B4774
- .4byte _080B477C
- .4byte _080B4790
- .4byte _080B47A0
-_080B475C:
- ldr r1, _080B4760
- b _080B4792
- .align 2, 0
-_080B4760: .4byte gUnknown_083CC714
-_080B4764:
- ldr r1, _080B4768
- b _080B4792
- .align 2, 0
-_080B4768: .4byte gUnknown_083CC71A
-_080B476C:
- ldr r1, _080B4770
- b _080B477E
- .align 2, 0
-_080B4770: .4byte gUnknown_083CC720
-_080B4774:
- ldr r1, _080B4778
- b _080B4792
- .align 2, 0
-_080B4778: .4byte gUnknown_083CC726
-_080B477C:
- ldr r1, _080B478C
-_080B477E:
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r3, 0
- bl sub_80B45B4
- b _080B47AA
- .align 2, 0
-_080B478C: .4byte gUnknown_083CC72C
-_080B4790:
- ldr r1, _080B479C
-_080B4792:
- adds r0, r3, 0
- movs r2, 0
- bl sub_80B45B4
- b _080B47AA
- .align 2, 0
-_080B479C: .4byte gUnknown_083CC732
-_080B47A0:
- ldr r1, _080B47D4
- adds r0, r3, 0
- movs r2, 0
- bl sub_80B45B4
-_080B47AA:
- ldrh r0, [r4]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r4]
- adds r5, r0, 0
- cmp r5, 0
- bne _080B47CE
- bl DrawWholeMapView
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strh r0, [r4, 0x2]
- strh r5, [r4, 0x6]
-_080B47CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B47D4: .4byte gUnknown_083CC738
- thumb_func_end sub_80B4710
-
- thumb_func_start sub_80B47D8
-sub_80B47D8: @ 80B47D8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080B481C
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B4820
- adds r7, r0, r1
- adds r0, r7, 0
- adds r0, 0x8
- adds r1, r7, 0
- adds r1, 0xA
- bl PlayerGetDestCoords
- movs r0, 0
- strh r0, [r7]
- strh r0, [r7, 0x2]
- strh r5, [r7, 0x4]
- adds r0, r4, 0
- bl _call_via_r6
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B481C: .4byte sub_80B4710
-_080B4820: .4byte gUnknown_03004B28
- thumb_func_end sub_80B47D8
-
- thumb_func_start sub_80B4824
-sub_80B4824: @ 80B4824
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80B47D8
- ldr r1, _080B4838
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080B4838: .4byte gUnknown_02038731
- thumb_func_end sub_80B4824
-
- thumb_func_start sub_80B483C
-sub_80B483C: @ 80B483C
- push {lr}
- ldr r0, _080B484C
- ldrb r0, [r0]
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B484C: .4byte gUnknown_02038731
- thumb_func_end sub_80B483C
-
- thumb_func_start sub_80B4850
-sub_80B4850: @ 80B4850
- push {lr}
- ldr r2, _080B4874
- ldr r0, _080B4878
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B487C
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- bne _080B487C
- movs r0, 0
- b _080B487E
- .align 2, 0
-_080B4874: .4byte gTasks
-_080B4878: .4byte gUnknown_02038731
-_080B487C:
- movs r0, 0x1
-_080B487E:
- pop {r1}
- bx r1
- thumb_func_end sub_80B4850
-
- thumb_func_start unref_sub_80B4884
-unref_sub_80B4884: @ 80B4884
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080B48A0
- ldr r2, _080B48A4
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B48A0: .4byte gSaveBlock1 + 0x3160
-_080B48A4: .4byte 0x01000298
- thumb_func_end unref_sub_80B4884
-
- thumb_func_start sub_80B48A8
-sub_80B48A8: @ 80B48A8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r3, _080B48E0
- movs r2, 0
- ldr r6, _080B48E4
- ldr r0, _080B48E8
- adds r4, r3, r0
-_080B48B6:
- adds r0, r3, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r6
- bls _080B48B6
- ldr r2, _080B48EC
- adds r1, r4, r2
- ldr r2, _080B48F0
- adds r0, r4, r2
- str r0, [r1]
- ldr r0, _080B48F4
- adds r1, r4, r0
- adds r2, 0x2D
- adds r0, r4, r2
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B48E0: .4byte gSaveBlock1 + 0x3160
-_080B48E4: .4byte 0x0000052f
-_080B48E8: .4byte 0xffffcea0
-_080B48EC: .4byte 0x0000316c
-_080B48F0: .4byte 0x0000361c
-_080B48F4: .4byte 0x00003170
- thumb_func_end sub_80B48A8
-
- thumb_func_start sub_80B48F8
-sub_80B48F8: @ 80B48F8
- push {r4-r7,lr}
- ldr r3, _080B4934
- ldr r1, _080B4938
- adds r4, r3, r1
- ldr r6, [r4]
- adds r1, 0x4
- adds r2, r3, r1
- ldr r7, [r2]
- movs r1, 0
- str r1, [r4]
- str r1, [r2]
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _080B493C
-_080B4914:
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, r5
- bls _080B4914
- ldr r1, _080B4938
- adds r0, r3, r1
- str r6, [r0]
- adds r1, 0x4
- adds r0, r3, r1
- str r7, [r0]
- adds r0, r2, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B4934: .4byte gSaveBlock1
-_080B4938: .4byte 0x0000316c
-_080B493C: .4byte 0x0000052b
- thumb_func_end sub_80B48F8
-
- thumb_func_start sub_80B4940
-sub_80B4940: @ 80B4940
- push {r4,lr}
- ldr r4, _080B4970
- ldr r1, _080B4974
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B4984
- ldr r2, _080B4978
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B4984
- ldr r1, _080B497C
- adds r0, r4, r1
- bl sub_80B48F8
- ldr r2, _080B4980
- adds r1, r4, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _080B4984
- movs r0, 0x1
- b _080B4986
- .align 2, 0
-_080B4970: .4byte gSaveBlock1
-_080B4974: .4byte 0x00003174
-_080B4978: .4byte 0x0000316a
-_080B497C: .4byte 0x00003160
-_080B4980: .4byte 0x0000368c
-_080B4984:
- movs r0, 0
-_080B4986:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B4940
-
- thumb_func_start GetBerryInfo
-GetBerryInfo: @ 80B498C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2B
- bne _080B49A8
- bl sub_80B4940
- cmp r0, 0
- beq _080B49A8
- ldr r0, _080B49A4
- b _080B49BE
- .align 2, 0
-_080B49A4: .4byte gSaveBlock1 + 0x3160
-_080B49A8:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2A
- bls _080B49B4
- movs r4, 0x1
-_080B49B4:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080B49C4
- adds r0, r1
-_080B49BE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B49C4: .4byte gBerries - 0x1C
- thumb_func_end GetBerryInfo
-
- thumb_func_start GetBerryTreeInfo
-GetBerryTreeInfo: @ 80B49C8
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _080B49D4
- adds r0, r1
- bx lr
- .align 2, 0
-_080B49D4: .4byte gSaveBlock1 + 0x1608
- thumb_func_end GetBerryTreeInfo
-
- thumb_func_start FieldObjectInteractionWaterBerryTree
-FieldObjectInteractionWaterBerryTree: @ 80B49D8
- push {lr}
- ldr r0, _080B4A00
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- adds r2, r0, 0
- ldrb r0, [r2, 0x1]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x2
- beq _080B4A14
- cmp r0, 0x2
- bgt _080B4A04
- cmp r0, 0x1
- beq _080B4A0E
- b _080B4A2A
- .align 2, 0
-_080B4A00: .4byte gSelectedMapObject
-_080B4A04:
- cmp r0, 0x3
- beq _080B4A1A
- cmp r0, 0x4
- beq _080B4A20
- b _080B4A2A
-_080B4A0E:
- ldrb r0, [r2, 0x5]
- movs r1, 0x10
- b _080B4A24
-_080B4A14:
- ldrb r0, [r2, 0x5]
- movs r1, 0x20
- b _080B4A24
-_080B4A1A:
- ldrb r0, [r2, 0x5]
- movs r1, 0x40
- b _080B4A24
-_080B4A20:
- ldrb r0, [r2, 0x5]
- movs r1, 0x80
-_080B4A24:
- orrs r0, r1
- strb r0, [r2, 0x5]
- b _080B4A2E
-_080B4A2A:
- movs r0, 0
- b _080B4A30
-_080B4A2E:
- movs r0, 0x1
-_080B4A30:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectInteractionWaterBerryTree
-
- thumb_func_start IsPlayerFacingPlantedBerryTree
-IsPlayerFacingPlantedBerryTree: @ 80B4A34
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, _080B4A5C
- cmp r0, r1
- bne _080B4A64
- ldr r0, _080B4A60
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetStageByBerryTreeId
- lsls r0, 24
- cmp r0, 0
- bne _080B4A64
- movs r0, 0x1
- b _080B4A66
- .align 2, 0
-_080B4A5C: .4byte BerryTreeScript
-_080B4A60: .4byte gSelectedMapObject
-_080B4A64:
- movs r0, 0
-_080B4A66:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingPlantedBerryTree
-
- thumb_func_start WaterBerryTree
-WaterBerryTree: @ 80B4A6C
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, _080B4A84
- cmp r0, r1
- bne _080B4A88
- bl FieldObjectInteractionWaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- b _080B4A8A
- .align 2, 0
-_080B4A84: .4byte BerryTreeScript
-_080B4A88:
- movs r0, 0
-_080B4A8A:
- pop {r1}
- bx r1
- thumb_func_end WaterBerryTree
-
- thumb_func_start sub_80B4A90
-sub_80B4A90: @ 80B4A90
- push {r4,lr}
- ldr r1, _080B4AB4
- ldr r0, _080B4AB8
- ldr r3, [r0]
- ldr r4, [r0, 0x4]
- movs r2, 0x7F
- movs r0, 0xD0
- lsls r0, 5
- adds r1, r0
-_080B4AA2:
- str r3, [r1]
- str r4, [r1, 0x4]
- subs r1, 0x8
- subs r2, 0x1
- cmp r2, 0
- bge _080B4AA2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4AB4: .4byte gSaveBlock1
-_080B4AB8: .4byte gUnknown_083CD780
- thumb_func_end sub_80B4A90
-
- thumb_func_start BerryTreeGrow
-BerryTreeGrow: @ 80B4ABC
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B4ACE
-_080B4ACA:
- movs r0, 0
- b _080B4B5A
-_080B4ACE:
- lsls r0, r1, 25
- lsrs r0, 25
- cmp r0, 0x5
- bhi _080B4B58
- lsls r0, 2
- ldr r1, _080B4AE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4AE0: .4byte _080B4AE4
- .align 2, 0
-_080B4AE4:
- .4byte _080B4ACA
- .4byte _080B4B04
- .4byte _080B4B04
- .4byte _080B4B04
- .4byte _080B4AFC
- .4byte _080B4B1C
-_080B4AFC:
- adds r0, r4, 0
- bl CalcBerryYield
- strb r0, [r4, 0x4]
-_080B4B04:
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- b _080B4B58
-_080B4B1C:
- ldrb r0, [r4, 0x5]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- subs r0, 0x20
- ands r1, r0
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0
- strb r0, [r4, 0x4]
- ldrb r2, [r4, 0x1]
- subs r0, 0x80
- ands r0, r2
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r4, 0x1]
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- strb r1, [r4, 0x5]
- cmp r1, 0xA
- bne _080B4B58
- ldr r0, _080B4B60
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
-_080B4B58:
- movs r0, 0x1
-_080B4B5A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B4B60: .4byte gUnknown_083CD780
- thumb_func_end BerryTreeGrow
-
- thumb_func_start BerryTreeTimeUpdate
-BerryTreeTimeUpdate: @ 80B4B64
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
-_080B4B6A:
- lsls r0, r2, 3
- ldr r1, _080B4BAC
- adds r4, r0, r1
- ldrb r0, [r4]
- adds r7, r2, 0x1
- cmp r0, 0
- beq _080B4BF8
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0
- beq _080B4BF8
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B4BF8
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- subs r1, r0
- cmp r6, r1
- blt _080B4BB4
- ldr r0, _080B4BB0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- b _080B4BF8
- .align 2, 0
-_080B4BAC: .4byte gSaveBlock1 + 0x1608
-_080B4BB0: .4byte gUnknown_083CD780
-_080B4BB4:
- adds r5, r6, 0
- cmp r5, 0
- beq _080B4BF8
- ldrh r1, [r4, 0x2]
- cmp r1, r5
- ble _080B4BC4
- subs r0, r1, r5
- b _080B4BF6
-_080B4BC4:
- subs r5, r1
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl BerryTreeGrow
- cmp r0, 0
- beq _080B4BF8
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x5
- bne _080B4BE8
- ldrh r0, [r4, 0x2]
- lsls r0, 2
- strh r0, [r4, 0x2]
-_080B4BE8:
- cmp r5, 0
- beq _080B4BF8
- ldrh r0, [r4, 0x2]
- adds r1, r0, 0
- cmp r0, r5
- ble _080B4BC4
- subs r0, r5
-_080B4BF6:
- strh r0, [r4, 0x2]
-_080B4BF8:
- adds r2, r7, 0
- cmp r2, 0x7F
- ble _080B4B6A
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BerryTreeTimeUpdate
-
- thumb_func_start PlantBerryTree
-PlantBerryTree: @ 80B4C04
- push {r4-r7,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r7, r3, 24
- bl GetBerryTreeInfo
- adds r6, r0, 0
- ldr r0, _080B4C68
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r6]
- str r1, [r6, 0x4]
- strb r4, [r6]
- adds r0, r4, 0
- bl GetStageDurationByBerryType
- strh r0, [r6, 0x2]
- movs r1, 0x7F
- ands r1, r5
- ldrb r2, [r6, 0x1]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- cmp r5, 0x5
- bne _080B4C56
- adds r0, r6, 0
- bl CalcBerryYield
- strb r0, [r6, 0x4]
- ldrh r0, [r6, 0x2]
- lsls r0, 2
- strh r0, [r6, 0x2]
-_080B4C56:
- cmp r7, 0
- bne _080B4C62
- ldrb r0, [r6, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r6, 0x1]
-_080B4C62:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4C68: .4byte gUnknown_083CD780
- thumb_func_end PlantBerryTree
-
- thumb_func_start RemoveBerryTree
-RemoveBerryTree: @ 80B4C6C
- lsls r0, 24
- ldr r1, _080B4C84
- lsrs r0, 21
- ldr r2, _080B4C88
- adds r1, r2
- adds r0, r1
- ldr r1, _080B4C8C
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r0]
- str r2, [r0, 0x4]
- bx lr
- .align 2, 0
-_080B4C84: .4byte gSaveBlock1
-_080B4C88: .4byte 0x00001608
-_080B4C8C: .4byte gUnknown_083CD780
- thumb_func_end RemoveBerryTree
-
- thumb_func_start GetBerryTypeByBerryTreeId
-GetBerryTypeByBerryTreeId: @ 80B4C90
- lsls r0, 24
- ldr r1, _080B4CA0
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4CA4
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B4CA0: .4byte gSaveBlock1
-_080B4CA4: .4byte 0x00001608
- thumb_func_end GetBerryTypeByBerryTreeId
-
- thumb_func_start GetStageByBerryTreeId
-GetStageByBerryTreeId: @ 80B4CA8
- lsls r0, 24
- ldr r1, _080B4CBC
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4CC0
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 25
- bx lr
- .align 2, 0
-_080B4CBC: .4byte gSaveBlock1
-_080B4CC0: .4byte 0x00001609
- thumb_func_end GetStageByBerryTreeId
-
- thumb_func_start ItemIdToBerryType
-ItemIdToBerryType: @ 80B4CC4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080B4CE0
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080B4CE4
- adds r0, r1, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- b _080B4CE6
- .align 2, 0
-_080B4CE0: .4byte 0xff7b0000
-_080B4CE4:
- movs r0, 0x1
-_080B4CE6:
- pop {r1}
- bx r1
- thumb_func_end ItemIdToBerryType
-
- thumb_func_start BerryTypeToItemId
-BerryTypeToItemId: @ 80B4CEC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080B4D08
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080B4D0C
- adds r0, r1, 0
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- b _080B4D0E
- .align 2, 0
-_080B4D08: .4byte 0xffff0000
-_080B4D0C:
- movs r0, 0x85
-_080B4D0E:
- pop {r1}
- bx r1
- thumb_func_end BerryTypeToItemId
-
- thumb_func_start GetBerryNameByBerryType
-GetBerryNameByBerryType: @ 80B4D14
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0xFF
- strb r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetBerryNameByBerryType
-
- thumb_func_start ResetBerryTreeSparkleFlag
-ResetBerryTreeSparkleFlag: @ 80B4D34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- ldrb r2, [r0, 0x1]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0, 0x1]
- pop {r0}
- bx r0
- thumb_func_end ResetBerryTreeSparkleFlag
-
- thumb_func_start BerryTreeGetNumStagesWatered
-BerryTreeGetNumStagesWatered: @ 80B4D4C
- push {lr}
- ldrb r2, [r0, 0x5]
- movs r0, 0x10
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r1, r0, 31
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080B4D66
- adds r1, 0x1
-_080B4D66:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _080B4D74
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080B4D74:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080B4D82
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080B4D82:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end BerryTreeGetNumStagesWatered
-
- thumb_func_start GetNumStagesWateredByBerryTreeId
-GetNumStagesWateredByBerryTreeId: @ 80B4D88
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- bl BerryTreeGetNumStagesWatered
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNumStagesWateredByBerryTreeId
-
- thumb_func_start CalcBerryYieldInternal
-CalcBerryYieldInternal: @ 80B4DA0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- bne _080B4DB6
- lsls r0, r6, 24
- b _080B4DEA
-_080B4DB6:
- subs r1, r0, r6
- subs r0, r2, 0x1
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- subs r4, r5
- adds r4, 0x1
- adds r1, r4, 0
- bl __umodsi3
- adds r5, r0
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0x1
- bls _080B4DE4
- lsrs r0, r5, 2
- adds r0, 0x1
- b _080B4DE6
-_080B4DE4:
- lsrs r0, r5, 2
-_080B4DE6:
- adds r0, r6
- lsls r0, 24
-_080B4DEA:
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYieldInternal
-
- thumb_func_start CalcBerryYield
-CalcBerryYield: @ 80B4DF4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- bl GetBerryInfo
- ldrb r6, [r0, 0xB]
- ldrb r5, [r0, 0xA]
- adds r0, r4, 0
- bl BerryTreeGetNumStagesWatered
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl CalcBerryYieldInternal
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYield
-
- thumb_func_start GetBerryCountByBerryTreeId
-GetBerryCountByBerryTreeId: @ 80B4E20
- lsls r0, 24
- ldr r1, _080B4E30
- lsrs r0, 21
- adds r0, r1
- ldr r1, _080B4E34
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B4E30: .4byte gSaveBlock1
-_080B4E34: .4byte 0x0000160c
- thumb_func_end GetBerryCountByBerryTreeId
-
- thumb_func_start GetStageDurationByBerryType
-GetStageDurationByBerryType: @ 80B4E38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 18
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GetStageDurationByBerryType
-
- thumb_func_start FieldObjectInteractionGetBerryTreeData
-FieldObjectInteractionGetBerryTreeData: @ 80B4E50
- push {r4-r6,lr}
- ldr r0, _080B4E8C
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- bl ResetBerryTreeSparkleFlag
- ldr r0, _080B4E90
- ldrb r0, [r0]
- ldr r2, _080B4E94
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8060234
- lsls r0, 24
- cmp r0, 0
- beq _080B4E9C
- ldr r1, _080B4E98
- movs r0, 0xFF
- strh r0, [r1]
- b _080B4EAA
- .align 2, 0
-_080B4E8C: .4byte gSelectedMapObject
-_080B4E90: .4byte gUnknown_0202E8DE
-_080B4E94: .4byte gSaveBlock1
-_080B4E98: .4byte gUnknown_0202E8CC
-_080B4E9C:
- ldr r4, _080B4ED4
- adds r0, r5, 0
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080B4EAA:
- ldr r4, _080B4ED8
- adds r0, r5, 0
- bl GetNumStagesWateredByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r4, _080B4EDC
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r1, _080B4EE0
- adds r0, r6, 0
- bl GetBerryNameByBerryType
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4ED4: .4byte gUnknown_0202E8CC
-_080B4ED8: .4byte gUnknown_0202E8CE
-_080B4EDC: .4byte gUnknown_0202E8D0
-_080B4EE0: .4byte gStringVar1
- thumb_func_end FieldObjectInteractionGetBerryTreeData
-
- thumb_func_start sub_80B4EE4
-sub_80B4EE4: @ 80B4EE4
- push {lr}
- ldr r0, _080B4EF0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080B4EF0: .4byte sub_80A68CC
- thumb_func_end sub_80B4EE4
-
- thumb_func_start FieldObjectInteractionPlantBerryTree
-FieldObjectInteractionPlantBerryTree: @ 80B4EF4
- push {r4,lr}
- ldr r0, _080B4F24
- ldrh r0, [r0]
- bl ItemIdToBerryType
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B4F28
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl PlantBerryTree
- bl FieldObjectInteractionGetBerryTreeData
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F24: .4byte word_203855E
-_080B4F28: .4byte gSelectedMapObject
- thumb_func_end FieldObjectInteractionPlantBerryTree
-
- thumb_func_start FieldObjectInteractionPickBerryTree
-FieldObjectInteractionPickBerryTree: @ 80B4F2C
- push {r4-r6,lr}
- ldr r0, _080B4F70
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080B4F74
- bl BerryTypeToItemId
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F70: .4byte gSelectedMapObject
-_080B4F74: .4byte gUnknown_0202E8CC
- thumb_func_end FieldObjectInteractionPickBerryTree
-
- thumb_func_start FieldObjectInteractionRemoveBerryTree
-FieldObjectInteractionRemoveBerryTree: @ 80B4F78
- push {lr}
- ldr r0, _080B4F9C
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl RemoveBerryTree
- ldr r0, _080B4FA0
- ldrb r0, [r0]
- ldr r2, _080B4FA4
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8060288
- pop {r0}
- bx r0
- .align 2, 0
-_080B4F9C: .4byte gSelectedMapObject
-_080B4FA0: .4byte gUnknown_0202E8DE
-_080B4FA4: .4byte gSaveBlock1
- thumb_func_end FieldObjectInteractionRemoveBerryTree
-
- thumb_func_start PlayerHasBerries
-PlayerHasBerries: @ 80B4FA8
- push {lr}
- movs r0, 0x4
- bl IsBagPocketNonEmpty
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end PlayerHasBerries
-
- thumb_func_start ResetBerryTreeSparkleFlags
-ResetBerryTreeSparkleFlags: @ 80B4FB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetCameraCoords
- mov r0, sp
- ldrh r2, [r0]
- ldrh r1, [r4]
- adds r1, 0x3
- adds r3, r2, 0
- adds r3, 0xE
- lsls r1, 16
- movs r5, 0x80
- lsls r5, 12
- adds r0, r1, r5
- lsrs r0, 16
- mov r10, r0
- mov r5, sp
- lsls r2, 16
- asrs r2, 16
- mov r9, r2
- ldr r4, _080B5050
- lsls r3, 16
- asrs r3, 16
- mov r8, r3
- asrs r7, r1, 16
- movs r6, 0xF
-_080B4FFC:
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _080B5038
- ldrb r0, [r4, 0x6]
- cmp r0, 0xC
- bne _080B5038
- ldrh r0, [r4, 0x10]
- strh r0, [r5]
- ldrh r0, [r4, 0x12]
- mov r1, sp
- strh r0, [r1, 0x2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r9, r1
- bgt _080B5038
- cmp r1, r8
- bgt _080B5038
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080B5038
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- bgt _080B5038
- ldrb r0, [r4, 0x1D]
- bl ResetBerryTreeSparkleFlag
-_080B5038:
- adds r4, 0x24
- subs r6, 0x1
- cmp r6, 0
- bge _080B4FFC
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5050: .4byte gMapObjects
- thumb_func_end ResetBerryTreeSparkleFlags
-
- thumb_func_start sub_80B5054
-sub_80B5054: @ 80B5054
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B5098
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B50A4
- ldr r1, _080B509C
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B50A0
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B50A6
- .align 2, 0
-_080B5098: .4byte sub_80B52B4
-_080B509C: .4byte gScriptResult
-_080B50A0: .4byte gMultichoiceLists
-_080B50A4:
- movs r0, 0
-_080B50A6:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5054
-
- thumb_func_start sub_80B50B0
-sub_80B50B0: @ 80B50B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B5100
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B510C
- ldr r1, _080B5104
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B5108
- lsls r0, r5, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B510E
- .align 2, 0
-_080B5100: .4byte sub_80B52B4
-_080B5104: .4byte gScriptResult
-_080B5108: .4byte gMultichoiceLists
-_080B510C:
- movs r0, 0
-_080B510E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B50B0
-
- thumb_func_start GetStringWidthInTilesForScriptMenu
-GetStringWidthInTilesForScriptMenu: @ 80B511C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080B5134
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r0, r1, 3
- pop {r1}
- bx r1
- .align 2, 0
-_080B5134: .4byte gWindowConfig_81E6CE4
- thumb_func_end GetStringWidthInTilesForScriptMenu
-
- thumb_func_start sub_80B5138
-sub_80B5138: @ 80B5138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r3
- ldr r3, [sp, 0x34]
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- mov r1, r10
- ldr r0, [r1]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1
- cmp r4, r8
- bcs _080B5198
-_080B517A:
- lsls r0, r4, 3
- add r0, r10
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bcs _080B518E
- adds r5, r0, 0
-_080B518E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080B517A
-_080B5198:
- lsls r0, r5, 24
- lsrs r7, r0, 24
- mov r1, r9
- adds r0, r7, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1D
- bls _080B51B8
- mov r0, r9
- adds r0, 0x1D
- subs r0, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0x1D
-_080B51B8:
- mov r1, r8
- lsls r0, r1, 1
- adds r0, 0x1
- ldr r1, [sp, 0x8]
- lsls r4, r1, 24
- asrs r4, 24
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- adds r2, r7, 0
- adds r3, r4, 0
- bl MenuDrawTextWindow
- mov r6, r9
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r10
- bl PrintMenuItems
- ldr r0, [sp, 0x10]
- str r0, [sp]
- mov r1, r9
- subs r0, r7, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl InitMenu
- ldr r0, [sp, 0xC]
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_80B5230
- 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_80B5138
-
- thumb_func_start sub_80B5230
-sub_80B5230: @ 80B5230
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x1C]
- mov r8, r0
- ldr r0, [sp, 0x20]
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B5298
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B529C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- ldr r3, [sp]
- strh r3, [r1, 0xE]
- mov r0, r8
- strh r0, [r1, 0x10]
- mov r0, r9
- cmp r0, 0x3
- bls _080B52A0
- movs r0, 0x1
- b _080B52A2
- .align 2, 0
-_080B5298: .4byte sub_80B52B4
-_080B529C: .4byte gTasks
-_080B52A0:
- movs r0, 0
-_080B52A2:
- strh r0, [r1, 0x12]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5230
-
- thumb_func_start sub_80B52B4
-sub_80B52B4: @ 80B52B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B52E0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B534E
- ldr r2, _080B52E4
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0
- bne _080B52E8
- bl ProcessMenuInputNoWrap
- b _080B52EC
- .align 2, 0
-_080B52E0: .4byte gPaletteFade
-_080B52E4: .4byte gTasks
-_080B52E8:
- bl ProcessMenuInput
-_080B52EC:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B534E
- adds r0, 0x1
- cmp r1, r0
- bne _080B5328
- ldr r0, _080B5320
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B534E
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5324
- movs r0, 0x7F
- strh r0, [r1]
- b _080B532C
- .align 2, 0
-_080B5320: .4byte gTasks
-_080B5324: .4byte gScriptResult
-_080B5328:
- ldr r0, _080B5354
- strh r1, [r0]
-_080B532C:
- bl sub_8072DEC
- ldr r0, _080B5358
- adds r3, r5, r4
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B534E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5354: .4byte gScriptResult
-_080B5358: .4byte gTasks
- thumb_func_end sub_80B52B4
-
- thumb_func_start Multichoice
-Multichoice: @ 80B535C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B539C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B53A8
- ldr r1, _080B53A0
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B53A4
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B53B4
- movs r0, 0x1
- b _080B53AA
- .align 2, 0
-_080B539C: .4byte sub_80B52B4
-_080B53A0: .4byte gScriptResult
-_080B53A4: .4byte gMultichoiceLists
-_080B53A8:
- movs r0, 0
-_080B53AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Multichoice
-
- thumb_func_start sub_80B53B4
-sub_80B53B4: @ 80B53B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r3, 0
- ldr r3, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- ldr r0, [r7]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r6
- bcs _080B5408
-_080B53EA:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _080B53FE
- adds r4, r0, 0
-_080B53FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080B53EA
-_080B5408:
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r6, 1
- adds r0, 0x1
- mov r1, r9
- lsls r5, r1, 24
- asrs r5, 24
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- adds r2, r6, 0
- adds r3, r7, 0
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- mov r1, r8
- subs r0, r4, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r2, r9
- adds r3, r6, 0
- bl InitMenu
- mov r0, r10
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B53B4
-
- thumb_func_start yes_no_box
-yes_no_box: @ 80B546C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r6, _080B54B4
- adds r0, r6, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B54C0
- ldr r1, _080B54B8
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl DisplayYesNoMenu
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B54BC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x1
- b _080B54C2
- .align 2, 0
-_080B54B4: .4byte task_yes_no_maybe
-_080B54B8: .4byte gScriptResult
-_080B54BC: .4byte gTasks
-_080B54C0:
- movs r0, 0
-_080B54C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end yes_no_box
-
- thumb_func_start unref_sub_80B54C8
-unref_sub_80B54C8: @ 80B54C8
- push {lr}
- ldr r0, _080B54D8
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080B54DC
- movs r0, 0x1
- b _080B54DE
- .align 2, 0
-_080B54D8: .4byte gScriptResult
-_080B54DC:
- movs r0, 0
-_080B54DE:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B54C8
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80B54E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B5504
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080B5508
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B556A
- .align 2, 0
-_080B5504: .4byte gTasks
-_080B5508:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B552C
- cmp r1, r0
- bgt _080B5524
- subs r0, 0x1
- cmp r1, r0
- beq _080B556A
- b _080B5542
-_080B5524:
- cmp r1, 0
- beq _080B553C
- cmp r1, 0x1
- bne _080B5542
-_080B552C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5538
- movs r0, 0
- b _080B5540
- .align 2, 0
-_080B5538: .4byte gScriptResult
-_080B553C:
- ldr r1, _080B5570
- movs r0, 0x1
-_080B5540:
- strh r0, [r1]
-_080B5542:
- ldr r0, _080B5574
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- ldrb r1, [r1, 0xA]
- adds r2, r0, 0x6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x5
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B556A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5570: .4byte gScriptResult
-_080B5574: .4byte gTasks
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r5, r4, 24
- movs r7, 0
- ldr r0, _080B55B8
- mov r10, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B55BC
- movs r0, 0
- b _080B5670
- .align 2, 0
-_080B55B8: .4byte sub_80B5684
-_080B55BC:
- ldr r1, _080B5620
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _080B5624
- lsls r4, r6, 3
- adds r0, r4, r0
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0
- bl sub_807274C
- mov r0, r10
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r6, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- cmp r0, r5
- bcc _080B55FE
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5606
-_080B55FE:
- cmp r5, 0x1
- beq _080B5606
- cmp r1, r5
- bne _080B5628
-_080B5606:
- ldr r0, _080B5624
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x1
- mov r2, r8
- lsls r1, r2, 24
- b _080B563A
- .align 2, 0
-_080B5620: .4byte gScriptResult
-_080B5624: .4byte gMultichoiceLists
-_080B5628:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x3
- mov r3, r8
- lsls r1, r3, 24
-_080B563A:
- asrs r1, 24
- adds r1, r0
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r5, 0
- bl sub_807288C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B5680
- mov r3, r10
- lsls r1, r3, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- mov r2, r9
- strh r2, [r1, 0x8]
- mov r3, r8
- strh r3, [r1, 0xA]
- add r0, r9
- adds r0, 0x2
- strh r0, [r1, 0xC]
- strh r7, [r1, 0xE]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r1, 0x10]
- movs r0, 0x1
-_080B5670:
- 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
-_080B5680: .4byte gTasks
- thumb_func_end sub_80B5578
-
- thumb_func_start sub_80B5684
-sub_80B5684: @ 80B5684
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80727CC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B56F4
- adds r0, 0x1
- cmp r1, r0
- bne _080B56CC
- ldr r2, _080B56C4
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x10
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _080B56F4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B56C8
- movs r0, 0x7F
- strh r0, [r1]
- b _080B56D2
- .align 2, 0
-_080B56C4: .4byte gTasks
-_080B56C8: .4byte gScriptResult
-_080B56CC:
- ldr r0, _080B56FC
- strh r1, [r0]
- lsls r4, r5, 2
-_080B56D2:
- bl sub_8072DEC
- ldr r0, _080B5700
- adds r3, r4, r5
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B56F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56FC: .4byte gScriptResult
-_080B5700: .4byte gTasks
- thumb_func_end sub_80B5684
-
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 80B5704
- push {lr}
- ldr r0, _080B5724
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B572C
- ldr r1, _080B5728
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080B572E
- .align 2, 0
-_080B5724: .4byte sub_80B52B4
-_080B5728: .4byte gScriptResult
-_080B572C:
- movs r0, 0
-_080B572E:
- pop {r1}
- bx r1
- thumb_func_end sp109_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80B5734
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080B5758
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080B575C
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bls _080B5760
- lsls r0, r4, 24
- lsrs r5, r0, 24
- b _080B5762
- .align 2, 0
-_080B5758: .4byte gPCText_PlayersPC
-_080B575C: .4byte gPCText_SomeonesPC
-_080B5760:
- movs r5, 0x8
-_080B5762:
- ldr r0, _080B5798
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57A4
- movs r7, 0x4
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r0, _080B579C
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _080B57A0
- movs r1, 0x1
- movs r2, 0x7
- bl MenuPrint
- b _080B57C0
- .align 2, 0
-_080B5798: .4byte 0x00000804
-_080B579C: .4byte gPCText_HallOfFame
-_080B57A0: .4byte gPCText_LogOff
-_080B57A4:
- movs r7, 0x3
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r0, _080B57DC
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
-_080B57C0:
- adds r6, r4, 0
- ldr r0, _080B57E0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57E8
- ldr r0, _080B57E4
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- b _080B57F2
- .align 2, 0
-_080B57DC: .4byte gPCText_LogOff
-_080B57E0: .4byte 0x0000084b
-_080B57E4: .4byte gPCText_LanettesPC
-_080B57E8:
- ldr r0, _080B5830
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
-_080B57F2:
- ldr r0, _080B5834
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- movs r4, 0
- str r4, [sp]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- adds r3, r7, 0
- bl InitMenu
- lsls r2, r6, 24
- lsrs r2, 24
- lsls r3, r7, 1
- adds r3, 0x1
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5830: .4byte gPCText_SomeonesPC
-_080B5834: .4byte gPCText_PlayersPC
- thumb_func_end CreatePCMenu
-
- thumb_func_start sub_80B5838
-sub_80B5838: @ 80B5838
- push {lr}
- bl MenuDisplayMessageBox
- ldr r0, _080B584C
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080B584C: .4byte gUnknown_081A0A01
- thumb_func_end sub_80B5838
-
- thumb_func_start task_picbox
-task_picbox: @ 80B5850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5874
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B58BE
- cmp r0, 0x1
- bgt _080B5878
- cmp r0, 0
- beq _080B5894
- b _080B58BE
- .align 2, 0
-_080B5874: .4byte gTasks
-_080B5878:
- cmp r0, 0x2
- beq _080B5882
- cmp r0, 0x3
- beq _080B58A0
- b _080B58BE
-_080B5882:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B589C
- adds r0, r1
- bl sub_8085C44
-_080B5894:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B58BE
- .align 2, 0
-_080B589C: .4byte gSprites
-_080B58A0:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080B58BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start sub_80B58C4
-sub_80B58C4: @ 80B58C4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _080B595C
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B596C
- adds r2, r6, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B5960
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r7, [r4, 0xA]
- lsls r1, r6, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r5, 19
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl sub_8085AD4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- strh r6, [r4, 0xE]
- strh r5, [r4, 0x10]
- ldr r3, _080B5964
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080B5968
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _080B596E
- .align 2, 0
-_080B595C: .4byte task_picbox
-_080B5960: .4byte gTasks
-_080B5964: .4byte gSprites
-_080B5968: .4byte SpriteCallbackDummy
-_080B596C:
- movs r0, 0
-_080B596E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B58C4
-
- thumb_func_start picbox_close
-picbox_close: @ 80B5974
- push {lr}
- ldr r0, _080B5998
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B59A4
- ldr r0, _080B599C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, _080B59A0
- b _080B59A6
- .align 2, 0
-_080B5998: .4byte task_picbox
-_080B599C: .4byte gTasks
-_080B59A0: .4byte sub_80B59AC
-_080B59A4:
- movs r0, 0
-_080B59A6:
- pop {r1}
- bx r1
- thumb_func_end picbox_close
-
- thumb_func_start sub_80B59AC
-sub_80B59AC: @ 80B59AC
- push {lr}
- ldr r0, _080B59C0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B59C4
- movs r0, 0
- b _080B59C6
- .align 2, 0
-_080B59C0: .4byte task_picbox
-_080B59C4:
- movs r0, 0x1
-_080B59C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B59AC
-
- thumb_func_start DoNamingScreen
-DoNamingScreen: @ 80B59CC
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x14]
- ldr r5, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- str r4, [sp]
- str r5, [sp, 0x4]
- bl AddNamingScreenTask
- ldr r0, _080B59F8
- bl SetMainCallback2
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B59F8: .4byte C2_NamingScreen
- thumb_func_end DoNamingScreen
-
- thumb_func_start C2_NamingScreen
-C2_NamingScreen: @ 80B59FC
- push {lr}
- ldr r0, _080B5A14
- ldr r1, _080B5A18
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _080B5A96
- lsls r0, 2
- ldr r1, _080B5A1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B5A14: .4byte gMain
-_080B5A18: .4byte 0x0000043c
-_080B5A1C: .4byte _080B5A20
- .align 2, 0
-_080B5A20:
- .4byte _080B5A40
- .4byte _080B5A4A
- .4byte _080B5A50
- .4byte _080B5A56
- .4byte _080B5A5C
- .4byte _080B5A62
- .4byte _080B5A68
- .4byte _080B5A84
-_080B5A40:
- bl NamingScreen_TurnOffScreen
- bl NamingScreen_Init
- b _080B5A6C
-_080B5A4A:
- bl NamingScreen_ClearVram
- b _080B5A6C
-_080B5A50:
- bl NamingScreen_ClearOam
- b _080B5A6C
-_080B5A56:
- bl NamingScreen_SetUpVideoRegs
- b _080B5A6C
-_080B5A5C:
- bl sub_80B5DC8
- b _080B5A6C
-_080B5A62:
- bl NamingScreen_ResetObjects
- b _080B5A6C
-_080B5A68:
- bl sub_80B5DFC
-_080B5A6C:
- ldr r1, _080B5A7C
- ldr r0, _080B5A80
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080B5A96
- .align 2, 0
-_080B5A7C: .4byte gMain
-_080B5A80: .4byte 0x0000043c
-_080B5A84:
- bl sub_80B5E20
- bl sub_80B5E3C
- bl sub_80B5C04
- ldr r0, _080B5A9C
- bl SetMainCallback2
-_080B5A96:
- pop {r0}
- bx r0
- .align 2, 0
-_080B5A9C: .4byte sub_80B5AA0
- thumb_func_end C2_NamingScreen
-
- thumb_func_start sub_80B5AA0
-sub_80B5AA0: @ 80B5AA0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80B5AA0
-
- thumb_func_start sub_80B5AB8
-sub_80B5AB8: @ 80B5AB8
- push {r4,lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _080B5B00
- ldr r4, _080B5B04
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- ldr r2, _080B5B08
- ldrh r1, [r2]
- ldr r3, _080B5B0C
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r2]
- ldrh r1, [r4, 0x8]
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r2]
- ands r3, r0
- strh r3, [r2]
- ldrh r0, [r2]
- ldrh r1, [r4, 0xA]
- orrs r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5B00: .4byte REG_BG1VOFS
-_080B5B04: .4byte 0x02000000
-_080B5B08: .4byte REG_BG1CNT
-_080B5B0C: .4byte 0x0000fffc
- thumb_func_end sub_80B5AB8
-
- thumb_func_start AddNamingScreenTask
-AddNamingScreenTask: @ 80B5B10
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r7, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080B5B74
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080B5B78
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r6, [r4, 0xC]
- lsrs r0, r7, 16
- strh r0, [r4, 0xE]
- strh r7, [r4, 0x10]
- adds r0, r4, 0
- adds r0, 0x12
- mov r1, r9
- bl StoreWordInTwoHalfwords
- adds r4, 0x16
- adds r0, r4, 0
- ldr r1, [sp, 0x20]
- bl StoreWordInTwoHalfwords
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5B74: .4byte NamingScreenDummyTask
-_080B5B78: .4byte gTasks
- thumb_func_end AddNamingScreenTask
-
- thumb_func_start GetNamingScreenParameters
-GetNamingScreenParameters: @ 80B5B7C
- push {r4-r6,lr}
- ldr r0, _080B5BD8
- bl FindTaskIdByFunc
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080B5BDC
- adds r4, r0
- ldr r6, _080B5BE0
- ldrh r0, [r4, 0x8]
- strb r0, [r6, 0x1]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x3E]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- adds r0, 0x40
- strh r1, [r0]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r0, 16
- ldrh r1, [r4, 0x10]
- orrs r0, r1
- str r0, [r6, 0x44]
- adds r0, r4, 0
- adds r0, 0x12
- adds r1, r6, 0
- adds r1, 0x38
- bl LoadWordFromTwoHalfwords
- adds r4, 0x16
- adds r1, r6, 0
- adds r1, 0x48
- adds r0, r4, 0
- bl LoadWordFromTwoHalfwords
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5BD8: .4byte NamingScreenDummyTask
-_080B5BDC: .4byte gTasks
-_080B5BE0: .4byte 0x02000000
- thumb_func_end GetNamingScreenParameters
-
- thumb_func_start NamingScreenDummyTask
-NamingScreenDummyTask: @ 80B5BE4
- bx lr
- thumb_func_end NamingScreenDummyTask
-
- thumb_func_start NamingScreen_TurnOffScreen
-NamingScreen_TurnOffScreen: @ 80B5BE8
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end NamingScreen_TurnOffScreen
-
- thumb_func_start sub_80B5C04
-sub_80B5C04: @ 80B5C04
- push {r4,lr}
- ldr r0, _080B5C3C
- bl SetVBlankCallback
- ldr r3, _080B5C40
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _080B5C44
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _080B5C48
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5C3C: .4byte sub_80B5AB8
-_080B5C40: .4byte 0x04000208
-_080B5C44: .4byte 0x04000200
-_080B5C48: .4byte REG_DISPSTAT
- thumb_func_end sub_80B5C04
-
- thumb_func_start NamingScreen_ClearVram
-NamingScreen_ClearVram: @ 80B5C4C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _080B5C98
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080B5C9C
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080B5C6A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _080B5C6A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5C98: .4byte 0x040000d4
-_080B5C9C: .4byte 0x81000800
- thumb_func_end NamingScreen_ClearVram
-
- thumb_func_start NamingScreen_ClearOam
-NamingScreen_ClearOam: @ 80B5CA0
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080B5CBC
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080B5CC0
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_080B5CBC: .4byte 0x040000d4
-_080B5CC0: .4byte 0x81000200
- thumb_func_end NamingScreen_ClearOam
-
- thumb_func_start NamingScreen_SetUpVideoRegs
-NamingScreen_SetUpVideoRegs: @ 80B5CC4
- push {r4,r5,lr}
- ldr r5, _080B5D2C
- movs r1, 0
- strh r1, [r5]
- ldr r2, _080B5D30
- strh r1, [r2]
- ldr r3, _080B5D34
- strh r1, [r3]
- ldr r4, _080B5D38
- strh r1, [r4]
- ldr r0, _080B5D3C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r1, 0xF8
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _080B5D40
- adds r0, r1, 0
- strh r0, [r2]
- ldr r2, _080B5D44
- adds r0, r2, 0
- strh r0, [r3]
- ldr r1, _080B5D48
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, _080B5D4C
- movs r2, 0xC8
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080B5D50
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5D2C: .4byte REG_BG0CNT
-_080B5D30: .4byte REG_BG1CNT
-_080B5D34: .4byte REG_BG2CNT
-_080B5D38: .4byte REG_BG3CNT
-_080B5D3C: .4byte REG_BG0HOFS
-_080B5D40: .4byte 0x00001c01
-_080B5D44: .4byte 0x00001d0a
-_080B5D48: .4byte 0x00001e03
-_080B5D4C: .4byte REG_BLDCNT
-_080B5D50: .4byte 0x0000080c
- thumb_func_end NamingScreen_SetUpVideoRegs
-
- thumb_func_start NamingScreen_Init
-NamingScreen_Init: @ 80B5D54
- push {r4-r6,lr}
- bl GetNamingScreenParameters
- ldr r4, _080B5DBC
- movs r0, 0
- strb r0, [r4]
- movs r2, 0
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- movs r1, 0x1
- movs r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r4, 0xA]
- strb r2, [r4, 0xC]
- strb r1, [r4, 0xD]
- ldr r1, _080B5DC0
- ldrb r0, [r4, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4, 0x34]
- ldrb r1, [r0, 0x4]
- strb r1, [r4, 0xE]
- ldrb r1, [r0, 0x1]
- lsrs r1, 1
- movs r0, 0xE
- subs r0, r1
- strh r0, [r4, 0x2]
- ldr r6, _080B5DC4
- ldrh r0, [r6]
- strh r0, [r4, 0x3C]
- adds r5, r4, 0
- adds r5, 0x11
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x10
- bl memset
- ldr r0, [r4, 0x34]
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B5DB2
- ldr r1, [r4, 0x38]
- adds r0, r5, 0
- bl StringCopy
-_080B5DB2:
- movs r0, 0x10
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5DBC: .4byte 0x02000000
-_080B5DC0: .4byte gUnknown_083CE398
-_080B5DC4: .4byte gKeyRepeatStartDelay
- thumb_func_end NamingScreen_Init
-
- thumb_func_start sub_80B5DC8
-sub_80B5DC8: @ 80B5DC8
- push {r4,lr}
- ldr r4, _080B5DE0
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5DE0: .4byte gWindowConfig_81E6E88
- thumb_func_end sub_80B5DC8
-
- thumb_func_start NamingScreen_ResetObjects
-NamingScreen_ResetObjects: @ 80B5DE4
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- thumb_func_end NamingScreen_ResetObjects
-
- thumb_func_start sub_80B5DFC
-sub_80B5DFC: @ 80B5DFC
- push {lr}
- bl sub_80B7558
- bl sub_80B753C
- bl sub_80B7680
- bl sub_80B75C4
- bl sub_80B7794
- bl sub_80B78A8
- bl sub_80B7960
- pop {r0}
- bx r0
- thumb_func_end sub_80B5DFC
-
- thumb_func_start sub_80B5E20
-sub_80B5E20: @ 80B5E20
- push {lr}
- bl sub_80B6774
- bl sub_80B6A80
- bl sub_80B6CA8
- bl sub_80B6D04
- bl sub_80B6E44
- pop {r0}
- bx r0
- thumb_func_end sub_80B5E20
-
- thumb_func_start sub_80B5E3C
-sub_80B5E3C: @ 80B5E3C
- push {lr}
- bl sub_80B61D8
- bl sub_80B6438
- bl sub_80B5E50
- pop {r0}
- bx r0
- thumb_func_end sub_80B5E3C
-
- thumb_func_start sub_80B5E50
-sub_80B5E50: @ 80B5E50
- push {r4,lr}
- ldr r4, _080B5E6C
- adds r0, r4, 0
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5E6C: .4byte sub_80B5E70
- thumb_func_end sub_80B5E50
-
- thumb_func_start sub_80B5E70
-sub_80B5E70: @ 80B5E70
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _080B5E9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _080B5EA0
- ldr r5, _080B5EA4
-_080B5E82:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B5E82
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5E9C: .4byte gUnknown_083CE218
-_080B5EA0: .4byte 0x02000000
-_080B5EA4: .4byte gTasks
- thumb_func_end sub_80B5E70
-
- thumb_func_start sub_80B5EA8
-sub_80B5EA8: @ 80B5EA8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080B5ECC
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080B5ECC: .4byte 0x02000000
- thumb_func_end sub_80B5EA8
-
- thumb_func_start sub_80B5ED0
-sub_80B5ED0: @ 80B5ED0
- push {lr}
- ldr r0, _080B5EF8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B5EF2
- movs r0, 0x1
- bl sub_80B6210
- movs r0, 0x1
- bl sub_80B68D8
- ldr r1, _080B5EFC
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080B5EF2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5EF8: .4byte gPaletteFade
-_080B5EFC: .4byte 0x02000000
- thumb_func_end sub_80B5ED0
-
- thumb_func_start sub_80B5F00
-sub_80B5F00: @ 80B5F00
- push {lr}
- bl sub_80B60B8
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80B5F00
-
- thumb_func_start sub_80B5F10
-sub_80B5F10: @ 80B5F10
- push {lr}
- bl sub_80B6938
- lsls r0, 24
- cmp r0, 0
- beq _080B5F2C
- movs r0, 0x1
- bl sub_80B6210
- bl sub_80B6878
- ldr r1, _080B5F34
- movs r0, 0x2
- strb r0, [r1]
-_080B5F2C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5F34: .4byte 0x02000000
- thumb_func_end sub_80B5F10
-
- thumb_func_start sub_80B5F38
-sub_80B5F38: @ 80B5F38
- push {lr}
- movs r0, 0
- bl sub_80B6210
- bl sub_80B6B14
- bl sub_80B65F0
- movs r0, 0x1
- bl sub_80B6888
- movs r0, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
- movs r0, 0x6
- bl PlaySE
- ldr r1, _080B5F6C
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5F6C: .4byte 0x02000000
- thumb_func_end sub_80B5F38
-
- thumb_func_start sub_80B5F70
-sub_80B5F70: @ 80B5F70
- push {r4,r5,lr}
- sub sp, 0x4
- bl sub_80B6610
- lsls r0, 24
- cmp r0, 0
- beq _080B5FDC
- ldr r4, _080B5FE8
- movs r0, 0x2
- strb r0, [r4]
- ldrb r0, [r4, 0xE]
- adds r0, 0x1
- strb r0, [r4, 0xE]
- ldrb r0, [r4, 0xE]
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0xE]
- bl sub_80B7614
- bl sub_80B77F8
- movs r0, 0x1
- bl sub_80B6210
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl sub_80B6858
- ldrb r0, [r4, 0xE]
- cmp r0, 0x2
- bne _080B5FC8
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B5FC8
- mov r1, sp
- movs r0, 0x5
- strh r0, [r1]
-_080B5FC8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80B680C
- movs r0, 0
- bl sub_80B6888
-_080B5FDC:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5FE8: .4byte 0x02000000
- thumb_func_end sub_80B5F70
-
- thumb_func_start pokemon_store
-pokemon_store: @ 80B5FEC
- push {r4,lr}
- bl sub_80B74B0
- movs r0, 0
- bl sub_80B6210
- movs r0, 0
- bl sub_80B68D8
- movs r0, 0x3
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
- ldr r0, _080B6030
- ldr r4, _080B6034
- ldrh r1, [r4, 0x3C]
- strh r1, [r0]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _080B6038
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _080B6038
- bl sub_80B74FC
- movs r0, 0x7
- strb r0, [r4]
- movs r0, 0
- b _080B6040
- .align 2, 0
-_080B6030: .4byte gKeyRepeatStartDelay
-_080B6034: .4byte 0x02000000
-_080B6038:
- ldr r1, _080B6048
- movs r0, 0x8
- strb r0, [r1]
- movs r0, 0x1
-_080B6040:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6048: .4byte 0x02000000
- thumb_func_end pokemon_store
-
- thumb_func_start sub_80B604C
-sub_80B604C: @ 80B604C
- push {lr}
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _080B6060
- ldr r1, _080B6068
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080B6060:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B6068: .4byte 0x02000000
- thumb_func_end sub_80B604C
-
- thumb_func_start sub_80B606C
-sub_80B606C: @ 80B606C
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080B6090
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080B6090: .4byte 0x02000000
- thumb_func_end sub_80B606C
-
- thumb_func_start sub_80B6094
-sub_80B6094: @ 80B6094
- push {lr}
- ldr r0, _080B60B0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B60AA
- ldr r0, _080B60B4
- ldr r0, [r0, 0x48]
- bl SetMainCallback2
-_080B60AA:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B60B0: .4byte gPaletteFade
-_080B60B4: .4byte 0x02000000
- thumb_func_end sub_80B6094
-
- thumb_func_start sub_80B60B8
-sub_80B60B8: @ 80B60B8
- push {r4,r5,lr}
- bl sub_80B61EC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80B6958
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x8
- bne _080B60D6
- bl sub_80B61C8
- b _080B60F2
-_080B60D6:
- cmp r4, 0x6
- bne _080B60E0
- bl sub_80B6FBC
- b _080B6100
-_080B60E0:
- cmp r5, 0x7
- beq _080B60FC
- ldr r1, _080B60F8
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080B60F2:
- lsls r0, 24
- lsrs r0, 24
- b _080B6102
- .align 2, 0
-_080B60F8: .4byte gUnknown_083CE240
-_080B60FC:
- bl sub_80B7090
-_080B6100:
- movs r0, 0
-_080B6102:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B60B8
-
- thumb_func_start sub_80B6108
-sub_80B6108: @ 80B6108
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- bne _080B613C
- bl sub_80B7004
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B6914
- cmp r4, 0
- beq _080B613C
- movs r0, 0
- bl sub_80B6210
- ldr r1, _080B6144
- movs r0, 0x3
- strb r0, [r1]
-_080B613C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6144: .4byte 0x02000000
- thumb_func_end sub_80B6108
-
- thumb_func_start sub_80B6148
-sub_80B6148: @ 80B6148
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- beq _080B6162
- movs r0, 0
- b _080B616A
-_080B6162:
- bl sub_80B61C8
- lsls r0, 24
- lsrs r0, 24
-_080B616A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6148
-
- thumb_func_start sub_80B6170
-sub_80B6170: @ 80B6170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- bne _080B618A
- bl sub_80B6FBC
-_080B618A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6170
-
- thumb_func_start sub_80B6194
-sub_80B6194: @ 80B6194
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- beq _080B61AE
- movs r0, 0
- b _080B61BC
-_080B61AE:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B61C4
- movs r0, 0x6
- strb r0, [r1]
- movs r0, 0x1
-_080B61BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B61C4: .4byte 0x02000000
- thumb_func_end sub_80B6194
-
- thumb_func_start sub_80B61C8
-sub_80B61C8: @ 80B61C8
- ldr r1, _080B61D4
- movs r0, 0x4
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_080B61D4: .4byte 0x02000000
- thumb_func_end sub_80B61C8
-
- thumb_func_start sub_80B61D8
-sub_80B61D8: @ 80B61D8
- push {lr}
- ldr r0, _080B61E8
- movs r1, 0x1
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B61E8: .4byte sub_80B623C
- thumb_func_end sub_80B61D8
-
- thumb_func_start sub_80B61EC
-sub_80B61EC: @ 80B61EC
- push {lr}
- ldr r0, _080B6208
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B620C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0xA]
- pop {r1}
- bx r1
- .align 2, 0
-_080B6208: .4byte sub_80B623C
-_080B620C: .4byte gTasks
- thumb_func_end sub_80B61EC
-
- thumb_func_start sub_80B6210
-sub_80B6210: @ 80B6210
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B6234
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B6238
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6234: .4byte sub_80B623C
-_080B6238: .4byte gTasks
- thumb_func_end sub_80B6210
-
- thumb_func_start sub_80B623C
-sub_80B623C: @ 80B623C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080B6264
- ldr r2, _080B6268
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080B6264: .4byte gUnknown_083CE250
-_080B6268: .4byte gTasks
- thumb_func_end sub_80B623C
-
- thumb_func_start sub_80B626C
-sub_80B626C: @ 80B626C
- movs r1, 0
- strh r1, [r0, 0xA]
- bx lr
- thumb_func_end sub_80B626C
-
- thumb_func_start sub_80B6274
-sub_80B6274: @ 80B6274
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldr r0, _080B6290
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6294
- movs r0, 0x5
- strh r0, [r2, 0xA]
- b _080B62C8
- .align 2, 0
-_080B6290: .4byte gMain
-_080B6294:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B62A2
- movs r0, 0x6
- strh r0, [r2, 0xA]
- b _080B62C8
-_080B62A2:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B62B0
- movs r0, 0x8
- strh r0, [r2, 0xA]
- b _080B62C8
-_080B62B0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B62C2
- movs r0, 0x9
- strh r0, [r2, 0xA]
- bl sub_80B6878
- b _080B62C8
-_080B62C2:
- adds r0, r2, 0
- bl sub_80B62CC
-_080B62C8:
- pop {r0}
- bx r0
- thumb_func_end sub_80B6274
-
- thumb_func_start sub_80B62CC
-sub_80B62CC: @ 80B62CC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80B6858
- ldr r0, _080B6374
- ldrh r2, [r0, 0x30]
- movs r0, 0x40
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r1, r0, 31
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080B62F8
- movs r1, 0x2
-_080B62F8:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080B6302
- movs r1, 0x3
-_080B6302:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080B630C
- movs r1, 0x4
-_080B630C:
- mov r0, sp
- ldrh r6, [r0]
- mov r2, sp
- ldr r0, _080B6378
- lsls r1, 1
- adds r0, r1, r0
- ldrh r3, [r0]
- adds r0, r6, r3
- strh r0, [r2]
- ldr r0, _080B637C
- adds r1, r0
- ldrh r0, [r1]
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _080B633A
- mov r1, sp
- movs r0, 0x8
- strh r0, [r1]
-_080B633A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x8
- ble _080B634A
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
-_080B634A:
- lsls r0, r3, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B63CA
- ldr r0, _080B6380
- ldrb r0, [r0, 0xE]
- cmp r0, 0x2
- bne _080B638A
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B638A
- cmp r1, 0
- ble _080B6384
- mov r1, sp
- movs r0, 0x8
- b _080B6388
- .align 2, 0
-_080B6374: .4byte gMain
-_080B6378: .4byte gUnknown_083CE258
-_080B637C: .4byte gUnknown_083CE262
-_080B6380: .4byte 0x02000000
-_080B6384:
- mov r1, sp
- movs r0, 0x5
-_080B6388:
- strh r0, [r1]
-_080B638A:
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x8
- bne _080B63AC
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- ldr r1, _080B63A8
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- b _080B63C8
- .align 2, 0
-_080B63A8: .4byte gUnknown_083CE26C
-_080B63AC:
- cmp r6, 0x8
- bne _080B63CA
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B63BC
- ldrh r0, [r5, 0xC]
- b _080B63C8
-_080B63BC:
- ldr r0, _080B63FC
- movs r2, 0
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_080B63C8:
- strh r0, [r4]
-_080B63CA:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x8
- bne _080B6408
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080B63E0
- movs r0, 0x2
- strh r0, [r4]
-_080B63E0:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- ble _080B63EC
- movs r0, 0
- strh r0, [r4]
-_080B63EC:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B6400
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _080B6420
- .align 2, 0
-_080B63FC: .4byte gUnknown_083CE274
-_080B6400:
- cmp r0, 0x2
- bne _080B6420
- strh r0, [r5, 0xC]
- b _080B6420
-_080B6408:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080B6414
- movs r0, 0x3
- strh r0, [r4]
-_080B6414:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080B6420
- movs r0, 0
- strh r0, [r4]
-_080B6420:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl sub_80B680C
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B62CC
-
- thumb_func_start sub_80B6438
-sub_80B6438: @ 80B6438
- push {lr}
- ldr r0, _080B6458
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B645C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x3
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080B6458: .4byte sub_80B64D4
-_080B645C: .4byte gTasks
- thumb_func_end sub_80B6438
-
- thumb_func_start sub_80B6460
-sub_80B6460: @ 80B6460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _080B6498
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B649C
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r5, r0
- bne _080B64A0
- cmp r6, 0
- bne _080B64A0
- strh r7, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0xC]
- b _080B64CC
- .align 2, 0
-_080B6498: .4byte sub_80B64D4
-_080B649C: .4byte gTasks
-_080B64A0:
- cmp r5, 0x3
- bne _080B64B0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B64B0
- cmp r6, 0
- beq _080B64CC
-_080B64B0:
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- beq _080B64C2
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80B65AC
-_080B64C2:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl sub_80B65D4
-_080B64CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6460
-
- thumb_func_start sub_80B64D4
-sub_80B64D4: @ 80B64D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B6548
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- beq _080B6540
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6540
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80B654C
- lsls r0, 16
- lsrs r0, 16
- ldrb r3, [r4, 0xE]
- adds r1, r3, 0
- adds r2, r3, 0
- bl sub_8085C7C
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6520
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080B6540
-_080B6520:
- movs r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0xE]
- adds r0, r1, r2
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080B653C
- cmp r0, 0
- bne _080B6540
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
-_080B653C:
- negs r0, r1
- strh r0, [r4, 0x10]
-_080B6540:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6548: .4byte gTasks
- thumb_func_end sub_80B64D4
-
- thumb_func_start sub_80B654C
-sub_80B654C: @ 80B654C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x4
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x87
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- add r6, sp, 0x8
- strh r0, [r6]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x86
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- adds r1, 0xA
- strh r0, [r1]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r5
- add r1, sp, 0xC
- strh r0, [r1]
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x6
- bl memcpy
- lsls r4, 1
- mov r1, sp
- adds r0, r1, r4
- ldrh r0, [r0]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80B654C
-
- thumb_func_start sub_80B65AC
-sub_80B65AC: @ 80B65AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80B654C
- lsls r0, 16
- ldr r2, _080B65CC
- lsrs r0, 15
- adds r2, r0, r2
- ldr r1, _080B65D0
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080B65CC: .4byte gPlttBufferFaded
-_080B65D0: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80B65AC
-
- thumb_func_start sub_80B65D4
-sub_80B65D4: @ 80B65D4
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- movs r2, 0x1
- strh r2, [r0, 0xC]
- movs r1, 0xF
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- strh r3, [r0, 0x12]
- bx lr
- thumb_func_end sub_80B65D4
-
- thumb_func_start sub_80B65F0
-sub_80B65F0: @ 80B65F0
- push {r4,lr}
- ldr r4, _080B660C
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B660C: .4byte sub_80B6630
- thumb_func_end sub_80B65F0
-
- thumb_func_start sub_80B6610
-sub_80B6610: @ 80B6610
- push {lr}
- ldr r0, _080B6624
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B6628
- movs r0, 0
- b _080B662A
- .align 2, 0
-_080B6624: .4byte sub_80B6630
-_080B6628:
- movs r0, 0x1
-_080B662A:
- pop {r1}
- bx r1
- thumb_func_end sub_80B6610
-
- thumb_func_start sub_80B6630
-sub_80B6630: @ 80B6630
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080B6660
- ldr r2, _080B6664
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B6642:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6642
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6660: .4byte gUnknown_083CE27C
-_080B6664: .4byte gTasks
- thumb_func_end sub_80B6630
-
- thumb_func_start sub_80B6668
-sub_80B6668: @ 80B6668
- ldr r2, _080B667C
- movs r1, 0
- strh r1, [r2, 0x4]
- strh r1, [r2, 0x6]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_080B667C: .4byte 0x02000000
- thumb_func_end sub_80B6668
-
- thumb_func_start sub_80B6680
-sub_80B6680: @ 80B6680
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, _080B66E4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl Sin
- ldr r5, _080B66E8
- ldrb r1, [r5, 0xC]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- adds r0, 0x80
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0x28
- bl Sin
- ldrb r1, [r5, 0xD]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _080B66DA
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B66DA:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B66E4: .4byte gUnknown_083CE28C
-_080B66E8: .4byte 0x02000000
- thumb_func_end sub_80B6680
-
- thumb_func_start sub_80B66EC
-sub_80B66EC: @ 80B66EC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, _080B6750
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl Sin
- ldr r5, _080B6754
- ldrb r1, [r5, 0xC]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- adds r0, 0x80
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0x28
- bl Sin
- ldrb r1, [r5, 0xD]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080B6746
- ldrb r1, [r5, 0xC]
- ldrb r0, [r5, 0xD]
- strb r0, [r5, 0xC]
- strb r1, [r5, 0xD]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6746:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6750: .4byte gUnknown_083CE28C
-_080B6754: .4byte 0x02000000
- thumb_func_end sub_80B66EC
-
- thumb_func_start sub_80B6758
-sub_80B6758: @ 80B6758
- push {lr}
- ldr r0, _080B6770
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B6770: .4byte sub_80B6630
- thumb_func_end sub_80B6758
-
- thumb_func_start sub_80B6774
-sub_80B6774: @ 80B6774
- push {r4,r5,lr}
- ldr r0, _080B67E0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- ldr r4, _080B67E4
- strb r0, [r4, 0xF]
- ldr r5, _080B67E8
- ldrb r0, [r4, 0xF]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x3A]
- movs r0, 0
- movs r1, 0
- bl sub_80B680C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B67E0: .4byte gSpriteTemplate_83CE640
-_080B67E4: .4byte 0x02000000
-_080B67E8: .4byte gSprites
- thumb_func_end sub_80B6774
-
- thumb_func_start sub_80B67EC
-sub_80B67EC: @ 80B67EC
- ldr r3, _080B6804
- lsls r0, 16
- asrs r0, 16
- ldr r1, _080B6808
- ldrb r2, [r1, 0xE]
- lsls r1, r2, 3
- adds r1, r2
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B6804: .4byte gUnknown_083CE294
-_080B6808: .4byte 0x02000000
- thumb_func_end sub_80B67EC
-
- thumb_func_start sub_80B680C
-sub_80B680C: @ 80B680C
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r1, _080B6850
- ldrb r1, [r1, 0xF]
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r1, _080B6854
- adds r4, r1
- lsrs r6, r0, 16
- asrs r0, 16
- bl sub_80B67EC
- lsls r0, 24
- lsrs r0, 21
- adds r0, 0x1B
- strh r0, [r4, 0x20]
- lsls r0, r5, 16
- asrs r0, 12
- adds r0, 0x50
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x2E]
- strh r5, [r4, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6850: .4byte 0x02000000
-_080B6854: .4byte gSprites
- thumb_func_end sub_80B680C
-
- thumb_func_start sub_80B6858
-sub_80B6858: @ 80B6858
- ldr r2, _080B6870
- ldrb r3, [r2, 0xF]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- ldr r3, _080B6874
- adds r2, r3
- ldrh r3, [r2, 0x2E]
- strh r3, [r0]
- ldrh r0, [r2, 0x30]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080B6870: .4byte 0x02000000
-_080B6874: .4byte gSprites
- thumb_func_end sub_80B6858
-
- thumb_func_start sub_80B6878
-sub_80B6878: @ 80B6878
- push {lr}
- movs r0, 0x8
- movs r1, 0x2
- bl sub_80B680C
- pop {r0}
- bx r0
- thumb_func_end sub_80B6878
-
- thumb_func_start sub_80B6888
-sub_80B6888: @ 80B6888
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080B68CC
- ldr r4, _080B68D0
- ldrb r1, [r4, 0xF]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x36]
- ldr r1, _080B68D4
- ands r1, r3
- strh r1, [r2, 0x36]
- ldrb r2, [r4, 0xF]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrh r2, [r1, 0x36]
- orrs r0, r2
- strh r0, [r1, 0x36]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B68CC: .4byte gSprites
-_080B68D0: .4byte 0x02000000
-_080B68D4: .4byte 0xffffff00
- thumb_func_end sub_80B6888
-
- thumb_func_start sub_80B68D8
-sub_80B68D8: @ 80B68D8
- push {r4,r5,lr}
- lsls r0, 24
- ldr r5, _080B690C
- ldr r4, _080B6910
- ldrb r1, [r4, 0xF]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x36]
- movs r1, 0xFF
- ands r1, r3
- strh r1, [r2, 0x36]
- ldrb r2, [r4, 0xF]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsrs r0, 16
- ldrh r2, [r1, 0x36]
- orrs r0, r2
- strh r0, [r1, 0x36]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B690C: .4byte gSprites
-_080B6910: .4byte 0x02000000
- thumb_func_end sub_80B68D8
-
- thumb_func_start sub_80B6914
-sub_80B6914: @ 80B6914
- push {lr}
- ldr r0, _080B6930
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6934
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080B6930: .4byte 0x02000000
-_080B6934: .4byte gSprites
- thumb_func_end sub_80B6914
-
- thumb_func_start sub_80B6938
-sub_80B6938: @ 80B6938
- ldr r2, _080B6950
- ldr r0, _080B6954
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080B6950: .4byte gSprites
-_080B6954: .4byte 0x02000000
- thumb_func_end sub_80B6938
-
- thumb_func_start sub_80B6958
-sub_80B6958: @ 80B6958
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r1, _080B6988
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r4, sp, 0x4
- mov r5, sp
- adds r5, 0x6
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B6858
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _080B698C
- movs r1, 0
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r0, [r0]
- b _080B698E
- .align 2, 0
-_080B6988: .4byte gUnknown_083CE2AF
-_080B698C:
- movs r0, 0
-_080B698E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6958
-
- thumb_func_start sub_80B6998
-sub_80B6998: @ 80B6998
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B69B0
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080B69B0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xFF
- ands r0, r1
- adds r3, r4, 0
- adds r3, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r3]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080B69DA
- movs r0, 0x4
- orrs r2, r0
- strb r2, [r3]
-_080B69DA:
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080B6A0A
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B6A0A
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B6A0A
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080B6A16
-_080B6A0A:
- movs r0, 0
- strh r0, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x3A]
- movs r0, 0x2
- strh r0, [r4, 0x3C]
-_080B6A16:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- bne _080B6A3E
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x38]
- adds r0, r1, r2
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080B6A36
- cmp r0, 0
- bne _080B6A3A
-_080B6A36:
- negs r0, r1
- strh r0, [r4, 0x3A]
-_080B6A3A:
- movs r0, 0x2
- strh r0, [r4, 0x3C]
-_080B6A3E:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B6A74
- ldrh r4, [r4, 0x38]
- lsls r5, r4, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 17
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r2, _080B6A7C
- adds r0, r2
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r5, 0
- bl sub_8085C7C
-_080B6A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6A7C: .4byte 0x01010000
- thumb_func_end sub_80B6998
-
- thumb_func_start sub_80B6A80
-sub_80B6A80: @ 80B6A80
- push {r4,r5,lr}
- ldr r0, _080B6AF8
- movs r1, 0xCC
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B6AFC
- strb r0, [r1, 0x10]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _080B6B00
- adds r4, r5
- ldr r1, _080B6B04
- adds r0, r4, 0
- bl SetSubspriteTables
- ldr r0, _080B6B08
- movs r1, 0xCC
- movs r2, 0x4C
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3A]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r1, _080B6B0C
- adds r0, r2, 0
- bl SetSubspriteTables
- ldr r0, _080B6B10
- movs r1, 0xCC
- movs r2, 0x4B
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1, 0x5]
- strh r0, [r4, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6AF8: .4byte gSpriteTemplate_83CE5C8
-_080B6AFC: .4byte 0x02000000
-_080B6B00: .4byte gSprites
-_080B6B04: .4byte gUnknown_083CE558
-_080B6B08: .4byte gSpriteTemplate_83CE5F8
-_080B6B0C: .4byte gUnknown_083CE560
-_080B6B10: .4byte gSpriteTemplate_83CE5E0
- thumb_func_end sub_80B6A80
-
- thumb_func_start sub_80B6B14
-sub_80B6B14: @ 80B6B14
- ldr r2, _080B6B2C
- ldrb r1, [r2, 0x10]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6B30
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0xE]
- strh r1, [r0, 0x30]
- bx lr
- .align 2, 0
-_080B6B2C: .4byte 0x02000000
-_080B6B30: .4byte gSprites
- thumb_func_end sub_80B6B14
-
- thumb_func_start sub_80B6B34
-sub_80B6B34: @ 80B6B34
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B6B58
-_080B6B3A:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6B3A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6B58: .4byte gUnknown_083CE2B4
- thumb_func_end sub_80B6B34
-
- thumb_func_start sub_80B6B5C
-sub_80B6B5C: @ 80B6B5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r3, _080B6B90
- adds r1, r3
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _080B6B94
- ldrb r0, [r0, 0xE]
- bl sub_80B6C48
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6B90: .4byte gSprites
-_080B6B94: .4byte 0x02000000
- thumb_func_end sub_80B6B5C
-
- thumb_func_start sub_80B6B98
-sub_80B6B98: @ 80B6B98
- movs r0, 0
- bx lr
- thumb_func_end sub_80B6B98
-
- thumb_func_start sub_80B6B9C
-sub_80B6B9C: @ 80B6B9C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, _080B6C00
- adds r4, r0, r2
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080B6BF8
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _080B6C04
- strh r0, [r4, 0x26]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x30]
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B6C48
-_080B6BF8:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6C00: .4byte gSprites
-_080B6C04: .4byte 0x0000fffc
- thumb_func_end sub_80B6B9C
-
- thumb_func_start sub_80B6C08
-sub_80B6C08: @ 80B6C08
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6C44
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080B6C3C
- movs r0, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080B6C3C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6C44: .4byte gSprites
- thumb_func_end sub_80B6C08
-
- thumb_func_start sub_80B6C48
-sub_80B6C48: @ 80B6C48
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B6CA0
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- mov r1, r8
- ldrb r2, [r1, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- mov r0, r8
- strb r1, [r0, 0x5]
- ldr r0, _080B6CA4
- adds r4, r0
- ldrh r0, [r4]
- bl GetSpriteTileStartByTag
- adds r1, r6, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r6, 0x42
- movs r1, 0x3F
- ands r1, r5
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6CA0: .4byte gUnknown_083CE2C4
-_080B6CA4: .4byte gUnknown_083CE2CA
- thumb_func_end sub_80B6C48
-
- thumb_func_start sub_80B6CA8
-sub_80B6CA8: @ 80B6CA8
- push {r4,r5,lr}
- ldr r0, _080B6CF4
- movs r1, 0xCC
- movs r2, 0x6C
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080B6CF8
- adds r0, r4
- ldr r5, _080B6CFC
- adds r1, r5, 0
- bl SetSubspriteTables
- ldr r0, _080B6D00
- movs r1, 0xCC
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r1, r5, 0
- bl SetSubspriteTables
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6CF4: .4byte gSpriteTemplate_83CE610
-_080B6CF8: .4byte gSprites
-_080B6CFC: .4byte gUnknown_083CE578
-_080B6D00: .4byte gSpriteTemplate_83CE628
- thumb_func_end sub_80B6CA8
-
- thumb_func_start sub_80B6D04
-sub_80B6D04: @ 80B6D04
- push {r4-r6,lr}
- ldr r4, _080B6D8C
- ldrh r1, [r4, 0x2]
- subs r1, 0x1
- lsls r1, 3
- adds r1, 0x4
- ldr r0, _080B6D90
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x28
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080B6D94
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrh r0, [r4, 0x2]
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 16
- lsrs r1, r0, 16
- movs r5, 0
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r5, r0
- bcs _080B6D86
- adds r6, r3, 0
-_080B6D4A:
- lsls r4, r1, 16
- asrs r4, 16
- ldr r0, _080B6D98
- adds r1, r4, 0
- movs r2, 0x2C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- strh r5, [r0, 0x2E]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x8
- lsls r4, 16
- lsrs r1, r4, 16
- ldr r0, _080B6D8C
- ldr r0, [r0, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r5, r0
- bcc _080B6D4A
-_080B6D86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6D8C: .4byte 0x02000000
-_080B6D90: .4byte gSpriteTemplate_83CE658
-_080B6D94: .4byte gSprites
-_080B6D98: .4byte gSpriteTemplate_83CE670
- thumb_func_end sub_80B6D04
-
- thumb_func_start sub_80B6D9C
-sub_80B6D9C: @ 80B6D9C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080B6DE4
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6DC0
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080B6DCE
-_080B6DC0:
- movs r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0x30]
-_080B6DCE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6DE4: .4byte gUnknown_083CE2D0
- thumb_func_end sub_80B6D9C
-
- thumb_func_start sub_80B6DE8
-sub_80B6DE8: @ 80B6DE8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080B6E10
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl sub_80B6F44
- lsls r0, 24
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- cmp r0, r1
- beq _080B6E14
- movs r0, 0
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x30]
- b _080B6E3A
- .align 2, 0
-_080B6E10: .4byte gUnknown_083CE2D8
-_080B6E14:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080B6E3C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r0, 0
-_080B6E3A:
- strh r0, [r4, 0x32]
-_080B6E3C:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6DE8
-
- thumb_func_start sub_80B6E44
-sub_80B6E44: @ 80B6E44
- push {lr}
- ldr r1, _080B6E5C
- ldr r0, _080B6E60
- ldr r0, [r0, 0x34]
- ldrb r0, [r0, 0x2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_080B6E5C: .4byte gUnknown_083CE2E0
-_080B6E60: .4byte 0x02000000
- thumb_func_end sub_80B6E44
-
- thumb_func_start nullsub_40
-nullsub_40: @ 80B6E64
- bx lr
- thumb_func_end nullsub_40
-
- thumb_func_start sub_80B6E68
-sub_80B6E68: @ 80B6E68
- push {lr}
- sub sp, 0x4
- ldr r0, _080B6EB0
- ldrh r1, [r0, 0x3E]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B6EB4
- movs r2, 0
- str r2, [sp]
- movs r2, 0x38
- movs r3, 0x18
- bl AddPseudoFieldObject
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080B6EB8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x4
- bl StartSpriteAnim
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B6EB0: .4byte 0x02000000
-_080B6EB4: .4byte SpriteCallbackDummy
-_080B6EB8: .4byte gSprites
- thumb_func_end sub_80B6E68
-
- thumb_func_start sub_80B6EBC
-sub_80B6EBC: @ 80B6EBC
- push {r4,lr}
- ldr r0, _080B6EF0
- movs r1, 0x34
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080B6EF4
- adds r4, r0
- ldr r1, _080B6EF8
- adds r0, r4, 0
- bl SetSubspriteTables
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6EF0: .4byte gSpriteTemplate_83CE688
-_080B6EF4: .4byte gSprites
-_080B6EF8: .4byte gUnknown_083CE580
- thumb_func_end sub_80B6EBC
-
- thumb_func_start sub_80B6EFC
-sub_80B6EFC: @ 80B6EFC
- push {lr}
- sub sp, 0x8
- bl sub_809D51C
- ldr r3, _080B6F38
- ldrh r0, [r3, 0x3E]
- ldr r1, _080B6F3C
- movs r2, 0
- str r2, [sp]
- ldr r2, [r3, 0x44]
- str r2, [sp, 0x4]
- movs r2, 0x34
- movs r3, 0x18
- bl sub_809D2FC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B6F40
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r1, 0x5]
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080B6F38: .4byte 0x02000000
-_080B6F3C: .4byte SpriteCallbackDummy
-_080B6F40: .4byte gSprites
- thumb_func_end sub_80B6EFC
-
- thumb_func_start sub_80B6F44
-sub_80B6F44: @ 80B6F44
- push {r4,lr}
- movs r2, 0
- ldr r1, _080B6F64
- ldr r0, [r1, 0x34]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, r0
- bcs _080B6F72
- adds r1, 0x11
- adds r3, r0, 0
-_080B6F58:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080B6F68
- adds r0, r2, 0
- b _080B6F7C
- .align 2, 0
-_080B6F64: .4byte 0x02000000
-_080B6F68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _080B6F58
-_080B6F72:
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080B6F7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F44
-
- thumb_func_start sub_80B6F84
-sub_80B6F84: @ 80B6F84
- push {lr}
- ldr r2, _080B6FA8
- ldr r0, [r2, 0x34]
- ldrb r0, [r0, 0x1]
- subs r0, 0x1
- lsls r1, r0, 24
- cmp r1, 0
- ble _080B6FB4
- adds r3, r2, 0
- adds r3, 0x11
-_080B6F98:
- asrs r2, r1, 24
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080B6FAC
- lsrs r0, r1, 24
- b _080B6FB6
- .align 2, 0
-_080B6FA8: .4byte 0x02000000
-_080B6FAC:
- subs r0, r2, 0x1
- lsls r1, r0, 24
- cmp r1, 0
- bgt _080B6F98
-_080B6FB4:
- movs r0, 0
-_080B6FB6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F84
-
- thumb_func_start sub_80B6FBC
-sub_80B6FBC: @ 80B6FBC
- push {r4,lr}
- bl sub_80B6F84
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B7000
- adds r0, 0x11
- adds r4, r0
- movs r0, 0
- strb r0, [r4]
- bl sub_80B7960
- movs r0, 0xFF
- strb r0, [r4]
- bl sub_80B6958
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080B6FEA
- cmp r0, 0x2
- bne _080B6FF4
-_080B6FEA:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
-_080B6FF4:
- movs r0, 0x17
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7000: .4byte 0x02000000
- thumb_func_end sub_80B6FBC
-
- thumb_func_start sub_80B7004
-sub_80B7004: @ 80B7004
- push {r4,r5,lr}
- sub sp, 0x4
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl sub_80B6858
- mov r4, sp
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80B67EC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80B7768
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- movs r4, 0x1
- cmp r0, 0xFF
- bne _080B7046
- bl sub_80B7104
- b _080B704E
-_080B7046:
- cmp r0, 0xFE
- bne _080B7054
- bl sub_80B713C
-_080B704E:
- lsls r0, 24
- lsrs r4, r0, 24
- b _080B705A
-_080B7054:
- adds r0, r1, 0
- bl sub_80B7174
-_080B705A:
- bl sub_80B7960
- movs r0, 0x5
- bl PlaySE
- cmp r4, 0
- beq _080B7084
- bl sub_80B6F84
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B7080
- ldr r1, [r1, 0x34]
- ldrb r1, [r1, 0x1]
- subs r1, 0x1
- cmp r0, r1
- bne _080B7084
- movs r0, 0x1
- b _080B7086
- .align 2, 0
-_080B7080: .4byte 0x02000000
-_080B7084:
- movs r0, 0
-_080B7086:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7004
-
- thumb_func_start sub_80B7090
-sub_80B7090: @ 80B7090
- push {r4-r7,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _080B70C8
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80B7198
- lsls r0, 24
- cmp r0, 0
- beq _080B70D6
- adds r0, r4, 0
- bl sub_80B7264
- lsls r0, 24
- cmp r0, 0
- beq _080B70CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7370
- b _080B70F4
- .align 2, 0
-_080B70C8: .4byte 0x02000000
-_080B70CC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B73CC
- b _080B70F4
-_080B70D6:
- adds r0, r4, 0
- bl sub_80B71E4
- lsls r0, 24
- cmp r0, 0
- beq _080B70EC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7474
- b _080B70F4
-_080B70EC:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80B72A4
-_080B70F4:
- bl sub_80B7960
- movs r0, 0x5
- bl PlaySE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7090
-
- thumb_func_start sub_80B7104
-sub_80B7104: @ 80B7104
- push {r4,r5,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B7128
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_80B720C
- lsls r0, 24
- cmp r0, 0
- bne _080B712C
- movs r0, 0
- b _080B7136
- .align 2, 0
-_080B7128: .4byte 0x02000000
-_080B712C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B72A4
- movs r0, 0x1
-_080B7136:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7104
-
- thumb_func_start sub_80B713C
-sub_80B713C: @ 80B713C
- push {r4,r5,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B7160
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_80B7264
- lsls r0, 24
- cmp r0, 0
- bne _080B7164
- movs r0, 0
- b _080B716E
- .align 2, 0
-_080B7160: .4byte 0x02000000
-_080B7164:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7370
- movs r0, 0x1
-_080B716E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B713C
-
- thumb_func_start sub_80B7174
-sub_80B7174: @ 80B7174
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B6F44
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B7194
- adds r1, 0x11
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7194: .4byte 0x02000000
- thumb_func_end sub_80B7174
-
- thumb_func_start sub_80B7198
-sub_80B7198: @ 80B7198
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC9
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x13
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x6F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B71DE
-_080B71DA:
- movs r0, 0x1
- b _080B71E0
-_080B71DE:
- movs r0, 0
-_080B71E0:
- pop {r1}
- bx r1
- thumb_func_end sub_80B7198
-
- thumb_func_start sub_80B71E4
-sub_80B71E4: @ 80B71E4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xB5
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7202
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7206
-_080B7202:
- movs r0, 0x1
- b _080B7208
-_080B7206:
- movs r0, 0
-_080B7208:
- pop {r1}
- bx r1
- thumb_func_end sub_80B71E4
-
- thumb_func_start sub_80B720C
-sub_80B720C: @ 80B720C
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFA
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xE
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x1A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x56
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B725E
-_080B725A:
- movs r0, 0x1
- b _080B7260
-_080B725E:
- movs r0, 0
-_080B7260:
- pop {r1}
- bx r1
- thumb_func_end sub_80B720C
-
- thumb_func_start sub_80B7264
-sub_80B7264: @ 80B7264
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xE6
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B729E
-_080B729A:
- movs r0, 0x1
- b _080B72A0
-_080B729E:
- movs r0, 0
-_080B72A0:
- pop {r1}
- bx r1
- thumb_func_end sub_80B7264
-
- thumb_func_start sub_80B72A4
-sub_80B72A4: @ 80B72A4
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xFA
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72C0
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72C0:
- adds r0, r2, 0
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72D2
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72D2:
- adds r0, r2, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72E4
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72E4:
- adds r0, r2, 0
- subs r0, 0x1A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72F6
- adds r0, r2, 0
- adds r0, 0x2C
- b _080B735A
-_080B72F6:
- adds r0, r2, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7356
- adds r0, r2, 0
- subs r0, 0x56
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7314
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7314:
- adds r0, r2, 0
- subs r0, 0x5B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7326
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7326:
- adds r0, r2, 0
- subs r0, 0x60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7338
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7338:
- adds r0, r2, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B734A
- adds r0, r2, 0
- adds r0, 0x2C
- b _080B735A
-_080B734A:
- adds r0, r2, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B735E
-_080B7356:
- adds r0, r2, 0
- adds r0, 0xFB
-_080B735A:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B735E:
- ldr r0, _080B736C
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B736C: .4byte 0x02000000
- thumb_func_end sub_80B72A4
-
- thumb_func_start sub_80B7370
-sub_80B7370: @ 80B7370
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xE6
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B738C
- adds r0, r2, 0
- adds r0, 0x31
- b _080B73B8
-_080B738C:
- adds r0, r2, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B73B6
- adds r0, r2, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73AA
- adds r0, r2, 0
- adds r0, 0x31
- b _080B73B8
-_080B73AA:
- adds r0, r2, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73BC
-_080B73B6:
- adds r0, r2, 0x5
-_080B73B8:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B73BC:
- ldr r0, _080B73C8
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B73C8: .4byte 0x02000000
- thumb_func_end sub_80B7370
-
- thumb_func_start sub_80B73CC
-sub_80B73CC: @ 80B73CC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xC9
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73E8
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B73E8:
- adds r0, r2, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73FA
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B73FA:
- adds r0, r2, 0
- subs r0, 0x41
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B740C
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B740C:
- adds r0, r2, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B745A
- adds r0, r2, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B742A
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B742A:
- adds r0, r2, 0
- adds r0, 0x74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B743C
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B743C:
- adds r0, r2, 0
- adds r0, 0x6F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B744E
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B744E:
- adds r0, r2, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7462
-_080B745A:
- adds r0, r2, 0
- adds r0, 0xD4
-_080B745E:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7462:
- ldr r0, _080B7470
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B7470: .4byte 0x02000000
- thumb_func_end sub_80B73CC
-
- thumb_func_start sub_80B7474
-sub_80B7474: @ 80B7474
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xB5
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7496
- adds r0, r2, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B749E
-_080B7496:
- adds r0, r2, 0
- adds r0, 0xCF
- lsls r0, 24
- lsrs r2, r0, 24
-_080B749E:
- ldr r0, _080B74AC
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B74AC: .4byte 0x02000000
- thumb_func_end sub_80B7474
-
- thumb_func_start sub_80B74B0
-sub_80B74B0: @ 80B74B0
- push {r4,lr}
- movs r1, 0
- ldr r3, _080B74E4
- ldr r0, [r3, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bcs _080B74F6
- adds r2, r3, 0
- adds r4, r3, 0
- adds r4, 0x11
-_080B74C4:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B74E8
- cmp r0, 0xFF
- beq _080B74E8
- ldr r0, [r2, 0x38]
- ldr r1, [r2, 0x34]
- ldrb r2, [r1, 0x1]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, 0
- bl StringCopyN
- b _080B74F6
- .align 2, 0
-_080B74E4: .4byte 0x02000000
-_080B74E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, [r3, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bcc _080B74C4
-_080B74F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B74B0
-
- thumb_func_start sub_80B74FC
-sub_80B74FC: @ 80B74FC
- push {r4,lr}
- ldr r0, _080B7528
- ldr r1, _080B752C
- ldr r1, [r1, 0x38]
- bl StringCopy
- ldr r4, _080B7530
- ldr r1, _080B7534
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080B7538
- bl BasicInitMenuWindow
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- bl sub_8072044
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7528: .4byte gStringVar1
-_080B752C: .4byte 0x02000000
-_080B7530: .4byte gStringVar4
-_080B7534: .4byte gOtherText_SentToPC
-_080B7538: .4byte gWindowConfig_81E6E88
- thumb_func_end sub_80B74FC
-
- thumb_func_start sub_80B753C
-sub_80B753C: @ 80B753C
- push {lr}
- ldr r0, _080B7550
- bl LoadSpriteSheets
- ldr r0, _080B7554
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_080B7550: .4byte gUnknown_083CE6A0
-_080B7554: .4byte gUnknown_083CE708
- thumb_func_end sub_80B753C
-
- thumb_func_start sub_80B7558
-sub_80B7558: @ 80B7558
- push {lr}
- bl sub_80B7568
- bl sub_80B75B0
- pop {r0}
- bx r0
- thumb_func_end sub_80B7558
-
- thumb_func_start sub_80B7568
-sub_80B7568: @ 80B7568
- push {r4,lr}
- ldr r4, _080B759C
- ldr r3, _080B75A0
- ldrh r0, [r3]
- lsls r0, 5
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- ldr r1, _080B75A4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r2, _080B75A8
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrh r0, [r3]
- lsls r0, 5
- ldr r3, _080B75AC
- adds r0, r3
- str r4, [r1]
- str r0, [r1, 0x4]
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B759C: .4byte gNamingScreenMenu_Gfx
-_080B75A0: .4byte gMenuMessageBoxContentTileOffset
-_080B75A4: .4byte 0x040000d4
-_080B75A8: .4byte 0x80000400
-_080B75AC: .4byte 0x06008000
- thumb_func_end sub_80B7568
-
- thumb_func_start sub_80B75B0
-sub_80B75B0: @ 80B75B0
- push {lr}
- ldr r0, _080B75C0
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080B75C0: .4byte gNamingScreenPalettes
- thumb_func_end sub_80B75B0
-
- thumb_func_start sub_80B75C4
-sub_80B75C4: @ 80B75C4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080B7608
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, _080B760C
- ldr r5, _080B7610
- ldrb r1, [r5, 0xE]
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r5, 0xC]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- ldrb r1, [r5, 0xE]
- lsls r1, 3
- adds r4, 0x4
- adds r1, r4
- ldrb r0, [r5, 0xD]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7608: .4byte gUnknown_083CE308
-_080B760C: .4byte gUnknown_083CE2F0
-_080B7610: .4byte 0x02000000
- thumb_func_end sub_80B75C4
-
- thumb_func_start sub_80B7614
-sub_80B7614: @ 80B7614
- push {lr}
- sub sp, 0x8
- ldr r0, _080B7644
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _080B7648
- ldr r2, _080B764C
- ldrb r1, [r2, 0xE]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldrb r0, [r2, 0xD]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080B7644: .4byte gUnknown_083CE308
-_080B7648: .4byte gUnknown_083CE2F0
-_080B764C: .4byte 0x02000000
- thumb_func_end sub_80B7614
-
- thumb_func_start sub_80B7650
-sub_80B7650: @ 80B7650
- push {lr}
- ldr r1, _080B765C
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B765C: .4byte gUnknown_083CE748
- thumb_func_end sub_80B7650
-
- thumb_func_start sub_80B7660
-sub_80B7660: @ 80B7660
- push {lr}
- ldr r1, _080B766C
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B766C: .4byte gUnknown_083CEBF8
- thumb_func_end sub_80B7660
-
- thumb_func_start sub_80B7670
-sub_80B7670: @ 80B7670
- push {lr}
- ldr r1, _080B767C
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B767C: .4byte gUnknown_083CF0A8
- thumb_func_end sub_80B7670
-
- thumb_func_start sub_80B7680
-sub_80B7680: @ 80B7680
- push {lr}
- ldr r0, _080B7690
- ldr r1, _080B7694
- bl sub_80B76E0
- pop {r0}
- bx r0
- .align 2, 0
-_080B7690: .4byte 0x0600f000
-_080B7694: .4byte gUnknown_08E86258
- thumb_func_end sub_80B7680
-
- thumb_func_start sub_80B7698
-sub_80B7698: @ 80B7698
- push {r4-r7,lr}
- mov r12, r0
- adds r3, r1, 0
- movs r4, 0
- ldr r0, _080B76DC
- ldrh r6, [r0]
-_080B76A4:
- movs r1, 0
- lsls r4, 16
- asrs r5, r4, 11
-_080B76AA:
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, r0
- lsls r1, 1
- add r1, r12
- ldrh r7, [r3]
- adds r2, r6, r7
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- adds r3, 0x2
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080B76AA
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080B76A4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B76DC: .4byte gMenuMessageBoxContentTileOffset
- thumb_func_end sub_80B7698
-
- thumb_func_start sub_80B76E0
-sub_80B76E0: @ 80B76E0
- push {r4-r7,lr}
- mov r12, r0
- adds r3, r1, 0
- movs r4, 0
- ldr r0, _080B7728
- ldrh r6, [r0]
-_080B76EC:
- movs r1, 0
- lsls r5, r4, 16
- asrs r4, r5, 11
-_080B76F2:
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r4, r0
- lsls r1, 1
- add r1, r12
- ldrh r7, [r3]
- adds r2, r6, r7
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- adds r3, 0x2
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080B76F2
- adds r3, 0x4
- movs r1, 0x80
- lsls r1, 9
- adds r0, r5, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080B76EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7728: .4byte gMenuMessageBoxContentTileOffset
- thumb_func_end sub_80B76E0
-
- thumb_func_start sub_80B772C
-sub_80B772C: @ 80B772C
- push {lr}
- ldr r1, _080B773C
- ldrb r0, [r1, 0xE]
- ldrb r1, [r1, 0xC]
- bl nullsub_20
- pop {r0}
- bx r0
- .align 2, 0
-_080B773C: .4byte 0x02000000
- thumb_func_end sub_80B772C
-
- thumb_func_start sub_80B7740
-sub_80B7740: @ 80B7740
- push {r4,lr}
- ldr r4, _080B7760
- ldrb r0, [r4, 0xE]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0xD]
- bl nullsub_20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7760: .4byte 0x02000000
- thumb_func_end sub_80B7740
-
- thumb_func_start nullsub_20
-nullsub_20: @ 80B7764
- bx lr
- thumb_func_end nullsub_20
-
- thumb_func_start sub_80B7768
-sub_80B7768: @ 80B7768
- ldr r3, _080B778C
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r0, r2
- ldr r1, _080B7790
- ldrb r2, [r1, 0xE]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B778C: .4byte gUnknown_083CE3A8
-_080B7790: .4byte 0x02000000
- thumb_func_end sub_80B7768
-
- thumb_func_start sub_80B7794
-sub_80B7794: @ 80B7794
- push {r4-r6,lr}
- ldr r6, _080B77EC
- ldr r4, _080B77F0
- ldrb r0, [r4, 0xC]
- lsls r0, 2
- ldrb r1, [r4, 0xE]
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldr r0, [r0]
- bl BasicInitMenuWindow
- ldr r5, _080B77F4
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r1, [r4, 0xD]
- lsls r1, 2
- ldrb r0, [r4, 0xE]
- lsls r0, 4
- adds r1, r0
- adds r6, 0x8
- adds r1, r6
- ldr r0, [r1]
- bl BasicInitMenuWindow
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r5, 0x4
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_80B772C
- bl sub_80B7740
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B77EC: .4byte gUnknown_083CE328
-_080B77F0: .4byte 0x02000000
-_080B77F4: .4byte gUnknown_083CE310
- thumb_func_end sub_80B7794
-
- thumb_func_start sub_80B77F8
-sub_80B77F8: @ 80B77F8
- push {r4,lr}
- ldr r2, _080B782C
- ldr r4, _080B7830
- ldrb r1, [r4, 0xD]
- lsls r1, 2
- ldrb r0, [r4, 0xE]
- lsls r0, 4
- adds r1, r0
- adds r2, 0x8
- adds r1, r2
- ldr r0, [r1]
- bl BasicInitMenuWindow
- ldr r1, _080B7834
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_80B7740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B782C: .4byte gUnknown_083CE328
-_080B7830: .4byte 0x02000000
-_080B7834: .4byte gUnknown_083CE310
- thumb_func_end sub_80B77F8
-
- thumb_func_start sub_80B7838
-sub_80B7838: @ 80B7838
- push {lr}
- movs r0, 0x1
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7838
-
- thumb_func_start sub_80B7844
-sub_80B7844: @ 80B7844
- push {lr}
- movs r0, 0
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7844
-
- thumb_func_start sub_80B7850
-sub_80B7850: @ 80B7850
- push {lr}
- movs r0, 0x2
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7850
-
- thumb_func_start sub_80B785C
-sub_80B785C: @ 80B785C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- movs r5, 0x9
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 4
-_080B786C:
- lsls r4, r2, 16
- asrs r4, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- ldr r1, _080B78A4
- adds r0, r1
- adds r0, r6, r0
- lsls r2, r5, 24
- lsrs r2, 24
- movs r1, 0x3
- bl MenuPrint
- adds r4, 0x1
- lsls r4, 16
- lsls r0, r5, 16
- movs r1, 0x80
- lsls r1, 10
- adds r0, r1
- lsrs r5, r0, 16
- lsrs r2, r4, 16
- asrs r4, 16
- cmp r4, 0x3
- ble _080B786C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B78A4: .4byte gUnknown_083CE3A8
- thumb_func_end sub_80B785C
-
- thumb_func_start sub_80B78A8
-sub_80B78A8: @ 80B78A8
- push {r4,lr}
- ldr r0, _080B78E4
- bl BasicInitMenuWindow
- ldr r1, _080B78E8
- ldr r4, _080B78EC
- ldrb r0, [r4, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _080B78F0
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, [r4, 0x34]
- ldr r0, [r0, 0x8]
- movs r1, 0x9
- movs r2, 0x2
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B78E4: .4byte gWindowConfig_81E6F4C
-_080B78E8: .4byte gUnknown_083CE358
-_080B78EC: .4byte 0x02000000
-_080B78F0: .4byte gUnknown_083CE368
- thumb_func_end sub_80B78A8
-
- thumb_func_start nullsub_61
-nullsub_61: @ 80B78F4
- bx lr
- thumb_func_end nullsub_61
-
- thumb_func_start sub_80B78F8
-sub_80B78F8: @ 80B78F8
- push {lr}
- ldr r0, _080B7914
- ldr r1, _080B7918
- movs r3, 0x3E
- ldrsh r2, [r1, r3]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080B791C
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080B7914: .4byte gStringVar1
-_080B7918: .4byte 0x02000000
-_080B791C: .4byte gSpeciesNames
- thumb_func_end sub_80B78F8
-
- thumb_func_start nullsub_62
-nullsub_62: @ 80B7920
- bx lr
- thumb_func_end nullsub_62
-
- thumb_func_start sub_80B7924
-sub_80B7924: @ 80B7924
- push {lr}
- sub sp, 0x4
- ldr r1, _080B7958
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldr r0, _080B795C
- adds r0, 0x40
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- beq _080B7952
- cmp r0, 0xFE
- bne _080B7948
- mov r1, sp
- movs r0, 0xB6
- strb r0, [r1]
-_080B7948:
- mov r0, sp
- movs r1, 0x14
- movs r2, 0x4
- bl MenuPrint
-_080B7952:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B7958: .4byte gUnknown_083CE370
-_080B795C: .4byte 0x02000000
- thumb_func_end sub_80B7924
-
- thumb_func_start sub_80B7960
-sub_80B7960: @ 80B7960
- push {r4,lr}
- ldr r0, _080B799C
- movs r2, 0xFC
- strb r2, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x8
- strb r1, [r0, 0x2]
- strb r2, [r0, 0x3]
- movs r1, 0x11
- strb r1, [r0, 0x4]
- movs r1, 0x1
- strb r1, [r0, 0x5]
- adds r0, 0x6
- ldr r4, _080B79A0
- adds r1, r4, 0
- bl StringCopy
- ldr r0, _080B79A4
- bl BasicInitMenuWindow
- ldr r0, _080B799C
- subs r4, 0x11
- ldrb r1, [r4, 0x2]
- movs r2, 0x4
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B799C: .4byte gStringVar1
-_080B79A0: .4byte 0x02000011
-_080B79A4: .4byte gWindowConfig_81E6F4C
- thumb_func_end sub_80B7960
-
- thumb_func_start IsEnoughMoney
-IsEnoughMoney: @ 80B79A8
- push {lr}
- cmp r0, r1
- bcs _080B79B2
- movs r0, 0
- b _080B79B4
-_080B79B2:
- movs r0, 0x1
-_080B79B4:
- pop {r1}
- bx r1
- thumb_func_end IsEnoughMoney
-
- thumb_func_start sub_80B79B8
-sub_80B79B8: @ 80B79B8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- adds r1, r0, r1
- cmp r0, r1
- bls _080B79CC
- ldr r0, _080B79C8
- b _080B79D4
- .align 2, 0
-_080B79C8: .4byte 0x000f423f
-_080B79CC:
- str r1, [r2]
- ldr r0, _080B79DC
- cmp r1, r0
- bls _080B79D6
-_080B79D4:
- str r0, [r2]
-_080B79D6:
- pop {r0}
- bx r0
- .align 2, 0
-_080B79DC: .4byte 0x000f423f
- thumb_func_end sub_80B79B8
-
- thumb_func_start sub_80B79E0
-sub_80B79E0: @ 80B79E0
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2]
- cmp r0, r1
- bcs _080B79EE
- movs r0, 0
- b _080B79F0
-_080B79EE:
- subs r0, r1
-_080B79F0:
- str r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_80B79E0
-
- thumb_func_start sub_80B79F8
-sub_80B79F8: @ 80B79F8
- push {r4,lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, _080B7A0C
- cmp r1, r0
- bls _080B7A10
- movs r2, 0x7
- b _080B7A46
- .align 2, 0
-_080B7A0C: .4byte 0x000f423f
-_080B7A10:
- ldr r0, _080B7A1C
- cmp r1, r0
- bls _080B7A20
- movs r2, 0x6
- b _080B7A46
- .align 2, 0
-_080B7A1C: .4byte 0x0001869f
-_080B7A20:
- ldr r0, _080B7A2C
- cmp r1, r0
- bls _080B7A30
- movs r2, 0x5
- b _080B7A46
- .align 2, 0
-_080B7A2C: .4byte 0x00002710
-_080B7A30:
- ldr r0, _080B7A90
- movs r2, 0x4
- cmp r1, r0
- bhi _080B7A46
- movs r2, 0x3
- cmp r1, 0x63
- bhi _080B7A46
- movs r2, 0x1
- cmp r1, 0x9
- bls _080B7A46
- movs r2, 0x2
-_080B7A46:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- movs r0, 0
- subs r2, r4, r2
- cmp r0, r2
- bge _080B7A6C
- movs r4, 0
-_080B7A5E:
- strb r4, [r3]
- adds r3, 0x1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- blt _080B7A5E
-_080B7A6C:
- movs r0, 0xB7
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7A90: .4byte 0x000003e7
- thumb_func_end sub_80B79F8
-
- thumb_func_start sub_80B7A94
-sub_80B7A94: @ 80B7A94
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B79F8
- mov r0, sp
- bl sub_8072CA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0x1
- lsls r0, 3
- cmp r2, r0
- blt _080B7ACE
- mov r0, sp
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- b _080B7AE4
-_080B7ACE:
- adds r1, r6, 0x1
- adds r1, r5
- lsls r1, 3
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r7, 3
- mov r0, sp
- movs r3, 0x1
- bl sub_80729D8
-_080B7AE4:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7A94
-
- thumb_func_start sub_80B7AEC
-sub_80B7AEC: @ 80B7AEC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- movs r0, 0xB7
- strb r0, [r6]
- adds r6, 0x1
- adds r0, r6, 0
- adds r1, r3, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8072B4C
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x14
- strb r0, [r6, 0x1]
- movs r0, 0
- strb r0, [r6, 0x2]
- movs r0, 0xFF
- strb r0, [r6, 0x3]
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7AEC
-
- thumb_func_start sub_80B7B34
-sub_80B7B34: @ 80B7B34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r9
- lsls r1, 8
- mov r9, r1
- ldr r4, _080B7BD8
- adds r0, r1, r4
- lsls r6, r5, 4
- subs r6, r5
- lsls r1, r6, 6
- mov r3, r8
- adds r3, 0x1
- lsls r3, 5
- ldr r2, _080B7BDC
- adds r3, r2
- adds r1, r3
- movs r2, 0x20
- str r3, [sp]
- bl CpuFastSet
- adds r4, 0x80
- add r9, r4
- adds r0, r5, 0x1
- lsls r4, r0, 4
- subs r4, r0
- lsls r1, r4, 6
- ldr r3, [sp]
- adds r1, r3
- mov r0, r9
- movs r2, 0x20
- bl CpuFastSet
- movs r3, 0
- lsls r5, 5
- mov r0, r8
- adds r7, r5, r0
- lsls r6, 1
- adds r6, 0x1
- add r6, r8
- ldr r1, _080B7BE0
- adds r5, r1, 0
- ldr r0, _080B7BE4
- mov r12, r0
- ldr r1, _080B7BE8
- mov r9, r1
- lsls r4, 1
- adds r4, 0x1
- add r4, r8
-_080B7BAA:
- adds r1, r7, r3
- lsls r1, 1
- mov r0, r12
- adds r2, r1, r0
- adds r0, r3, r6
- adds r0, r5
- strh r0, [r2]
- add r1, r9
- adds r0, r3, r4
- adds r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B7BAA
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7BD8: .4byte gDecoration10000_Gfx
-_080B7BDC: .4byte 0x06008000
-_080B7BE0: .4byte 0xfffff000
-_080B7BE4: .4byte 0x0600f800
-_080B7BE8: .4byte 0x0600f840
- thumb_func_end sub_80B7B34
-
- thumb_func_start sub_80B7BEC
-sub_80B7BEC: @ 80B7BEC
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0xC0
- lsls r1, 19
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x6
- adds r2, r4, 0
- bl sub_80B7A94
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7BEC
-
- thumb_func_start sub_80B7C14
-sub_80B7C14: @ 80B7C14
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- lsrs r6, r4, 24
- movs r0, 0xD0
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r1, 0xC0
- lsls r1, 18
- adds r3, r1
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- mov r0, r8
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80B7BEC
- ldr r0, _080B7C88
- bl LoadCompressedObjectPic
- ldr r0, _080B7C8C
- bl LoadCompressedObjectPalette
- ldr r0, _080B7C90
- lsls r6, 19
- movs r1, 0x98
- lsls r1, 13
- adds r6, r1
- asrs r6, 16
- lsls r5, 19
- movs r1, 0xB0
- lsls r1, 12
- adds r5, r1
- asrs r5, 16
- adds r1, r6, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, _080B7C94
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7C88: .4byte gUnknown_083CF584
-_080B7C8C: .4byte gUnknown_083CF58C
-_080B7C90: .4byte gSpriteTemplate_83CF56C
-_080B7C94: .4byte gUnknown_02038734
- thumb_func_end sub_80B7C14
-
- thumb_func_start RemoveMoneyLabelObject
-RemoveMoneyLabelObject: @ 80B7C98
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B7CDC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B7CE0
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r0, _080B7CE4
- bl FreeSpritePaletteByTag
- adds r2, r4, 0
- adds r2, 0xD
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl MenuZeroFillWindowRect
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7CDC: .4byte gUnknown_02038734
-_080B7CE0: .4byte gSprites
-_080B7CE4: .4byte 0x00002722
- thumb_func_end RemoveMoneyLabelObject
-
- thumb_func_start sub_80B7CE8
-sub_80B7CE8: @ 80B7CE8
- push {lr}
- ldr r0, _080B7D04
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B7D08
- ldrh r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080B7D04: .4byte gSaveBlock1
-_080B7D08: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80B7CE8
-
- thumb_func_start sub_80B7D0C
-sub_80B7D0C: @ 80B7D0C
- push {lr}
- ldr r0, _080B7D1C
- ldr r1, _080B7D20
- ldrh r1, [r1]
- bl sub_80B79E0
- pop {r0}
- bx r0
- .align 2, 0
-_080B7D1C: .4byte gSaveBlock1 + 0x490
-_080B7D20: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80B7D0C
-
- thumb_func_start AreMovesContestCombo
-AreMovesContestCombo: @ 80B7D24
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsls r1, 16
- ldr r2, _080B7D78
- lsrs r0, 13
- adds r0, r2
- ldrb r4, [r0, 0x2]
- mov r3, sp
- lsrs r1, 13
- adds r1, r2
- ldrb r0, [r1, 0x3]
- strb r0, [r3]
- mov r2, sp
- ldrb r0, [r1, 0x4]
- strb r0, [r2, 0x1]
- ldrb r0, [r1, 0x5]
- strb r0, [r2, 0x2]
- mov r0, sp
- ldrb r1, [r1, 0x6]
- strb r1, [r0, 0x3]
- cmp r4, 0
- beq _080B7D80
- mov r0, sp
- ldrb r0, [r0]
- cmp r4, r0
- beq _080B7D6E
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- beq _080B7D6E
- mov r0, sp
- ldrb r0, [r0, 0x2]
- cmp r4, r0
- beq _080B7D6E
- cmp r4, r1
- bne _080B7D80
-_080B7D6E:
- ldr r0, _080B7D7C
- adds r0, r4, r0
- ldrb r0, [r0]
- b _080B7D82
- .align 2, 0
-_080B7D78: .4byte gContestMoves
-_080B7D7C: .4byte gComboStarterLookupTable
-_080B7D80:
- movs r0, 0
-_080B7D82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AreMovesContestCombo
-
- thumb_func_start ContestEffect_00
-ContestEffect_00: @ 80B7D8C
- bx lr
- thumb_func_end ContestEffect_00
-
- thumb_func_start ContestEffect_01
-ContestEffect_01: @ 80B7D90
- push {lr}
- ldr r3, _080B7DB8
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7DB8: .4byte 0x020192d0
- thumb_func_end ContestEffect_01
-
- thumb_func_start ContestEffect_02
-ContestEffect_02: @ 80B7DBC
- push {lr}
- ldr r3, _080B7DE4
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r3, 0x11]
- movs r1, 0x1
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7DE4: .4byte 0x020192d0
- thumb_func_end ContestEffect_02
-
- thumb_func_start ContestEffect_03
-ContestEffect_03: @ 80B7DE8
- push {r4,lr}
- ldr r3, _080B7E30
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, r3, 0
- subs r4, 0x70
- adds r0, r4
- ldrb r1, [r0, 0x10]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x15]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x15]
- ldrb r0, [r3, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x71
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E30: .4byte 0x020192d0
- thumb_func_end ContestEffect_03
-
- thumb_func_start ContestEffect_04
-ContestEffect_04: @ 80B7E34
- push {lr}
- ldr r2, _080B7E58
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x70
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0, 0x12]
- ldrb r0, [r2, 0x11]
- movs r1, 0x2
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E58: .4byte 0x020192d0
- thumb_func_end ContestEffect_04
-
- thumb_func_start ContestEffect_05
-ContestEffect_05: @ 80B7E5C
- push {lr}
- ldr r3, _080B7E84
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0x3
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E84: .4byte 0x020192d0
- thumb_func_end ContestEffect_05
-
- thumb_func_start ContestEffect_06
-ContestEffect_06: @ 80B7E88
- push {lr}
- ldr r2, _080B7EAC
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x70
- adds r0, r1
- movs r1, 0x14
- strb r1, [r0, 0xF]
- ldrb r0, [r2, 0x11]
- movs r1, 0x4
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7EAC: .4byte 0x020192d0
- thumb_func_end ContestEffect_06
-
- thumb_func_start ContestEffect_07
-ContestEffect_07: @ 80B7EB0
- push {lr}
- ldr r3, _080B7ED8
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0x5
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7ED8: .4byte 0x020192d0
- thumb_func_end ContestEffect_07
-
- thumb_func_start ContestEffect_08
-ContestEffect_08: @ 80B7EDC
- push {r4,lr}
- movs r2, 0
- ldr r3, _080B7F38
- ldrb r0, [r3, 0x11]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- beq _080B7F1A
- subs r0, 0x1
- ldrb r4, [r3]
- cmp r0, r4
- beq _080B7F0A
- adds r4, r3, 0
- adds r3, r1, 0
-_080B7EF8:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080B7F0A
- ldrb r0, [r3]
- subs r0, 0x1
- adds r1, r2, r4
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B7EF8
-_080B7F0A:
- ldr r1, _080B7F38
- strb r2, [r1, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80B9120
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7F1A:
- cmp r2, 0
- bne _080B7F28
- ldr r0, _080B7F38
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B7F28:
- ldr r0, _080B7F38
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7F38: .4byte 0x020192d0
- thumb_func_end ContestEffect_08
-
- thumb_func_start ContestEffect_09
-ContestEffect_09: @ 80B7F3C
- push {r4-r6,lr}
- movs r2, 0
- ldr r1, _080B7F9C
- ldrb r0, [r1, 0x11]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080B7F7C
- movs r3, 0
- adds r5, r1, 0
- adds r6, r5, 0
- adds r6, 0x8
-_080B7F54:
- adds r1, r2, r5
- ldrb r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B7F64
- adds r0, r3, r6
- strb r2, [r0]
- adds r3, 0x1
-_080B7F64:
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B7F54
- ldr r0, _080B7F9C
- adds r0, 0x8
- adds r0, r3, r0
- movs r1, 0xFF
- strb r1, [r0]
- bl sub_80B9120
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7F7C:
- cmp r2, 0
- bne _080B7F8A
- ldr r0, _080B7F9C
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B7F8A:
- ldr r0, _080B7F9C
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7F9C: .4byte 0x020192d0
- thumb_func_end ContestEffect_09
-
- thumb_func_start ContestEffect_14
-ContestEffect_14: @ 80B7FA0
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x14
- cmp r0, 0x1
- bls _080B7FC2
- movs r1, 0x3C
- cmp r0, 0x7
- bhi _080B7FC2
- movs r1, 0x28
-_080B7FC2:
- ldr r0, _080B7FD0
- strh r1, [r0, 0x4]
- bl ContestEffect_08
- pop {r0}
- bx r0
- .align 2, 0
-_080B7FD0: .4byte 0x020192d0
- thumb_func_end ContestEffect_14
-
- thumb_func_start ContestEffect_15
-ContestEffect_15: @ 80B7FD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _080B806C
- ldrb r6, [r0, 0x11]
- adds r1, r6, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0
- beq _080B804A
- movs r5, 0
- mov r4, r8
-_080B7FEE:
- adds r0, r6, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8044
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r0, 0
- beq _080B8032
- movs r1, 0xA
- cmp r0, 0x2
- bls _080B8032
- movs r1, 0x14
- cmp r0, 0x4
- bls _080B8032
- movs r1, 0x1E
- cmp r0, 0x6
- bls _080B8032
- movs r1, 0x3C
- cmp r0, 0x8
- bhi _080B8032
- movs r1, 0x28
-_080B8032:
- strh r1, [r4, 0x4]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8044
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B8044:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B7FEE
-_080B804A:
- mov r1, r8
- ldrb r0, [r1, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- cmp r7, 0
- bne _080B8062
- mov r1, r8
- ldrb r0, [r1, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8062:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B806C: .4byte 0x020192d0
- thumb_func_end ContestEffect_15
-
- thumb_func_start ContestEffect_16
-ContestEffect_16: @ 80B8070
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r0, _080B8108
- ldrb r7, [r0, 0x11]
- adds r1, r7, r0
- ldrb r1, [r1]
- mov r10, r0
- cmp r1, 0
- beq _080B80E0
- movs r6, 0
- mov r8, r10
- mov r5, r10
- subs r5, 0x5B
-_080B8094:
- mov r1, r8
- adds r0, r7, r1
- adds r1, r6, r1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B80D8
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B80D8
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B80D8
- ldrb r0, [r5]
- movs r2, 0x11
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_80B13EC
- movs r0, 0x1
- mov r9, r0
-_080B80D8:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B8094
-_080B80E0:
- mov r1, r10
- ldrb r0, [r1, 0x11]
- movs r1, 0x7
- bl sub_80B13EC
- mov r2, r9
- cmp r2, 0
- bne _080B80FA
- mov r1, r10
- ldrb r0, [r1, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B80FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8108: .4byte 0x020192d0
- thumb_func_end ContestEffect_16
-
- thumb_func_start ContestEffect_17
-ContestEffect_17: @ 80B810C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r9, r0
- ldr r0, _080B8150
- ldrb r1, [r0, 0x11]
- mov r8, r1
- adds r1, r0
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080B817C
- movs r5, 0
- adds r4, r6, 0
- movs r7, 0
-_080B812E:
- mov r2, r8
- adds r0, r2, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8172
- adds r0, r6, 0
- subs r0, 0x70
- adds r0, r7, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B8154
- movs r0, 0x32
- b _080B8156
- .align 2, 0
-_080B8150: .4byte 0x020192d0
-_080B8154:
- movs r0, 0xA
-_080B8156:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8172
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080B8172:
- adds r7, 0x1C
- adds r5, 0x1
- ldr r6, _080B81A0
- cmp r5, 0x3
- ble _080B812E
-_080B817C:
- ldrb r0, [r6, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- mov r0, r9
- cmp r0, 0
- bne _080B8192
- ldrb r0, [r6, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8192:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81A0: .4byte 0x020192d0
- thumb_func_end ContestEffect_17
-
- thumb_func_start ContestEffect_18
-ContestEffect_18: @ 80B81A4
- push {r4,lr}
- ldr r4, _080B81D0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x11]
- bl ContestEffect_09
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81D0: .4byte 0x020192d0
- thumb_func_end ContestEffect_18
-
- thumb_func_start ContestEffect_19
-ContestEffect_19: @ 80B81D4
- push {r4,lr}
- ldr r4, _080B8208
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- ldr r1, _080B820C
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- bl sub_80B9038
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8208: .4byte 0x020192d0
-_080B820C: .4byte gContestMoves
- thumb_func_end ContestEffect_19
-
- thumb_func_start ContestEffect_20
-ContestEffect_20: @ 80B8210
- push {lr}
- movs r0, 0
- bl sub_80B9038
- ldr r0, _080B8228
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8228: .4byte 0x020192d0
- thumb_func_end ContestEffect_20
-
- thumb_func_start ContestEffect_21
-ContestEffect_21: @ 80B822C
- push {lr}
- movs r0, 0x1
- bl sub_80B9038
- ldr r0, _080B8244
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8244: .4byte 0x020192d0
- thumb_func_end ContestEffect_21
-
- thumb_func_start ContestEffect_22
-ContestEffect_22: @ 80B8248
- push {lr}
- movs r0, 0x2
- bl sub_80B9038
- ldr r0, _080B8260
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8260: .4byte 0x020192d0
- thumb_func_end ContestEffect_22
-
- thumb_func_start ContestEffect_23
-ContestEffect_23: @ 80B8264
- push {lr}
- movs r0, 0x3
- bl sub_80B9038
- ldr r0, _080B827C
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B827C: .4byte 0x020192d0
- thumb_func_end ContestEffect_23
-
- thumb_func_start ContestEffect_24
-ContestEffect_24: @ 80B8280
- push {lr}
- movs r0, 0x4
- bl sub_80B9038
- ldr r0, _080B8298
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8298: .4byte 0x020192d0
- thumb_func_end ContestEffect_24
-
- thumb_func_start ContestEffect_25
-ContestEffect_25: @ 80B829C
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _080B82E0
- ldrb r1, [r0, 0x11]
- adds r1, r0
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x3
- beq _080B82F4
- movs r5, 0
- adds r6, r7, 0
-_080B82B2:
- ldrb r0, [r6, 0x11]
- adds r0, r6
- ldrb r0, [r0]
- adds r0, 0x1
- adds r1, r5, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B82EE
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B82E4
- adds r0, r4, 0
- bl sub_80B157C
- adds r0, r4, 0
- movs r1, 0xA
- b _080B82E8
- .align 2, 0
-_080B82E0: .4byte 0x020192d0
-_080B82E4:
- adds r0, r4, 0
- movs r1, 0x3C
-_080B82E8:
- bl sub_80B13EC
- movs r4, 0x1
-_080B82EE:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B82B2
-_080B82F4:
- ldrb r0, [r7, 0x11]
- movs r1, 0x9
- bl sub_80B13EC
- cmp r4, 0
- bne _080B8308
- ldrb r0, [r7, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8308:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_25
-
- thumb_func_start ContestEffect_26
-ContestEffect_26: @ 80B8310
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r0, 0
- mov r9, r0
- movs r1, 0
- str r1, [sp, 0x18]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x5
- bl memset
- movs r6, 0
- movs r4, 0
- add r2, sp, 0x10
- mov r8, r2
- add r3, sp, 0x8
- mov r10, r3
- ldr r5, _080B8384
- adds r7, r5, 0
- subs r7, 0x70
-_080B8340:
- ldrb r0, [r5, 0x11]
- adds r0, r5
- adds r1, r6, r5
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080B836E
- ldrb r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B836E
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080B836E
- mov r1, sp
- adds r0, r1, r4
- strb r6, [r0]
- adds r4, 0x1
-_080B836E:
- adds r7, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B8340
- cmp r4, 0x1
- bne _080B8388
- movs r0, 0x3C
- mov r2, r8
- strh r0, [r2]
- b _080B83B6
- .align 2, 0
-_080B8384: .4byte 0x020192d0
-_080B8388:
- cmp r4, 0x2
- bne _080B8396
- movs r0, 0x1E
- mov r3, r8
- strh r0, [r3]
- strh r0, [r3, 0x2]
- b _080B83B6
-_080B8396:
- cmp r4, 0x3
- bne _080B83A6
- movs r0, 0x14
- mov r7, r8
- strh r0, [r7]
- strh r0, [r7, 0x2]
- strh r0, [r7, 0x4]
- b _080B83B6
-_080B83A6:
- mov r1, r8
- movs r2, 0
- mov r0, r8
- adds r0, 0x6
-_080B83AE:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080B83AE
-_080B83B6:
- movs r6, 0
- movs r7, 0
- mov r4, r10
-_080B83BC:
- ldr r0, _080B83F0
- adds r5, r7, r0
- ldrb r1, [r5, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B83FC
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _080B83FC
- ldr r1, _080B83F4
- ldrh r0, [r5, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r1, _080B83F8
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- b _080B83FE
- .align 2, 0
-_080B83F0: .4byte 0x02019260
-_080B83F4: .4byte gContestMoves
-_080B83F8: .4byte gComboStarterLookupTable
-_080B83FC:
- movs r0, 0
-_080B83FE:
- strh r0, [r4]
- ldr r5, _080B8494
- adds r0, r7, r5
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4]
- subs r0, r1
- strh r0, [r4]
- adds r7, 0x1C
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B83BC
- mov r2, r8
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080B84CA
- movs r6, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080B84CA
- adds r5, 0x7D
- mov r4, sp
-_080B8442:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 1
- add r1, r8
- movs r7, 0
- ldrsh r2, [r1, r7]
- ldrb r3, [r4]
- lsls r1, r3, 1
- add r1, r10
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r2, r1
- cmp r0, r2
- bge _080B8498
- adds r0, r3, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B84A2
- ldrb r0, [r4]
- bl sub_80B157C
- ldrb r0, [r4]
- movs r1, 0xA
- bl sub_80B13EC
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _080B849C
- .align 2, 0
-_080B8494: .4byte 0x02019260
-_080B8498:
- movs r0, 0x1
- str r0, [sp, 0x18]
-_080B849C:
- ldr r1, [sp, 0x18]
- cmp r1, 0
- beq _080B84B8
-_080B84A2:
- movs r2, 0
- str r2, [sp, 0x18]
- ldrb r0, [r4]
- movs r1, 0x3C
- bl sub_80B13EC
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080B84B8:
- ldrb r0, [r4]
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- adds r4, 0x1
- adds r6, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080B8442
-_080B84CA:
- ldr r4, _080B84F4
- ldrb r0, [r4, 0x11]
- movs r1, 0xB
- bl sub_80B13EC
- mov r3, r9
- cmp r3, 0
- bne _080B84E2
- ldrb r0, [r4, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B84E2:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B84F4: .4byte 0x020192d0
- thumb_func_end ContestEffect_26
-
- thumb_func_start ContestEffect_27
-ContestEffect_27: @ 80B84F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r6, 0
- ldr r7, _080B8580
- adds r5, r7, 0
- subs r5, 0x63
-_080B850A:
- ldrb r0, [r7, 0x11]
- adds r0, r7
- adds r1, r6, r7
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8556
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- ble _080B8556
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B8556
- movs r0, 0
- strb r0, [r5]
- ldrb r1, [r5, 0x3]
- movs r2, 0x31
- negs r2, r2
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r5, 0x3]
- adds r0, r4, 0
- movs r1, 0xD
- bl sub_80B13EC
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B8556:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B850A
- ldr r4, _080B8580
- ldrb r0, [r4, 0x11]
- movs r1, 0xC
- bl sub_80B13EC
- mov r0, r8
- cmp r0, 0
- bne _080B8576
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl sub_80B1404
-_080B8576:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8580: .4byte 0x020192d0
- thumb_func_end ContestEffect_27
-
- thumb_func_start ContestEffect_28
-ContestEffect_28: @ 80B8584
- push {r4-r7,lr}
- movs r7, 0
- movs r5, 0
- ldr r4, _080B85B0
- movs r6, 0
-_080B858E:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B85CE
- adds r0, r4, 0
- subs r0, 0x70
- adds r0, r6, r0
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080B85B4
- movs r0, 0x28
- b _080B85B6
- .align 2, 0
-_080B85B0: .4byte 0x020192d0
-_080B85B4:
- movs r0, 0xA
-_080B85B6:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B85CE
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B85CE:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B858E
- ldr r4, _080B85F4
- ldrb r0, [r4, 0x11]
- movs r1, 0xE
- bl sub_80B13EC
- cmp r7, 0
- bne _080B85EC
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl sub_80B1404
-_080B85EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B85F4: .4byte 0x020192d0
- thumb_func_end ContestEffect_28
-
- thumb_func_start ContestEffect_29
-ContestEffect_29: @ 80B85F8
- push {r4,lr}
- ldr r0, _080B863C
- ldr r4, _080B8640
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B8636
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8644
- ldr r2, _080B8648
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0xF
- bl sub_80B13EC
-_080B8636:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B863C: .4byte gUnknown_02038696
-_080B8640: .4byte 0x020192d0
-_080B8644: .4byte gContestEffects
-_080B8648: .4byte gContestMoves
- thumb_func_end ContestEffect_29
-
- thumb_func_start ContestEffect_30
-ContestEffect_30: @ 80B864C
- push {r4,lr}
- ldr r0, _080B8690
- ldr r4, _080B8694
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080B868A
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8698
- ldr r2, _080B869C
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x10
- bl sub_80B13EC
-_080B868A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8690: .4byte gUnknown_02038696
-_080B8694: .4byte 0x020192d0
-_080B8698: .4byte gContestEffects
-_080B869C: .4byte gContestMoves
- thumb_func_end ContestEffect_30
-
- thumb_func_start ContestEffect_31
-ContestEffect_31: @ 80B86A0
- push {r4-r7,lr}
- movs r1, 0
- movs r3, 0
- ldr r4, _080B86EC
- ldrb r0, [r4, 0x11]
- adds r0, r4
- ldrb r5, [r0]
- movs r2, 0
- adds r6, r4, 0
- subs r6, 0x70
-_080B86B4:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r5, r0
- bls _080B86C4
- adds r0, r2, r6
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- adds r3, r0
-_080B86C4:
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, 0x3
- ble _080B86B4
- cmp r3, 0
- bge _080B86D2
- movs r3, 0
-_080B86D2:
- ldr r4, _080B86EC
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B86E2
- cmp r3, 0
- bne _080B86F0
-_080B86E2:
- adds r0, r2, 0
- movs r1, 0x12
- bl sub_80B13EC
- b _080B8710
- .align 2, 0
-_080B86EC: .4byte 0x020192d0
-_080B86F0:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- lsrs r0, r3, 31
- adds r0, r3, r0
- asrs r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x11
- bl sub_80B13EC
-_080B8710:
- ldr r4, _080B873C
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r0, r5
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- bl sub_80B9224
- ldrb r2, [r4, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B873C: .4byte 0x020192d0
- thumb_func_end ContestEffect_31
-
- thumb_func_start ContestEffect_32
-ContestEffect_32: @ 80B8740
- push {r4-r7,lr}
- movs r6, 0
- ldr r0, _080B8794
- ldrb r1, [r0, 0x11]
- adds r3, r1, r0
- ldrb r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _080B8788
- movs r2, 0
- adds r7, r4, 0
- adds r0, r1, 0
- subs r1, r0, 0x1
- movs r3, 0
- adds r5, r4, 0
- subs r5, 0x70
-_080B8760:
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _080B876C
- adds r0, r3, r5
- ldrh r6, [r0, 0x2]
-_080B876C:
- adds r3, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B8760
- adds r0, r4, 0
- ldrb r2, [r0, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8788
- lsls r0, r6, 16
- asrs r3, r0, 16
- cmp r3, 0
- bgt _080B8798
-_080B8788:
- ldrb r0, [r4, 0x11]
- movs r1, 0x14
- bl sub_80B13EC
- b _080B87B2
- .align 2, 0
-_080B8794: .4byte 0x020192d0
-_080B8798:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x2]
- adds r0, r3, r0
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x13
- bl sub_80B13EC
-_080B87B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_32
-
- thumb_func_start ContestEffect_33
-ContestEffect_33: @ 80B87B8
- push {lr}
- ldr r0, _080B87D8
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r3, [r1]
- mov r12, r0
- cmp r3, 0
- bne _080B87DC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- movs r1, 0xA
- b _080B87EE
- .align 2, 0
-_080B87D8: .4byte 0x020192d0
-_080B87DC:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
-_080B87EE:
- strh r1, [r0, 0x2]
- cmp r3, 0
- bne _080B8800
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x15
- bl sub_80B13EC
- b _080B882A
-_080B8800:
- cmp r3, 0x1
- bne _080B8810
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x16
- bl sub_80B13EC
- b _080B882A
-_080B8810:
- cmp r3, 0x2
- bne _080B8820
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x17
- bl sub_80B13EC
- b _080B882A
-_080B8820:
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x18
- bl sub_80B13EC
-_080B882A:
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_33
-
- thumb_func_start ContestEffect_34
-ContestEffect_34: @ 80B8830
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- bhi _080B885C
- movs r4, 0xA
- ldr r0, _080B8858
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8858: .4byte 0x020192d0
-_080B885C:
- cmp r0, 0x5
- bhi _080B8874
- movs r4, 0x14
- ldr r0, _080B8870
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8870: .4byte 0x020192d0
-_080B8874:
- cmp r0, 0x7
- bhi _080B888C
- movs r4, 0x28
- ldr r0, _080B8888
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8888: .4byte 0x020192d0
-_080B888C:
- cmp r1, 0x8
- bhi _080B88A4
- movs r4, 0x3C
- ldr r0, _080B88A0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B88A0: .4byte 0x020192d0
-_080B88A4:
- movs r4, 0x50
- ldr r0, _080B88C8
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80B13EC
-_080B88B0:
- ldr r0, _080B88C8
- ldrb r2, [r0, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- subs r0, 0x70
- adds r1, r0
- strh r4, [r1, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B88C8: .4byte 0x020192d0
- thumb_func_end ContestEffect_34
-
- thumb_func_start ContestEffect_35
-ContestEffect_35: @ 80B88CC
- push {r4-r7,lr}
- ldr r1, _080B8940
- ldrb r0, [r1, 0x11]
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r12, r1
- cmp r2, 0
- beq _080B8994
- ldrb r5, [r1]
- mov r6, r12
- subs r6, 0x70
-_080B88EA:
- movs r2, 0
- lsls r0, r4, 24
- asrs r1, r0, 24
- adds r4, r0, 0
- cmp r5, r1
- beq _080B8910
- ldr r3, _080B8940
-_080B88F8:
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080B8910
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080B88F8
-_080B8910:
- lsls r2, 24
- asrs r1, r2, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r6
- ldrb r1, [r3, 0xB]
- movs r0, 0x80
- ands r0, r1
- adds r7, r2, 0
- cmp r0, 0
- bne _080B8932
- ldrb r1, [r3, 0xC]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080B8944
-_080B8932:
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r4, r1
- lsrs r4, r0, 24
- cmp r0, 0
- blt _080B8994
- b _080B88EA
- .align 2, 0
-_080B8940: .4byte 0x020192d0
-_080B8944:
- mov r2, r12
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r12
- subs r3, 0x70
- adds r5, r0, r3
- ldrh r0, [r5, 0x6]
- ldr r4, _080B899C
- lsls r0, 3
- adds r6, r0, r4
- ldrb r2, [r6, 0x1]
- lsls r2, 29
- asrs r1, r7, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r2, r0
- bne _080B8994
- ldr r1, _080B89A0
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r5, 0x2]
- mov r2, r12
- ldrb r0, [r2, 0x11]
- movs r1, 0x1F
- bl sub_80B13EC
-_080B8994:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B899C: .4byte gContestMoves
-_080B89A0: .4byte gContestEffects
- thumb_func_end ContestEffect_35
-
- thumb_func_start ContestEffect_36
-ContestEffect_36: @ 80B89A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080B8A28
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0
- beq _080B8A3C
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r8
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- mov r9, r0
- movs r4, 0
- mov r6, r8
- ldr r0, _080B8A2C
- mov r12, r0
- movs r7, 0
-_080B89D4:
- ldrb r2, [r6, 0x11]
- adds r0, r2, r6
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8A34
- mov r1, r9
- lsls r0, r1, 3
- mov r1, r12
- adds r3, r0, r1
- ldrb r1, [r3, 0x1]
- lsls r1, 29
- mov r5, r8
- subs r5, 0x70
- adds r0, r7, r5
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r12
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r1, r0
- beq _080B8A34
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldr r2, _080B8A30
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r6, 0x11]
- movs r1, 0x20
- bl sub_80B13EC
- b _080B8A3C
- .align 2, 0
-_080B8A28: .4byte 0x020192d0
-_080B8A2C: .4byte gContestMoves
-_080B8A30: .4byte gContestEffects
-_080B8A34:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B89D4
-_080B8A3C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_36
-
- thumb_func_start ContestEffect_37
-ContestEffect_37: @ 80B8A48
- push {r4-r7,lr}
- ldr r1, _080B8A94
- ldrb r0, [r1, 0x11]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8AB0
- movs r5, 0
- adds r4, r1, 0
- adds r6, r4, 0
- subs r6, 0x70
- adds r7, r6, 0
-_080B8A60:
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8AA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r2, r0, r7
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _080B8A98
- adds r0, r1, 0
- lsls r0, 1
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x21
- bl sub_80B13EC
- b _080B8AA8
- .align 2, 0
-_080B8A94: .4byte 0x020192d0
-_080B8A98:
- cmp r1, r0
- bge _080B8AA8
- movs r0, 0
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x22
- bl sub_80B13EC
-_080B8AA8:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B8A60
-_080B8AB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_37
-
- thumb_func_start ContestEffect_38
-ContestEffect_38: @ 80B8AB8
- push {r4,r5,lr}
- ldr r4, _080B8AFC
- ldrb r2, [r4, 0x11]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r1, r0, r5
- ldrb r3, [r1, 0xD]
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- cmp r0, 0x1D
- bgt _080B8B00
- adds r0, r3, 0
- adds r0, 0xA
- strb r0, [r1, 0xD]
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r2, [r0, 0x10]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r4, 0x11]
- movs r1, 0x23
- bl sub_80B13EC
- b _080B8B08
- .align 2, 0
-_080B8AFC: .4byte 0x020192d0
-_080B8B00:
- adds r0, r2, 0
- movs r1, 0x3A
- bl sub_80B13EC
-_080B8B08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_38
-
- thumb_func_start ContestEffect_39
-ContestEffect_39: @ 80B8B10
- push {r4,lr}
- ldr r3, _080B8B48
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, r3, 0
- subs r4, 0x70
- adds r0, r4
- ldrb r1, [r0, 0x11]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080B8B4C
- adds r0, r1, 0
- movs r1, 0x24
- bl sub_80B13EC
- b _080B8B54
- .align 2, 0
-_080B8B48: .4byte 0x020192d0
-_080B8B4C:
- adds r0, r1, 0
- movs r1, 0x3B
- bl sub_80B13EC
-_080B8B54:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_39
-
- thumb_func_start ContestEffect_40
-ContestEffect_40: @ 80B8B5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _080B8BE4
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _080B8B6E
- b _080B8C76
-_080B8B6E:
- movs r6, 0
- adds r7, r1, 0
- adds r7, 0xCC
- adds r3, r1, 0
- adds r3, 0x5C
-_080B8B78:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8B78
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0
- mov r12, r7
- movs r4, 0x70
- negs r4, r4
- adds r4, r7
- mov r8, r4
-_080B8BAE:
- movs r5, 0
-_080B8BB0:
- lsls r0, r5, 24
- asrs r2, r0, 24
- mov r0, r12
- ldrb r0, [r0, 0x11]
- cmp r2, r0
- beq _080B8BE8
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r1, sp
- adds r4, r1, r2
- ldrb r0, [r4]
- cmp r3, r0
- bne _080B8BE8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080B8BE8
- adds r0, r3, 0x1
- strb r0, [r4]
- b _080B8BF8
- .align 2, 0
-_080B8BE4: .4byte 0x02019204
-_080B8BE8:
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BB0
-_080B8BF8:
- cmp r5, 0x4
- beq _080B8C0C
- lsls r0, r6, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BAE
-_080B8C0C:
- ldrb r0, [r7, 0x11]
- mov r4, sp
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r7, 0
- subs r3, 0x70
- adds r1, r3
- ldrb r2, [r1, 0x10]
- movs r0, 0x3F
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x10]
- movs r6, 0
-_080B8C32:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- mov r4, sp
- adds r2, r4, r1
- ldrb r2, [r2]
- strb r2, [r0, 0x19]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8C32
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r7, 0
- subs r0, 0x70
- adds r1, r0
- ldrb r2, [r1, 0x11]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1, 0x11]
- ldrb r0, [r7, 0x11]
- movs r1, 0x25
- bl sub_80B13EC
-_080B8C76:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_40
-
- thumb_func_start ContestEffect_41
-ContestEffect_41: @ 80B8C84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080B8D14
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _080B8C98
- b _080B8DA6
-_080B8C98:
- movs r6, 0
- adds r7, r1, 0
- adds r7, 0xCC
- adds r3, r1, 0
- adds r3, 0x5C
-_080B8CA2:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8CA2
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0x3
- mov r12, r7
- movs r4, 0x70
- negs r4, r4
- adds r4, r7
- mov r8, r4
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
-_080B8CDE:
- movs r5, 0
-_080B8CE0:
- lsls r0, r5, 24
- asrs r2, r0, 24
- mov r1, r12
- ldrb r1, [r1, 0x11]
- cmp r2, r1
- beq _080B8D18
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r0, sp
- adds r4, r0, r2
- ldrb r1, [r4]
- cmp r3, r1
- bne _080B8D18
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080B8D18
- subs r0, r3, 0x1
- strb r0, [r4]
- b _080B8D28
- .align 2, 0
-_080B8D14: .4byte 0x02019204
-_080B8D18:
- lsls r0, r5, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8CE0
-_080B8D28:
- cmp r5, 0x4
- beq _080B8D3C
- lsls r0, r6, 24
- movs r4, 0xFF
- lsls r4, 24
- adds r0, r4
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, r9
- bgt _080B8CDE
-_080B8D3C:
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x3
- strb r0, [r1]
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r7, 0
- subs r3, 0x70
- adds r1, r3
- ldrb r2, [r1, 0x10]
- movs r0, 0x3F
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x10]
- movs r6, 0
-_080B8D62:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- mov r4, sp
- adds r2, r4, r1
- ldrb r2, [r2]
- strb r2, [r0, 0x19]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8D62
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r7, 0
- subs r0, 0x70
- adds r1, r0
- ldrb r2, [r1, 0x11]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x11]
- ldrb r0, [r7, 0x11]
- movs r1, 0x26
- bl sub_80B13EC
-_080B8DA6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_41
-
- thumb_func_start ContestEffect_42
-ContestEffect_42: @ 80B8DB4
- bx lr
- thumb_func_end ContestEffect_42
-
- thumb_func_start ContestEffect_43
-ContestEffect_43: @ 80B8DB8
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _080B8E30
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _080B8EAE
- movs r6, 0
- add r3, sp, 0x4
- adds r5, r1, 0
- adds r5, 0x5C
- adds r4, r3, 0
-_080B8DCE:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8DCE
- movs r6, 0
- adds r7, r3, 0
-_080B8DF6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r6, 24
- asrs r2, 24
- movs r1, 0x4
- subs r1, r2
- bl __modsi3
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0
-_080B8E10:
- lsls r0, r1, 24
- asrs r2, r0, 24
- adds r3, r7, r2
- ldrb r1, [r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080B8E3A
- cmp r4, 0
- bne _080B8E34
- mov r1, sp
- adds r0, r1, r2
- strb r6, [r0]
- movs r0, 0xFF
- strb r0, [r3]
- b _080B8E48
- .align 2, 0
-_080B8E30: .4byte 0x02019204
-_080B8E34:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080B8E3A:
- movs r3, 0x80
- lsls r3, 17
- adds r0, r5, r3
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8E10
-_080B8E48:
- lsls r0, r6, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8DF6
- movs r6, 0
- ldr r4, _080B8EB8
- adds r7, r4, 0
- subs r7, 0x70
- movs r3, 0x3F
- mov r12, r3
- movs r5, 0x80
-_080B8E66:
- lsls r2, r6, 24
- asrs r2, 24
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- mov r3, sp
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x19]
- ldrb r3, [r1, 0x10]
- mov r0, r12
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x10]
- adds r2, 0x1
- lsls r2, 24
- lsrs r6, r2, 24
- asrs r2, 24
- cmp r2, 0x3
- ble _080B8E66
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r4, 0x11]
- movs r1, 0x27
- bl sub_80B13EC
-_080B8EAE:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8EB8: .4byte 0x020192d0
- thumb_func_end ContestEffect_43
-
- thumb_func_start ContestEffect_44
-ContestEffect_44: @ 80B8EBC
- push {lr}
- ldr r3, _080B8EF0
- ldr r1, _080B8EF4
- ldrb r2, [r1, 0x11]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- subs r1, 0x70
- adds r2, r0, r1
- ldrh r0, [r2, 0x6]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- ldr r1, _080B8EF8
- lsrs r0, 29
- ldrh r1, [r1]
- cmp r0, r1
- beq _080B8EEA
- ldrb r0, [r2, 0x11]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x11]
-_080B8EEA:
- pop {r0}
- bx r0
- .align 2, 0
-_080B8EF0: .4byte gContestMoves
-_080B8EF4: .4byte 0x020192d0
-_080B8EF8: .4byte gUnknown_0203869C
- thumb_func_end ContestEffect_44
-
- thumb_func_start ContestEffect_45
-ContestEffect_45: @ 80B8EFC
- push {r4-r7,lr}
- movs r7, 0
- movs r5, 0
- ldr r4, _080B8F34
- movs r6, 0
-_080B8F06:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8F52
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r6, r0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0
- ble _080B8F38
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x4]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_80B9268
- b _080B8F3A
- .align 2, 0
-_080B8F34: .4byte 0x020192d0
-_080B8F38:
- movs r0, 0xA
-_080B8F3A:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8F52
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B8F52:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B8F06
- cmp r7, 0
- bne _080B8F68
- ldr r0, _080B8F78
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8F68:
- ldr r0, _080B8F78
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8F78: .4byte 0x020192d0
- thumb_func_end ContestEffect_45
-
- thumb_func_start ContestEffect_46
-ContestEffect_46: @ 80B8F7C
- push {r4,lr}
- ldr r0, _080B8F98
- movs r1, 0x13
- ldrsb r1, [r0, r1]
- cmp r1, 0
- bne _080B8F9C
- movs r4, 0xA
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80B13EC
- b _080B8FDE
- .align 2, 0
-_080B8F98: .4byte 0x02019204
-_080B8F9C:
- cmp r1, 0x1
- bne _080B8FAE
- movs r4, 0x14
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80B13EC
- b _080B8FDE
-_080B8FAE:
- cmp r1, 0x2
- bne _080B8FC0
- movs r4, 0x1E
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80B13EC
- b _080B8FDE
-_080B8FC0:
- cmp r1, 0x3
- bne _080B8FD2
- movs r4, 0x32
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80B13EC
- b _080B8FDE
-_080B8FD2:
- movs r4, 0x3C
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80B13EC
-_080B8FDE:
- ldr r0, _080B8FF4
- ldrb r2, [r0, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- subs r0, 0x70
- adds r1, r0
- strh r4, [r1, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8FF4: .4byte 0x020192d0
- thumb_func_end ContestEffect_46
-
- thumb_func_start ContestEffect_47
-ContestEffect_47: @ 80B8FF8
- push {lr}
- ldr r3, _080B9034
- ldrb r2, [r3, 0x1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080B902E
- movs r0, 0x1
- orrs r2, r0
- movs r0, 0x58
- negs r0, r0
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0, 0x11]
- movs r0, 0x7
- ands r0, r1
- lsls r0, 1
- movs r1, 0xF
- negs r1, r1
- ands r2, r1
- orrs r2, r0
- strb r2, [r3, 0x1]
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x3D
- bl sub_80B13EC
-_080B902E:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9034: .4byte 0x02019328
- thumb_func_end ContestEffect_47
-
- thumb_func_start sub_80B9038
-sub_80B9038: @ 80B9038
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- movs r5, 0
- ldr r4, _080B907C
- ldr r0, _080B9080
- mov r9, r0
- movs r6, 0
-_080B9052:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B909A
- adds r0, r4, 0
- subs r0, 0x70
- adds r0, r6, r0
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- cmp r8, r0
- bne _080B9084
- movs r0, 0x28
- b _080B9086
- .align 2, 0
-_080B907C: .4byte 0x020192d0
-_080B9080: .4byte gContestMoves
-_080B9084:
- movs r0, 0xA
-_080B9086:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B909A
- adds r7, 0x1
-_080B909A:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B9052
- cmp r7, 0
- bne _080B90B0
- ldr r0, _080B90BC
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B90B0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B90BC: .4byte 0x020192d0
- thumb_func_end sub_80B9038
-
- thumb_func_start sub_80B90C0
-sub_80B90C0: @ 80B90C0
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080B90EC
- adds r0, r2, 0
- adds r0, 0xD
- adds r0, r3, r0
- movs r1, 0x1
- strb r1, [r0]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- subs r2, 0x70
- adds r2, r0, r2
- ldrb r1, [r2, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B90F0
- adds r0, r3, 0
- movs r1, 0x2D
- b _080B9116
- .align 2, 0
-_080B90EC: .4byte 0x020192d0
-_080B90F0:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- bne _080B910E
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B911A
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080B911A
- movs r0, 0x1
- b _080B911C
-_080B910E:
- subs r0, 0x1
- strb r0, [r2, 0x12]
- adds r0, r3, 0
- movs r1, 0x2C
-_080B9116:
- bl sub_80B13EC
-_080B911A:
- movs r0, 0
-_080B911C:
- pop {r1}
- bx r1
- thumb_func_end sub_80B90C0
-
- thumb_func_start sub_80B9120
-sub_80B9120: @ 80B9120
- push {r4-r7,lr}
- sub sp, 0xC
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r7, 0
- ldr r1, _080B918C
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _080B91D8
- adds r5, r1, 0
-_080B913A:
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r7, r0
- ldrb r4, [r0]
- adds r6, r4, 0
- adds r0, r4, 0
- str r1, [sp, 0x8]
- bl sub_80B90C0
- lsls r0, 24
- ldr r1, [sp, 0x8]
- cmp r0, 0
- beq _080B91C8
- ldrh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r1, 0x70
- adds r2, r0, r1
- ldrb r1, [r2, 0x10]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B9174
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- lsls r0, 1
- strh r0, [r5, 0x6]
-_080B9174:
- ldrb r0, [r2, 0x10]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _080B9190
- movs r0, 0xA
- strh r0, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x2F
- bl sub_80B13EC
- b _080B91C8
- .align 2, 0
-_080B918C: .4byte 0x020192d0
-_080B9190:
- ldrb r1, [r2, 0xF]
- ldrh r0, [r5, 0x6]
- subs r0, r1
- adds r1, r0, 0
- strh r0, [r5, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _080B91AC
- strh r3, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x2E
- bl sub_80B13EC
- b _080B91C8
-_080B91AC:
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_80B9200
- ldrb r1, [r5, 0x6]
- adds r0, r6, 0
- bl sub_80B141C
- lsls r0, r6, 1
- mov r2, sp
- adds r1, r2, r0
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
-_080B91C8:
- adds r7, 0x1
- ldr r1, _080B91E8
- adds r0, r1, 0
- adds r0, 0x8
- adds r0, r7, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080B913A
-_080B91D8:
- movs r7, 0
- mov r1, sp
-_080B91DC:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B91EC
- movs r0, 0x1
- b _080B91F6
- .align 2, 0
-_080B91E8: .4byte 0x020192d0
-_080B91EC:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _080B91DC
- movs r0, 0
-_080B91F6:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9120
-
- thumb_func_start sub_80B9200
-sub_80B9200: @ 80B9200
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- ldr r0, _080B9220
- adds r2, r0
- ldrh r0, [r2, 0x2]
- subs r0, r1
- strh r0, [r2, 0x2]
- ldrb r0, [r2, 0xE]
- adds r1, r0
- strb r1, [r2, 0xE]
- bx lr
- .align 2, 0
-_080B9220: .4byte 0x02019260
- thumb_func_end sub_80B9200
-
- thumb_func_start sub_80B9224
-sub_80B9224: @ 80B9224
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080B9234
- negs r0, r4
-_080B9234:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, 0
- bge _080B9252
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B925C
- adds r0, r4, 0
- subs r0, 0xA
- adds r0, r1, r0
- b _080B9258
-_080B9252:
- lsls r0, 16
- asrs r0, 16
- subs r0, r4, r0
-_080B9258:
- lsls r0, 16
- lsrs r5, r0, 16
-_080B925C:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9224
-
- thumb_func_start sub_80B9268
-sub_80B9268: @ 80B9268
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080B9278
- negs r0, r4
-_080B9278:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B9290
- adds r0, r4, 0
- adds r0, 0xA
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080B9290:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9268
-
- thumb_func_start sub_80B929C
-sub_80B929C: @ 80B929C
- push {lr}
- ldr r0, _080B92A8
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_080B92A8: .4byte sub_80B9484
- thumb_func_end sub_80B929C
-
- thumb_func_start sub_80B92AC
-sub_80B92AC: @ 80B92AC
- push {r4-r6,lr}
- bl sub_80BC300
- bl sub_80C045C
- ldr r6, _080B9364
- ldr r0, _080B9368
- ldr r1, [r0]
- movs r2, 0xC8
- lsls r2, 4
- adds r0, r6, 0
- bl memcpy
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r6, r1
- ldr r1, _080B936C
- ldr r1, [r1]
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- ldr r2, _080B9370
- adds r0, r6, r2
- ldr r1, _080B9374
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r1, _080B9378
- adds r0, r6, r1
- ldr r1, _080B937C
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r2, _080B9380
- adds r0, r6, r2
- ldr r1, _080B9384
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r5, _080B9388
- ldr r4, _080B938C
- ldr r0, _080B9390
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x38
- bl memcpy
- ldr r2, _080B9394
- adds r1, r4, r2
- adds r0, r5, 0
- adds r0, 0x38
- movs r2, 0x38
- bl memcpy
- ldr r0, _080B9398
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8041324
- ldr r1, _080B939C
- adds r0, r6, r1
- ldr r1, _080B93A0
- ldr r1, [r1]
- movs r2, 0x78
- bl memcpy
- ldr r2, _080B93A4
- adds r0, r6, r2
- ldr r1, _080B93A8
- ldr r1, [r1]
- movs r2, 0xA4
- bl memcpy
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B935C
- bl sub_8126338
- ldr r2, _080B93AC
- adds r1, r6, r2
- strh r0, [r1]
-_080B935C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9364: .4byte 0x02018000
-_080B9368: .4byte gUnknown_083D026C
-_080B936C: .4byte gUnknown_083D0270
-_080B9370: .4byte 0x00001004
-_080B9374: .4byte gUnknown_083D0274
-_080B9378: .4byte 0x00001044
-_080B937C: .4byte gUnknown_083D0278
-_080B9380: .4byte 0x00001084
-_080B9384: .4byte gUnknown_083D027C
-_080B9388: .4byte gUnknown_02038738
-_080B938C: .4byte gSaveBlock1
-_080B9390: .4byte 0x0000303c
-_080B9394: .4byte 0x00003074
-_080B9398: .4byte 0x00002f9c
-_080B939C: .4byte 0x000010ac
-_080B93A0: .4byte gUnknown_083D0280
-_080B93A4: .4byte 0x00001124
-_080B93A8: .4byte gUnknown_083D0284
-_080B93AC: .4byte 0x000011c8
- thumb_func_end sub_80B92AC
-
- thumb_func_start sub_80B93B0
-sub_80B93B0: @ 80B93B0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080B9430
- ldr r6, _080B9434
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BD674
- movs r0, 0xC8
- lsls r0, 4
- adds r0, r5
- mov r8, r0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BFD44
- ldr r1, _080B9438
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80C0514
- ldr r1, _080B943C
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B1C
- ldr r1, _080B9440
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80FA4E4
- ldr r1, _080B9444
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl sub_80B9C6C
- ldr r1, _080B9448
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B70
- ldr r0, _080B944C
- adds r5, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80B9F3C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9430: .4byte 0x02008000
-_080B9434: .4byte 0x00001230
-_080B9438: .4byte 0x00001004
-_080B943C: .4byte 0x00001044
-_080B9440: .4byte 0x00001084
-_080B9444: .4byte 0x000010ac
-_080B9448: .4byte 0x00001124
-_080B944C: .4byte 0x000011c8
- thumb_func_end sub_80B93B0
-
- thumb_func_start sub_80B9450
-sub_80B9450: @ 80B9450
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9480
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _080B9478
- movs r0, 0xE2
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x8]
-_080B9478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9480: .4byte gTasks
- thumb_func_end sub_80B9450
-
- thumb_func_start sub_80B9484
-sub_80B9484: @ 80B9484
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B94A8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080B949E
- b _080B95E6
-_080B949E:
- lsls r0, 2
- ldr r1, _080B94AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B94A8: .4byte gUnknown_03004B28
-_080B94AC: .4byte _080B94B0
- .align 2, 0
-_080B94B0:
- .4byte _080B94C8
- .4byte _080B951C
- .4byte _080B9550
- .4byte _080B9570
- .4byte _080B95AC
- .4byte _080B95C0
-_080B94C8:
- ldr r0, _080B950C
- ldrb r0, [r0]
- bl sub_8007270
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- bl VarSet
- ldr r1, _080B9510
- movs r0, 0
- strb r0, [r1]
- bl sub_80B92AC
- bl sub_80C71D8
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080B9514
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, _080B9518
- movs r1, 0x51
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- b _080B95E6
- .align 2, 0
-_080B950C: .4byte gUnknown_0202E8CE
-_080B9510: .4byte gUnknown_03000718
-_080B9514: .4byte sub_80B95F0
-_080B9518: .4byte sub_80B9450
-_080B951C:
- ldr r2, _080B9548
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- movs r0, 0x2
- strh r0, [r4]
- ldr r0, _080B954C
- bl FlagSet
- bl sub_80C7240
- ldrb r0, [r4, 0x1E]
- bl DestroyTask
- b _080B95E6
- .align 2, 0
-_080B9548: .4byte gTasks
-_080B954C: .4byte 0x00000834
-_080B9550:
- ldr r0, _080B956C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0xE0
- bl PlaySE
- b _080B95E6
- .align 2, 0
-_080B956C: .4byte sub_80BA00C
-_080B9570:
- ldr r2, _080B95A4
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080B95E6
- movs r0, 0x4
- strh r0, [r4]
- bl sub_8083664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- bl sub_80720B0
- ldr r0, _080B95A8
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- strh r5, [r4, 0x10]
- b _080B95E6
- .align 2, 0
-_080B95A4: .4byte gTasks
-_080B95A8: .4byte gOtherText_MixingComplete
-_080B95AC:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B95E6
- movs r0, 0x5
- strh r0, [r4]
- b _080B95E6
-_080B95C0:
- ldr r2, _080B95EC
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- bl sub_8055588
- bl MenuZeroFillScreen
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B95E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B95EC: .4byte gTasks
- thumb_func_end sub_80B9484
-
- thumb_func_start sub_80B95F0
-sub_80B95F0: @ 80B95F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r7, _080B961C
- adds r5, r0, r7
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x64
- beq _080B9678
- cmp r1, 0x64
- bgt _080B962E
- cmp r1, 0x1
- bne _080B9612
- b _080B9734
-_080B9612:
- cmp r1, 0x1
- bgt _080B9620
- cmp r1, 0
- beq _080B9650
- b _080B97D6
- .align 2, 0
-_080B961C: .4byte gTasks
-_080B9620:
- cmp r1, 0x2
- bne _080B9626
- b _080B9760
-_080B9626:
- cmp r1, 0x5
- bne _080B962C
- b _080B97C0
-_080B962C:
- b _080B97D6
-_080B962E:
- cmp r1, 0xC9
- beq _080B96D0
- cmp r1, 0xC9
- bgt _080B963C
- cmp r1, 0x65
- beq _080B9690
- b _080B97D6
-_080B963C:
- ldr r0, _080B964C
- cmp r1, r0
- beq _080B9706
- adds r0, 0x63
- cmp r1, r0
- beq _080B971C
- b _080B97D6
- .align 2, 0
-_080B964C: .4byte 0x0000012d
-_080B9650:
- bl sub_80B9A78
- bl MenuDisplayMessageBox
- ldr r0, _080B9674
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0xE1
- lsls r0, 3
- strh r0, [r5, 0x18]
- movs r0, 0xC8
- lsls r0, 1
- strh r0, [r5, 0x8]
- bl ClearLinkCallback_2
- b _080B97D6
- .align 2, 0
-_080B9674: .4byte gOtherText_MixingRecordsWithFriend
-_080B9678:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080B9688
- b _080B97D6
-_080B9688:
- movs r0, 0
- strh r0, [r5, 0x20]
- movs r0, 0x65
- b _080B97D4
-_080B9690:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B96C2
- bl sub_800820C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _080B96B2
- b _080B97D6
-_080B96B2:
- movs r0, 0x15
- bl PlaySE
- movs r1, 0
- movs r0, 0xC9
- strh r0, [r5, 0x8]
- strh r1, [r5, 0x20]
- b _080B97D6
-_080B96C2:
- movs r0, 0x16
- bl PlaySE
- ldr r0, _080B96CC
- b _080B97D4
- .align 2, 0
-_080B96CC: .4byte 0x0000012d
-_080B96D0:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- ldrh r4, [r5, 0x20]
- adds r4, 0x1
- strh r4, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- cmp r4, r1
- ble _080B97D6
- bl sub_8007F4C
- movs r0, 0x1
- b _080B97D4
-_080B9706:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- movs r0, 0x1
- b _080B97D4
-_080B971C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B97D6
- movs r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0x20]
- b _080B97D6
-_080B9734:
- ldr r0, _080B9758
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B97D6
- ldr r4, _080B975C
- bl sub_80B9A58
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x5
- b _080B97D4
- .align 2, 0
-_080B9758: .4byte gReceivedRemoteLinkPlayers
-_080B975C: .4byte gStringVar1
-_080B9760:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x8]
- bl sub_80B9A58
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldr r0, _080B97B0
- str r0, [r5]
- ldr r4, _080B97B4
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- bl sub_80B9A50
- ldr r0, _080B97B8
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r7
- strh r6, [r0, 0x8]
- ldr r0, _080B97BC
- adds r4, r0
- adds r1, r7, r1
- adds r1, 0x12
- adds r0, r4, 0
- bl sub_80B9A50
- b _080B97D6
- .align 2, 0
-_080B97B0: .4byte sub_80B97DC
-_080B97B4: .4byte 0x02018000
-_080B97B8: .4byte sub_80B9890
-_080B97BC: .4byte 0xffff0000
-_080B97C0:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B97D6
- movs r0, 0
- strh r0, [r5, 0x1C]
- movs r0, 0x2
-_080B97D4:
- strh r0, [r5, 0x8]
-_080B97D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B95F0
-
- thumb_func_start sub_80B97DC
-sub_80B97DC: @ 80B97DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9800
- adds r4, r1, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080B9884
- lsls r0, r1, 2
- ldr r1, _080B9804
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B9800: .4byte gTasks
-_080B9804: .4byte _080B9808
- .align 2, 0
-_080B9808:
- .4byte _080B981C
- .4byte _080B9840
- .4byte _080B9884
- .4byte _080B9852
- .4byte _080B986E
-_080B981C:
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80B9A44
- adds r1, r0, 0
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- movs r0, 0xC8
- muls r0, r2
- adds r1, r0
- ldr r0, _080B983C
- movs r2, 0xC8
- bl memcpy
- b _080B9860
- .align 2, 0
-_080B983C: .4byte gBlockSendBuffer
-_080B9840:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B9860
- movs r0, 0x1
- bl sub_8007E9C
- b _080B9860
-_080B9852:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9868
-_080B9860:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B9884
-_080B9868:
- movs r0, 0
- strh r0, [r4, 0x8]
- b _080B9884
-_080B986E:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080B9884
- ldr r0, _080B988C
- str r0, [r4]
-_080B9884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B988C: .4byte sub_80B9A1C
- thumb_func_end sub_80B97DC
-
- thumb_func_start sub_80B9890
-sub_80B9890: @ 80B9890
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, _080B98D0
- adds r0, r1
- mov r10, r0
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- bl sub_8008198
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bne _080B998A
- movs r0, 0
- b _080B9966
- .align 2, 0
-_080B98D0: .4byte gTasks
-_080B98D4:
- ldr r1, [sp, 0x4]
- mov r2, r9
- asrs r1, r2
- movs r0, 0x1
- ands r1, r0
- movs r3, 0x1
- add r3, r9
- mov r8, r3
- cmp r1, 0
- beq _080B9960
- mov r0, r10
- adds r0, 0x12
- bl sub_80B9A44
- mov r1, r8
- lsls r4, r1, 1
- mov r5, r10
- adds r5, 0x8
- adds r4, r5, r4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0xC8
- muls r1, r3
- adds r0, r1
- ldr r7, _080B9930
- mov r1, r9
- muls r1, r7
- adds r6, r0, r1
- mov r0, r9
- str r3, [sp, 0xC]
- bl sub_80B9A68
- adds r1, r0, 0
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r2, 0x1
- ldr r3, [sp, 0xC]
- muls r0, r3
- cmp r0, r7
- bls _080B9934
- muls r2, r3
- subs r2, r7, r2
- adds r0, r6, 0
- bl memcpy
- b _080B993C
- .align 2, 0
-_080B9930: .4byte 0x00001230
-_080B9934:
- adds r0, r6, 0
- movs r2, 0xC8
- bl memcpy
-_080B993C:
- mov r0, r9
- bl ResetBlockReceivedFlag
- mov r2, r8
- lsls r1, r2, 1
- adds r1, r5, r1
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9960
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_080B9960:
- mov r3, r8
- lsls r0, r3, 24
- lsrs r0, 24
-_080B9966:
- mov r9, r0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r9, r0
- bcc _080B98D4
- ldr r2, _080B99B0
- mov r0, r10
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080B998A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x8]
- cmp r1, r0
- bne _080B999E
- ldr r0, [sp]
- bl DestroyTask
-_080B999E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99B0: .4byte gTasks
- thumb_func_end sub_80B9890
-
- thumb_func_start sub_80B99B4
-sub_80B99B4: @ 80B99B4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r2, _080B99E4
- adds r0, r2
- movs r4, 0x1C
- ldrsh r1, [r0, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B99DC
- adds r0, r3, 0
- bl DestroyTask
-_080B99DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99E4: .4byte gTasks
- thumb_func_end sub_80B99B4
-
- thumb_func_start sub_80B99E8
-sub_80B99E8: @ 80B99E8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9A10
- adds r1, r0
- ldr r0, _080B9A14
- str r0, [r1]
- ldr r0, _080B9A18
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9A0C
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- bl sub_80B93B0
-_080B9A0C:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9A10: .4byte gTasks
-_080B9A14: .4byte sub_80B99B4
-_080B9A18: .4byte gUnknown_03000718
- thumb_func_end sub_80B99E8
-
- thumb_func_start sub_80B9A1C
-sub_80B9A1C: @ 80B9A1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9A38
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080B9A3C
- str r0, [r1]
- ldr r1, _080B9A40
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080B9A38: .4byte gTasks
-_080B9A3C: .4byte sub_80B99E8
-_080B9A40: .4byte gUnknown_03000718
- thumb_func_end sub_80B9A1C
-
- thumb_func_start sub_80B9A44
-sub_80B9A44: @ 80B9A44
- adds r1, r0, 0
- ldrh r0, [r1]
- ldrh r1, [r1, 0x2]
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_80B9A44
-
- thumb_func_start sub_80B9A50
-sub_80B9A50: @ 80B9A50
- strh r0, [r1]
- lsrs r0, 16
- strh r0, [r1, 0x2]
- bx lr
- thumb_func_end sub_80B9A50
-
- thumb_func_start sub_80B9A58
-sub_80B9A58: @ 80B9A58
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80B9A58
-
- thumb_func_start sub_80B9A68
-sub_80B9A68: @ 80B9A68
- lsls r0, 24
- lsrs r0, 16
- ldr r1, _080B9A74
- adds r0, r1
- bx lr
- .align 2, 0
-_080B9A74: .4byte gBlockRecvBuffer
- thumb_func_end sub_80B9A68
-
- thumb_func_start sub_80B9A78
-sub_80B9A78: @ 80B9A78
- ldr r1, _080B9A80
- ldr r0, _080B9A84
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B9A80: .4byte gUnknown_03005D2C
-_080B9A84: .4byte 0x00001230
- thumb_func_end sub_80B9A78
-
- thumb_func_start sub_80B9A88
-sub_80B9A88: @ 80B9A88
- push {r4,lr}
- adds r4, r0, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080B9AC0
- cmp r0, 0x3
- bhi _080B9AA2
- cmp r0, 0x2
- beq _080B9AA8
- b _080B9B10
-_080B9AA2:
- cmp r0, 0x4
- beq _080B9AEC
- b _080B9B10
-_080B9AA8:
- movs r2, 0
- ldr r3, _080B9ABC
-_080B9AAC:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x1
- bls _080B9AAC
- b _080B9B10
- .align 2, 0
-_080B9ABC: .4byte gUnknown_083D0288
-_080B9AC0:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- adds r3, r0, 0
- movs r0, 0x1
- ands r3, r0
- movs r2, 0
- ldr r1, _080B9AE8
- lsls r0, r3, 1
- adds r0, r3
- adds r3, r0, r1
-_080B9AD6:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- bls _080B9AD6
- b _080B9B10
- .align 2, 0
-_080B9AE8: .4byte gUnknown_083D028A
-_080B9AEC:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- movs r1, 0x9
- bl __umodsi3
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080B9B18
- lsls r0, r3, 2
- adds r3, r0, r1
-_080B9B02:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x3
- bls _080B9B02
-_080B9B10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B18: .4byte gUnknown_083D0290
- thumb_func_end sub_80B9A88
-
- thumb_func_start sub_80B9B1C
-sub_80B9B1C: @ 80B9B1C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r5, r0, 0
- mov r8, r1
- lsls r4, r2, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80B9A88
- mov r0, r8
- muls r0, r4
- adds r0, r5, r0
- ldr r1, _080B9B6C
- ldr r6, [r1]
- adds r1, r6, 0
- movs r2, 0x40
- bl memcpy
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x40
- bl memcpy
- bl sub_80F7F30
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B6C: .4byte gUnknown_083D0278
- thumb_func_end sub_80B9B1C
-
- thumb_func_start sub_80B9B70
-sub_80B9B70: @ 80B9B70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r0, _080B9BB8
- mov r8, r0
- bl sub_80B9A88
- mov r5, r9
- muls r5, r4
- adds r5, r6, r5
- add r4, r8
- ldrb r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0xA4
- bl memcpy
- adds r0, r5, 0
- bl sub_8134AC0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9BB8: .4byte gUnknown_0300071C
- thumb_func_end sub_80B9B70
-
- thumb_func_start sub_80B9BBC
-sub_80B9BBC: @ 80B9BBC
- ldrh r0, [r0, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_80B9BBC
-
- thumb_func_start sub_80B9BC4
-sub_80B9BC4: @ 80B9BC4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x38
- mov r8, r0
- mov r10, r1
- mov r9, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x54]
- lsls r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsrs r4, 23
- add r4, r9
- ldrb r0, [r4]
- mov r6, r10
- muls r6, r0
- add r6, r8
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r6, r1
- mov r0, sp
- movs r2, 0x38
- bl memcpy
- lsls r5, 1
- add r5, r9
- ldrb r0, [r5]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r8, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- adds r6, r0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- add r1, r8
- adds r0, r6, 0
- movs r2, 0x38
- bl memcpy
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- add r8, r0
- mov r0, r8
- mov r1, sp
- movs r2, 0x38
- bl memcpy
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9BC4
-
- thumb_func_start sub_80B9C4C
-sub_80B9C4C: @ 80B9C4C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
-_080B9C54:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r0, r2, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r1, 0xFF
- ble _080B9C54
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B9C4C
-
- thumb_func_start sub_80B9C6C
-sub_80B9C6C: @ 80B9C6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- str r0, [sp, 0x2C]
- str r1, [sp, 0x30]
- str r3, [sp, 0x38]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x34]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x40]
- ldr r0, _080B9DA8
- ldrh r0, [r0, 0x4]
- bl SeedRng
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r3, 0
- add r0, sp, 0x1C
- mov r9, r0
- movs r1, 0x1D
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0xC
- str r2, [sp, 0x4C]
- movs r7, 0xFF
- add r4, sp, 0x8
- movs r2, 0
- mov r6, r9
- mov r5, r10
-_080B9CBC:
- mov r1, sp
- adds r1, r3
- adds r1, 0x4
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- adds r0, r4, r3
- strb r2, [r0]
- lsls r1, r3, 1
- adds r0, r6, r1
- strb r2, [r0]
- adds r1, r5, r1
- strb r2, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B9CBC
- movs r4, 0
- str r4, [sp, 0x3C]
- movs r3, 0
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- str r0, [sp, 0x50]
- ldr r4, [sp, 0x30]
- ldr r0, [sp, 0x34]
- adds r2, r4, 0
- muls r2, r0
- str r2, [sp, 0x48]
- ldr r2, [sp, 0x3C]
- cmp r2, r1
- bcs _080B9D46
- mov r8, r1
-_080B9D00:
- ldr r4, [sp, 0x30]
- adds r0, r4, 0
- muls r0, r3
- ldr r1, [sp, 0x2C]
- adds r6, r1, r0
- ldr r0, [r6, 0x70]
- cmp r0, 0
- beq _080B9D3C
- movs r7, 0
- cmp r7, r0
- bcs _080B9D3C
- adds r4, r6, 0
- adds r4, 0x74
- mov r2, r9
- lsls r1, r3, 1
- movs r5, 0x1
-_080B9D20:
- lsls r0, r7, 1
- adds r0, r4, r0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080B9D30
- adds r0, r7, r1
- adds r0, r2, r0
- strb r5, [r0]
-_080B9D30:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r6, 0x70]
- cmp r7, r0
- bcc _080B9D20
-_080B9D3C:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- bcc _080B9D00
-_080B9D46:
- movs r7, 0
- movs r3, 0
- ldr r2, [sp, 0x50]
- cmp r2, 0
- beq _080B9E3E
- mov r4, sp
- adds r4, 0x24
- str r4, [sp, 0x44]
- movs r0, 0x25
- add r0, sp
- mov r8, r0
-_080B9D5C:
- ldr r1, [sp, 0x30]
- adds r0, r1, 0
- muls r0, r3
- ldr r2, [sp, 0x2C]
- adds r6, r2, r0
- lsls r1, r3, 1
- mov r4, r9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B9D7C
- mov r2, r10
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9D86
-_080B9D7C:
- ldr r0, [sp, 0x3C]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x3C]
-_080B9D86:
- mov r4, r9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9DAC
- mov r2, r10
- adds r0, r2, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _080B9DAC
-_080B9D9A:
- lsls r1, r7, 1
- ldr r4, [sp, 0x44]
- adds r0, r4, r1
- strb r3, [r0]
- add r1, r8
- strb r2, [r1]
- b _080B9E2C
- .align 2, 0
-_080B9DA8: .4byte gLinkPlayers
-_080B9DAC:
- mov r2, r9
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B9DC0
- mov r4, r10
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _080B9D9A
-_080B9DC0:
- mov r2, r9
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9E32
- mov r4, r10
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9E32
- lsls r5, r7, 1
- ldr r1, [sp, 0x44]
- adds r0, r1, r5
- strb r3, [r0]
- adds r0, r6, 0
- str r3, [sp, 0x54]
- bl sub_80B9BBC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r0, 0x38
- bl sub_80B9BBC
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x54]
- cmp r4, 0
- bne _080B9E0A
- cmp r1, 0
- beq _080B9E0E
- mov r2, r8
- adds r1, r2, r5
- movs r0, 0x1
- strb r0, [r1]
- b _080B9E2C
-_080B9E0A:
- cmp r1, 0
- beq _080B9E26
-_080B9E0E:
- str r3, [sp, 0x54]
- bl Random
- mov r4, r8
- adds r2, r4, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- ldr r3, [sp, 0x54]
- b _080B9E2C
-_080B9E26:
- mov r2, r8
- adds r0, r2, r5
- strb r1, [r0]
-_080B9E2C:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080B9E32:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r4, [sp, 0x50]
- cmp r0, r4
- bcc _080B9D5C
-_080B9E3E:
- movs r3, 0
- ldr r1, [sp, 0x48]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 3
- ldr r2, [sp, 0x2C]
- adds r6, r2, r0
- ldr r1, [sp, 0x4C]
-_080B9E4E:
- lsls r0, r3, 2
- adds r0, r1, r0
- str r6, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B9E4E
- ldr r0, [sp, 0x38]
- bl sub_80B9C4C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r4, [sp, 0x3C]
- cmp r4, 0x3
- beq _080B9E9C
- cmp r4, 0x3
- bgt _080B9E82
- cmp r4, 0x2
- beq _080B9E8A
- b _080B9EF0
-_080B9E82:
- ldr r0, [sp, 0x3C]
- cmp r0, 0x4
- beq _080B9EBC
- b _080B9EF0
-_080B9E8A:
- add r2, sp, 0x24
- movs r0, 0x1
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- movs r3, 0
- bl sub_80B9BC4
- b _080B9EF0
-_080B9E9C:
- ldr r0, _080B9EB8
- lsls r1, 1
- adds r2, r1, r0
- ldrb r3, [r2]
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- add r2, sp, 0x24
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- bl sub_80B9BC4
- b _080B9EF0
- .align 2, 0
-_080B9EB8: .4byte gUnknown_083D02B4
-_080B9EBC:
- add r6, sp, 0x24
- ldr r4, _080B9F2C
- lsls r5, r1, 2
- adds r0, r5, r4
- ldrb r3, [r0]
- adds r0, r4, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80B9BC4
- adds r0, r4, 0x2
- adds r0, r5, r0
- ldrb r3, [r0]
- adds r4, 0x3
- adds r5, r4
- ldrb r0, [r5]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80B9BC4
-_080B9EF0:
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x48]
- adds r6, r1, r2
- ldr r4, _080B9F30
- ldr r1, _080B9F34
- adds r0, r4, r1
- adds r1, r6, 0
- movs r2, 0x38
- bl memcpy
- ldr r2, _080B9F38
- adds r4, r2
- adds r1, r6, 0
- adds r1, 0x38
- adds r0, r4, 0
- movs r2, 0x38
- bl memcpy
- ldr r0, [sp, 0x40]
- bl SeedRng
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9F2C: .4byte gUnknown_083D02BA
-_080B9F30: .4byte gSaveBlock1
-_080B9F34: .4byte 0x0000303c
-_080B9F38: .4byte 0x00003074
- thumb_func_end sub_80B9C6C
-
- thumb_func_start sub_80B9F3C
-sub_80B9F3C: @ 80B9F3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- cmp r1, 0
- beq _080BA000
- ldrh r0, [r4]
- cmp r0, 0
- beq _080BA000
- bl sub_80A9670
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080B9FC8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A92D4
- lsls r0, 24
- cmp r0, 0
- bne _080B9FB8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9718
- lsls r0, 24
- cmp r0, 0
- bne _080B9FB8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- cmp r0, 0
- beq _080B9FB8
- ldr r0, _080B9FA4
- ldrh r1, [r4]
- bl VarSet
- ldr r0, _080B9FA8
- ldr r1, _080B9FAC
- bl StringCopy
- ldrh r1, [r4]
- ldr r0, _080B9FB0
- cmp r1, r0
- bne _080BA000
- ldr r0, _080B9FB4
- bl FlagSet
- b _080BA000
- .align 2, 0
-_080B9FA4: .4byte 0x00004001
-_080B9FA8: .4byte gStringVar1
-_080B9FAC: .4byte gLinkPlayers + 0x8
-_080B9FB0: .4byte 0x00000113
-_080B9FB4: .4byte 0x00000853
-_080B9FB8:
- ldr r0, _080B9FC4
- movs r1, 0
- bl VarSet
- b _080BA000
- .align 2, 0
-_080B9FC4: .4byte 0x00004001
-_080B9FC8:
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B9FF8
- ldr r0, _080B9FEC
- ldrh r1, [r4]
- bl VarSet
- ldr r0, _080B9FF0
- ldr r1, _080B9FF4
- bl StringCopy
- b _080BA000
- .align 2, 0
-_080B9FEC: .4byte 0x00004001
-_080B9FF0: .4byte gStringVar1
-_080B9FF4: .4byte gLinkPlayers + 0x8
-_080B9FF8:
- ldr r0, _080BA008
- movs r1, 0
- bl VarSet
-_080BA000:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA008: .4byte 0x00004001
- thumb_func_end sub_80B9F3C
-
- thumb_func_start sub_80BA00C
-sub_80BA00C: @ 80BA00C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080BA030
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _080BA09C
- lsls r0, 2
- ldr r1, _080BA034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BA030: .4byte gTasks
-_080BA034: .4byte _080BA038
- .align 2, 0
-_080BA038:
- .4byte _080BA086
- .4byte _080BA086
- .4byte _080BA050
- .4byte _080BA05A
- .4byte _080BA074
- .4byte _080BA08E
-_080BA050:
- bl sub_8047A1C
- bl sub_8125E2C
- b _080BA086
-_080BA05A:
- bl sub_8125E6C
- lsls r0, 24
- cmp r0, 0
- beq _080BA09C
- bl sub_8047A34
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- b _080BA09C
-_080BA074:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080BA09C
- bl sub_800832C
-_080BA086:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080BA09C
-_080BA08E:
- ldr r0, _080BA0A4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BA09C
- adds r0, r2, 0
- bl DestroyTask
-_080BA09C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0A4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80BA00C
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220
- bl SetUpWindowConfig
- ldr r0, _080BA224
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C
- ldr r2, _080BA230
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240
- bl SetVBlankCallback
- ldr r0, _080BA244
- bl SetMainCallback2
- ldr r1, _080BA248
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374
- str r1, [r0]
- ldr r1, _080BA378
- ldr r2, _080BA37C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte Task_HandleMainMenuInput
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start Task_HandleMainMenuInput
-Task_HandleMainMenuInput: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end Task_HandleMainMenuInput
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4
- ldr r2, _080BA6D8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4
- ldr r2, _080BA6F8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28
- strb r1, [r0]
- ldr r0, _080BAA2C
- strb r1, [r0]
- ldr r0, _080BAA30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34
- strb r2, [r0]
- ldr r1, _080BAA38
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54
- ldr r5, _080BAD58
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138
- ldr r5, _080BB13C
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374
- bl SetUpWindowConfig
- ldr r0, _080BB378
- bl InitMenuWindow
- ldr r1, _080BB37C
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_811A3CC
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C
- ldr r2, _080BB3A0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490
- str r1, [r0]
- bl sub_811A4F8
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- thumb_func_start sub_80BB4AC
-sub_80BB4AC: @ 80BB4AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3]
- movs r2, 0
- adds r4, r3, 0x2
- movs r5, 0xFF
-_080BB4C4:
- adds r0, r4, r2
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x6
- bls _080BB4C4
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x12
- adds r6, r3, 0
- adds r6, 0x22
- adds r7, r3, 0
- adds r7, 0x4C
- adds r0, r3, 0
- adds r0, 0x34
- str r0, [sp]
- adds r1, r3, 0
- adds r1, 0x9A
- str r1, [sp, 0x4]
- movs r0, 0x7C
- adds r0, r3
- mov r10, r0
- movs r1, 0x88
- adds r1, r3
- mov r9, r1
- movs r0, 0x94
- adds r0, r3
- mov r8, r0
- adds r1, r3, 0
- adds r1, 0x9
- movs r4, 0
-_080BB508:
- adds r0, r1, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080BB508
- movs r0, 0
- movs r1, 0
- strh r1, [r3, 0xE]
- strb r0, [r3, 0x10]
- strb r0, [r3, 0x11]
- movs r0, 0
- strb r0, [r3, 0x1]
- movs r2, 0
- adds r4, r5, 0
- adds r3, r6, 0
-_080BB52A:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080BB52A
- movs r2, 0
- mov r12, r7
- movs r5, 0
-_080BB542:
- movs r1, 0
- adds r7, r2, 0x1
- lsls r4, r2, 2
- lsls r6, r2, 1
- adds r3, r4, 0
-_080BB54C:
- adds r0, r3, r1
- lsls r0, 1
- add r0, r12
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080BB54C
- ldr r1, [sp]
- adds r0, r1, r4
- str r5, [r0]
- ldr r1, [sp, 0x4]
- adds r0, r1, r2
- strb r5, [r0]
- mov r1, r10
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r9
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r8
- adds r0, r1, r2
- strb r5, [r0]
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080BB542
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB4AC
-
- thumb_func_start sub_80BB594
-sub_80BB594: @ 80BB594
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- ldr r1, _080BB5B0
- adds r0, r1
- bl sub_80BB4AC
- pop {r0}
- bx r0
- .align 2, 0
-_080BB5B0: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BB594
-
- thumb_func_start sub_80BB5B4
-sub_80BB5B4: @ 80BB5B4
- push {r4,lr}
- movs r4, 0
-_080BB5B8:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BB594
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BB5B8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB5B4
-
- thumb_func_start sub_80BB5D0
-sub_80BB5D0: @ 80BB5D0
- ldr r0, _080BB5DC
- ldr r1, _080BB5E0
- ldrh r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BB5DC: .4byte gUnknown_020387DC
-_080BB5E0: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80BB5D0
-
- thumb_func_start sub_80BB5E4
-sub_80BB5E4: @ 80BB5E4
- push {r4,lr}
- ldr r0, _080BB5F4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0
- adds r4, r0, 0
- b _080BB5FE
- .align 2, 0
-_080BB5F4: .4byte gScriptResult
-_080BB5F8:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_080BB5FE:
- cmp r3, 0x13
- bhi _080BB626
- ldr r2, _080BB62C
- ldr r1, _080BB630
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BB634
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _080BB5F8
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080BB638
- adds r1, r3, 0
- bl VarSet
-_080BB626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB62C: .4byte gUnknown_020387DC
-_080BB630: .4byte gSaveBlock1
-_080BB634: .4byte 0x00001a08
-_080BB638: .4byte 0x00004054
- thumb_func_end sub_80BB5E4
-
- thumb_func_start sub_80BB63C
-sub_80BB63C: @ 80BB63C
- push {lr}
- ldr r0, _080BB654
- ldr r1, _080BB658
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080BB660
- ldr r1, _080BB65C
- movs r0, 0x1
- strh r0, [r1]
- b _080BB664
- .align 2, 0
-_080BB654: .4byte gSaveBlock1
-_080BB658: .4byte 0x00001a08
-_080BB65C: .4byte gScriptResult
-_080BB660:
- ldr r0, _080BB668
- strh r1, [r0]
-_080BB664:
- pop {r0}
- bx r0
- .align 2, 0
-_080BB668: .4byte gScriptResult
- thumb_func_end sub_80BB63C
-
- thumb_func_start sub_80BB66C
-sub_80BB66C: @ 80BB66C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- ldr r2, _080BB6A4
- adds r0, r2, 0
- ands r1, r0
- adds r0, r1, 0
- subs r0, 0x90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6A8
- movs r0, 0x1
- b _080BB702
- .align 2, 0
-_080BB6A4: .4byte 0x00000fff
-_080BB6A8:
- adds r0, r1, 0
- subs r0, 0x92
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6B8
- movs r0, 0x2
- b _080BB702
-_080BB6B8:
- adds r0, r1, 0
- subs r0, 0x9A
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6C8
- movs r0, 0x3
- b _080BB702
-_080BB6C8:
- adds r0, r1, 0
- subs r0, 0x94
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6D8
- movs r0, 0x4
- b _080BB702
-_080BB6D8:
- adds r0, r1, 0
- subs r0, 0x96
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB6EC
- cmp r1, 0x9C
- beq _080BB6EC
- cmp r1, 0x9D
- bne _080BB6F0
-_080BB6EC:
- movs r0, 0x5
- b _080BB702
-_080BB6F0:
- adds r0, r1, 0
- subs r0, 0x98
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB700
- movs r0, 0
- b _080BB702
-_080BB700:
- movs r0, 0x6
-_080BB702:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BB66C
-
- thumb_func_start sub_80BB70C
-sub_80BB70C: @ 80BB70C
- push {r4,lr}
- ldr r4, _080BB720
- bl sub_80BB66C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB720: .4byte gUnknown_0202E8D2
- thumb_func_end sub_80BB70C
-
- thumb_func_start unref_sub_80BB724
-unref_sub_80BB724: @ 80BB724
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- movs r2, 0
- ldr r6, _080BB748
- lsrs r3, r1, 24
- ldr r5, _080BB74C
-_080BB732:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r3
- bne _080BB750
- lsls r0, r2, 16
- asrs r0, 16
- b _080BB75E
- .align 2, 0
-_080BB748: .4byte 0x00000fff
-_080BB74C: .4byte 0x000001ff
-_080BB750:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r5
- bls _080BB732
- movs r0, 0x1
- negs r0, r0
-_080BB75E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80BB724
-
- thumb_func_start sub_80BB764
-sub_80BB764: @ 80BB764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- movs r0, 0
- mov r12, r0
- ldr r1, _080BB7C8
- ldr r0, [r1]
- ldr r3, [r0, 0x4]
- cmp r12, r3
- bge _080BB7EE
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r3, [sp]
-_080BB78E:
- movs r2, 0
- mov r1, r12
- lsls r7, r1, 16
- ldr r0, [sp, 0x4]
- cmp r2, r0
- bge _080BB7DC
- ldr r0, _080BB7C8
- ldr r1, [r0]
- asrs r0, r7, 16
- ldr r4, [r1]
- adds r6, r0, 0
- muls r6, r4
- ldr r5, [r1, 0xC]
-_080BB7A8:
- lsls r0, r2, 16
- asrs r3, r0, 16
- adds r0, r6, r3
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080BB7CC
- ands r0, r1
- cmp r0, r8
- bne _080BB7D0
- mov r1, r9
- strh r2, [r1]
- mov r1, r12
- mov r0, r10
- strh r1, [r0]
- b _080BB7EE
- .align 2, 0
-_080BB7C8: .4byte gMapHeader
-_080BB7CC: .4byte 0x000003ff
-_080BB7D0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r4
- blt _080BB7A8
-_080BB7DC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r1, r0, 16
- mov r12, r1
- asrs r0, 16
- ldr r1, [sp]
- cmp r0, r1
- blt _080BB78E
-_080BB7EE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB764
-
- thumb_func_start sub_80BB800
-sub_80BB800: @ 80BB800
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- movs r5, 0
- mov r12, r4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r1, _080BB84C
- mov r8, r1
- adds r7, r0, 0
- mov r4, sp
- mov r6, r12
-_080BB834:
- ldr r0, _080BB84C
- lsls r1, r5, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r3
- bne _080BB850
- movs r3, 0
- ldrsh r0, [r4, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r2, 0x2]
- b _080BB878
- .align 2, 0
-_080BB84C: .4byte gUnknown_083D1358
-_080BB850:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB834
- movs r5, 0
- mov r4, sp
- mov r6, r12
-_080BB860:
- lsls r0, r5, 2
- mov r1, r8
- adds r3, r0, r1
- ldrh r1, [r3, 0x2]
- asrs r0, r7, 16
- cmp r1, r0
- bne _080BB892
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r3]
-_080BB878:
- movs r5, 0xC0
- lsls r5, 4
- adds r2, r5, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- bl CurrentMapDrawMetatileAt
- b _080BB89C
-_080BB892:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB860
-_080BB89C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB800
-
- thumb_func_start sub_80BB8A8
-sub_80BB8A8: @ 80BB8A8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BB8AE:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BB8BA
- adds r0, r1, 0
- b _080BB8C6
-_080BB8BA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _080BB8AE
- movs r0, 0x7
-_080BB8C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80BB8A8
-
- thumb_func_start sub_80BB8CC
-sub_80BB8CC: @ 80BB8CC
- push {r4-r6,lr}
- ldr r2, _080BB948
- ldr r0, _080BB94C
- ldrb r1, [r0]
- ldr r3, _080BB950
- adds r0, r2, r3
- strb r1, [r0]
- movs r3, 0
- ldr r0, _080BB954
- adds r2, r0
- ldr r4, _080BB958
-_080BB8E2:
- adds r1, r3, r2
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080BB8E2
- ldr r0, _080BB95C
- movs r1, 0
- bl VarSet
- ldr r6, _080BB960
- adds r0, r6, 0
- bl sub_80BB8A8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080BB964
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- ldrb r0, [r6, 0x8]
- subs r5, 0x1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r0, _080BB968
- ldr r1, _080BB96C
- ldrb r1, [r1, 0x14]
- bl VarSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB948: .4byte gSaveBlock1
-_080BB94C: .4byte gUnknown_020387DC
-_080BB950: .4byte 0x00001a08
-_080BB954: .4byte 0x00001a11
-_080BB958: .4byte gSaveBlock2 + 0xA
-_080BB95C: .4byte 0x00004054
-_080BB960: .4byte gSaveBlock2
-_080BB964: .4byte gSaveBlock1 + 0x1A0A
-_080BB968: .4byte 0x00004026
-_080BB96C: .4byte gMapHeader
- thumb_func_end sub_80BB8CC
-
- thumb_func_start sub_80BB970
-sub_80BB970: @ 80BB970
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r2, 0
- b _080BBA06
-_080BB978:
- ldr r0, [r5, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x5]
- adds r7, r2, 0x1
- cmp r0, 0x8
- bne _080BBA02
- movs r2, 0
- ldr r4, _080BB9E0
- adds r6, r1, 0
-_080BB990:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BB9E4
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, [r3, 0x8]
- cmp r1, r0
- bne _080BB9F8
- ldrh r0, [r3]
- adds r0, 0x7
- ldrh r1, [r3, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r3, 0
- lsls r0, 16
- asrs r4, r0, 16
-_080BB9B6:
- ldr r0, _080BB9E8
- lsls r1, r3, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r4
- bne _080BB9EC
- ldr r1, [r5, 0x10]
- adds r1, r6, r1
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r2, 0x2]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BBA02
- .align 2, 0
-_080BB9E0: .4byte gSaveBlock1
-_080BB9E4: .4byte 0x00001a08
-_080BB9E8: .4byte gUnknown_083D1358
-_080BB9EC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6
- bls _080BB9B6
- b _080BBA02
-_080BB9F8:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _080BB990
-_080BBA02:
- lsls r0, r7, 16
- lsrs r2, r0, 16
-_080BBA06:
- ldrb r0, [r5, 0x3]
- cmp r2, r0
- bcc _080BB978
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB970
-
- thumb_func_start sub_80BBA14
-sub_80BBA14: @ 80BBA14
- push {lr}
- ldr r0, _080BBA40
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r2, _080BBA44
- lsls r0, 26
- asrs r0, 24
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r0, 0x1
- adds r0, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0x19
- bl warp1_set_2
- pop {r0}
- bx r0
- .align 2, 0
-_080BBA40: .4byte gUnknown_020387DC
-_080BBA44: .4byte gUnknown_083D1374
- thumb_func_end sub_80BBA14
-
- thumb_func_start sub_80BBA48
-sub_80BBA48: @ 80BBA48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BBA6C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080BBA7C
- cmp r0, 0x1
- bgt _080BBA70
- cmp r0, 0
- beq _080BBA76
- b _080BBAD0
- .align 2, 0
-_080BBA6C: .4byte gTasks
-_080BBA70:
- cmp r0, 0x2
- beq _080BBA94
- b _080BBAD0
-_080BBA76:
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _080BBAD0
-_080BBA7C:
- ldr r0, _080BBA90
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBAD0
- movs r0, 0x2
- strh r0, [r2, 0x8]
- b _080BBAD0
- .align 2, 0
-_080BBA90: .4byte gPaletteFade
-_080BBA94:
- ldr r0, _080BBAD8
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080BBADC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BBAE0
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _080BBAB6
- adds r0, 0x1
- strb r0, [r1]
-_080BBAB6:
- bl sub_80BBA14
- bl warp_in
- ldr r0, _080BBAE4
- ldr r1, _080BBAE8
- str r1, [r0]
- ldr r0, _080BBAEC
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080BBAD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBAD8: .4byte 0x00004054
-_080BBADC: .4byte gSaveBlock1
-_080BBAE0: .4byte 0x00001a18
-_080BBAE4: .4byte gUnknown_0300485C
-_080BBAE8: .4byte sub_8080990
-_080BBAEC: .4byte CB2_LoadMap
- thumb_func_end sub_80BBA48
-
- thumb_func_start sub_80BBAF0
-sub_80BBAF0: @ 80BBAF0
- push {lr}
- ldr r0, _080BBB1C
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080BBB20
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB1C: .4byte sub_80BBA48
-_080BBB20: .4byte gSaveBlock1
- thumb_func_end sub_80BBAF0
-
- thumb_func_start sub_80BBB24
-sub_80BBB24: @ 80BBB24
- push {lr}
- ldr r0, _080BBB40
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- bne _080BBB48
- ldr r0, _080BBB44
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080BBB48
- movs r0, 0
- b _080BBB4A
- .align 2, 0
-_080BBB40: .4byte gMapHeader
-_080BBB44: .4byte 0x00004097
-_080BBB48:
- movs r0, 0x1
-_080BBB4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80BBB24
-
- thumb_func_start sub_80BBB50
-sub_80BBB50: @ 80BBB50
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BBB88
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BBB8C
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectTurn
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBB80
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080BBB80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB88: .4byte gPlayerAvatar
-_080BBB8C: .4byte gMapObjects
- thumb_func_end sub_80BBB50
-
- thumb_func_start sub_80BBB90
-sub_80BBB90: @ 80BBB90
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl HideMapNamePopUpWindow
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- bl CurrentMapDrawMetatileAt
- bl pal_fill_black
- ldr r0, _080BBBE8
- movs r1, 0
- bl CreateTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBBE8: .4byte sub_80BBB50
- thumb_func_end sub_80BBB90
-
- thumb_func_start sub_80BBBEC
-sub_80BBBEC: @ 80BBBEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BBC5C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBC52
- ldr r0, _080BBC60
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r1, _080BBC64
- movs r5, 0x4
- ldrsb r5, [r1, r5]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r4, _080BBC68
- lsls r0, 26
- asrs r0, 24
- adds r3, r0, 0x2
- adds r3, r4
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- adds r0, 0x3
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- bl warp1_set
- bl warp_in
- ldr r1, _080BBC6C
- ldr r0, _080BBC70
- str r0, [r1]
- ldr r0, _080BBC74
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_080BBC52:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBC5C: .4byte gPaletteFade
-_080BBC60: .4byte gUnknown_020387DC
-_080BBC64: .4byte gSaveBlock1
-_080BBC68: .4byte gUnknown_083D1374
-_080BBC6C: .4byte gUnknown_0300485C
-_080BBC70: .4byte sub_80BBB90
-_080BBC74: .4byte CB2_LoadMap
- thumb_func_end sub_80BBBEC
-
- thumb_func_start sub_80BBC78
-sub_80BBC78: @ 80BBC78
- push {lr}
- ldr r0, _080BBCA0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BBCA4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BBCA0: .4byte sub_80BBBEC
-_080BBCA4: .4byte gTasks
- thumb_func_end sub_80BBC78
-
- thumb_func_start CurrentMapIsSecretBase
-CurrentMapIsSecretBase: @ 80BBCA8
- push {lr}
- ldr r1, _080BBCC0
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x19
- bne _080BBCC4
- ldrb r0, [r1, 0x5]
- cmp r0, 0x17
- bhi _080BBCC4
- movs r0, 0x1
- b _080BBCC6
- .align 2, 0
-_080BBCC0: .4byte gSaveBlock1
-_080BBCC4:
- movs r0, 0
-_080BBCC6:
- pop {r1}
- bx r1
- thumb_func_end CurrentMapIsSecretBase
-
- thumb_func_start sub_80BBCCC
-sub_80BBCCC: @ 80BBCCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- beq _080BBDBC
- ldr r0, _080BBD70
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- ldr r6, _080BBD74
- mov r4, sp
- ldr r0, _080BBD78
- adds r7, r6, r0
-_080BBCFC:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- ldrh r1, [r4]
- adds r2, r0, r1
- ldr r1, _080BBD7C
- adds r0, r6, r1
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bhi _080BBD3A
- ldr r0, _080BBD80
- ldrb r3, [r1]
- lsls r1, r3, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- beq _080BBD3A
- adds r0, r2, r7
- ldrb r2, [r0]
- lsrs r0, r2, 4
- adds r0, 0x7
- movs r1, 0xF
- ands r1, r2
- adds r1, 0x7
- adds r2, r3, 0
- bl sub_80FF394
-_080BBD3A:
- ldrh r0, [r4]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4]
- cmp r0, 0xF
- bls _080BBCFC
- cmp r5, 0
- beq _080BBD88
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBD84
- bl MapGridSetMetatileIdAt
- b _080BBDBC
- .align 2, 0
-_080BBD70: .4byte 0x00004054
-_080BBD74: .4byte gSaveBlock1
-_080BBD78: .4byte 0x00001a2a
-_080BBD7C: .4byte 0x00001a1a
-_080BBD80: .4byte gDecorations
-_080BBD84: .4byte 0x00000e21
-_080BBD88:
- mov r0, r8
- cmp r0, 0x1
- bne _080BBDBC
- ldr r0, _080BBDC8
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080BBDBC
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBDCC
- bl MapGridSetMetatileIdAt
-_080BBDBC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBDC8: .4byte 0x00004089
-_080BBDCC: .4byte 0x00000e0a
- thumb_func_end sub_80BBCCC
-
- thumb_func_start sub_80BBDD0
-sub_80BBDD0: @ 80BBDD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080BBE00
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- bne _080BBE08
- ldr r0, _080BBE04
- str r0, [sp, 0x4]
- adds r0, 0xC
- str r0, [sp, 0x8]
- movs r1, 0xC
- str r1, [sp, 0xC]
- b _080BBE1E
- .align 2, 0
-_080BBE00: .4byte 0x00004054
-_080BBE04: .4byte gSaveBlock1 + 0x2688
-_080BBE08:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 5
- ldr r0, _080BBF7C
- adds r2, r1, r0
- str r2, [sp, 0x4]
- adds r0, 0x10
- adds r1, r0
- str r1, [sp, 0x8]
- movs r3, 0x10
- str r3, [sp, 0xC]
-_080BBE1E:
- movs r6, 0
- ldr r4, [sp, 0xC]
- cmp r6, r4
- bcc _080BBE28
- b _080BBF6C
-_080BBE28:
- ldr r5, _080BBF80
- mov r10, r5
-_080BBE2C:
- ldr r1, [sp, 0x4]
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r9, r0
- adds r2, r6, 0x1
- str r2, [sp, 0x10]
- cmp r1, 0
- bne _080BBE3E
- b _080BBF5E
-_080BBE3E:
- ldrb r0, [r0]
- lsls r0, 5
- ldr r3, _080BBF84
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _080BBE4E
- b _080BBF5E
-_080BBE4E:
- movs r5, 0
- ldr r0, _080BBF88
- ldr r2, [r0, 0x4]
- ldrb r3, [r2]
- mov r8, r0
- cmp r5, r3
- bcs _080BBE8E
- ldr r0, [r2, 0x4]
- ldrh r1, [r0, 0x14]
- ldr r4, _080BBF8C
- ldrh r0, [r4]
- adds r0, 0xAE
- adds r7, r4, 0
- cmp r1, r0
- beq _080BBE8E
- adds r4, r2, 0
- adds r2, r3, 0
-_080BBE70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r2
- bcs _080BBE8E
- ldr r1, [r4, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x14]
- ldrh r0, [r7]
- adds r0, 0xAE
- cmp r1, r0
- bne _080BBE70
-_080BBE8E:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldrb r0, [r0]
- cmp r5, r0
- beq _080BBF5E
- ldr r7, _080BBF90
- ldr r2, [sp, 0x8]
- adds r1, r2, r6
- ldrb r0, [r1]
- lsrs r0, 4
- strh r0, [r7]
- ldr r6, _080BBF94
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r7]
- adds r0, 0x7
- ldrh r1, [r6]
- adds r1, 0x7
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BBEDA
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBF5E
-_080BBEDA:
- mov r3, r8
- ldr r0, [r3, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- lsls r4, 3
- adds r1, r4, r1
- ldr r5, _080BBF98
- adds r0, r5, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080BBF9C
- strh r0, [r1]
- ldrh r0, [r1]
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 5
- ldr r3, _080BBFA0
- adds r1, r3
- ldr r1, [r1]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- ldr r1, _080BBF9C
- strh r0, [r1]
- ldr r2, _080BBF8C
- ldrh r0, [r2]
- adds r0, 0xAE
- lsls r0, 16
- lsrs r0, 16
- bl FlagReset
- ldr r3, _080BBF9C
- ldrb r0, [r3]
- mov r4, r10
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl show_sprite
- ldr r5, _080BBF9C
- ldrb r0, [r5]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- ldrsh r3, [r7, r4]
- movs r5, 0
- ldrsh r4, [r6, r5]
- str r4, [sp]
- bl sub_805C0F8
- ldr r1, _080BBF9C
- ldrb r0, [r1]
- mov r2, r10
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805C78C
- ldr r3, _080BBF8C
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080BBF5E:
- ldr r4, [sp, 0x10]
- lsls r0, r4, 24
- lsrs r6, r0, 24
- ldr r5, [sp, 0xC]
- cmp r6, r5
- bcs _080BBF6C
- b _080BBE2C
-_080BBF6C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
-_080BBF80: .4byte gSaveBlock1
-_080BBF84: .4byte gDecorations
-_080BBF88: .4byte gMapHeader
-_080BBF8C: .4byte gUnknown_0202E8CC
-_080BBF90: .4byte gUnknown_0202E8D0
-_080BBF94: .4byte gUnknown_0202E8D2
-_080BBF98: .4byte 0x00003f20
-_080BBF9C: .4byte gScriptResult
-_080BBFA0: .4byte gDecorations + 0x1C
- thumb_func_end sub_80BBDD0
-
- thumb_func_start sub_80BBFA4
-sub_80BBFA4: @ 80BBFA4
- push {r4,r5,lr}
- ldr r0, _080BBFCC
- bl VarGet
- ldr r5, _080BBFD0
- ldr r4, _080BBFD4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- bl VarSet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBFCC: .4byte 0x00004054
-_080BBFD0: .4byte 0x0000401f
-_080BBFD4: .4byte gUnknown_083D13EC
- thumb_func_end sub_80BBFA4
-
- thumb_func_start sub_80BBFD8
-sub_80BBFD8: @ 80BBFD8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- ldrb r0, [r4, 0x3]
- cmp r3, r0
- bge _080BC030
- ldr r6, _080BC01C
-_080BBFE8:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r4, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- cmp r0, 0x8
- bne _080BC020
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- ldrh r0, [r2, 0x2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- ldr r0, [r2, 0x8]
- strb r0, [r6]
- b _080BC030
- .align 2, 0
-_080BC01C: .4byte gUnknown_020387DC
-_080BC020:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- blt _080BBFE8
-_080BC030:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BBFD8
-
- thumb_func_start sub_80BC038
-sub_80BC038: @ 80BC038
- push {lr}
- bl sub_80BBFD8
- bl sub_80BB5E4
- ldr r0, _080BC04C
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080BC04C: .4byte gUnknown_081A2E14
- thumb_func_end sub_80BC038
-
- thumb_func_start sub_80BC050
-sub_80BC050: @ 80BC050
- push {lr}
- bl sub_80BB5D0
- bl sub_80BB5E4
- ldr r0, _080BC068
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BC06C
- movs r0, 0x1
- b _080BC06E
- .align 2, 0
-_080BC068: .4byte gScriptResult
-_080BC06C:
- movs r0, 0
-_080BC06E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC050
-
- thumb_func_start sub_80BC074
-sub_80BC074: @ 80BC074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BC098
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BC0AC
- cmp r0, 0x1
- bgt _080BC09C
- cmp r0, 0
- beq _080BC0A2
- b _080BC0E4
- .align 2, 0
-_080BC098: .4byte gTasks
-_080BC09C:
- cmp r0, 0x2
- beq _080BC0C4
- b _080BC0E4
-_080BC0A2:
- bl ScriptContext2_Enable
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080BC0E4
-_080BC0AC:
- ldr r0, _080BC0C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BC0E4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080BC0E4
- .align 2, 0
-_080BC0C0: .4byte gPaletteFade
-_080BC0C4:
- movs r0, 0x7E
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl warp_in
- ldr r0, _080BC0EC
- ldr r1, _080BC0F0
- str r1, [r0]
- ldr r0, _080BC0F4
- bl SetMainCallback2
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_080BC0E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC0EC: .4byte gUnknown_0300485C
-_080BC0F0: .4byte mapldr_default
-_080BC0F4: .4byte CB2_LoadMap
- thumb_func_end sub_80BC074
-
- thumb_func_start sub_80BC0F8
-sub_80BC0F8: @ 80BC0F8
- push {lr}
- ldr r0, _080BC110
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BC110: .4byte sub_80BC074
- thumb_func_end sub_80BC0F8
-
- thumb_func_start sub_80BC114
-sub_80BC114: @ 80BC114
- push {lr}
- ldr r0, _080BC12C
- ldr r1, _080BC130
- adds r0, r1
- ldr r1, _080BC134
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BC13C
- ldr r1, _080BC138
- movs r0, 0x1
- b _080BC140
- .align 2, 0
-_080BC12C: .4byte gSaveBlock1
-_080BC130: .4byte 0x00001a08
-_080BC134: .4byte gUnknown_020387DC
-_080BC138: .4byte gScriptResult
-_080BC13C:
- ldr r1, _080BC148
- movs r0, 0
-_080BC140:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BC148: .4byte gScriptResult
- thumb_func_end sub_80BC114
-
- thumb_func_start sub_80BC14C
-sub_80BC14C: @ 80BC14C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r5, _080BC174
- ldr r4, _080BC178
-_080BC158:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BC17C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BC18A
- .align 2, 0
-_080BC174: .4byte gSaveBlock1
-_080BC178: .4byte 0x00001a08
-_080BC17C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC158
- movs r0, 0
-_080BC18A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC14C
-
- thumb_func_start sub_80BC190
-sub_80BC190: @ 80BC190
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 5
- ldr r0, _080BC1C8
- adds r4, r0
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _080BC1CC
- adds r0, r5, 0
- bl StringAppend
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
-_080BC1CC: .4byte gOtherText_PlayersBase
- thumb_func_end sub_80BC190
-
- thumb_func_start GetSecretBaseMapName
-GetSecretBaseMapName: @ 80BC1D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- ldr r6, _080BC214
- ldr r5, _080BC218
- ldr r4, _080BC21C
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r5
- ldr r0, _080BC220
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r6]
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_80BC190
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC214: .4byte gUnknown_020387DC
-_080BC218: .4byte gSaveBlock1
-_080BC21C: .4byte 0x00004054
-_080BC220: .4byte 0x00001a08
- thumb_func_end GetSecretBaseMapName
-
- thumb_func_start sub_80BC224
-sub_80BC224: @ 80BC224
- push {r4,r5,lr}
- ldr r0, _080BC25C
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- ldr r0, _080BC260
- adds r4, r0
- ldr r5, _080BC264
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC25C: .4byte 0x00004054
-_080BC260: .4byte gSaveBlock1 + 0x1A0A
-_080BC264: .4byte gStringVar1
- thumb_func_end sub_80BC224
-
- thumb_func_start sub_80BC268
-sub_80BC268: @ 80BC268
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC288
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC28C
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 6
- cmp r0, 0
- bne _080BC290
- movs r0, 0
- b _080BC292
- .align 2, 0
-_080BC288: .4byte gSaveBlock1
-_080BC28C: .4byte 0x00001a09
-_080BC290:
- movs r0, 0x1
-_080BC292:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC268
-
- thumb_func_start sub_80BC298
-sub_80BC298: @ 80BC298
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1B
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1C
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1D
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1E
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1F
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC298
-
- thumb_func_start sub_80BC300
-sub_80BC300: @ 80BC300
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- movs r6, 0
- mov r9, r6
-_080BC314:
- movs r4, 0
- lsls r3, r6, 2
- lsls r2, r6, 1
- ldr r7, _080BC424
- adds r1, r6, 0x1
- str r1, [sp]
- adds r1, r3, 0
-_080BC322:
- adds r0, r1, r4
- lsls r0, 1
- ldr r5, _080BC428
- adds r0, r5, r0
- mov r5, r9
- strh r5, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080BC322
- ldr r1, _080BC42C
- adds r0, r1, r2
- strh r5, [r0]
- ldr r5, _080BC430
- adds r0, r5, r2
- mov r1, r9
- strh r1, [r0]
- ldr r2, _080BC434
- adds r0, r2, r6
- mov r5, r9
- strb r5, [r0]
- ldr r1, _080BC438
- adds r0, r1, r3
- mov r2, r9
- str r2, [r0]
- ldr r3, _080BC43C
- adds r0, r3, r6
- strb r2, [r0]
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- adds r4, r5, r7
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080BC408
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080BC408
- movs r4, 0
- mov r0, r10
- lsls r0, 2
- mov r8, r0
- mov r1, r10
- lsls r7, r1, 1
- adds r1, 0x1
- str r1, [sp, 0x4]
- ldr r2, _080BC424
-_080BC38E:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, r2
- str r2, [sp, 0x8]
- bl GetMonData
- mov r3, r8
- adds r1, r3, r4
- lsls r1, 1
- ldr r3, _080BC428
- adds r1, r3, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x8]
- cmp r4, 0x3
- bls _080BC38E
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080BC424
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r5, _080BC42C
- adds r1, r5, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- ldr r2, _080BC430
- adds r1, r2, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, _080BC434
- add r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _080BC438
- add r1, r8
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80BC298
- ldr r1, _080BC43C
- add r1, r10
- strb r0, [r1]
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r10, r0
-_080BC408:
- ldr r5, [sp]
- lsls r0, r5, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080BC314
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC424: .4byte gPlayerParty
-_080BC428: .4byte gSaveBlock1 + 0x1A54
-_080BC42C: .4byte gSaveBlock1 + 0x1A84
-_080BC430: .4byte gSaveBlock1 + 0x1A90
-_080BC434: .4byte gSaveBlock1 + 0x1A9C
-_080BC438: .4byte gSaveBlock1 + 0x1A3C
-_080BC43C: .4byte gSaveBlock1 + 0x1AA2
- thumb_func_end sub_80BC300
-
- thumb_func_start sub_80BC440
-sub_80BC440: @ 80BC440
- push {r4,r5,lr}
- ldr r4, _080BC45C
- ldr r0, _080BC460
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl sub_80BB594
- strh r5, [r4]
- bl sub_80BC0F8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC45C: .4byte gSaveBlock1
-_080BC460: .4byte 0x00001a16
- thumb_func_end sub_80BC440
-
- thumb_func_start sub_80BC464
-sub_80BC464: @ 80BC464
- push {lr}
- movs r0, 0x14
- bl sav12_xor_increment
- bl sub_80BC440
- pop {r0}
- bx r0
- thumb_func_end sub_80BC464
-
- thumb_func_start sub_80BC474
-sub_80BC474: @ 80BC474
- push {r4-r7,lr}
- ldr r0, _080BC4CC
- ldr r4, [r0, 0x4]
- movs r6, 0
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcs _080BC504
- ldr r3, _080BC4D0
-_080BC484:
- ldr r2, [r4, 0x10]
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- adds r7, r1, 0
- cmp r0, 0x8
- bne _080BC4F8
- ldrb r1, [r3]
- ldr r0, [r2, 0x8]
- cmp r1, r0
- bne _080BC4F8
- ldrh r0, [r2]
- adds r0, 0x7
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0
- ldr r5, _080BC4D4
- lsls r0, 16
- asrs r2, r0, 16
-_080BC4B2:
- lsls r0, r1, 2
- adds r3, r0, r5
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- beq _080BC4D8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x6
- bls _080BC4B2
-_080BC4C6:
- bl DrawWholeMapView
- b _080BC504
- .align 2, 0
-_080BC4CC: .4byte gMapHeader
-_080BC4D0: .4byte gSaveBlock1 + 0x1A08
-_080BC4D4: .4byte gUnknown_083D1358
-_080BC4D8:
- ldr r0, [r4, 0x10]
- adds r1, r7, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r3]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BC4C6
-_080BC4F8:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcc _080BC484
-_080BC504:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC474
-
- thumb_func_start sub_80BC50C
-sub_80BC50C: @ 80BC50C
- push {r4,r5,lr}
- bl sub_80BC474
- movs r0, 0x14
- bl sav12_xor_increment
- ldr r4, _080BC530
- ldr r0, _080BC534
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl sub_80BB594
- strh r5, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC530: .4byte gSaveBlock1
-_080BC534: .4byte 0x00001a16
- thumb_func_end sub_80BC50C
-
- thumb_func_start sub_80BC538
-sub_80BC538: @ 80BC538
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0x1
-_080BC53E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC554
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC554:
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC53E
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC538
-
- thumb_func_start sub_80BC56C
-sub_80BC56C: @ 80BC56C
- push {lr}
- ldr r0, _080BC58C
- ldrb r0, [r0]
- bl sub_80BC14C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080BC594
- ldr r0, _080BC590
- strh r1, [r0]
- b _080BC5B2
- .align 2, 0
-_080BC58C: .4byte gUnknown_020387DC
-_080BC590: .4byte gScriptResult
-_080BC594:
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080BC5AC
- ldr r1, _080BC5A8
- movs r0, 0x2
- b _080BC5B0
- .align 2, 0
-_080BC5A8: .4byte gScriptResult
-_080BC5AC:
- ldr r1, _080BC5B8
- movs r0, 0
-_080BC5B0:
- strh r0, [r1]
-_080BC5B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5B8: .4byte gScriptResult
- thumb_func_end sub_80BC56C
-
- thumb_func_start sub_80BC5BC
-sub_80BC5BC: @ 80BC5BC
- push {lr}
- ldr r0, _080BC5F8
- ldrb r0, [r0]
- bl sub_80BC14C
- ldr r2, _080BC5FC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC600
- adds r1, r0
- ldrb r3, [r1]
- lsrs r2, r3, 6
- movs r0, 0x1
- eors r2, r0
- lsls r2, 6
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x86
- lsls r0, 1
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5F8: .4byte gUnknown_020387DC
-_080BC5FC: .4byte gSaveBlock1
-_080BC600: .4byte 0x00001a09
- thumb_func_end sub_80BC5BC
-
- thumb_func_start sub_80BC604
-sub_80BC604: @ 80BC604
- push {lr}
- ldr r0, _080BC614
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC614: .4byte sub_80FE264
- thumb_func_end sub_80BC604
-
- thumb_func_start sub_80BC618
-sub_80BC618: @ 80BC618
- push {lr}
- ldr r0, _080BC628
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC628: .4byte sub_80BC62C
- thumb_func_end sub_80BC618
-
- thumb_func_start sub_80BC62C
-sub_80BC62C: @ 80BC62C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl ScriptContext2_Enable
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC688
- adds r4, r0, r1
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r1, r0, 0
- cmp r1, 0
- beq _080BC694
- cmp r1, 0x7
- ble _080BC65E
- movs r0, 0x7
-_080BC65E:
- strh r0, [r4, 0x6]
- movs r0, 0
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BC7D8
- ldr r1, _080BC68C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC690
- str r1, [r0]
- b _080BC6A0
- .align 2, 0
-_080BC688: .4byte gUnknown_03004B28
-_080BC68C: .4byte gTasks
-_080BC690: .4byte sub_80BC824
-_080BC694:
- ldr r1, _080BC6A8
- ldr r2, _080BC6AC
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080BC6A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC6A8: .4byte gSecretBaseText_NoRegistry
-_080BC6AC: .4byte sub_80BCC54
- thumb_func_end sub_80BC62C
-
- thumb_func_start sub_80BC6B0
-sub_80BC6B0: @ 80BC6B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BC6D8
- adds r1, r0
- mov r8, r1
- movs r4, 0
- movs r6, 0
- movs r5, 0x1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r6, r0
- bne _080BC6DC
- movs r4, 0x1
- b _080BC706
- .align 2, 0
-_080BC6D8: .4byte gUnknown_03004B28
-_080BC6DC:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC6F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BC6F0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bhi _080BC706
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r4, r0
- bne _080BC6DC
- adds r4, r5, 0
-_080BC706:
- adds r5, r4, 0
- cmp r5, 0x13
- bhi _080BC75A
- ldr r7, _080BC7A0
-_080BC70E:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC750
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80BC190
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- adds r0, r7, 0
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x8
- beq _080BC75A
-_080BC750:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BC70E
-_080BC75A:
- cmp r6, 0x7
- bhi _080BC7A8
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080BC7A4
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- movs r0, 0x1
- bl SetBgTilemapBuffer
- cmp r6, 0x7
- beq _080BC7B2
- lsls r1, r6, 25
- movs r0, 0x80
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x12
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- b _080BC7B2
- .align 2, 0
-_080BC7A0: .4byte gStringVar1
-_080BC7A4: .4byte gUnknownText_Exit
-_080BC7A8:
- movs r0, 0x1
- movs r1, 0xBC
- movs r2, 0x98
- bl sub_80F953C
-_080BC7B2:
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080BC7C4
- movs r0, 0
- bl SetBgTilemapBuffer
- b _080BC7CE
-_080BC7C4:
- movs r0, 0
- movs r1, 0xBC
- movs r2, 0x8
- bl sub_80F953C
-_080BC7CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC6B0
-
- thumb_func_start sub_80BC7D8
-sub_80BC7D8: @ 80BC7D8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BC820
- adds r4, r0
- movs r0, 0x11
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldrb r3, [r4, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- adds r0, r5, 0
- bl sub_80BC6B0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC820: .4byte gUnknown_03004B28
- thumb_func_end sub_80BC7D8
-
- thumb_func_start sub_80BC824
-sub_80BC824: @ 80BC824
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC858
- adds r4, r0, r1
- ldr r2, _080BC85C
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BC874
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080BC860
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080BC8B6
- .align 2, 0
-_080BC858: .4byte gUnknown_03004B28
-_080BC85C: .4byte gMain
-_080BC860:
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- b _080BC8A4
-_080BC874:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BC8C2
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080BC8AE
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
-_080BC8A4:
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- bl sub_80BC6B0
- b _080BC940
-_080BC8AE:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080BC8B6:
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2]
- b _080BC940
-_080BC8C2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BC91C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080BC8FC
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BCC54
- b _080BC940
-_080BC8FC:
- bl sub_8072DEC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC948
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl sub_80BC980
- b _080BC940
-_080BC91C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_80BCC54
-_080BC940:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC824
-
- thumb_func_start sub_80BC948
-sub_80BC948: @ 80BC948
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0x1
-_080BC952:
- adds r0, r4, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC96E
- cmp r6, r5
- bne _080BC968
- adds r0, r4, 0
- b _080BC97A
-_080BC968:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC96E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _080BC952
- movs r0, 0
-_080BC97A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC948
-
- thumb_func_start sub_80BC980
-sub_80BC980: @ 80BC980
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r3, _080BC9D8
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x2
- bl InitMenu
- ldr r1, _080BC9DC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC9E0
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC9D8: .4byte gUnknown_083D13D4
-_080BC9DC: .4byte gTasks
-_080BC9E0: .4byte sub_80BC9E4
- thumb_func_end sub_80BC980
-
- thumb_func_start sub_80BC9E4
-sub_80BC9E4: @ 80BC9E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _080BCA14
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BCA18
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080BCA7C
- .align 2, 0
-_080BCA14: .4byte gMain
-_080BCA18:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BCA3A
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080BCA7C
-_080BCA3A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BCA68
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080BCA64
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _080BCA7C
- .align 2, 0
-_080BCA64: .4byte gUnknown_083D13D4
-_080BCA68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80BCBF8
-_080BCA7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC9E4
-
- thumb_func_start sub_80BCA84
-sub_80BCA84: @ 80BCA84
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BCAD8
- adds r4, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _080BCADC
- ldrb r1, [r4, 0x8]
- bl sub_80BC190
- ldr r4, _080BCAE0
- ldr r1, _080BCAE4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080BCAE8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCAD8: .4byte gUnknown_03004B28
-_080BCADC: .4byte gStringVar1
-_080BCAE0: .4byte gStringVar4
-_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
-_080BCAE8: .4byte sub_80BCAEC
- thumb_func_end sub_80BCA84
-
- thumb_func_start sub_80BCAEC
-sub_80BCAEC: @ 80BCAEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _080BCB0C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB0C: .4byte gUnknown_083D13E4
- thumb_func_end sub_80BCAEC
-
- thumb_func_start sub_80BCB10
-sub_80BCB10: @ 80BCB10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _080BCB80
- adds r4, r6, r7
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _080BCB84
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r2
- ldr r1, _080BCB88
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080BCB5C
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_080BCB5C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _080BCB6A
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
-_080BCB6A:
- adds r0, r5, 0
- bl sub_80BC7D8
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080BCB8C
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB80: .4byte gUnknown_03004B28
-_080BCB84: .4byte gSaveBlock1
-_080BCB88: .4byte 0x00001a09
-_080BCB8C: .4byte sub_80BC824
- thumb_func_end sub_80BCB10
-
- thumb_func_start sub_80BCB90
-sub_80BCB90: @ 80BCB90
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r1, _080BCBB8
- ldr r2, _080BCBBC
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
-_080BCBBC: .4byte sub_80BCB10
- thumb_func_end sub_80BCB90
-
- thumb_func_start sub_80BCBC0
-sub_80BCBC0: @ 80BCBC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80BC7D8
- ldr r1, _080BCBF0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BCBF4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBF0: .4byte gTasks
-_080BCBF4: .4byte sub_80BC824
- thumb_func_end sub_80BCBC0
-
- thumb_func_start sub_80BCBF8
-sub_80BCBF8: @ 80BCBF8
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _080BCC4C
- adds r0, r4, r5
- ldrb r3, [r0, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r0, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- subs r5, 0x8
- adds r4, r5
- ldr r0, _080BCC50
- str r0, [r4]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCC4C: .4byte gUnknown_03004B28
-_080BCC50: .4byte sub_80BC824
- thumb_func_end sub_80BCBF8
-
- thumb_func_start sub_80BCC54
-sub_80BCC54: @ 80BCC54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080BCC84
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- cmp r4, 0
- bne _080BCC8C
- ldr r0, _080BCC88
- bl ScriptContext1_SetupScript
- b _080BCC92
- .align 2, 0
-_080BCC84: .4byte 0x00004054
-_080BCC88: .4byte gUnknown_0815F399
-_080BCC8C:
- ldr r0, _080BCCA0
- bl ScriptContext1_SetupScript
-_080BCC92:
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCCA0: .4byte gUnknown_0815F49A
- thumb_func_end sub_80BCC54
-
- thumb_func_start sub_80BCCA4
-sub_80BCCA4: @ 80BCCA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BCCDC
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r1
- ldr r1, _080BCCE0
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r1, 0x5
- bl __umodsi3
- ldr r1, _080BCCE4
- adds r4, r1
- ldrb r2, [r4]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BCCDC: .4byte gSaveBlock1
-_080BCCE0: .4byte 0x00001a11
-_080BCCE4: .4byte 0x00001a09
- thumb_func_end sub_80BCCA4
-
- thumb_func_start sub_80BCCE8
-sub_80BCCE8: @ 80BCCE8
- push {lr}
- ldr r0, _080BCD08
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _080BCD10
- ldr r0, _080BCD0C
- b _080BCD72
- .align 2, 0
-_080BCD08: .4byte 0x00004054
-_080BCD0C: .4byte UnknownString_81A1BB2
-_080BCD10:
- cmp r0, 0x1
- bne _080BCD1C
- ldr r0, _080BCD18
- b _080BCD72
- .align 2, 0
-_080BCD18: .4byte UnknownString_81A1F67
-_080BCD1C:
- cmp r0, 0x2
- bne _080BCD28
- ldr r0, _080BCD24
- b _080BCD72
- .align 2, 0
-_080BCD24: .4byte UnknownString_81A2254
-_080BCD28:
- cmp r0, 0x3
- bne _080BCD34
- ldr r0, _080BCD30
- b _080BCD72
- .align 2, 0
-_080BCD30: .4byte UnknownString_81A25C3
-_080BCD34:
- cmp r0, 0x4
- bne _080BCD40
- ldr r0, _080BCD3C
- b _080BCD72
- .align 2, 0
-_080BCD3C: .4byte UnknownString_81A2925
-_080BCD40:
- cmp r0, 0x5
- bne _080BCD4C
- ldr r0, _080BCD48
- b _080BCD72
- .align 2, 0
-_080BCD48: .4byte UnknownString_81A1D74
-_080BCD4C:
- cmp r0, 0x6
- bne _080BCD58
- ldr r0, _080BCD54
- b _080BCD72
- .align 2, 0
-_080BCD54: .4byte UnknownString_81A20C9
-_080BCD58:
- cmp r0, 0x7
- bne _080BCD64
- ldr r0, _080BCD60
- b _080BCD72
- .align 2, 0
-_080BCD60: .4byte UnknownString_81A2439
-_080BCD64:
- cmp r1, 0x8
- beq _080BCD70
- ldr r0, _080BCD6C
- b _080BCD72
- .align 2, 0
-_080BCD6C: .4byte UnknownString_81A2B2A
-_080BCD70:
- ldr r0, _080BCD78
-_080BCD72:
- pop {r1}
- bx r1
- .align 2, 0
-_080BCD78: .4byte UnknownString_81A2754
- thumb_func_end sub_80BCCE8
-
- thumb_func_start unref_sub_80BCD7C
-unref_sub_80BCD7C: @ 80BCD7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r7, _080BCDFC
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 5
- ldr r0, _080BCE00
- adds r0, r7
- mov r10, r0
- ldr r1, _080BCE04
- adds r1, r7
- mov r9, r1
- ldr r2, _080BCE08
- adds r2, r7
- mov r8, r2
- ldr r0, _080BCE0C
- mov r12, r0
-_080BCDAA:
- lsls r4, r5, 2
- adds r0, r4, r6
- add r0, r10
- adds r3, r5, 0x1
- str r3, [r0]
- lsls r0, r5, 3
- adds r0, r6
- add r0, r9
- strh r3, [r0]
- lsls r1, r5, 1
- adds r1, r6
- mov r2, r8
- adds r0, r1, r2
- mov r2, r12
- strh r2, [r0]
- ldr r2, _080BCE10
- adds r0, r7, r2
- adds r1, r0
- strh r3, [r1]
- adds r2, r5, r6
- ldr r1, _080BCE14
- adds r0, r7, r1
- adds r0, r2, r0
- adds r1, r5, 0x5
- strb r1, [r0]
- ldr r1, _080BCE18
- adds r0, r7, r1
- adds r2, r0
- adds r4, r5
- strb r4, [r2]
- lsls r3, 16
- lsrs r5, r3, 16
- cmp r5, 0
- beq _080BCDAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCDFC: .4byte gSaveBlock1
-_080BCE00: .4byte 0x00001a3c
-_080BCE04: .4byte 0x00001a54
-_080BCE08: .4byte 0x00001a84
-_080BCE0C: .4byte 0x00000115
-_080BCE10: .4byte 0x00001a90
-_080BCE14: .4byte 0x00001a9c
-_080BCE18: .4byte 0x00001aa2
- thumb_func_end unref_sub_80BCD7C
-
- thumb_func_start sub_80BCE1C
-sub_80BCE1C: @ 80BCE1C
- push {r4,lr}
- ldr r0, _080BCE44
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- bl sub_810FB10
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- ldr r1, _080BCE48
- adds r0, r1
- bl CreateSecretBaseEnemyParty
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE44: .4byte 0x00004054
-_080BCE48: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BCE1C
-
- thumb_func_start sub_80BCE4C
-sub_80BCE4C: @ 80BCE4C
- push {lr}
- ldr r0, _080BCE80
- bl VarGet
- ldr r2, _080BCE84
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BCE88
- ldrb r0, [r0]
- ldr r2, _080BCE8C
- adds r1, r2
- movs r2, 0x1
- ands r2, r0
- lsls r2, 5
- ldrb r3, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE80: .4byte 0x00004054
-_080BCE84: .4byte gSaveBlock1
-_080BCE88: .4byte gScriptResult
-_080BCE8C: .4byte 0x00001a09
- thumb_func_end sub_80BCE4C
-
- thumb_func_start sub_80BCE90
-sub_80BCE90: @ 80BCE90
- push {r4-r7,lr}
- ldr r0, _080BCF04
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080BCF08
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BCED4
- movs r3, 0
- ldr r7, _080BCF0C
- ldr r4, _080BCF10
- movs r6, 0x21
- negs r6, r6
-_080BCEB2:
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 5
- adds r1, r7
- adds r1, r4
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x13
- bls _080BCEB2
- ldr r0, _080BCF08
- bl FlagSet
-_080BCED4:
- ldr r4, _080BCF14
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r2, _080BCF18
- ldr r1, _080BCF0C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BCF10
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 31
- strh r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCF04: .4byte 0x00004054
-_080BCF08: .4byte 0x000008c2
-_080BCF0C: .4byte gSaveBlock1
-_080BCF10: .4byte 0x00001a09
-_080BCF14: .4byte gUnknown_0202E8CC
-_080BCF18: .4byte gScriptResult
- thumb_func_end sub_80BCE90
-
- thumb_func_start sub_80BCF1C
-sub_80BCF1C: @ 80BCF1C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BCF40
- adds r4, r1, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BCF54
- cmp r0, 0x1
- bgt _080BCF44
- cmp r0, 0
- beq _080BCF4A
- b _080BD02C
- .align 2, 0
-_080BCF40: .4byte gUnknown_03004B28
-_080BCF44:
- cmp r0, 0x2
- beq _080BD01C
- b _080BD02C
-_080BCF4A:
- adds r0, r4, 0x4
- adds r1, r4, 0x6
- bl PlayerGetDestCoords
- b _080BD028
-_080BCF54:
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080BCF7C
- movs r0, 0
- ldrsh r1, [r5, r0]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _080BD02C
-_080BCF7C:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFA8
- bl sub_80C6C90
- b _080BD02C
-_080BCFA8:
- adds r0, r4, 0
- bl sub_8057314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFD8
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- mov r1, sp
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- bl sub_80C68A4
- b _080BD02C
-_080BCFD8:
- adds r0, r4, 0
- bl sub_8057328
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFF6
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80C6A54
- b _080BD02C
-_080BCFF6:
- adds r0, r4, 0
- bl sub_805733C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD02C
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- bl sub_80C6C30
- b _080BD02C
-_080BD01C:
- ldrb r0, [r4, 0x8]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080BD02C
-_080BD028:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080BD02C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BCF1C
-
- thumb_func_start sub_80BD034
-sub_80BD034: @ 80BD034
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BD064
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r2
- ldr r2, _080BD068
- adds r0, r4, r2
- movs r2, 0xA0
- bl memcpy
- ldr r0, _080BD06C
- adds r4, r0
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD064: .4byte gSaveBlock1
-_080BD068: .4byte 0x00001a08
-_080BD06C: .4byte 0x00001a09
- thumb_func_end sub_80BD034
-
- thumb_func_start sub_80BD070
-sub_80BD070: @ 80BD070
- push {r4,lr}
- movs r2, 0
- adds r4, r0, 0
- adds r4, 0x9
- adds r3, r1, 0
- adds r3, 0x9
-_080BD07C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD08C
- movs r0, 0
- b _080BD098
-_080BD08C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD07C
- movs r0, 0x1
-_080BD098:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD070
-
- thumb_func_start sub_80BD0A0
-sub_80BD0A0: @ 80BD0A0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r3, 0
- ldrb r0, [r6, 0x2]
- cmp r0, 0xFF
- bne _080BD0B4
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- beq _080BD0E2
-_080BD0B4:
- adds r2, r6, 0x2
- adds r0, r2, r3
- adds r4, r5, 0x2
- adds r1, r4, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD0C8
- movs r0, 0
- b _080BD0E4
-_080BD0C8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bhi _080BD0E2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
-_080BD0E2:
- movs r0, 0x1
-_080BD0E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0A0
-
- thumb_func_start sub_80BD0EC
-sub_80BD0EC: @ 80BD0EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- movs r0, 0x10
- adds r1, r0, 0
- ands r1, r2
- ldrb r2, [r5, 0x1]
- ands r0, r2
- cmp r1, r0
- bne _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD070
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD0A0
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- movs r0, 0x1
- b _080BD124
-_080BD122:
- movs r0, 0
-_080BD124:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0EC
-
- thumb_func_start sub_80BD12C
-sub_80BD12C: @ 80BD12C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r4, _080BD150
- ldr r3, _080BD154
-_080BD138:
- lsls r0, r1, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BD158
- adds r0, r1, 0
- b _080BD168
- .align 2, 0
-_080BD150: .4byte gSaveBlock1
-_080BD154: .4byte 0x00001a08
-_080BD158:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD138
- movs r0, 0x1
- negs r0, r0
-_080BD168:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD12C
-
- thumb_func_start sub_80BD170
-sub_80BD170: @ 80BD170
- push {r4,lr}
- movs r2, 0x1
- ldr r4, _080BD194
- ldr r3, _080BD198
-_080BD178:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD19C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BD1AA
- .align 2, 0
-_080BD194: .4byte gSaveBlock1
-_080BD198: .4byte 0x00001a08
-_080BD19C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD178
- movs r0, 0
-_080BD1AA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD170
-
- thumb_func_start sub_80BD1B0
-sub_80BD1B0: @ 80BD1B0
- push {r4,lr}
- movs r3, 0x1
- ldr r4, _080BD1DC
-_080BD1B6:
- lsls r2, r3, 16
- asrs r1, r2, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BD1E0
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 6
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r1, 28
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r3, 24
- lsrs r0, 24
- b _080BD1F4
- .align 2, 0
-_080BD1DC: .4byte gSaveBlock1
-_080BD1E0: .4byte 0x00001a09
-_080BD1E4:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r2, r1
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD1B6
- movs r0, 0
-_080BD1F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1B0
-
- thumb_func_start sub_80BD1FC
-sub_80BD1FC: @ 80BD1FC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD278
- ldrb r0, [r5]
- bl sub_80BD12C
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- beq _080BD278
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080BD254
- ldr r0, _080BD24C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 5
- adds r1, r0
- ldr r0, _080BD250
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- beq _080BD278
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD246
- ldrb r1, [r5, 0x1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _080BD278
-_080BD246:
- lsls r4, 24
- lsrs r4, 24
- b _080BD26C
- .align 2, 0
-_080BD24C: .4byte gSaveBlock1
-_080BD250: .4byte 0x00001a09
-_080BD254:
- bl sub_80BD170
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BD26C
- bl sub_80BD1B0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080BD278
-_080BD26C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD034
- adds r0, r4, 0
- b _080BD27A
-_080BD278:
- movs r0, 0
-_080BD27A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1FC
-
- thumb_func_start sub_80BD280
-sub_80BD280: @ 80BD280
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xA0
- ldr r0, _080BD324
- mov r8, r0
- movs r2, 0x1
-_080BD290:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r9, r1
- cmp r5, 0x13
- bhi _080BD30C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- mov r1, r8
- adds r6, r0, r1
- movs r7, 0xC0
-_080BD2A8:
- ldrb r0, [r6, 0x1]
- adds r3, r7, 0
- ands r3, r0
- cmp r3, 0
- bne _080BD2C6
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x40
- beq _080BD2DE
-_080BD2C6:
- cmp r3, 0x80
- bne _080BD302
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x80
- beq _080BD302
-_080BD2DE:
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0xA0
- bl memcpy
- adds r4, r5
- lsls r4, 5
- add r4, r8
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0xA0
- bl memcpy
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xA0
- bl memcpy
-_080BD302:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD2A8
-_080BD30C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _080BD290
- add sp, 0xA0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD324: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD280
-
- thumb_func_start sub_80BD328
-sub_80BD328: @ 80BD328
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0x1
-_080BD332:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- adds r1, r0, r6
- ldrb r0, [r1, 0x1]
- lsrs r0, 6
- cmp r0, r5
- bne _080BD348
- adds r0, r1, 0
- bl sub_80BD1FC
-_080BD348:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BD332
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD328
-
- thumb_func_start sub_80BD358
-sub_80BD358: @ 80BD358
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD372
- ldrb r0, [r5, 0x1]
- lsls r0, 27
- ldr r1, _080BD378
- lsrs r0, 31
- adds r4, r1, 0
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- beq _080BD37C
-_080BD372:
- movs r0, 0
- b _080BD3D4
- .align 2, 0
-_080BD378: .4byte gSaveBlock2
-_080BD37C:
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x9
- adds r6, r4, 0
- adds r6, 0xA
-_080BD386:
- adds r0, r3, r2
- adds r1, r2, r6
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD386
- movs r2, 0
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- bne _080BD3AA
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080BD3D2
-_080BD3AA:
- adds r3, r5, 0x2
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bhi _080BD3D2
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
-_080BD3D2:
- movs r0, 0x1
-_080BD3D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD358
-
- thumb_func_start sub_80BD3DC
-sub_80BD3DC: @ 80BD3DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r9, r1
- mov r8, r2
- movs r5, 0
- movs r6, 0
-_080BD3F0:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- bne _080BD41A
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r10
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD41A
- adds r0, r4, 0
- bl sub_80BB4AC
- movs r0, 0x1
- orrs r5, r0
-_080BD41A:
- movs r7, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _080BD448
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD448
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD448:
- movs r7, 0x4
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- bne _080BD476
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD476
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD476:
- cmp r5, 0x7
- beq _080BD484
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x13
- bls _080BD3F0
-_080BD484:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD3DC
-
- thumb_func_start sub_80BD494
-sub_80BD494: @ 80BD494
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- movs r5, 0
-_080BD4A4:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r8
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD4FE
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80BD0EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD4FE
- cmp r7, 0
- bne _080BD4D0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4D0:
- ldrh r0, [r6, 0xE]
- ldrh r3, [r4, 0xE]
- cmp r0, r3
- bls _080BD4E0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4E0:
- ldrb r0, [r6, 0x1]
- lsls r0, 28
- lsrs r0, 28
- ldrb r1, [r4, 0x1]
- movs r3, 0x10
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x1]
- adds r0, r6, 0
- bl sub_80BB4AC
- movs r0, 0x1
- b _080BD50A
-_080BD4FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD4A4
-_080BD508:
- movs r0, 0
-_080BD50A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD494
-
- thumb_func_start sub_80BD514
-sub_80BD514: @ 80BD514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r7, r1, 0
- mov r8, r2
- adds r6, r3, 0
- movs r5, 0x1
-_080BD526:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r9
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD578
- ldrb r1, [r4, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- bne _080BD54E
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
-_080BD54E:
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD578:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD526
- movs r5, 0
-_080BD584:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r4, r0, r7
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD5B8
- ldrb r0, [r4, 0x1]
- movs r2, 0x21
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD5B8
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5B8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD584
- movs r5, 0
- movs r0, 0x21
- negs r0, r0
- adds r7, r0, 0
-_080BD5CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 5
- mov r2, r8
- adds r1, r4, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5EA
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
- adds r0, r1, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5EA:
- adds r1, r4, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5F8
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
-_080BD5F8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD5CA
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD514
-
- thumb_func_start sub_80BD610
-sub_80BD610: @ 80BD610
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_80BD3DC
- ldr r0, _080BD670
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80BD514
- adds r0, r4, 0
- bl sub_80BD1FC
- adds r0, r5, 0
- bl sub_80BD1FC
- adds r0, r6, 0
- bl sub_80BD1FC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r4, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0
- bl sub_80BD328
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD670: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD610
-
- thumb_func_start sub_80BD674
-sub_80BD674: @ 80BD674
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x60
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BD68C
- b _080BD790
-_080BD68C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080BD69E
- cmp r0, 0x3
- beq _080BD6BA
- b _080BD6C8
-_080BD69E:
- lsls r4, r5, 1
- adds r0, r6, r4
- movs r1, 0
- adds r2, r5, 0
- bl memset
- adds r4, r5
- adds r4, r6, r4
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- b _080BD6C8
-_080BD6BA:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- movs r1, 0
- adds r2, r5, 0
- bl memset
-_080BD6C8:
- cmp r7, 0x1
- beq _080BD6F0
- cmp r7, 0x1
- bgt _080BD6D6
- cmp r7, 0
- beq _080BD6E0
- b _080BD71C
-_080BD6D6:
- cmp r7, 0x2
- beq _080BD700
- cmp r7, 0x3
- beq _080BD710
- b _080BD71C
-_080BD6E0:
- adds r0, r6, r5
- lsls r2, r5, 1
- adds r1, r6, r2
- adds r2, r5
- adds r2, r6, r2
- bl sub_80BD610
- b _080BD71C
-_080BD6F0:
- lsls r1, r5, 1
- adds r0, r6, r1
- adds r1, r5
- adds r1, r6, r1
- adds r2, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD700:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r2, r6, r5
- adds r1, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD710:
- adds r1, r6, r5
- lsls r2, r5, 1
- adds r2, r6, r2
- adds r0, r6, 0
- bl sub_80BD610
-_080BD71C:
- movs r3, 0x1
- ldr r6, _080BD798
- movs r5, 0x10
- negs r5, r5
- ldr r4, _080BD79C
-_080BD726:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r6
- adds r2, r0, r4
- ldrb r1, [r2]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080BD746
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- ands r0, r5
- strb r0, [r2]
-_080BD746:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD726
- bl sub_80BD280
- movs r3, 0x1
- ldr r4, _080BD798
- ldr r6, _080BD79C
- adds r7, r4, 0
- movs r5, 0x3F
-_080BD75E:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r4
- adds r2, r0, r6
- ldrb r1, [r2]
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD776
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
-_080BD776:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD75E
- ldr r0, _080BD7A0
- adds r2, r7, r0
- ldrh r1, [r2]
- ldr r0, _080BD7A4
- cmp r1, r0
- beq _080BD790
- adds r0, r1, 0x1
- strh r0, [r2]
-_080BD790:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD798: .4byte gSaveBlock1
-_080BD79C: .4byte 0x00001a09
-_080BD7A0: .4byte 0x00001a16
-_080BD7A4: .4byte 0x0000ffff
- thumb_func_end sub_80BD674
-
- thumb_func_start sub_80BD7A8
-sub_80BD7A8: @ 80BD7A8
- push {r4-r7,lr}
- movs r3, 0
- ldr r6, _080BD7F0
- movs r4, 0
- ldr r0, _080BD7F4
- adds r5, r6, r0
-_080BD7B4:
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r1, r2, r6
- ldr r7, _080BD7F8
- adds r0, r1, r7
- strb r4, [r0]
- ldr r0, _080BD7FC
- adds r1, r0
- strb r4, [r1]
- movs r1, 0
- adds r3, 0x1
-_080BD7CC:
- adds r0, r1, r2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BD7CC
- lsls r0, r3, 24
- lsrs r3, r0, 24
- cmp r3, 0x18
- bls _080BD7B4
- bl sub_80BEBF4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD7F0: .4byte gSaveBlock1
-_080BD7F4: .4byte 0x0000273a
-_080BD7F8: .4byte 0x00002738
-_080BD7FC: .4byte 0x00002739
- thumb_func_end sub_80BD7A8
-
- thumb_func_start special_0x44
-special_0x44: @ 80BD800
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0x5
- ldr r1, _080BD874
- ldr r2, _080BD878
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BD834
- adds r2, r1, 0
- ldr r1, _080BD87C
-_080BD81A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bhi _080BD834
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD81A
-_080BD834:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- ldr r7, _080BD874
- ldr r0, _080BD87C
- adds r0, r7
- mov r9, r0
-_080BD850:
- lsls r0, r4, 3
- adds r0, r4
- lsls r6, r0, 2
- adds r5, r6, r7
- ldr r1, _080BD87C
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _080BD884
- ldr r2, _080BD880
- adds r0, r5, r2
- ldrb r0, [r0]
- b _080BD890
- .align 2, 0
-_080BD874: .4byte gSaveBlock1
-_080BD878: .4byte 0x000027ec
-_080BD87C: .4byte 0x00002738
-_080BD880: .4byte 0x00002739
-_080BD884:
- mov r0, r9
- adds r1, r6, r0
- ldrh r0, [r1, 0x16]
- cmp r0, 0
- bne _080BD898
- ldrb r0, [r1, 0x1]
-_080BD890:
- cmp r0, 0x1
- bne _080BD898
- adds r0, r4, 0
- b _080BD8AC
-_080BD898:
- cmp r4, 0
- bne _080BD8A0
- movs r4, 0x17
- b _080BD8A6
-_080BD8A0:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BD8A6:
- cmp r4, r8
- bne _080BD850
- movs r0, 0xFF
-_080BD8AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end special_0x44
-
- thumb_func_start sub_80BD8B8
-sub_80BD8B8: @ 80BD8B8
- push {lr}
- bl special_0x44
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BD8CA
- movs r0, 0xFF
- b _080BD902
-_080BD8CA:
- ldr r2, _080BD8F4
- ldr r3, _080BD8F8
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BD900
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r2, _080BD8FC
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BD900
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BD902
- .align 2, 0
-_080BD8F4: .4byte gSaveBlock1
-_080BD8F8: .4byte 0x00002afc
-_080BD8FC: .4byte 0x00002738
-_080BD900:
- adds r0, r1, 0
-_080BD902:
- pop {r1}
- bx r1
- thumb_func_end sub_80BD8B8
-
- thumb_func_start UpdateTVScreensOnMap
-UpdateTVScreensOnMap: @ 80BD908
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _080BD938
- bl FlagSet
- bl CheckForBigMovieOrEmergencyNewsOnTV
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BD92C
- cmp r0, 0x2
- beq _080BD97E
- ldr r0, _080BD93C
- ldrh r0, [r0, 0x4]
- cmp r0, 0xD
- bne _080BD940
-_080BD92C:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
- b _080BD97E
- .align 2, 0
-_080BD938: .4byte 0x00000831
-_080BD93C: .4byte gSaveBlock1
-_080BD940:
- ldr r0, _080BD984
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
- bl sub_80BD8B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl sub_80BECA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl IsTVShowInSearchOfTrainersAiring
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
-_080BD96E:
- ldr r0, _080BD988
- bl FlagReset
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
-_080BD97E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD984: .4byte 0x00000832
-_080BD988: .4byte 0x00000831
- thumb_func_end UpdateTVScreensOnMap
-
- thumb_func_start SetTVMetatilesOnMap
-SetTVMetatilesOnMap: @ 80BD98C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- movs r5, 0
- cmp r5, r10
- bge _080BD9E0
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- mov r8, r2
- mov r1, r8
- orrs r1, r0
- mov r8, r1
-_080BD9B2:
- movs r4, 0
- adds r7, r5, 0x1
- cmp r4, r9
- bge _080BD9DA
- mov r0, r8
- lsls r6, r0, 16
-_080BD9BE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- cmp r0, 0x86
- bne _080BD9D4
- adds r0, r4, 0
- adds r1, r5, 0
- lsrs r2, r6, 16
- bl MapGridSetMetatileIdAt
-_080BD9D4:
- adds r4, 0x1
- cmp r4, r9
- blt _080BD9BE
-_080BD9DA:
- adds r5, r7, 0
- cmp r5, r10
- blt _080BD9B2
-_080BD9E0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetTVMetatilesOnMap
-
- thumb_func_start TurnOffTVScreen
-TurnOffTVScreen: @ 80BD9F0
- push {lr}
- ldr r1, _080BDA08
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- movs r2, 0x2
- bl SetTVMetatilesOnMap
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_080BDA08: .4byte gUnknown_03004870
- thumb_func_end TurnOffTVScreen
-
- thumb_func_start sub_80BDA0C
-sub_80BDA0C: @ 80BDA0C
- ldr r2, _080BDA24
- ldr r0, _080BDA28
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BDA2C
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080BDA24: .4byte gSaveBlock1
-_080BDA28: .4byte gUnknown_0202E8CC
-_080BDA2C: .4byte 0x00002738
- thumb_func_end sub_80BDA0C
-
- thumb_func_start sub_80BDA30
-sub_80BDA30: @ 80BDA30
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BDA5C
-_080BDA36:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldr r4, _080BDA60
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDA64
- cmp r0, 0x29
- beq _080BDA64
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BDA64
- adds r0, r2, 0
- b _080BDA70
- .align 2, 0
-_080BDA5C: .4byte gSaveBlock1
-_080BDA60: .4byte 0x00002738
-_080BDA64:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BDA36
- movs r0, 0xFF
-_080BDA70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDA30
-
- thumb_func_start special_0x4a
-special_0x4a: @ 80BDA78
- push {lr}
- ldr r2, _080BDAA4
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDAA8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BDAAC
- movs r3, 0xF1
- lsls r3, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BDAAC
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BDAAE
- .align 2, 0
-_080BDAA4: .4byte gUnknown_0202E8CC
-_080BDAA8: .4byte gSaveBlock1 + 0x2738
-_080BDAAC:
- ldrb r0, [r2]
-_080BDAAE:
- pop {r1}
- bx r1
- thumb_func_end special_0x4a
-
- thumb_func_start sub_80BDAB4
-sub_80BDAB4: @ 80BDAB4
- push {r4,lr}
- ldr r2, _080BDAF8
- ldr r1, _080BDAFC
- adds r0, r2, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080BDB00
- adds r0, r2, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB04
- adds r1, r2, r0
- ldr r0, _080BDB08
- strh r0, [r1]
- adds r4, 0x6
- adds r1, r2, r4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080BDB0C
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BDB10
- adds r0, r2, r1
- strb r3, [r0]
- subs r4, 0x1
- adds r2, r4
- strb r3, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDAF8: .4byte gSaveBlock1
-_080BDAFC: .4byte 0x00002b10
-_080BDB00: .4byte 0x00002b12
-_080BDB04: .4byte 0x00002b16
-_080BDB08: .4byte 0x0000ffff
-_080BDB0C: .4byte 0x00002b1b
-_080BDB10: .4byte 0x00002b18
- thumb_func_end sub_80BDAB4
-
- thumb_func_start GabbyAndTyBeforeInterview
-GabbyAndTyBeforeInterview: @ 80BDB14
- push {r4,r5,lr}
- ldr r2, _080BDB68
- ldr r3, _080BDB6C
- ldrh r1, [r3, 0x6]
- ldr r4, _080BDB70
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x26]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x22]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB74
- adds r4, r2, r0
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _080BDB44
- adds r0, r1, 0x1
- strb r0, [r4]
-_080BDB44:
- ldrb r0, [r3, 0x5]
- lsls r0, 31
- ldr r1, _080BDB78
- adds r4, r5, r1
- lsrs r0, 31
- ldrb r1, [r4]
- movs r2, 0x2
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4]
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BDB7C
- movs r0, 0x2
- orrs r2, r0
- b _080BDB82
- .align 2, 0
-_080BDB68: .4byte gSaveBlock1
-_080BDB6C: .4byte gUnknown_030042E0
-_080BDB70: .4byte 0x00002b10
-_080BDB74: .4byte 0x00002b19
-_080BDB78: .4byte 0x00002b1a
-_080BDB7C:
- movs r0, 0x3
- negs r0, r0
- ands r2, r0
-_080BDB82:
- strb r2, [r4]
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _080BDB9C
- ldr r4, _080BDB98
- adds r0, r5, r4
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080BDBAA
- .align 2, 0
-_080BDB98: .4byte 0x00002b1a
-_080BDB9C:
- ldr r0, _080BDBDC
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080BDBAA:
- ldrb r1, [r3, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDBE0
- movs r1, 0
- adds r0, r3, 0
- adds r0, 0x36
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BDBE0
-_080BDBC0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BDBEC
- adds r0, r3, 0
- adds r0, 0x36
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDBC0
- ldr r4, _080BDBDC
- adds r0, r5, r4
- b _080BDBE4
- .align 2, 0
-_080BDBDC: .4byte 0x00002b1a
-_080BDBE0:
- ldr r1, _080BDC08
- adds r0, r5, r1
-_080BDBE4:
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_080BDBEC:
- bl TakeTVShowInSearchOfTrainersOffTheAir
- ldr r0, _080BDC0C
- ldr r4, _080BDC10
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BDC02
- movs r0, 0x1
- bl FlagSet
-_080BDC02:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC08: .4byte 0x00002b1a
-_080BDC0C: .4byte gSaveBlock1
-_080BDC10: .4byte 0x00002b14
- thumb_func_end GabbyAndTyBeforeInterview
-
- thumb_func_start sub_80BDC14
-sub_80BDC14: @ 80BDC14
- push {r4-r6,lr}
- ldr r4, _080BDC70
- ldr r0, _080BDC74
- adds r6, r4, r0
- ldrb r3, [r6]
- lsls r1, r3, 31
- adds r0, 0x1
- adds r5, r4, r0
- lsrs r1, 31
- ldrb r2, [r5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- movs r1, 0x2
- ands r1, r3
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x4
- ands r1, r3
- subs r2, 0x2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x8
- ands r1, r3
- subs r2, 0x4
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- movs r0, 0x10
- orrs r3, r0
- strb r3, [r6]
- ldr r0, _080BDC78
- ldrb r0, [r0, 0x14]
- ldr r1, _080BDC7C
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x6
- bl sav12_xor_increment
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC70: .4byte gSaveBlock1
-_080BDC74: .4byte 0x00002b1a
-_080BDC78: .4byte gMapHeader
-_080BDC7C: .4byte 0x00002b18
- thumb_func_end sub_80BDC14
-
- thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
-TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
- ldr r0, _080BDC94
- ldr r1, _080BDC98
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BDC94: .4byte gSaveBlock1
-_080BDC98: .4byte 0x00002b1a
- thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
-
- thumb_func_start GabbyAndTyGetBattleNum
-GabbyAndTyGetBattleNum: @ 80BDC9C
- push {lr}
- ldr r0, _080BDCBC
- ldr r2, _080BDCC0
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x5
- bls _080BDCB8
- ldrb r0, [r1]
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- lsls r0, 24
- lsrs r0, 24
-_080BDCB8:
- pop {r1}
- bx r1
- .align 2, 0
-_080BDCBC: .4byte gSaveBlock1
-_080BDCC0: .4byte 0x00002b19
- thumb_func_end GabbyAndTyGetBattleNum
-
- thumb_func_start IsTVShowInSearchOfTrainersAiring
-IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
- ldr r0, _080BDCD4
- ldr r1, _080BDCD8
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080BDCD4: .4byte gSaveBlock1
-_080BDCD8: .4byte 0x00002b1a
- thumb_func_end IsTVShowInSearchOfTrainersAiring
-
- thumb_func_start GabbyAndTyGetLastQuote
-GabbyAndTyGetLastQuote: @ 80BDCDC
- push {r4,r5,lr}
- ldr r0, _080BDD00
- ldr r1, _080BDD04
- adds r4, r0, r1
- ldrh r0, [r4]
- ldr r5, _080BDD08
- cmp r0, r5
- beq _080BDD10
- ldr r0, _080BDD0C
- ldrh r1, [r4]
- bl sub_80EB3FC
- ldrh r1, [r4]
- adds r0, r5, 0
- orrs r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _080BDD12
- .align 2, 0
-_080BDD00: .4byte gSaveBlock1
-_080BDD04: .4byte 0x00002b16
-_080BDD08: .4byte 0x0000ffff
-_080BDD0C: .4byte gStringVar1
-_080BDD10:
- movs r0, 0
-_080BDD12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GabbyAndTyGetLastQuote
-
- thumb_func_start sub_80BDD18
-sub_80BDD18: @ 80BDD18
- push {lr}
- ldr r0, _080BDD30
- ldr r1, _080BDD34
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BDD38
- movs r0, 0x1
- b _080BDD5E
- .align 2, 0
-_080BDD30: .4byte gSaveBlock1
-_080BDD34: .4byte 0x00002b1b
-_080BDD38:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BDD44
- movs r0, 0x2
- b _080BDD5E
-_080BDD44:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080BDD50
- movs r0, 0x3
- b _080BDD5E
-_080BDD50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDD5C
- movs r0, 0
- b _080BDD5E
-_080BDD5C:
- movs r0, 0x4
-_080BDD5E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BDD18
-
- thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
-GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
- push {lr}
- bl GabbyAndTyGetBattleNum
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x7
- bhi _080BDE3C
- lsls r0, 2
- ldr r1, _080BDD80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDD80: .4byte _080BDD84
- .align 2, 0
-_080BDD84:
- .4byte _080BDDA4
- .4byte _080BDDB8
- .4byte _080BDDCC
- .4byte _080BDDE0
- .4byte _080BDDF4
- .4byte _080BDE08
- .4byte _080BDE1C
- .4byte _080BDE30
-_080BDDA4:
- ldr r1, _080BDDB0
- movs r0, 0xE
- strh r0, [r1]
- ldr r1, _080BDDB4
- movs r0, 0xD
- b _080BDE3A
- .align 2, 0
-_080BDDB0: .4byte gUnknown_0202E8CC
-_080BDDB4: .4byte gUnknown_0202E8CE
-_080BDDB8:
- ldr r1, _080BDDC4
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _080BDDC8
- movs r0, 0x6
- b _080BDE3A
- .align 2, 0
-_080BDDC4: .4byte gUnknown_0202E8CC
-_080BDDC8: .4byte gUnknown_0202E8CE
-_080BDDCC:
- ldr r1, _080BDDD8
- movs r0, 0x12
- strh r0, [r1]
- ldr r1, _080BDDDC
- movs r0, 0x11
- b _080BDE3A
- .align 2, 0
-_080BDDD8: .4byte gUnknown_0202E8CC
-_080BDDDC: .4byte gUnknown_0202E8CE
-_080BDDE0:
- ldr r1, _080BDDEC
- movs r0, 0x15
- strh r0, [r1]
- ldr r1, _080BDDF0
- movs r0, 0x16
- b _080BDE3A
- .align 2, 0
-_080BDDEC: .4byte gUnknown_0202E8CC
-_080BDDF0: .4byte gUnknown_0202E8CE
-_080BDDF4:
- ldr r1, _080BDE00
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080BDE04
- movs r0, 0x9
- b _080BDE3A
- .align 2, 0
-_080BDE00: .4byte gUnknown_0202E8CC
-_080BDE04: .4byte gUnknown_0202E8CE
-_080BDE08:
- ldr r1, _080BDE14
- movs r0, 0x13
- strh r0, [r1]
- ldr r1, _080BDE18
- movs r0, 0x14
- b _080BDE3A
- .align 2, 0
-_080BDE14: .4byte gUnknown_0202E8CC
-_080BDE18: .4byte gUnknown_0202E8CE
-_080BDE1C:
- ldr r1, _080BDE28
- movs r0, 0x17
- strh r0, [r1]
- ldr r1, _080BDE2C
- movs r0, 0x18
- b _080BDE3A
- .align 2, 0
-_080BDE28: .4byte gUnknown_0202E8CC
-_080BDE2C: .4byte gUnknown_0202E8CE
-_080BDE30:
- ldr r1, _080BDE40
- movs r0, 0xA
- strh r0, [r1]
- ldr r1, _080BDE44
- movs r0, 0xB
-_080BDE3A:
- strh r0, [r1]
-_080BDE3C:
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE40: .4byte gUnknown_0202E8CC
-_080BDE44: .4byte gUnknown_0202E8CE
- thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
-
- thumb_func_start sub_80BDE48
-sub_80BDE48: @ 80BDE48
- push {lr}
- ldr r0, _080BDE60
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BDEA6
- lsls r0, 2
- ldr r1, _080BDE64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDE60: .4byte gUnknown_0202E8CE
-_080BDE64: .4byte _080BDE68
- .align 2, 0
-_080BDE68:
- .4byte _080BDE84
- .4byte _080BDE8A
- .4byte _080BDE90
- .4byte _080BDE96
- .4byte _080BDEA6
- .4byte _080BDE9C
- .4byte _080BDEA2
-_080BDE84:
- bl sub_80BE5FC
- b _080BDEA6
-_080BDE8A:
- bl sub_80BE65C
- b _080BDEA6
-_080BDE90:
- bl sub_80BE6A0
- b _080BDEA6
-_080BDE96:
- bl nullsub_21
- b _080BDEA6
-_080BDE9C:
- bl sub_80BE188
- b _080BDEA6
-_080BDEA2:
- bl sub_80BE320
-_080BDEA6:
- pop {r0}
- bx r0
- thumb_func_end sub_80BDE48
-
- thumb_func_start sub_80BDEAC
-sub_80BDEAC: @ 80BDEAC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _080BDEC0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _080BDEC0
- movs r2, 0x1
-_080BDEC0:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BDEAC
-
- thumb_func_start sub_80BDEC8
-sub_80BDEC8: @ 80BDEC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- bl sub_80BEB20
- bl sub_80BE778
- ldr r5, _080BDEE8
- ldrh r0, [r5, 0x28]
- cmp r0, 0
- bne _080BDEEC
- bl sub_80BE074
- b _080BE012
- .align 2, 0
-_080BDEE8: .4byte gUnknown_030042E0
-_080BDEEC:
- bl sub_80BE028
- ldr r0, _080BDF98
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- beq _080BDEFE
- b _080BE012
-_080BDEFE:
- ldrh r1, [r5, 0x28]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080BDF9C
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0x2A
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080BDF16
- b _080BE012
-_080BDF16:
- ldr r0, _080BDFA0
- bl sub_80BF74C
- ldr r1, _080BDFA4
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE012
- movs r0, 0x15
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE012
- movs r2, 0
- adds r7, r5, 0
- adds r1, r7, 0
- adds r1, 0x36
-_080BDF42:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDF42
- cmp r4, 0
- bne _080BDF64
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BE012
-_080BDF64:
- movs r4, 0
- ldr r0, _080BDFA4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDFA0
- adds r5, r0, r1
- movs r0, 0x15
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BDFAC
- movs r4, 0x1
- movs r0, 0x1
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BDFA8
- mov r8, r1
- adds r6, r5, 0x4
- b _080BDFDE
- .align 2, 0
-_080BDF98: .4byte 0x0000ffff
-_080BDF9C: .4byte gSpeciesNames
-_080BDFA0: .4byte gSaveBlock1 + 0x2738
-_080BDFA4: .4byte gUnknown_03005D38
-_080BDFA8: .4byte gSaveBlock2
-_080BDFAC:
- movs r2, 0
- ldr r0, _080BE01C
- mov r12, r0
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BE020
- mov r8, r1
- adds r6, r5, 0x4
- adds r1, r7, 0
- adds r1, 0x36
-_080BDFC0:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDFC0
- cmp r4, 0xFF
- bls _080BDFDA
- movs r4, 0xFF
-_080BDFDA:
- mov r1, r12
- ldrh r0, [r1]
-_080BDFDE:
- strb r4, [r5, 0x12]
- strb r0, [r5, 0xF]
- adds r0, r3, 0
- mov r1, r8
- bl StringCopy
- ldr r4, _080BE024
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCopy
- subs r4, 0x2A
- ldrh r0, [r4, 0x28]
- strh r0, [r5, 0x10]
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x2]
- adds r0, r6, 0
- bl sub_80BDEAC
- strb r0, [r5, 0x3]
- adds r0, r6, 0
- bl SkipExtCtrlCodes
-_080BE012:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE01C: .4byte gUnknown_02024C04
-_080BE020: .4byte gSaveBlock2
-_080BE024: .4byte gUnknown_0300430A
- thumb_func_end sub_80BDEC8
-
- thumb_func_start sub_80BE028
-sub_80BE028: @ 80BE028
- push {r4,lr}
- ldr r4, _080BE064
- ldrb r0, [r4]
- cmp r0, 0x19
- beq _080BE048
- ldr r1, _080BE068
- adds r0, r4, r1
- movs r1, 0x18
- bl sub_80BF55C
- movs r0, 0x5
- bl sub_8053108
- strh r0, [r4, 0x6]
- movs r0, 0x19
- strb r0, [r4]
-_080BE048:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- ldr r1, _080BE06C
- ldrh r0, [r1, 0x28]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldr r0, _080BE070
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE064: .4byte gSaveBlock1 + 0x2A98
-_080BE068: .4byte 0xfffffca0
-_080BE06C: .4byte gUnknown_030042E0
-_080BE070: .4byte gMapHeader
- thumb_func_end sub_80BE028
-
- thumb_func_start sub_80BE074
-sub_80BE074: @ 80BE074
- push {r4-r7,lr}
- ldr r0, _080BE118
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- bne _080BE112
- movs r1, 0
- movs r5, 0
- ldr r2, _080BE11C
-_080BE088:
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bls _080BE088
- cmp r5, 0xFF
- bls _080BE0A2
- movs r5, 0xFF
-_080BE0A2:
- cmp r5, 0x2
- bls _080BE112
- ldr r7, _080BE120
- ldrb r0, [r7]
- cmp r0, 0x1
- bne _080BE112
- ldr r6, _080BE124
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r4, _080BE128
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE112
- movs r0, 0x17
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE112
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r6
- movs r1, 0
- movs r0, 0x17
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BE12C
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x20]
- strh r0, [r4, 0xE]
- strb r5, [r4, 0x10]
- ldrb r0, [r7]
- strb r0, [r4, 0x11]
- ldr r0, _080BE130
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BE134
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x2]
-_080BE112:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE118: .4byte 0x0000ffff
-_080BE11C: .4byte gUnknown_03004316
-_080BE120: .4byte gUnknown_02024D26
-_080BE124: .4byte gSaveBlock1 + 0x2738
-_080BE128: .4byte gUnknown_03005D38
-_080BE12C: .4byte gUnknown_030042E0
-_080BE130: .4byte gMapHeader
-_080BE134: .4byte gSaveBlock2
- thumb_func_end sub_80BE074
-
- thumb_func_start sub_80BE138
-sub_80BE138: @ 80BE138
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- strb r0, [r4, 0x1E]
- lsrs r2, r0, 8
- strb r2, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r1, 0x1
- strb r2, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x23
- strb r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE138
-
- thumb_func_start sub_80BE160
-sub_80BE160: @ 80BE160
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- lsrs r1, r0, 8
- adds r2, r4, 0
- adds r2, 0x21
- strb r1, [r2]
- adds r2, 0x1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x23
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE160
-
- thumb_func_start sub_80BE188
-sub_80BE188: @ 80BE188
- push {r4-r6,lr}
- ldr r6, _080BE22C
- ldrb r1, [r6]
- cmp r1, 0x6
- bne _080BE224
- ldr r0, _080BE230
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r2, _080BE234
- adds r0, r6, r2
- adds r4, r0
- strb r1, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- ldrh r0, [r6, 0x2]
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- adds r0, 0x16
- ldr r1, _080BE238
- bl StringCopy
- adds r5, r4, 0
- adds r5, 0x8
- adds r1, r6, 0
- adds r1, 0x8
- adds r0, r5, 0
- bl StringCopy
- ldrb r0, [r6, 0x13]
- lsls r0, 29
- lsrs r0, 29
- ldrb r2, [r4, 0x13]
- movs r3, 0x8
- negs r3, r3
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x13]
- ldrb r2, [r6, 0x13]
- movs r0, 0x18
- ands r0, r2
- movs r2, 0x19
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0x13]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x14]
- ldrb r0, [r6, 0x13]
- movs r1, 0x60
- ands r1, r0
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x13]
- ldrb r1, [r6, 0x13]
- lsls r1, 29
- lsrs r1, 29
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x13]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl SkipExtCtrlCodes
-_080BE224:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE22C: .4byte gSaveBlock1 + 0x2A98
-_080BE230: .4byte gUnknown_03005D38
-_080BE234: .4byte 0xfffffca0
-_080BE238: .4byte gSaveBlock2
- thumb_func_end sub_80BE188
-
- thumb_func_start sub_80BE23C
-sub_80BE23C: @ 80BE23C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, _080BE278
- bl sub_80BF484
- ldr r0, _080BE27C
- adds r5, r4, r0
- adds r0, r5, 0
- bl sub_80BF720
- ldr r1, _080BE280
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE270
- adds r0, r5, 0
- movs r1, 0x18
- bl sub_80BF55C
- strh r6, [r4, 0x14]
- movs r0, 0x6
- strb r0, [r4]
-_080BE270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE278: .4byte gSaveBlock1 + 0x2A98
-_080BE27C: .4byte 0xfffffca0
-_080BE280: .4byte gUnknown_03005D38
- thumb_func_end sub_80BE23C
-
- thumb_func_start sub_80BE284
-sub_80BE284: @ 80BE284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r7, _080BE304
- ldr r1, _080BE308
- adds r0, r7, r1
- bl sub_80BF720
- ldr r1, _080BE30C
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE2FE
- movs r3, 0x3
- adds r1, r4, 0
- ands r1, r3
- lsls r1, 5
- ldrb r2, [r7, 0x13]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE310
- ldrb r2, [r1]
- movs r1, 0x7
- ands r1, r2
- movs r2, 0x8
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE314
- ldrb r1, [r1]
- ands r3, r1
- lsls r3, 3
- movs r1, 0x19
- negs r1, r1
- ands r0, r1
- orrs r0, r3
- strb r0, [r7, 0x13]
- ldr r6, _080BE318
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BE31C
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- adds r2, r7, 0
- adds r2, 0x8
- movs r1, 0x2
- bl GetMonData
-_080BE2FE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE304: .4byte gSaveBlock1 + 0x2A98
-_080BE308: .4byte 0xfffffca0
-_080BE30C: .4byte gUnknown_03005D38
-_080BE310: .4byte gUnknown_0203869C
-_080BE314: .4byte gUnknown_0203869E
-_080BE318: .4byte gUnknown_02038694
-_080BE31C: .4byte gPlayerParty
- thumb_func_end sub_80BE284
-
- thumb_func_start sub_80BE320
-sub_80BE320: @ 80BE320
- push {r4-r6,lr}
- ldr r0, _080BE384
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BE388
- adds r6, r0, r1
- movs r0, 0x7
- strb r0, [r6]
- movs r0, 0x1
- strb r0, [r6, 0x1]
- adds r0, r6, 0x2
- ldr r4, _080BE38C
- adds r1, r4, 0
- bl StringCopy
- adds r0, r6, 0
- adds r0, 0xC
- ldr r2, _080BE390
- adds r1, r4, r2
- bl StringCopy
- movs r1, 0x90
- lsls r1, 3
- adds r0, r4, r1
- ldrh r0, [r0]
- strh r0, [r6, 0xA]
- ldr r2, _080BE394
- adds r0, r4, r2
- ldrh r0, [r0]
- strh r0, [r6, 0x14]
- movs r0, 0xAF
- lsls r0, 3
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_8135D3C
- strh r0, [r6, 0x16]
- ldr r1, _080BE398
- adds r4, r1
- ldrb r0, [r4]
- strb r0, [r6, 0x1C]
- ldrb r0, [r5]
- cmp r0, 0
- bne _080BE39C
- movs r0, 0x32
- b _080BE39E
- .align 2, 0
-_080BE384: .4byte gUnknown_03005D38
-_080BE388: .4byte gSaveBlock1 + 0x2738
-_080BE38C: .4byte gSaveBlock2
-_080BE390: .4byte 0x00000484
-_080BE394: .4byte 0x00000482
-_080BE398: .4byte 0x00000555
-_080BE39C:
- movs r0, 0x64
-_080BE39E:
- strb r0, [r6, 0x1A]
- ldr r0, _080BE3B8
- ldrh r0, [r0]
- strb r0, [r6, 0x1B]
- adds r0, r6, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r6, 0x1D]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE3B8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80BE320
-
- thumb_func_start sub_80BE3BC
-sub_80BE3BC: @ 80BE3BC
- push {r4-r7,lr}
- ldr r0, _080BE460
- bl sub_80BF77C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BE458
- ldr r6, _080BE464
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r5, _080BE468
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE458
- movs r0, 0x16
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE458
- bl sub_80BF20C
- ldr r2, _080BE46C
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bls _080BE458
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r6
- movs r0, 0x16
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldr r0, _080BE470
- ldrb r0, [r0, 0x14]
- strb r0, [r5, 0x12]
- movs r4, 0
- adds r7, r5, 0x6
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0xC
-_080BE420:
- lsls r2, r4, 1
- adds r3, r7, r2
- lsls r1, r4, 2
- add r1, r12
- ldrh r0, [r1]
- strh r0, [r3]
- adds r2, r6, r2
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080BE420
- movs r0, 0x1
- bl GetPriceReduction
- strb r0, [r5, 0x2]
- adds r0, r5, 0
- adds r0, 0x13
- ldr r1, _080BE474
- bl StringCopy
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x3]
-_080BE458:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE460: .4byte 0x00005555
-_080BE464: .4byte gSaveBlock1 + 0x2738
-_080BE468: .4byte gUnknown_03005D38
-_080BE46C: .4byte gUnknown_02038724
-_080BE470: .4byte gMapHeader
-_080BE474: .4byte gSaveBlock2
- thumb_func_end sub_80BE3BC
-
- thumb_func_start sub_80BE478
-sub_80BE478: @ 80BE478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_80BF478
- ldr r0, _080BE554
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BE548
- ldr r0, _080BE558
- mov r8, r0
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r6, _080BE55C
- adds r0, r6
- ldr r4, _080BE560
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r1, _080BE564
- mov r9, r1
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- ldr r0, _080BE568
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE56C
- adds r4, r0
- movs r0, 0x5
- strb r0, [r4]
- movs r5, 0x1
- strb r5, [r4, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0x1A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- strb r0, [r4, 0x1B]
- ldrh r0, [r4, 0x2]
- bl sub_80BF674
- strh r0, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0xF
- mov r1, r9
- bl StringCopy
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r5, r4, 0x4
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl SkipExtCtrlCodes
-_080BE548:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE554: .4byte gScriptResult
-_080BE558: .4byte gUnknown_0202E8CC
-_080BE55C: .4byte gPlayerParty
-_080BE560: .4byte gStringVar1
-_080BE564: .4byte gSaveBlock2
-_080BE568: .4byte gUnknown_03005D38
-_080BE56C: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BE478
-
- thumb_func_start StartMassOutbreak
-StartMassOutbreak: @ 80BE570
- push {r4,lr}
- ldr r0, _080BE5F0
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r2, _080BE5F4
- adds r0, r2
- ldrh r3, [r0, 0xC]
- movs r4, 0xF1
- lsls r4, 2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x10]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x11]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x14]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x2]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrh r3, [r0, 0xE]
- adds r4, 0x1
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x4]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x6]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x8]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0xA]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x3]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r1, [r0, 0x13]
- ldr r3, _080BE5F8
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r2, r4
- movs r0, 0x2
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE5F0: .4byte gUnknown_0202E8CC
-_080BE5F4: .4byte gSaveBlock1 + 0x2738
-_080BE5F8: .4byte 0x000003d5
- thumb_func_end StartMassOutbreak
-
- thumb_func_start sub_80BE5FC
-sub_80BE5FC: @ 80BE5FC
- push {r4,lr}
- ldr r0, _080BE64C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE650
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE654
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BE658
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE64C: .4byte gUnknown_03005D38
-_080BE650: .4byte gSaveBlock1 + 0x2738
-_080BE654: .4byte gSaveBlock2
-_080BE658: .4byte gPlayerParty
- thumb_func_end sub_80BE5FC
-
- thumb_func_start sub_80BE65C
-sub_80BE65C: @ 80BE65C
- push {r4-r6,lr}
- ldr r0, _080BE694
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE698
- adds r4, r0
- movs r6, 0
- movs r5, 0x2
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE69C
- bl StringCopy
- strh r6, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- strb r5, [r4, 0x18]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE694: .4byte gUnknown_03005D38
-_080BE698: .4byte gSaveBlock1 + 0x2738
-_080BE69C: .4byte gSaveBlock2
- thumb_func_end sub_80BE65C
-
- thumb_func_start sub_80BE6A0
-sub_80BE6A0: @ 80BE6A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080BE760
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE764
- adds r4, r0
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BE768
- adds r0, r6
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsrs r0, 4
- movs r1, 0xF
- ands r0, r1
- ldrb r2, [r4, 0x4]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- ldr r0, _080BE76C
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- adds r0, r4, 0x5
- ldr r1, _080BE770
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r5, r4, 0
- adds r5, 0x10
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0xD]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- bl SkipExtCtrlCodes
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE760: .4byte gUnknown_03005D38
-_080BE764: .4byte gSaveBlock1 + 0x2738
-_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gUnknown_0202E8D2
-_080BE770: .4byte gSaveBlock2
- thumb_func_end sub_80BE6A0
-
- thumb_func_start nullsub_21
-nullsub_21: @ 80BE774
- bx lr
- thumb_func_end nullsub_21
-
- thumb_func_start sub_80BE778
-sub_80BE778: @ 80BE778
- push {r4-r6,lr}
- ldr r0, _080BE83C
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BE836
- movs r1, 0
- ldr r3, _080BE840
- ldr r2, _080BE844
-_080BE78C:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- beq _080BE836
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x17
- bls _080BE78C
- ldr r0, _080BE848
- bl sub_80BF77C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BE836
- ldr r6, _080BE84C
- adds r0, r6, 0
- bl sub_80BF720
- ldr r4, _080BE850
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE836
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r4, r1, 3
- adds r4, r1
- lsls r4, 2
- adds r4, r6
- movs r1, 0x29
- strb r1, [r4]
- movs r3, 0x1
- strb r3, [r4, 0x1]
- ldr r2, _080BE854
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- strb r0, [r4, 0x14]
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x3]
- ldrh r0, [r1]
- movs r2, 0
- strh r0, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x6]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0xB]
- strb r0, [r4, 0x10]
- strb r2, [r4, 0x11]
- strb r2, [r4, 0x12]
- movs r0, 0x32
- strb r0, [r4, 0x13]
- strb r2, [r4, 0x15]
- strh r3, [r4, 0x16]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
-_080BE836:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE83C: .4byte 0x00000804
-_080BE840: .4byte gSaveBlock1
-_080BE844: .4byte 0x00002738
-_080BE848: .4byte 0x00000147
-_080BE84C: .4byte gSaveBlock1 + 0x2738
-_080BE850: .4byte gUnknown_03005D38
-_080BE854: .4byte gUnknown_083D13F8
- thumb_func_end sub_80BE778
-
- thumb_func_start EndMassOutbreak
-EndMassOutbreak: @ 80BE858
- push {r4,lr}
- ldr r0, _080BE8B4
- ldr r2, _080BE8B8
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r1]
- ldr r4, _080BE8BC
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- ldr r1, _080BE8C0
- adds r0, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE8B4: .4byte gSaveBlock1
-_080BE8B8: .4byte 0x00002afc
-_080BE8BC: .4byte 0x00002afe
-_080BE8C0: .4byte 0x00002b0e
- thumb_func_end EndMassOutbreak
-
- thumb_func_start sub_80BE8C4
-sub_80BE8C4: @ 80BE8C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BE8EC
- adds r0, r4, 0
- bl UpdateMassOutbreakTimeLeft
- adds r0, r4, 0
- bl sub_80BEE84
- adds r0, r4, 0
- bl sub_80BEA5C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8C4
-
- thumb_func_start sub_80BE8EC
-sub_80BE8EC: @ 80BE8EC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080BE930
- ldr r2, _080BE934
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BE94C
- movs r3, 0
- adds r5, r1, 0
- ldr r7, _080BE938
- adds r6, r5, r7
-_080BE906:
- lsls r0, r3, 3
- adds r0, r3
- lsls r2, r0, 2
- adds r1, r2, r5
- ldr r7, _080BE938
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BE942
- adds r7, 0x1
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BE942
- adds r1, r2, r6
- ldrh r0, [r1, 0x16]
- cmp r0, r4
- bcs _080BE93C
- movs r0, 0
- strh r0, [r1, 0x16]
- b _080BE94C
- .align 2, 0
-_080BE930: .4byte gSaveBlock1
-_080BE934: .4byte 0x00002afc
-_080BE938: .4byte 0x00002738
-_080BE93C:
- subs r0, r4
- strh r0, [r1, 0x16]
- b _080BE94C
-_080BE942:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x17
- bls _080BE906
-_080BE94C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8EC
-
- thumb_func_start UpdateMassOutbreakTimeLeft
-UpdateMassOutbreakTimeLeft: @ 80BE954
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080BE96C
- ldr r3, _080BE970
- adds r2, r0, r3
- ldrh r0, [r2]
- cmp r0, r1
- bhi _080BE974
- bl EndMassOutbreak
- b _080BE978
- .align 2, 0
-_080BE96C: .4byte gSaveBlock1
-_080BE970: .4byte 0x00002b0e
-_080BE974:
- subs r0, r1
- strh r0, [r2]
-_080BE978:
- pop {r0}
- bx r0
- thumb_func_end UpdateMassOutbreakTimeLeft
-
- thumb_func_start sub_80BE97C
-sub_80BE97C: @ 80BE97C
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- beq _080BE9A4
- ldr r4, _080BE9A0
- ldrh r0, [r4]
- lsrs r0, 8
- cmp r0, 0x4
- bls _080BE992
- bl sub_80BE9D4
-_080BE992:
- ldrb r0, [r4]
- strh r0, [r4]
- cmp r0, 0xFF
- beq _080BE9C8
- adds r0, 0x1
- b _080BE9C6
- .align 2, 0
-_080BE9A0: .4byte gUnknown_020387E2
-_080BE9A4:
- ldr r4, _080BE9D0
- ldrb r0, [r4]
- cmp r0, 0x4
- bls _080BE9B0
- bl sub_80BE9D4
-_080BE9B0:
- ldrh r0, [r4]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- strh r1, [r4]
- lsrs r0, r1, 8
- cmp r0, 0xFF
- beq _080BE9C8
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
-_080BE9C6:
- strh r0, [r4]
-_080BE9C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE9D0: .4byte gUnknown_020387E2
- thumb_func_end sub_80BE97C
-
- thumb_func_start sub_80BE9D4
-sub_80BE9D4: @ 80BE9D4
- push {r4,r5,lr}
- ldr r5, _080BEA3C
- adds r0, r5, 0
- bl sub_80BF74C
- ldr r4, _080BEA40
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEA36
- movs r0, 0x18
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEA36
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- movs r1, 0
- movs r0, 0x18
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BEA44
- ldrh r0, [r1]
- strb r0, [r4, 0x2]
- ldrh r0, [r1]
- lsrs r0, 8
- strb r0, [r4, 0x3]
- ldr r0, _080BEA48
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEA4C
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x6]
-_080BEA36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEA3C: .4byte gSaveBlock1 + 0x2738
-_080BEA40: .4byte gUnknown_03005D38
-_080BEA44: .4byte gUnknown_020387E2
-_080BEA48: .4byte gUnknown_020387E0
-_080BEA4C: .4byte gSaveBlock2
- thumb_func_end sub_80BE9D4
-
- thumb_func_start sub_80BEA50
-sub_80BEA50: @ 80BEA50
- ldr r1, _080BEA58
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BEA58: .4byte gUnknown_020387E0
- thumb_func_end sub_80BEA50
-
- thumb_func_start sub_80BEA5C
-sub_80BEA5C: @ 80BEA5C
- push {lr}
- ldr r1, _080BEA78
- ldrb r0, [r1]
- cmp r0, 0x19
- bne _080BEA84
- ldrh r0, [r1, 0x2]
- cmp r0, 0x13
- bhi _080BEA80
- ldr r2, _080BEA7C
- adds r0, r1, r2
- movs r1, 0x18
- bl sub_80BF55C
- b _080BEA84
- .align 2, 0
-_080BEA78: .4byte gSaveBlock1 + 0x2A98
-_080BEA7C: .4byte 0xfffffca0
-_080BEA80:
- bl sub_80BEA88
-_080BEA84:
- pop {r0}
- bx r0
- thumb_func_end sub_80BEA5C
-
- thumb_func_start sub_80BEA88
-sub_80BEA88: @ 80BEA88
- push {r4-r7,lr}
- ldr r5, _080BEB0C
- ldr r0, _080BEB10
- bl sub_80BF77C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080BEB04
- ldr r0, _080BEB14
- adds r7, r5, r0
- adds r0, r7, 0
- bl sub_80BF74C
- ldr r4, _080BEB18
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEB04
- movs r0, 0x19
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEB04
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r7
- movs r0, 0x19
- strb r0, [r4]
- strb r6, [r4, 0x1]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- movs r0, 0x5
- bl sub_8053108
- ldrh r1, [r5, 0x6]
- subs r0, r1
- strh r0, [r4, 0x6]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x8]
- ldrb r0, [r5, 0xA]
- strb r0, [r4, 0xA]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEB1C
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0xB]
-_080BEB04:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEB0C: .4byte gSaveBlock1 + 0x2A98
-_080BEB10: .4byte 0x0000ffff
-_080BEB14: .4byte 0xfffffca0
-_080BEB18: .4byte gUnknown_03005D38
-_080BEB1C: .4byte gSaveBlock2
- thumb_func_end sub_80BEA88
-
- thumb_func_start sub_80BEB20
-sub_80BEB20: @ 80BEB20
- push {r4-r6,lr}
- ldr r0, _080BEBAC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BEBA6
- ldr r6, _080BEBB0
- adds r0, r6, 0
- bl sub_80BEBC8
- ldr r5, _080BEBB4
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEBA6
- ldr r0, _080BEBB8
- bl sub_80BF77C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BEE48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- ldr r1, _080BEBBC
- adds r2, r6, r1
- adds r0, r6, r0
- strb r4, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC0
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080BEBA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEBAC: .4byte 0x00000804
-_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
-_080BEBB4: .4byte gUnknown_03005D38
-_080BEBB8: .4byte 0x0000028f
-_080BEBBC: .4byte 0xffffd544
-_080BEBC0: .4byte 0x00002abe
-_080BEBC4: .4byte 0x00002abd
- thumb_func_end sub_80BEB20
-
- thumb_func_start sub_80BEBC8
-sub_80BEBC8: @ 80BEBC8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BEBCE:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BEBE0
- adds r0, r1, 0
- b _080BEBF0
-_080BEBE0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0xF
- ble _080BEBCE
- movs r0, 0x1
- negs r0, r0
-_080BEBF0:
- pop {r1}
- bx r1
- thumb_func_end sub_80BEBC8
-
- thumb_func_start sub_80BEBF4
-sub_80BEBF4: @ 80BEBF4
- push {r4,lr}
- movs r4, 0
-_080BEBF8:
- adds r0, r4, 0
- bl sub_80BEC10
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080BEBF8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEBF4
-
- thumb_func_start sub_80BEC10
-sub_80BEC10: @ 80BEC10
- lsls r0, 24
- ldr r1, _080BEC30
- lsrs r0, 22
- adds r0, r1
- ldr r2, _080BEC34
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _080BEC38
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _080BEC3C
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080BEC30: .4byte gSaveBlock1
-_080BEC34: .4byte 0x00002abc
-_080BEC38: .4byte 0x00002abd
-_080BEC3C: .4byte 0x00002abe
- thumb_func_end sub_80BEC10
-
- thumb_func_start sub_80BEC40
-sub_80BEC40: @ 80BEC40
- push {r4-r7,lr}
- movs r1, 0
- ldr r6, _080BEC80
-_080BEC46:
- ldr r3, _080BEC80
- lsls r2, r1, 2
- adds r0, r2, r3
- ldr r4, _080BEC84
- adds r0, r4
- ldrb r0, [r0]
- adds r5, r1, 0x1
- cmp r0, 0
- bne _080BEC92
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _080BEC92
- adds r4, r3, r4
- adds r3, r2, r4
-_080BEC64:
- lsls r2, r1, 2
- adds r0, r2, r6
- ldr r7, _080BEC84
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BEC88
- adds r0, r2, r4
- ldr r0, [r0]
- str r0, [r3]
- adds r0, r1, 0
- bl sub_80BEC10
- b _080BEC92
- .align 2, 0
-_080BEC80: .4byte gSaveBlock1
-_080BEC84: .4byte 0x00002abc
-_080BEC88:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEC64
-_080BEC92:
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080BEC46
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEC40
-
- thumb_func_start sub_80BECA0
-sub_80BECA0: @ 80BECA0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BECCC
-_080BECA6:
- lsls r0, r2, 2
- adds r1, r0, r3
- ldr r4, _080BECD0
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0x2
- bhi _080BECD4
- adds r0, r2, 0
- b _080BECE0
- .align 2, 0
-_080BECCC: .4byte gSaveBlock1
-_080BECD0: .4byte 0x00002abc
-_080BECD4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BECA6
- movs r0, 0xFF
-_080BECE0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BECA0
-
- thumb_func_start sub_80BECE8
-sub_80BECE8: @ 80BECE8
- push {r4,lr}
- bl sub_80BECA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BED00
- ldr r1, _080BECFC
- movs r0, 0
- b _080BED86
- .align 2, 0
-_080BECFC: .4byte gScriptResult
-_080BED00:
- ldr r0, _080BED2C
- lsls r1, 2
- adds r4, r1, r0
- ldr r0, _080BED30
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080BED5C
- ldr r2, _080BED34
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080BED38
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x13
- bgt _080BED40
- ldr r1, _080BED3C
- subs r2, 0x1
- b _080BED44
- .align 2, 0
-_080BED2C: .4byte gSaveBlock1
-_080BED30: .4byte 0x00002abe
-_080BED34: .4byte 0x00002abd
-_080BED38: .4byte gLocalTime
-_080BED3C: .4byte gUnknown_083D1444
-_080BED40:
- ldr r1, _080BED54
- ldr r2, _080BED58
-_080BED44:
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- b _080BED82
- .align 2, 0
-_080BED54: .4byte gUnknown_083D1454
-_080BED58: .4byte 0x00002abc
-_080BED5C:
- ldrh r1, [r1]
- ldr r0, _080BED90
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080BED94
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BED98
- ldr r2, _080BED9C
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
-_080BED82:
- ldr r1, _080BEDA0
- movs r0, 0x1
-_080BED86:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BED90: .4byte gStringVar1
-_080BED94: .4byte 0x00002abd
-_080BED98: .4byte gUnknown_083D1434
-_080BED9C: .4byte 0x00002abc
-_080BEDA0: .4byte gScriptResult
- thumb_func_end sub_80BECE8
-
- thumb_func_start GetPriceReduction
-GetPriceReduction: @ 80BEDA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080BEDB4
- b _080BEDF6
-_080BEDB0:
- movs r0, 0x1
- b _080BEDF8
-_080BEDB4:
- movs r2, 0
- ldr r4, _080BEDE0
-_080BEDB8:
- lsls r0, r2, 2
- adds r1, r0, r4
- ldr r5, _080BEDE4
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BEDEC
- ldr r2, _080BEDE8
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080BEDF6
- adds r0, r3, 0
- bl IsPriceDiscounted
- lsls r0, 24
- cmp r0, 0
- bne _080BEDB0
- b _080BEDF6
- .align 2, 0
-_080BEDE0: .4byte gSaveBlock1
-_080BEDE4: .4byte 0x00002abc
-_080BEDE8: .4byte 0x00002abd
-_080BEDEC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BEDB8
-_080BEDF6:
- movs r0, 0
-_080BEDF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetPriceReduction
-
- thumb_func_start IsPriceDiscounted
-IsPriceDiscounted: @ 80BEE00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEE12
- cmp r0, 0x3
- beq _080BEE30
-_080BEE0E:
- movs r0, 0x1
- b _080BEE3C
-_080BEE12:
- ldr r0, _080BEE28
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _080BEE3A
- ldr r0, _080BEE2C
- ldrh r0, [r0]
- cmp r0, 0x1A
- beq _080BEE0E
- b _080BEE3A
- .align 2, 0
-_080BEE28: .4byte gSaveBlock1
-_080BEE2C: .4byte gUnknown_0202E8DE
-_080BEE30:
- ldr r0, _080BEE40
- ldrh r1, [r0, 0x4]
- ldr r0, _080BEE44
- cmp r1, r0
- beq _080BEE0E
-_080BEE3A:
- movs r0, 0
-_080BEE3C:
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE40: .4byte gSaveBlock1
-_080BEE44: .4byte 0x0000160d
- thumb_func_end IsPriceDiscounted
-
- thumb_func_start sub_80BEE48
-sub_80BEE48: @ 80BEE48
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080BEE56
-_080BEE52:
- movs r0, 0x1
- b _080BEE74
-_080BEE56:
- movs r1, 0
- ldr r4, _080BEE7C
- ldr r3, _080BEE80
-_080BEE5C:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- beq _080BEE52
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEE5C
- movs r0, 0
-_080BEE74:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE7C: .4byte gSaveBlock1
-_080BEE80: .4byte 0x00002abc
- thumb_func_end sub_80BEE48
-
- thumb_func_start sub_80BEE84
-sub_80BEE84: @ 80BEE84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- ldr r0, _080BEEB8
- mov r8, r0
-_080BEE94:
- lsls r0, r5, 2
- mov r1, r8
- adds r2, r0, r1
- ldr r3, _080BEEBC
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080BEEEC
- ldr r1, _080BEEC0
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r7
- bcs _080BEEC4
- adds r0, r5, 0
- bl sub_80BEC10
- b _080BEEEC
- .align 2, 0
-_080BEEB8: .4byte gSaveBlock1
-_080BEEBC: .4byte 0x00002abc
-_080BEEC0: .4byte 0x00002abe
-_080BEEC4:
- ldr r3, _080BEF04
- adds r4, r2, r3
- ldrb r0, [r4]
- cmp r0, 0
- bne _080BEEDE
- ldr r0, _080BEF08
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BEEDE
- strb r0, [r4]
-_080BEEDE:
- mov r0, r8
- adds r1, r6, r0
- ldr r3, _080BEF0C
- adds r1, r3
- ldrh r0, [r1]
- subs r0, r7
- strh r0, [r1]
-_080BEEEC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080BEE94
- bl sub_80BEC40
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF04: .4byte 0x00002abd
-_080BEF08: .4byte 0x00000804
-_080BEF0C: .4byte 0x00002abe
- thumb_func_end sub_80BEE84
-
- thumb_func_start sub_80BEF10
-sub_80BEF10: @ 80BEF10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _080BEF50
- cmp r1, 0x1
- bgt _080BEF2A
- cmp r1, 0
- beq _080BEF34
- b _080BEF98
-_080BEF2A:
- cmp r2, 0x2
- beq _080BEF6C
- cmp r2, 0x3
- beq _080BEF88
- b _080BEF98
-_080BEF34:
- ldr r1, _080BEF48
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF4C
- ldr r1, [r1, 0x14]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF48: .4byte gUnknown_083D1464
-_080BEF4C: .4byte gUnknown_083CE048
-_080BEF50:
- ldr r1, _080BEF64
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF68
- ldr r1, [r1, 0x18]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF64: .4byte gUnknown_083D1464
-_080BEF68: .4byte gUnknown_083CE048
-_080BEF6C:
- ldr r1, _080BEF80
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF84
- ldr r1, [r1, 0x1C]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF80: .4byte gUnknown_083D1464
-_080BEF84: .4byte gUnknown_083CE048
-_080BEF88:
- ldr r1, _080BEF9C
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFA0
- ldr r1, [r1, 0x20]
- bl StringCopy
-_080BEF98:
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF9C: .4byte gUnknown_083D1464
-_080BEFA0: .4byte gUnknown_083CE048
- thumb_func_end sub_80BEF10
-
- thumb_func_start CopyContestCategoryToStringVar
-CopyContestCategoryToStringVar: @ 80BEFA4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x4
- bhi _080BF054
- lsls r0, 2
- ldr r1, _080BEFBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BEFBC: .4byte _080BEFC0
- .align 2, 0
-_080BEFC0:
- .4byte _080BEFD4
- .4byte _080BEFF0
- .4byte _080BF00C
- .4byte _080BF028
- .4byte _080BF044
-_080BEFD4:
- ldr r1, _080BEFE8
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFEC
- ldr r1, [r1]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BEFE8: .4byte gUnknown_083D1464
-_080BEFEC: .4byte gUnknown_083CE048
-_080BEFF0:
- ldr r1, _080BF004
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF008
- ldr r1, [r1, 0x4]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF004: .4byte gUnknown_083D1464
-_080BF008: .4byte gUnknown_083CE048
-_080BF00C:
- ldr r1, _080BF020
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF024
- ldr r1, [r1, 0x8]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF020: .4byte gUnknown_083D1464
-_080BF024: .4byte gUnknown_083CE048
-_080BF028:
- ldr r1, _080BF03C
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF040
- ldr r1, [r1, 0xC]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF03C: .4byte gUnknown_083D1464
-_080BF040: .4byte gUnknown_083CE048
-_080BF044:
- ldr r1, _080BF058
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF05C
- ldr r1, [r1, 0x10]
- bl StringCopy
-_080BF054:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF058: .4byte gUnknown_083D1464
-_080BF05C: .4byte gUnknown_083CE048
- thumb_func_end CopyContestCategoryToStringVar
-
- thumb_func_start SetContestCategoryStringVarForInterview
-SetContestCategoryStringVarForInterview: @ 80BF060
- push {lr}
- ldr r0, _080BF080
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF084
- adds r0, r1
- ldrb r1, [r0, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- pop {r0}
- bx r0
- .align 2, 0
-_080BF080: .4byte gUnknown_0202E8CC
-_080BF084: .4byte gSaveBlock1 + 0x2738
- thumb_func_end SetContestCategoryStringVarForInterview
-
- thumb_func_start sub_80BF088
-sub_80BF088: @ 80BF088
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- ldr r0, _080BF0B4
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF0B4: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF088
-
- thumb_func_start sub_80BF0B8
-sub_80BF0B8: @ 80BF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xA
- bl __divsi3
- cmp r0, 0
- beq _080BF144
- adds r0, r4, 0
- movs r1, 0x64
- bl __divsi3
- cmp r0, 0
- bne _080BF0D6
- movs r0, 0x2
- b _080BF14E
-_080BF0D6:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0E8
- movs r0, 0x3
- b _080BF14E
-_080BF0E8:
- ldr r1, _080BF0F8
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0FC
- movs r0, 0x4
- b _080BF14E
- .align 2, 0
-_080BF0F8: .4byte 0x00002710
-_080BF0FC:
- ldr r1, _080BF10C
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF110
- movs r0, 0x5
- b _080BF14E
- .align 2, 0
-_080BF10C: .4byte 0x000186a0
-_080BF110:
- ldr r1, _080BF120
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF124
- movs r0, 0x6
- b _080BF14E
- .align 2, 0
-_080BF120: .4byte 0x000f4240
-_080BF124:
- ldr r1, _080BF134
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF138
- movs r0, 0x7
- b _080BF14E
- .align 2, 0
-_080BF134: .4byte 0x00989680
-_080BF138:
- ldr r1, _080BF148
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- beq _080BF14C
-_080BF144:
- movs r0, 0x1
- b _080BF14E
- .align 2, 0
-_080BF148: .4byte 0x05f5e100
-_080BF14C:
- movs r0, 0x8
-_080BF14E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF0B8
-
- thumb_func_start sub_80BF154
-sub_80BF154: @ 80BF154
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- movs r5, 0
-_080BF166:
- lsls r4, r5, 1
- adds r0, r6, 0x6
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0
- beq _080BF186
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- adds r1, 0xC
- adds r1, r4
- ldrh r1, [r1]
- muls r0, r1
- adds r7, r0
-_080BF186:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF166
- ldrb r0, [r6, 0x2]
- cmp r0, 0x1
- bne _080BF1A0
- asrs r1, r7, 1
- mov r0, r8
- bl sub_80BF088
- b _080BF1A8
-_080BF1A0:
- mov r0, r8
- adds r1, r7, 0
- bl sub_80BF088
-_080BF1A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF154
-
- thumb_func_start sub_80BF1B4
-sub_80BF1B4: @ 80BF1B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _080BF1F4
- bl sub_80BFB94
- adds r5, r0, 0
- movs r4, 0x5
-_080BF1C4:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _080BF1F8
- movs r3, 0xFF
- adds r0, r5, 0
- ands r0, r3
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r2, [r2]
- cmp r0, r2
- bne _080BF1F8
- lsrs r0, r5, 8
- ands r0, r3
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BF1F8
- movs r0, 0x1
- b _080BF204
- .align 2, 0
-_080BF1F4: .4byte gSaveBlock1 + 0x2738
-_080BF1F8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bls _080BF1C4
- movs r0, 0
-_080BF204:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF1B4
-
- thumb_func_start sub_80BF20C
-sub_80BF20C: @ 80BF20C
- push {r4-r7,lr}
- movs r2, 0
-_080BF210:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- adds r7, r1, 0
- cmp r5, 0x2
- bhi _080BF248
- ldr r6, _080BF258
- lsls r0, r2, 2
- adds r4, r0, r6
-_080BF222:
- lsls r0, r5, 2
- adds r3, r0, r6
- ldrh r0, [r4, 0x2]
- ldrh r1, [r3, 0x2]
- cmp r0, r1
- bcs _080BF23E
- ldrh r1, [r4]
- adds r2, r0, 0
- ldrh r0, [r3]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- strh r0, [r4, 0x2]
- strh r1, [r3]
- strh r2, [r3, 0x2]
-_080BF23E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF222
-_080BF248:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bls _080BF210
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF258: .4byte gUnknown_02038724
- thumb_func_end sub_80BF20C
-
- thumb_func_start sub_80BF25C
-sub_80BF25C: @ 80BF25C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0
- ldr r3, _080BF28C
- ldr r0, _080BF290
- adds r4, r3, r0
-_080BF26A:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldr r6, _080BF290
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r5
- bne _080BF2AE
- ldr r3, _080BF294
- adds r0, r2, r3
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _080BF29C
- ldr r0, _080BF298
- strh r2, [r0]
- b _080BF2BC
- .align 2, 0
-_080BF28C: .4byte gSaveBlock1
-_080BF290: .4byte 0x00002738
-_080BF294: .4byte 0x00002739
-_080BF298: .4byte gScriptResult
-_080BF29C:
- adds r0, r4, 0
- bl sub_80BF55C
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80BF6D8
- b _080BF2BC
-_080BF2AE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF26A
- bl sub_80BF6D8
-_080BF2BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF25C
-
- thumb_func_start sub_80BF2C4
-sub_80BF2C4: @ 80BF2C4
- push {lr}
- ldr r1, _080BF2E0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080BF2E4
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BF330
- lsls r0, 2
- ldr r1, _080BF2E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BF2E0: .4byte gScriptResult
-_080BF2E4: .4byte gUnknown_0202E8CE
-_080BF2E8: .4byte _080BF2EC
- .align 2, 0
-_080BF2EC:
- .4byte _080BF308
- .4byte _080BF30E
- .4byte _080BF314
- .4byte _080BF31A
- .4byte _080BF320
- .4byte _080BF326
- .4byte _080BF32C
-_080BF308:
- bl sub_80BF334
- b _080BF330
-_080BF30E:
- bl sub_80BF3A4
- b _080BF330
-_080BF314:
- bl sub_80BF3DC
- b _080BF330
-_080BF31A:
- bl sub_80BF46C
- b _080BF330
-_080BF320:
- bl sub_80BF478
- b _080BF330
-_080BF326:
- bl sub_80BF484
- b _080BF330
-_080BF32C:
- bl sub_80BF4BC
-_080BF330:
- pop {r0}
- bx r0
- thumb_func_end sub_80BF2C4
-
- thumb_func_start sub_80BF334
-sub_80BF334: @ 80BF334
- push {r4,lr}
- movs r0, 0x1
- bl sub_80BF25C
- ldr r0, _080BF38C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF384
- ldr r4, _080BF390
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BF394
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF398
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _080BF39C
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3A0
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF384:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF38C: .4byte gScriptResult
-_080BF390: .4byte gStringVar1
-_080BF394: .4byte gPlayerParty
-_080BF398: .4byte gSpeciesNames
-_080BF39C: .4byte gUnknown_03005D38
-_080BF3A0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF334
-
- thumb_func_start sub_80BF3A4
-sub_80BF3A4: @ 80BF3A4
- push {lr}
- movs r0, 0x2
- bl sub_80BF25C
- ldr r0, _080BF3D0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF3CC
- ldr r0, _080BF3D4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3D8
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF3CC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3D0: .4byte gScriptResult
-_080BF3D4: .4byte gUnknown_03005D38
-_080BF3D8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3A4
-
- thumb_func_start sub_80BF3DC
-sub_80BF3DC: @ 80BF3DC
- push {r4-r6,lr}
- movs r0, 0x3
- bl sub_80BF25C
- ldr r0, _080BF450
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF448
- ldr r6, _080BF454
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BF458
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF45C
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- adds r0, r4
- ldr r4, _080BF460
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- ldr r0, _080BF464
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF468
- adds r0, r1
- adds r0, 0x1C
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF448:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF450: .4byte gScriptResult
-_080BF454: .4byte gStringVar1
-_080BF458: .4byte gPlayerParty
-_080BF45C: .4byte gSpeciesNames
-_080BF460: .4byte gStringVar2
-_080BF464: .4byte gUnknown_03005D38
-_080BF468: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3DC
-
- thumb_func_start sub_80BF46C
-sub_80BF46C: @ 80BF46C
- ldr r1, _080BF474
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BF474: .4byte gScriptResult
- thumb_func_end sub_80BF46C
-
- thumb_func_start sub_80BF478
-sub_80BF478: @ 80BF478
- push {lr}
- movs r0, 0x5
- bl sub_80BF25C
- pop {r0}
- bx r0
- thumb_func_end sub_80BF478
-
- thumb_func_start sub_80BF484
-sub_80BF484: @ 80BF484
- push {lr}
- movs r0, 0x6
- bl sub_80BF25C
- ldr r0, _080BF4B0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4AC
- ldr r0, _080BF4B4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4B8
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF4AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4B0: .4byte gScriptResult
-_080BF4B4: .4byte gUnknown_03005D38
-_080BF4B8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF484
-
- thumb_func_start sub_80BF4BC
-sub_80BF4BC: @ 80BF4BC
- push {lr}
- movs r0, 0x7
- bl sub_80BF25C
- ldr r0, _080BF4E8
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4E4
- ldr r0, _080BF4EC
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4F0
- adds r0, r1
- adds r0, 0x18
- movs r1, 0x1
- bl sub_80EB6FC
-_080BF4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4E8: .4byte gScriptResult
-_080BF4EC: .4byte gUnknown_03005D38
-_080BF4F0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF4BC
-
- thumb_func_start sub_80BF4F4
-sub_80BF4F4: @ 80BF4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080BF530
- adds r4, r0
- ldr r5, _080BF534
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080BF538
- adds r0, r1
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF53C
- movs r0, 0x1
- b _080BF53E
- .align 2, 0
-_080BF530: .4byte gPlayerParty
-_080BF534: .4byte gStringVar1
-_080BF538: .4byte gSpeciesNames
-_080BF53C:
- movs r0, 0
-_080BF53E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF4F4
-
- thumb_func_start sub_80BF544
-sub_80BF544: @ 80BF544
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BF4F4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80BF544
-
- thumb_func_start sub_80BF55C
-sub_80BF55C: @ 80BF55C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- movs r0, 0
- strb r0, [r2]
- strb r0, [r2, 0x1]
- movs r1, 0
- adds r2, 0x2
- movs r3, 0
-_080BF576:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BF576
- pop {r0}
- bx r0
- thumb_func_end sub_80BF55C
-
- thumb_func_start sub_80BF588
-sub_80BF588: @ 80BF588
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
-_080BF58E:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF5D2
- adds r0, r5, 0x1
- b _080BF5CA
-_080BF5A0:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF5C8
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF5D2
-_080BF5C8:
- adds r0, r2, 0x1
-_080BF5CA:
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _080BF5A0
-_080BF5D2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080BF58E
- movs r5, 0x5
-_080BF5DE:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- adds r5, 0x1
- cmp r0, 0
- bne _080BF62A
- lsls r0, r5, 24
- b _080BF624
-_080BF5F2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF620
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, _080BF61C
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF62A
- .align 2, 0
-_080BF61C: .4byte gSaveBlock1 + 0x2738
-_080BF620:
- adds r0, r2, 0x1
- lsls r0, 24
-_080BF624:
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BF5F2
-_080BF62A:
- lsls r0, r5, 24
- lsrs r5, r0, 24
- cmp r5, 0x17
- bls _080BF5DE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF588
-
- thumb_func_start sub_80BF638
-sub_80BF638: @ 80BF638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80BF674
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080BF66C
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- muls r1, r5
- ldr r2, _080BF670
- adds r1, r2
- bl StringCopy
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BF66C: .4byte gUnknown_083D1464
-_080BF670: .4byte gSpeciesNames
- thumb_func_end sub_80BF638
-
- thumb_func_start sub_80BF674
-sub_80BF674: @ 80BF674
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080BF694
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- b _080BF6B2
- .align 2, 0
-_080BF694: .4byte 0x0000019b
-_080BF698:
- cmp r4, 0x1
- bne _080BF6A4
- ldr r4, _080BF6A0
- b _080BF6AA
- .align 2, 0
-_080BF6A0: .4byte 0x0000019b
-_080BF6A4:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080BF6AA:
- cmp r4, r6
- bne _080BF6B2
- adds r4, r5, 0
- b _080BF6CE
-_080BF6B2:
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _080BF698
- cmp r4, r5
- beq _080BF698
-_080BF6CE:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF674
-
- thumb_func_start sub_80BF6D8
-sub_80BF6D8: @ 80BF6D8
- push {lr}
- ldr r0, _080BF700
- bl sub_80BF720
- ldr r1, _080BF704
- strb r0, [r1]
- ldr r2, _080BF708
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- strh r1, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080BF710
- ldr r1, _080BF70C
- movs r0, 0x1
- b _080BF714
- .align 2, 0
-_080BF700: .4byte gSaveBlock1 + 0x2738
-_080BF704: .4byte gUnknown_03005D38
-_080BF708: .4byte gUnknown_0202E8D0
-_080BF70C: .4byte gScriptResult
-_080BF710:
- ldr r1, _080BF71C
- movs r0, 0
-_080BF714:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BF71C: .4byte gScriptResult
- thumb_func_end sub_80BF6D8
-
- thumb_func_start sub_80BF720
-sub_80BF720: @ 80BF720
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BF726:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF73A
- lsls r0, r1, 24
- asrs r0, 24
- b _080BF748
-_080BF73A:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF726
- movs r0, 0x1
- negs r0, r0
-_080BF748:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF720
-
- thumb_func_start sub_80BF74C
-sub_80BF74C: @ 80BF74C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x5
-_080BF752:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF768
- adds r0, r1, 0
- b _080BF778
-_080BF768:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080BF752
- movs r0, 0x1
- negs r0, r0
-_080BF778:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF74C
-
- thumb_func_start sub_80BF77C
-sub_80BF77C: @ 80BF77C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bls _080BF794
- movs r0, 0x1
- b _080BF796
-_080BF794:
- movs r0, 0
-_080BF796:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF77C
-
- thumb_func_start sub_80BF79C
-sub_80BF79C: @ 80BF79C
- push {r4-r6,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r4, 0x4
- ldr r6, _080BF7B8
- b _080BF7C2
- .align 2, 0
-_080BF7B8: .4byte 0x0000ffff
-_080BF7BC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080BF7C2:
- cmp r2, 0x6
- bne _080BF7C8
- movs r2, 0
-_080BF7C8:
- lsls r1, r2, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- adds r3, r4, 0x4
- cmp r0, r6
- beq _080BF7BC
- ldr r0, _080BF7E4
- adds r1, r3, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF7E4: .4byte gStringVar3
- thumb_func_end sub_80BF79C
-
- thumb_func_start sub_80BF7E8
-sub_80BF7E8: @ 80BF7E8
- push {lr}
- adds r2, r0, 0
- movs r3, 0
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0xFF
- beq _080BF814
- adds r2, 0x4
-_080BF7F8:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BF814
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BF7F8
-_080BF814:
- movs r0, 0x7
- ands r3, r0
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BF7E8
-
- thumb_func_start sub_80BF820
-sub_80BF820: @ 80BF820
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0
- movs r7, 0xFF
-_080BF844:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080BF844
- cmp r3, 0
- bne _080BF8A6
- ldr r4, [sp, 0x20]
- adds r4, 0xF
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF874
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF874:
- cmp r6, 0x1
- bne _080BF880
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF880:
- cmp r6, 0x2
- bne _080BF892
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF892:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8A6:
- cmp r3, 0x1
- bne _080BF8F4
- ldr r4, [sp, 0x20]
- adds r4, 0x4
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF8C2
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF8C2:
- cmp r6, 0x1
- bne _080BF8CE
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF8CE:
- cmp r6, 0x2
- bne _080BF8E0
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF8E0:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8F4:
- movs r0, 0xB
- muls r4, r0
- ldr r7, _080BF910
- adds r0, r4, r7
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF914
- mov r0, sp
- adds r1, r5, r4
- b _080BF91E
- .align 2, 0
-_080BF910: .4byte gSpeciesNames
-_080BF914:
- cmp r6, 0x1
- bne _080BF926
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4
-_080BF91E:
- adds r1, r7
-_080BF920:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080BF954
-_080BF926:
- cmp r6, 0x2
- bne _080BF93A
- mov r1, sp
- adds r0, r5, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- adds r0, r5, r0
- b _080BF94E
-_080BF93A:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4
-_080BF94E:
- adds r0, r7
-_080BF950:
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
-_080BF954:
- ldr r0, _080BF970
- mov r2, r8
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- mov r1, sp
- bl StringCopy
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF970: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF820
-
- thumb_func_start sub_80BF974
-sub_80BF974: @ 80BF974
- push {r4,lr}
- movs r1, 0
- ldr r4, _080BF994
- ldr r0, _080BF998
- ldrh r2, [r0]
- ldr r3, _080BF99C
-_080BF980:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BF9A0
- movs r0, 0x1
- b _080BF9AC
- .align 2, 0
-_080BF994: .4byte gSaveBlock1
-_080BF998: .4byte gUnknown_0202E8CC
-_080BF99C: .4byte 0x00002738
-_080BF9A0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF980
- movs r0, 0
-_080BF9AC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF974
-
- thumb_func_start sub_80BF9B4
-sub_80BF9B4: @ 80BF9B4
- push {r4,lr}
- ldr r0, _080BF9E0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BF9E4
- adds r0, r1
- ldr r4, _080BF9E8
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080BF9EC
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF9F0
- bl sub_80BE478
- movs r0, 0x1
- b _080BF9F2
- .align 2, 0
-_080BF9E0: .4byte gUnknown_0202E8CC
-_080BF9E4: .4byte gPlayerParty
-_080BF9E8: .4byte gStringVar1
-_080BF9EC: .4byte gStringVar3
-_080BF9F0:
- movs r0, 0
-_080BF9F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF9B4
-
- thumb_func_start sub_80BF9F8
-sub_80BF9F8: @ 80BF9F8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _080BFAA0
- mov r9, r0
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BFAA4
- adds r0, r6
- ldr r2, _080BFAA8
- movs r1, 0x2
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- ldr r1, _080BFAAC
- mov r10, r1
- movs r1, 0x2
- mov r2, r10
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _080BFAB0
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- 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
-_080BFAA0: .4byte gUnknown_0202E8CC
-_080BFAA4: .4byte gPlayerParty
-_080BFAA8: .4byte gStringVar3
-_080BFAAC: .4byte gStringVar2
-_080BFAB0: .4byte c2_080CC144
- thumb_func_end sub_80BF9F8
-
- thumb_func_start c2_080CC144
-c2_080CC144: @ 80BFAB4
- push {lr}
- ldr r0, _080BFAD4
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFAD8
- adds r0, r1
- ldr r2, _080BFADC
- movs r1, 0x2
- bl SetMonData
- bl c2_exit_to_overworld_1_continue_scripts_restart_music
- pop {r0}
- bx r0
- .align 2, 0
-_080BFAD4: .4byte gUnknown_0202E8CC
-_080BFAD8: .4byte gPlayerParty
-_080BFADC: .4byte gStringVar2
- thumb_func_end c2_080CC144
-
- thumb_func_start sub_80BFAE0
-sub_80BFAE0: @ 80BFAE0
- push {r4,lr}
- ldr r0, _080BFB04
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB08
- adds r0, r1
- ldr r4, _080BFB0C
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB04: .4byte gUnknown_0202E8CC
-_080BFB08: .4byte gPlayerParty
-_080BFB0C: .4byte gStringVar1
- thumb_func_end sub_80BFAE0
-
- thumb_func_start sub_80BFB10
-sub_80BFB10: @ 80BFB10
- push {r4,lr}
- bl sub_80BFB94
- adds r4, r0, 0
- ldr r0, _080BFB38
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB3C
- adds r0, r1
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _080BFB44
- ldr r1, _080BFB40
- movs r0, 0
- b _080BFB48
- .align 2, 0
-_080BFB38: .4byte gUnknown_0202E8CC
-_080BFB3C: .4byte gPlayerParty
-_080BFB40: .4byte gScriptResult
-_080BFB44:
- ldr r1, _080BFB50
- movs r0, 0x1
-_080BFB48:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB50: .4byte gScriptResult
- thumb_func_end sub_80BFB10
-
- thumb_func_start sub_80BFB54
-sub_80BFB54: @ 80BFB54
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r1, 0
- beq _080BFB8A
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB6E
- movs r0, 0x2
- b _080BFB90
-_080BFB6E:
- adds r0, r1, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB7E
- movs r0, 0x3
- b _080BFB90
-_080BFB7E:
- adds r0, r2, 0
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080BFB8E
-_080BFB8A:
- movs r0, 0
- b _080BFB90
-_080BFB8E:
- movs r0, 0x4
-_080BFB90:
- pop {r1}
- bx r1
- thumb_func_end sub_80BFB54
-
- thumb_func_start sub_80BFB94
-sub_80BFB94: @ 80BFB94
- ldr r2, _080BFBAC
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- ldrb r1, [r2, 0xC]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0xB]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0xA]
- orrs r0, r1
- bx lr
- .align 2, 0
-_080BFBAC: .4byte gSaveBlock2
- thumb_func_end sub_80BFB94
-
- thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
-CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
- push {lr}
- ldr r1, _080BFBD0
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFBCC
- ldr r0, _080BFBD4
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFBD8
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- beq _080BFBE0
-_080BFBCC:
- movs r0, 0
- b _080BFC0A
- .align 2, 0
-_080BFBD0: .4byte gSaveBlock1
-_080BFBD4: .4byte gSaveBlock2
-_080BFBD8:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFBCC
-_080BFBE0:
- ldr r0, _080BFC04
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFBFE
- movs r0, 0x83
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFC08
-_080BFBFE:
- movs r0, 0x1
- b _080BFC0A
- .align 2, 0
-_080BFC04: .4byte 0x0000085d
-_080BFC08:
- movs r0, 0x2
-_080BFC0A:
- pop {r1}
- bx r1
- thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
-
- thumb_func_start GetMomOrDadStringForTVMessage
-GetMomOrDadStringForTVMessage: @ 80BFC10
- push {r4,lr}
- ldr r1, _080BFC40
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFC6C
- ldr r0, _080BFC44
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFC54
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080BFC6C
- ldr r0, _080BFC48
- ldr r1, _080BFC4C
- bl StringCopy
- ldr r0, _080BFC50
- movs r1, 0x1
- bl VarSet
- b _080BFC6C
- .align 2, 0
-_080BFC40: .4byte gSaveBlock1
-_080BFC44: .4byte gSaveBlock2
-_080BFC48: .4byte gStringVar1
-_080BFC4C: .4byte gOtherText_Mom
-_080BFC50: .4byte 0x00004003
-_080BFC54:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFC6C
- ldr r0, _080BFCB4
- ldr r1, _080BFCB8
- bl StringCopy
- ldr r0, _080BFCBC
- movs r1, 0x1
- bl VarSet
-_080BFC6C:
- ldr r4, _080BFCBC
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080BFCAA
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _080BFCC0
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _080BFCD4
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BFCC0
-_080BFCAA:
- ldr r0, _080BFCB4
- ldr r1, _080BFCB8
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCB4: .4byte gStringVar1
-_080BFCB8: .4byte gOtherText_Mom
-_080BFCBC: .4byte 0x00004003
-_080BFCC0:
- ldr r0, _080BFCCC
- ldr r1, _080BFCD0
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCCC: .4byte gStringVar1
-_080BFCD0: .4byte gOtherText_Dad
-_080BFCD4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BFD00
- ldr r0, _080BFCF8
- ldr r1, _080BFCFC
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x1
- bl VarSet
- b _080BFD10
- .align 2, 0
-_080BFCF8: .4byte gStringVar1
-_080BFCFC: .4byte gOtherText_Mom
-_080BFD00:
- ldr r0, _080BFD18
- ldr r1, _080BFD1C
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- bl VarSet
-_080BFD10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD18: .4byte gStringVar1
-_080BFD1C: .4byte gOtherText_Dad
- thumb_func_end GetMomOrDadStringForTVMessage
-
- thumb_func_start sub_80BFD20
-sub_80BFD20: @ 80BFD20
- push {lr}
- ldr r0, _080BFD3C
- movs r1, 0
- bl VarSet
- ldr r0, _080BFD40
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x5
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD3C: .4byte 0x000040bc
-_080BFD40: .4byte gSaveBlock1
- thumb_func_end sub_80BFD20
-
- thumb_func_start sub_80BFD44
-sub_80BFD44: @ 80BFD44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r4, 0
-_080BFD54:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 5
- adds r0, r4
- lsls r0, 2
- ldr r5, _080BFD8C
- adds r0, r5
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080BFD54
- adds r4, r5, 0
- cmp r6, 0x1
- beq _080BFDBC
- cmp r6, 0x1
- bgt _080BFD90
- cmp r6, 0
- beq _080BFD9A
- b _080BFDFC
- .align 2, 0
-_080BFD8C: .4byte 0x02007000
-_080BFD90:
- cmp r6, 0x2
- beq _080BFDCC
- cmp r6, 0x3
- beq _080BFDE8
- b _080BFDFC
-_080BFD9A:
- ldr r0, _080BFDB4
- movs r2, 0xE1
- lsls r2, 2
- adds r1, r4, r2
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r4, r3
- ldr r5, _080BFDB8
- adds r3, r4, r5
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDB4: .4byte gSaveBlock1 + 0x2738
-_080BFDB8: .4byte 0x00000a8c
-_080BFDBC:
- ldr r1, _080BFDC8
- movs r0, 0xE1
- lsls r0, 3
- adds r2, r4, r0
- b _080BFDD4
- .align 2, 0
-_080BFDC8: .4byte gSaveBlock1 + 0x2738
-_080BFDCC:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r4, r0
- ldr r2, _080BFDE0
-_080BFDD4:
- ldr r5, _080BFDE4
- adds r3, r4, r5
- adds r0, r4, 0
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDE0: .4byte gSaveBlock1 + 0x2738
-_080BFDE4: .4byte 0x00000a8c
-_080BFDE8:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r5, r0
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r5, r3
- ldr r3, _080BFE20
- adds r0, r5, 0
- bl sub_80BFE24
-_080BFDFC:
- ldr r4, _080BFE20
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C04A0
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C01D4
- bl sub_80C0408
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFE20: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BFD44
-
- thumb_func_start sub_80BFE24
-sub_80BFE24: @ 80BFE24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080BFEA0
- strb r0, [r1]
-_080BFE50:
- movs r6, 0
- ldr r0, _080BFEA0
- ldrb r1, [r0]
- cmp r6, r1
- bcs _080BFE50
- mov r10, r0
-_080BFE5C:
- cmp r6, 0
- bne _080BFE64
- ldr r2, _080BFEA4
- strb r6, [r2]
-_080BFE64:
- lsls r4, r6, 2
- mov r3, sp
- adds r0, r3, r4
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80C019C
- ldr r1, _080BFEA8
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r7, r4, 0
- cmp r0, r1
- bne _080BFEAC
- ldr r1, _080BFEA4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r0, r2
- beq _080BFF58
- adds r6, 0x1
- mov r9, r6
- b _080BFF3C
- .align 2, 0
-_080BFEA0: .4byte gUnknown_03000720
-_080BFEA4: .4byte gUnknown_020387E4
-_080BFEA8: .4byte gUnknown_03000722
-_080BFEAC:
- movs r5, 0
- mov r3, r10
- ldrb r0, [r3]
- subs r0, 0x1
- adds r2, r6, 0x1
- mov r9, r2
- cmp r5, r0
- bge _080BFF22
- ldr r3, _080BFF4C
- mov r8, r3
-_080BFEC0:
- adds r0, r6, r5
- adds r4, r0, 0x1
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BF74C
- ldr r1, _080BFF50
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BFF12
- mov r2, r8
- ldrb r1, [r2]
- adds r0, r4, 0
- bl __modsi3
- adds r2, r0, 0
- lsls r0, r2, 2
- add r0, sp
- ldr r0, [r0]
- mov r3, sp
- adds r1, r3, r7
- ldr r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- bl sub_80BFF68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFF22
-_080BFF12:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080BFEC0
-_080BFF22:
- mov r2, r10
- ldrb r0, [r2]
- subs r0, 0x1
- cmp r5, r0
- bne _080BFF3C
- mov r3, sp
- adds r0, r3, r7
- ldr r0, [r0]
- ldr r0, [r0]
- ldr r1, _080BFF54
- ldrb r1, [r1]
- bl sub_80BF55C
-_080BFF3C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r6, r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r6, r2
- bcc _080BFE5C
- b _080BFE50
- .align 2, 0
-_080BFF4C: .4byte gUnknown_03000720
-_080BFF50: .4byte gUnknown_03005D38
-_080BFF54: .4byte gUnknown_03000722
-_080BFF58:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BFE24
-
- thumb_func_start sub_80BFF68
-sub_80BFF68: @ 80BFF68
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r4, [r0]
- ldr r6, [r1]
- movs r5, 0
- ldr r2, _080BFFA4
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0]
- str r2, [sp]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- ldr r2, [sp]
- cmp r0, 0x3
- beq _080BFFD8
- cmp r0, 0x3
- bgt _080BFFA8
- cmp r0, 0x2
- beq _080BFFAE
- b _080C0026
- .align 2, 0
-_080BFFA4: .4byte gUnknown_03000722
-_080BFFA8:
- cmp r1, 0x4
- beq _080C0000
- b _080C0026
-_080BFFAE:
- ldr r0, _080BFFD4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C004C
- b _080C0022
- .align 2, 0
-_080BFFD4: .4byte gUnknown_03005D38
-_080BFFD8:
- ldr r0, _080BFFFC
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C00B4
- b _080C0022
- .align 2, 0
-_080BFFFC: .4byte gUnknown_03005D38
-_080C0000:
- ldr r0, _080C0030
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C0134
-_080C0022:
- lsls r0, 24
- lsrs r5, r0, 24
-_080C0026:
- cmp r5, 0x1
- beq _080C0034
- movs r0, 0
- b _080C0040
- .align 2, 0
-_080C0030: .4byte gUnknown_03005D38
-_080C0034:
- ldr r0, _080C0048
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80BF55C
- movs r0, 0x1
-_080C0040:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C0048: .4byte gUnknown_03000722
- thumb_func_end sub_80BFF68
-
- thumb_func_start sub_80C004C
-sub_80C004C: @ 80C004C
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- movs r0, 0
- b _080C00AC
-_080C007C:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C00AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C004C
-
- thumb_func_start sub_80C00B4
-sub_80C00B4: @ 80C00B4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r2, r0, 0
- movs r3, 0xFF
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C00E0
- lsrs r0, r2, 8
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C0100
-_080C00E0:
- movs r3, 0xFF
- adds r0, r2, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x22
- lsrs r5, r2, 8
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
- adds r0, r5, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
-_080C0100:
- movs r0, 0
- b _080C012C
-_080C0104:
- ldrb r1, [r4, 0x1E]
- adds r0, r4, 0
- adds r0, 0x20
- strb r1, [r0]
- ldrb r0, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x21
- strb r0, [r1]
- strb r2, [r4, 0x1E]
- strb r5, [r4, 0x1F]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C012C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C00B4
-
- thumb_func_start sub_80C0134
-sub_80C0134: @ 80C0134
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- movs r0, 0
- b _080C0196
-_080C0164:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x16]
-_080C0196:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C0134
-
- thumb_func_start sub_80C019C
-sub_80C019C: @ 80C019C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
-_080C01A2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080C01C2
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _080C01C2
- lsls r0, r2, 24
- asrs r0, 24
- b _080C01D0
-_080C01C2:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080C01A2
- movs r0, 0x1
- negs r0, r0
-_080C01D0:
- pop {r1}
- bx r1
- thumb_func_end sub_80C019C
-
- thumb_func_start sub_80C01D4
-sub_80C01D4: @ 80C01D4
- push {r4-r6,lr}
- movs r6, 0
-_080C01D8:
- ldr r0, _080C01F8
- lsls r2, r6, 3
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldr r0, _080C01FC
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x29
- bls _080C01EE
- b _080C038C
-_080C01EE:
- lsls r0, 2
- ldr r1, _080C0200
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C01F8: .4byte gSaveBlock1
-_080C01FC: .4byte 0x00002738
-_080C0200: .4byte _080C0204
- .align 2, 0
-_080C0204:
- .4byte _080C0394
- .4byte _080C02AC
- .4byte _080C0394
- .4byte _080C02BC
- .4byte _080C02CC
- .4byte _080C02DC
- .4byte _080C02F8
- .4byte _080C0308
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0324
- .4byte _080C0394
- .4byte _080C0334
- .4byte _080C0350
- .4byte _080C0368
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0394
-_080C02AC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02B8
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02B8: .4byte gSaveBlock1 + 0x2738
-_080C02BC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02C8
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02C8: .4byte gSaveBlock1 + 0x2738
-_080C02CC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02D8
- adds r0, r1
- ldrh r0, [r0, 0x6]
- b _080C035A
- .align 2, 0
-_080C02D8: .4byte gSaveBlock1 + 0x2738
-_080C02DC:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C02F4
- adds r4, r0
- ldrh r0, [r4, 0x2]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x1C]
- b _080C037E
- .align 2, 0
-_080C02F4: .4byte gSaveBlock1 + 0x2738
-_080C02F8:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0304
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C0304: .4byte gSaveBlock1 + 0x2738
-_080C0308:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0320
- adds r4, r0
- ldrh r0, [r4, 0xA]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x14]
- b _080C037E
- .align 2, 0
-_080C0320: .4byte gSaveBlock1 + 0x2738
-_080C0324:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0330
- adds r0, r1
- ldrh r0, [r0, 0x10]
- b _080C035A
- .align 2, 0
-_080C0330: .4byte gSaveBlock1 + 0x2738
-_080C0334:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C034C
- adds r4, r0
- ldrh r0, [r4, 0xC]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0xE]
- b _080C037E
- .align 2, 0
-_080C034C: .4byte gSaveBlock1 + 0x2738
-_080C0350:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0364
- adds r0, r1
- ldrh r0, [r0, 0x4]
-_080C035A:
- lsls r1, r6, 24
- lsrs r1, 24
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0364: .4byte gSaveBlock1 + 0x2738
-_080C0368:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0388
- adds r4, r0
- ldrh r0, [r4, 0x8]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x4]
-_080C037E:
- adds r1, r5, 0
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0388: .4byte gSaveBlock1 + 0x2738
-_080C038C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80C03A8
-_080C0394:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x17
- bhi _080C03A0
- b _080C01D8
-_080C03A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80C01D4
-
- thumb_func_start sub_80C03A8
-sub_80C03A8: @ 80C03A8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C03C0
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080C03C4
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C03C0: .4byte gSaveBlock1
-_080C03C4: .4byte 0x00002739
- thumb_func_end sub_80C03A8
-
- thumb_func_start sub_80C03C8
-sub_80C03C8: @ 80C03C8
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r2, r0, 24
- cmp r2, 0
- bne _080C03F8
- ldr r1, _080C0400
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _080C0404
- adds r0, r1
- strb r2, [r0]
-_080C03F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0400: .4byte gSaveBlock1
-_080C0404: .4byte 0x00002739
- thumb_func_end sub_80C03C8
-
- thumb_func_start sub_80C0408
-sub_80C0408: @ 80C0408
- push {r4-r6,lr}
- ldr r0, _080C044C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0444
- movs r2, 0
- ldr r6, _080C0450
- ldr r4, _080C0454
- movs r3, 0
- ldr r5, _080C0458
-_080C0422:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080C0436
- cmp r0, 0x29
- bne _080C043A
-_080C0436:
- adds r0, r1, r4
- strb r3, [r0]
-_080C043A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x17
- bls _080C0422
-_080C0444:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C044C: .4byte 0x00000804
-_080C0450: .4byte gSaveBlock1
-_080C0454: .4byte 0x00002739
-_080C0458: .4byte 0x00002738
- thumb_func_end sub_80C0408
-
- thumb_func_start sub_80C045C
-sub_80C045C: @ 80C045C
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _080C0494
-_080C0462:
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r6
- ldr r1, _080C0498
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C0484
- ldr r0, _080C049C
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
-_080C0484:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080C0462
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0494: .4byte gSaveBlock1
-_080C0498: .4byte 0x00002738
-_080C049C: .4byte 0x00002739
- thumb_func_end sub_80C045C
-
- thumb_func_start sub_80C04A0
-sub_80C04A0: @ 80C04A0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0x5
- ldr r5, _080C0508
- ldr r4, _080C050C
-_080C04AA:
- lsls r0, r2, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C04C8
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
-_080C04C8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080C04AA
- movs r2, 0
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0x5
- subs r0, r1, r0
- cmp r2, r0
- bge _080C0502
- adds r5, r0, 0
-_080C04E4:
- lsls r1, r2, 24
- asrs r4, r1, 24
- movs r0, 0xA0
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- ldr r0, _080C0510
- bl sub_80BF55C
- adds r4, 0x1
- lsls r4, 24
- lsrs r2, r4, 24
- asrs r4, 24
- cmp r4, r5
- blt _080C04E4
-_080C0502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0508: .4byte gSaveBlock1
-_080C050C: .4byte 0x00002738
-_080C0510: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80C04A0
-
- thumb_func_start sub_80C0514
-sub_80C0514: @ 80C0514
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
-_080C0524:
- lsls r0, r4, 6
- ldr r6, _080C0550
- adds r0, r6
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0x40
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080C0524
- adds r4, r6, 0
- cmp r5, 0x1
- beq _080C0578
- cmp r5, 0x1
- bgt _080C0554
- cmp r5, 0
- beq _080C055E
- b _080C05AC
- .align 2, 0
-_080C0550: .4byte 0x02007000
-_080C0554:
- cmp r5, 0x2
- beq _080C0584
- cmp r5, 0x3
- beq _080C059C
- b _080C05AC
-_080C055E:
- ldr r0, _080C0574
- adds r1, r4, 0
- adds r1, 0x40
- adds r2, r4, 0
- adds r2, 0x80
- adds r3, r4, 0
- adds r3, 0xC0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0574: .4byte gSaveBlock1 + 0x2ABC
-_080C0578:
- ldr r1, _080C0580
- adds r2, r4, 0
- adds r2, 0x80
- b _080C058A
- .align 2, 0
-_080C0580: .4byte gSaveBlock1 + 0x2ABC
-_080C0584:
- adds r1, r4, 0
- adds r1, 0x40
- ldr r2, _080C0598
-_080C058A:
- adds r3, r4, 0
- adds r3, 0xC0
- adds r0, r4, 0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0598: .4byte gSaveBlock1 + 0x2ABC
-_080C059C:
- adds r1, r6, 0
- adds r1, 0x40
- adds r2, r6, 0
- adds r2, 0x80
- ldr r3, _080C05C0
- adds r0, r6, 0
- bl sub_80C05C4
-_080C05AC:
- bl sub_80C0750
- bl sub_80C0788
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C05C0: .4byte gSaveBlock1 + 0x2ABC
- thumb_func_end sub_80C0514
-
- thumb_func_start sub_80C05C4
-sub_80C05C4: @ 80C05C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080C0600
- strb r0, [r1]
- movs r0, 0
- mov r10, r0
-_080C05F4:
- movs r7, 0
- mov r1, r10
- adds r1, 0x1
- str r1, [sp, 0x20]
- b _080C068C
- .align 2, 0
-_080C0600: .4byte gUnknown_03000721
-_080C0604:
- lsls r4, r7, 2
- mov r1, sp
- adds r0, r1, r4
- ldr r0, [r0]
- ldr r0, [r0]
- mov r1, r10
- bl sub_80C0730
- ldr r1, _080C06B0
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- mov r8, r4
- adds r1, r7, 0x1
- mov r9, r1
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0686
- movs r5, 0
- ldr r1, _080C06B4
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- bge _080C0686
- adds r6, r1, 0
-_080C0638:
- adds r0, r7, r5
- adds r4, r0, 0x1
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BEBC8
- ldr r1, _080C06B8
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0678
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- mov r1, sp
- add r1, r8
- ldr r1, [r1]
- bl sub_80C06BC
-_080C0678:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6]
- subs r0, 0x1
- cmp r5, r0
- blt _080C0638
-_080C0686:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r7, r0, 24
-_080C068C:
- ldr r0, _080C06B4
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080C0604
- ldr r1, [sp, 0x20]
- lsls r0, r1, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0xF
- bls _080C05F4
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C06B0: .4byte gUnknown_03000722
-_080C06B4: .4byte gUnknown_03000721
-_080C06B8: .4byte gUnknown_03005D38
- thumb_func_end sub_80C05C4
-
- thumb_func_start sub_80C06BC
-sub_80C06BC: @ 80C06BC
- push {lr}
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _080C06E0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r2, 2
- adds r1, r2
- ldr r2, _080C06E4
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- bl sub_80C06E8
- pop {r0}
- bx r0
- .align 2, 0
-_080C06E0: .4byte gUnknown_03000722
-_080C06E4: .4byte gUnknown_03005D38
- thumb_func_end sub_80C06BC
-
- thumb_func_start sub_80C06E8
-sub_80C06E8: @ 80C06E8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r3, [r5]
- adds r0, r3, 0
- cmp r0, 0
- bne _080C06FE
-_080C06FA:
- movs r0, 0
- b _080C072A
-_080C06FE:
- movs r1, 0
- adds r2, r3, 0
- adds r3, r0, 0
-_080C0704:
- lsls r0, r1, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _080C06FA
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C0704
- lsls r0, r6, 24
- asrs r0, 22
- adds r0, r4
- strb r2, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- ldrh r1, [r5, 0x2]
- strh r1, [r0, 0x2]
- movs r0, 0x1
-_080C072A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C06E8
-
- thumb_func_start sub_80C0730
-sub_80C0730: @ 80C0730
- push {lr}
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C0746
- lsls r0, r2, 24
- asrs r0, 24
- b _080C074A
-_080C0746:
- movs r0, 0x1
- negs r0, r0
-_080C074A:
- pop {r1}
- bx r1
- thumb_func_end sub_80C0730
-
- thumb_func_start sub_80C0750
-sub_80C0750: @ 80C0750
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C0780
-_080C0756:
- lsls r0, r4, 2
- adds r0, r5
- ldr r1, _080C0784
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _080C076A
- adds r0, r4, 0
- bl sub_80BEC10
-_080C076A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080C0756
- bl sub_80BEC40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0780: .4byte gSaveBlock1
-_080C0784: .4byte 0x00002abc
- thumb_func_end sub_80C0750
-
- thumb_func_start sub_80C0788
-sub_80C0788: @ 80C0788
- push {r4,lr}
- ldr r0, _080C07B8
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C07B2
- movs r1, 0
- ldr r4, _080C07BC
- ldr r3, _080C07C0
- movs r2, 0
-_080C07A0:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C07A0
-_080C07B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C07B8: .4byte 0x00000804
-_080C07BC: .4byte gSaveBlock1
-_080C07C0: .4byte 0x00002abd
- thumb_func_end sub_80C0788
-
- thumb_func_start sub_80C07C4
-sub_80C07C4: @ 80C07C4
- push {lr}
- ldr r2, _080C07F8
- ldr r0, _080C07FC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldr r2, _080C0800
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C07E0
- b _080C08F8
-_080C07E0:
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x28
- bls _080C07EE
- b _080C08F8
-_080C07EE:
- lsls r0, 2
- ldr r1, _080C0804
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C07F8: .4byte gSaveBlock1
-_080C07FC: .4byte gUnknown_0202E8CC
-_080C0800: .4byte 0x00002739
-_080C0804: .4byte _080C0808
- .align 2, 0
-_080C0808:
- .4byte _080C08AC
- .4byte _080C08B2
- .4byte _080C08B8
- .4byte _080C08BE
- .4byte _080C08E2
- .4byte _080C08CA
- .4byte _080C08D0
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08D6
- .4byte _080C08DC
- .4byte _080C08E8
- .4byte _080C08EE
- .4byte _080C08F4
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08C4
-_080C08AC:
- bl DoTVShowPokemonFanClubLetter
- b _080C08F8
-_080C08B2:
- bl DoTVShowRecentHappenings
- b _080C08F8
-_080C08B8:
- bl DoTVShowPokemonFanClubOpinions
- b _080C08F8
-_080C08BE:
- bl nullsub_22
- b _080C08F8
-_080C08C4:
- bl DoTVShowPokemonNewsMassOutbreak
- b _080C08F8
-_080C08CA:
- bl DoTVShowBravoTrainerPokemonProfile
- b _080C08F8
-_080C08D0:
- bl sub_80C0B9C
- b _080C08F8
-_080C08D6:
- bl DoTVShowPokemonTodaySuccessfulCapture
- b _080C08F8
-_080C08DC:
- bl DoTVShowTodaysSmartShopper
- b _080C08F8
-_080C08E2:
- bl DoTVShowTheNameRaterShow
- b _080C08F8
-_080C08E8:
- bl DoTVShowPokemonTodayFailedCapture
- b _080C08F8
-_080C08EE:
- bl DoTVShowPokemonAngler
- b _080C08F8
-_080C08F4:
- bl DoTVShowTheWorldOfMasters
-_080C08F8:
- pop {r0}
- bx r0
- thumb_func_end sub_80C07C4
-
- thumb_func_start sub_80C08FC
-sub_80C08FC: @ 80C08FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 24
- lsrs r4, 24
- bl StringCopy
- cmp r4, 0x1
- bhi _080C0914
- adds r0, r5, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C0914:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C08FC
-
- thumb_func_start DoTVShowBravoTrainerPokemonProfile
-DoTVShowBravoTrainerPokemonProfile: @ 80C091C
- push {r4,r5,lr}
- ldr r0, _080C0948
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C094C
- adds r4, r0, r1
- ldr r1, _080C0950
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0954
- ldrb r5, [r0]
- cmp r5, 0x8
- bls _080C093C
- b _080C0B7A
-_080C093C:
- lsls r0, r5, 2
- ldr r1, _080C0958
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0948: .4byte gUnknown_0202E8CC
-_080C094C: .4byte gSaveBlock1 + 0x2738
-_080C0950: .4byte gScriptResult
-_080C0954: .4byte gUnknown_020387E8
-_080C0958: .4byte _080C095C
- .align 2, 0
-_080C095C:
- .4byte _080C0980
- .4byte _080C09D8
- .4byte _080C0A10
- .4byte _080C0A40
- .4byte _080C0A74
- .4byte _080C0AA8
- .4byte _080C0AEC
- .4byte _080C0B34
- .4byte _080C0B64
-_080C0980:
- ldr r0, _080C09C0
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldrb r1, [r4, 0x13]
- lsls r1, 27
- lsrs r1, 30
- movs r0, 0x2
- bl sub_80BEF10
- ldrh r1, [r4, 0x2]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080C09C4
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080C09CC
- ldr r1, _080C09C8
- movs r0, 0x8
- b _080C0B78
- .align 2, 0
-_080C09C0: .4byte gStringVar1
-_080C09C4: .4byte gSpeciesNames
-_080C09C8: .4byte gUnknown_020387E8
-_080C09CC:
- ldr r1, _080C09D4
- movs r0, 0x1
- b _080C0B78
- .align 2, 0
-_080C09D4: .4byte gUnknown_020387E8
-_080C09D8:
- ldr r0, _080C0A04
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0A08
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0A0C
- adds r1, r4, 0
- adds r1, 0x8
- ldrb r2, [r4, 0x1F]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x2
- bl CopyContestCategoryToStringVar
- b _080C0B74
- .align 2, 0
-_080C0A04: .4byte gStringVar1
-_080C0A08: .4byte gSpeciesNames
-_080C0A0C: .4byte gStringVar2
-_080C0A10:
- ldr r0, _080C0A2C
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _080C0A34
- ldr r1, _080C0A30
- movs r0, 0x3
- b _080C0B78
- .align 2, 0
-_080C0A2C: .4byte gStringVar1
-_080C0A30: .4byte gUnknown_020387E8
-_080C0A34:
- ldr r1, _080C0A3C
- movs r0, 0x4
- b _080C0B78
- .align 2, 0
-_080C0A3C: .4byte gUnknown_020387E8
-_080C0A40:
- ldr r0, _080C0A68
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0A6C
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0A70
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A68: .4byte gStringVar1
-_080C0A6C: .4byte gStringVar2
-_080C0A70: .4byte gUnknown_020387E8
-_080C0A74:
- ldr r0, _080C0A9C
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0AA0
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0AA4
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A9C: .4byte gStringVar1
-_080C0AA0: .4byte gStringVar2
-_080C0AA4: .4byte gUnknown_020387E8
-_080C0AA8:
- ldr r0, _080C0AD4
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldr r0, _080C0AD8
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldrh r0, [r4, 0x14]
- cmp r0, 0
- beq _080C0AE0
- ldr r1, _080C0ADC
- movs r0, 0x6
- b _080C0B78
- .align 2, 0
-_080C0AD4: .4byte gStringVar1
-_080C0AD8: .4byte gStringVar3
-_080C0ADC: .4byte gUnknown_020387E8
-_080C0AE0:
- ldr r1, _080C0AE8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0AE8: .4byte gUnknown_020387E8
-_080C0AEC:
- ldr r0, _080C0B1C
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B20
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B24
- ldrh r2, [r4, 0x14]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C0B28
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B2C
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldr r1, _080C0B30
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0B1C: .4byte gStringVar1
-_080C0B20: .4byte gSpeciesNames
-_080C0B24: .4byte gStringVar2
-_080C0B28: .4byte gMoveNames
-_080C0B2C: .4byte gStringVar3
-_080C0B30: .4byte gUnknown_020387E8
-_080C0B34:
- ldr r0, _080C0B58
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0B5C
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B60
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- b _080C0B7A
- .align 2, 0
-_080C0B58: .4byte gStringVar1
-_080C0B5C: .4byte gStringVar2
-_080C0B60: .4byte gSpeciesNames
-_080C0B64:
- ldr r0, _080C0B8C
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B90
- adds r1, r2
- bl StringCopy
-_080C0B74:
- ldr r1, _080C0B94
- movs r0, 0x2
-_080C0B78:
- strb r0, [r1]
-_080C0B7A:
- ldr r0, _080C0B98
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B8C: .4byte gStringVar1
-_080C0B90: .4byte gSpeciesNames
-_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gUnknown_083D1524
- thumb_func_end DoTVShowBravoTrainerPokemonProfile
-
- thumb_func_start sub_80C0B9C
-sub_80C0B9C: @ 80C0B9C
- push {r4,r5,lr}
- ldr r0, _080C0BC8
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0BCC
- adds r4, r0, r1
- ldr r1, _080C0BD0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0BD4
- ldrb r5, [r0]
- adds r2, r0, 0
- cmp r5, 0xE
- bls _080C0BBE
- b _080C0DDE
-_080C0BBE:
- lsls r0, r5, 2
- ldr r1, _080C0BD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0BC8: .4byte gUnknown_0202E8CC
-_080C0BCC: .4byte gSaveBlock1 + 0x2738
-_080C0BD0: .4byte gScriptResult
-_080C0BD4: .4byte gUnknown_020387E8
-_080C0BD8: .4byte _080C0BDC
- .align 2, 0
-_080C0BDC:
- .4byte _080C0C18
- .4byte _080C0C5C
- .4byte _080C0C8C
- .4byte _080C0CB0
- .4byte _080C0CDC
- .4byte _080C0D24
- .4byte _080C0D30
- .4byte _080C0D3C
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D5C
- .4byte _080C0D88
- .4byte _080C0D88
- .4byte _080C0DC0
-_080C0C18:
- ldr r0, _080C0C40
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0C44
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0C48
- adds r1, r2
- bl StringCopy
- ldrh r0, [r4, 0x16]
- cmp r0, 0x6
- bls _080C0C50
- ldr r1, _080C0C4C
- movs r0, 0x1
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C40: .4byte gStringVar1
-_080C0C44: .4byte gStringVar2
-_080C0C48: .4byte gSpeciesNames
-_080C0C4C: .4byte gUnknown_020387E8
-_080C0C50:
- ldr r1, _080C0C58
- movs r0, 0x2
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C58: .4byte gUnknown_020387E8
-_080C0C5C:
- ldrb r1, [r4, 0x1A]
- movs r0, 0
- bl sub_80BF088
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- bl sub_80BF088
- ldrb r0, [r4, 0x1C]
- cmp r0, 0x1
- bne _080C0C80
- ldr r1, _080C0C7C
- movs r0, 0x3
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C7C: .4byte gUnknown_020387E8
-_080C0C80:
- ldr r1, _080C0C88
- movs r0, 0x4
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C88: .4byte gUnknown_020387E8
-_080C0C8C:
- ldr r0, _080C0CAC
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldrh r1, [r4, 0x16]
- adds r1, 0x1
- movs r0, 0x1
- bl sub_80BF088
-_080C0CA2:
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- beq _080C0CFE
- b _080C0D18
- .align 2, 0
-_080C0CAC: .4byte gStringVar1
-_080C0CB0:
- ldr r0, _080C0CD0
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0CD4
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0CD8
- adds r1, r2
- bl StringCopy
- b _080C0CA2
- .align 2, 0
-_080C0CD0: .4byte gStringVar1
-_080C0CD4: .4byte gStringVar2
-_080C0CD8: .4byte gSpeciesNames
-_080C0CDC:
- ldr r0, _080C0D08
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0D0C
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0D10
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D18
-_080C0CFE:
- ldr r1, _080C0D14
- movs r0, 0x5
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D08: .4byte gStringVar1
-_080C0D0C: .4byte gStringVar2
-_080C0D10: .4byte gSpeciesNames
-_080C0D14: .4byte gUnknown_020387E8
-_080C0D18:
- ldr r1, _080C0D20
- movs r0, 0x6
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D20: .4byte gUnknown_020387E8
-_080C0D24:
- ldr r0, _080C0D2C
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D2C: .4byte gStringVar1
-_080C0D30:
- ldr r0, _080C0D38
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D38: .4byte gStringVar1
-_080C0D3C:
- movs r0, 0xB
- strb r0, [r2]
- b _080C0DDE
-_080C0D42:
- ldr r0, _080C0D54
- adds r1, r4, 0x2
-_080C0D46:
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r1, _080C0D58
- movs r0, 0xB
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D54: .4byte gStringVar1
-_080C0D58: .4byte gUnknown_020387E8
-_080C0D5C:
- ldr r0, _080C0D74
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D7C
- ldr r1, _080C0D78
- movs r0, 0xC
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D74: .4byte gStringVar1
-_080C0D78: .4byte gUnknown_020387E8
-_080C0D7C:
- ldr r1, _080C0D84
- movs r0, 0xD
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D84: .4byte gUnknown_020387E8
-_080C0D88:
- ldr r0, _080C0DB0
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldr r0, _080C0DB4
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0DB8
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r1, _080C0DBC
- movs r0, 0xE
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0DB0: .4byte gStringVar1
-_080C0DB4: .4byte gStringVar2
-_080C0DB8: .4byte gStringVar3
-_080C0DBC: .4byte gUnknown_020387E8
-_080C0DC0:
- ldr r0, _080C0DF0
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0DF4
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0DF8
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C0DDE:
- ldr r0, _080C0DFC
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0DF0: .4byte gStringVar1
-_080C0DF4: .4byte gStringVar2
-_080C0DF8: .4byte gSpeciesNames
-_080C0DFC: .4byte gUnknown_083D1548
- thumb_func_end sub_80C0B9C
-
- thumb_func_start DoTVShowTodaysSmartShopper
-DoTVShowTodaysSmartShopper: @ 80C0E00
- push {r4-r6,lr}
- ldr r0, _080C0E2C
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0E30
- adds r5, r0, r1
- ldr r1, _080C0E34
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0E38
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xC
- bls _080C0E22
- b _080C1014
-_080C0E22:
- lsls r0, r6, 2
- ldr r1, _080C0E3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0E2C: .4byte gUnknown_0202E8CC
-_080C0E30: .4byte gSaveBlock1 + 0x2738
-_080C0E34: .4byte gScriptResult
-_080C0E38: .4byte gUnknown_020387E8
-_080C0E3C: .4byte _080C0E40
- .align 2, 0
-_080C0E40:
- .4byte _080C0E74
- .4byte _080C0EB0
- .4byte _080C0EF8
- .4byte _080C0F0A
- .4byte _080C0EF8
- .4byte _080C0EF8
- .4byte _080C0F34
- .4byte _080C0F64
- .4byte _080C0F94
- .4byte _080C0FA0
- .4byte _080C0FAE
- .4byte _080C0FC0
- .4byte _080C1004
-_080C0E74:
- ldr r0, _080C0E98
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r0, _080C0E9C
- ldrb r1, [r5, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0EA4
- ldr r1, _080C0EA0
- movs r0, 0xB
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0E98: .4byte gStringVar1
-_080C0E9C: .4byte gStringVar2
-_080C0EA0: .4byte gUnknown_020387E8
-_080C0EA4:
- ldr r1, _080C0EAC
- movs r0, 0x1
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0EAC: .4byte gUnknown_020387E8
-_080C0EB0:
- ldr r0, _080C0EEC
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C0EF0
- ldrh r0, [r5, 0x6]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xC]
- movs r0, 0x2
- bl sub_80BF088
- ldr r4, _080C0EF4
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C1014
- .align 2, 0
-_080C0EEC: .4byte gStringVar1
-_080C0EF0: .4byte gStringVar2
-_080C0EF4: .4byte gUnknown_020387E8
-_080C0EF8:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F04
- movs r0, 0x6
- strb r0, [r2]
- b _080C1014
-_080C0F04:
- movs r0, 0xA
- strb r0, [r2]
- b _080C1014
-_080C0F0A:
- ldrh r1, [r5, 0xC]
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F28
- ldr r1, _080C0F24
- movs r0, 0x6
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F24: .4byte gUnknown_020387E8
-_080C0F28:
- ldr r1, _080C0F30
- movs r0, 0xA
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F30: .4byte gUnknown_020387E8
-_080C0F34:
- ldr r4, _080C0F5C
- ldrh r0, [r5, 0x8]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xE]
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0xA]
- cmp r0, 0
- beq _080C0F7C
- ldr r1, _080C0F60
- movs r0, 0x7
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F5C: .4byte gStringVar2
-_080C0F60: .4byte gUnknown_020387E8
-_080C0F64:
- ldr r4, _080C0F8C
- ldrh r0, [r5, 0xA]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF088
-_080C0F7C:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- beq _080C0FE2
- ldr r1, _080C0F90
- movs r0, 0x9
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F8C: .4byte gStringVar2
-_080C0F90: .4byte gUnknown_020387E8
-_080C0F94:
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0FBA
- movs r0, 0xC
- strb r0, [r2]
- b _080C1014
-_080C0FA0:
- movs r0, 0x1
- adds r1, r5, 0
- bl sub_80BF154
- bl TVShowDone
- b _080C1014
-_080C0FAE:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FBA
- movs r0, 0x8
- strb r0, [r2]
- b _080C1014
-_080C0FBA:
- movs r0, 0x9
- strb r0, [r2]
- b _080C1014
-_080C0FC0:
- ldr r0, _080C0FEC
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C0FF0
- ldrh r0, [r5, 0x6]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FF8
-_080C0FE2:
- ldr r1, _080C0FF4
- movs r0, 0x8
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0FEC: .4byte gStringVar1
-_080C0FF0: .4byte gStringVar2
-_080C0FF4: .4byte gUnknown_020387E8
-_080C0FF8:
- ldr r1, _080C1000
- movs r0, 0xC
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C1000: .4byte gUnknown_020387E8
-_080C1004:
- ldr r0, _080C1028
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- bl TVShowDone
-_080C1014:
- ldr r0, _080C102C
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1028: .4byte gStringVar1
-_080C102C: .4byte gUnknown_083D14F0
- thumb_func_end DoTVShowTodaysSmartShopper
-
- thumb_func_start DoTVShowTheNameRaterShow
-DoTVShowTheNameRaterShow: @ 80C1030
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080C1060
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1064
- adds r6, r0, r1
- ldr r1, _080C1068
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C106C
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x12
- bls _080C1054
- b _080C138A
-_080C1054:
- lsls r0, r7, 2
- ldr r1, _080C1070
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1060: .4byte gUnknown_0202E8CC
-_080C1064: .4byte gSaveBlock1 + 0x2738
-_080C1068: .4byte gScriptResult
-_080C106C: .4byte gUnknown_020387E8
-_080C1070: .4byte _080C1074
- .align 2, 0
-_080C1074:
- .4byte _080C10C0
- .4byte _080C1108
- .4byte _080C112A
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C136C
- .4byte _080C11CC
- .4byte _080C1228
- .4byte _080C127C
- .4byte _080C12D4
- .4byte _080C1314
- .4byte _080C1370
-_080C10C0:
- ldr r0, _080C10F4
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C10F8
- ldrh r2, [r6, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C10FC
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1100
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldr r4, _080C1104
- adds r0, r6, 0
- bl sub_80BF7E8
- adds r0, 0x1
- strb r0, [r4]
- b _080C138A
- .align 2, 0
-_080C10F4: .4byte gStringVar1
-_080C10F8: .4byte gStringVar2
-_080C10FC: .4byte gSpeciesNames
-_080C1100: .4byte gStringVar3
-_080C1104: .4byte gUnknown_020387E8
-_080C1108:
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C1114
- movs r0, 0x9
- strb r0, [r2]
- b _080C138A
-_080C1114:
- cmp r0, 0x1
- bne _080C111E
- movs r0, 0xA
- strb r0, [r2]
- b _080C138A
-_080C111E:
- cmp r0, 0x2
- beq _080C1124
- b _080C138A
-_080C1124:
- movs r0, 0xB
- strb r0, [r2]
- b _080C138A
-_080C112A:
- ldr r0, _080C1144
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C114C
- ldr r1, _080C1148
- movs r0, 0x9
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1144: .4byte gStringVar1
-_080C1148: .4byte gUnknown_020387E8
-_080C114C:
- cmp r0, 0x1
- bne _080C115C
- ldr r1, _080C1158
- movs r0, 0xA
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1158: .4byte gUnknown_020387E8
-_080C115C:
- cmp r0, 0x2
- beq _080C1162
- b _080C138A
-_080C1162:
- ldr r1, _080C116C
- movs r0, 0xB
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C116C: .4byte gUnknown_020387E8
-_080C1170:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11BC
- ldr r4, _080C11C0
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11C4
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- adds r0, r4, 0
- bl sub_80C08FC
- ldr r1, _080C11C8
- movs r0, 0xC
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C11BC: .4byte gStringVar3
-_080C11C0: .4byte gStringVar1
-_080C11C4: .4byte gStringVar2
-_080C11C8: .4byte gUnknown_020387E8
-_080C11CC:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1218
- ldr r4, _080C121C
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1220
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl sub_80C08FC
- ldr r1, _080C1224
- movs r0, 0xE
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1218: .4byte gStringVar3
-_080C121C: .4byte gStringVar1
-_080C1220: .4byte gStringVar2
-_080C1224: .4byte gUnknown_020387E8
-_080C1228:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1270
- ldr r4, _080C1274
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1278
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl sub_80C08FC
- b _080C1354
- .align 2, 0
-_080C1270: .4byte gStringVar3
-_080C1274: .4byte gStringVar1
-_080C1278: .4byte gStringVar2
-_080C127C:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C12C4
- ldr r4, _080C12C8
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- ldrh r1, [r6, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C12CC
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C12D0
- movs r0, 0x10
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C12C4: .4byte gStringVar1
-_080C12C8: .4byte gStringVar2
-_080C12CC: .4byte gSpeciesNames
-_080C12D0: .4byte gUnknown_020387E8
-_080C12D4:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1308
- ldr r1, _080C130C
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C1310
- movs r0, 0x11
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1308: .4byte gStringVar3
-_080C130C: .4byte gStringVar1
-_080C1310: .4byte gUnknown_020387E8
-_080C1314:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C135C
- ldr r4, _080C1360
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- ldrh r0, [r6, 0x1C]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldrh r1, [r6, 0x1C]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C1364
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
-_080C1354:
- ldr r1, _080C1368
- movs r0, 0x12
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C135C: .4byte gStringVar1
-_080C1360: .4byte gStringVar2
-_080C1364: .4byte gSpeciesNames
-_080C1368: .4byte gUnknown_020387E8
-_080C136C:
- movs r7, 0x12
- strb r7, [r2]
-_080C1370:
- ldr r0, _080C13A0
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldr r0, _080C13A4
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- bl TVShowDone
-_080C138A:
- ldr r0, _080C13A8
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C13A0: .4byte gStringVar1
-_080C13A4: .4byte gStringVar2
-_080C13A8: .4byte gUnknown_083D1584
- thumb_func_end DoTVShowTheNameRaterShow
-
- thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
-DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
- push {r4-r6,lr}
- ldr r0, _080C13D8
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C13DC
- adds r5, r0, r1
- ldr r1, _080C13E0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C13E4
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xB
- bls _080C13CE
- b _080C15DC
-_080C13CE:
- lsls r0, r6, 2
- ldr r1, _080C13E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C13D8: .4byte gUnknown_0202E8CC
-_080C13DC: .4byte gSaveBlock1 + 0x2738
-_080C13E0: .4byte gScriptResult
-_080C13E4: .4byte gUnknown_020387E8
-_080C13E8: .4byte _080C13EC
- .align 2, 0
-_080C13EC:
- .4byte _080C141C
- .4byte _080C1470
- .4byte _080C1476
- .4byte _080C14B0
- .4byte _080C14E8
- .4byte _080C14EE
- .4byte _080C1524
- .4byte _080C1578
- .4byte _080C1578
- .4byte _080C15A8
- .4byte _080C15A8
- .4byte _080C15D8
-_080C141C:
- ldr r0, _080C1450
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1454
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1458
- adds r1, r2
- bl StringCopy
- ldr r0, _080C145C
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldrb r0, [r5, 0xF]
- cmp r0, 0x1
- bne _080C1464
- ldr r1, _080C1460
- movs r0, 0x5
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1450: .4byte gStringVar1
-_080C1454: .4byte gStringVar2
-_080C1458: .4byte gSpeciesNames
-_080C145C: .4byte gStringVar3
-_080C1460: .4byte gUnknown_020387E8
-_080C1464:
- ldr r1, _080C146C
- movs r0, 0x1
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C146C: .4byte gUnknown_020387E8
-_080C1470:
- movs r0, 0x2
- strb r0, [r2]
- b _080C15DC
-_080C1476:
- ldr r4, _080C149C
- ldrb r0, [r5, 0xF]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5, 0x12]
- movs r0, 0x2
- bl sub_80BF088
- ldrb r0, [r5, 0x12]
- cmp r0, 0x3
- bhi _080C14A4
- ldr r1, _080C14A0
- movs r0, 0x3
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C149C: .4byte gStringVar2
-_080C14A0: .4byte gUnknown_020387E8
-_080C14A4:
- ldr r1, _080C14AC
- movs r0, 0x4
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C14AC: .4byte gUnknown_020387E8
-_080C14B0:
- ldr r0, _080C14D8
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C14DC
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C14E0
- adds r1, r2
- bl StringCopy
- ldr r0, _080C14E4
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- b _080C150A
- .align 2, 0
-_080C14D8: .4byte gStringVar1
-_080C14DC: .4byte gStringVar2
-_080C14E0: .4byte gSpeciesNames
-_080C14E4: .4byte gStringVar3
-_080C14E8:
- movs r0, 0x6
- strb r0, [r2]
- b _080C15DC
-_080C14EE:
- ldr r0, _080C1514
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1518
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C151C
- adds r1, r2
- bl StringCopy
-_080C150A:
- ldr r1, _080C1520
- movs r0, 0x6
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1514: .4byte gStringVar1
-_080C1518: .4byte gStringVar2
-_080C151C: .4byte gSpeciesNames
-_080C1520: .4byte gUnknown_020387E8
-_080C1524:
- ldr r0, _080C1564
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1568
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C156C
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1570
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C1574
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C15DC
- .align 2, 0
-_080C1564: .4byte gStringVar1
-_080C1568: .4byte gStringVar2
-_080C156C: .4byte gSpeciesNames
-_080C1570: .4byte gStringVar3
-_080C1574: .4byte gUnknown_020387E8
-_080C1578:
- ldr r0, _080C159C
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15A0
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15A4
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF638
- b _080C15C2
- .align 2, 0
-_080C159C: .4byte gStringVar1
-_080C15A0: .4byte gSpeciesNames
-_080C15A4: .4byte gStringVar2
-_080C15A8:
- ldr r0, _080C15C8
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15CC
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15D0
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
-_080C15C2:
- ldr r0, _080C15D4
- strb r4, [r0]
- b _080C15DC
- .align 2, 0
-_080C15C8: .4byte gStringVar1
-_080C15CC: .4byte gSpeciesNames
-_080C15D0: .4byte gStringVar2
-_080C15D4: .4byte gUnknown_020387E8
-_080C15D8:
- bl TVShowDone
-_080C15DC:
- ldr r0, _080C15F0
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C15F0: .4byte gUnknown_083D14C0
- thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
-
- thumb_func_start DoTVShowPokemonTodayFailedCapture
-DoTVShowPokemonTodayFailedCapture: @ 80C15F4
- push {r4,r5,lr}
- ldr r0, _080C1620
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1624
- adds r4, r0, r1
- ldr r1, _080C1628
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C162C
- ldrb r5, [r0]
- cmp r5, 0x6
- bls _080C1614
- b _080C173C
-_080C1614:
- lsls r0, r5, 2
- ldr r1, _080C1630
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1620: .4byte gUnknown_0202E8CC
-_080C1624: .4byte gSaveBlock1 + 0x2738
-_080C1628: .4byte gScriptResult
-_080C162C: .4byte gUnknown_020387E8
-_080C1630: .4byte _080C1634
- .align 2, 0
-_080C1634:
- .4byte _080C1650
- .4byte _080C1684
- .4byte _080C16D8
- .4byte _080C16D8
- .4byte _080C171C
- .4byte _080C171C
- .4byte _080C1738
-_080C1650:
- ldr r0, _080C1674
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1678
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C167C
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1680
- movs r0, 0x1
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1674: .4byte gStringVar1
-_080C1678: .4byte gStringVar2
-_080C167C: .4byte gSpeciesNames
-_080C1680: .4byte gUnknown_020387E8
-_080C1684:
- ldr r0, _080C16B8
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r0, _080C16BC
- ldrb r1, [r4, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C16C0
- ldrh r2, [r4, 0xE]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C16C4
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x11]
- cmp r0, 0x1
- bne _080C16CC
- ldr r1, _080C16C8
- movs r0, 0x3
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16B8: .4byte gStringVar1
-_080C16BC: .4byte gStringVar2
-_080C16C0: .4byte gStringVar3
-_080C16C4: .4byte gSpeciesNames
-_080C16C8: .4byte gUnknown_020387E8
-_080C16CC:
- ldr r1, _080C16D4
- movs r0, 0x2
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16D4: .4byte gUnknown_020387E8
-_080C16D8:
- ldr r0, _080C1708
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- bl sub_80BF088
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080C1710
- ldr r1, _080C170C
- movs r0, 0x5
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1708: .4byte gStringVar1
-_080C170C: .4byte gUnknown_020387E8
-_080C1710:
- ldr r1, _080C1718
- movs r0, 0x4
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1718: .4byte gUnknown_020387E8
-_080C171C:
- ldr r0, _080C1730
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r1, _080C1734
- movs r0, 0x6
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1730: .4byte gStringVar1
-_080C1734: .4byte gUnknown_020387E8
-_080C1738:
- bl TVShowDone
-_080C173C:
- ldr r0, _080C1750
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1750: .4byte gUnknown_083D15D0
- thumb_func_end DoTVShowPokemonTodayFailedCapture
-
- thumb_func_start DoTVShowPokemonFanClubLetter
-DoTVShowPokemonFanClubLetter: @ 80C1754
- push {r4-r7,lr}
- ldr r0, _080C1780
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1784
- adds r5, r0, r1
- ldr r1, _080C1788
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C178C
- ldrb r7, [r0]
- adds r6, r0, 0
- cmp r7, 0x33
- bls _080C1776
- b _080C1960
-_080C1776:
- lsls r0, r7, 2
- ldr r1, _080C1790
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1780: .4byte gUnknown_0202E8CC
-_080C1784: .4byte gSaveBlock1 + 0x2738
-_080C1788: .4byte gScriptResult
-_080C178C: .4byte gUnknown_020387E8
-_080C1790: .4byte _080C1794
- .align 2, 0
-_080C1794:
- .4byte _080C1864
- .4byte _080C1898
- .4byte _080C18C4
- .4byte _080C18CA
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18F4
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1916
- .4byte _080C193C
-_080C1864:
- ldr r0, _080C1888
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl sub_80C08FC
- ldr r0, _080C188C
- ldrh r2, [r5, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1890
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1894
- movs r0, 0x32
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C1888: .4byte gStringVar1
-_080C188C: .4byte gStringVar2
-_080C1890: .4byte gSpeciesNames
-_080C1894: .4byte gUnknown_020387E8
-_080C1898:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r2, r0, 0x1
- cmp r2, 0x1
- bne _080C18B8
- ldr r1, _080C18B4
- movs r0, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18B4: .4byte gUnknown_020387E8
-_080C18B8:
- ldr r1, _080C18C0
- adds r0, r2, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18C0: .4byte gUnknown_020387E8
-_080C18C4:
- movs r0, 0x33
- strb r0, [r6]
- b _080C1960
-_080C18CA:
- bl Random
- ldrb r4, [r6]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r6]
- b _080C1960
-_080C18E2:
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C18F0
- movs r0, 0x7
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18F0: .4byte gUnknown_020387E8
-_080C18F4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- bl __umodsi3
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x2
- adds r1, r2, 0
- bl sub_80BF088
- bl TVShowDone
- b _080C1960
-_080C1916:
- ldr r4, _080C1934
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1938
- movs r0, 0x1
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1934: .4byte gStringVar4
-_080C1938: .4byte gUnknown_020387E8
-_080C193C:
- ldr r4, _080C1958
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C195C
- movs r0, 0x3
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1958: .4byte gStringVar4
-_080C195C: .4byte gUnknown_020387E8
-_080C1960:
- ldr r0, _080C1974
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C196C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1974: .4byte gUnknown_083D1470
- thumb_func_end DoTVShowPokemonFanClubLetter
-
- thumb_func_start DoTVShowRecentHappenings
-DoTVShowRecentHappenings: @ 80C1978
- push {r4-r7,lr}
- ldr r0, _080C19A4
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C19A8
- adds r5, r0, r1
- ldr r1, _080C19AC
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C19B0
- ldrb r6, [r0]
- adds r7, r0, 0
- cmp r6, 0x32
- bls _080C199A
- b _080C1AF0
-_080C199A:
- lsls r0, r6, 2
- ldr r1, _080C19B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C19A4: .4byte gUnknown_0202E8CC
-_080C19A8: .4byte gSaveBlock1 + 0x2738
-_080C19AC: .4byte gScriptResult
-_080C19B0: .4byte gUnknown_020387E8
-_080C19B4: .4byte _080C19B8
- .align 2, 0
-_080C19B8:
- .4byte _080C1A84
- .4byte _080C1AA8
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC6
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1ACC
-_080C1A84:
- ldr r0, _080C1AA0
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl sub_80C08FC
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C1AA4
- movs r0, 0x32
- strb r0, [r1]
- b _080C1AF0
- .align 2, 0
-_080C1AA0: .4byte gStringVar1
-_080C1AA4: .4byte gUnknown_020387E8
-_080C1AA8:
- bl Random
- ldrb r4, [r7]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r7]
- b _080C1AF0
-_080C1AC0:
- movs r0, 0x5
- strb r0, [r7]
- b _080C1AF0
-_080C1AC6:
- bl TVShowDone
- b _080C1AF0
-_080C1ACC:
- ldr r4, _080C1AE8
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1AEC
- movs r0, 0x1
- strb r0, [r1]
- b _080C1AFC
- .align 2, 0
-_080C1AE8: .4byte gStringVar4
-_080C1AEC: .4byte gUnknown_020387E8
-_080C1AF0:
- ldr r0, _080C1B04
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C1AFC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1B04: .4byte gUnknown_083D1490
- thumb_func_end DoTVShowRecentHappenings
-
- thumb_func_start DoTVShowPokemonFanClubOpinions
-DoTVShowPokemonFanClubOpinions: @ 80C1B08
- push {r4-r6,lr}
- ldr r0, _080C1B30
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1B34
- adds r4, r0, r1
- ldr r1, _080C1B38
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1B3C
- ldrb r5, [r6]
- cmp r5, 0x3
- bgt _080C1B40
- cmp r5, 0x1
- bge _080C1B88
- cmp r5, 0
- beq _080C1B46
- b _080C1BD6
- .align 2, 0
-_080C1B30: .4byte gUnknown_0202E8CC
-_080C1B34: .4byte gSaveBlock1 + 0x2738
-_080C1B38: .4byte gScriptResult
-_080C1B3C: .4byte gUnknown_020387E8
-_080C1B40:
- cmp r5, 0x4
- beq _080C1BC0
- b _080C1BD6
-_080C1B46:
- ldr r0, _080C1B78
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1B7C
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1B80
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1B84
- adds r1, r4, 0
- adds r1, 0x10
- ldrb r2, [r4, 0xE]
- bl sub_80C08FC
- ldrb r0, [r4, 0x4]
- lsrs r0, 4
- adds r0, 0x1
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1B78: .4byte gStringVar1
-_080C1B7C: .4byte gStringVar2
-_080C1B80: .4byte gSpeciesNames
-_080C1B84: .4byte gStringVar3
-_080C1B88:
- ldr r0, _080C1BB0
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1BB4
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1BB8
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1BBC
- ldrh r1, [r4, 0x1C]
- bl sub_80EB3FC
- movs r0, 0x4
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1BB0: .4byte gStringVar1
-_080C1BB4: .4byte gStringVar2
-_080C1BB8: .4byte gSpeciesNames
-_080C1BBC: .4byte gStringVar3
-_080C1BC0:
- ldr r0, _080C1BE8
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1BEC
- ldrh r1, [r4, 0x1E]
- bl sub_80EB3FC
- bl TVShowDone
-_080C1BD6:
- ldr r0, _080C1BF0
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1BE8: .4byte gStringVar1
-_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gUnknown_083D14A8
- thumb_func_end DoTVShowPokemonFanClubOpinions
-
- thumb_func_start nullsub_22
-nullsub_22: @ 80C1BF4
- bx lr
- thumb_func_end nullsub_22
-
- thumb_func_start DoTVShowPokemonNewsMassOutbreak
-DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
- push {r4,lr}
- ldr r0, _080C1C40
- ldrh r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C1C44
- adds r4, r0
- ldr r0, _080C1C48
- ldrb r1, [r4, 0x10]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1C4C
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1C50
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- bl StartMassOutbreak
- ldr r1, _080C1C54
- ldr r0, _080C1C58
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1C40: .4byte gUnknown_0202E8CC
-_080C1C44: .4byte gSaveBlock1 + 0x2738
-_080C1C48: .4byte gStringVar1
-_080C1C4C: .4byte gStringVar2
-_080C1C50: .4byte gSpeciesNames
-_080C1C54: .4byte gUnknown_083D14BC
-_080C1C58: .4byte gUnknown_020387E8
- thumb_func_end DoTVShowPokemonNewsMassOutbreak
-
- thumb_func_start DoTVShowInSearchOfTrainers
-DoTVShowInSearchOfTrainers: @ 80C1C5C
- push {r4-r7,lr}
- ldr r0, _080C1C7C
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080C1C80
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x8
- bls _080C1C70
- b _080C1DF8
-_080C1C70:
- lsls r0, r7, 2
- ldr r1, _080C1C84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C7C: .4byte gScriptResult
-_080C1C80: .4byte gUnknown_020387E8
-_080C1C84: .4byte _080C1C88
- .align 2, 0
-_080C1C88:
- .4byte _080C1CAC
- .4byte _080C1CF0
- .4byte _080C1CF6
- .4byte _080C1D44
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB6
-_080C1CAC:
- ldr r0, _080C1CD0
- ldr r4, _080C1CD4
- ldr r2, _080C1CD8
- adds r1, r4, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1CDC
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080C1CE4
- ldr r1, _080C1CE0
- movs r0, 0x1
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CD0: .4byte gStringVar1
-_080C1CD4: .4byte gSaveBlock1
-_080C1CD8: .4byte 0x00002b18
-_080C1CDC: .4byte 0x00002b19
-_080C1CE0: .4byte gUnknown_020387E8
-_080C1CE4:
- ldr r1, _080C1CEC
- movs r0, 0x2
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CEC: .4byte gUnknown_020387E8
-_080C1CF0:
- movs r0, 0x2
- strb r0, [r2]
- b _080C1DF8
-_080C1CF6:
- ldr r0, _080C1D0C
- ldr r1, _080C1D10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C1D14
- movs r0, 0x4
- strb r0, [r2]
- b _080C1DF8
- .align 2, 0
-_080C1D0C: .4byte gSaveBlock1
-_080C1D10: .4byte 0x00002b1a
-_080C1D14:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080C1D22
- movs r0, 0x5
- strb r0, [r2]
- b _080C1DF8
-_080C1D22:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080C1D30
- movs r0, 0x6
- strb r0, [r2]
- b _080C1DF8
-_080C1D30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C1D3E
- movs r0, 0x7
- strb r0, [r2]
- b _080C1DF8
-_080C1D3E:
- movs r0, 0x3
- strb r0, [r2]
- b _080C1DF8
-_080C1D44:
- ldr r0, _080C1D88
- ldr r4, _080C1D8C
- ldr r2, _080C1D90
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1D94
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1D98
- ldr r2, _080C1D9C
- adds r1, r4, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C1DA0
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1DA4
- ldr r1, _080C1DA8
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1DAC
- movs r0, 0x8
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1D88: .4byte gStringVar1
-_080C1D8C: .4byte gSaveBlock1
-_080C1D90: .4byte 0x00002b10
-_080C1D94: .4byte gSpeciesNames
-_080C1D98: .4byte gStringVar2
-_080C1D9C: .4byte 0x00002b14
-_080C1DA0: .4byte gMoveNames
-_080C1DA4: .4byte gStringVar3
-_080C1DA8: .4byte 0x00002b12
-_080C1DAC: .4byte gUnknown_020387E8
-_080C1DB0:
- movs r0, 0x8
- strb r0, [r2]
- b _080C1DF8
-_080C1DB6:
- ldr r0, _080C1E0C
- ldr r4, _080C1E10
- ldr r2, _080C1E14
- adds r1, r4, r2
- ldrh r1, [r1]
- bl sub_80EB3FC
- ldr r0, _080C1E18
- ldr r2, _080C1E1C
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1E20
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1E24
- ldr r1, _080C1E28
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1E2C
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C1E30
- movs r0, 0
- strb r0, [r1]
- bl TakeTVShowInSearchOfTrainersOffTheAir
-_080C1DF8:
- ldr r0, _080C1E34
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gStringVar1
-_080C1E10: .4byte gSaveBlock1
-_080C1E14: .4byte 0x00002b16
-_080C1E18: .4byte gStringVar2
-_080C1E1C: .4byte 0x00002b10
-_080C1E20: .4byte gSpeciesNames
-_080C1E24: .4byte gStringVar3
-_080C1E28: .4byte 0x00002b12
-_080C1E2C: .4byte gScriptResult
-_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gUnknown_083D1600
- thumb_func_end DoTVShowInSearchOfTrainers
-
- thumb_func_start DoTVShowPokemonAngler
-DoTVShowPokemonAngler: @ 80C1E38
- push {r4,r5,lr}
- ldr r0, _080C1E5C
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1E60
- adds r4, r0, r1
- ldr r0, _080C1E64
- movs r1, 0
- strh r1, [r0]
- ldrb r0, [r4, 0x2]
- ldrb r2, [r4, 0x3]
- cmp r0, r2
- bcs _080C1E6C
- ldr r0, _080C1E68
- strb r1, [r0]
- b _080C1E74
- .align 2, 0
-_080C1E5C: .4byte gUnknown_0202E8CC
-_080C1E60: .4byte gSaveBlock1 + 0x2738
-_080C1E64: .4byte gScriptResult
-_080C1E68: .4byte gUnknown_020387E8
-_080C1E6C:
- ldr r1, _080C1E80
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_080C1E74:
- ldrb r5, [r0]
- cmp r5, 0
- beq _080C1E84
- cmp r5, 0x1
- beq _080C1EBC
- b _080C1EE4
- .align 2, 0
-_080C1E80: .4byte gUnknown_020387E8
-_080C1E84:
- ldr r0, _080C1EB0
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl sub_80C08FC
- ldr r0, _080C1EB4
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1EB8
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x3]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
- b _080C1EE4
- .align 2, 0
-_080C1EB0: .4byte gStringVar1
-_080C1EB4: .4byte gStringVar2
-_080C1EB8: .4byte gSpeciesNames
-_080C1EBC:
- ldr r0, _080C1EF8
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl sub_80C08FC
- ldr r0, _080C1EFC
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F00
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
-_080C1EE4:
- ldr r0, _080C1F04
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1EF8: .4byte gStringVar1
-_080C1EFC: .4byte gStringVar2
-_080C1F00: .4byte gSpeciesNames
-_080C1F04: .4byte gUnknown_083D15EC
- thumb_func_end DoTVShowPokemonAngler
-
- thumb_func_start DoTVShowTheWorldOfMasters
-DoTVShowTheWorldOfMasters: @ 80C1F08
- push {r4-r6,lr}
- ldr r0, _080C1F30
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1F34
- adds r4, r0, r1
- ldr r1, _080C1F38
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1F3C
- ldrb r5, [r6]
- cmp r5, 0x1
- beq _080C1F6C
- cmp r5, 0x1
- bgt _080C1F40
- cmp r5, 0
- beq _080C1F46
- b _080C1FB6
- .align 2, 0
-_080C1F30: .4byte gUnknown_0202E8CC
-_080C1F34: .4byte gSaveBlock1 + 0x2738
-_080C1F38: .4byte gScriptResult
-_080C1F3C: .4byte gUnknown_020387E8
-_080C1F40:
- cmp r5, 0x2
- beq _080C1F8C
- b _080C1FB6
-_080C1F46:
- ldr r0, _080C1F68
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl sub_80C08FC
- ldrh r1, [r4, 0x6]
- movs r0, 0x1
- bl sub_80BF088
- ldrh r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- movs r0, 0x1
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F68: .4byte gStringVar1
-_080C1F6C:
- ldr r0, _080C1F84
- ldrh r2, [r4, 0x8]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F88
- adds r1, r2
- bl StringCopy
- movs r0, 0x2
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F84: .4byte gStringVar1
-_080C1F88: .4byte gSpeciesNames
-_080C1F8C:
- ldr r0, _080C1FC8
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl sub_80C08FC
- ldr r0, _080C1FCC
- ldrb r1, [r4, 0xA]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1FD0
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1FD4
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C1FB6:
- ldr r0, _080C1FD8
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1FC8: .4byte gStringVar1
-_080C1FCC: .4byte gStringVar2
-_080C1FD0: .4byte gStringVar3
-_080C1FD4: .4byte gSpeciesNames
-_080C1FD8: .4byte gUnknown_083D15F4
- thumb_func_end DoTVShowTheWorldOfMasters
-
- thumb_func_start TVShowDone
-TVShowDone: @ 80C1FDC
- ldr r1, _080C2000
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C2004
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080C2008
- ldr r0, _080C200C
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080C2010
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080C2000: .4byte gScriptResult
-_080C2004: .4byte gUnknown_020387E8
-_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gUnknown_0202E8CC
-_080C2010: .4byte 0x00002739
- thumb_func_end TVShowDone
-
- thumb_func_start sub_80C2014
-sub_80C2014: @ 80C2014
- ldr r1, _080C201C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C201C: .4byte gUnknown_020387E8
- thumb_func_end sub_80C2014
-
- thumb_func_start sub_80C2020
-sub_80C2020: @ 80C2020
- push {r4,r5,lr}
- movs r5, 0x80
- lsls r5, 19
- movs r0, 0x40
- strh r0, [r5]
- ldr r4, _080C20F0
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080C20F4
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _080C20F8
- movs r2, 0xF8
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C20FC
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080C2100
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C2104
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2108
- movs r2, 0
- strh r2, [r0]
- adds r1, 0x3A
- ldr r3, _080C210C
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r3, 0x11
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2110
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, 0xA
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- subs r0, 0x44
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldrh r0, [r5]
- movs r3, 0xFE
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r5]
- ldr r0, _080C2114
- strh r2, [r0]
- ldr r0, _080C2118
- strh r2, [r0]
- ldr r0, _080C211C
- strh r2, [r0]
- ldr r0, _080C2120
- strh r2, [r0]
- ldr r0, _080C2124
- strh r2, [r0]
- ldr r0, _080C2128
- strh r2, [r0]
- ldr r0, _080C212C
- strh r2, [r0]
- ldr r0, _080C2130
- strh r2, [r0]
- ldr r0, _080C2134
- strh r2, [r0]
- ldr r0, _080C2138
- strh r2, [r0]
- ldr r0, _080C213C
- strh r2, [r0]
- ldr r0, _080C2140
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C20F0: .4byte gWindowConfig_81E6FA0
-_080C20F4: .4byte gMenuWindow
-_080C20F8: .4byte REG_BG0CNT
-_080C20FC: .4byte 0x00001803
-_080C2100: .4byte 0x00001c03
-_080C2104: .4byte 0x00003a03
-_080C2108: .4byte REG_MOSAIC
-_080C210C: .4byte 0x00003f3f
-_080C2110: .4byte REG_WIN0H
-_080C2114: .4byte gUnknown_030042A4
-_080C2118: .4byte gUnknown_030042A0
-_080C211C: .4byte gUnknown_030042C0
-_080C2120: .4byte gUnknown_030041B4
-_080C2124: .4byte gUnknown_03004288
-_080C2128: .4byte gUnknown_03004280
-_080C212C: .4byte gUnknown_030041B0
-_080C2130: .4byte gUnknown_030041B8
-_080C2134: .4byte gUnknown_030042C4
-_080C2138: .4byte gUnknown_03004240
-_080C213C: .4byte gUnknown_03004200
-_080C2140: .4byte gUnknown_03004244
- thumb_func_end sub_80C2020
-
- thumb_func_start sub_80C2144
-sub_80C2144: @ 80C2144
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- ldr r0, _080C220C
- mov r12, r0
- movs r5, 0
- ldr r1, _080C2210
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080C2214
- movs r7, 0x85
- lsls r7, 24
-_080C2162:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080C2162
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r12
- bl LZDecompressVram
- ldr r0, _080C2218
- ldr r1, _080C221C
- bl LZDecompressVram
- ldr r0, _080C2220
- ldr r1, _080C2224
- bl LZDecompressVram
- ldr r0, _080C2228
- ldr r1, _080C222C
- bl LZDecompressVram
- bl sub_80C37E4
- ldr r0, _080C2230
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- ldr r0, _080C2234
- bl LoadFontDefaultPalette
- movs r6, 0
-_080C21C0:
- lsls r5, r6, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C3990
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C39E4
- movs r5, 0
- lsls r1, r6, 1
- adds r2, r6, 0x1
- mov r12, r2
- lsls r4, 24
- asrs r7, r4, 24
- adds r1, r6
- lsls r1, 6
- lsls r4, r0, 24
-_080C21EC:
- ldr r6, _080C2238
- cmp r5, r7
- bge _080C21F4
- adds r6, 0x2
-_080C21F4:
- asrs r2, r4, 24
- adds r0, r2, 0
- cmp r2, 0
- bge _080C21FE
- negs r0, r2
-_080C21FE:
- cmp r5, r0
- bge _080C2240
- ldr r3, _080C223C
- cmp r2, 0
- bge _080C2242
- adds r3, 0x2
- b _080C2242
- .align 2, 0
-_080C220C: .4byte gUnknown_08D1977C
-_080C2210: .4byte 0x040000d4
-_080C2214: .4byte 0x85000400
-_080C2218: .4byte gUnknown_08D1A490
-_080C221C: .4byte 0x0600d000
-_080C2220: .4byte gUnknown_08D1A364
-_080C2224: .4byte 0x0600e000
-_080C2228: .4byte gUnknown_08D1A250
-_080C222C: .4byte 0x0600f000
-_080C2230: .4byte gUnknown_08D1A618
-_080C2234: .4byte gWindowConfig_81E6FA0
-_080C2238: .4byte 0x000060b2
-_080C223C: .4byte 0x000060a4
-_080C2240:
- ldr r3, _080C2264
-_080C2242:
- ldr r2, _080C2268
- adds r0, r1, r2
- strh r6, [r0]
- adds r2, 0x40
- adds r0, r1, r2
- strh r3, [r0]
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, 0x9
- ble _080C21EC
- mov r6, r12
- cmp r6, 0x3
- ble _080C21C0
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2264: .4byte 0x000060a2
-_080C2268: .4byte 0x0600c166
- thumb_func_end sub_80C2144
-
- thumb_func_start sub_80C226C
-sub_80C226C: @ 80C226C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C2288
- ldrb r0, [r0]
- cmp r5, r0
- bne _080C2294
- ldr r0, _080C228C
- ldr r1, _080C2290
- bl StringCopy
- adds r2, r0, 0
- b _080C2296
- .align 2, 0
-_080C2288: .4byte gUnknown_02038695
-_080C228C: .4byte gUnknown_020238CC
-_080C2290: .4byte gUnknown_083D17DC
-_080C2294:
- ldr r2, _080C22E8
-_080C2296:
- movs r4, 0xFC
- strb r4, [r2]
- movs r0, 0x6
- strb r0, [r2, 0x1]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r6, r5, 6
- ldr r7, _080C22EC
- adds r1, r6, r7
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r4, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x32
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r1, _080C22F0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080C22F4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C22FC
- lsls r4, r5, 3
- subs r1, r4, r5
- lsls r1, 2
- ldr r0, _080C22F8
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- b _080C230A
- .align 2, 0
-_080C22E8: .4byte gUnknown_020238CC
-_080C22EC: .4byte gUnknown_02038572
-_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gUnknown_0203869A
-_080C22F8: .4byte gLinkPlayers + 0x8
-_080C22FC:
- adds r1, r7, 0
- adds r1, 0xB
- adds r1, r6, r1
- adds r0, r2, 0
- bl StringCopy
- lsls r4, r5, 3
-_080C230A:
- ldr r0, _080C2334
- ldr r1, _080C2338
- adds r2, r4, r5
- lsls r2, 18
- ldr r3, _080C233C
- adds r2, r3
- lsrs r2, 16
- lsls r3, r5, 1
- adds r3, r5
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x7
- bl sub_8003460
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2334: .4byte gMenuWindow
-_080C2338: .4byte gUnknown_020238CC
-_080C233C: .4byte 0x03020000
- thumb_func_end sub_80C226C
-
- thumb_func_start sub_80C2340
-sub_80C2340: @ 80C2340
- push {r4,lr}
- movs r4, 0
-_080C2344:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80C226C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2344
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C2340
-
- thumb_func_start sub_80C2358
-sub_80C2358: @ 80C2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080C240C
- ldrb r0, [r5, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r5, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80C2020
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80C2144
- bl sub_80C310C
- movs r0, 0
- movs r1, 0x1
- bl sub_80C30D4
- bl sub_80C2340
- ldr r4, _080C2410
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- adds r0, r4, 0
- adds r0, 0x18
- movs r1, 0
- movs r2, 0x50
- bl memset
- bl sub_80C33DC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r1, [r5, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5, 0x8]
- ldr r0, _080C2414
- movs r1, 0x5
- bl CreateTask
- strb r0, [r4, 0x2]
- ldr r0, _080C2418
- bl SetMainCallback2
- ldr r1, _080C241C
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2420
- ldr r2, _080C2424
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080C2428
- movs r1, 0x14
- bl CreateTask
- bl sub_80C3F00
- movs r0, 0xDF
- lsls r0, 1
- bl PlayBGM
- ldr r0, _080C242C
- bl SetVBlankCallback
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C240C: .4byte gPaletteFade
-_080C2410: .4byte 0x02018000
-_080C2414: .4byte sub_80C24F4
-_080C2418: .4byte sub_80C2430
-_080C241C: .4byte gUnknown_03004200
-_080C2420: .4byte gUnknown_03004244
-_080C2424: .4byte 0x000080a0
-_080C2428: .4byte sub_80C2F28
-_080C242C: .4byte sub_80C2448
- thumb_func_end sub_80C2358
-
- thumb_func_start sub_80C2430
-sub_80C2430: @ 80C2430
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80C2430
-
- thumb_func_start sub_80C2448
-sub_80C2448: @ 80C2448
- push {lr}
- ldr r1, _080C24C0
- ldr r0, _080C24C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24C8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24CC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24DC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24E0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _080C24E4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24E8
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _080C24EC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24F0
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080C24C0: .4byte REG_BG0HOFS
-_080C24C4: .4byte gUnknown_030042A4
-_080C24C8: .4byte gUnknown_030042A0
-_080C24CC: .4byte gUnknown_030042C0
-_080C24D0: .4byte gUnknown_030041B4
-_080C24D4: .4byte gUnknown_03004288
-_080C24D8: .4byte gUnknown_03004280
-_080C24DC: .4byte gUnknown_030041B0
-_080C24E0: .4byte gUnknown_030041B8
-_080C24E4: .4byte gUnknown_030042C4
-_080C24E8: .4byte gUnknown_03004240
-_080C24EC: .4byte gUnknown_03004200
-_080C24F0: .4byte gUnknown_03004244
- thumb_func_end sub_80C2448
-
- thumb_func_start sub_80C24F4
-sub_80C24F4: @ 80C24F4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- ldr r0, _080C252C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C254E
- ldr r0, _080C2530
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2540
- ldr r0, _080C2534
- bl sub_80C3698
- ldr r1, _080C2538
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C253C
- str r1, [r0]
- b _080C254E
- .align 2, 0
-_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gUnknown_0203869A
-_080C2534: .4byte gOtherText_LinkStandby
-_080C2538: .4byte gTasks
-_080C253C: .4byte sub_80C255C
-_080C2540:
- ldr r0, _080C2554
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2558
- str r0, [r1]
-_080C254E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2554: .4byte gTasks
-_080C2558: .4byte sub_80C2600
- thumb_func_end sub_80C24F4
-
- thumb_func_start sub_80C255C
-sub_80C255C: @ 80C255C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2594
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C258C
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C258C
- ldr r0, _080C2598
- movs r1, 0
- bl CreateTask
- ldr r1, _080C259C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C25A0
- str r1, [r0]
-_080C258C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2594: .4byte gReceivedRemoteLinkPlayers
-_080C2598: .4byte sub_80C25A4
-_080C259C: .4byte gTasks
-_080C25A0: .4byte TaskDummy
- thumb_func_end sub_80C255C
-
- thumb_func_start sub_80C25A4
-sub_80C25A4: @ 80C25A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C25B8
- ldr r2, _080C25BC
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C25B8: .4byte sub_80C89DC
-_080C25BC: .4byte sub_80C25C0
- thumb_func_end sub_80C25A4
-
- thumb_func_start sub_80C25C0
-sub_80C25C0: @ 80C25C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C25EC
- adds r0, r4, 0
- bl DestroyTask
- ldr r2, _080C25F4
- ldr r0, _080C25F8
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080C25FC
- str r1, [r0]
- bl sub_80C3764
-_080C25EC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C25F4: .4byte gTasks
-_080C25F8: .4byte 0x02018000
-_080C25FC: .4byte sub_80C2600
- thumb_func_end sub_80C25C0
-
- thumb_func_start sub_80C2600
-sub_80C2600: @ 80C2600
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2644
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrh r1, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080C2654
- ldr r0, _080C2648
- movs r1, 0x14
- bl CreateTask
- ldr r4, _080C264C
- ldr r0, _080C2650
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- movs r2, 0x78
- b _080C26A6
- .align 2, 0
-_080C2644: .4byte gTasks
-_080C2648: .4byte sub_80C2F64
-_080C264C: .4byte gContestText_AnnounceResults
-_080C2650: .4byte 0x02018000
-_080C2654:
- cmp r0, 0x1
- bne _080C2668
- ldr r0, _080C2664
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080C26D4
- b _080C267C
- .align 2, 0
-_080C2664: .4byte 0x02018000
-_080C2668:
- cmp r0, 0x2
- bne _080C2684
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C26D4
- movs r0, 0
-_080C267C:
- strh r0, [r5, 0xA]
- adds r0, r1, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
-_080C2684:
- cmp r0, 0x3
- bne _080C26C0
- ldr r4, _080C26B4
- ldr r0, _080C26B8
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C26BC
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
-_080C26A6:
- bl sub_80C34CC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
- .align 2, 0
-_080C26B4: .4byte gContestText_PreliminaryResults
-_080C26B8: .4byte 0x02018000
-_080C26BC: .4byte 0x0000ffff
-_080C26C0:
- cmp r0, 0x4
- bne _080C26D4
- ldr r0, _080C26DC
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- bne _080C26D4
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080C26E0
- str r0, [r5]
-_080C26D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C26DC: .4byte 0x02018000
-_080C26E0: .4byte sub_80C26E4
- thumb_func_end sub_80C2600
-
- thumb_func_start sub_80C26E4
-sub_80C26E4: @ 80C26E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2708
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C2744
- cmp r0, 0x1
- bgt _080C270C
- cmp r0, 0
- beq _080C2712
- b _080C2766
- .align 2, 0
-_080C2708: .4byte gTasks
-_080C270C:
- cmp r0, 0x2
- beq _080C2754
- b _080C2766
-_080C2712:
- ldr r5, _080C2738
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C2766
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C273C
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2738: .4byte 0x02018000
-_080C273C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2766
-_080C2744:
- ldr r0, _080C2750
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C2766
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2750: .4byte 0x02018000
-_080C2754:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xC]
- ldr r0, _080C276C
- str r0, [r4]
-_080C2766:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C276C: .4byte sub_80C2770
- thumb_func_end sub_80C26E4
-
- thumb_func_start sub_80C2770
-sub_80C2770: @ 80C2770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r5, _080C27BC
- ldrb r3, [r5, 0x4]
- cmp r3, 0
- bne _080C27CC
- ldr r1, _080C27C0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C27DE
- strh r3, [r1, 0xA]
- ldr r4, _080C27C4
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C27C8
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
- b _080C27DE
- .align 2, 0
-_080C27BC: .4byte 0x02018000
-_080C27C0: .4byte gTasks
-_080C27C4: .4byte gContestText_Round2Results
-_080C27C8: .4byte 0x0000ffff
-_080C27CC:
- cmp r3, 0x2
- bne _080C27DE
- ldr r0, _080C27E4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C27E8
- str r0, [r1]
-_080C27DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C27E4: .4byte gTasks
-_080C27E8: .4byte sub_80C27EC
- thumb_func_end sub_80C2770
-
- thumb_func_start sub_80C27EC
-sub_80C27EC: @ 80C27EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2810
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C284C
- cmp r0, 0x1
- bgt _080C2814
- cmp r0, 0
- beq _080C281A
- b _080C286C
- .align 2, 0
-_080C2810: .4byte gTasks
-_080C2814:
- cmp r0, 0x2
- beq _080C285C
- b _080C286C
-_080C281A:
- ldr r5, _080C2840
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C286C
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C2844
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2840: .4byte 0x02018000
-_080C2844:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C286C
-_080C284C:
- ldr r0, _080C2858
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C286C
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2858: .4byte 0x02018000
-_080C285C:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080C2874
- str r0, [r4]
-_080C286C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2874: .4byte sub_80C2878
- thumb_func_end sub_80C27EC
-
- thumb_func_start sub_80C2878
-sub_80C2878: @ 80C2878
- push {r4-r7,lr}
- sub sp, 0x64
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C28A0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _080C2896
- b _080C2A80
-_080C2896:
- lsls r0, 2
- ldr r1, _080C28A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C28A0: .4byte gTasks
-_080C28A4: .4byte _080C28A8
- .align 2, 0
-_080C28A8:
- .4byte _080C28C0
- .4byte _080C28E0
- .4byte _080C28FE
- .4byte _080C2938
- .4byte _080C299C
- .4byte _080C2A70
-_080C28C0:
- ldr r0, _080C28DC
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080C28CA
- b _080C2A80
-_080C28CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2A80
- .align 2, 0
-_080C28DC: .4byte 0x02018000
-_080C28E0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C28F8
- b _080C2A80
-_080C28F8:
- movs r0, 0
- strh r0, [r1, 0xA]
- b _080C2A4A
-_080C28FE:
- movs r4, 0
- lsls r6, r5, 2
- ldr r7, _080C292C
-_080C2904:
- ldr r0, _080C2930
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- ldr r0, _080C2934
- adds r0, r4, r0
- ldrb r0, [r0]
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2904
- b _080C2A42
- .align 2, 0
-_080C292C: .4byte gTasks
-_080C2930: .4byte sub_80C3A5C
-_080C2934: .4byte gUnknown_02038690
-_080C2938:
- ldr r0, _080C2990
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _080C2942
- b _080C2A80
-_080C2942:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C295A
- b _080C2A80
-_080C295A:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldr r0, _080C2994
- movs r1, 0xA
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r4, 0
- ldr r1, _080C2998
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C2984
-_080C2976:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C2984
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2976
-_080C2984:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0xE
- bl sub_80C3E60
- b _080C2A80
- .align 2, 0
-_080C2990: .4byte 0x02018000
-_080C2994: .4byte sub_80C3B30
-_080C2998: .4byte gUnknown_02038690
-_080C299C:
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r2, r0, r2
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r0, 0x15
- bne _080C2A80
- movs r0, 0
- strh r0, [r2, 0xA]
- movs r4, 0
- ldr r2, _080C29F4
- ldrb r0, [r2]
- ldr r1, _080C29F8
- ldr r3, _080C29FC
- cmp r0, 0
- beq _080C29D4
-_080C29C6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C29D4
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C29C6
-_080C29D4:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2A04
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r0, _080C2A00
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- lsls r4, 6
- b _080C2A10
- .align 2, 0
-_080C29F4: .4byte gUnknown_02038690
-_080C29F8: .4byte gUnknown_0203869A
-_080C29FC: .4byte gStringVar1
-_080C2A00: .4byte gLinkPlayers + 0x8
-_080C2A04:
- lsls r4, 6
- ldr r1, _080C2A54
- adds r1, r4, r1
- adds r0, r3, 0
- bl StringCopy
-_080C2A10:
- ldr r0, _080C2A58
- ldr r1, _080C2A5C
- adds r1, r4, r1
- bl StringCopy
- ldr r1, _080C2A60
- mov r0, sp
- bl StringExpandPlaceholders
- ldr r0, _080C2A64
- ldrb r1, [r0]
- mov r0, sp
- bl sub_80C3158
- mov r0, sp
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C2A68
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
-_080C2A42:
- ldr r0, _080C2A6C
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
-_080C2A4A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2A80
- .align 2, 0
-_080C2A54: .4byte gUnknown_0203857D
-_080C2A58: .4byte gStringVar2
-_080C2A5C: .4byte gUnknown_02038572
-_080C2A60: .4byte gContestText_PokeWon
-_080C2A64: .4byte 0x02018000
-_080C2A68: .4byte 0x0000ffff
-_080C2A6C: .4byte gTasks
-_080C2A70:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080C2A88
- str r1, [r0]
-_080C2A80:
- add sp, 0x64
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2A88: .4byte sub_80C2A8C
- thumb_func_end sub_80C2878
-
- thumb_func_start sub_80C2A8C
-sub_80C2A8C: @ 80C2A8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C2ABC
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080C2AB2
- b _080C2D04
-_080C2AB2:
- lsls r0, 2
- ldr r1, _080C2AC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C2ABC: .4byte gTasks
-_080C2AC0: .4byte _080C2AC4
- .align 2, 0
-_080C2AC4:
- .4byte _080C2ADC
- .4byte _080C2C04
- .4byte _080C2C54
- .4byte _080C2C64
- .4byte _080C2CA8
- .4byte _080C2CE8
-_080C2ADC:
- ldr r1, _080C2BC4
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2BC8
- ldr r3, _080C2BCC
- adds r0, r3, 0
- strh r0, [r1]
- movs r1, 0
- ldr r3, _080C2BD0
- ldrb r0, [r3]
- lsls r4, r7, 2
- mov r10, r4
- ldr r2, _080C2BD4
- ldr r5, _080C2BD8
- mov r12, r5
- ldr r4, _080C2BDC
- mov r8, r4
- ldr r5, _080C2BE0
- mov r9, r5
- cmp r0, 0
- beq _080C2B14
-_080C2B06:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080C2B14
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2B06
-_080C2B14:
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r4, [r0]
- adds r0, r2, 0
- adds r0, 0x3C
- adds r1, r0
- ldr r1, [r1]
- str r1, [sp, 0xC]
- lsls r0, r6, 3
- add r0, r12
- lsls r2, r6, 2
- add r2, r8
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- mov r5, r9
- ldr r3, [r5, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r3, _080C2BE4
- bl sub_800D334
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- adds r2, r4, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C2BE8
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080C2BEC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- strh r6, [r3, 0x30]
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- strb r1, [r3, 0x5]
- adds r5, 0x1C
- adds r2, r5
- ldr r1, _080C2BF0
- str r1, [r2]
- ldr r2, _080C2BE4
- movs r3, 0xC0
- lsls r3, 9
- adds r1, r2, r3
- strb r0, [r1, 0x8]
- ldr r0, _080C2BF4
- bl LoadCompressedObjectPic
- ldr r0, _080C2BF8
- bl LoadCompressedObjectPalette
- ldr r0, _080C2BFC
- movs r1, 0xA
- bl CreateTask
- ldr r0, _080C2C00
- mov r4, r10
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2BC4: .4byte gUnknown_030042C4
-_080C2BC8: .4byte gUnknown_03004240
-_080C2BCC: .4byte 0x00005050
-_080C2BD0: .4byte gUnknown_02038690
-_080C2BD4: .4byte gUnknown_02038570
-_080C2BD8: .4byte gMonFrontPicTable
-_080C2BDC: .4byte gMonFrontPicCoords
-_080C2BE0: .4byte gUnknown_081FAF4C
-_080C2BE4: .4byte 0x02000000
-_080C2BE8: .4byte gUnknown_02024E8C
-_080C2BEC: .4byte gSprites
-_080C2BF0: .4byte sub_80C3C44
-_080C2BF4: .4byte gUnknown_083D17CC
-_080C2BF8: .4byte gUnknown_083D17D4
-_080C2BFC: .4byte sub_80C3D04
-_080C2C00: .4byte gTasks
-_080C2C04:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080C2D04
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080C2C30
- movs r0, 0x20
- strh r0, [r4, 0xC]
-_080C2C30:
- ldrb r2, [r4, 0xC]
- ldr r3, _080C2C50
- movs r0, 0x50
- subs r0, r2
- lsls r0, 8
- adds r1, r2, 0
- adds r1, 0x50
- orrs r0, r1
- strh r0, [r3]
- cmp r2, 0x20
- bne _080C2D04
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C50: .4byte gUnknown_03004240
-_080C2C54:
- ldr r0, _080C2C60
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _080C2D04
- b _080C2CD0
- .align 2, 0
-_080C2C60: .4byte 0x02018000
-_080C2C64:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r4
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x79
- bne _080C2D04
- movs r0, 0
- strh r0, [r3, 0xA]
- ldr r2, _080C2C9C
- ldr r0, _080C2CA0
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080C2CA4
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C9C: .4byte gSprites
-_080C2CA0: .4byte 0x02018000
-_080C2CA4: .4byte sub_80C3CB8
-_080C2CA8:
- ldr r0, _080C2CE0
- ldrb r0, [r0, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- ldr r3, _080C2CE4
- ldrh r0, [r3]
- lsrs r2, r0, 8
- adds r0, r2, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x50
- bls _080C2CC2
- movs r2, 0x50
-_080C2CC2:
- lsls r1, r2, 8
- movs r0, 0xA0
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
- cmp r2, 0x50
- bne _080C2D04
-_080C2CD0:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2CE0: .4byte 0x02018000
-_080C2CE4: .4byte gUnknown_03004240
-_080C2CE8:
- ldr r2, _080C2D14
- ldrb r0, [r2, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x9]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- strh r1, [r0, 0x8]
- ldr r1, _080C2D18
- str r1, [r0]
-_080C2D04:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D14: .4byte 0x02018000
-_080C2D18: .4byte sub_80C2D1C
- thumb_func_end sub_80C2A8C
-
- thumb_func_start sub_80C2D1C
-sub_80C2D1C: @ 80C2D1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080C2D6C
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C2D66
- ldr r0, _080C2D70
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r6, r7, 2
- cmp r0, 0
- bne _080C2D5A
- ldr r5, _080C2D74
- movs r4, 0x3
-_080C2D42:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bge _080C2D42
-_080C2D5A:
- ldr r0, _080C2D78
- adds r1, r6, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2D7C
- str r0, [r1]
-_080C2D66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D6C: .4byte gMain
-_080C2D70: .4byte gUnknown_0203869A
-_080C2D74: .4byte gUnknown_02038570
-_080C2D78: .4byte gTasks
-_080C2D7C: .4byte sub_80C2D80
- thumb_func_end sub_80C2D1C
-
- thumb_func_start sub_80C2D80
-sub_80C2D80: @ 80C2D80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2DAC
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2DBC
- ldr r0, _080C2DB0
- bl sub_80C3698
- bl sub_800832C
- ldr r1, _080C2DB4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2DB8
- str r1, [r0]
- b _080C2DCA
- .align 2, 0
-_080C2DAC: .4byte gUnknown_0203869A
-_080C2DB0: .4byte gOtherText_LinkStandby
-_080C2DB4: .4byte gTasks
-_080C2DB8: .4byte sub_80C2DD8
-_080C2DBC:
- ldr r0, _080C2DD0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2DD4
- str r0, [r1]
-_080C2DCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2DD0: .4byte gTasks
-_080C2DD4: .4byte sub_80C2E14
- thumb_func_end sub_80C2D80
-
- thumb_func_start sub_80C2DD8
-sub_80C2DD8: @ 80C2DD8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2E04
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C2DFC
- ldr r0, _080C2E08
- strb r1, [r0]
- bl sub_80C3764
- ldr r1, _080C2E0C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E10
- str r1, [r0]
-_080C2DFC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gUnknown_0203869A
-_080C2E0C: .4byte gTasks
-_080C2E10: .4byte sub_80C2E14
- thumb_func_end sub_80C2DD8
-
- thumb_func_start sub_80C2E14
-sub_80C2E14: @ 80C2E14
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080C2E80
- ldr r0, _080C2E84
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80BE284
- movs r0, 0x2
- bl sub_810FB10
- ldr r0, _080C2E88
- ldrb r0, [r0]
- bl sub_80B2A7C
- movs r0, 0xFE
- bl sub_80B2A7C
- ldr r4, _080C2E8C
- ldr r0, _080C2E90
- adds r1, r4, r0
- movs r6, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C2E94
- adds r4, r1
- strb r0, [r4]
- str r6, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _080C2E98
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E9C
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E80: .4byte gUnknown_02038690
-_080C2E84: .4byte gUnknown_02038695
-_080C2E88: .4byte gUnknown_0203869E
-_080C2E8C: .4byte 0x02000000
-_080C2E90: .4byte 0x00015ddf
-_080C2E94: .4byte 0x00015dde
-_080C2E98: .4byte gTasks
-_080C2E9C: .4byte sub_80C2EA0
- thumb_func_end sub_80C2E14
-
- thumb_func_start sub_80C2EA0
-sub_80C2EA0: @ 80C2EA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- ldr r0, _080C2ED8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080C2F18
- ldr r1, _080C2EDC
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C2EE8
- ldr r0, _080C2EE0
- ldrb r0, [r0, 0x3]
- bl DestroyTask
- ldr r0, _080C2EE4
- b _080C2EEE
- .align 2, 0
-_080C2ED8: .4byte gPaletteFade
-_080C2EDC: .4byte gTasks
-_080C2EE0: .4byte 0x02018000
-_080C2EE4: .4byte 0x0000ffff
-_080C2EE8:
- cmp r0, 0x1
- bne _080C2F04
- ldr r0, _080C2F00
-_080C2EEE:
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080C2F18
- .align 2, 0
-_080C2F00: .4byte 0xffff0000
-_080C2F04:
- ldr r0, _080C2F20
- strh r3, [r0]
- adds r0, 0x4
- strh r3, [r0]
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _080C2F24
- bl SetMainCallback2
-_080C2F18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F20: .4byte REG_BLDCNT
-_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C2EA0
-
- thumb_func_start sub_80C2F28
-sub_80C2F28: @ 80C2F28
- push {r4,r5,lr}
- ldr r2, _080C2F5C
- ldrh r3, [r2]
- adds r0, r3, 0x2
- strh r0, [r2]
- ldr r4, _080C2F60
- ldrh r5, [r4]
- adds r1, r5, 0x1
- strh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F48
- adds r0, r3, 0
- subs r0, 0xFD
- strh r0, [r2]
-_080C2F48:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F56
- adds r0, r5, 0
- subs r0, 0xFE
- strh r0, [r4]
-_080C2F56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F5C: .4byte gUnknown_030041B0
-_080C2F60: .4byte gUnknown_030041B8
- thumb_func_end sub_80C2F28
-
- thumb_func_start sub_80C2F64
-sub_80C2F64: @ 80C2F64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C2F94
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080C2FE6
- movs r0, 0
- strh r0, [r2, 0x8]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080C2F98
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- b _080C2F9C
- .align 2, 0
-_080C2F94: .4byte gTasks
-_080C2F98:
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
-_080C2F9C:
- strh r0, [r2, 0xA]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- bne _080C2FB2
- movs r0, 0x1
- b _080C2FB6
-_080C2FB2:
- cmp r0, 0
- bne _080C2FB8
-_080C2FB6:
- strh r0, [r1, 0xC]
-_080C2FB8:
- ldr r0, _080C3000
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3004
- movs r0, 0x6B
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3008
- movs r0, 0x68
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C300C
- movs r0, 0x6E
- movs r1, 0x1
- bl BlendPalette
-_080C2FE6:
- ldr r1, _080C3000
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r4, [r0, r3]
- cmp r4, 0
- bne _080C3014
- ldr r0, _080C3010
- strb r4, [r0, 0xA]
- b _080C301A
- .align 2, 0
-_080C3000: .4byte gTasks
-_080C3004: .4byte 0x00002ede
-_080C3008: .4byte 0x00007fff
-_080C300C: .4byte 0x000077be
-_080C3010: .4byte 0x02018000
-_080C3014:
- ldr r1, _080C3020
- movs r0, 0x1
- strb r0, [r1, 0xA]
-_080C301A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3020: .4byte 0x02018000
- thumb_func_end sub_80C2F64
-
- thumb_func_start sub_80C3024
-sub_80C3024: @ 80C3024
- push {r4-r6,lr}
- ldr r6, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- cmp r3, 0
- beq _080C30B0
- adds r1, r6, 0
- bl sub_809D4F4
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30A0
- adds r1, r2
- ldr r2, _080C30A4
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080C30A8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, r4, 0
- adds r1, 0xA
- lsls r1, 28
- lsls r0, r4, 20
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- orrs r0, r1
- lsrs r1, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 21
- movs r2, 0x83
- lsls r2, 16
- adds r0, r2
- lsrs r5, r0, 16
- movs r2, 0
- ldr r6, _080C30AC
-_080C307C:
- lsls r0, r2, 5
- adds r4, r2, 0x1
- adds r0, r5
- movs r3, 0x3
- lsls r0, 1
- adds r2, r0, r6
-_080C3088:
- strh r1, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3088
- adds r2, r4, 0
- cmp r2, 0x2
- ble _080C307C
- b _080C30CA
- .align 2, 0
-_080C30A0: .4byte 0x06004000
-_080C30A4: .4byte 0x040000d4
-_080C30A8: .4byte 0x84000060
-_080C30AC: .4byte 0x0600c000
-_080C30B0:
- adds r1, r6, 0
- bl sub_809D4F4
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30D0
- adds r1, r2
- movs r2, 0xC0
- lsls r2, 1
- bl RequestSpriteCopy
-_080C30CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C30D0: .4byte 0x06004000
- thumb_func_end sub_80C3024
-
- thumb_func_start sub_80C30D4
-sub_80C30D4: @ 80C30D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r5, 0
- ldr r4, _080C3108
-_080C30E4:
- ldrh r0, [r4]
- lsls r1, r5, 24
- lsrs r1, 24
- ldr r2, [r4, 0x38]
- str r2, [sp]
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_80C3024
- adds r4, 0x40
- adds r5, 0x1
- cmp r5, 0x3
- ble _080C30E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3108: .4byte gUnknown_02038570
- thumb_func_end sub_80C30D4
-
- thumb_func_start sub_80C310C
-sub_80C310C: @ 80C310C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080C314C
- movs r5, 0xA0
- lsls r5, 16
-_080C3116:
- ldr r1, _080C3150
- lsls r0, r4, 6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080C3154
- adds r0, r1
- lsrs r1, r5, 16
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 13
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C3116
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C314C: .4byte gMonIconPaletteIndices
-_080C3150: .4byte gUnknown_02038570
-_080C3154: .4byte gMonIconPalettes
- thumb_func_end sub_80C310C
-
- thumb_func_start sub_80C3158
-sub_80C3158: @ 80C3158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r3, _080C32C0
- adds r2, r3
- mov r1, sp
- ldrh r0, [r2, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1]
- mov r4, sp
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x2]
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x4]
- movs r0, 0x32
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x6]
- ldr r1, _080C32C4
- mov r8, r1
- ldr r7, _080C32C8
- ldr r2, _080C32CC
- ldr r6, _080C32D0
- mov r1, sp
- movs r5, 0
- add r3, sp, 0x8
- movs r4, 0x3
-_080C31CE:
- ldrh r0, [r1]
- lsls r0, 5
- adds r0, r7
- str r5, [sp, 0x8]
- str r3, [r2]
- str r0, [r2, 0x4]
- str r6, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080C31CE
- mov r0, r8
- mov r1, r9
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080C32D4
- ldr r1, _080C32D8
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- mvns r0, r5
- adds r1, r0, 0x1
- movs r0, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080C3218
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- lsrs r0, r1, 1
- strb r0, [r2, 0x2]
- adds r2, 0x3
-_080C3218:
- adds r6, r5, 0x7
- movs r1, 0x8
- negs r1, r1
- adds r0, r1, 0
- ands r6, r0
- lsls r6, 24
- lsrs r5, r6, 24
- adds r0, r2, 0
- mov r1, r9
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- strb r5, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080C32DC
- mov r10, r0
- ldr r1, _080C32D4
- bl sub_80034D4
- mov r0, sp
- ldrh r4, [r0]
- lsls r4, 5
- ldr r1, _080C32C8
- adds r7, r4, r1
- ldr r0, _080C32E0
- mov r9, r0
- ldr r1, _080C32E4
- mov r8, r1
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- mov r5, r9
- adds r5, 0x80
- ldr r0, _080C32E8
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- ldr r0, _080C32EC
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- mov r0, r9
- adds r0, 0x40
- ldr r1, _080C32F0
- adds r4, r1
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- lsrs r5, r6, 27
- movs r4, 0
- cmp r4, r5
- bgt _080C3382
- mov r6, sp
- mov r0, r10
- adds r0, 0x20
- str r0, [sp, 0xC]
- mov r1, r10
- str r1, [sp, 0x10]
- ldr r0, _080C32F4
- str r0, [sp, 0x14]
- ldr r1, _080C32F8
- str r1, [sp, 0x18]
- ldr r0, _080C32FC
- mov r10, r0
- ldr r1, _080C3300
- mov r9, r1
-_080C32B2:
- cmp r4, 0x6
- bgt _080C3304
- ldrh r0, [r6]
- lsls r0, 5
- mov r1, r9
- b _080C3322
- .align 2, 0
-_080C32C0: .4byte gSprites
-_080C32C4: .4byte gWindowConfig_81E7278
-_080C32C8: .4byte 0x06010000
-_080C32CC: .4byte 0x040000d4
-_080C32D0: .4byte 0x85000100
-_080C32D4: .4byte gUnknown_020238CC
-_080C32D8: .4byte gUnknown_083D17E2
-_080C32DC: .4byte 0x02018068
-_080C32E0: .4byte gUnknown_083D1624
-_080C32E4: .4byte REG_BG0CNT
-_080C32E8: .4byte 0x06010100
-_080C32EC: .4byte 0x06010200
-_080C32F0: .4byte 0x06010300
-_080C32F4: .4byte 0x0600fd20
-_080C32F8: .4byte 0x0600fe20
-_080C32FC: .4byte 0x0600ff20
-_080C3300: .4byte 0x06010020
-_080C3304:
- cmp r4, 0xE
- bgt _080C3310
- ldrh r0, [r6, 0x2]
- lsls r0, 5
- mov r1, r10
- b _080C3322
-_080C3310:
- cmp r4, 0x16
- bgt _080C331C
- ldrh r0, [r6, 0x4]
- lsls r0, 5
- ldr r1, [sp, 0x18]
- b _080C3322
-_080C331C:
- ldrh r0, [r6, 0x6]
- lsls r0, 5
- ldr r1, [sp, 0x14]
-_080C3322:
- adds r7, r0, r1
- cmp r4, r5
- beq _080C3382
- ldr r0, _080C33D0
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, _080C33D0
- adds r0, 0x20
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- ldr r0, [sp, 0x10]
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, [sp, 0xC]
- mov r2, r8
- bl CpuSet
- ldr r1, [sp, 0xC]
- adds r1, 0x40
- str r1, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r0, 0x40
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- adds r1, 0x20
- str r1, [sp, 0x14]
- ldr r0, [sp, 0x18]
- adds r0, 0x20
- str r0, [sp, 0x18]
- movs r1, 0x20
- add r10, r1
- add r9, r1
- adds r4, 0x1
- cmp r4, r5
- ble _080C32B2
-_080C3382:
- ldr r4, _080C33D4
- ldr r5, _080C33D8
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl CpuSet
- adds r6, r4, 0
- adds r6, 0x80
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- adds r4, 0x40
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C33D0: .4byte gUnknown_083D16E4
-_080C33D4: .4byte gUnknown_083D1644
-_080C33D8: .4byte REG_BG0CNT
- thumb_func_end sub_80C3158
-
- thumb_func_start sub_80C33DC
-sub_80C33DC: @ 80C33DC
- push {r4-r6,lr}
- sub sp, 0x20
- mov r1, sp
- ldr r0, _080C3498
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- add r5, sp, 0x18
- ldr r6, _080C349C
- movs r4, 0x7
-_080C33F2:
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r6, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _080C33F2
- ldr r0, _080C34A0
- bl LoadSpritePalette
- movs r4, 0
- mov r6, sp
-_080C340A:
- mov r0, sp
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- adds r1, r5, r4
- strb r0, [r1]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- adds r4, 0x1
- cmp r4, 0x7
- ble _080C340A
- ldr r2, _080C34A4
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x1]
- movs r3, 0
- strh r1, [r0, 0x2E]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x2]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x3]
- strh r1, [r0, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x5]
- strh r1, [r0, 0x2E]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x6]
- strh r1, [r0, 0x30]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x7]
- strh r1, [r0, 0x32]
- ldr r1, _080C34A8
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r1, 0x4]
- ldrb r0, [r5, 0x4]
- strb r0, [r1, 0x1]
- bl sub_80C3764
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3498: .4byte gSpriteTemplate_83D174C
-_080C349C: .4byte gUnknown_083D1764
-_080C34A0: .4byte gUnknown_083D17A4
-_080C34A4: .4byte gSprites
-_080C34A8: .4byte 0x02018000
- thumb_func_end sub_80C33DC
-
- thumb_func_start sub_80C34AC
-sub_80C34AC: @ 80C34AC
- push {lr}
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 25
- lsrs r1, 25
- movs r0, 0x70
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80C34AC
-
- thumb_func_start sub_80C34CC
-sub_80C34CC: @ 80C34CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _080C3514
- mov r8, r4
- ldrb r5, [r4]
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r5, _080C3518
- adds r4, r5
- movs r6, 0
- movs r5, 0x88
- lsls r5, 1
- strh r5, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r6, [r4, 0x24]
- strh r6, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x20
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- strh r3, [r4, 0x3A]
- strh r6, [r4, 0x3C]
- ldr r0, _080C351C
- str r0, [r4, 0x1C]
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1, 0x4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3514: .4byte 0x02018000
-_080C3518: .4byte gSprites
-_080C351C: .4byte sub_80C3588
- thumb_func_end sub_80C34CC
-
- thumb_func_start sub_80C3520
-sub_80C3520: @ 80C3520
- push {r4,r5,lr}
- ldr r4, _080C3558
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _080C355C
- adds r1, r2
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- movs r3, 0
- strh r2, [r1, 0x20]
- ldrh r2, [r1, 0x26]
- ldrh r5, [r1, 0x22]
- adds r2, r5
- strh r2, [r1, 0x22]
- strh r3, [r1, 0x26]
- strh r3, [r1, 0x24]
- strh r0, [r1, 0x3A]
- strh r3, [r1, 0x3C]
- ldr r0, _080C3560
- str r0, [r1, 0x1C]
- movs r0, 0x3
- strb r0, [r4, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3558: .4byte 0x02018000
-_080C355C: .4byte gSprites
-_080C3560: .4byte sub_80C3630
- thumb_func_end sub_80C3520
-
- thumb_func_start sub_80C3564
-sub_80C3564: @ 80C3564
- movs r3, 0
- movs r2, 0
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r1, 0x90
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x26]
- strh r2, [r0, 0x24]
- ldr r1, _080C3580
- str r1, [r0, 0x1C]
- ldr r0, _080C3584
- strb r3, [r0, 0x4]
- bx lr
- .align 2, 0
-_080C3580: .4byte SpriteCallbackDummy
-_080C3584: .4byte 0x02018000
- thumb_func_end sub_80C3564
-
- thumb_func_start sub_80C3588
-sub_80C3588: @ 80C3588
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x3C]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r3, 0x36]
- movs r4, 0x36
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _080C35B2
- strh r2, [r3, 0x20]
-_080C35B2:
- movs r4, 0
- ldr r6, _080C35F4
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C35BC:
- movs r7, 0
- ldrsh r0, [r2, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C35BC
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bne _080C35EC
- ldr r0, _080C35F8
- str r0, [r3, 0x1C]
-_080C35EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C35F4: .4byte gSprites
-_080C35F8: .4byte sub_80C35FC
- thumb_func_end sub_80C3588
-
- thumb_func_start sub_80C35FC
-sub_80C35FC: @ 80C35FC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080C3628
- movs r1, 0x2
- strb r1, [r0, 0x4]
- ldrh r3, [r2, 0x38]
- ldr r1, _080C362C
- lsrs r0, r1, 16
- cmp r3, r0
- beq _080C3624
- subs r0, r3, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- asrs r1, 16
- cmp r0, r1
- bne _080C3624
- ldrh r0, [r2, 0x3A]
- bl sub_80C3520
-_080C3624:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3628: .4byte 0x02018000
-_080C362C: .4byte 0xffff0000
- thumb_func_end sub_80C35FC
-
- thumb_func_start sub_80C3630
-sub_80C3630: @ 80C3630
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x3C]
- movs r4, 0
- ldr r6, _080C3694
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C3654:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C3654
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- adds r0, r1
- movs r1, 0xE0
- negs r1, r1
- cmp r0, r1
- bge _080C368C
- adds r0, r3, 0
- bl sub_80C3564
-_080C368C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3694: .4byte gSprites
- thumb_func_end sub_80C3630
-
- thumb_func_start sub_80C3698
-sub_80C3698: @ 80C3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080C374C
- ldrb r1, [r5, 0x1]
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r3, _080C3750
- adds r4, r1, r3
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x50
- strh r0, [r4, 0x22]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r5]
- movs r5, 0
- adds r6, r3, 0
- mov r12, r2
- movs r3, 0x40
-_080C36DA:
- lsls r0, r5, 1
- adds r2, r4, 0
- adds r2, 0x2E
- adds r2, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r4, 0x24]
- ldrh r7, [r4, 0x20]
- adds r0, r7
- adds r0, r3
- strh r0, [r1, 0x20]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x22]
- strh r1, [r0, 0x22]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- adds r3, 0x40
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C36DA
- ldr r1, _080C3754
- movs r0, 0xF0
- strh r0, [r1]
- ldr r2, _080C3758
- ldrh r1, [r4, 0x22]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 8
- adds r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080C375C
- ldr r2, _080C3760
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C374C: .4byte 0x02018000
-_080C3750: .4byte gSprites
-_080C3754: .4byte gUnknown_030042C4
-_080C3758: .4byte gUnknown_03004240
-_080C375C: .4byte REG_WININ
-_080C3760: .4byte 0x00003f3e
- thumb_func_end sub_80C3698
-
- thumb_func_start sub_80C3764
-sub_80C3764: @ 80C3764
- push {r4-r7,lr}
- ldr r0, _080C37C8
- ldrb r0, [r0, 0x1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r3, _080C37CC
- adds r2, r3
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r7, _080C37D0
- ldr r6, _080C37D4
- adds r5, r3, 0
- movs r4, 0x4
- adds r2, 0x2E
- movs r3, 0x2
-_080C3790:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3790
- movs r1, 0
- strh r1, [r7]
- strh r1, [r6]
- ldr r0, _080C37D8
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080C37DC
- ldr r2, _080C37E0
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C37C8: .4byte 0x02018000
-_080C37CC: .4byte gSprites
-_080C37D0: .4byte gUnknown_030042C4
-_080C37D4: .4byte gUnknown_03004240
-_080C37D8: .4byte REG_WIN0H
-_080C37DC: .4byte REG_WININ
-_080C37E0: .4byte 0x00003f3f
- thumb_func_end sub_80C3764
-
- thumb_func_start sub_80C37E4
-sub_80C37E4: @ 80C37E4
- push {r4-r6,lr}
- sub sp, 0x10
- movs r5, 0x1
- movs r4, 0
- ldr r0, _080C3808
- ldrb r0, [r0]
- adds r1, r5, 0
- ands r1, r0
- cmp r1, 0
- beq _080C3814
- ldr r0, _080C380C
- ldr r3, _080C3810
- movs r1, 0x9
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- b _080C386A
- .align 2, 0
-_080C3808: .4byte gUnknown_0203869A
-_080C380C: .4byte 0x0600e000
-_080C3810: .4byte gUnknown_08E964B8
-_080C3814:
- ldr r0, _080C3830
- ldrh r2, [r0]
- cmp r2, 0
- bne _080C383C
- movs r4, 0x1
- ldr r0, _080C3834
- ldr r3, _080C3838
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _080C3870
- .align 2, 0
-_080C3830: .4byte gUnknown_0203869E
-_080C3834: .4byte 0x0600e000
-_080C3838: .4byte gUnknown_08E964B8
-_080C383C:
- cmp r2, 0x1
- bne _080C385C
- ldr r0, _080C3854
- ldr r3, _080C3858
- movs r1, 0x9
- str r1, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _080C3870
- .align 2, 0
-_080C3854: .4byte 0x0600e000
-_080C3858: .4byte gUnknown_08E964B8
-_080C385C:
- cmp r2, 0x2
- bne _080C3884
- ldr r0, _080C387C
- ldr r3, _080C3880
- movs r1, 0x11
- str r1, [sp]
- str r4, [sp, 0x4]
-_080C386A:
- movs r1, 0x8
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
-_080C3870:
- movs r1, 0x5
- movs r2, 0x1
- bl sub_809D104
- b _080C389E
- .align 2, 0
-_080C387C: .4byte 0x0600e000
-_080C3880: .4byte gUnknown_08E964B8
-_080C3884:
- movs r4, 0x1
- ldr r0, _080C38C0
- ldr r3, _080C38C4
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x5
- movs r2, 0x1
- bl sub_809D104
-_080C389E:
- adds r4, 0xD
- ldr r0, _080C38C8
- ldrh r0, [r0]
- cmp r0, 0
- bne _080C38CC
- movs r6, 0
- ldr r0, _080C38C0
- ldr r3, _080C38C4
- movs r1, 0x11
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- b _080C392A
- .align 2, 0
-_080C38C0: .4byte 0x0600e000
-_080C38C4: .4byte gUnknown_08E964B8
-_080C38C8: .4byte gUnknown_0203869C
-_080C38CC:
- cmp r0, 0x1
- bne _080C38EC
- movs r6, 0x1
- ldr r0, _080C38E4
- ldr r3, _080C38E8
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xB
- b _080C3924
- .align 2, 0
-_080C38E4: .4byte 0x0600e000
-_080C38E8: .4byte gUnknown_08E964B8
-_080C38EC:
- cmp r0, 0x2
- bne _080C3910
- movs r6, 0x2
- ldr r0, _080C3908
- ldr r3, _080C390C
- movs r1, 0xB
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- b _080C392A
- .align 2, 0
-_080C3908: .4byte 0x0600e000
-_080C390C: .4byte gUnknown_08E964B8
-_080C3910:
- cmp r0, 0x3
- bne _080C393C
- movs r6, 0x3
- ldr r0, _080C3934
- ldr r3, _080C3938
- movs r1, 0x15
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xA
-_080C3924:
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
-_080C392A:
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809D104
- b _080C395A
- .align 2, 0
-_080C3934: .4byte 0x0600e000
-_080C3938: .4byte gUnknown_08E964B8
-_080C393C:
- movs r6, 0x4
- ldr r0, _080C3984
- ldr r3, _080C3988
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809D104
-_080C395A:
- ldr r5, _080C398C
- lsls r4, r6, 12
- ldr r2, _080C3984
- movs r3, 0x7F
-_080C3962:
- ldrh r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r2]
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3962
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3984: .4byte 0x0600e000
-_080C3988: .4byte gUnknown_08E964B8
-_080C398C: .4byte 0x00000fff
- thumb_func_end sub_80C37E4
-
- thumb_func_start sub_80C3990
-sub_80C3990: @ 80C3990
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _080C39DC
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x3F
- bl __udivsi3
- adds r1, r0, 0
- ldr r0, _080C39E0
- ands r0, r1
- cmp r0, 0
- beq _080C39BC
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
-_080C39BC:
- lsrs r1, 16
- cmp r1, 0
- bne _080C39C8
- cmp r4, 0
- beq _080C39C8
- movs r1, 0x1
-_080C39C8:
- cmp r5, 0
- beq _080C39D2
- cmp r1, 0xA
- bls _080C39D2
- movs r1, 0xA
-_080C39D2:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C39DC: .4byte gUnknown_02038670
-_080C39E0: .4byte 0x0000ffff
- thumb_func_end sub_80C3990
-
- thumb_func_start sub_80C39E4
-sub_80C39E4: @ 80C39E4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080C3A44
- lsls r0, r5, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bge _080C3A00
- negs r0, r0
-_080C3A00:
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x50
- bl __udivsi3
- adds r2, r0, 0
- ldr r0, _080C3A48
- ands r0, r2
- cmp r0, 0
- beq _080C3A1A
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
-_080C3A1A:
- lsrs r2, 16
- cmp r2, 0
- bne _080C3A26
- cmp r4, 0
- beq _080C3A26
- movs r2, 0x1
-_080C3A26:
- cmp r6, 0
- beq _080C3A30
- cmp r2, 0xA
- bls _080C3A30
- movs r2, 0xA
-_080C3A30:
- lsls r0, r5, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080C3A4C
- negs r0, r2
- lsls r0, 24
- b _080C3A4E
- .align 2, 0
-_080C3A44: .4byte gUnknown_02038688
-_080C3A48: .4byte 0x0000ffff
-_080C3A4C:
- lsls r0, r2, 24
-_080C3A4E:
- lsrs r0, 24
- lsls r0, 24
- asrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C39E4
-
- thumb_func_start sub_80C3A5C
-sub_80C3A5C: @ 80C3A5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _080C3A90
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0x1C]
- movs r1, 0x1C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C3A94
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- movs r1, 0x3
- subs r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- strh r0, [r3, 0x1E]
- adds r0, r2, 0x1
- strh r0, [r3, 0x1C]
- b _080C3B12
- .align 2, 0
-_080C3A90: .4byte gTasks
-_080C3A94:
- cmp r0, 0x1
- bne _080C3B12
- ldrh r0, [r3, 0x1E]
- subs r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080C3B12
- movs r0, 0x8
- ldrsh r2, [r3, r0]
- lsls r2, 17
- ldr r1, _080C3B18
- adds r2, r1
- lsrs r2, 16
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B1C
- adds r0, r1
- strh r2, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B20
- adds r0, r1
- adds r1, r2, 0x1
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B24
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x10
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B28
- adds r0, r1
- adds r2, 0x11
- strh r2, [r0]
- ldr r1, _080C3B2C
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0x18
- bl PlaySE
-_080C3B12:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3B18: .4byte 0x50430000
-_080C3B1C: .4byte 0x0600e142
-_080C3B20: .4byte 0x0600e144
-_080C3B24: .4byte 0x0600e182
-_080C3B28: .4byte 0x0600e184
-_080C3B2C: .4byte 0x02018000
- thumb_func_end sub_80C3A5C
-
- thumb_func_start sub_80C3B30
-sub_80C3B30: @ 80C3B30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r5, 0
- ldr r1, _080C3BC0
- ldrb r0, [r1]
- ldr r2, _080C3BC4
- mov r10, r2
- cmp r0, 0
- beq _080C3B5C
-_080C3B4E:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _080C3B5C
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C3B4E
-_080C3B5C:
- movs r1, 0
- lsls r0, r5, 1
- mov r2, r12
- lsls r2, 2
- mov r9, r2
- adds r0, r5
- lsls r0, 5
- mov r8, r0
- ldr r7, _080C3BC8
- movs r0, 0x90
- lsls r0, 8
- adds r6, r0, 0
-_080C3B74:
- lsls r0, r1, 5
- adds r4, r1, 0x1
- add r0, r8
- movs r3, 0x1D
- lsls r0, 1
- ldr r1, _080C3BCC
- adds r2, r0, r1
-_080C3B82:
- ldrh r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3B82
- adds r1, r4, 0
- cmp r1, 0x2
- ble _080C3B74
- mov r0, r9
- add r0, r12
- lsls r0, 3
- add r0, r10
- strh r5, [r0, 0x1C]
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r2, _080C3BD0
- str r2, [r0]
- mov r1, r12
- ldr r0, _080C3BD4
- strb r1, [r0, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3BC0: .4byte gUnknown_02038690
-_080C3BC4: .4byte gTasks
-_080C3BC8: .4byte 0x00000fff
-_080C3BCC: .4byte 0x0600e100
-_080C3BD0: .4byte sub_80C3BD8
-_080C3BD4: .4byte 0x02018000
- thumb_func_end sub_80C3B30
-
- thumb_func_start sub_80C3BD8
-sub_80C3BD8: @ 80C3BD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3C24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x1
- bne _080C3C3C
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r2, [r4, 0x20]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080C3C28
- movs r0, 0x91
- movs r1, 0x1
- bl BlendPalette
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C3C2C
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080C3C3C
- strh r5, [r4, 0x22]
- b _080C3C3C
- .align 2, 0
-_080C3C24: .4byte gTasks
-_080C3C28: .4byte 0x00006f8d
-_080C3C2C:
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080C3C3C
- strh r0, [r4, 0x22]
-_080C3C3C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3BD8
-
- thumb_func_start sub_80C3C44
-sub_80C3C44: @ 80C3C44
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080C3C6C
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080C3CA8
- ldrh r0, [r4, 0x30]
- movs r1, 0
- bl PlayCry1
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080C3CA8
-_080C3C6C:
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r1, [r4, 0x30]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- bgt _080C3C92
- movs r0, 0x78
- strh r0, [r4, 0x20]
-_080C3C92:
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- bne _080C3CA8
- ldr r0, _080C3CB0
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080C3CB4
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_080C3CA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CB0: .4byte SpriteCallbackDummy
-_080C3CB4: .4byte 0x02018000
- thumb_func_end sub_80C3C44
-
- thumb_func_start sub_80C3CB8
-sub_80C3CB8: @ 80C3CB8
- push {lr}
- adds r3, r0, 0
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r0, [r3, 0x30]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080C3CF8
- ldr r0, _080C3CFC
- str r0, [r3, 0x1C]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080C3D00
- movs r0, 0x2
- strb r0, [r1, 0x6]
-_080C3CF8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CFC: .4byte SpriteCallbackDummy
-_080C3D00: .4byte 0x02018000
- thumb_func_end sub_80C3CB8
-
- thumb_func_start sub_80C3D04
-sub_80C3D04: @ 80C3D04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C3DD8
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080C3DBE
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _080C3DDC
- mov r8, r0
- ldrb r0, [r0, 0x7]
- cmp r0, 0x27
- bhi _080C3DBE
- ldr r4, _080C3DE0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r1, r0, 0
- subs r1, 0x14
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x2C
- movs r3, 0x5
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- ldr r1, _080C3DE4
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r1
- lsls r0, 23
- lsrs r0, 23
- strh r0, [r5, 0x2E]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- adds r0, 0x10
- strh r0, [r5, 0x30]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xFF
- ands r0, r1
- adds r0, 0x30
- strh r0, [r5, 0x32]
- bl Random
- ldrh r6, [r5, 0x4]
- lsls r4, r6, 22
- lsrs r4, 22
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r4, r0
- ldr r1, _080C3DE8
- adds r0, r1, 0
- ands r4, r0
- ldr r0, _080C3DEC
- ands r0, r6
- orrs r0, r4
- strh r0, [r5, 0x4]
- mov r1, r8
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
-_080C3DBE:
- ldr r0, _080C3DDC
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080C3DCC
- adds r0, r7, 0
- bl DestroyTask
-_080C3DCC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3DD8: .4byte gTasks
-_080C3DDC: .4byte 0x02018000
-_080C3DE0: .4byte gSpriteTemplate_83D17B4
-_080C3DE4: .4byte gSprites
-_080C3DE8: .4byte 0x000003ff
-_080C3DEC: .4byte 0xfffffc00
- thumb_func_end sub_80C3D04
-
- thumb_func_start sub_80C3DF0
-sub_80C3DF0: @ 80C3DF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x32]
- ldrh r0, [r4, 0x36]
- adds r1, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x36]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldr r5, _080C3E5C
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- beq _080C3E3A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080C3E3A:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xF8
- bgt _080C3E4A
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x74
- ble _080C3E56
-_080C3E4A:
- adds r0, r4, 0
- bl DestroySprite
- ldrb r0, [r5, 0x7]
- subs r0, 0x1
- strb r0, [r5, 0x7]
-_080C3E56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E5C: .4byte 0x02018000
- thumb_func_end sub_80C3DF0
-
- thumb_func_start sub_80C3E60
-sub_80C3E60: @ 80C3E60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080C3E98
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3E9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- ldr r0, _080C3EA0
- lsls r4, 6
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r1, 0xC]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E98: .4byte sub_80C3EA4
-_080C3E9C: .4byte gTasks
-_080C3EA0: .4byte gUnknown_02038570
- thumb_func_end sub_80C3E60
-
- thumb_func_start sub_80C3EA4
-sub_80C3EA4: @ 80C3EA4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3EF8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrb r5, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080C3EEE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xC]
- ldrb r2, [r4, 0x1E]
- ldr r1, _080C3EFC
- lsls r3, r5, 6
- adds r1, 0x38
- adds r3, r1
- ldr r1, [r3]
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0
- bl sub_80C3024
- ldrh r0, [r4, 0x1E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x1E]
-_080C3EEE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3EF8: .4byte gTasks
-_080C3EFC: .4byte gUnknown_02038570
- thumb_func_end sub_80C3EA4
-
- thumb_func_start sub_80C3F00
-sub_80C3F00: @ 80C3F00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080C4098
- ldrh r2, [r0]
- adds r4, r0, 0
- adds r3, r4, 0x2
- movs r0, 0x2
- mov r8, r0
-_080C3F16:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- bge _080C3F24
- ldrh r2, [r3]
-_080C3F24:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r1, r8
- cmp r1, 0
- bge _080C3F16
- lsls r0, r2, 16
- mov r9, r0
- cmp r0, 0
- bge _080C3F62
- ldrh r2, [r4]
- adds r3, r4, 0x2
- movs r4, 0x2
- mov r8, r4
-_080C3F42:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- ble _080C3F50
- ldrh r2, [r3]
-_080C3F50:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- lsls r1, r2, 16
- mov r9, r1
- mov r4, r8
- cmp r4, 0
- bge _080C3F42
-_080C3F62:
- movs r5, 0
- mov r8, r5
- mov r10, r5
-_080C3F68:
- ldr r0, _080C409C
- mov r1, r8
- lsls r7, r1, 1
- adds r0, r7, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- mov r4, r9
- asrs r6, r4, 16
- adds r1, r6, 0
- cmp r6, 0
- bge _080C3F8A
- negs r1, r6
-_080C3F8A:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3F9C
- adds r4, 0xA
-_080C3F9C:
- ldr r0, _080C40A0
- mov r1, r10
- adds r5, r1, r0
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- ldr r0, _080C40A4
- adds r7, r0
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r1, 0
- bge _080C3FBA
- negs r1, r1
-_080C3FBA:
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r6, 0
- cmp r1, 0
- bge _080C3FCC
- negs r1, r1
-_080C3FCC:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3FDE
- adds r4, 0xA
-_080C3FDE:
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5, 0x4]
- movs r4, 0
- ldrsh r0, [r7, r4]
- cmp r0, 0
- bge _080C3FF4
- movs r0, 0x1
- strb r0, [r5, 0x10]
-_080C3FF4:
- ldr r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- movs r4, 0xFF
- ands r0, r4
- cmp r0, 0x7F
- bls _080C4016
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
-_080C4016:
- lsrs r0, r1, 8
- str r0, [r5, 0x8]
- ldr r1, [r5, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- ands r0, r4
- cmp r0, 0x7F
- bls _080C403A
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
-_080C403A:
- lsrs r0, r1, 8
- str r0, [r5, 0xC]
- mov r0, r8
- lsls r4, r0, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C3990
- strb r0, [r5, 0x11]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C39E4
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080C4060
- negs r0, r0
-_080C4060:
- strb r0, [r5, 0x12]
- ldr r0, _080C40A8
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C40B4
- ldr r4, [r5, 0x8]
- ldrh r2, [r5, 0x8]
- ldr r3, [r5, 0xC]
- ldrh r1, [r5, 0xC]
- ldrb r0, [r5, 0x10]
- cmp r0, 0
- beq _080C4080
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080C4080:
- lsls r0, r2, 16
- asrs r2, r0, 16
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r0, r2, r1
- cmp r0, 0x58
- bne _080C40B4
- cmp r1, 0
- ble _080C40AC
- subs r0, r3, 0x1
- str r0, [r5, 0xC]
- b _080C40B4
- .align 2, 0
-_080C4098: .4byte gUnknown_02038678
-_080C409C: .4byte gUnknown_02038670
-_080C40A0: .4byte 0x02018018
-_080C40A4: .4byte gUnknown_02038688
-_080C40A8: .4byte gUnknown_02038690
-_080C40AC:
- cmp r2, 0
- ble _080C40B4
- subs r0, r4, 0x1
- str r0, [r5, 0x8]
-_080C40B4:
- movs r1, 0x14
- add r10, r1
- movs r2, 0x1
- add r8, r2
- mov r4, r8
- cmp r4, 0x3
- bgt _080C40C4
- b _080C3F68
-_080C40C4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3F00
-
- thumb_func_start sub_80C40D4
-sub_80C40D4: @ 80C40D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- mov r10, r1
- movs r2, 0
- str r2, [sp]
- cmp r0, 0
- bne _080C4198
- mov r8, r2
- ldr r0, _080C417C
- subs r1, 0x18
- adds r1, r0
- mov r9, r1
- adds r4, r0, 0
- adds r4, 0x8
- movs r6, 0xA0
-_080C4102:
- ldrb r0, [r4, 0x9]
- cmp r7, r0
- bcs _080C416A
- adds r0, 0x13
- adds r0, r6, r0
- subs r0, r7
- lsls r0, 1
- ldr r2, _080C4180
- adds r0, r2
- ldr r2, _080C4184
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _080C4188
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r4]
- lsls r0, 16
- ldrb r1, [r4, 0x9]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C418C
- ands r0, r3
- ldr r1, _080C4190
- cmp r0, r1
- bls _080C4146
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_080C4146:
- ldr r1, _080C4194
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
- lsrs r1, r3, 16
- strh r1, [r0, 0xA]
- mov r2, r9
- ldrb r0, [r2, 0x14]
- adds r0, 0x1
- strb r0, [r2, 0x14]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C416A:
- adds r4, 0x14
- adds r6, 0x60
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _080C4102
- b _080C4292
- .align 2, 0
-_080C417C: .4byte 0x02018018
-_080C4180: .4byte 0x0600bffe
-_080C4184: .4byte 0x000060b3
-_080C4188: .4byte sub_80C42C0
-_080C418C: .4byte 0x0000ffff
-_080C4190: .4byte 0x00007fff
-_080C4194: .4byte gTasks
-_080C4198:
- movs r2, 0
- mov r8, r2
- ldr r0, _080C4220
- mov r12, r0
- mov r9, r2
- movs r1, 0xC0
- str r1, [sp, 0x4]
-_080C41A6:
- mov r6, r9
- add r6, r12
- ldrb r1, [r6, 0x12]
- ldrb r0, [r6, 0x10]
- ldr r2, _080C4224
- cmp r0, 0
- beq _080C41B6
- adds r2, 0x2
-_080C41B6:
- lsls r0, r1, 24
- asrs r0, 24
- cmp r7, r0
- bge _080C427E
- adds r0, 0x13
- ldr r1, [sp, 0x4]
- adds r0, r1, r0
- subs r0, r7
- lsls r0, 1
- ldr r1, _080C4228
- adds r0, r1
- strh r2, [r0]
- ldr r0, _080C422C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r6, 0xC]
- lsls r0, 16
- ldrb r1, [r6, 0x12]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C4230
- ands r0, r3
- ldr r1, _080C4234
- cmp r0, r1
- bls _080C41FA
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2
-_080C41FA:
- ldr r1, _080C4238
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r1
- mov r0, r8
- strh r0, [r4, 0x8]
- ldrb r0, [r6, 0x10]
- adds r6, r1, 0
- cmp r0, 0
- beq _080C423C
- movs r0, 0x1
- strh r0, [r4, 0xC]
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- b _080C4246
- .align 2, 0
-_080C4220: .4byte 0x02018018
-_080C4224: .4byte 0x000060a3
-_080C4228: .4byte 0x0600bffe
-_080C422C: .4byte sub_80C42C0
-_080C4230: .4byte 0x0000ffff
-_080C4234: .4byte 0x00007fff
-_080C4238: .4byte gTasks
-_080C423C:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C4246:
- ldr r0, _080C4264
- mov r1, r9
- adds r4, r1, r0
- ldrb r1, [r4, 0x10]
- mov r12, r0
- cmp r1, 0
- beq _080C4268
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- subs r1, r2
- b _080C4274
- .align 2, 0
-_080C4264: .4byte 0x02018018
-_080C4268:
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- adds r1, r2
-_080C4274:
- strh r1, [r0, 0xA]
- ldr r1, _080C42BC
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
-_080C427E:
- movs r2, 0x14
- add r9, r2
- ldr r0, [sp, 0x4]
- adds r0, 0x60
- str r0, [sp, 0x4]
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x3
- ble _080C41A6
-_080C4292:
- ldr r0, [sp]
- cmp r0, 0
- beq _080C429E
- movs r0, 0x16
- bl PlaySE
-_080C429E:
- mov r1, r10
- cmp r1, 0
- beq _080C42AA
- movs r0, 0x15
- bl PlaySE
-_080C42AA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C42BC: .4byte 0x02018000
- thumb_func_end sub_80C40D4
-
- thumb_func_start sub_80C42C0
-sub_80C42C0: @ 80C42C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- mov r9, r6
- ldr r1, _080C4308
- lsls r0, 2
- add r0, r12
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x8]
- ldrh r7, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- mov r8, r1
- movs r2, 0xC
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080C4310
- ldr r1, _080C430C
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0
- bgt _080C4328
- b _080C4326
- .align 2, 0
-_080C4308: .4byte gTasks
-_080C430C: .4byte 0x02018000
-_080C4310:
- ldr r1, _080C4350
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0x57
- ble _080C4328
-_080C4326:
- movs r6, 0x1
-_080C4328:
- mov r0, r10
- adds r0, 0xC
- adds r3, r4, r0
- ldrh r2, [r3]
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _080C4340
- movs r1, 0x1
- mov r9, r1
-_080C4340:
- mov r0, r9
- cmp r0, 0
- bne _080C4362
- cmp r6, 0
- beq _080C4354
- strh r7, [r3]
- b _080C4362
- .align 2, 0
-_080C4350: .4byte 0x02018000
-_080C4354:
- mov r1, r8
- cmp r1, 0
- beq _080C435E
- subs r0, r2, 0x1
- b _080C4360
-_080C435E:
- adds r0, r2, 0x1
-_080C4360:
- strh r0, [r3]
-_080C4362:
- cmp r6, 0
- bne _080C43C8
- mov r2, r9
- cmp r2, 0
- bne _080C43CE
- movs r2, 0
- ldr r0, _080C4388
- adds r6, r4, r0
- adds r0, r4, r5
- lsls r5, r0, 5
-_080C4376:
- movs r0, 0
- ldrsh r3, [r6, r0]
- adds r0, r2, 0x1
- lsls r1, r0, 3
- adds r4, r0, 0
- cmp r3, r1
- blt _080C438C
- movs r0, 0x8
- b _080C43A8
- .align 2, 0
-_080C4388: .4byte 0x0201800c
-_080C438C:
- lsls r0, r2, 3
- cmp r3, r0
- blt _080C43A6
- adds r0, r3, 0
- cmp r3, 0
- bge _080C439A
- adds r0, r3, 0x7
-_080C439A:
- asrs r0, 3
- lsls r0, 3
- subs r0, r3, r0
- lsls r0, 24
- lsrs r0, 24
- b _080C43A8
-_080C43A6:
- movs r0, 0
-_080C43A8:
- cmp r0, 0x3
- bhi _080C43B4
- ldr r3, _080C43B0
- b _080C43B6
- .align 2, 0
-_080C43B0: .4byte 0x0000504c
-_080C43B4:
- ldr r3, _080C43EC
-_080C43B6:
- adds r1, r0, r3
- adds r0, r5, r2
- lsls r0, 1
- ldr r2, _080C43F0
- adds r0, r2
- strh r1, [r0]
- adds r2, r4, 0
- cmp r2, 0xA
- ble _080C4376
-_080C43C8:
- mov r3, r9
- cmp r3, 0
- beq _080C43DC
-_080C43CE:
- mov r1, r10
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- mov r0, r12
- bl DestroyTask
-_080C43DC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C43EC: .4byte 0x00005057
-_080C43F0: .4byte 0x0600e18e
- thumb_func_end sub_80C42C0
-
- thumb_func_start sub_80C43F4
-sub_80C43F4: @ 80C43F4
- push {r4,r5,lr}
- ldr r0, _080C442C
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080C4430
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0
- beq _080C4422
- ldr r4, _080C4434
- ldrb r0, [r4]
- ldr r1, _080C4438
- ldrb r1, [r1]
- bl sub_80AE398
- ldrb r0, [r4]
- bl sub_80AE82C
-_080C4422:
- ldr r0, _080C443C
- strh r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C442C: .4byte gUnknown_02038694
-_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gUnknown_0203869C
-_080C4438: .4byte gUnknown_0203869E
-_080C443C: .4byte gScriptResult
- thumb_func_end sub_80C43F4
-
- thumb_func_start sub_80C4440
-sub_80C4440: @ 80C4440
- push {r4,lr}
- movs r4, 0
- ldr r0, _080C4464
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C4468
- adds r2, r1, r0
- ldr r0, _080C446C
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C44B2
- lsls r0, 2
- ldr r1, _080C4470
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4464: .4byte gUnknown_02038694
-_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gUnknown_0203869C
-_080C4470: .4byte _080C4474
- .align 2, 0
-_080C4474:
- .4byte _080C4488
- .4byte _080C448E
- .4byte _080C4494
- .4byte _080C449A
- .4byte _080C44A0
-_080C4488:
- adds r0, r2, 0
- movs r1, 0x32
- b _080C44A4
-_080C448E:
- adds r0, r2, 0
- movs r1, 0x33
- b _080C44A4
-_080C4494:
- adds r0, r2, 0
- movs r1, 0x34
- b _080C44A4
-_080C449A:
- adds r0, r2, 0
- movs r1, 0x35
- b _080C44A4
-_080C44A0:
- adds r0, r2, 0
- movs r1, 0x36
-_080C44A4:
- bl GetMonData
- ldr r1, _080C44BC
- ldrh r1, [r1]
- cmp r0, r1
- bls _080C44B2
- movs r4, 0x1
-_080C44B2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C44BC: .4byte gUnknown_0203869E
- thumb_func_end sub_80C4440
-
- thumb_func_start sub_80C44C0
-sub_80C44C0: @ 80C44C0
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080C44E8
- ldr r0, _080C44EC
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C44D4
- b _080C465E
-_080C44D4:
- ldr r0, _080C44F0
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _080C44DE
- b _080C465E
-_080C44DE:
- lsls r0, 2
- ldr r1, _080C44F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C44E8: .4byte gUnknown_02038690
-_080C44EC: .4byte gUnknown_02038695
-_080C44F0: .4byte gUnknown_0203869C
-_080C44F4: .4byte _080C44F8
- .align 2, 0
-_080C44F8:
- .4byte _080C450C
- .4byte _080C4554
- .4byte _080C4598
- .4byte _080C45DC
- .4byte _080C4624
-_080C450C:
- ldr r6, _080C4548
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C454C
- adds r0, r4
- movs r1, 0x32
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- ldr r0, _080C4550
- ldrh r0, [r0]
- cmp r1, r0
- bls _080C4530
- b _080C465E
-_080C4530:
- adds r0, r1, 0
- cmp r0, 0x3
- bls _080C4538
- b _080C465E
-_080C4538:
- adds r1, r0, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x32
- b _080C4610
- .align 2, 0
-_080C4548: .4byte gUnknown_02038694
-_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gUnknown_0203869E
-_080C4554:
- mov r4, sp
- ldr r7, _080C458C
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C4590
- adds r0, r5
- movs r1, 0x33
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4594
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x33
- b _080C4610
- .align 2, 0
-_080C458C: .4byte gUnknown_02038694
-_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gUnknown_0203869E
-_080C4598:
- mov r4, sp
- ldr r7, _080C45D0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C45D4
- adds r0, r5
- movs r1, 0x34
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C45D8
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x34
- b _080C4610
- .align 2, 0
-_080C45D0: .4byte gUnknown_02038694
-_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gUnknown_0203869E
-_080C45DC:
- mov r4, sp
- ldr r7, _080C4618
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C461C
- adds r0, r5
- movs r1, 0x35
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4620
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x35
-_080C4610:
- mov r2, sp
- bl SetMonData
- b _080C465E
- .align 2, 0
-_080C4618: .4byte gUnknown_02038694
-_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gUnknown_0203869E
-_080C4624:
- mov r4, sp
- ldr r7, _080C4668
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C466C
- adds r0, r5
- movs r1, 0x36
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4670
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x36
- mov r2, sp
- bl SetMonData
-_080C465E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4668: .4byte gUnknown_02038694
-_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gUnknown_0203869E
- thumb_func_end sub_80C44C0
-
- thumb_func_start sub_80C4674
-sub_80C4674: @ 80C4674
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C4690
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C4690
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C4690:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4674
-
- thumb_func_start sub_80C4698
-sub_80C4698: @ 80C4698
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r4, 6
- ldr r0, _080C46E0
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- ldr r0, _080C46E4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C46DA
- ldr r0, _080C46E8
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x1
- bne _080C46DA
- adds r0, r5, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl ConvertInternationalString
-_080C46DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C46E0: .4byte gUnknown_02038572
-_080C46E4: .4byte gUnknown_0203869A
-_080C46E8: .4byte gLinkPlayers
- thumb_func_end sub_80C4698
-
- thumb_func_start sub_80C46EC
-sub_80C46EC: @ 80C46EC
- push {lr}
- ldr r0, _080C4710
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4720
- ldr r0, _080C4714
- ldr r1, _080C4718
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r2, _080C471C
- adds r1, r2
- bl sub_80C4674
- b _080C4730
- .align 2, 0
-_080C4710: .4byte gUnknown_0203869A
-_080C4714: .4byte gStringVar1
-_080C4718: .4byte gUnknown_0202E8D0
-_080C471C: .4byte gLinkPlayers + 0x8
-_080C4720:
- ldr r0, _080C4734
- ldr r1, _080C4738
- ldrh r1, [r1]
- lsls r1, 6
- ldr r2, _080C473C
- adds r1, r2
- bl sub_80C4674
-_080C4730:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4734: .4byte gStringVar1
-_080C4738: .4byte gUnknown_0202E8D0
-_080C473C: .4byte gUnknown_0203857D
- thumb_func_end sub_80C46EC
-
- thumb_func_start sub_80C4740
-sub_80C4740: @ 80C4740
- push {lr}
- ldr r0, _080C4750
- ldr r1, _080C4754
- ldrb r1, [r1]
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4750: .4byte gStringVar3
-_080C4754: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4740
-
- thumb_func_start sub_80C4758
-sub_80C4758: @ 80C4758
- push {r4-r6,lr}
- movs r1, 0
- movs r2, 0
- ldr r5, _080C4794
- ldr r4, _080C4798
- ldr r0, _080C479C
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r4
- movs r6, 0
- ldrsh r3, [r0, r6]
-_080C476E:
- lsls r0, r1, 1
- adds r0, r4
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r3, r0
- bge _080C4780
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4780:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C476E
- strh r2, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4794: .4byte gUnknown_0202E8CC
-_080C4798: .4byte gUnknown_02038670
-_080C479C: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4758
-
- thumb_func_start sub_80C47A0
-sub_80C47A0: @ 80C47A0
- ldr r2, _080C47B4
- ldr r1, _080C47B8
- ldr r0, _080C47BC
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C47B4: .4byte gUnknown_0202E8CC
-_080C47B8: .4byte gUnknown_02038670
-_080C47BC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C47A0
-
- thumb_func_start sub_80C47C0
-sub_80C47C0: @ 80C47C0
- push {lr}
- movs r1, 0
- ldr r2, _080C47E8
- ldrb r0, [r2]
- ldr r3, _080C47EC
- cmp r0, 0
- beq _080C47E0
-_080C47CE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C47E0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C47CE
-_080C47E0:
- strh r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_080C47E8: .4byte gUnknown_02038690
-_080C47EC: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80C47C0
-
- thumb_func_start sub_80C47F0
-sub_80C47F0: @ 80C47F0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080C4830
- ldrb r0, [r3]
- ldr r1, _080C4834
- ldr r4, _080C4838
- cmp r0, 0
- beq _080C4812
-_080C4800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _080C4812
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4800
-_080C4812:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4840
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _080C483C
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
- b _080C484C
- .align 2, 0
-_080C4830: .4byte gUnknown_02038690
-_080C4834: .4byte gUnknown_0203869A
-_080C4838: .4byte gStringVar3
-_080C483C: .4byte gLinkPlayers + 0x8
-_080C4840:
- lsls r1, r2, 6
- ldr r0, _080C4854
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
-_080C484C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4854: .4byte gUnknown_0203857D
- thumb_func_end sub_80C47F0
-
- thumb_func_start sub_80C4858
-sub_80C4858: @ 80C4858
- push {lr}
- movs r1, 0
- ldr r2, _080C4884
- ldrb r0, [r2]
- ldr r3, _080C4888
- cmp r0, 0
- beq _080C4878
-_080C4866:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C4878
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4866
-_080C4878:
- adds r0, r3, 0
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4884: .4byte gUnknown_02038690
-_080C4888: .4byte gStringVar1
- thumb_func_end sub_80C4858
-
- thumb_func_start sub_80C488C
-sub_80C488C: @ 80C488C
- push {lr}
- ldr r0, _080C4898
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4898: .4byte sub_80AB47C
- thumb_func_end sub_80C488C
-
- thumb_func_start sub_80C489C
-sub_80C489C: @ 80C489C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C48C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C48BA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C48C4
- bl SetMainCallback2
-_080C48BA:
- pop {r0}
- bx r0
- .align 2, 0
-_080C48C0: .4byte gPaletteFade
-_080C48C4: .4byte sub_80C488C
- thumb_func_end sub_80C489C
-
- thumb_func_start sub_80C48C8
-sub_80C48C8: @ 80C48C8
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C48F0
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C48F0: .4byte sub_80C489C
- thumb_func_end sub_80C48C8
-
- thumb_func_start sub_80C48F4
-sub_80C48F4: @ 80C48F4
- ldr r2, _080C4908
- ldr r1, _080C490C
- ldr r0, _080C4910
- ldrh r0, [r0]
- lsls r0, 6
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C4908: .4byte gUnknown_0202E8CC
-_080C490C: .4byte gUnknown_02038570
-_080C4910: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C48F4
-
- thumb_func_start sub_80C4914
-sub_80C4914: @ 80C4914
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C4938
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C4932
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C493C
- bl SetMainCallback2
-_080C4932:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4938: .4byte gPaletteFade
-_080C493C: .4byte sub_80C2358
- thumb_func_end sub_80C4914
-
- thumb_func_start sub_80C4940
-sub_80C4940: @ 80C4940
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C4968
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C4968: .4byte sub_80C4914
- thumb_func_end sub_80C4940
-
- thumb_func_start sub_80C496C
-sub_80C496C: @ 80C496C
- ldr r0, _080C4978
- ldr r1, _080C497C
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080C4978: .4byte gUnknown_0202E8CC
-_080C497C: .4byte gUnknown_02038695
- thumb_func_end sub_80C496C
-
- thumb_func_start sub_80C4980
-sub_80C4980: @ 80C4980
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl ScriptContext2_Enable
- ldr r6, _080C49B8
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080C49BC
- adds r0, r4, 0
- adds r1, r6, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080C49C0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49B8: .4byte sub_80C8604
-_080C49BC: .4byte sub_80C49C4
-_080C49C0: .4byte gTasks
- thumb_func_end sub_80C4980
-
- thumb_func_start sub_80C49C4
-sub_80C49C4: @ 80C49C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C49E4
- ldrb r0, [r0]
- bl sub_80AE098
- ldr r1, _080C49E8
- ldr r2, _080C49EC
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49E4: .4byte gUnknown_02038694
-_080C49E8: .4byte sub_80C8734
-_080C49EC: .4byte sub_80C49F0
- thumb_func_end sub_80C49C4
-
- thumb_func_start sub_80C49F0
-sub_80C49F0: @ 80C49F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A04
- ldr r2, _080C4A08
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A04: .4byte sub_80C88AC
-_080C4A08: .4byte sub_80C4A0C
- thumb_func_end sub_80C49F0
-
- thumb_func_start sub_80C4A0C
-sub_80C4A0C: @ 80C4A0C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A20
- ldr r2, _080C4A24
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A20: .4byte sub_80C8E1C
-_080C4A24: .4byte sub_80C4A28
- thumb_func_end sub_80C4A0C
-
- thumb_func_start sub_80C4A28
-sub_80C4A28: @ 80C4A28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A3C
- ldr r2, _080C4A40
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A3C: .4byte sub_80C8938
-_080C4A40: .4byte sub_80C4A44
- thumb_func_end sub_80C4A28
-
- thumb_func_start sub_80C4A44
-sub_80C4A44: @ 80C4A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r0, _080C4AA0
- mov r8, r0
- add r1, sp, 0x4
- mov r12, r1
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r4, r0, 3
- ldr r6, _080C4AA4
- adds r7, r1, 0
-_080C4A64:
- mov r0, sp
- adds r2, r0, r3
- adds r1, r3, 0x1
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r3, 0x3
- bls _080C4A64
- movs r3, 0
- mov r2, sp
-_080C4A80:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bhi _080C4A96
- mov r0, sp
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C4A80
-_080C4A96:
- cmp r3, 0x4
- bne _080C4AA8
- movs r0, 0
- b _080C4AAA
- .align 2, 0
-_080C4AA0: .4byte gUnknown_0202E8CC
-_080C4AA4: .4byte gUnknown_03004B28
-_080C4AA8:
- movs r0, 0x1
-_080C4AAA:
- mov r1, r8
- strh r0, [r1]
- movs r3, 0
- mov r4, r12
- adds r0, r7, r5
- lsls r2, r0, 3
- ldr r6, _080C4AF8
-_080C4AB8:
- adds r1, r4, r3
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r2
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080C4AB8
- mov r0, r12
- bl sub_80C4B34
- ldr r1, _080C4AFC
- strb r0, [r1]
- ldr r0, _080C4B00
- ldrb r0, [r0]
- bl sub_80AE82C
- ldr r1, _080C4B04
- ldr r2, _080C4B08
- adds r0, r5, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4AF8: .4byte gUnknown_03004B28
-_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gUnknown_0203869C
-_080C4B04: .4byte sub_80C8EBC
-_080C4B08: .4byte sub_80C4B0C
- thumb_func_end sub_80C4A44
-
- thumb_func_start sub_80C4B0C
-sub_80C4B0C: @ 80C4B0C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080C4B2C
- ldr r2, _080C4B30
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4B2C: .4byte sub_80C8F34
-_080C4B30: .4byte sub_80C4B5C
- thumb_func_end sub_80C4B0C
-
- thumb_func_start sub_80C4B34
-sub_80C4B34: @ 80C4B34
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- movs r2, 0x1
-_080C4B3C:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080C4B4C
- lsls r0, r2, 24
- lsrs r4, r0, 24
-_080C4B4C:
- adds r2, 0x1
- cmp r2, 0x3
- ble _080C4B3C
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C4B34
-
- thumb_func_start sub_80C4B5C
-sub_80C4B5C: @ 80C4B5C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C4B84
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080C4B90
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C4B9E
- ldr r0, _080C4B88
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C4B8C
- str r0, [r1]
- b _080C4B9E
- .align 2, 0
-_080C4B84: .4byte gUnknown_0202E8CC
-_080C4B88: .4byte gTasks
-_080C4B8C: .4byte sub_80C4BA4
-_080C4B90:
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4B9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4B5C
-
- thumb_func_start sub_80C4BA4
-sub_80C4BA4: @ 80C4BA4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080C4BC4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C4BC8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BC4: .4byte gTasks
-_080C4BC8: .4byte sub_80C4BCC
- thumb_func_end sub_80C4BA4
-
- thumb_func_start sub_80C4BCC
-sub_80C4BCC: @ 80C4BCC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080C4BEC
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4BE8
- adds r0, r1, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4BE8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BEC: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80C4BCC
-
- thumb_func_start sub_80C4BF0
-sub_80C4BF0: @ 80C4BF0
- push {r4,lr}
- ldr r2, _080C4C1C
- ldr r1, _080C4C20
- ldrb r3, [r1, 0x15]
- movs r4, 0x9B
- lsls r4, 5
- adds r0, r2, r4
- strh r3, [r0]
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r3, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r3, [r0]
- adds r1, 0x95
- ldrb r0, [r1]
- ldr r1, _080C4C24
- adds r2, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C1C: .4byte gSaveBlock1
-_080C4C20: .4byte gUnknown_02038570
-_080C4C24: .4byte 0x00001364
- thumb_func_end sub_80C4BF0
-
- thumb_func_start sub_80C4C28
-sub_80C4C28: @ 80C4C28
- push {lr}
- ldr r0, _080C4C40
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080C4C4E
- cmp r0, 0x1
- bgt _080C4C44
- cmp r0, 0
- beq _080C4C4A
- b _080C4C56
- .align 2, 0
-_080C4C40: .4byte gUnknown_0202E8CE
-_080C4C44:
- cmp r1, 0x2
- beq _080C4C52
- b _080C4C56
-_080C4C4A:
- movs r1, 0x3
- b _080C4C58
-_080C4C4E:
- movs r1, 0x4
- b _080C4C58
-_080C4C52:
- movs r1, 0x5
- b _080C4C58
-_080C4C56:
- movs r1, 0x64
-_080C4C58:
- ldr r0, _080C4C60
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C60: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4C28
-
- thumb_func_start sub_80C4C64
-sub_80C4C64: @ 80C4C64
- push {lr}
- bl sub_80C46EC
- bl sub_80C4740
- bl sub_80C48F4
- pop {r0}
- bx r0
- thumb_func_end sub_80C4C64
-
- thumb_func_start sub_80C4C78
-sub_80C4C78: @ 80C4C78
- push {lr}
- ldr r0, _080C4C8C
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C4CB8
- lsls r0, 2
- ldr r1, _080C4C90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4C8C: .4byte gUnknown_0203869C
-_080C4C90: .4byte _080C4C94
- .align 2, 0
-_080C4C94:
- .4byte _080C4CA8
- .4byte _080C4CAC
- .4byte _080C4CB0
- .4byte _080C4CB4
- .4byte _080C4CB8
-_080C4CA8:
- movs r0, 0x8
- b _080C4CBA
-_080C4CAC:
- movs r0, 0x9
- b _080C4CBA
-_080C4CB0:
- movs r0, 0xA
- b _080C4CBA
-_080C4CB4:
- movs r0, 0xB
- b _080C4CBA
-_080C4CB8:
- movs r0, 0xC
-_080C4CBA:
- ldr r1, _080C4CD0
- lsls r0, 5
- adds r0, r1
- ldr r1, _080C4CD4
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _080C4CDC
- ldr r0, _080C4CD8
- strh r1, [r0]
- b _080C4CE2
- .align 2, 0
-_080C4CD0: .4byte gSaveBlock1
-_080C4CD4: .4byte 0x00002e04
-_080C4CD8: .4byte gUnknown_0202E8CC
-_080C4CDC:
- ldr r1, _080C4CE8
- movs r0, 0x1
- strh r0, [r1]
-_080C4CE2:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4CE8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4C78
-
- thumb_func_start sub_80C4CEC
-sub_80C4CEC: @ 80C4CEC
- push {lr}
- movs r0, 0xFF
- bl sub_80B2A7C
- pop {r0}
- bx r0
- thumb_func_end sub_80C4CEC
-
- thumb_func_start sub_80C4CF8
-sub_80C4CF8: @ 80C4CF8
- push {lr}
- ldr r0, _080C4D28
- ldr r1, _080C4D2C
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4D40
- ldr r0, _080C4D30
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C4D40
- ldr r1, _080C4D34
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C4D38
- cmp r1, r0
- ble _080C4D40
- ldr r1, _080C4D3C
- movs r0, 0x1
- b _080C4D44
- .align 2, 0
-_080C4D28: .4byte gUnknown_02038690
-_080C4D2C: .4byte gUnknown_02038695
-_080C4D30: .4byte gUnknown_0203869E
-_080C4D34: .4byte gUnknown_02038678
-_080C4D38: .4byte 0x0000031f
-_080C4D3C: .4byte gUnknown_0202E8CC
-_080C4D40:
- ldr r1, _080C4D4C
- movs r0, 0
-_080C4D44:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4D4C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4CF8
-
- thumb_func_start sub_80C4D50
-sub_80C4D50: @ 80C4D50
- push {lr}
- movs r3, 0
- ldr r0, _080C4D78
- ldr r1, _080C4D7C
- adds r2, r0, r1
- movs r1, 0x4
-_080C4D5C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _080C4D68
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C4D68:
- adds r2, 0x20
- subs r1, 0x1
- cmp r1, 0
- bge _080C4D5C
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C4D78: .4byte gSaveBlock1
-_080C4D7C: .4byte 0x00002f04
- thumb_func_end sub_80C4D50
-
- thumb_func_start sub_80C4D80
-sub_80C4D80: @ 80C4D80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _080C4EA0
- mov r12, r0
- ldr r1, _080C4EA4
- mov r8, r1
- ldr r2, _080C4EA8
- mov r9, r2
- mov r2, r12
- mov r1, sp
- movs r6, 0x3
-_080C4D9E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080C4D9E
- movs r6, 0
-_080C4DAE:
- movs r1, 0x3
- cmp r1, r6
- ble _080C4DD8
-_080C4DB4:
- subs r4, r1, 0x1
- lsls r0, r4, 1
- mov r5, sp
- adds r3, r5, r0
- lsls r0, r1, 1
- adds r2, r5, r0
- ldrh r5, [r3]
- movs r7, 0
- ldrsh r1, [r3, r7]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080C4DD2
- strh r5, [r2]
- strh r0, [r3]
-_080C4DD2:
- adds r1, r4, 0
- cmp r1, r6
- bgt _080C4DB4
-_080C4DD8:
- adds r6, 0x1
- cmp r6, 0x2
- ble _080C4DAE
- mov r2, r8
- ldrh r0, [r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- movs r2, 0
- movs r7, 0
- movs r6, 0
- lsls r0, 16
- asrs r4, r0, 16
- adds r3, r0, 0
- mov r1, sp
-_080C4DF6:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _080C4E12
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- mov r5, r8
- ldrh r5, [r5]
- cmp r6, r5
- bne _080C4E12
- adds r7, r2, 0
-_080C4E12:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080C4DF6
- movs r6, 0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r1, r3, 16
- lsls r2, 24
- mov r10, r2
- cmp r0, r1
- beq _080C4E40
- adds r2, r1, 0
- mov r1, sp
-_080C4E30:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E40
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r2
- bne _080C4E30
-_080C4E40:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r2, r7, 0
- movs r6, 0
- asrs r5, r3, 16
- mov r8, r5
- mov r1, r12
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r8, r0
- bne _080C4E60
- cmp r7, 0x1
- beq _080C4E78
-_080C4E5A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4E60:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E78
- lsls r0, r6, 1
- add r0, r12
- asrs r1, r3, 16
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080C4E60
- cmp r2, 0x1
- bne _080C4E5A
-_080C4E78:
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r9
- bl sub_80C4698
- ldr r0, _080C4EAC
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4EB8
- ldr r0, _080C4EB0
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _080C4EB4
- adds r1, r2
- bl sub_80C4674
- b _080C4EC4
- .align 2, 0
-_080C4EA0: .4byte gUnknown_02038670
-_080C4EA4: .4byte gUnknown_0202E8D0
-_080C4EA8: .4byte gStringVar1
-_080C4EAC: .4byte gUnknown_0203869A
-_080C4EB0: .4byte gStringVar2
-_080C4EB4: .4byte gLinkPlayers + 0x8
-_080C4EB8:
- ldr r0, _080C4ED8
- lsls r1, r6, 6
- ldr r2, _080C4EDC
- adds r1, r2
- bl sub_80C4674
-_080C4EC4:
- mov r1, r10
- asrs r0, r1, 24
- cmp r0, 0x1
- beq _080C4ED0
- cmp r7, r0
- bne _080C4EE4
-_080C4ED0:
- ldr r0, _080C4EE0
- strh r4, [r0]
- b _080C4EEA
- .align 2, 0
-_080C4ED8: .4byte gStringVar2
-_080C4EDC: .4byte gUnknown_0203857D
-_080C4EE0: .4byte gUnknown_0202E8D0
-_080C4EE4:
- ldr r1, _080C4EFC
- adds r0, r4, 0x4
- strh r0, [r1]
-_080C4EEA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4EFC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4D80
-
- thumb_func_start sub_80C4F00
-sub_80C4F00: @ 80C4F00
- push {lr}
- ldr r0, _080C4F0C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C4F00
-
- thumb_func_start sub_80C4F10
-sub_80C4F10: @ 80C4F10
- push {r4-r6,lr}
- ldr r6, _080C4F54
- ldrb r0, [r6]
- cmp r0, 0
- beq _080C4F40
- bl sub_80AAF30
- ldr r4, _080C4F58
- ldr r0, _080C4F5C
- adds r1, r4, r0
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C4F60
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x3
- bl sub_80B2A7C
- strb r5, [r6]
-_080C4F40:
- ldr r0, _080C4F64
- bl SetMainCallback2
- ldr r1, _080C4F68
- ldr r0, _080C4F6C
- str r0, [r1, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F54: .4byte gUnknown_0203856C
-_080C4F58: .4byte 0x02000000
-_080C4F5C: .4byte 0x00015ddf
-_080C4F60: .4byte 0x00015dde
-_080C4F64: .4byte sub_8106668
-_080C4F68: .4byte gMain
-_080C4F6C: .4byte sub_80C4F00
- thumb_func_end sub_80C4F10
-
- thumb_func_start sub_80C4F70
-sub_80C4F70: @ 80C4F70
- push {r4,lr}
- ldr r0, _080C4FA8
- ldr r4, _080C4FAC
- ldrb r1, [r4, 0x15]
- bl VarSet
- ldr r0, _080C4FB0
- adds r1, r4, 0
- adds r1, 0x55
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB4
- adds r1, r4, 0
- adds r1, 0x95
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB8
- adds r1, r4, 0
- adds r1, 0xD5
- ldrb r1, [r1]
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4FA8: .4byte 0x00004010
-_080C4FAC: .4byte gUnknown_02038570
-_080C4FB0: .4byte 0x00004011
-_080C4FB4: .4byte 0x00004012
-_080C4FB8: .4byte 0x00004013
- thumb_func_end sub_80C4F70
-
- thumb_func_start sub_80C4FBC
-sub_80C4FBC: @ 80C4FBC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080C501C
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C5020
- adds r0, r4
- movs r1, 0x46
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C5024
- ldr r1, _080C5028
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C502C
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C5038
- ldr r1, _080C5030
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C5034
- cmp r1, r0
- ble _080C5038
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x46
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
- b _080C503A
- .align 2, 0
-_080C501C: .4byte gUnknown_02038694
-_080C5020: .4byte gPlayerParty
-_080C5024: .4byte gUnknown_02038690
-_080C5028: .4byte gUnknown_02038695
-_080C502C: .4byte gUnknown_0203869E
-_080C5030: .4byte gUnknown_02038678
-_080C5034: .4byte 0x0000031f
-_080C5038:
- movs r0, 0
-_080C503A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C4FBC
-
- thumb_func_start sub_80C5044
-sub_80C5044: @ 80C5044
- ldr r0, _080C504C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080C504C: .4byte gUnknown_0203856C
- thumb_func_end sub_80C5044
-
- thumb_func_start sub_80C5050
-sub_80C5050: @ 80C5050
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r4, _080C513C
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080C512A
- movs r0, 0xA
- mov r10, r0
- movs r7, 0x3
- movs r1, 0x3
- movs r2, 0x13
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r2, _080C5140
- ldr r0, _080C5144
- ldrh r1, [r0]
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r0, [r0]
- mov r8, r0
- adds r2, 0x3C
- adds r1, r2
- ldr r1, [r1]
- mov r9, r1
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C5148
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- adds r5, r1
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r6, [r5, 0xA]
- lsls r0, r6, 3
- ldr r1, _080C514C
- adds r0, r1
- ldr r1, _080C5150
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _080C5154
- ldr r3, [r4]
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r6, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C5158
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- mov r1, r10
- strh r1, [r5, 0xE]
- strh r7, [r5, 0x10]
- ldr r3, _080C515C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080C5160
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_080C512A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C513C: .4byte sub_80C5190
-_080C5140: .4byte gUnknown_02038570
-_080C5144: .4byte gUnknown_0202E8D0
-_080C5148: .4byte gTasks
-_080C514C: .4byte gMonFrontPicTable
-_080C5150: .4byte gMonFrontPicCoords
-_080C5154: .4byte gUnknown_081FAF4C
-_080C5158: .4byte gUnknown_02024E8C
-_080C515C: .4byte gSprites
-_080C5160: .4byte SpriteCallbackDummy
- thumb_func_end sub_80C5050
-
- thumb_func_start sub_80C5164
-sub_80C5164: @ 80C5164
- push {lr}
- ldr r0, _080C5188
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080C5184
- ldr r0, _080C518C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5184:
- pop {r0}
- bx r0
- .align 2, 0
-_080C5188: .4byte sub_80C5190
-_080C518C: .4byte gTasks
- thumb_func_end sub_80C5164
-
- thumb_func_start sub_80C5190
-sub_80C5190: @ 80C5190
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C51B4
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C5222
- cmp r0, 0x1
- bgt _080C51B8
- cmp r0, 0
- beq _080C51F8
- b _080C5222
- .align 2, 0
-_080C51B4: .4byte gTasks
-_080C51B8:
- cmp r0, 0x2
- beq _080C51C2
- cmp r0, 0x3
- beq _080C5204
- b _080C5222
-_080C51C2:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C5200
- adds r5, r0, r1
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r5, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _080C51F2
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080C51F2:
- adds r0, r5, 0
- bl DestroySprite
-_080C51F8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C5222
- .align 2, 0
-_080C5200: .4byte gSprites
-_080C5204:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080C5222:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C5190
-
- thumb_func_start sub_80C5228
-sub_80C5228: @ 80C5228
- push {r4,lr}
- ldr r0, _080C5244
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C524C
- ldr r4, _080C5248
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _080C5252
- .align 2, 0
-_080C5244: .4byte gUnknown_0203869A
-_080C5248: .4byte gScriptResult
-_080C524C:
- ldr r1, _080C5258
- movs r0, 0x4
- strh r0, [r1]
-_080C5252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5258: .4byte gScriptResult
- thumb_func_end sub_80C5228
-
- thumb_func_start sub_80C525C
-sub_80C525C: @ 80C525C
- push {r4,lr}
- ldr r0, _080C5280
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C5294
- ldr r2, _080C5284
- ldr r1, [r2]
- ldr r0, _080C5288
- muls r0, r1
- ldr r1, _080C528C
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- ldr r4, _080C5290
- b _080C529E
- .align 2, 0
-_080C5280: .4byte gUnknown_0203869A
-_080C5284: .4byte gUnknown_03005D28
-_080C5288: .4byte 0x41c64e6d
-_080C528C: .4byte 0x00006073
-_080C5290: .4byte gScriptResult
-_080C5294:
- ldr r4, _080C52AC
- bl Random
- lsls r0, 16
- lsrs r0, 16
-_080C529E:
- ldrh r1, [r4]
- bl __umodsi3
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C52AC: .4byte gScriptResult
- thumb_func_end sub_80C525C
-
- thumb_func_start sp000_heal_pokemon
-sp000_heal_pokemon: @ 80C52B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, _080C536C
- ldrb r0, [r0]
- cmp r8, r0
- bcs _080C535C
- ldr r1, _080C5370
- mov r10, r1
- mov r6, sp
-_080C52CE:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r1, r0, 16
- strb r0, [r6]
- lsrs r1, 24
- strb r1, [r6, 0x1]
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_080C5304:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- adds r2, r5, 0
- bl CalculatePPWithBonus
- strb r0, [r6]
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080C5304
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strb r0, [r6, 0x2]
- strb r0, [r6, 0x3]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- add r0, r10
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080C536C
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080C52CE
-_080C535C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C536C: .4byte gPlayerPartyCount
-_080C5370: .4byte gPlayerParty
- thumb_func_end sp000_heal_pokemon
-
- thumb_func_start sub_80C5374
-sub_80C5374: @ 80C5374
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x78
- adds r5, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r0, r4, 16
- mov r8, r0
- add r6, sp, 0x14
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r3, 0
- movs r3, 0x20
- bl CreateMon
- add r0, sp, 0x10
- mov r1, r8
- strb r1, [r0]
- lsrs r4, 24
- strb r4, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r6, 0
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0x1
- bgt _080C53E8
- cmp r4, 0
- blt _080C53E8
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8090D90
-_080C53E8:
- adds r0, r4, 0
- add sp, 0x78
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5374
-
- thumb_func_start sub_80C53F8
-sub_80C53F8: @ 80C53F8
- push {lr}
- sub sp, 0x68
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x1
- bl sub_8042044
- add r2, sp, 0x64
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- mov r0, sp
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x68
- pop {r1}
- bx r1
- thumb_func_end sub_80C53F8
-
- thumb_func_start sub_80C5428
-sub_80C5428: @ 80C5428
- push {lr}
- bl sub_803DAA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _080C5444
- cmp r1, 0x1
- bgt _080C5440
- cmp r1, 0
- beq _080C5444
- b _080C5448
-_080C5440:
- cmp r1, 0x2
- bne _080C5448
-_080C5444:
- ldr r0, _080C544C
- strh r1, [r0]
-_080C5448:
- pop {r0}
- bx r0
- .align 2, 0
-_080C544C: .4byte gScriptResult
- thumb_func_end sub_80C5428
-
- thumb_func_start sub_80C5450
-sub_80C5450: @ 80C5450
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- movs r7, 0xCE
- lsls r7, 1
-_080C545C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C548C
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080C5490
- cmp r0, r7
- beq _080C5490
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, r6
- bne _080C5490
- movs r0, 0x1
- b _080C5498
- .align 2, 0
-_080C548C: .4byte gPlayerParty
-_080C5490:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C545C
- movs r0, 0
-_080C5498:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5450
-
- thumb_func_start sub_80C54A0
-sub_80C54A0: @ 80C54A0
- push {r4,lr}
- movs r0, 0xAF
- bl sub_80C5450
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x1
- bne _080C54C2
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C54CC
- bl GetBerryNameByBerryType
-_080C54C2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C54CC: .4byte gStringVar1
- thumb_func_end sub_80C54A0
-
- thumb_func_start sub_80C54D0
-sub_80C54D0: @ 80C54D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r7, r2, 16
- lsrs r6, r7, 16
- bl ZeroEnemyPartyMons
- ldr r0, _080C552C
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x20
- bl CreateMon
- cmp r6, 0
- beq _080C551E
- add r0, sp, 0x10
- strb r6, [r0]
- adds r1, r0, 0
- lsrs r0, r7, 24
- strb r0, [r1, 0x1]
- mov r0, r8
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_080C551E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C552C: .4byte gEnemyParty
- thumb_func_end sub_80C54D0
-
- thumb_func_start sub_80C5530
-sub_80C5530: @ 80C5530
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r3, 0x6
- bls _080C554C
- ldr r0, _080C5560
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C554C:
- movs r0, 0x64
- muls r0, r3
- ldr r1, _080C5564
- adds r0, r1
- adds r1, r4, 0
- bl SetMonMoveSlot
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5560: .4byte gPlayerPartyCount
-_080C5564: .4byte gPlayerParty
- thumb_func_end sub_80C5530
-
- thumb_func_start sub_80C5568
-sub_80C5568: @ 80C5568
- push {lr}
- ldr r1, _080C5578
- ldr r0, _080C557C
- str r0, [r1, 0x8]
- bl sub_8121E10
- pop {r0}
- bx r0
- .align 2, 0
-_080C5578: .4byte gMain
-_080C557C: .4byte sub_80C5580
- thumb_func_end sub_80C5568
-
- thumb_func_start sub_80C5580
-sub_80C5580: @ 80C5580
- push {lr}
- ldr r0, _080C5590
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C5598
- ldr r0, _080C5594
- strh r1, [r0]
- b _080C559E
- .align 2, 0
-_080C5590: .4byte gUnknown_02039270
-_080C5594: .4byte gScriptResult
-_080C5598:
- ldr r1, _080C55A8
- movs r0, 0x1
- strh r0, [r1]
-_080C559E:
- ldr r0, _080C55AC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C55A8: .4byte gScriptResult
-_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C5580
-
- thumb_func_start sub_80C55B0
-sub_80C55B0: @ 80C55B0
- push {lr}
- ldr r1, _080C55C0
- ldr r0, _080C55C4
- str r0, [r1, 0x8]
- bl sub_8121E34
- pop {r0}
- bx r0
- .align 2, 0
-_080C55C0: .4byte gMain
-_080C55C4: .4byte sub_80C55C8
- thumb_func_end sub_80C55B0
-
- thumb_func_start sub_80C55C8
-sub_80C55C8: @ 80C55C8
- push {r4,lr}
- ldr r0, _080C55DC
- ldrb r4, [r0]
- cmp r4, 0
- bne _080C55E4
- bl copy_player_party_from_sav1
- ldr r0, _080C55E0
- strh r4, [r0]
- b _080C55EE
- .align 2, 0
-_080C55DC: .4byte gUnknown_02039270
-_080C55E0: .4byte gScriptResult
-_080C55E4:
- bl sub_80C5604
- ldr r1, _080C55FC
- movs r0, 0x1
- strh r0, [r1]
-_080C55EE:
- ldr r0, _080C5600
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C55FC: .4byte gScriptResult
-_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C55C8
-
- thumb_func_start sub_80C5604
-sub_80C5604: @ 80C5604
- push {r4-r7,lr}
- sub sp, 0x134
- add r0, sp, 0x12C
- movs r1, 0
- str r1, [r0]
- ldr r2, _080C5674
- mov r1, sp
- bl CpuSet
- movs r5, 0
- movs r7, 0x64
- ldr r6, _080C5678
- mov r4, sp
-_080C561E:
- ldr r0, _080C567C
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C5638
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
-_080C5638:
- adds r4, 0x64
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C561E
- add r0, sp, 0x130
- movs r1, 0
- str r1, [r0]
- ldr r4, _080C5678
- ldr r2, _080C5680
- adds r1, r4, 0
- bl CpuSet
- mov r5, sp
- add r6, sp, 0xC8
-_080C5654:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- cmp r5, r6
- ble _080C5654
- bl CalculatePlayerPartyCount
- add sp, 0x134
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5674: .4byte 0x0500004b
-_080C5678: .4byte gPlayerParty
-_080C567C: .4byte gUnknown_02039270
-_080C5680: .4byte 0x05000096
- thumb_func_end sub_80C5604
-
- thumb_func_start sub_80C5684
-sub_80C5684: @ 80C5684
- push {lr}
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080C569C
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _080C56A0
-_080C569C:
- movs r0, 0
- b _080C56A2
-_080C56A0:
- movs r0, 0x1
-_080C56A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80C5684
-
- thumb_func_start sub_80C56A8
-sub_80C56A8: @ 80C56A8
- push {r4,r5,lr}
- ldr r4, _080C56C8
- movs r5, 0
-_080C56AE:
- adds r0, r4, 0
- bl sub_80C5684
- cmp r0, 0
- beq _080C56CC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080C56CC
- movs r0, 0
- b _080C56D6
- .align 2, 0
-_080C56C8: .4byte gPlayerParty
-_080C56CC:
- adds r5, 0x1
- adds r4, 0x64
- cmp r5, 0x5
- ble _080C56AE
- movs r0, 0x1
-_080C56D6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C56A8
-
- thumb_func_start sub_80C56DC
-sub_80C56DC: @ 80C56DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080C5720
- adds r4, r0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x7
- bl sub_803FCD4
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r5, _080C5724
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r5, 0
- bl StringGetEnd10
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5720: .4byte gPlayerParty
-_080C5724: .4byte gStringVar1
- thumb_func_end sub_80C56DC
-
- thumb_func_start sub_80C5728
-sub_80C5728: @ 80C5728
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080C5764
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80C5684
- cmp r0, 0
- beq _080C5768
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C5768
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C5768
- movs r0, 0x1
- b _080C576A
- .align 2, 0
-_080C5764: .4byte gPlayerParty
-_080C5768:
- movs r0, 0
-_080C576A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5728
-
- thumb_func_start sub_80C5770
-sub_80C5770: @ 80C5770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C5794
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C57CA
- cmp r0, 0x1
- bgt _080C5798
- cmp r0, 0
- beq _080C579E
- b _080C581A
- .align 2, 0
-_080C5794: .4byte gUnknown_03004B28
-_080C5798:
- cmp r0, 0x2
- beq _080C57DC
- b _080C581A
-_080C579E:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bgt _080C57C4
-_080C57A8:
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80C5728
- cmp r0, 0
- bne _080C57F4
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r1, r0, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C57A8
-_080C57C4:
- movs r0, 0x2
- strh r0, [r4]
- b _080C581A
-_080C57CA:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080C581A
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- b _080C581A
-_080C57DC:
- bl sub_80C56A8
- adds r1, r0, 0
- cmp r1, 0
- beq _080C580C
- ldr r1, _080C57F0
- movs r0, 0x1
- strh r0, [r1]
- b _080C5810
- .align 2, 0
-_080C57F0: .4byte gScriptResult
-_080C57F4:
- ldrb r0, [r4, 0x2]
- bl sub_80C56DC
- ldr r0, _080C5808
- bl ShowFieldMessage
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080C581A
- .align 2, 0
-_080C5808: .4byte UnknownString_81A1132
-_080C580C:
- ldr r0, _080C5820
- strh r1, [r0]
-_080C5810:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080C581A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5820: .4byte gScriptResult
- thumb_func_end sub_80C5770
-
- thumb_func_start sub_80C5824
-sub_80C5824: @ 80C5824
- push {lr}
- ldr r0, _080C5838
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080C5838: .4byte sub_80C5770
- thumb_func_end sub_80C5824
-
- thumb_func_start overworld_poison
-overworld_poison: @ 80C583C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _080C58A8
- movs r7, 0
- movs r6, 0
- movs r5, 0x5
-_080C5848:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _080C588C
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C588C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- beq _080C587E
- subs r0, 0x1
- str r0, [sp]
- cmp r0, 0
- bne _080C5880
-_080C587E:
- adds r6, 0x1
-_080C5880:
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r7, 0x1
-_080C588C:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _080C5848
- cmp r6, 0
- bne _080C589C
- cmp r7, 0
- beq _080C58A0
-_080C589C:
- bl overworld_posion_effect
-_080C58A0:
- cmp r6, 0
- beq _080C58AC
- movs r0, 0x2
- b _080C58B6
- .align 2, 0
-_080C58A8: .4byte gPlayerParty
-_080C58AC:
- cmp r7, 0
- bne _080C58B4
- movs r0, 0
- b _080C58B6
-_080C58B4:
- movs r0, 0x1
-_080C58B6:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end overworld_poison
-
- thumb_func_start sub_80C58C0
-sub_80C58C0: @ 80C58C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r1, 0
- bl GetMonData
- lsls r0, 16
- str r0, [sp, 0x4]
- lsrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x27
- bl GetMonData
- adds r7, r0, 0
- movs r6, 0xF
- ands r7, r6
- adds r0, r5, 0
- movs r1, 0x28
- bl GetMonData
- mov r8, r0
- mov r1, r8
- ands r1, r6
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0x29
- bl GetMonData
- mov r9, r0
- mov r3, r9
- ands r3, r6
- mov r9, r3
- adds r0, r5, 0
- movs r1, 0x2A
- bl GetMonData
- mov r10, r0
- ands r0, r6
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x2B
- bl GetMonData
- adds r4, r0, 0
- ands r4, r6
- adds r0, r5, 0
- movs r1, 0x2C
- bl GetMonData
- adds r2, r0, 0
- ands r2, r6
- mov r1, r8
- mov r3, r9
- eors r1, r3
- mov r8, r1
- mov r0, r8
- muls r0, r7
- movs r1, 0xFF
- ldr r3, [sp]
- ands r3, r1
- eors r0, r3
- eors r4, r2
- mov r1, r10
- muls r1, r4
- ldr r3, [sp, 0x4]
- lsrs r2, r3, 24
- eors r1, r2
- lsls r0, 8
- adds r0, r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C58C0
-
- thumb_func_start sub_80C5964
-sub_80C5964: @ 80C5964
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x1
- ldr r3, _080C5980
-_080C596E:
- lsls r0, r1, 3
- adds r0, r3
- ldrh r0, [r0, 0x4]
- cmp r2, r0
- bcs _080C5984
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _080C5990
- .align 2, 0
-_080C5980: .4byte gUnknown_083D180C
-_080C5984:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080C596E
- adds r0, r1, 0
-_080C5990:
- pop {r1}
- bx r1
- thumb_func_end sub_80C5964
-
- thumb_func_start sub_80C5994
-sub_80C5994: @ 80C5994
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r6, 16
- lsrs r6, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D54
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- bl sub_80C5964
- lsls r0, 24
- ldr r1, _080C5A04
- lsrs r0, 21
- adds r0, r1
- ldrh r1, [r0]
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldrb r2, [r0, 0x2]
- movs r3, 0
- ldrh r4, [r0, 0x4]
- movs r5, 0
- adds r0, r6, 0
- movs r1, 0
- subs r0, r4
- sbcs r1, r5
- bl __udivdi3
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- adds r2, r0
- adcs r3, r1
- str r2, [sp]
- str r3, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- bl __muldi3
- movs r2, 0xA
- movs r3, 0
- bl __udivdi3
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5A04: .4byte gUnknown_083D180C
- thumb_func_end sub_80C5994
-
- thumb_func_start sub_80C5A08
-sub_80C5A08: @ 80C5A08
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r1, _080C5A78
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 1
- adds r0, r4, 0
- bl __floatsidf
- cmp r4, 0
- bge _080C5A32
- ldr r2, _080C5A7C
- ldr r3, _080C5A80
- bl __adddf3
-_080C5A32:
- ldr r2, _080C5A84
- ldr r3, _080C5A88
- bl __divdf3
- bl __fixunsdfsi
- adds r5, r0, 0
- movs r1, 0xA
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- mov r1, sp
- bl StringAppend
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5A78: .4byte gUnknown_083D188C
-_080C5A7C: .4byte 0x41f00000
-_080C5A80: .4byte 0x00000000
-_080C5A84: .4byte 0x40396666
-_080C5A88: .4byte 0x66666666
- thumb_func_end sub_80C5A08
-
- thumb_func_start sub_80C5A8C
-sub_80C5A8C: @ 80C5A8C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080C5AA4
- ldrh r0, [r1]
- cmp r0, 0xFF
- bne _080C5AA8
- movs r0, 0
- b _080C5B12
- .align 2, 0
-_080C5AA4: .4byte gScriptResult
-_080C5AA8:
- ldrh r1, [r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C5AD0
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080C5ACA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, r6
- beq _080C5AD4
-_080C5ACA:
- movs r0, 0x1
- b _080C5B12
- .align 2, 0
-_080C5AD0: .4byte gPlayerParty
-_080C5AD4:
- mov r4, sp
- adds r0, r5, 0
- bl sub_80C58C0
- strh r0, [r4]
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r6, 0
- bl sub_80C5994
- adds r5, r0, 0
- ldrh r1, [r7]
- adds r0, r6, 0
- bl sub_80C5994
- adds r4, r0, 0
- ldr r0, _080C5B0C
- adds r1, r5, 0
- bl sub_80C5A08
- cmp r5, r4
- bls _080C5B10
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r7]
- movs r0, 0x3
- b _080C5B12
- .align 2, 0
-_080C5B0C: .4byte gStringVar2
-_080C5B10:
- movs r0, 0x2
-_080C5B12:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5A8C
-
- thumb_func_start sub_80C5B1C
-sub_80C5B1C: @ 80C5B1C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r1, [r5]
- adds r0, r4, 0
- bl sub_80C5994
- adds r1, r0, 0
- ldr r0, _080C5B58
- bl sub_80C5A08
- ldr r0, _080C5B5C
- movs r1, 0xB
- muls r1, r4
- ldr r2, _080C5B60
- adds r1, r2
- bl StringCopy
- ldrh r1, [r5]
- movs r0, 0x81
- lsls r0, 8
- cmp r1, r0
- bne _080C5B6C
- ldr r0, _080C5B64
- ldr r1, _080C5B68
- bl StringCopy
- b _080C5B74
- .align 2, 0
-_080C5B58: .4byte gStringVar3
-_080C5B5C: .4byte gStringVar1
-_080C5B60: .4byte gSpeciesNames
-_080C5B64: .4byte gStringVar2
-_080C5B68: .4byte gOtherText_Marco
-_080C5B6C:
- ldr r0, _080C5B7C
- ldr r1, _080C5B80
- bl StringCopy
-_080C5B74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B7C: .4byte gStringVar2
-_080C5B80: .4byte gSaveBlock2
- thumb_func_end sub_80C5B1C
-
- thumb_func_start sub_80C5B84
-sub_80C5B84: @ 80C5B84
- push {lr}
- ldr r0, _080C5B94
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B94: .4byte 0x00004047
- thumb_func_end sub_80C5B84
-
- thumb_func_start sub_80C5B98
-sub_80C5B98: @ 80C5B98
- push {lr}
- ldr r0, _080C5BB0
- bl GetVarPointer
- adds r1, r0, 0
- movs r0, 0x99
- lsls r0, 1
- bl sub_80C5B1C
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BB0: .4byte 0x00004047
- thumb_func_end sub_80C5B98
-
- thumb_func_start sub_80C5BB4
-sub_80C5BB4: @ 80C5BB4
- push {r4,lr}
- ldr r0, _080C5BD4
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5BD8
- movs r0, 0x99
- lsls r0, 1
- bl sub_80C5A8C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BD4: .4byte 0x00004047
-_080C5BD8: .4byte gScriptResult
- thumb_func_end sub_80C5BB4
-
- thumb_func_start sub_80C5BDC
-sub_80C5BDC: @ 80C5BDC
- push {lr}
- ldr r0, _080C5BEC
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BEC: .4byte 0x0000404f
- thumb_func_end sub_80C5BDC
-
- thumb_func_start sub_80C5BF0
-sub_80C5BF0: @ 80C5BF0
- push {lr}
- ldr r0, _080C5C04
- bl GetVarPointer
- adds r1, r0, 0
- ldr r0, _080C5C08
- bl sub_80C5B1C
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C04: .4byte 0x0000404f
-_080C5C08: .4byte 0x00000143
- thumb_func_end sub_80C5BF0
-
- thumb_func_start sub_80C5C0C
-sub_80C5C0C: @ 80C5C0C
- push {r4,lr}
- ldr r0, _080C5C2C
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5C30
- ldr r0, _080C5C34
- bl sub_80C5A8C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C2C: .4byte 0x0000404f
-_080C5C30: .4byte gScriptResult
-_080C5C34: .4byte 0x00000143
- thumb_func_end sub_80C5C0C
-
- thumb_func_start sub_80C5C38
-sub_80C5C38: @ 80C5C38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r7, 0
- add r4, sp, 0x8
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080C5CC0
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r8, r4
- cmp r6, 0xA
- bhi _080C5CB2
- cmp r5, 0x40
- bhi _080C5CB2
- ldr r0, _080C5CC4
- ldr r1, _080C5CC8
- adds r0, r1
- adds r0, r6, r0
- strb r5, [r0]
- movs r5, 0
-_080C5C70:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C5CCC
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C5CA2
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _080C5CA2
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r8
- bl SetMonData
- movs r7, 0x1
-_080C5CA2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C5C70
- cmp r7, 0
- beq _080C5CB2
- ldr r0, _080C5CD0
- bl FlagSet
-_080C5CB2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5CC0: .4byte gUnknown_083D188E
-_080C5CC4: .4byte gSaveBlock1
-_080C5CC8: .4byte 0x00003110
-_080C5CCC: .4byte gPlayerParty
-_080C5CD0: .4byte 0x0000083b
- thumb_func_end sub_80C5C38
-
- thumb_func_start sub_80C5CD4
-sub_80C5CD4: @ 80C5CD4
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5D64
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5D68
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5D6C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5D70
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x1
- strh r0, [r7, 0xC]
- strh r6, [r7, 0xA]
- strh r6, [r7, 0x8]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5D4E
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5D4E:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5D58
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5D58:
- ldr r0, _080C5D74
- str r7, [r0]
- movs r4, 0
- ldr r5, _080C5D78
- b _080C5D94
- .align 2, 0
-_080C5D64: .4byte gUnknown_083D1898
-_080C5D68: .4byte gUnknown_083D18A0
-_080C5D6C: .4byte gSpriteTemplate_83D18A8
-_080C5D70: .4byte 0xffff0000
-_080C5D74: .4byte gUnknown_020387EC
-_080C5D78: .4byte gSprites
-_080C5D7C:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r7, 0x4]
- cmp r4, 0x3
- bhi _080C5D8C
- negs r1, r1
-_080C5D8C:
- strh r1, [r0, 0x2E]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080C5D94:
- cmp r4, 0x7
- bhi _080C5DB2
- lsls r1, r4, 5
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080C5D7C
-_080C5DB2:
- ldr r1, _080C5DC8
- movs r0, 0xBF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5DC8: .4byte REG_BLDCNT
- thumb_func_end sub_80C5CD4
-
- thumb_func_start sub_80C5DCC
-sub_80C5DCC: @ 80C5DCC
- push {r4,lr}
- ldr r4, _080C5E10
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- bne _080C5DF0
- ldr r0, [r1, 0x10]
- ldr r2, _080C5E14
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5E18
- bl sub_80C61B0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5DF0:
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x7
- bls _080C5E0A
- ldrh r0, [r1, 0x6]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- bgt _080C5E1C
-_080C5E0A:
- movs r0, 0
- b _080C5E2E
- .align 2, 0
-_080C5E10: .4byte gUnknown_020387EC
-_080C5E14: .4byte 0x0000ffff
-_080C5E18: .4byte sub_80C603C
-_080C5E1C:
- movs r0, 0x50
- strh r0, [r1, 0xC]
- ldr r0, _080C5E34
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- bl ClearGpuRegBits
- movs r0, 0x1
-_080C5E2E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5E34: .4byte REG_BLDCNT
- thumb_func_end sub_80C5DCC
-
- thumb_func_start sub_80C5E38
-sub_80C5E38: @ 80C5E38
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5EC8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5ECC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5ED0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5ED4
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x50
- strh r0, [r7, 0xC]
- strh r6, [r7, 0x8]
- strh r6, [r7, 0xA]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5EB2
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5EB2:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5EBC
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5EBC:
- ldr r0, _080C5ED8
- str r7, [r0]
- movs r5, 0
- ldr r6, _080C5EDC
- b _080C5F4A
- .align 2, 0
-_080C5EC8: .4byte gUnknown_083D1898
-_080C5ECC: .4byte gUnknown_083D18A0
-_080C5ED0: .4byte gSpriteTemplate_83D18C0
-_080C5ED4: .4byte 0xffff0000
-_080C5ED8: .4byte gUnknown_020387EC
-_080C5EDC: .4byte gSprites
-_080C5EE0:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- strh r0, [r1, 0x2E]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, _080C5EF4
- b _080C5F2A
- .align 2, 0
-_080C5EF4: .4byte gSprites
-_080C5EF8:
- lsls r1, r5, 21
- movs r0, 0x80
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080C5F6E
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- negs r0, r0
- strh r0, [r1, 0x2E]
- ldr r0, _080C5F88
- strh r0, [r1, 0x30]
- ldr r1, _080C5F8C
- lsls r4, r5, 5
-_080C5F2A:
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- movs r2, 0
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x36]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080C5F4A:
- cmp r5, 0x7
- bhi _080C5F6E
- cmp r5, 0x3
- bhi _080C5EF8
- lsls r4, r5, 5
- adds r1, r4, 0
- subs r1, 0x70
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080C5EE0
-_080C5F6E:
- ldr r1, _080C5F90
- movs r0, 0xFF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080C5F94
- bl sub_80C61B0
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5F88: .4byte 0x0000ffff
-_080C5F8C: .4byte gSprites
-_080C5F90: .4byte REG_BLDCNT
-_080C5F94: .4byte sub_80C6078
- thumb_func_end sub_80C5E38
-
- thumb_func_start sub_80C5F98
-sub_80C5F98: @ 80C5F98
- push {r4,lr}
- ldr r4, _080C5FB0
- ldr r2, [r4]
- ldrh r0, [r2, 0x8]
- cmp r0, 0x1
- beq _080C5FEC
- cmp r0, 0x1
- bgt _080C5FB4
- cmp r0, 0
- beq _080C5FBA
- b _080C602C
- .align 2, 0
-_080C5FB0: .4byte gUnknown_020387EC
-_080C5FB4:
- cmp r0, 0x2
- beq _080C6008
- b _080C602C
-_080C5FBA:
- ldrh r0, [r2, 0xC]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _080C6034
- ldr r0, [r2, 0x10]
- ldr r2, _080C5FE4
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5FE8
- bl SetHBlankCallback
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _080C6000
- .align 2, 0
-_080C5FE4: .4byte 0x0000ffff
-_080C5FE8: .4byte sub_80C603C
-_080C5FEC:
- ldrh r0, [r2, 0xA]
- cmp r0, 0x8
- bne _080C6034
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, [r4]
-_080C6000:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C6034
-_080C6008:
- ldr r0, _080C6030
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- bl ClearGpuRegBits
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C602C:
- movs r0, 0x1
- b _080C6036
- .align 2, 0
-_080C6030: .4byte REG_BLDCNT
-_080C6034:
- movs r0, 0
-_080C6036:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5F98
-
- thumb_func_start sub_80C603C
-sub_80C603C: @ 80C603C
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C6060
- ldrh r1, [r0]
- movs r3, 0xFF
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x50
- bne _080C6068
- ldr r1, _080C6064
- movs r0, 0x8F
- strh r0, [r1]
- b _080C606C
- .align 2, 0
-_080C6060: .4byte REG_VCOUNT
-_080C6064: .4byte REG_BLDCNT
-_080C6068:
- ldr r0, _080C6074
- strh r3, [r0]
-_080C606C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6074: .4byte REG_BLDCNT
- thumb_func_end sub_80C603C
-
- thumb_func_start sub_80C6078
-sub_80C6078: @ 80C6078
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C60B0
- ldrh r1, [r0]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080C60B4
- ldr r0, [r0]
- movs r3, 0xC
- ldrsh r2, [r0, r3]
- movs r0, 0x50
- subs r0, r2
- cmp r1, r0
- ble _080C60BC
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- cmp r1, r0
- bge _080C60BC
- ldr r1, _080C60B8
- movs r0, 0
- b _080C60C0
- .align 2, 0
-_080C60B0: .4byte REG_VCOUNT
-_080C60B4: .4byte gUnknown_020387EC
-_080C60B8: .4byte REG_BLDY
-_080C60BC:
- ldr r1, _080C60C8
- movs r0, 0x10
-_080C60C0:
- strh r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C60C8: .4byte REG_BLDY
- thumb_func_end sub_80C6078
-
- thumb_func_start sub_80C60CC
-sub_80C60CC: @ 80C60CC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bls _080C611C
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _080C6124
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080C611C
- ldrh r0, [r1]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- ldr r2, _080C6128
- movs r1, 0
- bl BlendPalettes
- ldr r0, _080C612C
- bl SetHBlankCallback
-_080C611C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6124: .4byte gUnknown_020387EC
-_080C6128: .4byte 0x0000ffff
-_080C612C: .4byte sub_80C6078
- thumb_func_end sub_80C60CC
-
- thumb_func_start sub_80C6130
-sub_80C6130: @ 80C6130
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080C61AA
- ldr r1, _080C6184
- ldr r0, [r1]
- movs r3, 0xC
- ldrsh r4, [r0, r3]
- adds r5, r1, 0
- cmp r4, 0x1
- bne _080C61AA
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bhi _080C616C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080C616C:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080C6188
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- blt _080C6196
- b _080C6194
- .align 2, 0
-_080C6184: .4byte gUnknown_020387EC
-_080C6188:
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bgt _080C6196
-_080C6194:
- strh r4, [r2, 0x36]
-_080C6196:
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080C61AA
- ldr r0, [r5]
- ldrh r1, [r0, 0xA]
- adds r1, 0x1
- strh r1, [r0, 0xA]
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
-_080C61AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6130
-
- thumb_func_start sub_80C61B0
-sub_80C61B0: @ 80C61B0
- push {r4-r6,lr}
- ldr r2, _080C61F0
- ldrh r1, [r2]
- movs r5, 0x2
- orrs r1, r5
- strh r1, [r2]
- ldr r3, _080C61F4
- ldrh r1, [r3]
- movs r2, 0x10
- orrs r1, r2
- strh r1, [r3]
- ldr r4, _080C61F8
- ldrh r2, [r4]
- movs r6, 0
- strh r6, [r4]
- ldr r3, _080C61FC
- ldrh r1, [r3]
- orrs r1, r5
- strh r1, [r3]
- strh r2, [r4]
- ldr r2, _080C6200
- ldrh r1, [r2, 0x1C]
- orrs r1, r5
- ldrh r3, [r2, 0x1C]
- orrs r1, r6
- strh r1, [r2, 0x1C]
- bl SetHBlankCallback
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C61F0: .4byte INTR_CHECK
-_080C61F4: .4byte REG_DISPSTAT
-_080C61F8: .4byte 0x04000208
-_080C61FC: .4byte 0x04000200
-_080C6200: .4byte gMain
- thumb_func_end sub_80C61B0
-
- thumb_func_start ClearGpuRegBits
-ClearGpuRegBits: @ 80C6204
- push {r4,r5,lr}
- ldr r3, _080C6248
- ldrh r1, [r3]
- ldr r2, _080C624C
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r3, _080C6250
- ldrh r1, [r3]
- ldr r0, _080C6254
- ands r0, r1
- strh r0, [r3]
- ldr r4, _080C6258
- ldrh r3, [r4]
- movs r0, 0
- strh r0, [r4]
- ldr r5, _080C625C
- ldrh r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r5]
- strh r3, [r4]
- ldr r0, _080C6260
- ldrh r1, [r0, 0x1C]
- ands r2, r1
- ldrh r1, [r0, 0x1C]
- strh r2, [r0, 0x1C]
- movs r0, 0
- bl SetHBlankCallback
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6248: .4byte INTR_CHECK
-_080C624C: .4byte 0x0000fffd
-_080C6250: .4byte REG_DISPSTAT
-_080C6254: .4byte 0x0000ffef
-_080C6258: .4byte 0x04000208
-_080C625C: .4byte 0x04000200
-_080C6260: .4byte gMain
- thumb_func_end ClearGpuRegBits
-
- thumb_func_start sub_80C6264
-sub_80C6264: @ 80C6264
- push {lr}
- ldr r0, _080C6278
- ldr r1, _080C627C
- ldr r1, [r1, 0x4]
- bl sub_80BBFD8
- bl sub_80BB5E4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6278: .4byte gUnknown_0203923C
-_080C627C: .4byte gMapHeader
- thumb_func_end sub_80C6264
-
- thumb_func_start sub_80C6280
-sub_80C6280: @ 80C6280
- push {lr}
- ldr r1, _080C6294
- ldr r0, [r1, 0x4]
- cmp r0, 0x2
- beq _080C62AA
- cmp r0, 0x2
- bgt _080C6298
- cmp r0, 0x1
- beq _080C62A2
- b _080C62BE
- .align 2, 0
-_080C6294: .4byte gUnknown_0202FF84
-_080C6298:
- cmp r0, 0x3
- beq _080C62AE
- cmp r0, 0x4
- beq _080C62B8
- b _080C62BE
-_080C62A2:
- movs r0, 0x8
- str r0, [r1, 0x14]
- movs r0, 0x28
- b _080C62BC
-_080C62AA:
- movs r0, 0x8
- b _080C62BA
-_080C62AE:
- movs r0, 0x8
- negs r0, r0
- str r0, [r1, 0x14]
- movs r0, 0x18
- b _080C62BC
-_080C62B8:
- movs r0, 0x18
-_080C62BA:
- str r0, [r1, 0x14]
-_080C62BC:
- str r0, [r1, 0x18]
-_080C62BE:
- pop {r0}
- bx r0
- thumb_func_end sub_80C6280
-
- thumb_func_start sub_80C62C4
-sub_80C62C4: @ 80C62C4
- push {r4,lr}
- bl sub_80BB63C
- ldr r0, _080C6318
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080C636E
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C636E
- ldr r4, _080C631C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80571EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6330
- bl sub_80C6264
- ldr r1, _080C6320
- ldr r0, _080C6324
- str r0, [r1]
- ldr r1, _080C6328
- ldr r0, _080C632C
- b _080C6380
- .align 2, 0
-_080C6318: .4byte gScriptResult
-_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gUnknown_0300485C
-_080C6324: .4byte sub_808AB90
-_080C6328: .4byte gUnknown_03005CE4
-_080C632C: .4byte sub_80C639C
-_080C6330:
- adds r0, r4, 0
- bl sub_805720C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6360
- bl sub_80C6264
- ldr r1, _080C6350
- ldr r0, _080C6354
- str r0, [r1]
- ldr r1, _080C6358
- ldr r0, _080C635C
- b _080C6380
- .align 2, 0
-_080C6350: .4byte gUnknown_0300485C
-_080C6354: .4byte sub_808AB90
-_080C6358: .4byte gUnknown_03005CE4
-_080C635C: .4byte sub_80C64A8
-_080C6360:
- adds r0, r4, 0
- bl is_tile_x98
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C6372
-_080C636E:
- movs r0, 0
- b _080C6384
-_080C6372:
- bl sub_80C6264
- ldr r1, _080C638C
- ldr r0, _080C6390
- str r0, [r1]
- ldr r1, _080C6394
- ldr r0, _080C6398
-_080C6380:
- str r0, [r1]
- movs r0, 0x1
-_080C6384:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C638C: .4byte gUnknown_0300485C
-_080C6390: .4byte sub_808AB90
-_080C6394: .4byte gUnknown_03005CE4
-_080C6398: .4byte sub_80C660C
- thumb_func_end sub_80C62C4
-
- thumb_func_start sub_80C639C
-sub_80C639C: @ 80C639C
- push {lr}
- ldr r1, _080C63B0
- ldr r0, _080C63B4
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C63B8
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C63B0: .4byte gUnknown_0202FF84
-_080C63B4: .4byte gUnknown_03005CE0
-_080C63B8: .4byte gUnknown_081A2CE6
- thumb_func_end sub_80C639C
-
- thumb_func_start sub_80C63BC
-sub_80C63BC: @ 80C63BC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C63E0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C63E4
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C63E0: .4byte gTasks
-_080C63E4: .4byte sub_80C63E8
- thumb_func_end sub_80C63BC
-
- thumb_func_start sub_80C63E8
-sub_80C63E8: @ 80C63E8
- push {lr}
- movs r0, 0xB
- bl FieldEffectActiveListRemove
- movs r0, 0x37
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C63E8
-
- thumb_func_start sub_80C63FC
-sub_80C63FC: @ 80C63FC
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C643C
- ldr r3, _080C6440
- ldr r1, _080C6444
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6448
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C643C: .4byte gSpriteTemplate_83D2614
-_080C6440: .4byte gSprites
-_080C6444: .4byte gPlayerAvatar
-_080C6448: .4byte gUnknown_0202FF84
- thumb_func_end sub_80C63FC
-
- thumb_func_start sub_80C644C
-sub_80C644C: @ 80C644C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x83
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C6464
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6464: .4byte sub_80C6468
- thumb_func_end sub_80C644C
-
- thumb_func_start sub_80C6468
-sub_80C6468: @ 80C6468
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C6488
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6490
- bl sub_80BB800
- b _080C6490
-_080C6488:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6494
- str r0, [r1, 0x1C]
-_080C6490:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6494: .4byte sub_80C6498
- thumb_func_end sub_80C6468
-
- thumb_func_start sub_80C6498
-sub_80C6498: @ 80C6498
- push {lr}
- movs r1, 0x37
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6498
-
- thumb_func_start sub_80C64A8
-sub_80C64A8: @ 80C64A8
- push {lr}
- ldr r1, _080C64BC
- ldr r0, _080C64C0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C64C4
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C64BC: .4byte gUnknown_0202FF84
-_080C64C0: .4byte gUnknown_03005CE0
-_080C64C4: .4byte gUnknown_081A2D3E
- thumb_func_end sub_80C64A8
-
- thumb_func_start sub_80C64C8
-sub_80C64C8: @ 80C64C8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C64EC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C64F0
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C64EC: .4byte gTasks
-_080C64F0: .4byte sub_80C64F4
- thumb_func_end sub_80C64C8
-
- thumb_func_start sub_80C64F4
-sub_80C64F4: @ 80C64F4
- push {lr}
- movs r0, 0x1A
- bl FieldEffectActiveListRemove
- movs r0, 0x38
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C64F4
-
- thumb_func_start sub_80C6508
-sub_80C6508: @ 80C6508
- push {r4,lr}
- ldr r1, _080C6580
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r2, r0, 0
- ldr r1, _080C6584
- adds r0, r1, 0
- ands r2, r0
- cmp r2, 0x96
- bne _080C652A
- ldr r1, _080C6588
- movs r0, 0
- str r0, [r1, 0x1C]
-_080C652A:
- cmp r2, 0x9C
- bne _080C6534
- ldr r1, _080C6588
- movs r0, 0x2
- str r0, [r1, 0x1C]
-_080C6534:
- bl sub_80C6280
- ldr r0, _080C658C
- ldr r3, _080C6590
- ldr r1, _080C6594
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6588
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- ldr r0, [r4, 0x1C]
- cmp r0, 0x1
- beq _080C6572
- cmp r0, 0x3
- bne _080C6576
-_080C6572:
- bl sub_80BB800
-_080C6576:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6580: .4byte gUnknown_0203923C
-_080C6584: .4byte 0x00000fff
-_080C6588: .4byte gUnknown_0202FF84
-_080C658C: .4byte gSpriteTemplate_83D262C
-_080C6590: .4byte gSprites
-_080C6594: .4byte gPlayerAvatar
- thumb_func_end sub_80C6508
-
- thumb_func_start sub_80C6598
-sub_80C6598: @ 80C6598
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x9B
- bl PlaySE
- ldr r0, _080C65BC
- ldr r1, [r0, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2A
- movs r0, 0
- strb r1, [r2]
- strh r0, [r4, 0x2E]
- ldr r0, _080C65C0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65BC: .4byte gUnknown_0202FF84
-_080C65C0: .4byte sub_80C65C4
- thumb_func_end sub_80C6598
-
- thumb_func_start sub_80C65C4
-sub_80C65C4: @ 80C65C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080C65EE
- ldr r0, _080C65F4
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080C65E2
- cmp r0, 0x2
- bne _080C65E6
-_080C65E2:
- bl sub_80BB800
-_080C65E6:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C65F8
- str r0, [r4, 0x1C]
-_080C65EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65F4: .4byte gUnknown_0202FF84
-_080C65F8: .4byte sub_80C65FC
- thumb_func_end sub_80C65C4
-
- thumb_func_start sub_80C65FC
-sub_80C65FC: @ 80C65FC
- push {lr}
- movs r1, 0x38
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C65FC
-
- thumb_func_start sub_80C660C
-sub_80C660C: @ 80C660C
- push {lr}
- ldr r1, _080C6620
- ldr r0, _080C6624
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C6628
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C6620: .4byte gUnknown_0202FF84
-_080C6624: .4byte gUnknown_03005CE0
-_080C6628: .4byte gUnknown_081A2D96
- thumb_func_end sub_80C660C
-
- thumb_func_start sub_80C662C
-sub_80C662C: @ 80C662C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6650
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C6654
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C6650: .4byte gTasks
-_080C6654: .4byte sub_80C6658
- thumb_func_end sub_80C662C
-
- thumb_func_start sub_80C6658
-sub_80C6658: @ 80C6658
- push {lr}
- movs r0, 0x1B
- bl FieldEffectActiveListRemove
- movs r0, 0x39
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C6658
-
- thumb_func_start sub_80C666C
-sub_80C666C: @ 80C666C
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C66AC
- ldr r3, _080C66B0
- ldr r1, _080C66B4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C66B8
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C66AC: .4byte gSpriteTemplate_83D2644
-_080C66B0: .4byte gSprites
-_080C66B4: .4byte gPlayerAvatar
-_080C66B8: .4byte gUnknown_0202FF84
- thumb_func_end sub_80C666C
-
- thumb_func_start sub_80C66BC
-sub_80C66BC: @ 80C66BC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA9
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C66D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C66D4: .4byte sub_80C66D8
- thumb_func_end sub_80C66BC
-
- thumb_func_start sub_80C66D8
-sub_80C66D8: @ 80C66D8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C66F8
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6700
- bl sub_80BB800
- b _080C6700
-_080C66F8:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6704
- str r0, [r1, 0x1C]
-_080C6700:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6704: .4byte sub_80C6708
- thumb_func_end sub_80C66D8
-
- thumb_func_start sub_80C6708
-sub_80C6708: @ 80C6708
- push {lr}
- movs r1, 0x39
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6708
-
- thumb_func_start sub_80C6718
-sub_80C6718: @ 80C6718
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C6758
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C675C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r4]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6758: .4byte sub_80C6760
-_080C675C: .4byte gTasks
- thumb_func_end sub_80C6718
-
- thumb_func_start sub_80C6760
-sub_80C6760: @ 80C6760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C6788
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- subs r0, 0x4
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bhi _080C682E
- lsls r0, 2
- ldr r1, _080C678C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6788: .4byte gUnknown_03004B28
-_080C678C: .4byte _080C6790
- .align 2, 0
-_080C6790:
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C6800
-_080C67D4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- b _080C67EE
-_080C67E2:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x88
- lsls r2, 2
-_080C67EE:
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- b _080C682E
-_080C6800:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- movs r0, 0x3D
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080C6834
-_080C682E:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
-_080C6834:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6760
-
- thumb_func_start sub_80C683C
-sub_80C683C: @ 80C683C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080C6874
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080C6878
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- b _080C6888
- .align 2, 0
-_080C6874: .4byte 0x00004054
-_080C6878:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _080C68A0
- bl MapGridSetMetatileIdAt
-_080C6888:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68A0: .4byte 0x00000e21
- thumb_func_end sub_80C683C
-
- thumb_func_start sub_80C68A4
-sub_80C68A4: @ 80C68A4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080C68E4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C68E8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68E4: .4byte sub_80C68EC
-_080C68E8: .4byte gTasks
- thumb_func_end sub_80C68A4
-
- thumb_func_start sub_80C68EC
-sub_80C68EC: @ 80C68EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C690C
- adds r4, r0, r1
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- bne _080C6910
- movs r0, 0
- b _080C6912
- .align 2, 0
-_080C690C: .4byte gUnknown_03004B28
-_080C6910:
- adds r0, r1, 0x1
-_080C6912:
- strh r0, [r4, 0x6]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080C6964
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _080C692C
- movs r2, 0
- ldrsh r0, [r4, r2]
- bl sub_80C696C
-_080C692C:
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x8]
- ldrh r3, [r4]
- adds r2, r3
- lsls r2, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x3
- bne _080C6960
- adds r0, r5, 0
- bl DestroyTask
- b _080C6964
-_080C6960:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_080C6964:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C68EC
-
- thumb_func_start sub_80C696C
-sub_80C696C: @ 80C696C
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 2
- cmp r1, r0
- beq _080C6998
- cmp r1, r0
- bgt _080C6988
- movs r0, 0x8A
- lsls r0, 2
- cmp r1, r0
- beq _080C69B0
- b _080C69B6
-_080C6988:
- movs r0, 0xCF
- lsls r0, 2
- cmp r1, r0
- beq _080C69A0
- adds r0, 0x4
- cmp r1, r0
- beq _080C69A8
- b _080C69B6
-_080C6998:
- movs r0, 0x4A
- bl PlaySE
- b _080C69B6
-_080C69A0:
- movs r0, 0x4B
- bl PlaySE
- b _080C69B6
-_080C69A8:
- movs r0, 0x4C
- bl PlaySE
- b _080C69B6
-_080C69B0:
- movs r0, 0x4E
- bl PlaySE
-_080C69B6:
- pop {r0}
- bx r0
- thumb_func_end sub_80C696C
-
- thumb_func_start sub_80C69BC
-sub_80C69BC: @ 80C69BC
- movs r0, 0
- bx lr
- thumb_func_end sub_80C69BC
-
- thumb_func_start sub_80C69C0
-sub_80C69C0: @ 80C69C0
- movs r0, 0
- bx lr
- thumb_func_end sub_80C69C0
-
- thumb_func_start sub_80C69C4
-sub_80C69C4: @ 80C69C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x4D
- bl PlaySE
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- ldr r2, _080C6A0C
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- subs r6, r4, 0x1
- ldr r2, _080C6A10
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r6, 0
- bl CurrentMapDrawMetatileAt
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6A0C: .4byte 0x00000276
-_080C6A10: .4byte 0x0000026e
- thumb_func_end sub_80C69C4
-
- thumb_func_start sub_80C6A14
-sub_80C6A14: @ 80C6A14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6A44
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- bne _080C6A48
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- movs r3, 0xC
- ldrsh r1, [r1, r3]
- bl sub_80C69C4
- adds r0, r4, 0
- bl DestroyTask
- b _080C6A4C
- .align 2, 0
-_080C6A44: .4byte gTasks
-_080C6A48:
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
-_080C6A4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6A14
-
- thumb_func_start sub_80C6A54
-sub_80C6A54: @ 80C6A54
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r7, r5, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6A7C
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r4, 16
- asrs r1, 16
- bl sub_80C69C4
- b _080C6A9E
-_080C6A7C:
- cmp r0, 0x2
- bne _080C6A9E
- ldr r0, _080C6AA4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6AA8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r7, [r1, 0xA]
- strh r6, [r1, 0xC]
-_080C6A9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6AA4: .4byte sub_80C6A14
-_080C6AA8: .4byte gTasks
- thumb_func_end sub_80C6A54
-
- thumb_func_start sub_80C6AAC
-sub_80C6AAC: @ 80C6AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6AE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- beq _080C6AC8
- b _080C6C26
-_080C6AC8:
- ldr r2, _080C6AE8
- adds r0, r2, 0
- ldrh r1, [r1, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- bls _080C6ADA
- b _080C6C1E
-_080C6ADA:
- lsls r0, 2
- ldr r1, _080C6AEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6AE4: .4byte gTasks
-_080C6AE8: .4byte 0xfffffd88
-_080C6AEC: .4byte _080C6AF0
- .align 2, 0
-_080C6AF0:
- .4byte _080C6BE0
- .4byte _080C6BE8
- .4byte _080C6BF0
- .4byte _080C6BF8
- .4byte _080C6C00
- .4byte _080C6C08
- .4byte _080C6C10
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C18
-_080C6BE0:
- movs r0, 0x3E
- bl PlaySE
- b _080C6C1E
-_080C6BE8:
- movs r0, 0x3F
- bl PlaySE
- b _080C6C1E
-_080C6BF0:
- movs r0, 0x40
- bl PlaySE
- b _080C6C1E
-_080C6BF8:
- movs r0, 0x41
- bl PlaySE
- b _080C6C1E
-_080C6C00:
- movs r0, 0x42
- bl PlaySE
- b _080C6C1E
-_080C6C08:
- movs r0, 0x43
- bl PlaySE
- b _080C6C1E
-_080C6C10:
- movs r0, 0x44
- bl PlaySE
- b _080C6C1E
-_080C6C18:
- movs r0, 0x45
- bl PlaySE
-_080C6C1E:
- adds r0, r4, 0
- bl DestroyTask
- b _080C6C2A
-_080C6C26:
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
-_080C6C2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6AAC
-
- thumb_func_start sub_80C6C30
-sub_80C6C30: @ 80C6C30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _080C6C5C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6C60
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r0, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6C5C: .4byte sub_80C6AAC
-_080C6C60: .4byte gTasks
- thumb_func_end sub_80C6C30
-
- thumb_func_start sub_80C6C64
-sub_80C6C64: @ 80C6C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080C6C7C
- movs r0, 0xC3
- bl PlaySE
-_080C6C7C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1F
- ble _080C6C8A
- adds r0, r4, 0
- bl DestroySprite
-_080C6C8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6C64
-
- thumb_func_start sub_80C6C90
-sub_80C6C90: @ 80C6C90
- push {r4,lr}
- sub sp, 0x4
- ldr r3, _080C6D28
- ldr r2, _080C6D2C
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _080C6D30
- ldr r0, [r0, 0x58]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080C6D1E
- ldr r3, _080C6D34
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r3
- movs r0, 0x3E
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080C6D38
- str r0, [r2]
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080C6D1E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6D28: .4byte gMapObjects
-_080C6D2C: .4byte gPlayerAvatar
-_080C6D30: .4byte gFieldEffectObjectTemplatePointers
-_080C6D34: .4byte gSprites
-_080C6D38: .4byte sub_80C6C64
- thumb_func_end sub_80C6C90
-
- thumb_func_start sub_80C6D3C
-sub_80C6D3C: @ 80C6D3C
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, _080C6D78
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r1, 0x14]
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [r1, 0x18]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080C6DBC
- cmp r0, 0x2
- bgt _080C6D7C
- cmp r0, 0x1
- beq _080C6D86
- b _080C6E4C
- .align 2, 0
-_080C6D78: .4byte gUnknown_0202FF84
-_080C6D7C:
- cmp r0, 0x3
- beq _080C6DEC
- cmp r0, 0x4
- beq _080C6E24
- b _080C6E4C
-_080C6D86:
- ldr r0, _080C6DB0
- ldr r3, _080C6DB4
- ldr r1, _080C6DB8
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x20
- movs r3, 0
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6DB0: .4byte gSpriteTemplate_83D26A0
-_080C6DB4: .4byte gSprites
-_080C6DB8: .4byte gPlayerAvatar
-_080C6DBC:
- ldr r0, _080C6DE0
- ldr r3, _080C6DE4
- ldr r1, _080C6DE8
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- b _080C6E0C
- .align 2, 0
-_080C6DE0: .4byte gSpriteTemplate_83D26A0
-_080C6DE4: .4byte gSprites
-_080C6DE8: .4byte gPlayerAvatar
-_080C6DEC:
- ldr r0, _080C6E14
- ldr r3, _080C6E18
- ldr r1, _080C6E1C
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- ldr r3, _080C6E20
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
-_080C6E0C:
- movs r3, 0x94
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6E14: .4byte gSpriteTemplate_83D26A0
-_080C6E18: .4byte gSprites
-_080C6E1C: .4byte gPlayerAvatar
-_080C6E20: .4byte 0xfff80000
-_080C6E24:
- ldr r0, _080C6E58
- ldr r3, _080C6E5C
- ldr r1, _080C6E60
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0xC0
- lsls r3, 13
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
- movs r3, 0x94
- bl CreateSprite
-_080C6E4C:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6E58: .4byte gSpriteTemplate_83D26A0
-_080C6E5C: .4byte gSprites
-_080C6E60: .4byte gPlayerAvatar
- thumb_func_end sub_80C6D3C
-
- thumb_func_start door_restore_tilemap
-door_restore_tilemap: @ 80C6E64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x83
- bl PlaySE
- ldr r4, _080C6E90
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl MapGridGetMetatileIdAt
- ldr r1, _080C6E94
- cmp r0, r1
- bne _080C6E9C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- ldr r2, _080C6E98
- bl MapGridSetMetatileIdAt
- b _080C6EAA
- .align 2, 0
-_080C6E90: .4byte gUnknown_0202FF84
-_080C6E94: .4byte 0x00000286
-_080C6E98: .4byte 0x00000e02
-_080C6E9C:
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- movs r2, 0xA1
- lsls r2, 2
- bl MapGridSetMetatileIdAt
-_080C6EAA:
- ldr r4, _080C6ED8
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6EDC
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl CurrentMapDrawMetatileAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6EE0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6ED8: .4byte gUnknown_0202FF84
-_080C6EDC: .4byte 0x0000020a
-_080C6EE0: .4byte sub_80C6EE4
- thumb_func_end door_restore_tilemap
-
- thumb_func_start sub_80C6EE4
-sub_80C6EE4: @ 80C6EE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x11
- bgt _080C6EF8
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080C6F14
-_080C6EF8:
- ldr r4, _080C6F1C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6F20
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6F24
- str r0, [r5, 0x1C]
-_080C6F14:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6F1C: .4byte gUnknown_0202FF84
-_080C6F20: .4byte 0x00000e8c
-_080C6F24: .4byte sub_80C6F28
- thumb_func_end sub_80C6EE4
-
- thumb_func_start sub_80C6F28
-sub_80C6F28: @ 80C6F28
- push {lr}
- movs r1, 0x34
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6F28
-
- thumb_func_start sub_80C6F38
-sub_80C6F38: @ 80C6F38
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080C6F70
- cmp r1, r0
- beq _080C6FE8
- cmp r1, r0
- bgt _080C6F74
- subs r0, 0x17
- cmp r1, r0
- beq _080C6FB0
- adds r0, 0x16
- cmp r1, r0
- beq _080C6FDC
- b _080C6FFA
- .align 2, 0
-_080C6F70: .4byte 0x000002f5
-_080C6F74:
- ldr r0, _080C6F9C
- cmp r1, r0
- beq _080C6FF4
- adds r0, 0x40
- cmp r1, r0
- bne _080C6FFA
- ldr r0, _080C6FA0
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FA4
- ldr r1, _080C6FA8
- bl StringCopy
- ldr r1, _080C6FAC
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6F9C: .4byte 0x000002f6
-_080C6FA0: .4byte gStringVar1
-_080C6FA4: .4byte gStringVar2
-_080C6FA8: .4byte gSecretBaseText_GoldRank
-_080C6FAC: .4byte gScriptResult
-_080C6FB0:
- ldr r0, _080C6FCC
- movs r1, 0x32
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FD0
- ldr r1, _080C6FD4
- bl StringCopy
- ldr r1, _080C6FD8
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6FCC: .4byte gStringVar1
-_080C6FD0: .4byte gStringVar2
-_080C6FD4: .4byte gSecretBaseText_SilverRank
-_080C6FD8: .4byte gScriptResult
-_080C6FDC:
- ldr r1, _080C6FE4
- movs r0, 0x1
- b _080C6FF8
- .align 2, 0
-_080C6FE4: .4byte gScriptResult
-_080C6FE8:
- ldr r1, _080C6FF0
- movs r0, 0x2
- b _080C6FF8
- .align 2, 0
-_080C6FF0: .4byte gScriptResult
-_080C6FF4:
- ldr r1, _080C7004
- movs r0, 0x3
-_080C6FF8:
- strh r0, [r1]
-_080C6FFA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7004: .4byte gScriptResult
- thumb_func_end sub_80C6F38
-
- thumb_func_start task50_overworld_posion_effect
-task50_overworld_posion_effect: @ 80C7008
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080C702C
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C7046
- cmp r0, 0x1
- bgt _080C7030
- cmp r0, 0
- beq _080C7036
- b _080C7062
- .align 2, 0
-_080C702C: .4byte gUnknown_03004B28
-_080C7030:
- cmp r0, 0x2
- beq _080C705A
- b _080C7062
-_080C7036:
- ldrh r0, [r1, 0x2]
- adds r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080C7062
- b _080C7052
-_080C7046:
- ldrh r0, [r1, 0x2]
- subs r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080C7062
-_080C7052:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080C7062
-_080C705A:
- adds r0, r2, 0
- bl DestroyTask
- b _080C706C
-_080C7062:
- ldr r2, _080C7070
- ldrh r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- strh r0, [r2]
-_080C706C:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7070: .4byte REG_MOSAIC
- thumb_func_end task50_overworld_posion_effect
-
- thumb_func_start overworld_posion_effect
-overworld_posion_effect: @ 80C7074
- push {lr}
- movs r0, 0x4F
- bl PlaySE
- ldr r0, _080C7088
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C7088: .4byte task50_overworld_posion_effect
- thumb_func_end overworld_posion_effect
-
- thumb_func_start c3_80A0DD8_is_running
-c3_80A0DD8_is_running: @ 80C708C
- push {lr}
- ldr r0, _080C709C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C709C: .4byte task50_overworld_posion_effect
- thumb_func_end c3_80A0DD8_is_running
-
- thumb_func_start sub_80C70A0
-sub_80C70A0: @ 80C70A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C70B4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C70B8
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C70B4: .4byte gTasks
-_080C70B8: .4byte sub_80C70BC
- thumb_func_end sub_80C70A0
-
- thumb_func_start sub_80C70BC
-sub_80C70BC: @ 80C70BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7120
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7124
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C70E8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C711A
-_080C70E8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059D08
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _080C7128
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C712C
- str r1, [r0]
-_080C711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7120: .4byte gPlayerAvatar
-_080C7124: .4byte gMapObjects
-_080C7128: .4byte gTasks
-_080C712C: .4byte sub_80C7130
- thumb_func_end sub_80C70BC
-
- thumb_func_start sub_80C7130
-sub_80C7130: @ 80C7130
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C7184
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7188
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C7194
- ldr r1, _080C718C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080C7190
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- b _080C7194
- .align 2, 0
-_080C7184: .4byte gPlayerAvatar
-_080C7188: .4byte gMapObjects
-_080C718C: .4byte gTasks
-_080C7190:
- ldr r0, _080C719C
- str r0, [r2]
-_080C7194:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C719C: .4byte sub_80C71A0
- thumb_func_end sub_80C7130
-
- thumb_func_start sub_80C71A0
-sub_80C71A0: @ 80C71A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80597D0
- lsls r0, 24
- lsrs r0, 24
- bl SetPlayerAvatarTransitionFlags
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C71A0
-
- thumb_func_start sub_80C71C4
-sub_80C71C4: @ 80C71C4
- push {lr}
- ldr r0, _080C71D4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C71D4: .4byte sub_80C70A0
- thumb_func_end sub_80C71C4
-
- thumb_func_start sub_80C71D8
-sub_80C71D8: @ 80C71D8
- push {r4,r5,lr}
- ldr r0, _080C722C
- bl LoadSpritePalette
- ldr r0, _080C7230
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7238
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080C7234
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r0, 0x10
- movs r1, 0xD
- bl sub_8060388
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- adds r0, r5, 0
- b _080C723A
- .align 2, 0
-_080C722C: .4byte gUnknown_083D2878
-_080C7230: .4byte gSpriteTemplate_83D2894
-_080C7234: .4byte gSprites
-_080C7238:
- movs r0, 0x40
-_080C723A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C71D8
-
- thumb_func_start sub_80C7240
-sub_80C7240: @ 80C7240
- push {r4-r7,lr}
- ldr r4, _080C7274
- adds r7, r4, 0
- movs r6, 0
- movs r5, 0x3F
-_080C724A:
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r6, r0
- ldr r1, [r0]
- ldr r0, _080C7278
- cmp r1, r0
- bne _080C7264
- adds r0, r4, 0
- bl FreeSpritePalette
- adds r0, r4, 0
- bl DestroySprite
-_080C7264:
- adds r4, 0x44
- adds r6, 0x44
- subs r5, 0x1
- cmp r5, 0
- bge _080C724A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7274: .4byte gSprites
-_080C7278: .4byte gSpriteTemplate_83D2894
- thumb_func_end sub_80C7240
-
- thumb_func_start sub_80C727C
-sub_80C727C: @ 80C727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x78
- bl __modsi3
- cmp r0, 0
- bne _080C7290
- movs r0, 0x1
- negs r0, r0
- b _080C72A2
-_080C7290:
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C72A0
- movs r0, 0
- b _080C72A2
-_080C72A0:
- movs r0, 0x1
-_080C72A2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C727C
-
- thumb_func_start sub_80C72A8
-sub_80C72A8: @ 80C72A8
- push {lr}
- adds r0, 0x78
- movs r1, 0xB4
- bl __modsi3
- cmp r0, 0
- beq _080C72BA
- movs r0, 0
- b _080C72BE
-_080C72BA:
- movs r0, 0x1
- negs r0, r0
-_080C72BE:
- pop {r1}
- bx r1
- thumb_func_end sub_80C72A8
-
- thumb_func_start sub_80C72C4
-sub_80C72C4: @ 80C72C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C7364
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r4, _080C7368
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 18
- movs r3, 0xC0
- lsls r3, 10
- orrs r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 17
- ldr r3, _080C736C
- adds r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- movs r3, 0x3
- negs r3, r3
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- ldr r1, _080C7370
- cmp r0, r1
- bne _080C7346
- strh r4, [r5]
-_080C7346:
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl SetCameraPanning
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7364: .4byte gUnknown_03004B28
-_080C7368: .4byte gSaveBlock1
-_080C736C: .4byte 0xfffd0000
-_080C7370: .4byte 0x75300000
- thumb_func_end sub_80C72C4
-
- thumb_func_start sub_80C7374
-sub_80C7374: @ 80C7374
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- ldr r4, _080C73B4
- adds r7, r3, r4
- ldrh r1, [r7]
- adds r1, 0x1
- strh r1, [r7]
- ldrh r0, [r7, 0x4]
- adds r0, 0x1
- strh r0, [r7, 0x4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- ble _080C73A4
- movs r0, 0
- strh r0, [r7]
- ldrh r0, [r7, 0x2]
- adds r0, 0x1
- strh r0, [r7, 0x2]
-_080C73A4:
- ldrh r0, [r7, 0x2]
- cmp r0, 0x13
- bne _080C73B8
- adds r0, r2, 0
- bl DestroyTask
- b _080C746A
- .align 2, 0
-_080C73B4: .4byte gUnknown_03004B28
-_080C73B8:
- ldr r2, _080C7474
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _080C73D4
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _080C7478
- str r1, [r0]
-_080C73D4:
- movs r4, 0x2
- ldrsh r0, [r7, r4]
- adds r0, r2
- movs r5, 0
- ldrsb r5, [r0, r5]
- lsls r5, 16
- lsrs r5, 16
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r5, 16
- asrs r5, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl SetCameraPanning
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r6, _080C747C
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r3, 0x3
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- movs r4, 0xC0
- lsls r4, 10
- orrs r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- negs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 17
- ldr r4, _080C7480
- adds r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r4, 0x3
- negs r4, r4
- adds r3, r4, 0
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
-_080C746A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7474: .4byte gUnknown_083D294C
-_080C7478: .4byte sub_80C7484
-_080C747C: .4byte gSaveBlock1
-_080C7480: .4byte 0xfffd0000
- thumb_func_end sub_80C7374
-
- thumb_func_start sub_80C7484
-sub_80C7484: @ 80C7484
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080C74C4
- adds r2, r0, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C74B4
- movs r0, 0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
-_080C74B4:
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bne _080C74C8
- adds r0, r3, 0
- bl DestroyTask
- b _080C7516
- .align 2, 0
-_080C74C4: .4byte gUnknown_03004B28
-_080C74C8:
- ldr r1, _080C7524
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- adds r0, r1
- movs r1, 0
- mov r8, r1
- movs r6, 0
- ldrsb r6, [r0, r6]
- adds r0, r6, 0
- bl SetCameraPanning
- ldr r5, _080C7528
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- movs r3, 0x3
- subs r3, r6
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- negs r3, r6
- mov r4, r8
- subs r4, 0x3
- str r4, [sp]
- movs r0, 0x2
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- subs r4, r6
- mov r3, r8
- str r3, [sp]
- movs r0, 0x3
- adds r3, r4, 0
- bl sub_805BD90
-_080C7516:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7524: .4byte gUnknown_083D294C
-_080C7528: .4byte gSaveBlock1
- thumb_func_end sub_80C7484
-
- thumb_func_start sub_80C752C
-sub_80C752C: @ 80C752C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C7550
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080C7546
- b _080C7698
-_080C7546:
- lsls r0, 2
- ldr r1, _080C7554
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C7550: .4byte gUnknown_03004B28
-_080C7554: .4byte _080C7558
- .align 2, 0
-_080C7558:
- .4byte _080C7570
- .4byte _080C75A8
- .4byte _080C75C4
- .4byte _080C7610
- .4byte _080C7634
- .4byte _080C7652
-_080C7570:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- beq _080C7580
- b _080C7698
-_080C7580:
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r0, _080C75A4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- movs r0, 0x1
- strh r0, [r4]
- movs r0, 0x31
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C75A4: .4byte sub_80C72C4
-_080C75A8:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x96
- bne _080C7698
- bl pal_fill_black
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7698
-_080C75C4:
- ldrh r0, [r4, 0x2]
- adds r3, r0, 0x1
- strh r3, [r4, 0x2]
- ldr r0, _080C7608
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080C7698
- lsls r1, r3, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _080C7698
- strh r2, [r4, 0x2]
- ldrb r0, [r4, 0x4]
- bl DestroyTask
- ldr r0, _080C760C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x6]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x32
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C7608: .4byte gPaletteFade
-_080C760C: .4byte sub_80C7374
-_080C7610:
- ldr r2, _080C7630
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080C7698
- bl InstallCameraPanAheadCallback
- strh r5, [r4, 0x2]
- movs r0, 0x4
- strh r0, [r4]
- b _080C7698
- .align 2, 0
-_080C7630: .4byte gTasks
-_080C7634:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- bne _080C7698
- movs r0, 0x33
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x5
- strh r0, [r4]
- b _080C7698
-_080C7652:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bne _080C7698
- movs r2, 0x82
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x84
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- movs r2, 0x86
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x34
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
-_080C7698:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C752C
-
- thumb_func_start sub_80C76A0
-sub_80C76A0: @ 80C76A0
- push {lr}
- sub sp, 0x4
- ldr r2, _080C76E8
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76EC
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76F0
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- bl ScriptContext2_Enable
- movs r0, 0
- str r0, [sp]
- ldr r1, _080C76F4
- ldr r2, _080C76F8
- mov r0, sp
- bl CpuFastSet
- ldr r0, _080C76FC
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C76E8: .4byte 0x0000020d
-_080C76EC: .4byte 0x00000215
-_080C76F0: .4byte 0x0000021d
-_080C76F4: .4byte gPlttBufferFaded
-_080C76F8: .4byte 0x01000100
-_080C76FC: .4byte sub_80C752C
- thumb_func_end sub_80C76A0
-
- thumb_func_start sub_80C7700
-sub_80C7700: @ 80C7700
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080C774C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080C7744
- ldr r4, _080C7750
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r5, 0x3
- negs r5, r5
- str r5, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- str r6, [sp]
- movs r0, 0x3
- adds r3, r5, 0
- bl sub_805BD90
-_080C7744:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C774C: .4byte sub_80C752C
-_080C7750: .4byte gSaveBlock1
- thumb_func_end sub_80C7700
-
- thumb_func_start sub_80C7754
-sub_80C7754: @ 80C7754
- push {r4-r6,lr}
- sub sp, 0xC
- mov r4, sp
- adds r4, 0x5
- mov r5, sp
- adds r5, 0x6
- add r6, sp, 0x8
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- cmp r0, 0
- bne _080C7796
- add r0, sp, 0x4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r2, 0x1
- negs r2, r2
- movs r3, 0
- ldrsb r3, [r5, r3]
- movs r4, 0
- ldrsb r4, [r6, r4]
- str r4, [sp]
- bl warp1_set
- movs r0, 0x1
- b _080C7798
-_080C7796:
- movs r0, 0
-_080C7798:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7754
-
- thumb_func_start sub_80C77A0
-sub_80C77A0: @ 80C77A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C77CC
- adds r4, r0, r1
- ldr r0, _080C77D0
- bl GetVarPointer
- adds r6, r0, 0
- ldr r7, _080C77D4
- movs r0, 0
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080C77FC
- cmp r2, 0x1
- bgt _080C77D8
- cmp r2, 0
- beq _080C77E2
- b _080C7896
- .align 2, 0
-_080C77CC: .4byte gUnknown_03004B28
-_080C77D0: .4byte 0x000040b4
-_080C77D4: .4byte gSaveBlock1 + 0x4
-_080C77D8:
- cmp r2, 0x2
- beq _080C783E
- cmp r2, 0x3
- beq _080C7878
- b _080C7896
-_080C77E2:
- ldr r0, _080C77F8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C7896
- strh r2, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C77F8: .4byte gPaletteFade
-_080C77FC:
- ldr r0, _080C7830
- ldrh r1, [r0, 0x2E]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C780A
- strh r2, [r4, 0x2]
-_080C780A:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- movs r0, 0xFF
- bl sub_80A212C
- lsls r0, 24
- cmp r0, 0
- beq _080C7896
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- bne _080C783A
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7834
- movs r0, 0x9
- b _080C7836
- .align 2, 0
-_080C7830: .4byte gMain
-_080C7834:
- movs r0, 0xA
-_080C7836:
- strh r0, [r6]
- b _080C7846
-_080C783A:
- movs r0, 0x2
- strh r0, [r4]
-_080C783E:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C784C
-_080C7846:
- movs r0, 0x3
- strh r0, [r4]
- b _080C7896
-_080C784C:
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7860
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C785C
- b _080C7866
- .align 2, 0
-_080C785C: .4byte gUnknown_083D295F
-_080C7860:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C7874
-_080C7866:
- movs r0, 0xFF
- bl exec_movement
- movs r0, 0x1
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C7874: .4byte gUnknown_083D2961
-_080C7878:
- ldr r0, _080C789C
- bl FlagReset
- movs r0, 0x80
- lsls r0, 7
- bl FlagReset
- movs r0, 0
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl sp13E_warp_to_last_warp
- adds r0, r5, 0
- bl DestroyTask
-_080C7896:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C789C: .4byte 0x00004001
- thumb_func_end sub_80C77A0
-
- thumb_func_start sub_80C78A0
-sub_80C78A0: @ 80C78A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080C78F4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8C
- movs r2, 0x70
- movs r3, 0x50
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C78F8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080C78FC
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _080C7900
- movs r0, 0x4
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- b _080C7912
- .align 2, 0
-_080C78F4: .4byte SpriteCallbackDummy
-_080C78F8: .4byte gSprites
-_080C78FC: .4byte 0x000040b4
-_080C7900:
- movs r0, 0x3
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080C7912:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C78A0
-
- thumb_func_start sub_80C791C
-sub_80C791C: @ 80C791C
- push {lr}
- bl sub_80C78A0
- ldr r2, _080C794C
- ldr r0, _080C7950
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl pal_fill_black
- ldr r0, _080C7954
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_080C794C: .4byte gMapObjects
-_080C7950: .4byte gPlayerAvatar
-_080C7954: .4byte sub_80C77A0
- thumb_func_end sub_80C791C
-
- thumb_func_start sub_80C7958
-sub_80C7958: @ 80C7958
- push {lr}
- ldr r0, _080C7990
- bl FlagSet
- ldr r0, _080C7994
- bl FlagSet
- movs r0, 0x80
- lsls r0, 7
- bl FlagSet
- ldr r0, _080C7998
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- bl sub_80C7754
- bl sub_8080F9C
- pop {r0}
- bx r0
- .align 2, 0
-_080C7990: .4byte 0x0000082d
-_080C7994: .4byte 0x00004001
-_080C7998: .4byte gSaveBlock1
- thumb_func_end sub_80C7958
-
- thumb_func_start GetCurrentMapRotatingGatePuzzleType
-GetCurrentMapRotatingGatePuzzleType: @ 80C799C
- push {lr}
- ldr r0, _080C79B0
- ldrh r1, [r0, 0x4]
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- bne _080C79B4
- movs r0, 0x1
- b _080C79C6
- .align 2, 0
-_080C79B0: .4byte gSaveBlock1
-_080C79B4:
- ldr r0, _080C79C0
- cmp r1, r0
- beq _080C79C4
- movs r0, 0
- b _080C79C6
- .align 2, 0
-_080C79C0: .4byte 0x0000081d
-_080C79C4:
- movs r0, 0x2
-_080C79C6:
- pop {r1}
- bx r1
- thumb_func_end GetCurrentMapRotatingGatePuzzleType
-
- thumb_func_start sub_80C79CC
-sub_80C79CC: @ 80C79CC
- push {r4-r6,lr}
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r5, r0, 0
- movs r3, 0
- ldr r4, _080C7A00
- ldrb r0, [r4]
- cmp r3, r0
- bge _080C79F8
- ldr r6, _080C7A04
-_080C79E4:
- adds r2, r5, r3
- ldr r1, [r6]
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _080C79E4
-_080C79F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7A00: .4byte gUnknown_02038804
-_080C7A04: .4byte gUnknown_02038800
- thumb_func_end sub_80C79CC
-
- thumb_func_start sub_80C7A08
-sub_80C7A08: @ 80C7A08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7A08
-
- thumb_func_start sub_80C7A24
-sub_80C7A24: @ 80C7A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A24
-
- thumb_func_start sub_80C7A44
-sub_80C7A44: @ 80C7A44
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- bne _080C7A68
- cmp r1, 0
- beq _080C7A64
- subs r0, r1, 0x1
- lsls r0, 24
- b _080C7A72
-_080C7A64:
- movs r1, 0x3
- b _080C7A74
-_080C7A68:
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
-_080C7A72:
- lsrs r1, r0, 24
-_080C7A74:
- adds r0, r5, 0
- bl sub_80C7A24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A44
-
- thumb_func_start sub_80C7A80
-sub_80C7A80: @ 80C7A80
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0x1
- beq _080C7A94
- cmp r0, 0x1
- ble _080C7AC8
- cmp r0, 0x2
- beq _080C7AAC
- b _080C7AC8
-_080C7A94:
- ldr r1, _080C7AA0
- ldr r0, _080C7AA4
- str r0, [r1]
- ldr r1, _080C7AA8
- movs r0, 0x7
- b _080C7AB6
- .align 2, 0
-_080C7AA0: .4byte gUnknown_02038800
-_080C7AA4: .4byte gUnknown_083D2964
-_080C7AA8: .4byte gUnknown_02038804
-_080C7AAC:
- ldr r1, _080C7ACC
- ldr r0, _080C7AD0
- str r0, [r1]
- ldr r1, _080C7AD4
- movs r0, 0xE
-_080C7AB6:
- strb r0, [r1]
- movs r1, 0
- ldr r3, _080C7AD8
- movs r2, 0x40
-_080C7ABE:
- adds r0, r1, r3
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0xD
- bls _080C7ABE
-_080C7AC8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7ACC: .4byte gUnknown_02038800
-_080C7AD0: .4byte gUnknown_083D299C
-_080C7AD4: .4byte gUnknown_02038804
-_080C7AD8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7A80
-
- thumb_func_start sub_80C7ADC
-sub_80C7ADC: @ 80C7ADC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- ldr r2, _080C7B9C
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r5, 0
- ldr r0, _080C7BA0
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080C7B8C
- lsls r0, r2, 16
- asrs r7, r0, 16
- lsls r0, r3, 16
- asrs r6, r0, 16
-_080C7B28:
- ldr r0, _080C7BA4
- ldr r0, [r0]
- lsls r1, r5, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080C7B7E
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r6, r1
- bgt _080C7B7E
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- ldr r0, _080C7BA8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x40
- bne _080C7B7E
- ldr r3, [sp]
- lsls r1, r3, 16
- mov r0, r10
- lsls r2, r0, 16
- adds r0, r5, 0
- asrs r1, 16
- asrs r2, 16
- bl sub_80C7BAC
- strb r0, [r4]
-_080C7B7E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7BA0
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080C7B28
-_080C7B8C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7B9C: .4byte gSaveBlock1
-_080C7BA0: .4byte gUnknown_02038804
-_080C7BA4: .4byte gUnknown_02038800
-_080C7BA8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7ADC
-
- thumb_func_start sub_80C7BAC
-sub_80C7BAC: @ 80C7BAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080C7BDC
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080C7BD4
- cmp r0, 0x4
- bne _080C7BE4
-_080C7BD4:
- mov r1, sp
- ldr r0, _080C7BE0
- b _080C7BE8
- .align 2, 0
-_080C7BDC: .4byte gUnknown_02038800
-_080C7BE0: .4byte gSpriteTemplate_83D60A4
-_080C7BE4:
- mov r1, sp
- ldr r0, _080C7C7C
-_080C7BE8:
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r2, sp
- ldrb r0, [r4, 0x4]
- movs r3, 0x98
- lsls r3, 5
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7C84
- ldrh r0, [r4]
- adds r0, 0x7
- ldrh r1, [r4, 0x2]
- adds r1, 0x7
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r2, _080C7C80
- adds r4, r2
- strh r6, [r4, 0x2E]
- movs r2, 0x3E
- adds r2, r4
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x2
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 16
- asrs r2, 16
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- mov r3, r8
- lsls r2, r3, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- adds r0, r4, 0
- bl sub_80C7D14
- adds r0, r6, 0
- bl sub_80C7A08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- b _080C7C86
- .align 2, 0
-_080C7C7C: .4byte gSpriteTemplate_83D608C
-_080C7C80: .4byte gSprites
-_080C7C84:
- movs r0, 0x40
-_080C7C86:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7BAC
-
- thumb_func_start sub_80C7C94
-sub_80C7C94: @ 80C7C94
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r6, 0
- bl sub_80C7D14
- cmp r5, 0x1
- bne _080C7CDA
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CCA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CCA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
- b _080C7D08
-_080C7CDA:
- cmp r5, 0x2
- bne _080C7D08
- adds r0, r7, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CFA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CFA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
-_080C7D08:
- movs r0, 0
- strh r0, [r6, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7C94
-
- thumb_func_start sub_80C7D14
-sub_80C7D14: @ 80C7D14
- push {r4-r6,lr}
- mov r12, r0
- mov r4, r12
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r5, 0x5
- negs r5, r5
- ands r5, r0
- strb r5, [r4]
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldr r0, _080C7DA8
- adds r2, r1
- ldrh r0, [r0]
- adds r2, r0
- lsls r2, 16
- mov r3, r12
- ldrh r1, [r3, 0x26]
- ldrh r0, [r3, 0x22]
- adds r1, r0
- mov r0, r12
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r3, _080C7DAC
- adds r0, r1
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- movs r3, 0x80
- lsls r3, 15
- adds r1, r2, r3
- lsrs r1, 16
- lsrs r6, r0, 16
- adds r0, r3
- lsrs r3, r0, 16
- asrs r2, 16
- cmp r2, 0xFF
- bgt _080C7D7A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7D82
-_080C7D7A:
- movs r1, 0x4
- adds r0, r5, 0
- orrs r0, r1
- strb r0, [r4]
-_080C7D82:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080C7D96
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7DA2
-_080C7D96:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080C7DA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DA8: .4byte gSpriteCoordOffsetX
-_080C7DAC: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_80C7D14
-
- thumb_func_start LoadRotatingGatePics
-LoadRotatingGatePics: @ 80C7DB0
- push {lr}
- ldr r0, _080C7DBC
- bl LoadSpriteSheets
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DBC: .4byte gRotatingGatesGraphicsTable
- thumb_func_end LoadRotatingGatePics
-
- thumb_func_start sub_80C7DC0
-sub_80C7DC0: @ 80C7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _080C7DF4
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r1, 0xE
- lsls r1, 16
- lsrs r7, r1, 16
- movs r6, 0
- b _080C7E66
- .align 2, 0
-_080C7DF4: .4byte gSaveBlock1
-_080C7DF8:
- ldr r0, _080C7E7C
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080C7E80
- adds r0, r6, r0
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _080C7E64
- lsls r0, r2, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r2, r0
- bgt _080C7E44
- lsls r0, r3, 16
- mov r2, r8
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- lsls r0, r7, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C7E64
-_080C7E44:
- ldr r0, _080C7E80
- adds r5, r6, r0
- ldrb r0, [r5]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7E84
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
-_080C7E64:
- adds r6, 0x1
-_080C7E66:
- ldr r0, _080C7E88
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C7DF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7E7C: .4byte gUnknown_02038800
-_080C7E80: .4byte gUnknown_020387F0
-_080C7E84: .4byte gSprites
-_080C7E88: .4byte gUnknown_02038804
- thumb_func_end sub_80C7DC0
-
- thumb_func_start sub_80C7E8C
-sub_80C7E8C: @ 80C7E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r1, 0x1
- bne _080C7EAC
- ldr r0, _080C7EA8
- mov r10, r0
- b _080C7EB8
- .align 2, 0
-_080C7EA8: .4byte gUnknown_083D611C
-_080C7EAC:
- cmp r1, 0x2
- beq _080C7EB4
-_080C7EB0:
- movs r0, 0
- b _080C7F48
-_080C7EB4:
- ldr r1, _080C7F58
- mov r10, r1
-_080C7EB8:
- adds r0, r4, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, _080C7F5C
- ldr r1, [r0]
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- movs r3, 0
- lsls r2, 3
- str r2, [sp, 0x4]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
-_080C7EE8:
- movs r6, 0
- ldr r2, [sp]
- adds r7, r2, r3
- lsls r0, r3, 1
- adds r5, r7, 0
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r2, _080C7F60
- adds r4, r0, r2
-_080C7EFA:
- adds r0, r5, 0
- cmp r5, 0
- bge _080C7F02
- adds r0, r7, 0x3
-_080C7F02:
- asrs r0, 2
- lsls r0, 2
- subs r0, r5, r0
- lsls r0, 1
- adds r0, r6
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _080C7F38
- lsls r1, 2
- add r1, r10
- movs r0, 0
- ldrsb r0, [r1, r0]
- add r0, r9
- ldrb r1, [r1, 0x1]
- lsls r1, 24
- asrs r1, 24
- add r1, r8
- str r3, [sp, 0x8]
- bl MapGridIsImpassableAt
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x8]
- cmp r0, 0x1
- beq _080C7EB0
-_080C7F38:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1
- ble _080C7EFA
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C7EE8
- movs r0, 0x1
-_080C7F48:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7F58: .4byte gUnknown_083D60FC
-_080C7F5C: .4byte gUnknown_02038800
-_080C7F60: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7E8C
-
- thumb_func_start sub_80C7F64
-sub_80C7F64: @ 80C7F64
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r4, 24
- lsrs r5, r4, 24
- lsrs r4, 25
- movs r0, 0x1
- ands r5, r0
- adds r0, r6, 0
- bl sub_80C7A08
- subs r4, r0
- adds r1, r4, 0x4
- adds r0, r1, 0
- cmp r1, 0
- bge _080C7F8A
- adds r0, r4, 0x7
-_080C7F8A:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- ldr r1, _080C7FB0
- ldr r2, [r1]
- lsls r1, r6, 3
- adds r1, r2
- ldrb r1, [r1, 0x4]
- ldr r2, _080C7FB4
- lsls r0, 24
- asrs r0, 23
- adds r0, r5
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7FB0: .4byte gUnknown_02038800
-_080C7FB4: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7F64
-
- thumb_func_start sub_80C7FB8
-sub_80C7FB8: @ 80C7FB8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080C7FE4
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x40
- beq _080C7FDC
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7FE8
- adds r4, r0
- strh r1, [r4, 0x30]
- adds r0, r3, 0
- bl sub_80C7A08
- strh r0, [r4, 0x32]
-_080C7FDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7FE4: .4byte gUnknown_020387F0
-_080C7FE8: .4byte gSprites
- thumb_func_end sub_80C7FB8
-
- thumb_func_start sub_80C7FEC
-sub_80C7FEC: @ 80C7FEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0x2
- bne _080C8008
- ldr r3, _080C8004
- b _080C802A
- .align 2, 0
-_080C8004: .4byte gUnknown_083D60BC
-_080C8008:
- cmp r0, 0x1
- bne _080C8014
- ldr r3, _080C8010
- b _080C802A
- .align 2, 0
-_080C8010: .4byte gUnknown_083D60CC
-_080C8014:
- cmp r0, 0x3
- bne _080C8020
- ldr r3, _080C801C
- b _080C802A
- .align 2, 0
-_080C801C: .4byte gUnknown_083D60DC
-_080C8020:
- cmp r3, 0x4
- beq _080C8028
- movs r0, 0xFF
- b _080C8038
-_080C8028:
- ldr r3, _080C803C
-_080C802A:
- lsls r0, r2, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 14
- adds r0, r1
- adds r0, r3, r0
- ldrb r0, [r0]
-_080C8038:
- pop {r1}
- bx r1
- .align 2, 0
-_080C803C: .4byte gUnknown_083D60EC
- thumb_func_end sub_80C7FEC
-
- thumb_func_start sub_80C8040
-sub_80C8040: @ 80C8040
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C8052
- bl sub_80C7A80
- bl sub_80C79CC
-_080C8052:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8040
-
- thumb_func_start RotatingGatePuzzleCameraUpdate
-RotatingGatePuzzleCameraUpdate: @ 80C8058
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C807A
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl sub_80C7ADC
- bl sub_80C7DC0
-_080C807A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end RotatingGatePuzzleCameraUpdate
-
- thumb_func_start sub_80C8080
-sub_80C8080: @ 80C8080
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C809A
- bl LoadRotatingGatePics
- bl sub_80C7A80
- movs r0, 0
- movs r1, 0
- bl sub_80C7ADC
-_080C809A:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8080
-
- thumb_func_start CheckForRotatingGatePuzzleCollision
-CheckForRotatingGatePuzzleCollision: @ 80C80A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- bne _080C80D4
- b _080C8172
-_080C80C2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7FB8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7A44
- b _080C8172
-_080C80D4:
- movs r6, 0
- ldr r0, _080C8160
- ldrb r0, [r0]
- cmp r6, r0
- bge _080C8172
- lsls r0, r4, 16
- asrs r7, r0, 16
-_080C80E2:
- ldr r0, _080C8164
- ldr r1, [r0]
- lsls r0, r6, 3
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- subs r0, r4, 0x2
- cmp r0, r7
- bgt _080C8168
- adds r0, r4, 0x1
- cmp r7, r0
- bgt _080C8168
- lsls r0, r2, 16
- asrs r3, r0, 16
- subs r1, r3, 0x2
- mov r2, r8
- lsls r0, r2, 16
- asrs r2, r0, 16
- cmp r1, r2
- bgt _080C8168
- adds r0, r3, 0x1
- cmp r2, r0
- bgt _080C8168
- subs r1, r7, r4
- adds r1, 0x2
- subs r2, r3
- adds r2, 0x2
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- mov r0, r9
- bl sub_80C7FEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080C8168
- lsrs r5, r0, 4
- movs r1, 0xF
- ands r1, r0
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80C7F64
- cmp r0, 0
- beq _080C8168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7E8C
- cmp r0, 0
- bne _080C80C2
- movs r0, 0x1
- b _080C8174
- .align 2, 0
-_080C8160: .4byte gUnknown_02038804
-_080C8164: .4byte gUnknown_02038800
-_080C8168:
- adds r6, 0x1
- ldr r0, _080C8180
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C80E2
-_080C8172:
- movs r0, 0
-_080C8174:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C8180: .4byte gUnknown_02038804
- thumb_func_end CheckForRotatingGatePuzzleCollision
-
- thumb_func_start GetSafariZoneFlag
-GetSafariZoneFlag: @ 80C8184
- push {lr}
- ldr r0, _080C8194
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C8194: .4byte 0x0000082c
- thumb_func_end GetSafariZoneFlag
-
- thumb_func_start SetSafariZoneFlag
-SetSafariZoneFlag: @ 80C8198
- push {lr}
- ldr r0, _080C81A4
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C81A4: .4byte 0x0000082c
- thumb_func_end SetSafariZoneFlag
-
- thumb_func_start ResetSafariZoneFlag
-ResetSafariZoneFlag: @ 80C81A8
- push {lr}
- ldr r0, _080C81B4
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080C81B4: .4byte 0x0000082c
- thumb_func_end ResetSafariZoneFlag
-
- thumb_func_start sub_80C81B8
-sub_80C81B8: @ 80C81B8
- push {lr}
- movs r0, 0x11
- bl sav12_xor_increment
- bl SetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C81DC
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _080C81E0
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C81DC: .4byte gUnknown_02038808
-_080C81E0: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81B8
-
- thumb_func_start sub_80C81E4
-sub_80C81E4: @ 80C81E4
- push {lr}
- bl ResetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C8200
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080C8204
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C8200: .4byte gUnknown_02038808
-_080C8204: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81E4
-
- thumb_func_start safari_step
-safari_step: @ 80C8208
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _080C8224
- bl sub_80C8508
- ldr r1, _080C8228
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _080C822C
-_080C8224:
- movs r0, 0
- b _080C8234
- .align 2, 0
-_080C8228: .4byte gUnknown_0203880A
-_080C822C:
- ldr r0, _080C8238
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_080C8234:
- pop {r1}
- bx r1
- .align 2, 0
-_080C8238: .4byte gUnknown_081C3448
- thumb_func_end safari_step
-
- thumb_func_start sub_80C823C
-sub_80C823C: @ 80C823C
- push {lr}
- ldr r0, _080C8248
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C8248: .4byte gUnknown_081C342D
- thumb_func_end sub_80C823C
-
- thumb_func_start sub_80C824C
-sub_80C824C: @ 80C824C
- push {lr}
- ldr r0, _080C8260
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C8268
- ldr r0, _080C8264
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8260: .4byte gUnknown_02038808
-_080C8264: .4byte c2_exit_to_overworld_2_switch
-_080C8268:
- ldr r0, _080C8288
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080C829C
- ldr r0, _080C828C
- bl ScriptContext2_RunNewScript
- bl warp_in
- ldr r1, _080C8290
- ldr r0, _080C8294
- str r0, [r1]
- ldr r0, _080C8298
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8288: .4byte gUnknown_02024D26
-_080C828C: .4byte gUnknown_081C340A
-_080C8290: .4byte gUnknown_0300485C
-_080C8294: .4byte sub_8080E44
-_080C8298: .4byte CB2_LoadMap
-_080C829C:
- cmp r0, 0x7
- bne _080C82B0
- ldr r0, _080C82B4
- bl ScriptContext1_SetupScript
- bl ScriptContext1_Stop
- ldr r0, _080C82B8
- bl SetMainCallback2
-_080C82B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C82B4: .4byte gUnknown_081C3459
-_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C824C
-
- thumb_func_start sub_80C82BC
-sub_80C82BC: @ 80C82BC
- push {lr}
- lsls r0, 24
- lsrs r0, 20
- ldr r1, _080C82D4
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82D4: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82BC
-
- thumb_func_start sub_80C82D8
-sub_80C82D8: @ 80C82D8
- push {lr}
- ldr r0, _080C82E8
- movs r1, 0
- movs r2, 0xA0
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82E8: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82D8
-
- thumb_func_start sub_80C82EC
-sub_80C82EC: @ 80C82EC
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r3, 0
- adds r5, r4, 0
- ldr r4, _080C8344
-_080C8302:
- ldr r1, _080C8348
- lsls r0, r3, 4
- adds r2, r0, r1
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _080C8358
- mov r0, sp
- movs r6, 0
- ldrsh r1, [r2, r6]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- bne _080C8358
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r6, 0
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bne _080C8358
- ldr r0, _080C834C
- strh r3, [r0]
- ldr r1, _080C8350
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080C8354
- bl StringCopy
- b _080C836A
- .align 2, 0
-_080C8344: .4byte gSaveBlock1
-_080C8348: .4byte gUnknown_0203880C
-_080C834C: .4byte gScriptResult
-_080C8350: .4byte gUnknown_083F7EB8
-_080C8354: .4byte gStringVar1
-_080C8358:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _080C8302
- ldr r1, _080C8374
- ldr r2, _080C8378
- adds r0, r2, 0
- strh r0, [r1]
-_080C836A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8374: .4byte gScriptResult
-_080C8378: .4byte 0x0000ffff
- thumb_func_end sub_80C82EC
-
- thumb_func_start sub_80C837C
-sub_80C837C: @ 80C837C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r5, 0
- adds r6, r4, 0
- ldr r0, _080C83E8
- movs r7, 0x5
- ldrsb r7, [r0, r7]
- mov r4, sp
- ldr r0, _080C83EC
- mov r12, r0
-_080C839C:
- lsls r0, r5, 4
- mov r1, r12
- adds r2, r0, r1
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r7, r0
- bne _080C83F4
- ldrh r0, [r4]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4]
- adds r3, r6, 0
- ldrh r0, [r3]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r3]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080C83C8
- negs r0, r0
- strh r0, [r4]
-_080C83C8:
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080C83D4
- negs r0, r0
- strh r0, [r3]
-_080C83D4:
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- adds r0, r1
- cmp r0, 0x5
- bgt _080C83F4
- ldr r0, _080C83F0
- strh r5, [r0]
- b _080C8406
- .align 2, 0
-_080C83E8: .4byte gSaveBlock1
-_080C83EC: .4byte gUnknown_0203880C
-_080C83F0: .4byte gScriptResult
-_080C83F4:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080C839C
- ldr r1, _080C8410
- ldr r2, _080C8414
- adds r0, r2, 0
- strh r0, [r1]
-_080C8406:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8410: .4byte gScriptResult
-_080C8414: .4byte 0x0000ffff
- thumb_func_end sub_80C837C
-
- thumb_func_start unref_sub_80C8418
-unref_sub_80C8418: @ 80C8418
- push {lr}
- bl sub_80C82EC
- ldr r2, _080C8434
- ldrh r1, [r2]
- ldr r0, _080C8438
- cmp r1, r0
- beq _080C8440
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C843C
- adds r0, r1
- b _080C8442
- .align 2, 0
-_080C8434: .4byte gScriptResult
-_080C8438: .4byte 0x0000ffff
-_080C843C: .4byte gUnknown_02038814
-_080C8440:
- movs r0, 0
-_080C8442:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C8418
-
- thumb_func_start sub_80C8448
-sub_80C8448: @ 80C8448
- push {lr}
- bl sub_80C837C
- ldr r2, _080C8464
- ldrh r1, [r2]
- ldr r0, _080C8468
- cmp r1, r0
- beq _080C8470
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C846C
- adds r0, r1
- b _080C8472
- .align 2, 0
-_080C8464: .4byte gScriptResult
-_080C8468: .4byte 0x0000ffff
-_080C846C: .4byte gUnknown_02038814
-_080C8470:
- movs r0, 0
-_080C8472:
- pop {r1}
- bx r1
- thumb_func_end sub_80C8448
-
- thumb_func_start sub_80C8478
-sub_80C8478: @ 80C8478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- movs r2, 0
- ldr r3, _080C84E8
- mov r6, sp
- adds r6, 0x2
- ldr r7, _080C84EC
- movs r1, 0x8
- adds r1, r3
- mov r9, r1
- movs r4, 0xFF
- lsls r4, 3
- adds r1, r7, r4
- lsrs r0, 21
- adds r0, r1
- mov r8, r0
-_080C84A0:
- lsls r5, r2, 4
- adds r4, r5, r3
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- mov r0, sp
- adds r1, r6, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldrb r0, [r7, 0x5]
- strb r0, [r4, 0x4]
- mov r3, r9
- adds r2, r5, r3
- mov r3, r8
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x64
- strb r0, [r4, 0x5]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r6]
- strh r0, [r4, 0x2]
- b _080C84FA
- .align 2, 0
-_080C84E8: .4byte gUnknown_0203880C
-_080C84EC: .4byte gSaveBlock1
-_080C84F0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9
- bls _080C84A0
-_080C84FA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8478
-
- thumb_func_start sub_80C8508
-sub_80C8508: @ 80C8508
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C8538
-_080C850E:
- lsls r0, r4, 4
- adds r1, r0, r5
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _080C8528
- subs r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- cmp r0, 0
- bne _080C8528
- adds r0, r4, 0
- bl sub_80C82BC
-_080C8528:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080C850E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8538: .4byte gUnknown_0203880C
- thumb_func_end sub_80C8508
-
- thumb_func_start unref_sub_80C853C
-unref_sub_80C853C: @ 80C853C
- push {lr}
- bl sub_80C82EC
- ldr r3, _080C8564
- ldrh r1, [r3]
- ldr r0, _080C8568
- cmp r1, r0
- beq _080C8574
- ldr r0, _080C856C
- ldr r2, _080C8570
- lsls r1, 4
- adds r1, r2
- ldrb r1, [r1, 0x5]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- b _080C8576
- .align 2, 0
-_080C8564: .4byte gScriptResult
-_080C8568: .4byte 0x0000ffff
-_080C856C: .4byte gStringVar2
-_080C8570: .4byte gUnknown_0203880C
-_080C8574:
- movs r0, 0
-_080C8576:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C853C
-
- thumb_func_start sub_80C857C
-sub_80C857C: @ 80C857C
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r5, _080C85A8
- adds r0, r5, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl memcpy
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl SendBlock
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C85A8: .4byte 0x0201e000
- thumb_func_end sub_80C857C
-
- thumb_func_start sub_80C85AC
-sub_80C85AC: @ 80C85AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r4, r1, 24
- bl GetBlockRecievedStatus
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080C85D0
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- movs r0, 0x1
- b _080C85D2
-_080C85D0:
- movs r0, 0
-_080C85D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85AC
-
- thumb_func_start sub_80C85D8
-sub_80C85D8: @ 80C85D8
- push {r4,lr}
- movs r4, 0
-_080C85DC:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C85F2
- movs r0, 0
- b _080C85FE
-_080C85F2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C85DC
- bl ResetBlockReceivedFlags
- movs r0, 0x1
-_080C85FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85D8
-
- thumb_func_start sub_80C8604
-sub_80C8604: @ 80C8604
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r5, _080C8638
- ldr r6, _080C863C
- ldr r4, _080C8640
- movs r3, 0xFF
-_080C8614:
- lsls r0, r1, 8
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C8614
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x8]
- str r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8638: .4byte gTasks
-_080C863C: .4byte sub_80C8644
-_080C8640: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8604
-
- thumb_func_start sub_80C8644
-sub_80C8644: @ 80C8644
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C8658
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C865C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C8658: .4byte gTasks
-_080C865C: .4byte sub_80C8660
- thumb_func_end sub_80C8644
-
- thumb_func_start sub_80C8660
-sub_80C8660: @ 80C8660
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C8694
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C868E
- bl GetMultiplayerId
- ldr r1, _080C8698
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C868E
- ldr r1, _080C869C
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C868E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gUnknown_02038695
-_080C869C: .4byte gUnknown_0203869A
- thumb_func_end sub_80C8660
-
- thumb_func_start sub_80C86A0
-sub_80C86A0: @ 80C86A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x2
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C86B6
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C86B6
- movs r0, 0x2
- b _080C872C
-_080C86B6:
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080C872A
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080C872A
-_080C86CA:
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r0, 0x45
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- bls _080C871E
- adds r0, r1, 0
- adds r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080C871E
- adds r0, r1, 0
- cmp r0, 0
- beq _080C871E
- cmp r0, 0xAD
- beq _080C871E
- cmp r0, 0xB8
- beq _080C871E
- cmp r0, 0xAB
- beq _080C871E
- cmp r0, 0xAC
- beq _080C871E
- cmp r0, 0xB5
- beq _080C871E
- cmp r0, 0xB6
- beq _080C871E
- cmp r0, 0xBA
- beq _080C871E
- cmp r0, 0xAE
- beq _080C871E
- cmp r0, 0xB0
- beq _080C871E
- cmp r0, 0xB1
- beq _080C871E
- cmp r0, 0xB2
- beq _080C871E
- cmp r0, 0xB3
- beq _080C871E
- cmp r0, 0xB1
- bne _080C8728
-_080C871E:
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080C86CA
- b _080C872A
-_080C8728:
- movs r5, 0x1
-_080C872A:
- adds r0, r5, 0
-_080C872C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C86A0
-
- thumb_func_start sub_80C8734
-sub_80C8734: @ 80C8734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080C8768
- lsls r5, r0, 2
- adds r0, r5, r0
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C876C
- cmp r0, 0x1
- beq _080C87D0
- movs r0, 0
- strh r0, [r4, 0x8]
- mov r0, r9
- bl SwitchTaskToFollowupFunc
- b _080C8896
- .align 2, 0
-_080C8768: .4byte gTasks
-_080C876C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C87A8
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8782
- b _080C8896
-_080C8782:
- ldr r0, _080C879C
- ldr r1, _080C87A0
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87A4
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- movs r0, 0x2
- bl sub_8007E9C
- b _080C87BA
- .align 2, 0
-_080C879C: .4byte gBlockSendBuffer
-_080C87A0: .4byte gUnknown_02038695
-_080C87A4: .4byte gUnknown_02038570
-_080C87A8:
- ldr r0, _080C87C4
- ldr r1, _080C87C8
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87CC
- adds r1, r2
- movs r2, 0x40
- bl memcpy
-_080C87BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8896
- .align 2, 0
-_080C87C4: .4byte gBlockSendBuffer
-_080C87C8: .4byte gUnknown_02038695
-_080C87CC: .4byte gUnknown_02038570
-_080C87D0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8896
- movs r7, 0
- str r5, [sp]
- ldr r0, _080C8818
- ldr r6, _080C881C
- movs r5, 0
- mov r10, r0
- movs r2, 0xFF
- mov r8, r2
-_080C87EA:
- lsls r1, r7, 8
- ldr r0, _080C8820
- adds r1, r0
- mov r0, r10
- movs r2, 0x40
- bl memcpy
- ldr r0, _080C8824
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8828
- adds r0, r4, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- b _080C883E
- .align 2, 0
-_080C8818: .4byte gUnknown_02038570
-_080C881C: .4byte gLinkPlayers
-_080C8820: .4byte gBlockRecvBuffer
-_080C8824: .4byte gUnknown_02038572
-_080C8828:
- ldrb r0, [r4, 0xA]
- cmp r0, 0xFC
- bne _080C8838
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _080C883E
-_080C8838:
- strb r0, [r4, 0x5]
- mov r1, r8
- strb r1, [r4, 0xA]
-_080C883E:
- ldr r0, _080C886C
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8870
- mov r2, r8
- strb r2, [r4, 0x7]
- ldrb r0, [r4, 0x4]
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x3]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x2]
- strb r0, [r4, 0x4]
- ldrb r0, [r4, 0x1]
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- strb r0, [r4, 0x2]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- movs r0, 0xFC
- strb r0, [r4]
- b _080C8878
- .align 2, 0
-_080C886C: .4byte gUnknown_0203857D
-_080C8870:
- ldrb r0, [r4, 0x7]
- strb r0, [r4, 0x5]
- mov r0, r8
- strb r0, [r4, 0x7]
-_080C8878:
- adds r6, 0x1C
- adds r5, 0x40
- movs r1, 0x40
- add r10, r1
- adds r7, 0x1
- cmp r7, 0x3
- ble _080C87EA
- ldr r0, _080C88A8
- ldr r1, [sp]
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8896:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C88A8: .4byte gTasks
- thumb_func_end sub_80C8734
-
- thumb_func_start sub_80C88AC
-sub_80C88AC: @ 80C88AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C88D4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080C88D8
- cmp r0, 0x1
- beq _080C88FC
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8924
- .align 2, 0
-_080C88D4: .4byte gTasks
-_080C88D8:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C891E
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C88F8
- movs r1, 0x4
- bl sub_80C857C
- b _080C891E
- .align 2, 0
-_080C88F8: .4byte gRngValue
-_080C88FC:
- movs r0, 0
- bl sub_80C85AC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C892C
- ldr r4, _080C8930
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _080C8934
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
-_080C891E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080C8924:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C892C: .4byte gRngValue
-_080C8930: .4byte gBlockRecvBuffer
-_080C8934: .4byte gUnknown_03005D28
- thumb_func_end sub_80C88AC
-
- thumb_func_start sub_80C8938
-sub_80C8938: @ 80C8938
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8968
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C896C
- cmp r0, 0x1
- beq _080C8998
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C89CE
- .align 2, 0
-_080C8968: .4byte gTasks
-_080C896C:
- ldr r1, _080C8994
- ldrh r0, [r4, 0x1A]
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C898C
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r0, 0x2
- bl sub_8007E9C
-_080C898C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C89CE
- .align 2, 0
-_080C8994: .4byte gBlockSendBuffer
-_080C8998:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r3, 0
- mov r12, r8
- adds r1, r6, 0
- ldr r4, _080C89D8
- mov r0, r12
- adds r0, 0xA
- adds r2, r7, r0
- movs r6, 0x80
- lsls r6, 1
-_080C89B4:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, r6
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C89B4
- adds r1, r5
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C89CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C89D8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8938
-
- thumb_func_start sub_80C89DC
-sub_80C89DC: @ 80C89DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8A04
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A08
- cmp r0, 0x1
- beq _080C8A20
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8A30
- .align 2, 0
-_080C8A04: .4byte gTasks
-_080C8A08:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
- ldr r0, _080C8A1C
- movs r1, 0x1
- bl sub_80C857C
- b _080C8A2A
- .align 2, 0
-_080C8A1C: .4byte gUnknown_02038695
-_080C8A20:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
-_080C8A2A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C89DC
-
- thumb_func_start sub_80C8A38
-sub_80C8A38: @ 80C8A38
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r7, _080C8A60
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r7
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A64
- cmp r0, 0x1
- beq _080C8A94
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8AC2
- .align 2, 0
-_080C8A60: .4byte gTasks
-_080C8A64:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r0, _080C8A8C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080C8A90
- adds r0, r1
- movs r1, 0x2
- bl sub_80C857C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8AC2
- .align 2, 0
-_080C8A8C: .4byte gUnknown_02038695
-_080C8A90: .4byte 0x02019266
-_080C8A94:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r1, _080C8AC8
- ldr r3, _080C8ACC
- movs r4, 0x80
- lsls r4, 1
- movs r2, 0x3
-_080C8AA8:
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, r4
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bge _080C8AA8
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8AC2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte 0x02019266
- thumb_func_end sub_80C8A38
-
- thumb_func_start sub_80C8AD0
-sub_80C8AD0: @ 80C8AD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8AF8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8AEC
- b _080C8C70
-_080C8AEC:
- lsls r0, 2
- ldr r1, _080C8AFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8AF8: .4byte gTasks
-_080C8AFC: .4byte _080C8B00
- .align 2, 0
-_080C8B00:
- .4byte _080C8B30
- .4byte _080C8B4C
- .4byte _080C8B74
- .4byte _080C8B98
- .4byte _080C8BB0
- .4byte _080C8B74
- .4byte _080C8BD8
- .4byte _080C8BF0
- .4byte _080C8B74
- .4byte _080C8C18
- .4byte _080C8C30
- .4byte _080C8B74
-_080C8B30:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8B3C
- b _080C8C7A
-_080C8B3C:
- ldr r0, _080C8B48
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8B48: .4byte gUnknown_02038678
-_080C8B4C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8B58
- b _080C8C7A
-_080C8B58:
- ldr r0, _080C8B68
- ldr r1, _080C8B6C
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8B70
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8B68: .4byte gUnknown_02038678
-_080C8B6C: .4byte gUnknown_0203869B
-_080C8B70: .4byte gBlockRecvBuffer
-_080C8B74:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bgt _080C8B8C
- b _080C8C7A
-_080C8B8C:
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8C7A
-_080C8B98:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BAC
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BAC: .4byte gUnknown_02038680
-_080C8BB0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BCC
- ldr r1, _080C8BD0
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8BD4
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8BCC: .4byte gUnknown_02038680
-_080C8BD0: .4byte gUnknown_0203869B
-_080C8BD4: .4byte gBlockRecvBuffer
-_080C8BD8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BEC
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BEC: .4byte gUnknown_02038688
-_080C8BF0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C0C
- ldr r1, _080C8C10
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C14
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8C0C: .4byte gUnknown_02038688
-_080C8C10: .4byte gUnknown_0203869B
-_080C8C14: .4byte gBlockRecvBuffer
-_080C8C18:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C2C
- movs r1, 0x4
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8C2C: .4byte gUnknown_02038690
-_080C8C30:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C60
- ldr r1, _080C8C64
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C68
- adds r1, r2
- movs r2, 0x4
-_080C8C48:
- bl memcpy
-_080C8C4C:
- ldr r1, _080C8C6C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8C7A
- .align 2, 0
-_080C8C60: .4byte gUnknown_02038690
-_080C8C64: .4byte gUnknown_0203869B
-_080C8C68: .4byte gBlockRecvBuffer
-_080C8C6C: .4byte gTasks
-_080C8C70:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8AD0
-
- thumb_func_start sub_80C8C80
-sub_80C8C80: @ 80C8C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8CA8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8C9C
- b _080C8E0C
-_080C8C9C:
- lsls r0, 2
- ldr r1, _080C8CAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8CA8: .4byte gTasks
-_080C8CAC: .4byte _080C8CB0
- .align 2, 0
-_080C8CB0:
- .4byte _080C8CE0
- .4byte _080C8CFC
- .4byte _080C8D24
- .4byte _080C8D46
- .4byte _080C8D60
- .4byte _080C8D24
- .4byte _080C8D88
- .4byte _080C8DA0
- .4byte _080C8D24
- .4byte _080C8DB4
- .4byte _080C8DCC
- .4byte _080C8D24
-_080C8CE0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8CEC
- b _080C8E16
-_080C8CEC:
- ldr r0, _080C8CF8
- movs r1, 0x70
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8CF8: .4byte 0x02019260
-_080C8CFC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8D08
- b _080C8E16
-_080C8D08:
- ldr r0, _080C8D18
- ldr r1, _080C8D1C
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D20
- adds r1, r2
- movs r2, 0x70
- b _080C8DE4
- .align 2, 0
-_080C8D18: .4byte 0x02019260
-_080C8D1C: .4byte gUnknown_0203869B
-_080C8D20: .4byte gBlockRecvBuffer
-_080C8D24:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080C8E16
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8E16
-_080C8D46:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D5C
- movs r1, 0x14
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D5C: .4byte 0x020192d0
-_080C8D60:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D7C
- ldr r1, _080C8D80
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D84
- adds r1, r2
- movs r2, 0x14
- b _080C8DE4
- .align 2, 0
-_080C8D7C: .4byte 0x020192d0
-_080C8D80: .4byte gUnknown_0203869B
-_080C8D84: .4byte gBlockRecvBuffer
-_080C8D88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D9C
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D9C: .4byte 0x02019328
-_080C8DA0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DB0
- b _080C8DD8
- .align 2, 0
-_080C8DB0: .4byte 0x02019328
-_080C8DB4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DC8
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8DC8: .4byte gUnknown_02038696
-_080C8DCC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DFC
-_080C8DD8:
- ldr r1, _080C8E00
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8E04
- adds r1, r2
- movs r2, 0x4
-_080C8DE4:
- bl memcpy
-_080C8DE8:
- ldr r1, _080C8E08
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8E16
- .align 2, 0
-_080C8DFC: .4byte gUnknown_02038696
-_080C8E00: .4byte gUnknown_0203869B
-_080C8E04: .4byte gBlockRecvBuffer
-_080C8E08: .4byte gTasks
-_080C8E0C:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8E16:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8C80
-
- thumb_func_start sub_80C8E1C
-sub_80C8E1C: @ 80C8E1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8E4C
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8E50
- cmp r0, 0x1
- beq _080C8E7C
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8EAE
- .align 2, 0
-_080C8E4C: .4byte gTasks
-_080C8E50:
- ldr r1, _080C8E78
- movs r0, 0x64
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C8E70
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- movs r0, 0x2
- bl sub_8007E9C
-_080C8E70:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8EAE
- .align 2, 0
-_080C8E78: .4byte gBlockSendBuffer
-_080C8E7C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- ldr r1, _080C8EB8
- mov r0, r8
- adds r0, 0x12
- adds r2, r7, r0
- movs r4, 0x80
- lsls r4, 1
- movs r3, 0x3
-_080C8E94:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, r4
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C8E94
- adds r1, r6, r5
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8EAE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8EB8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8E1C
-
- thumb_func_start sub_80C8EBC
-sub_80C8EBC: @ 80C8EBC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8EE4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8EE8
- cmp r0, 0x1
- beq _080C8F00
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F22
- .align 2, 0
-_080C8EE4: .4byte gTasks
-_080C8EE8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8EFC
- movs r1, 0x8
- bl sub_80C857C
- b _080C8F1C
- .align 2, 0
-_080C8EFC: .4byte gUnknown_02038670
-_080C8F00:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8F28
- ldr r1, _080C8F2C
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8F30
- adds r1, r2
- movs r2, 0x8
- bl memcpy
-_080C8F1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8F28: .4byte gUnknown_02038670
-_080C8F2C: .4byte gUnknown_0203869B
-_080C8F30: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8EBC
-
- thumb_func_start sub_80C8F34
-sub_80C8F34: @ 80C8F34
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8F5C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8F60
- cmp r0, 0x1
- beq _080C8F78
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F9A
- .align 2, 0
-_080C8F5C: .4byte gTasks
-_080C8F60:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8F74
- movs r1, 0x4
- bl sub_80C857C
- b _080C8F94
- .align 2, 0
-_080C8F74: .4byte gUnknown_02038696
-_080C8F78:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8FA0
- ldr r1, _080C8FA4
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8FA8
- adds r1, r2
- movs r2, 0x4
- bl memcpy
-_080C8F94:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F9A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8FA0: .4byte gUnknown_02038696
-_080C8FA4: .4byte gUnknown_0203869B
-_080C8FA8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8F34
-
- thumb_func_start sub_80C8FAC
-sub_80C8FAC: @ 80C8FAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8FD0
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080C8FD8
- ldr r1, _080C8FD4
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080C8FE6
- .align 2, 0
-_080C8FD0: .4byte word_203855E
-_080C8FD4: .4byte gTasks
-_080C8FD8:
- ldrh r0, [r1]
- bl itemid_get_type
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, r4, 2
-_080C8FE6:
- ldr r0, _080C9008
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080C900C
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080C9010
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9008: .4byte gTasks
-_080C900C: .4byte gUnknown_083D61E4
-_080C9010: .4byte sub_80A5B00
- thumb_func_end sub_80C8FAC
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 80C9014
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start sub_80C9038
-sub_80C9038: @ 80C9038
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- thumb_func_end sub_80C9038
-
- thumb_func_start SetUpItemUseOnFieldCallback
-SetUpItemUseOnFieldCallback: @ 80C9050
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C9078
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080C9084
- ldr r1, _080C907C
- ldr r0, _080C9080
- str r0, [r1]
- adds r0, r2, 0
- bl unknown_ItemMenu_Confirm
- b _080C908E
- .align 2, 0
-_080C9078: .4byte gTasks
-_080C907C: .4byte gUnknown_0300485C
-_080C9080: .4byte sub_80A5CC4
-_080C9084:
- ldr r0, _080C9094
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080C908E:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9094: .4byte gUnknown_03005D00
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start sub_80C9098
-sub_80C9098: @ 80C9098
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080C90CC
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080C90D4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C90D0
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C90E0
- .align 2, 0
-_080C90CC: .4byte gStringVar4
-_080C90D0: .4byte sub_80A5C48
-_080C90D4:
- ldr r2, _080C90E8
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C90E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C90E8: .4byte sub_80A5C9C
- thumb_func_end sub_80C9098
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9100
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9100: .4byte gOtherText_DadsAdvice
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start sub_80C9104
-sub_80C9104: @ 80C9104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9118
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9118: .4byte gOtherText_CantGetOffBike
- thumb_func_end sub_80C9104
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl itemid_get_overworld_function
- ldr r1, _080C9134
- cmp r0, r1
- bne _080C9138
- movs r0, 0x1
- b _080C914E
- .align 2, 0
-_080C9134: .4byte ItemUseOutOfBattle_TMHM
-_080C9138:
- adds r0, r4, 0
- bl itemid_get_overworld_function
- ldr r1, _080C9148
- cmp r0, r1
- beq _080C914C
- movs r0, 0
- b _080C914E
- .align 2, 0
-_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
-_080C914C:
- movs r0, 0x2
-_080C914E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80C9154
-sub_80C9154: @ 80C9154
- push {r4,lr}
- sub sp, 0x24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9188
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C9180
- mov r1, sp
- ldr r0, _080C918C
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080C9190
- mov r0, sp
- movs r2, 0
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_080C9180:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9188: .4byte gPaletteFade
-_080C918C: .4byte word_203855E
-_080C9190: .4byte sub_80A5D04
- thumb_func_end sub_80C9154
-
- thumb_func_start ItemUseOutOfBattle_Mail
-ItemUseOutOfBattle_Mail: @ 80C9194
- 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, _080C91C4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C91C8
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C91C4: .4byte gTasks
-_080C91C8: .4byte sub_80C9154
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-ItemUseOutOfBattle_Bike: @ 80C91CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C924C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9254
-_080C9238:
- ldr r0, _080C9250
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl sub_80C9104
- b _080C928E
- .align 2, 0
-_080C924C: .4byte 0x0000082b
-_080C9250: .4byte gTasks
-_080C9254:
- bl sub_8053C44
- cmp r0, 0x1
- bne _080C927C
- bl sub_80E5EF4
- lsls r0, 24
- cmp r0, 0
- bne _080C927C
- ldr r1, _080C9274
- ldr r0, _080C9278
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080C928E
- .align 2, 0
-_080C9274: .4byte gUnknown_03005D00
-_080C9278: .4byte ItemUseOnFieldCB_Bike
-_080C927C:
- ldr r0, _080C9298
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C928E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9298: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80C929C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C92E0
- ldrh r0, [r4]
- bl itemid_get_x28
- lsls r0, 24
- cmp r0, 0
- bne _080C92B6
- movs r0, 0x2
- bl GetOnOffBike
-_080C92B6:
- ldrh r0, [r4]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C92CA
- movs r0, 0x4
- bl GetOnOffBike
-_080C92CA:
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C92E0: .4byte word_203855E
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-CanFish: @ 80C92E4
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C933C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080C936C
-_080C9338:
- movs r0, 0x1
- b _080C936E
-_080C933C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080C935C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080C9338
-_080C935C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8057434
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9338
-_080C936C:
- movs r0, 0
-_080C936E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80C9378
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080C939C
- ldr r1, _080C9394
- ldr r0, _080C9398
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C93AE
- .align 2, 0
-_080C9394: .4byte gUnknown_03005D00
-_080C9398: .4byte ItemUseOnFieldCB_Rod
-_080C939C:
- ldr r0, _080C93B4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C93AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93B4: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80C93B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C93DC
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93DC: .4byte word_203855E
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80C93E0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl sav12_xor_increment
- ldr r1, _080C9400
- ldr r0, _080C9404
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9400: .4byte gUnknown_03005D00
-_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80C9408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9430
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C943C
- ldr r0, _080C9434
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9438
- str r0, [r1]
- b _080C9448
- .align 2, 0
-_080C9430: .4byte gMapHeader
-_080C9434: .4byte gTasks
-_080C9438: .4byte sub_80C9458
-_080C943C:
- ldr r1, _080C9450
- ldr r2, _080C9454
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9448:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9450: .4byte gOtherText_NoResponse
-_080C9454: .4byte sub_80C9520
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80C9458
-sub_80C9458: @ 80C9458
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, _080C94AC
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C950C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080C9500
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80C9908
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C94B8
- ldr r1, _080C94B0
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _080C94B4
- str r1, [r0]
- b _080C9516
- .align 2, 0
-_080C94AC: .4byte gUnknown_03004B28
-_080C94B0: .4byte gUnknown_083D61F0
-_080C94B4: .4byte sub_80C99EC
-_080C94B8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, _080C94F4
- movs r6, 0x3
-_080C94C8:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080C94D8
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080C94D8:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C94C8
- ldr r1, _080C94F8
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C94FC
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080C9516
- .align 2, 0
-_080C94F4: .4byte gUnknown_083D61F0
-_080C94F8: .4byte gTasks
-_080C94FC: .4byte sub_80C9A38
-_080C9500:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C950C:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080C9516:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9458
-
- thumb_func_start sub_80C9520
-sub_80C9520: @ 80C9520
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9520
-
- thumb_func_start ItemfinderCheckForHiddenItems
-ItemfinderCheckForHiddenItems: @ 80C9548
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, _080C9618
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080C95FC
- subs r1, 0x5
- mov r8, r1
-_080C9580:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080C95EC
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C95EC
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080C95EC
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080C95EC
- cmp r2, 0x5
- bgt _080C95EC
- adds r0, r6, 0
- bl sub_80C9838
-_080C95EC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080C9580
-_080C95FC:
- adds r0, r6, 0
- bl sub_80C9720
- ldr r0, _080C9618
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C961C
- movs r0, 0
- b _080C961E
- .align 2, 0
-_080C9618: .4byte gTasks
-_080C961C:
- movs r0, 0x1
-_080C961E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
- thumb_func_start sub_80C962C
-sub_80C962C: @ 80C962C
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrb r2, [r0, 0x3]
- ldr r5, [r0, 0x10]
- movs r1, 0
- cmp r1, r2
- bge _080C9680
- lsls r0, r3, 16
- asrs r6, r0, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- adds r3, r5, 0
-_080C964A:
- ldrb r0, [r3, 0x5]
- cmp r0, 0x7
- bne _080C9678
- ldrh r0, [r3]
- cmp r6, r0
- bne _080C9678
- ldrh r0, [r3, 0x2]
- cmp r4, r0
- bne _080C9678
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1, 0
- ldrh r3, [r3, 0xA]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C9680
- movs r0, 0x1
- b _080C9682
-_080C9678:
- adds r3, 0xC
- adds r1, 0x1
- cmp r1, r2
- blt _080C964A
-_080C9680:
- movs r0, 0
-_080C9682:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C962C
-
- thumb_func_start sub_80C9688
-sub_80C9688: @ 80C9688
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080C96B0
- cmp r0, 0x2
- bgt _080C96A6
- cmp r0, 0x1
- beq _080C96C4
- b _080C9704
-_080C96A6:
- cmp r0, 0x3
- beq _080C96DC
- cmp r0, 0x4
- beq _080C96E6
- b _080C9704
-_080C96B0:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- subs r0, 0x7
- adds r0, r6
- b _080C96FA
-_080C96C4:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080C96D8
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- b _080C96F6
- .align 2, 0
-_080C96D8: .4byte gMapHeader
-_080C96DC:
- ldr r0, [r3]
- ldr r0, [r0]
- subs r0, 0x7
- adds r0, r5
- b _080C96F0
-_080C96E6:
- ldr r0, _080C9700
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x7
- subs r0, r5, r0
-_080C96F0:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4, 0x4]
-_080C96F6:
- adds r0, 0x7
- subs r0, r6, r0
-_080C96FA:
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9708
- .align 2, 0
-_080C9700: .4byte gMapHeader
-_080C9704:
- movs r0, 0
- b _080C971A
-_080C9708:
- ldr r0, [r3, 0x4]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- bl sub_80C962C
- lsls r0, 24
- lsrs r0, 24
-_080C971A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9688
-
- thumb_func_start sub_80C9720
-sub_80C9720: @ 80C9720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080C9834
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r0, [r1, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- adds r1, 0x7
- cmp r0, r1
- bgt _080C9824
-_080C976E:
- mov r5, sp
- ldrh r0, [r5, 0x2]
- subs r0, 0x5
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- adds r0, 0x5
- lsls r3, 16
- mov r8, r3
- cmp r1, r0
- bgt _080C980E
- movs r0, 0x7
- str r0, [sp, 0x10]
- mov r1, r8
- asrs r1, 16
- mov r9, r1
- mov r10, r0
-_080C9796:
- ldr r3, [sp, 0x10]
- cmp r3, r9
- bgt _080C97B8
- ldr r5, [sp, 0x8]
- lsls r0, r5, 16
- asrs r0, 16
- cmp r9, r0
- bge _080C97B8
- asrs r1, r2, 16
- cmp r10, r1
- bgt _080C97B8
- ldr r6, [sp, 0xC]
- lsls r0, r6, 16
- asrs r0, 16
- lsls r7, r4, 16
- cmp r1, r0
- blt _080C97F6
-_080C97B8:
- mov r0, r8
- asrs r5, r0, 16
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8056BA0
- adds r7, r4, 0
- cmp r0, 0
- beq _080C97F6
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80C9688
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C97F6
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r5, r1
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, r6, r2
- lsls r2, 16
- asrs r2, 16
- ldr r0, [sp, 0x4]
- bl sub_80C9838
-_080C97F6:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- mov r3, sp
- movs r5, 0x2
- ldrsh r0, [r3, r5]
- adds r0, 0x5
- cmp r1, r0
- ble _080C9796
-_080C980E:
- movs r1, 0x80
- lsls r1, 9
- add r1, r8
- lsrs r3, r1, 16
- asrs r1, 16
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- adds r0, 0x7
- cmp r1, r0
- ble _080C976E
-_080C9824:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9834: .4byte gMapHeader
- thumb_func_end sub_80C9720
-
- thumb_func_start sub_80C9838
-sub_80C9838: @ 80C9838
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r12, r2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C986C
- adds r3, r1, r0
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C9870
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
- movs r0, 0x1
- strh r0, [r3, 0x4]
- b _080C98FA
- .align 2, 0
-_080C986C: .4byte gUnknown_03004B28
-_080C9870:
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080C9880
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C9882
-_080C9880:
- ldrh r4, [r3]
-_080C9882:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- ldrh r1, [r3, 0x2]
- mov r9, r1
- cmp r0, 0
- bge _080C9896
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9898
-_080C9896:
- ldrh r2, [r3, 0x2]
-_080C9898:
- lsls r1, r7, 16
- asrs r0, r1, 16
- cmp r0, 0
- bge _080C98A8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- b _080C98AA
-_080C98A8:
- lsrs r6, r1, 16
-_080C98AA:
- mov r1, r12
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r1, 0
- bge _080C98BC
- negs r0, r1
- lsls r0, 16
- b _080C98BE
-_080C98BC:
- mov r0, r8
-_080C98BE:
- lsrs r5, r0, 16
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r2, r1, 16
- adds r4, r0, r2
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- adds r0, r1
- cmp r4, r0
- ble _080C98E0
- strh r7, [r3]
- mov r1, r12
- strh r1, [r3, 0x2]
- b _080C98FA
-_080C98E0:
- cmp r4, r0
- bne _080C98FA
- cmp r2, r1
- bgt _080C98F4
- cmp r2, r1
- bne _080C98FA
- mov r1, r9
- lsls r0, r1, 16
- cmp r0, r8
- bge _080C98FA
-_080C98F4:
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
-_080C98FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9838
-
- thumb_func_start sub_80C9908
-sub_80C9908: @ 80C9908
- push {r4,r5,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bne _080C991A
- cmp r1, 0
- beq _080C9974
-_080C991A:
- lsls r0, r2, 16
- asrs r2, r0, 16
- adds r5, r0, 0
- cmp r2, 0
- bge _080C992C
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C992E
-_080C992C:
- lsrs r4, r5, 16
-_080C992E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- adds r1, r0, 0
- cmp r2, 0
- bge _080C9940
- negs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- b _080C9942
-_080C9940:
- lsrs r3, r1, 16
-_080C9942:
- lsls r0, r4, 16
- asrs r2, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C995A
- cmp r5, 0
- bge _080C9956
- movs r0, 0x4
- b _080C9976
-_080C9956:
- movs r0, 0x2
- b _080C9976
-_080C995A:
- cmp r2, r0
- bge _080C9964
- cmp r1, 0
- blt _080C996C
- b _080C9970
-_080C9964:
- cmp r2, r0
- bne _080C9974
- cmp r1, 0
- bge _080C9970
-_080C996C:
- movs r0, 0x1
- b _080C9976
-_080C9970:
- movs r0, 0x3
- b _080C9976
-_080C9974:
- movs r0, 0
-_080C9976:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9908
-
- thumb_func_start sub_80C997C
-sub_80C997C: @ 80C997C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _080C99E8
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnim
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl npc_sync_anim_pause_bits
- adds r0, r5, 0
- bl PlayerTurnInPlace
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99E8: .4byte gMapObjects
- thumb_func_end sub_80C997C
-
- thumb_func_start sub_80C99EC
-sub_80C99EC: @ 80C99EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9A2C
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9A24
- ldr r1, _080C9A30
- ldr r2, _080C9A34
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9A24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A2C: .4byte gMapObjects
-_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte sub_80C9520
- thumb_func_end sub_80C99EC
-
- thumb_func_start sub_80C9A38
-sub_80C9A38: @ 80C9A38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C9AB4
- adds r4, r0, r1
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9AB8
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A78
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C9AAE
-_080C9A78:
- ldr r1, _080C9ABC
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- movs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080C9AAE
- ldr r1, _080C9AC0
- ldr r2, _080C9AC4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9AAE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AB4: .4byte gUnknown_03004B28
-_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gUnknown_083D61F0
-_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
-_080C9AC4: .4byte sub_80C9520
- thumb_func_end sub_80C9A38
-
- thumb_func_start ItemUseOutOfBattle_PokeblockCase
-ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9AF4
- ldr r0, _080C9AF0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
- b _080C9B2A
- .align 2, 0
-_080C9AF0: .4byte gTasks
-_080C9AF4:
- ldr r0, _080C9B14
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080C9B18
- movs r0, 0
- bl sub_810BA7C
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080C9B2A
- .align 2, 0
-_080C9B14: .4byte gTasks
-_080C9B18:
- ldr r1, _080C9B30
- ldr r0, _080C9B34
- str r0, [r1]
- movs r0, 0x1
- bl sub_810BA7C
- adds r0, r5, 0
- bl sub_80C9038
-_080C9B2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B30: .4byte gUnknown_0300485C
-_080C9B34: .4byte sub_8080E28
- thumb_func_end ItemUseOutOfBattle_PokeblockCase
-
- thumb_func_start ItemUseOutOfBattle_CoinCase
-ItemUseOutOfBattle_CoinCase: @ 80C9B38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C9B8C
- bl GetCoins
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, _080C9B90
- ldr r1, _080C9B94
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, _080C9B98
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9BA0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9BAC
- .align 2, 0
-_080C9B8C: .4byte gStringVar1
-_080C9B90: .4byte gStringVar4
-_080C9B94: .4byte gOtherText_Coins3
-_080C9B98: .4byte gTasks
-_080C9B9C: .4byte sub_80A5C48
-_080C9BA0:
- ldr r2, _080C9BB4
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9BAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BB4: .4byte sub_80A5C9C
- thumb_func_end ItemUseOutOfBattle_CoinCase
-
- thumb_func_start sub_80C9BB8
-sub_80C9BB8: @ 80C9BB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BD4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BD0
- adds r0, r2, 0
- bl sub_80A5C48
-_080C9BD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BD4: .4byte gMain
- thumb_func_end sub_80C9BB8
-
- thumb_func_start sub_80C9BD8
-sub_80C9BD8: @ 80C9BD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BF4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BF0
- adds r0, r2, 0
- bl sub_80A5C9C
-_080C9BF0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BF4: .4byte gMain
- thumb_func_end sub_80C9BD8
-
- thumb_func_start unref_sub_80C9BF8
-unref_sub_80C9BF8: @ 80C9BF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C9C3C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9C4C
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080C9C40
- ldr r0, _080C9C44
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C48
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9C68
- .align 2, 0
-_080C9C3C: .4byte gTasks
-_080C9C40: .4byte gUnknown_083D61DC
-_080C9C44: .4byte word_203855E
-_080C9C48: .4byte sub_80C9BB8
-_080C9C4C:
- ldr r4, _080C9C70
- ldr r0, _080C9C74
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C78
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9C68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9C70: .4byte gUnknown_083D61DC
-_080C9C74: .4byte word_203855E
-_080C9C78: .4byte sub_80C9BD8
- thumb_func_end unref_sub_80C9BF8
-
- thumb_func_start sub_80C9C7C
-sub_80C9C7C: @ 80C9C7C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerFacingPlantedBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9CE4
- ldr r1, _080C9CC8
- ldr r0, _080C9CCC
- str r0, [r1]
- ldr r1, _080C9CD0
- ldr r0, _080C9CD4
- str r0, [r1]
- ldr r1, _080C9CD8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080C9CDC
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080C9CF4
- .align 2, 0
-_080C9CC8: .4byte gUnknown_03005D00
-_080C9CCC: .4byte sub_80C9D00
-_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte sub_80A5CC4
-_080C9CD8: .4byte gTasks
-_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte sub_80A5B00
-_080C9CE4:
- ldr r0, _080C9CFC
- ldrh r0, [r0]
- bl itemid_get_overworld_function
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_080C9CF4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9CFC: .4byte word_203855E
- thumb_func_end sub_80C9C7C
-
- thumb_func_start sub_80C9D00
-sub_80C9D00: @ 80C9D00
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C9D28
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80A9538
- bl ScriptContext2_Enable
- ldr r0, _080C9D2C
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D28: .4byte word_203855E
-_080C9D2C: .4byte gUnknown_081A1654
- thumb_func_end sub_80C9D00
-
- thumb_func_start ItemUseOutOfBattle_WailmerPail
-ItemUseOutOfBattle_WailmerPail: @ 80C9D30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl WaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9D58
- ldr r1, _080C9D50
- ldr r0, _080C9D54
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C9D6A
- .align 2, 0
-_080C9D50: .4byte gUnknown_03005D00
-_080C9D54: .4byte sub_80C9D74
-_080C9D58:
- ldr r0, _080C9D70
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C9D6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D70: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_WailmerPail
-
- thumb_func_start sub_80C9D74
-sub_80C9D74: @ 80C9D74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, _080C9D94
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D94: .4byte gUnknown_081A168F
- thumb_func_end sub_80C9D74
-
- thumb_func_start sub_80C9D98
-sub_80C9D98: @ 80C9D98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DAC
- movs r1, 0
- strb r1, [r2]
- bl unknown_ItemMenu_Confirm
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DAC: .4byte gUnknown_02038561
- thumb_func_end sub_80C9D98
-
- thumb_func_start ItemUseOutOfBattle_Medicine
-ItemUseOutOfBattle_Medicine: @ 80C9DB0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DC4
- ldr r1, _080C9DC8
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte sub_806FE2C
- thumb_func_end ItemUseOutOfBattle_Medicine
-
- thumb_func_start ItemUseOutOfBattle_SacredAsh
-ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080C9DDC
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- b _080C9DE6
- .align 2, 0
-_080C9DDC: .4byte gUnknown_03005CE0
-_080C9DE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080C9DE6:
- cmp r5, 0x5
- bhi _080C9E10
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C9E28
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C9DE0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C9DE0
- ldr r0, _080C9E2C
- strb r5, [r0]
-_080C9E10:
- ldr r1, _080C9E30
- ldr r0, _080C9E34
- str r0, [r1]
- ldr r1, _080C9E38
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r6, 0
- bl unknown_ItemMenu_Confirm
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E28: .4byte gPlayerParty
-_080C9E2C: .4byte gUnknown_03005CE0
-_080C9E30: .4byte gUnknown_03004AE4
-_080C9E34: .4byte sub_8070048
-_080C9E38: .4byte gUnknown_02038561
- thumb_func_end ItemUseOutOfBattle_SacredAsh
-
- thumb_func_start ItemUseOutOfBattle_PPRecovery
-ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E50
- ldr r1, _080C9E54
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte dp05_ether
- thumb_func_end ItemUseOutOfBattle_PPRecovery
-
- thumb_func_start ItemUseOutOfBattle_PPUp
-ItemUseOutOfBattle_PPUp: @ 80C9E58
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E6C
- ldr r1, _080C9E70
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte dp05_pp_up
- thumb_func_end ItemUseOutOfBattle_PPUp
-
- thumb_func_start ItemUseOutOfBattle_RareCandy
-ItemUseOutOfBattle_RareCandy: @ 80C9E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E88
- ldr r1, _080C9E8C
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte sub_8070680
- thumb_func_end ItemUseOutOfBattle_RareCandy
-
- thumb_func_start ItemUseOutOfBattle_TMHM
-ItemUseOutOfBattle_TMHM: @ 80C9E90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080C9EBC
- ldrh r1, [r0]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bls _080C9EC8
- ldr r1, _080C9EC0
- ldr r2, _080C9EC4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9ED4
- .align 2, 0
-_080C9EBC: .4byte word_203855E
-_080C9EC0: .4byte gOtherText_BootedHM
-_080C9EC4: .4byte sub_80C9EE4
-_080C9EC8:
- ldr r1, _080C9EDC
- ldr r2, _080C9EE0
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9ED4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9EDC: .4byte gOtherText_BootedTM
-_080C9EE0: .4byte sub_80C9EE4
- thumb_func_end ItemUseOutOfBattle_TMHM
-
- thumb_func_start sub_80C9EE4
-sub_80C9EE4: @ 80C9EE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl PlaySE
- ldr r1, _080C9F08
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C9F0C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F08: .4byte gTasks
-_080C9F0C: .4byte sub_80C9F10
- thumb_func_end sub_80C9EE4
-
- thumb_func_start sub_80C9F10
-sub_80C9F10: @ 80C9F10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C9F64
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C9F2A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C9F5C
-_080C9F2A:
- ldr r4, _080C9F68
- ldr r0, _080C9F6C
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080C9F70
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _080C9F74
- ldr r1, _080C9F78
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080C9F7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F64: .4byte gMain
-_080C9F68: .4byte gStringVar1
-_080C9F6C: .4byte word_203855E
-_080C9F70: .4byte gMoveNames
-_080C9F74: .4byte gStringVar4
-_080C9F78: .4byte gOtherText_ContainsMove
-_080C9F7C: .4byte sub_80C9F80
- thumb_func_end sub_80C9F10
-
- thumb_func_start sub_80C9F80
-sub_80C9F80: @ 80C9F80
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080C9FB8
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A3FA0
- ldr r1, _080C9FBC
- adds r0, r4, 0
- bl sub_80F914C
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FB8: .4byte gBG1TilemapBuffer
-_080C9FBC: .4byte gUnknown_083D61F4
- thumb_func_end sub_80C9F80
-
- thumb_func_start sub_80C9FC0
-sub_80C9FC0: @ 80C9FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9FD4
- ldr r1, _080C9FD8
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte sub_806F06C
- thumb_func_end sub_80C9FC0
-
- thumb_func_start sub_80C9FDC
-sub_80C9FDC: @ 80C9FDC
- push {r4,lr}
- ldr r4, _080CA004
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- bl sub_80A3E0C
- ldrh r0, [r4]
- ldr r1, _080CA008
- bl itemid_copy_name
- ldr r0, _080CA00C
- ldr r1, _080CA010
- bl StringExpandPlaceholders
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA004: .4byte word_203855E
-_080CA008: .4byte gStringVar2
-_080CA00C: .4byte gStringVar4
-_080CA010: .4byte gOtherText_UsedItem
- thumb_func_end sub_80C9FDC
-
- thumb_func_start ItemUseOutOfBattle_Repel
-ItemUseOutOfBattle_Repel: @ 80CA014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080CA050
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080CA060
- ldr r0, _080CA054
- ldrh r0, [r0]
- bl itemid_get_quality
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl VarSet
- bl sub_80C9FDC
- ldr r1, _080CA058
- ldr r2, _080CA05C
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA06C
- .align 2, 0
-_080CA050: .4byte 0x00004021
-_080CA054: .4byte word_203855E
-_080CA058: .4byte gStringVar4
-_080CA05C: .4byte sub_80A5C48
-_080CA060:
- ldr r1, _080CA074
- ldr r2, _080CA078
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte sub_80A5C48
- thumb_func_end ItemUseOutOfBattle_Repel
-
- thumb_func_start sub_80CA07C
-sub_80CA07C: @ 80CA07C
- push {lr}
- bl sub_80A3E0C
- ldr r0, _080CA090
- ldrh r0, [r0]
- ldr r1, _080CA094
- bl itemid_copy_name
- pop {r0}
- bx r0
- .align 2, 0
-_080CA090: .4byte word_203855E
-_080CA094: .4byte gStringVar2
- thumb_func_end sub_80CA07C
-
- thumb_func_start sub_80CA098
-sub_80CA098: @ 80CA098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA0D0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA0C8
- movs r0, 0x75
- bl PlaySE
- ldr r1, _080CA0D4
- ldr r2, _080CA0D8
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA0C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA0D0: .4byte gTasks
-_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte sub_80A5C48
- thumb_func_end sub_80CA098
-
- thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
-ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _080CA10C
- ldrh r0, [r0]
- cmp r0, 0x2B
- bne _080CA124
- ldr r0, _080CA110
- bl FlagSet
- ldr r0, _080CA114
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA118
- ldr r1, _080CA11C
- bl StringExpandPlaceholders
- ldr r1, _080CA120
- lsls r0, r4, 2
- adds r0, r4
- b _080CA146
- .align 2, 0
-_080CA10C: .4byte word_203855E
-_080CA110: .4byte 0x0000084d
-_080CA114: .4byte 0x0000084e
-_080CA118: .4byte gStringVar4
-_080CA11C: .4byte gOtherText_UsedFlute
-_080CA120: .4byte gTasks
-_080CA124:
- cmp r0, 0x2A
- bne _080CA152
- ldr r0, _080CA158
- bl FlagSet
- ldr r0, _080CA15C
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA160
- ldr r1, _080CA164
- bl StringExpandPlaceholders
- ldr r1, _080CA168
- lsls r0, r5, 2
- adds r0, r5
-_080CA146:
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CA16C
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x26]
-_080CA152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA158: .4byte 0x0000084e
-_080CA15C: .4byte 0x0000084d
-_080CA160: .4byte gStringVar4
-_080CA164: .4byte gOtherText_UsedRepel
-_080CA168: .4byte gTasks
-_080CA16C: .4byte sub_80CA098
- thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
-
- thumb_func_start task08_080A1C44
-task08_080A1C44: @ 80CA170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl player_avatar_init_params_reset
- bl sub_80878A8
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task08_080A1C44
-
- thumb_func_start sub_80CA18C
-sub_80CA18C: @ 80CA18C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8053014
- bl sub_80C9FDC
- ldr r1, _080CA1BC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080CA1C0
- ldr r2, _080CA1C4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA1BC: .4byte gTasks
-_080CA1C0: .4byte gStringVar4
-_080CA1C4: .4byte task08_080A1C44
- thumb_func_end sub_80CA18C
-
- thumb_func_start sub_80CA1C8
-sub_80CA1C8: @ 80CA1C8
- push {lr}
- ldr r0, _080CA1D8
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _080CA1DC
- movs r0, 0
- b _080CA1DE
- .align 2, 0
-_080CA1D8: .4byte gMapHeader
-_080CA1DC:
- movs r0, 0x1
-_080CA1DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80CA1C8
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CA20C
- ldr r1, _080CA204
- ldr r0, _080CA208
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080CA21E
- .align 2, 0
-_080CA204: .4byte gUnknown_03005D00
-_080CA208: .4byte sub_80CA18C
-_080CA20C:
- ldr r0, _080CA224
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA21E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA224: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start ItemUseOutOfBattle_EvolutionStone
-ItemUseOutOfBattle_EvolutionStone: @ 80CA228
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA23C
- ldr r1, _080CA240
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte sub_8070DBC
- thumb_func_end ItemUseOutOfBattle_EvolutionStone
-
- thumb_func_start ItemUseInBattle_PokeBall
-ItemUseInBattle_PokeBall: @ 80CA244
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080CA26C
- ldr r0, _080CA268
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r4, 0
- bl sub_80A7094
- b _080CA284
- .align 2, 0
-_080CA268: .4byte word_203855E
-_080CA26C:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r1, _080CA28C
- ldr r2, _080CA290
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA284:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte sub_80A5C48
- thumb_func_end ItemUseInBattle_PokeBall
-
- thumb_func_start sub_80CA294
-sub_80CA294: @ 80CA294
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA2B8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CA2AE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080CA2B4
-_080CA2AE:
- adds r0, r2, 0
- bl sub_80A7094
-_080CA2B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA2B8: .4byte gMain
- thumb_func_end sub_80CA294
-
- thumb_func_start sub_80CA2BC
-sub_80CA2BC: @ 80CA2BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080CA304
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA2FC
- movs r0, 0x1
- bl PlaySE
- ldr r4, _080CA308
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- ldrh r0, [r4]
- bl sub_803F378
- adds r1, r0, 0
- ldr r2, _080CA30C
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA2FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA304: .4byte gTasks
-_080CA308: .4byte word_203855E
-_080CA30C: .4byte sub_80CA294
- thumb_func_end sub_80CA2BC
-
- thumb_func_start ItemUseInBattle_StatIncrease
-ItemUseInBattle_StatIncrease: @ 80CA310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CA35C
- ldr r0, _080CA360
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CA364
- adds r0, r1
- ldr r1, _080CA368
- ldrh r1, [r1]
- lsls r4, 24
- lsrs r4, 24
- adds r2, r4, 0
- movs r3, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080CA374
- ldr r1, _080CA36C
- ldr r2, _080CA370
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA384
- .align 2, 0
-_080CA35C: .4byte gUnknown_02024A6A
-_080CA360: .4byte gUnknown_02024E6C
-_080CA364: .4byte gPlayerParty
-_080CA368: .4byte word_203855E
-_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte sub_80A5C48
-_080CA374:
- ldr r0, _080CA38C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080CA390
- str r0, [r1]
- strh r2, [r1, 0x26]
-_080CA384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA38C: .4byte gTasks
-_080CA390: .4byte sub_80CA2BC
- thumb_func_end ItemUseInBattle_StatIncrease
-
- thumb_func_start sub_80CA394
-sub_80CA394: @ 80CA394
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA3BC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA3B4
- bl sub_8094E4C
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080CA3B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3BC: .4byte gPaletteFade
- thumb_func_end sub_80CA394
-
- thumb_func_start sub_80CA3C0
-sub_80CA3C0: @ 80CA3C0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA3EC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080CA3F0
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3EC: .4byte gTasks
-_080CA3F0: .4byte sub_80CA394
- thumb_func_end sub_80CA3C0
-
- thumb_func_start ItemUseInBattle_Medicine
-ItemUseInBattle_Medicine: @ 80CA3F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA408
- ldr r1, _080CA40C
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte sub_806FE2C
- thumb_func_end ItemUseInBattle_Medicine
-
- thumb_func_start unref_sub_80CA410
-unref_sub_80CA410: @ 80CA410
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA424
- ldr r1, _080CA428
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA424: .4byte gUnknown_03004AE4
-_080CA428: .4byte sub_8070048
- thumb_func_end unref_sub_80CA410
-
- thumb_func_start ItemUseInBattle_PPRecovery
-ItemUseInBattle_PPRecovery: @ 80CA42C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA440
- ldr r1, _080CA444
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte dp05_ether
- thumb_func_end ItemUseInBattle_PPRecovery
-
- thumb_func_start unref_sub_80CA448
-unref_sub_80CA448: @ 80CA448
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080CA494
- ldrh r1, [r4]
- movs r0, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- bne _080CA4AC
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- ldr r0, _080CA498
- ldr r1, _080CA49C
- bl GetMonNickname
- ldr r4, _080CA4A0
- ldr r1, _080CA4A4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080CA4A8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA4B8
- .align 2, 0
-_080CA494: .4byte word_203855E
-_080CA498: .4byte gPlayerParty
-_080CA49C: .4byte gStringVar1
-_080CA4A0: .4byte gStringVar4
-_080CA4A4: .4byte gOtherText_SnapConfusion
-_080CA4A8: .4byte sub_80A7094
-_080CA4AC:
- ldr r1, _080CA4C0
- ldr r2, _080CA4C4
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA4B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte sub_80A5C48
- thumb_func_end unref_sub_80CA448
-
- thumb_func_start ItemUseInBattle_Escape
-ItemUseInBattle_Escape: @ 80CA4C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080CA504
- bl sub_80C9FDC
- ldr r1, _080CA4FC
- ldr r2, _080CA500
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA516
- .align 2, 0
-_080CA4F8: .4byte gUnknown_020239F8
-_080CA4FC: .4byte gStringVar4
-_080CA500: .4byte sub_80A7094
-_080CA504:
- ldr r0, _080CA51C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA51C: .4byte gTasks
- thumb_func_end ItemUseInBattle_Escape
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA544
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080CA53A
- b _080CA62C
-_080CA53A:
- lsls r0, 2
- ldr r1, _080CA548
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA544: .4byte word_203855E
-_080CA548: .4byte _080CA54C
- .align 2, 0
-_080CA54C:
- .4byte _080CA5D8
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA62C
- .4byte _080CA5BC
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA5F4
- .4byte _080CA5F4
- .4byte _080CA610
-_080CA5A0:
- ldr r0, _080CA5B8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_Medicine
- b _080CA640
- .align 2, 0
-_080CA5B8: .4byte gTasks
-_080CA5BC:
- ldr r0, _080CA5D4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_SacredAsh
- b _080CA640
- .align 2, 0
-_080CA5D4: .4byte gTasks
-_080CA5D8:
- ldr r0, _080CA5F0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_RareCandy
- b _080CA640
- .align 2, 0
-_080CA5F0: .4byte gTasks
-_080CA5F4:
- ldr r0, _080CA60C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPUp
- b _080CA640
- .align 2, 0
-_080CA60C: .4byte gTasks
-_080CA610:
- ldr r0, _080CA628
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPRecovery
- b _080CA640
- .align 2, 0
-_080CA628: .4byte gTasks
-_080CA62C:
- ldr r0, _080CA648
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA640:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA648: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80CA64C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA66C
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080CA6E4
- lsls r0, 2
- ldr r1, _080CA670
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA66C: .4byte word_203855E
-_080CA670: .4byte _080CA674
- .align 2, 0
-_080CA674:
- .4byte _080CA6CC
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6DC
-_080CA6CC:
- adds r0, r4, 0
- bl ItemUseInBattle_StatIncrease
- b _080CA6EA
-_080CA6D4:
- adds r0, r4, 0
- bl ItemUseInBattle_Medicine
- b _080CA6EA
-_080CA6DC:
- adds r0, r4, 0
- bl ItemUseInBattle_PPRecovery
- b _080CA6EA
-_080CA6E4:
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA6EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start ItemUseOutOfBattle_CannotUse
-ItemUseOutOfBattle_CannotUse: @ 80CA6F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA70C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0xC]
- bl DisplayDadsAdviceCannotUseItemMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA70C: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_CannotUse
-
- thumb_func_start sub_80CA710
-sub_80CA710: @ 80CA710
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CA744
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080CA748
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CA74C
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080CA74E
- .align 2, 0
-_080CA744: .4byte gUnknown_03004B00
-_080CA748: .4byte gUnknown_0202F7C8
-_080CA74C:
- ldrh r0, [r5, 0x8]
-_080CA74E:
- strh r0, [r4, 0x34]
- ldr r0, _080CA760
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080CA764
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA760: .4byte gUnknown_03004B00
-_080CA764: .4byte sub_80CA768
- thumb_func_end sub_80CA710
-
- thumb_func_start sub_80CA768
-sub_80CA768: @ 80CA768
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CA7A4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CA7AA
-_080CA7A4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CA7AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA768
-
- thumb_func_start sub_80CA7B0
-sub_80CA7B0: @ 80CA7B0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CA7F0
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA7F8
- str r0, [r4, 0x1C]
- ldr r1, _080CA7FC
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA7F0: .4byte gUnknown_03004B00
-_080CA7F4: .4byte gUnknown_0202F7C8
-_080CA7F8: .4byte sub_8078B34
-_080CA7FC: .4byte move_anim_8074EE0
- thumb_func_end sub_80CA7B0
-
- thumb_func_start sub_80CA800
-sub_80CA800: @ 80CA800
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CA848
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA84C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA850
- str r0, [r4, 0x1C]
- ldr r1, _080CA854
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA848: .4byte gUnknown_03004B00
-_080CA84C: .4byte gUnknown_0202F7C9
-_080CA850: .4byte sub_8078B34
-_080CA854: .4byte move_anim_8072740
- thumb_func_end sub_80CA800
-
- thumb_func_start sub_80CA858
-sub_80CA858: @ 80CA858
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080CA8A8
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080CA8AC
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080CA8B0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA8A8: .4byte gUnknown_03004B00
-_080CA8AC: .4byte gUnknown_0202F7C9
-_080CA8B0: .4byte sub_80CA8B4
- thumb_func_end sub_80CA858
-
- thumb_func_start sub_80CA8B4
-sub_80CA8B4: @ 80CA8B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080CA8CA
- adds r0, r4, 0
- bl DestroySprite
- b _080CA91E
-_080CA8CA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080CA8E4
- ldr r0, _080CA8E0
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
- b _080CA8EE
- .align 2, 0
-_080CA8E0: .4byte gUnknown_0202F7C9
-_080CA8E4:
- ldr r0, _080CA924
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x6
-_080CA8EE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CA91E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA924: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CA8B4
-
- thumb_func_start sub_80CA928
-sub_80CA928: @ 80CA928
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CA998
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080CA982
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080CA99C
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080CA9A0
- ldr r0, _080CA9A4
- ldrb r0, [r0]
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080CA982:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080CA990
- adds r0, r6, 0
- bl move_anim_task_del
-_080CA990:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA998: .4byte gTasks
-_080CA99C: .4byte gUnknown_03004B00
-_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CA928
-
- thumb_func_start sub_80CA9A8
-sub_80CA9A8: @ 80CA9A8
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r6, _080CA9EC
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080CA9F4
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA9EC: .4byte gUnknown_03004B00
-_080CA9F0: .4byte gUnknown_0202F7C8
-_080CA9F4: .4byte sub_80CA9F8
- thumb_func_end sub_80CA9A8
-
- thumb_func_start sub_80CA9F8
-sub_80CA9F8: @ 80CA9F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CAA0C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAA0C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA9F8
-
- thumb_func_start sub_80CAA14
-sub_80CAA14: @ 80CAA14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080CAA5C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAA60
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080CAA64
- .align 2, 0
-_080CAA5C: .4byte gUnknown_0202F7C8
-_080CAA60:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080CAA64:
- strh r0, [r5, 0x20]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080CAAC4
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- bl Random
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, _080CAAC8
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAAC4: .4byte gUnknown_0202F7C9
-_080CAAC8: .4byte sub_80CAACC
- thumb_func_end sub_80CAA14
-
- thumb_func_start sub_80CAACC
-sub_80CAACC: @ 80CAACC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- lsls r0, 24
- cmp r0, 0
- beq _080CAAE2
- adds r0, r4, 0
- bl move_anim_8072740
- b _080CAB12
-_080CAAE2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080CAAFE
- ldrh r0, [r4, 0x3A]
- b _080CAB02
-_080CAAFE:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080CAB02:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CAB12:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAACC
-
- thumb_func_start sub_80CAB18
-sub_80CAB18: @ 80CAB18
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CAB78
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAB38
- ldr r1, _080CAB7C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAB38:
- ldr r4, _080CAB7C
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080CAB80
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080CAB84
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAB78: .4byte gUnknown_0202F7C8
-_080CAB7C: .4byte gUnknown_03004B00
-_080CAB80: .4byte gUnknown_0202F7C9
-_080CAB84: .4byte sub_80CAB88
- thumb_func_end sub_80CAB18
-
- thumb_func_start sub_80CAB88
-sub_80CAB88: @ 80CAB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CABB2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, _080CABB8
- str r0, [r4, 0x1C]
- ldr r1, _080CABBC
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080CABB2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABB8: .4byte sub_80782D8
-_080CABBC: .4byte sub_80CABC0
- thumb_func_end sub_80CAB88
-
- thumb_func_start sub_80CABC0
-sub_80CABC0: @ 80CABC0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080CABF0
- str r0, [r4, 0x1C]
- ldr r1, _080CABF4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABF0: .4byte sub_80782D8
-_080CABF4: .4byte move_anim_8072740
- thumb_func_end sub_80CABC0
-
- thumb_func_start sub_80CABF8
-sub_80CABF8: @ 80CABF8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080CAC3C
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080CAC22
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080CAC22:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080CAC40
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAC3C: .4byte gUnknown_03004B00
-_080CAC40: .4byte sub_80CAC44
- thumb_func_end sub_80CABF8
-
- thumb_func_start sub_80CAC44
-sub_80CAC44: @ 80CAC44
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CAC98
- ldr r0, _080CAC94
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _080CACBC
- .align 2, 0
-_080CAC94: .4byte gUnknown_0202F7C9
-_080CAC98:
- ldr r0, _080CACE8
- ldrb r0, [r0]
- bl sub_8079ED4
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080CACAC
- movs r2, 0x3
-_080CACAC:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080CACBC:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080CACE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CACE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CACE8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CAC44
-
- thumb_func_start sub_80CACEC
-sub_80CACEC: @ 80CACEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CAD06
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080CAD0E
-_080CAD06:
- adds r0, r4, 0
- bl move_anim_task_del
- b _080CAD4A
-_080CAD0E:
- ldr r0, _080CAD2C
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CAD34
- ldr r0, _080CAD30
- ldrb r1, [r0]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0]
- b _080CAD44
- .align 2, 0
-_080CAD2C: .4byte gUnknown_0202F7C9
-_080CAD30: .4byte REG_BG2CNT
-_080CAD34:
- ldr r2, _080CAD50
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CAD44:
- adds r0, r4, 0
- bl move_anim_task_del
-_080CAD4A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD50: .4byte REG_BG1CNT
- thumb_func_end sub_80CACEC
-
- thumb_func_start sub_80CAD54
-sub_80CAD54: @ 80CAD54
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r5, _080CAD9C
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CADA0
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CADA4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD9C: .4byte gUnknown_03004B00
-_080CADA0: .4byte gUnknown_0202F7C8
-_080CADA4: .4byte sub_80CADA8
- thumb_func_end sub_80CAD54
-
- thumb_func_start sub_80CADA8
-sub_80CADA8: @ 80CADA8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAE14
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CADF4
- ldr r0, _080CADF0
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _080CADFE
- .align 2, 0
-_080CADF0: .4byte gUnknown_0202F7C8
-_080CADF4:
- ldr r0, _080CAE10
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_080CADFE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAE1A
- .align 2, 0
-_080CAE10: .4byte gUnknown_0202F7C8
-_080CAE14:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAE1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CADA8
-
- thumb_func_start sub_80CAE20
-sub_80CAE20: @ 80CAE20
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CAE68
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CAE6C
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CAE70
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAE68: .4byte gUnknown_03004B00
-_080CAE6C: .4byte gUnknown_0202F7C8
-_080CAE70: .4byte sub_80CAE74
- thumb_func_end sub_80CAE20
-
- thumb_func_start sub_80CAE74
-sub_80CAE74: @ 80CAE74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAECC
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080CAEAC
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080CAEC0
-_080CAEAC:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080CAEC0:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAED2
-_080CAECC:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAED2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAE74
-
- thumb_func_start sub_80CAED8
-sub_80CAED8: @ 80CAED8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CAF14
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CAF18
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, _080CAF1C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAF14: .4byte gUnknown_0202F7C8
-_080CAF18: .4byte gUnknown_03004B00
-_080CAF1C: .4byte sub_80CAF20
- thumb_func_end sub_80CAED8
-
- thumb_func_start sub_80CAF20
-sub_80CAF20: @ 80CAF20
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080CAF54
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080CAF42
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080CAF48
-_080CAF42:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080CAF48:
- ldr r0, _080CAF50
- str r0, [r1, 0x1C]
- b _080CAF68
- .align 2, 0
-_080CAF50: .4byte sub_80CAF6C
-_080CAF54:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080CAF68:
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF20
-
- thumb_func_start sub_80CAF6C
-sub_80CAF6C: @ 80CAF6C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CAF8C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAF90
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080CAF9A
- .align 2, 0
-_080CAF8C: .4byte gUnknown_0202F7C8
-_080CAF90:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080CAF9A:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CAFBA
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080CAFBA:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080CAFC8
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAFC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF6C
-
- thumb_func_start sub_80CAFD0
-sub_80CAFD0: @ 80CAFD0
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CB024
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAFF0
- ldr r1, _080CB028
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAFF0:
- ldr r6, _080CB028
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB030
- ldr r4, _080CB02C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080CB050
- .align 2, 0
-_080CB024: .4byte gUnknown_0202F7C8
-_080CB028: .4byte gUnknown_03004B00
-_080CB02C: .4byte gUnknown_0202F7C9
-_080CB030:
- ldr r0, _080CB07C
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080CB050:
- strh r0, [r5, 0x36]
- ldr r0, _080CB080
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080CB084
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080CB07C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080CB088
- movs r0, 0x1
- b _080CB08A
- .align 2, 0
-_080CB07C: .4byte gUnknown_0202F7C9
-_080CB080: .4byte gUnknown_03004B00
-_080CB084: .4byte gUnknown_0202F7C8
-_080CB088:
- movs r0, 0
-_080CB08A:
- strh r0, [r5, 0x2E]
- ldr r0, _080CB098
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB098: .4byte sub_80CB09C
- thumb_func_end sub_80CAFD0
-
- thumb_func_start sub_80CB09C
-sub_80CB09C: @ 80CB09C
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl sub_8078718
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080CB0CE
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080CB0CE
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080CB0D4
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080CB0CE:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080CB106
-_080CB0D4:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080CB106
- adds r3, r6, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080CB106
- movs r7, 0x1
-_080CB106:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080CB130
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080CB130
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080CB132
-_080CB130:
- movs r7, 0x1
-_080CB132:
- cmp r7, 0
- beq _080CB13C
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB13C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB09C
-
- thumb_func_start sub_80CB144
-sub_80CB144: @ 80CB144
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CB170
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CB170
- ldr r0, _080CB198
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
-_080CB170:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080CB19C
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, _080CB1A0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB198: .4byte gUnknown_0202F7C9
-_080CB19C: .4byte gUnknown_03004B00
-_080CB1A0: .4byte sub_80CB1A4
- thumb_func_end sub_80CB144
-
- thumb_func_start sub_80CB1A4
-sub_80CB1A4: @ 80CB1A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080CB1BA
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080CB1C8
-_080CB1BA:
- cmp r0, 0
- ble _080CB1C8
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080CB1C8:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080CB1E0
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080CB1E0:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CB220
- ldr r0, _080CB21C
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080CB22E
- .align 2, 0
-_080CB21C: .4byte gUnknown_0202F7C9
-_080CB220:
- ldr r0, _080CB258
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080CB22E:
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CB252
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB252:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB258: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CB1A4
-
- thumb_func_start sub_80CB25C
-sub_80CB25C: @ 80CB25C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080CB290
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080CB294
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB290: .4byte gUnknown_03004B00
-_080CB294: .4byte sub_80CB298
- thumb_func_end sub_80CB25C
-
- thumb_func_start sub_80CB298
-sub_80CB298: @ 80CB298
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CB2C8
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB2CC
- cmp r1, r0
- bne _080CB2C2
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080CB2D0
- str r0, [r4, 0x1C]
-_080CB2C2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB2C8: .4byte gUnknown_03004B00
-_080CB2CC: .4byte 0x0000ffff
-_080CB2D0: .4byte sub_80CB2D4
- thumb_func_end sub_80CB298
-
- thumb_func_start sub_80CB2D4
-sub_80CB2D4: @ 80CB2D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CB2EC
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080CB2F0
-_080CB2EC:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080CB2F0:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CB30C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080CB30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB33A
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080CB334
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080CB33A
-_080CB334:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB33A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB2D4
-
- thumb_func_start sub_80CB340
-sub_80CB340: @ 80CB340
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CB36C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080CB370
- adds r0, r4, 0
- bl move_anim_task_del
- b _080CB396
- .align 2, 0
-_080CB36C: .4byte gSprites
-_080CB370:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8078E70
- ldr r1, _080CB39C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080CB3A0
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080CB3A4
- str r1, [r0]
-_080CB396:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gUnknown_03004B00
-_080CB3A4: .4byte sub_80CB3A8
- thumb_func_end sub_80CB340
-
- thumb_func_start sub_80CB3A8
-sub_80CB3A8: @ 80CB3A8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CB428
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, _080CB42C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, _080CB430
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CB3F2
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080CB3F2:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r6, 0
- bl sub_8079A64
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CB420
- strh r0, [r4, 0x8]
- ldr r0, _080CB434
- str r0, [r4]
-_080CB420:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB428: .4byte gTasks
-_080CB42C: .4byte gSprites
-_080CB430: .4byte gUnknown_0202F7C9
-_080CB434: .4byte sub_80CB438
- thumb_func_end sub_80CB3A8
-
- thumb_func_start sub_80CB438
-sub_80CB438: @ 80CB438
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080CB484
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB488
- cmp r1, r0
- bne _080CB494
- ldr r0, _080CB48C
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080CB4A8
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080CB490
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080CB4C2
- .align 2, 0
-_080CB484: .4byte gUnknown_03004B00
-_080CB488: .4byte 0x0000ffff
-_080CB48C: .4byte gTasks
-_080CB490: .4byte gSprites
-_080CB494:
- ldr r1, _080CB4C8
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080CB4C2
-_080CB4A8:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080CB4C2
- adds r0, r3, 0
- bl move_anim_task_del
-_080CB4C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB4C8: .4byte gTasks
- thumb_func_end sub_80CB438
-
- thumb_func_start sub_80CB4CC
-sub_80CB4CC: @ 80CB4CC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CB4DE
- cmp r0, 0x1
- beq _080CB538
- b _080CB58A
-_080CB4DE:
- ldr r6, _080CB530
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CB4F6
- ldr r1, _080CB534
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080CB4F6:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB534
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080CB58A
- .align 2, 0
-_080CB530: .4byte gUnknown_0202F7C9
-_080CB534: .4byte gUnknown_03004B00
-_080CB538:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB58A
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080CB590
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CB594
- str r0, [r5, 0x1C]
- ldr r1, _080CB598
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CB58A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB590: .4byte gUnknown_0202F7C8
-_080CB594: .4byte sub_8078CC0
-_080CB598: .4byte move_anim_8072740
- thumb_func_end sub_80CB4CC
-
- thumb_func_start sub_80CB59C
-sub_80CB59C: @ 80CB59C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CB608
- ldr r4, _080CB614
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080CB618
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080CB608
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080CB608:
- ldr r0, _080CB61C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB614: .4byte gUnknown_0202F7C8
-_080CB618: .4byte gUnknown_03004B00
-_080CB61C: .4byte sub_80CB710
- thumb_func_end sub_80CB59C
-
- thumb_func_start sub_80CB620
-sub_80CB620: @ 80CB620
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080CB6FC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080CB700
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080CB704
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080CB708
- str r0, [r1, 0x1C]
- ldr r1, _080CB70C
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB6FC: .4byte gUnknown_0202F7C8
-_080CB700: .4byte gUnknown_0202F7C9
-_080CB704: .4byte gUnknown_03004B00
-_080CB708: .4byte sub_80CB710
-_080CB70C: .4byte gUnknown_03000728
- thumb_func_end sub_80CB620
-
- thumb_func_start sub_80CB710
-sub_80CB710: @ 80CB710
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080CB750
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080CB750:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080CB762
- adds r0, r3, 0
- bl move_anim_8072740
-_080CB762:
- pop {r0}
- bx r0
- thumb_func_end sub_80CB710
-
- thumb_func_start sub_80CB768
-sub_80CB768: @ 80CB768
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB7A8
- ldr r5, _080CB7E4
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB7E8
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080CB7A8:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080CB7DE
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB7DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB7E4: .4byte gUnknown_0202F7C8
-_080CB7E8: .4byte gUnknown_03004B00
- thumb_func_end sub_80CB768
-
- thumb_func_start sub_80CB7EC
-sub_80CB7EC: @ 80CB7EC
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB7EC
-
- thumb_func_start sub_80CB814
-sub_80CB814: @ 80CB814
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080CB84E
- movs r2, 0x20
- negs r2, r2
- b _080CB856
-_080CB84E:
- cmp r2, 0xFF
- bne _080CB856
- movs r2, 0x88
- lsls r2, 1
-_080CB856:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080CB8A8
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080CB8AA
-_080CB8A8:
- movs r0, 0x1
-_080CB8AA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB814
-
- thumb_func_start sub_80CB8B8
-sub_80CB8B8: @ 80CB8B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080CB8CC
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CB8CC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080CB8E0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB8E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB8B8
-
- thumb_func_start sub_80CB8E8
-sub_80CB8E8: @ 80CB8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB912
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB912:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CB942
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CB948
- str r0, [r4, 0x1C]
-_080CB942:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB948: .4byte sub_80CB8B8
- thumb_func_end sub_80CB8E8
-
- thumb_func_start sub_80CB94C
-sub_80CB94C: @ 80CB94C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080CB994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CB998
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CB99C
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CB9AE
- .align 2, 0
-_080CB994: .4byte gUnknown_0202F7C9
-_080CB998: .4byte gUnknown_0202F7C8
-_080CB99C:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CB9AE:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CB9C0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB9C0: .4byte sub_80CB8E8
- thumb_func_end sub_80CB94C
-
- thumb_func_start sub_80CB9C4
-sub_80CB9C4: @ 80CB9C4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB9EE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB9EE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBA20
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBA20:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB9C4
-
- thumb_func_start sub_80CBA28
-sub_80CBA28: @ 80CBA28
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CBA64
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080CBA6C
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBA68
- b _080CBA96
- .align 2, 0
-_080CBA64: .4byte gUnknown_0202F7C9
-_080CBA68: .4byte sub_80CB8E8
-_080CBA6C:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CBA84
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080CBA84:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBAA0
-_080CBA96:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAA0: .4byte sub_80CB9C4
- thumb_func_end sub_80CBA28
-
- thumb_func_start sub_80CBAA4
-sub_80CBAA4: @ 80CBAA4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBABE
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldr r0, _080CBAE4
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080CBABE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CBADE
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBADE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAE4: .4byte gUnknown_03004B00
- thumb_func_end sub_80CBAA4
-
- thumb_func_start sub_80CBAE8
-sub_80CBAE8: @ 80CBAE8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- ldr r4, _080CBB30
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CBB34
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CBB38
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CBB4A
- .align 2, 0
-_080CBB30: .4byte gUnknown_0202F7C8
-_080CBB34: .4byte gUnknown_0202F7C9
-_080CBB38:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CBB4A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBB5C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBB5C: .4byte sub_80CBB60
- thumb_func_end sub_80CBAE8
-
- thumb_func_start sub_80CBB60
-sub_80CBB60: @ 80CBB60
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CBB8A
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CBB8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080CBBBE
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBBE:
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBBE6
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CBBEC
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBBEC: .4byte sub_80CB8B8
- thumb_func_end sub_80CBB60
-
- thumb_func_start sub_80CBBF0
-sub_80CBBF0: @ 80CBBF0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBC84
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CBC18
- ldr r0, _080CBC14
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080CBC3A
- .align 2, 0
-_080CBC14: .4byte gUnknown_03004B00
-_080CBC18:
- ldr r0, _080CBC74
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080CBC2E
- adds r2, r3, 0
- adds r2, 0xDF
-_080CBC2E:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080CBC3A:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, _080CBC78
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBC7C
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBC82
- .align 2, 0
-_080CBC74: .4byte gUnknown_03004B00
-_080CBC78: .4byte sub_80CBC8C
-_080CBC7C:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBC82:
- strb r0, [r1]
-_080CBC84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBBF0
-
- thumb_func_start sub_80CBC8C
-sub_80CBC8C: @ 80CBC8C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBC9E
- cmp r0, 0x1
- beq _080CBCCE
- b _080CBCEE
-_080CBC9E:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080CBCB6
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CBCEE
-_080CBCB6:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080CBCEE
-_080CBCCE:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBCEE
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CBCEE
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080CBCF4
- str r0, [r4, 0x1C]
-_080CBCEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBCF4: .4byte sub_80CBCF8
- thumb_func_end sub_80CBC8C
-
- thumb_func_start sub_80CBCF8
-sub_80CBCF8: @ 80CBCF8
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CBD3C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080CBD44
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080CBD30
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CBD40
- str r0, [r4, 0x1C]
-_080CBD30:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CBDAA
- .align 2, 0
-_080CBD3C: .4byte gUnknown_083D680C
-_080CBD40: .4byte sub_80CBDB0
-_080CBD44:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CBD92
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBD8A
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBD90
-_080CBD8A:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBD90:
- strb r0, [r1]
-_080CBD92:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080CBDAA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBCF8
-
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080CBDC2
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBDC2:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBDB0
-
- thumb_func_start sub_80CBDF4
-sub_80CBDF4: @ 80CBDF4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CBF48
- adds r5, r0, r1
- ldr r4, _080CBF4C
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _080CBE5C
- movs r1, 0x1
-_080CBE5C:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, _080CBF50
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _080CBE94
- adds r0, r6, 0
- bl move_anim_task_del
-_080CBE94:
- ldr r4, _080CBF54
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80CC338
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- ldr r0, _080CBF58
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gUnknown_0202F7C9
-_080CBF50: .4byte gSpriteTemplate_83D6884
-_080CBF54: .4byte gSprites
-_080CBF58: .4byte sub_80CBF5C
- thumb_func_end sub_80CBDF4
-
- thumb_func_start sub_80CBF5C
-sub_80CBF5C: @ 80CBF5C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CBFA0
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080CBFA4
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080CBF84
- b _080CC1B4
-_080CBF84:
- cmp r5, 0x7
- bgt _080CBFD2
- cmp r5, 0x3
- bne _080CBF8E
- b _080CC0A6
-_080CBF8E:
- cmp r5, 0x3
- bgt _080CBFA8
- cmp r5, 0x1
- beq _080CC038
- cmp r5, 0x1
- bgt _080CC088
- cmp r5, 0
- beq _080CC01A
- b _080CC330
- .align 2, 0
-_080CBFA0: .4byte gTasks
-_080CBFA4: .4byte gSprites
-_080CBFA8:
- cmp r5, 0x5
- bne _080CBFAE
- b _080CC11C
-_080CBFAE:
- cmp r5, 0x5
- ble _080CBFB4
- b _080CC196
-_080CBFB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFCA
- b _080CC330
-_080CBFCA:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CBFD2:
- cmp r5, 0xB
- bne _080CBFD8
- b _080CC298
-_080CBFD8:
- cmp r5, 0xB
- bgt _080CC006
- cmp r5, 0x9
- bne _080CBFE2
- b _080CC206
-_080CBFE2:
- cmp r5, 0x9
- ble _080CBFE8
- b _080CC27C
-_080CBFE8:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFFE
- b _080CC330
-_080CBFFE:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC006:
- cmp r5, 0xD
- bne _080CC00C
- b _080CC30A
-_080CC00C:
- cmp r5, 0xD
- bge _080CC012
- b _080CC2EA
-_080CC012:
- cmp r5, 0xFF
- bne _080CC018
- b _080CC31A
-_080CC018:
- b _080CC330
-_080CC01A:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC030
- b _080CC330
-_080CC030:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC038:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC088:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC09E
- b _080CC330
-_080CC09E:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC0A6:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC11C:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC196:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC1AC
- b _080CC330
-_080CC1AC:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC1B4:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC206:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC27C:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC298:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC2EA:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC30A:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CC330
- adds r0, r2, 0
- bl move_anim_task_del
- b _080CC330
-_080CC31A:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CC330
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080CC32E:
- strh r0, [r6, 0x8]
-_080CC330:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBF5C
-
- thumb_func_start sub_80CC338
-sub_80CC338: @ 80CC338
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080CC34E
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080CC34E:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80CC338
-
- thumb_func_start sub_80CC358
-sub_80CC358: @ 80CC358
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080CC3EE
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080CC3F8
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, _080CC3FC
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080CC3EE
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, _080CC400
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, _080CC404
- str r0, [r5]
-_080CC3EE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC3F8: .4byte gSprites
-_080CC3FC: .4byte gSpriteTemplate_83D6884
-_080CC400: .4byte gTasks
-_080CC404: .4byte sub_80CC408
- thumb_func_end sub_80CC358
-
- thumb_func_start sub_80CC408
-sub_80CC408: @ 80CC408
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CC46A
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CC46A
- ldr r3, _080CC470
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080CC46A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC470: .4byte gTasks
- thumb_func_end sub_80CC408
-
- thumb_func_start sub_80CC474
-sub_80CC474: @ 80CC474
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080CC488
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CC490
- ldr r0, _080CC48C
- b _080CC492
- .align 2, 0
-_080CC488: .4byte gUnknown_03004B00
-_080CC48C: .4byte gUnknown_0202F7C8
-_080CC490:
- ldr r0, _080CC4B0
-_080CC492:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CC4BC
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080CC4B4
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080CC4B8
- b _080CC4CC
- .align 2, 0
-_080CC4B0: .4byte gUnknown_0202F7C9
-_080CC4B4: .4byte gUnknown_03004B00
-_080CC4B8: .4byte 0x0000fff0
-_080CC4BC:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080CC4F0
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080CC4CC:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CC502
- cmp r0, 0x1
- bgt _080CC4F4
- cmp r0, 0
- beq _080CC4FE
- b _080CC56C
- .align 2, 0
-_080CC4F0: .4byte gUnknown_03004B00
-_080CC4F4:
- cmp r0, 0x2
- beq _080CC508
- cmp r0, 0x3
- beq _080CC534
- b _080CC56C
-_080CC4FE:
- ldrh r0, [r5]
- b _080CC518
-_080CC502:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080CC54E
-_080CC508:
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080CC518:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080CC56C
-_080CC534:
- ldr r0, _080CC578
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
-_080CC54E:
- adds r0, r6, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080CC56C:
- ldr r0, _080CC57C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC578: .4byte gUnknown_0202F7C9
-_080CC57C: .4byte sub_80CC580
- thumb_func_end sub_80CC474
-
- thumb_func_start sub_80CC580
-sub_80CC580: @ 80CC580
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, _080CC5D4
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CC5D8
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080CC5F0
- b _080CC5EA
- .align 2, 0
-_080CC5D4: .4byte gSineTable
-_080CC5D8:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _080CC5F0
-_080CC5EA:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CC5F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC580
-
- thumb_func_start sub_80CC5F8
-sub_80CC5F8: @ 80CC5F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CC618
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CC61C
- cmp r0, 0x1
- beq _080CC650
- b _080CC6AA
- .align 2, 0
-_080CC618: .4byte gTasks
-_080CC61C:
- ldr r0, _080CC648
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, _080CC64C
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080CC6AA
- .align 2, 0
-_080CC648: .4byte 0x0000274f
-_080CC64C: .4byte 0x000027b0
-_080CC650:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080CC6AA
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080CC6C4
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _080CC6AA
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _080CC6AA
- strh r7, [r5, 0x1E]
-_080CC6AA:
- ldr r0, _080CC6C8
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080CC6BE
- adds r0, r6, 0
- bl move_anim_task_del
-_080CC6BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gUnknown_03004B00
- thumb_func_end sub_80CC5F8
-
- thumb_func_start sub_80CC6CC
-sub_80CC6CC: @ 80CC6CC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080CC6E4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CC6E8
- adds r0, r6, 0
- bl move_anim_8072740
- b _080CC7C2
- .align 2, 0
-_080CC6E4: .4byte gUnknown_03004B00
-_080CC6E8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CC6F8
- ldr r4, _080CC6F4
- b _080CC6FA
- .align 2, 0
-_080CC6F4: .4byte gUnknown_0202F7C8
-_080CC6F8:
- ldr r4, _080CC734
-_080CC6FA:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CC738
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080CC73C
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _080CC74C
- .align 2, 0
-_080CC734: .4byte gUnknown_0202F7C9
-_080CC738: .4byte gUnknown_03004B00
-_080CC73C:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_080CC74C:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CC7AE
- ldr r1, _080CC7CC
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080CC7AE:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080CC7D0
- str r0, [r6, 0x1C]
-_080CC7C2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC7CC: .4byte 0xffff8000
-_080CC7D0: .4byte sub_80CC7D4
- thumb_func_end sub_80CC6CC
-
- thumb_func_start sub_80CC7D4
-sub_80CC7D4: @ 80CC7D4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080CC804
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _080CC80A
-_080CC804:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080CC80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC7D4
-
- thumb_func_start sub_80CC810
-sub_80CC810: @ 80CC810
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CC826
- adds r0, r2, 0
- bl move_anim_8072740
-_080CC826:
- pop {r0}
- bx r0
- thumb_func_end sub_80CC810
-
- thumb_func_start sub_80CC82C
-sub_80CC82C: @ 80CC82C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CC84C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CC854
- ldr r2, _080CC850
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080CC860
- .align 2, 0
-_080CC84C: .4byte gUnknown_0202F7C8
-_080CC850: .4byte gUnknown_03004B00
-_080CC854:
- ldr r0, _080CC878
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CC860:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CC87C
- str r0, [r4, 0x1C]
- ldr r1, _080CC880
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC878: .4byte gUnknown_03004B00
-_080CC87C: .4byte sub_8078600
-_080CC880: .4byte move_anim_8072740
- thumb_func_end sub_80CC82C
-
- thumb_func_start sub_80CC884
-sub_80CC884: @ 80CC884
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CC8BC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CC89E
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CC89E:
- ldr r0, _080CC8C0
- str r0, [r5, 0x1C]
- ldr r4, _080CC8C4
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC8BC: .4byte gUnknown_0202F7C8
-_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gUnknown_03004B00
- thumb_func_end sub_80CC884
-
- thumb_func_start sub_80CC8C8
-sub_80CC8C8: @ 80CC8C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CC908
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080CC90C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CC910
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC908: .4byte gUnknown_03004B00
-_080CC90C: .4byte move_anim_8074EE0
-_080CC910: .4byte sub_8078504
- thumb_func_end sub_80CC8C8
-
- thumb_func_start sub_80CC914
-sub_80CC914: @ 80CC914
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CC964
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CC948
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080CC948:
- ldr r0, _080CC968
- str r0, [r5, 0x1C]
- ldr r0, _080CC96C
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CC970
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080CC984
- .align 2, 0
-_080CC964: .4byte gUnknown_0202F7C9
-_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gUnknown_03004B00
-_080CC970:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CC984:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080CC9B8
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CC9B2
- negs r0, r1
- strh r0, [r5, 0x30]
-_080CC9B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC9B8: .4byte 0xfffffc00
- thumb_func_end sub_80CC914
-
- thumb_func_start sub_80CC9BC
-sub_80CC9BC: @ 80CC9BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080CC9D8
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CC9DC
- cmp r0, 0x1
- ble _080CCA58
- cmp r0, 0x2
- beq _080CC9FC
- b _080CCA58
- .align 2, 0
-_080CC9D8: .4byte gUnknown_03004B00
-_080CC9DC:
- ldr r5, _080CC9F8
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080CCA68
- .align 2, 0
-_080CC9F8: .4byte gUnknown_0202F7C9
-_080CC9FC:
- ldr r5, _080CCA54
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CCA72
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080CCA72
- .align 2, 0
-_080CCA54: .4byte gUnknown_0202F7C9
-_080CCA58:
- ldr r4, _080CCAA4
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080CCA68:
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCA72:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080CCAA4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CCA8A
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080CCA8A:
- ldr r0, _080CCAA8
- str r0, [r6, 0x1C]
- ldr r0, _080CCAAC
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CCAB0
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080CCAC4
- .align 2, 0
-_080CCAA4: .4byte gUnknown_0202F7C9
-_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gUnknown_03004B00
-_080CCAB0:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CCAC4:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080CCAFC
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CCAF2
- negs r0, r1
- strh r0, [r6, 0x30]
-_080CCAF2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCAFC: .4byte 0xfffffc00
- thumb_func_end sub_80CC9BC
-
- thumb_func_start sub_80CCB00
-sub_80CCB00: @ 80CCB00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CCB22
- adds r0, r1, 0
- adds r0, 0x18
- b _080CCB26
-_080CCB22:
- adds r0, r1, 0
- subs r0, 0x18
-_080CCB26:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080CCB5C
- ldr r1, _080CCB64
- adds r0, r4, 0
- bl oamt_set_x3A_32
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080CCB68
- str r0, [r4, 0x1C]
-_080CCB5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCB64: .4byte move_anim_8072740
-_080CCB68: .4byte sub_80782D8
- thumb_func_end sub_80CCB00
-
- thumb_func_start unref_sub_80CCB6C
-unref_sub_80CCB6C: @ 80CCB6C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080CCC10
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCBC8
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, _080CCBC4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _080CCBFE
- .align 2, 0
-_080CCBC4: .4byte gSprites
-_080CCBC8:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080CCC0C
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_080CCBFE:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080CCC14
- .align 2, 0
-_080CCC0C: .4byte gSprites
-_080CCC10:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080CCC14:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080CCC44
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080CCC4C
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl move_anim_8072740
-_080CCC44:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCC4C: .4byte gSprites
- thumb_func_end unref_sub_80CCB6C
-
- thumb_func_start sub_80CCC50
-sub_80CCC50: @ 80CCC50
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CCC70
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCC74
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CCC78
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080CCC7E
- .align 2, 0
-_080CCC70: .4byte gUnknown_03004B00
-_080CCC74: .4byte gUnknown_0202F7C8
-_080CCC78:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080CCC7E:
- strh r0, [r5, 0x20]
- ldr r4, _080CCCAC
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080CCCB0
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCCAC: .4byte gUnknown_03004B00
-_080CCCB0: .4byte sub_80CCCB4
- thumb_func_end sub_80CCC50
-
- thumb_func_start sub_80CCCB4
-sub_80CCCB4: @ 80CCCB4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CCCE0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080CCCE6
-_080CCCE0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080CCCE6:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080CCD1C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CCD1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CCCB4
-
- thumb_func_start sub_80CCD24
-sub_80CCD24: @ 80CCD24
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CCD3A
- ldr r1, _080CCD98
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080CCD3A:
- ldr r6, _080CCD9C
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080CCD98
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CCD78
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CCDA0
-_080CCD78:
- ldrb r0, [r6]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _080CCDB8
- .align 2, 0
-_080CCD98: .4byte gUnknown_03004B00
-_080CCD9C: .4byte gUnknown_0202F7C8
-_080CCDA0:
- ldrb r0, [r6]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080CCDB8:
- ldr r0, _080CCDF8
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCDFC
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3
- strh r0, [r5, 0x32]
- movs r2, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldr r1, _080CCE00
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- ldr r3, _080CCE04
- ldrh r1, [r5, 0x3C]
- lsls r0, r1, 8
- subs r2, r1
- orrs r0, r2
- strh r0, [r3]
- ldr r0, _080CCE08
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCDF8: .4byte gUnknown_03004B00
-_080CCDFC: .4byte 0x00002828
-_080CCE00: .4byte REG_BLDCNT
-_080CCE04: .4byte REG_BLDALPHA
-_080CCE08: .4byte sub_80CCE0C
- thumb_func_end sub_80CCD24
-
- thumb_func_start sub_80CCE0C
-sub_80CCE0C: @ 80CCE0C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE6A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080CCEB0
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_080CCE44:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _080CCE44
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080CCE6A:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080CCE9E
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080CCEB8
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE9E
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- ldr r3, _080CCEB4
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
-_080CCE9E:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCEB8
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080CCEF4
- .align 2, 0
-_080CCEB0: .4byte gPlttBufferFaded
-_080CCEB4: .4byte REG_BLDALPHA
-_080CCEB8:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCEF4
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r1, 0x1
- strh r1, [r4, 0x3C]
- ldr r3, _080CCEFC
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CCEF4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CCF00
- str r0, [r4, 0x1C]
-_080CCEF4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCEFC: .4byte REG_BLDALPHA
-_080CCF00: .4byte sub_807861C
- thumb_func_end sub_80CCE0C
-
- thumb_func_start sub_80CCF04
-sub_80CCF04: @ 80CCF04
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CCF5C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CCF60
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- ldr r1, _080CCF64
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080CCF68
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080CCF6C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCF5C: .4byte gUnknown_0202F7C9
-_080CCF60: .4byte 0x0000ffe8
-_080CCF64: .4byte REG_BLDCNT
-_080CCF68: .4byte REG_BLDALPHA
-_080CCF6C: .4byte sub_80CCF70
- thumb_func_end sub_80CCF04
-
- thumb_func_start sub_80CCF70
-sub_80CCF70: @ 80CCF70
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CCF7E
- b _080CD0C0
-_080CCF7E:
- lsls r0, 2
- ldr r1, _080CCF88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CCF88: .4byte _080CCF8C
- .align 2, 0
-_080CCF8C:
- .4byte _080CCFA0
- .4byte _080CD004
- .4byte _080CD020
- .4byte _080CD09C
- .4byte _080CD0B0
-_080CCFA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080CCFAE
- b _080CD0C0
-_080CCFAE:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCFD0
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CCFDE
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CCFDE
-_080CCFD0:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCFDE
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CCFDE:
- ldr r2, _080CD000
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD0C0
- strh r0, [r4, 0x30]
- b _080CD0A8
- .align 2, 0
-_080CD000: .4byte REG_BLDALPHA
-_080CD004:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD0C0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CD0A8
-_080CD020:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80CD0CC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD042
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080CD042:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080CD0C0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080CD068
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CD076
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CD076
-_080CD068:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CD076
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CD076:
- ldr r0, _080CD098
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r2, [r4, 0x3A]
- orrs r1, r2
- strh r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080CD0C0
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080CD0A8
- .align 2, 0
-_080CD098: .4byte REG_BLDALPHA
-_080CD09C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080CD0A8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CD0C0
-_080CD0B0:
- ldr r0, _080CD0C8
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD0C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD0C8: .4byte REG_BLDCNT
- thumb_func_end sub_80CCF70
-
- thumb_func_start sub_80CD0CC
-sub_80CD0CC: @ 80CD0CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080CD0DE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0DE:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _080CD0F4
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0F4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080CD102
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD102:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _080CD128
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080CD128:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080CD138
- movs r0, 0
- strh r0, [r4, 0x34]
-_080CD138:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD0CC
-
- thumb_func_start sub_80CD140
-sub_80CD140: @ 80CD140
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CD184
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD154
- adds r0, r4, 0
- bl sub_8078650
-_080CD154:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080CD188
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD18C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD184: .4byte gUnknown_03004B00
-_080CD188: .4byte move_anim_8072740
-_080CD18C: .4byte sub_8078394
- thumb_func_end sub_80CD140
-
- thumb_func_start sub_80CD190
-sub_80CD190: @ 80CD190
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CD1A4
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CD1AC
- ldr r0, _080CD1A8
- b _080CD1AE
- .align 2, 0
-_080CD1A4: .4byte gUnknown_03004B00
-_080CD1A8: .4byte gUnknown_0202F7C8
-_080CD1AC:
- ldr r0, _080CD1F0
-_080CD1AE:
- ldrb r6, [r0]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- ldr r4, _080CD1F4
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl sub_807A3FC
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080CD248
- .align 2, 0
-_080CD1F0: .4byte gUnknown_0202F7C9
-_080CD1F4: .4byte gUnknown_03004B00
-_080CD1F8:
- ldr r4, _080CD218
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD21C
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080CD22E
- .align 2, 0
-_080CD218: .4byte gUnknown_03004B00
-_080CD21C:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080CD22E:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080CD268
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_807867C
-_080CD248:
- ldr r1, _080CD268
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, _080CD26C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD270
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD268: .4byte gUnknown_03004B00
-_080CD26C: .4byte move_anim_8072740
-_080CD270: .4byte sub_8078394
- thumb_func_end sub_80CD190
-
- thumb_func_start sub_80CD274
-sub_80CD274: @ 80CD274
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD2A0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CD2A8
- ldr r0, _080CD2A4
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _080CD2C2
- .align 2, 0
-_080CD2A0: .4byte gUnknown_0202F7C8
-_080CD2A4: .4byte gUnknown_03004B00
-_080CD2A8:
- ldr r2, _080CD2CC
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CD2C2:
- ldr r0, _080CD2D0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD2CC: .4byte gUnknown_03004B00
-_080CD2D0: .4byte sub_80CD2D4
- thumb_func_end sub_80CD274
-
- thumb_func_start sub_80CD2D4
-sub_80CD2D4: @ 80CD2D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CD30C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CD30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CD320
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD320:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD2D4
-
- thumb_func_start sub_80CD328
-sub_80CD328: @ 80CD328
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD358
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CD360
- ldr r1, _080CD35C
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _080CD37E
- .align 2, 0
-_080CD358: .4byte gUnknown_0202F7C8
-_080CD35C: .4byte gUnknown_03004B00
-_080CD360:
- ldr r2, _080CD388
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, _080CD38C
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CD37E:
- ldr r0, _080CD390
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD388: .4byte gUnknown_03004B00
-_080CD38C: .4byte 0x0000ffff
-_080CD390: .4byte sub_80CD394
- thumb_func_end sub_80CD328
-
- thumb_func_start sub_80CD394
-sub_80CD394: @ 80CD394
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080CD3D8
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CD3D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD394
-
- thumb_func_start sub_80CD3E0
-sub_80CD3E0: @ 80CD3E0
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, _080CD400
- str r1, [r0, 0x1C]
- ldr r1, _080CD404
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CD400: .4byte sub_80782D8
-_080CD404: .4byte sub_80CD408
- thumb_func_end sub_80CD3E0
-
- thumb_func_start sub_80CD408
-sub_80CD408: @ 80CD408
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080CD41E
- cmp r0, 0x1
- beq _080CD438
- b _080CD49E
-_080CD41E:
- strh r1, [r5, 0x2E]
- ldr r0, _080CD430
- str r0, [r5, 0x1C]
- ldr r1, _080CD434
- adds r0, r5, 0
- bl oamt_set_x3A_32
- b _080CD49E
- .align 2, 0
-_080CD430: .4byte sub_80782D8
-_080CD434: .4byte sub_80CD408
-_080CD438:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, _080CD4AC
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, _080CD4B0
- str r0, [r5, 0x1C]
- ldr r1, _080CD4B4
- adds r0, r5, 0
- bl oamt_set_x3A_32
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xD2
- bl PlaySE12WithPanning
-_080CD49E:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4AC: .4byte gUnknown_083D6DDC
-_080CD4B0: .4byte sub_8078B34
-_080CD4B4: .4byte sub_80CD4B8
- thumb_func_end sub_80CD408
-
- thumb_func_start sub_80CD4B8
-sub_80CD4B8: @ 80CD4B8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080CD4E0
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080CD4D8
- str r0, [r2, 0x1C]
- ldr r1, _080CD4DC
- adds r0, r2, 0
- bl oamt_set_x3A_32
- b _080CD4E4
- .align 2, 0
-_080CD4D8: .4byte sub_80782D8
-_080CD4DC: .4byte sub_80CD4EC
-_080CD4E0:
- ldr r0, _080CD4E8
- str r0, [r2, 0x1C]
-_080CD4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4E8: .4byte sub_80CD408
- thumb_func_end sub_80CD4B8
-
- thumb_func_start sub_80CD4EC
-sub_80CD4EC: @ 80CD4EC
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080CD514
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080CD50C
- str r0, [r5, 0x1C]
- ldr r1, _080CD510
- adds r0, r5, 0
- bl oamt_set_x3A_32
- b _080CD594
- .align 2, 0
-_080CD50C: .4byte sub_80782D8
-_080CD510: .4byte sub_80CD5A8
-_080CD514:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080CD534
- cmp r0, 0x2
- bgt _080CD524
- cmp r0, 0x1
- beq _080CD52A
- b _080CD548
-_080CD524:
- cmp r0, 0x3
- beq _080CD53C
- b _080CD548
-_080CD52A:
- ldr r6, _080CD530
- adds r7, r6, 0
- b _080CD54C
- .align 2, 0
-_080CD530: .4byte 0x0000fff8
-_080CD534:
- ldr r7, _080CD538
- b _080CD54A
- .align 2, 0
-_080CD538: .4byte 0x0000fff8
-_080CD53C:
- movs r7, 0x8
- ldr r6, _080CD544
- b _080CD54C
- .align 2, 0
-_080CD544: .4byte 0x0000fff8
-_080CD548:
- movs r7, 0x8
-_080CD54A:
- movs r6, 0x8
-_080CD54C:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080CD59C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080CD5A0
- str r0, [r5, 0x1C]
- ldr r1, _080CD5A4
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CD594:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD59C: .4byte gUnknown_0202F7C9
-_080CD5A0: .4byte sub_8078B34
-_080CD5A4: .4byte sub_80CD654
- thumb_func_end sub_80CD4EC
-
- thumb_func_start sub_80CD5A8
-sub_80CD5A8: @ 80CD5A8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CD5C8
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CD5D8
- movs r0, 0x10
- b _080CD5D6
-_080CD5C8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080CD5D8
- movs r0, 0
-_080CD5D6:
- strh r0, [r4, 0x30]
-_080CD5D8:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80791A8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080CD634
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080CD640
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080CD638
- adds r0, r2
- lsls r1, 4
- ldr r3, _080CD63C
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- b _080CD648
- .align 2, 0
-_080CD634: .4byte 0x00007fff
-_080CD638: .4byte gPlttBufferUnfaded + 0x210
-_080CD63C: .4byte 0x00000101
-_080CD640:
- cmp r0, 0
- bne _080CD648
- ldr r0, _080CD650
- str r0, [r4, 0x1C]
-_080CD648:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD650: .4byte sub_80CD654
- thumb_func_end sub_80CD5A8
-
- thumb_func_start sub_80CD654
-sub_80CD654: @ 80CD654
- push {lr}
- adds r2, r0, 0
- ldr r0, _080CD670
- ldrh r1, [r0, 0xE]
- ldr r0, _080CD674
- cmp r1, r0
- bne _080CD66C
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080CD678
- str r0, [r2, 0x1C]
-_080CD66C:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD670: .4byte gUnknown_03004B00
-_080CD674: .4byte 0x0000ffff
-_080CD678: .4byte sub_80CD67C
- thumb_func_end sub_80CD654
-
- thumb_func_start sub_80CD67C
-sub_80CD67C: @ 80CD67C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080CD6B0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080CD6B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080CD6C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD6C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD67C
-
- thumb_func_start sub_80CD6CC
-sub_80CD6CC: @ 80CD6CC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080CD6EC
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CD6F0
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080CD742
- .align 2, 0
-_080CD6EC: .4byte gUnknown_03004B00
-_080CD6F0:
- cmp r0, 0x2
- bne _080CD70C
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _080CD73E
-_080CD70C:
- cmp r0, 0x3
- bne _080CD728
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _080CD73E
-_080CD728:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_080CD73E:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080CD742:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080CD768
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080CD76C
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080CD770
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD768: .4byte 0x000003ff
-_080CD76C: .4byte 0xfffffc00
-_080CD770: .4byte sub_80CD3E0
- thumb_func_end sub_80CD6CC
-
- thumb_func_start sub_80CD774
-sub_80CD774: @ 80CD774
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, _080CD79C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CD7B0
- cmp r0, 0x1
- bgt _080CD7A0
- cmp r0, 0
- beq _080CD7A6
- b _080CD7C0
- .align 2, 0
-_080CD79C: .4byte gUnknown_03004B00
-_080CD7A0:
- cmp r0, 0x2
- beq _080CD7B8
- b _080CD7C0
-_080CD7A6:
- ldr r0, _080CD7AC
- b _080CD7C2
- .align 2, 0
-_080CD7AC: .4byte sub_80CD7CC
-_080CD7B0:
- ldr r0, _080CD7B4
- b _080CD7C2
- .align 2, 0
-_080CD7B4: .4byte sub_80CD8A8
-_080CD7B8:
- ldr r0, _080CD7BC
- b _080CD7C2
- .align 2, 0
-_080CD7BC: .4byte sub_80CD8F8
-_080CD7C0:
- ldr r0, _080CD7C8
-_080CD7C2:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080CD7C8: .4byte sub_80CD9B8
- thumb_func_end sub_80CD774
-
- thumb_func_start sub_80CD7CC
-sub_80CD7CC: @ 80CD7CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080CD80C
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD7EA
- movs r1, 0x2
-_080CD7EA:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD810
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD814
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD818
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD80C: .4byte gUnknown_0202F7C8
-_080CD810: .4byte gUnknown_02024BE0
-_080CD814: .4byte sub_80CD81C
-_080CD818: .4byte sub_8078458
- thumb_func_end sub_80CD7CC
-
- thumb_func_start sub_80CD81C
-sub_80CD81C: @ 80CD81C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080CD858
- ldr r1, _080CD898
- ldr r4, _080CD89C
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_8078E70
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080CD8A0
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD854
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080CD854:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080CD858:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CD892
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CD8A4
- str r0, [r5, 0x1C]
-_080CD892:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD898: .4byte gUnknown_02024BE0
-_080CD89C: .4byte gUnknown_0202F7C8
-_080CD8A0: .4byte 0xfffffd00
-_080CD8A4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD81C
-
- thumb_func_start sub_80CD8A8
-sub_80CD8A8: @ 80CD8A8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080CD8C6
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080CD8C6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD8EC
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD8F0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD8F4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD8E8: .4byte gUnknown_0202F7C8
-_080CD8EC: .4byte gUnknown_02024BE0
-_080CD8F0: .4byte sub_80CD9B8
-_080CD8F4: .4byte sub_8078458
- thumb_func_end sub_80CD8A8
-
- thumb_func_start sub_80CD8F8
-sub_80CD8F8: @ 80CD8F8
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD912
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080CD918
- str r0, [r1, 0x1C]
-_080CD912:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD918: .4byte sub_80CD91C
- thumb_func_end sub_80CD8F8
-
- thumb_func_start sub_80CD91C
-sub_80CD91C: @ 80CD91C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD96C
- ldr r1, _080CD958
- ldr r4, _080CD95C
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CD960
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080CD96A
- .align 2, 0
-_080CD958: .4byte gUnknown_02024BE0
-_080CD95C: .4byte gUnknown_0202F7C8
-_080CD960:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080CD96A:
- strh r0, [r5, 0x38]
-_080CD96C:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD9AC
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- ldr r0, _080CD9B4
- str r0, [r5, 0x1C]
-_080CD9AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD9B4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD91C
-
- thumb_func_start sub_80CD9B8
-sub_80CD9B8: @ 80CD9B8
- push {lr}
- bl move_anim_8072740
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9B8
-
- thumb_func_start sub_80CD9C4
-sub_80CD9C4: @ 80CD9C4
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080CD9D0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CD9D0: .4byte sub_80CD9D4
- thumb_func_end sub_80CD9C4
-
- thumb_func_start sub_80CD9D4
-sub_80CD9D4: @ 80CD9D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080CDA2E
- cmp r5, 0x1
- bgt _080CD9EA
- cmp r5, 0
- beq _080CD9F0
- b _080CDAC2
-_080CD9EA:
- cmp r5, 0x2
- beq _080CDA80
- b _080CDAC2
-_080CD9F0:
- strh r5, [r4, 0x30]
- ldr r1, _080CDA74
- ldr r2, _080CDA78
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, _080CDA7C
- adds r1, r2, 0
- cmp r0, 0
- beq _080CDA18
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080CDA18:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080CDA2E:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CDAC2
- .align 2, 0
-_080CDA74: .4byte gUnknown_02024BE0
-_080CDA78: .4byte gUnknown_0202F7C8
-_080CDA7C: .4byte 0xfffffe00
-_080CDA80:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_8072740
-_080CDAC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9D4
-
- thumb_func_start sub_80CDAC8
-sub_80CDAC8: @ 80CDAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080CDB0C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080CDB10
- ldr r2, _080CDB14
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, _080CDB18
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080CDB1C
- cmp r1, 0x1
- beq _080CDB38
- adds r0, r6, 0
- bl move_anim_task_del
- b _080CDB56
- .align 2, 0
-_080CDB0C: .4byte gTasks
-_080CDB10: .4byte gUnknown_02024BE0
-_080CDB14: .4byte gUnknown_0202F7C8
-_080CDB18: .4byte gUnknown_03004B00
-_080CDB1C:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _080CDB30
- negs r0, r0
- strh r0, [r5, 0x12]
-_080CDB30:
- ldr r0, _080CDB34
- b _080CDB54
- .align 2, 0
-_080CDB34: .4byte sub_80CDB60
-_080CDB38:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _080CDB52
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080CDB52:
- ldr r0, _080CDB5C
-_080CDB54:
- str r0, [r5]
-_080CDB56:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDB5C: .4byte sub_80CDD20
- thumb_func_end sub_80CDAC8
-
- thumb_func_start sub_80CDB60
-sub_80CDB60: @ 80CDB60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CDB84
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CDB7A
- b _080CDD1A
-_080CDB7A:
- lsls r0, 2
- ldr r1, _080CDB88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CDB84: .4byte gTasks
-_080CDB88: .4byte _080CDB8C
- .align 2, 0
-_080CDB8C:
- .4byte _080CDBA0
- .4byte _080CDBD2
- .4byte _080CDC2C
- .4byte _080CDCA4
- .4byte _080CDCE8
-_080CDBA0:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080CDBB0
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080CDCF6
-_080CDBB0:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _080CDBC6
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080CDBC6:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- b _080CDCDC
-_080CDBD2:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDBF8
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- b _080CDD08
-_080CDBF8:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080CDC28
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDC1E
- movs r1, 0x2
-_080CDC1E:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDCDC
- .align 2, 0
-_080CDC28: .4byte gSprites
-_080CDC2C:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC88
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC46
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080CDD1A
-_080CDC46:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080CDC68
- ldr r2, _080CDC64
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _080CDC7C
- .align 2, 0
-_080CDC64: .4byte gSprites
-_080CDC68:
- ldr r2, _080CDC84
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_080CDC7C:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDD08
- .align 2, 0
-_080CDC84: .4byte gSprites
-_080CDC88:
- ldr r2, _080CDCA0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _080CDCDC
- .align 2, 0
-_080CDCA0: .4byte gSprites
-_080CDCA4:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080CDCB4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
-_080CDCB4:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080CDCE4
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDCDA
- movs r1, 0x8
-_080CDCDA:
- strh r1, [r4, 0x12]
-_080CDCDC:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080CDD1A
- .align 2, 0
-_080CDCE4: .4byte gSprites
-_080CDCE8:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDD14
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080CDCF6:
- strh r2, [r4, 0x10]
- ldr r3, _080CDD10
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_080CDD08:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
- .align 2, 0
-_080CDD10: .4byte gSprites
-_080CDD14:
- adds r0, r2, 0
- bl move_anim_task_del
-_080CDD1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDB60
-
- thumb_func_start sub_80CDD20
-sub_80CDD20: @ 80CDD20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CDD5C
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CDD60
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD6C
- .align 2, 0
-_080CDD5C: .4byte gTasks
-_080CDD60:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080CDD6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDD20
-
- thumb_func_start sub_80CDD74
-sub_80CDD74: @ 80CDD74
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDD88
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDD90
- ldr r4, _080CDD8C
- b _080CDD92
- .align 2, 0
-_080CDD88: .4byte gUnknown_03004B00
-_080CDD8C: .4byte gUnknown_0202F7C8
-_080CDD90:
- ldr r4, _080CDDD0
-_080CDD92:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, _080CDDD4
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDDD8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDDD0: .4byte gUnknown_0202F7C9
-_080CDDD4: .4byte sub_80CDEC0
-_080CDDD8: .4byte sub_8078600
- thumb_func_end sub_80CDD74
-
- thumb_func_start sub_80CDDDC
-sub_80CDDDC: @ 80CDDDC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CDE14
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE18
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CDE1C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDE20
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE14: .4byte gUnknown_0202F7C9
-_080CDE18: .4byte 0x0000ffd0
-_080CDE1C: .4byte sub_80CDE78
-_080CDE20: .4byte sub_8078600
- thumb_func_end sub_80CDDDC
-
- thumb_func_start sub_80CDE24
-sub_80CDE24: @ 80CDE24
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CDE68
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE6C
- ldr r2, _080CDE70
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, _080CDE74
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE68: .4byte gUnknown_0202F7C9
-_080CDE6C: .4byte gUnknown_03004B00
-_080CDE70: .4byte 0x0000ffd0
-_080CDE74: .4byte sub_80CDEC0
- thumb_func_end sub_80CDE24
-
- thumb_func_start sub_80CDE78
-sub_80CDE78: @ 80CDE78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDEA2
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CDEA8
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDEAC
- str r0, [r4, 0x1C]
-_080CDEA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDEA8: .4byte sub_80CDEB0
-_080CDEAC: .4byte sub_8078364
- thumb_func_end sub_80CDE78
-
- thumb_func_start sub_80CDEB0
-sub_80CDEB0: @ 80CDEB0
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080CDEBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CDEBC: .4byte sub_80CDEC0
- thumb_func_end sub_80CDEB0
-
- thumb_func_start sub_80CDEC0
-sub_80CDEC0: @ 80CDEC0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CDF08
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDF08
- adds r0, r3, 0
- bl move_anim_8072740
-_080CDF08:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDEC0
-
- thumb_func_start sub_80CDF0C
-sub_80CDF0C: @ 80CDF0C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDF20
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDF28
- ldr r4, _080CDF24
- b _080CDF2A
- .align 2, 0
-_080CDF20: .4byte gUnknown_03004B00
-_080CDF24: .4byte gUnknown_0202F7C8
-_080CDF28:
- ldr r4, _080CDF64
-_080CDF2A:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CDF68
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080CDF6C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDF64: .4byte gUnknown_0202F7C9
-_080CDF68: .4byte gUnknown_03004B00
-_080CDF6C: .4byte sub_80CDF70
- thumb_func_end sub_80CDF0C
-
- thumb_func_start sub_80CDF70
-sub_80CDF70: @ 80CDF70
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _080CDF90
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080CDF90:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CDFAC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CDFAC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDF70
-
- thumb_func_start sub_80CDFB0
-sub_80CDFB0: @ 80CDFB0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CDFF8
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080CDFFC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDFF8: .4byte gUnknown_0202F7C8
-_080CDFFC: .4byte sub_80CE000
- thumb_func_end sub_80CDFB0
-
- thumb_func_start sub_80CE000
-sub_80CE000: @ 80CE000
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080CE06C
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC2
- bl PlaySE12WithPanning
-_080CE052:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE06C
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CE06C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080CE096
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- adds r0, r4, 0
- bl move_anim_8072740
-_080CE096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CE000
-
- thumb_func_start sub_80CE09C
-sub_80CE09C: @ 80CE09C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CE0E6
- ldr r4, _080CE0FC
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _080CE100
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE0E0
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080CE0E0:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080CE0E6:
- ldr r0, _080CE100
- ldrh r1, [r0, 0xE]
- ldr r0, _080CE104
- cmp r1, r0
- bne _080CE0F6
- adds r0, r6, 0
- bl move_anim_8072740
-_080CE0F6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE0FC: .4byte gUnknown_0202F7C8
-_080CE100: .4byte gUnknown_03004B00
-_080CE104: .4byte 0x0000ffff
- thumb_func_end sub_80CE09C
-
- thumb_func_start sub_80CE108
-sub_80CE108: @ 80CE108
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CE128
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080CE134
- ldr r1, _080CE12C
- ldr r0, _080CE130
- strh r0, [r1, 0xE]
- b _080CE16C
- .align 2, 0
-_080CE128: .4byte gTasks
-_080CE12C: .4byte gUnknown_03004B00
-_080CE130: .4byte 0x0000ffff
-_080CE134:
- cmp r0, 0x2
- bne _080CE140
- adds r0, r2, 0
- bl move_anim_task_del
- b _080CE172
-_080CE140:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE172
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- ldr r3, _080CE178
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CE172
-_080CE16C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080CE172:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE178: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE108
-
- thumb_func_start sub_80CE17C
-sub_80CE17C: @ 80CE17C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CE1A4
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080CE1A8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE1A4: .4byte gUnknown_03004B00
-_080CE1A8: .4byte sub_80CE1AC
- thumb_func_end sub_80CE17C
-
- thumb_func_start sub_80CE1AC
-sub_80CE1AC: @ 80CE1AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080CE1C0
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080CE1FC
-_080CE1C0:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, _080CE204
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CE208
- str r0, [r5, 0x1C]
- ldr r1, _080CE20C
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CE1FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE204: .4byte gUnknown_0202F7C8
-_080CE208: .4byte sub_8078B34
-_080CE20C: .4byte move_anim_8072740
- thumb_func_end sub_80CE1AC
-
- thumb_func_start sub_80CE210
-sub_80CE210: @ 80CE210
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080CE258
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE252
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _080CE25C
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _080CE252
- adds r0, r4, 0
- bl move_anim_task_del
-_080CE252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE258: .4byte gTasks
-_080CE25C: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE210
-
- thumb_func_start unref_sub_80CE260
-unref_sub_80CE260: @ 80CE260
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080CE2C8
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080CE2BC
- ldr r6, _080CE2CC
- ldr r5, _080CE2D0
-_080CE274:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE290
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CE290
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE290:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE2AE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CE2C8
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE274
-_080CE2BC:
- adds r0, r7, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE2C8: .4byte gUnknown_02024A68
-_080CE2CC: .4byte gUnknown_03004B00
-_080CE2D0: .4byte gUnknown_03004340
- thumb_func_end unref_sub_80CE260
-
- thumb_func_start unref_sub_80CE2D4
-unref_sub_80CE2D4: @ 80CE2D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080CE2EE
-_080CE2DE:
- ldr r0, _080CE304
- adds r0, r4, r0
- ldrb r0, [r0]
- bl sub_8043DFC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CE2EE:
- ldr r0, _080CE308
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE2DE
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE304: .4byte gUnknown_03004340
-_080CE308: .4byte gUnknown_02024A68
- thumb_func_end unref_sub_80CE2D4
-
- thumb_func_start sub_80CE30C
-sub_80CE30C: @ 80CE30C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE322
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080CE32A
-_080CE322:
- ldr r0, _080CE34C
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CE32A:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CE350
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE34C: .4byte gUnknown_03004B00
-_080CE350: .4byte sub_80CE354
- thumb_func_end sub_80CE30C
-
- thumb_func_start sub_80CE354
-sub_80CE354: @ 80CE354
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE366
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE366:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE354
-
- thumb_func_start sub_80CE36C
-sub_80CE36C: @ 80CE36C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CE3A4
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080CE3A8
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, _080CE3AC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE3A4: .4byte gUnknown_0202F7C8
-_080CE3A8: .4byte gUnknown_03004B00
-_080CE3AC: .4byte sub_80CE3B0
- thumb_func_end sub_80CE36C
-
- thumb_func_start sub_80CE3B0
-sub_80CE3B0: @ 80CE3B0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE3DA
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080CE3DA
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080CE3DA:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE3E8
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE3E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE3B0
-
- thumb_func_start sub_80CE3EC
-sub_80CE3EC: @ 80CE3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- mov r8, r0
- ldr r0, _080CE4BC
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080CE4C0
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl sub_8079BF4
- ldr r0, _080CE4C4
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, _080CE4C8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080CE4CC
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080CE4D0
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE4BC: .4byte 0x0000ffff
-_080CE4C0: .4byte gTasks
-_080CE4C4: .4byte 0x000027d2
-_080CE4C8: .4byte 0x000027d3
-_080CE4CC: .4byte 0x00007fbb
-_080CE4D0: .4byte sub_80CE4D4
- thumb_func_end sub_80CE3EC
-
- thumb_func_start sub_80CE4D4
-sub_80CE4D4: @ 80CE4D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CE4FC
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080CE5C0
- cmp r1, 0x1
- bgt _080CE500
- cmp r1, 0
- beq _080CE50E
- b _080CE65E
- .align 2, 0
-_080CE4FC: .4byte gTasks
-_080CE500:
- cmp r1, 0x2
- bne _080CE506
- b _080CE618
-_080CE506:
- cmp r1, 0x3
- bne _080CE50C
- b _080CE64C
-_080CE50C:
- b _080CE65E
-_080CE50E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080CE51C
- b _080CE65E
-_080CE51C:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080CE568
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _080CE572
-_080CE568:
- ldr r7, _080CE5B8
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080CE572:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080CE578:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _080CE5A4
- movs r1, 0x1
- ldr r2, _080CE5BC
-_080CE590:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE590
-_080CE5A4:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE578
- b _080CE65E
- .align 2, 0
-_080CE5B8: .4byte 0x00007fbb
-_080CE5BC: .4byte gPlttBufferFaded
-_080CE5C0:
- ldr r0, _080CE608
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- movs r2, 0
- ldr r3, _080CE60C
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080CE610
- mov r8, r7
- ldr r6, _080CE614
- movs r5, 0x1
-_080CE5DE:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _080CE5F2
- cmp r0, r6
- bne _080CE5F6
-_080CE5F2:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080CE5F6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080CE5DE
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080CE640
- .align 2, 0
-_080CE608: .4byte gPaletteFade
-_080CE60C: .4byte gSprites
-_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
-_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
-_080CE618:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CE65E
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_8079BFC
- ldr r1, _080CE648
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080CE640:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080CE65E
- .align 2, 0
-_080CE648: .4byte 0x00007fbb
-_080CE64C:
- ldr r0, _080CE66C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- adds r0, r2, 0
- bl move_anim_task_del
-_080CE65E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE66C: .4byte gPaletteFade
- thumb_func_end sub_80CE4D4
-
- thumb_func_start sub_80CE670
-sub_80CE670: @ 80CE670
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CE6F4
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080CE682
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080CE682:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080CE68E
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080CE68E:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080CE6F8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE700
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE6FC
- b _080CE726
- .align 2, 0
-_080CE6F4: .4byte gUnknown_03004B00
-_080CE6F8: .4byte gUnknown_0202F7C9
-_080CE6FC: .4byte 0xffffec00
-_080CE700:
- ldr r0, _080CE740
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CE748
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_080CE726:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE744
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080CE784
- .align 2, 0
-_080CE740: .4byte gUnknown_0202F7C8
-_080CE744: .4byte 0xfffff600
-_080CE748:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE790
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080CE784:
- ldr r0, _080CE794
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE790: .4byte 0xffffec00
-_080CE794: .4byte sub_80CE798
- thumb_func_end sub_80CE670
-
- thumb_func_start sub_80CE798
-sub_80CE798: @ 80CE798
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CE7CE
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080CE7CE:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080CE7DC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CE7DC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE798
-
- thumb_func_start sub_80CE7E0
-sub_80CE7E0: @ 80CE7E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080CE870
- adds r6, r0, r1
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080CE874
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, _080CE878
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, _080CE87C
-_080CE838:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080CE838
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, _080CE878
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080CE8B4
- .align 2, 0
-_080CE870: .4byte gTasks
-_080CE874: .4byte 0x00002771
-_080CE878: .4byte gSprites
-_080CE87C: .4byte gPlttBufferUnfaded
-_080CE880:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, _080CE8E4
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080CE8B4:
- cmp r5, 0x1
- bhi _080CE8C6
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CE880
-_080CE8C6:
- ldr r0, _080CE8E8
- str r0, [r6]
- ldr r0, _080CE8EC
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE8F4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE8F0
- b _080CE8FC
- .align 2, 0
-_080CE8E4: .4byte sub_80CE974
-_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gUnknown_0202F7C8
-_080CE8F0: .4byte 0x0000fdff
-_080CE8F4:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE90C
-_080CE8FC:
- ands r0, r1
- strh r0, [r2]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE90C: .4byte 0x0000fbff
- thumb_func_end sub_80CE7E0
-
- thumb_func_start sub_80CE910
-sub_80CE910: @ 80CE910
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080CE944
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CE968
- ldr r0, _080CE948
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE94C
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080CE956
- .align 2, 0
-_080CE944: .4byte gTasks
-_080CE948: .4byte gUnknown_0202F7C8
-_080CE94C:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080CE956:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080CE970
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
-_080CE968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE970: .4byte 0x00002771
- thumb_func_end sub_80CE910
-
- thumb_func_start sub_80CE974
-sub_80CE974: @ 80CE974
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE990
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080CE990:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080CE9B8
- ldr r2, _080CE9B4
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _080CE9FA
- .align 2, 0
-_080CE9B4: .4byte gTasks
-_080CE9B8:
- ldr r4, _080CEA00
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_080CE9FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA00: .4byte gSineTable
- thumb_func_end sub_80CE974
-
- thumb_func_start sub_80CEA04
-sub_80CEA04: @ 80CEA04
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CEA18
- bl oamt_set_x3A_32
- ldr r0, _080CEA1C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA18: .4byte move_anim_8072740
-_080CEA1C: .4byte sub_8078600
- thumb_func_end sub_80CEA04
-
- thumb_func_start sub_80CEA20
-sub_80CEA20: @ 80CEA20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080CEAD0
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080CEA64
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080CEAD4
-_080CEA4C:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA4C
-_080CEA64:
- movs r4, 0x1
- ldr r0, _080CEAD0
- mov r8, r0
-_080CEA6A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _080CEAB2
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080CEAD4
- ldr r6, _080CEAD0
- adds r4, r5, 0
-_080CEA98:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA98
-_080CEAB2:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEA6A
- mov r0, r9
- bl move_anim_task_del
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEAD0: .4byte gUnknown_083D712C
-_080CEAD4: .4byte gPlttBufferFaded
- thumb_func_end sub_80CEA20
-
- thumb_func_start sub_80CEAD8
-sub_80CEAD8: @ 80CEAD8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080CEB08
-_080CEAE2:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEAE2
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEB08: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEAD8
-
- thumb_func_start sub_80CEB0C
-sub_80CEB0C: @ 80CEB0C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080CEB64
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080CEB68
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEB48
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080CEB48:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CEB6C
- movs r6, 0x30
- movs r3, 0x28
- b _080CEB86
- .align 2, 0
-_080CEB64: .4byte gUnknown_03004B00
-_080CEB68: .4byte gUnknown_083D712C
-_080CEB6C:
- ldr r4, _080CEBBC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
-_080CEB86:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_80CEBC4
- ldr r0, _080CEBC0
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEBBC: .4byte gUnknown_0202F7C9
-_080CEBC0: .4byte sub_80CEC1C
- thumb_func_end sub_80CEB0C
-
- thumb_func_start sub_80CEBC4
-sub_80CEBC4: @ 80CEBC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _080CEBE6
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080CEBE6:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080CEBFA
- movs r4, 0x1
-_080CEBFA:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEBC4
-
- thumb_func_start sub_80CEC1C
-sub_80CEC1C: @ 80CEC1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _080CEC38
- adds r0, 0xFF
-_080CEC38:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _080CEC86
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080CEC86
- cmp r1, 0x80
- ble _080CEC8E
-_080CEC86:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _080CECDE
-_080CEC8E:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080CECDE
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080CECDE
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CECB6
- strh r5, [r4, 0x30]
-_080CECB6:
- ldr r2, _080CECE4
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CECDE
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CECDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CECE4: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEC1C
-
- thumb_func_start sub_80CECE8
-sub_80CECE8: @ 80CECE8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080CED6C
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CED06
- ldr r1, _080CED70
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080CED06:
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CED70
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, _080CED74
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CED6C: .4byte gUnknown_0202F7C8
-_080CED70: .4byte gUnknown_03004B00
-_080CED74: .4byte sub_80CED78
- thumb_func_end sub_80CECE8
-
- thumb_func_start sub_80CED78
-sub_80CED78: @ 80CED78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080CEDD6
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CEDD6
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CEDD6
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080CEDD6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080CEDEA
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CEDEA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CED78
-
- thumb_func_start sub_80CEDF0
-sub_80CEDF0: @ 80CEDF0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CEE10
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080CEE14
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _080CEE16
- .align 2, 0
-_080CEE10: .4byte gUnknown_03004B00
-_080CEE14:
- ldr r6, _080CEE50
-_080CEE16:
- ldr r4, _080CEE54
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080CEE58
- str r0, [r5, 0x1C]
- ldr r1, _080CEE5C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gUnknown_0202F7C8
-_080CEE58: .4byte sub_80782D8
-_080CEE5C: .4byte move_anim_8072740
- thumb_func_end sub_80CEDF0
-
- thumb_func_start sub_80CEE60
-sub_80CEE60: @ 80CEE60
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080CEED8
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080CEEDC
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEEA0
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CEEA0:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080CEEAC
- ldr r2, _080CEEE0
-_080CEEAC:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080CEEE4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEED8: .4byte gUnknown_03004B00
-_080CEEDC: .4byte gUnknown_083D712C
-_080CEEE0: .4byte 0x0000ffe0
-_080CEEE4: .4byte sub_80CEEE8
- thumb_func_end sub_80CEE60
-
- thumb_func_start sub_80CEEE8
-sub_80CEEE8: @ 80CEEE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CEF38
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080CEF14
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080CEF14:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CEF3E
-_080CEF38:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CEF3E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEEE8
-
- thumb_func_start sub_80CEF44
-sub_80CEF44: @ 80CEF44
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CEF64
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
- b _080CEF6E
-_080CEF64:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
-_080CEF6E:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CEF90
- adds r0, 0x3
-_080CEF90:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEF44
-
- thumb_func_start sub_80CEF9C
-sub_80CEF9C: @ 80CEF9C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CEFB0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CEFB8
- ldr r0, _080CEFB4
- b _080CEFBA
- .align 2, 0
-_080CEFB0: .4byte gUnknown_03004B00
-_080CEFB4: .4byte gUnknown_0202F7C8
-_080CEFB8:
- ldr r0, _080CEFF8
-_080CEFBA:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080CEFFC
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080CF000
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF004
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEFF8: .4byte gUnknown_0202F7C9
-_080CEFFC: .4byte gUnknown_03004B00
-_080CF000: .4byte sub_80CF008
-_080CF004: .4byte sub_8078600
- thumb_func_end sub_80CEF9C
-
- thumb_func_start sub_80CF008
-sub_80CF008: @ 80CF008
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CF030
- ldr r1, _080CF038
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080CF03C
- str r0, [r4, 0x1C]
-_080CF030:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF038: .4byte move_anim_8072740
-_080CF03C: .4byte sub_8078600
- thumb_func_end sub_80CF008
-
- thumb_func_start sub_80CF040
-sub_80CF040: @ 80CF040
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF054
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF05C
- ldr r0, _080CF058
- b _080CF05E
- .align 2, 0
-_080CF054: .4byte gUnknown_03004B00
-_080CF058: .4byte gUnknown_0202F7C8
-_080CF05C:
- ldr r0, _080CF07C
-_080CF05E:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080CF080
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF084
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF07C: .4byte gUnknown_0202F7C9
-_080CF080: .4byte sub_80CF088
-_080CF084: .4byte sub_80785E4
- thumb_func_end sub_80CF040
-
- thumb_func_start sub_80CF088
-sub_80CF088: @ 80CF088
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CF0AE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080CF0B4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF0B8
- str r0, [r4, 0x1C]
-_080CF0AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF0B4: .4byte move_anim_8074EE0
-_080CF0B8: .4byte sub_80785E4
- thumb_func_end sub_80CF088
-
- thumb_func_start sub_80CF0BC
-sub_80CF0BC: @ 80CF0BC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080CF0D0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF0D8
- ldr r0, _080CF0D4
- b _080CF0DA
- .align 2, 0
-_080CF0D0: .4byte gUnknown_03004B00
-_080CF0D4: .4byte gUnknown_0202F7C8
-_080CF0D8:
- ldr r0, _080CF12C
-_080CF0DA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080CF102
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080CF102:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, _080CF130
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF134
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF12C: .4byte gUnknown_0202F7C9
-_080CF130: .4byte sub_80CF138
-_080CF134: .4byte sub_80785E4
- thumb_func_end sub_80CF0BC
-
- thumb_func_start sub_80CF138
-sub_80CF138: @ 80CF138
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080CF14E
- ldr r0, _080CF154
- str r0, [r1, 0x1C]
-_080CF14E:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF154: .4byte sub_80CF158
- thumb_func_end sub_80CF138
-
- thumb_func_start sub_80CF158
-sub_80CF158: @ 80CF158
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _080CF18A
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CF184
- strh r0, [r2, 0x24]
- ldr r0, _080CF180
- str r0, [r2, 0x1C]
- b _080CF1C0
- .align 2, 0
-_080CF180: .4byte sub_80CF088
-_080CF184:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080CF18A:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080CF19A
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF19A:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080CF1AA
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF1AA:
- ldr r1, _080CF1C4
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_080CF1C0:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF1C4: .4byte gSineTable
- thumb_func_end sub_80CF158
-
- thumb_func_start sub_80CF1C8
-sub_80CF1C8: @ 80CF1C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CF1DC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF1E4
- ldr r0, _080CF1E0
- b _080CF1E6
- .align 2, 0
-_080CF1DC: .4byte gUnknown_03004B00
-_080CF1E0: .4byte gUnknown_0202F7C8
-_080CF1E4:
- ldr r0, _080CF208
-_080CF1E6:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CF20C
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080CF216
- .align 2, 0
-_080CF208: .4byte gUnknown_0202F7C9
-_080CF20C:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080CF216:
- strh r0, [r5, 0x2E]
- ldr r0, _080CF224
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF224: .4byte sub_80CF228
- thumb_func_end sub_80CF1C8
-
- thumb_func_start sub_80CF228
-sub_80CF228: @ 80CF228
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080CF256
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _080CF25C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF260
- str r0, [r4, 0x1C]
-_080CF256:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF25C: .4byte sub_80CF264
-_080CF260: .4byte sub_8078600
- thumb_func_end sub_80CF228
-
- thumb_func_start sub_80CF264
-sub_80CF264: @ 80CF264
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CF27C
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF27C:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF264
-
- thumb_func_start sub_80CF280
-sub_80CF280: @ 80CF280
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF2C4
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, _080CF2C8
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080CF2CC
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF2C4: .4byte gUnknown_03004B00
-_080CF2C8: .4byte move_anim_8074EE0
-_080CF2CC: .4byte sub_8078278
- thumb_func_end sub_80CF280
-
- thumb_func_start sub_80CF2D0
-sub_80CF2D0: @ 80CF2D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF2E4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF2EC
- ldr r0, _080CF2E8
- b _080CF2EE
- .align 2, 0
-_080CF2E4: .4byte gUnknown_03004B00
-_080CF2E8: .4byte gUnknown_0202F7C8
-_080CF2EC:
- ldr r0, _080CF308
-_080CF2EE:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080CF30C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF308: .4byte gUnknown_0202F7C9
-_080CF30C: .4byte sub_80CF310
- thumb_func_end sub_80CF2D0
-
- thumb_func_start sub_80CF310
-sub_80CF310: @ 80CF310
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080CF342
- cmp r0, 0x1
- bgt _080CF326
- cmp r0, 0
- beq _080CF32C
- b _080CF370
-_080CF326:
- cmp r0, 0x2
- beq _080CF35C
- b _080CF370
-_080CF32C:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CF370
- b _080CF354
-_080CF342:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080CF370
-_080CF354:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080CF370
-_080CF35C:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080CF370
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF370:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF310
-
- thumb_func_start sub_80CF374
-sub_80CF374: @ 80CF374
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080CF3C0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080CF3B2
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CF3B2:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF3C0: .4byte gSprites
- thumb_func_end sub_80CF374
-
- thumb_func_start sub_80CF3C4
-sub_80CF3C4: @ 80CF3C4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CF40C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080CF410
- ldr r0, _080CF414
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF41C
- ldr r0, _080CF418
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080CF426
- .align 2, 0
-_080CF40C: .4byte gUnknown_0202F7C8
-_080CF410: .4byte gUnknown_02024BE0
-_080CF414: .4byte gUnknown_0202F7C9
-_080CF418: .4byte gUnknown_03004B00
-_080CF41C:
- ldr r1, _080CF450
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080CF426:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- strh r6, [r5, 0x32]
- ldr r0, _080CF454
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF450: .4byte gUnknown_03004B00
-_080CF454: .4byte sub_80CF374
- thumb_func_end sub_80CF3C4
-
- thumb_func_start sub_80CF458
-sub_80CF458: @ 80CF458
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080CF484
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, _080CF488
- str r0, [r4, 0x1C]
- ldr r1, _080CF48C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF484: .4byte gUnknown_03004B00
-_080CF488: .4byte sub_80782D8
-_080CF48C: .4byte sub_80CF490
- thumb_func_end sub_80CF458
-
- thumb_func_start sub_80CF490
-sub_80CF490: @ 80CF490
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, _080CF4B0
- str r1, [r0, 0x1C]
- ldr r1, _080CF4B4
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CF4B0: .4byte sub_8078B34
-_080CF4B4: .4byte sub_80CF4B8
- thumb_func_end sub_80CF490
-
- thumb_func_start sub_80CF4B8
-sub_80CF4B8: @ 80CF4B8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CF4CE
- adds r0, r1, 0
- bl move_anim_8072740
- b _080CF4D2
-_080CF4CE:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080CF4D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF4B8
-
- thumb_func_start sub_80CF4D8
-sub_80CF4D8: @ 80CF4D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080CF504
- ldr r0, _080CF508
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080CF50C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CF510
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF504: .4byte gUnknown_02024BE0
-_080CF508: .4byte gUnknown_0202F7C8
-_080CF50C: .4byte gTasks
-_080CF510: .4byte sub_80CF514
- thumb_func_end sub_80CF4D8
-
- thumb_func_start sub_80CF514
-sub_80CF514: @ 80CF514
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CF544
- ldr r0, _080CF548
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CF550
- ldr r1, _080CF54C
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _080CF55E
- .align 2, 0
-_080CF544: .4byte gUnknown_02024BE0
-_080CF548: .4byte gUnknown_0202F7C8
-_080CF54C: .4byte gTasks
-_080CF550:
- ldr r2, _080CF590
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080CF55E:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, _080CF590
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CF598
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF594
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080CF5C2
- .align 2, 0
-_080CF590: .4byte gTasks
-_080CF594: .4byte gSprites
-_080CF598:
- cmp r0, 0x1
- bne _080CF5AE
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080CF608
- movs r0, 0x2
- b _080CF606
-_080CF5AE:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF5FC
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080CF5C2:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_8078F9C
- ldr r0, _080CF600
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _080CF5E2
- cmp r2, 0
- bne _080CF608
-_080CF5E2:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080CF604
- adds r0, r4, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
- b _080CF608
- .align 2, 0
-_080CF5FC: .4byte gSprites
-_080CF600: .4byte gTasks
-_080CF604:
- adds r0, r2, 0x1
-_080CF606:
- strh r0, [r1, 0xA]
-_080CF608:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CF514
-
- thumb_func_start sub_80CF610
-sub_80CF610: @ 80CF610
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF658
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CF65C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF660
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r1, r0
- strb r1, [r2]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _080CF674
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
- b _080CF674
- .align 2, 0
-_080CF658: .4byte gUnknown_03004B00
-_080CF65C: .4byte gUnknown_0202F7C8
-_080CF660:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CF674
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080CF674:
- ldr r0, _080CF688
- str r0, [r4, 0x1C]
- ldr r1, _080CF68C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF688: .4byte sub_8078600
-_080CF68C: .4byte move_anim_8072740
- thumb_func_end sub_80CF610
-
- thumb_func_start sub_80CF690
-sub_80CF690: @ 80CF690
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CF6AC
- str r0, [r4, 0x1C]
- ldr r1, _080CF6B0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6AC: .4byte sub_80785E4
-_080CF6B0: .4byte sub_80CF6B4
- thumb_func_end sub_80CF690
-
- thumb_func_start sub_80CF6B4
-sub_80CF6B4: @ 80CF6B4
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, _080CF6D4
- str r1, [r0, 0x1C]
- ldr r1, _080CF6D8
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6D4: .4byte sub_8078B34
-_080CF6D8: .4byte move_anim_8072740
- thumb_func_end sub_80CF6B4
-
- thumb_func_start sub_80CF6DC
-sub_80CF6DC: @ 80CF6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CF700
- ldr r1, _080CF6FC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080CF722
- .align 2, 0
-_080CF6FC: .4byte gUnknown_03004B00
-_080CF700:
- ldr r0, _080CF7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF722
- ldr r1, _080CF7CC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080CF722:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CF7D0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r6, _080CF7CC
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CF794
- ldr r2, _080CF7D4
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080CF794:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CF7D8
- str r0, [r5, 0x1C]
- ldr r1, _080CF7DC
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF7C8: .4byte gUnknown_0202F7C8
-_080CF7CC: .4byte gUnknown_03004B00
-_080CF7D0: .4byte gUnknown_0202F7C9
-_080CF7D4: .4byte 0xffffa000
-_080CF7D8: .4byte sub_8078B34
-_080CF7DC: .4byte move_anim_8072740
- thumb_func_end sub_80CF6DC
-
- thumb_func_start sub_80CF7E0
-sub_80CF7E0: @ 80CF7E0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF80A
- ldr r2, _080CF810
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_080CF80A:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF810: .4byte gTasks
- thumb_func_end sub_80CF7E0
-
- thumb_func_start sub_80CF814
-sub_80CF814: @ 80CF814
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF844
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080CF848
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _080CF856
- .align 2, 0
-_080CF844: .4byte gTasks
-_080CF848:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_080CF856:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF87A
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF87E
-_080CF87A:
- lsls r0, r3, 16
- lsrs r0, 24
-_080CF87E:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF892
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF896
-_080CF892:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080CF896:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF8AC
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080CF8B4
- str r0, [r2, 0x1C]
-_080CF8AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF8B4: .4byte sub_80CF7E0
- thumb_func_end sub_80CF814
-
- thumb_func_start sub_80CF8B8
-sub_80CF8B8: @ 80CF8B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF8FC
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF900
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF904
- .align 2, 0
-_080CF8FC: .4byte gTasks
-_080CF900:
- lsls r0, r2, 16
- lsrs r0, 24
-_080CF904:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF918
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF91C
-_080CF918:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080CF91C:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF9E8
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_81174E0
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _080CF966
- subs r0, r3, r2
- b _080CF968
-_080CF966:
- subs r0, r2, r3
-_080CF968:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080CF980
- subs r0, r3, r2
- b _080CF982
-_080CF980:
- subs r0, r2, r3
-_080CF982:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x36]
- ldr r0, _080CF9F4
- str r0, [r7, 0x1C]
-_080CF9E8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF9F4: .4byte sub_80CF814
- thumb_func_end sub_80CF8B8
-
- thumb_func_start sub_80CF9F8
-sub_80CF9F8: @ 80CF9F8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CFA1C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CFA16
- adds r0, r2, 0
- bl move_anim_task_del
-_080CFA16:
- pop {r0}
- bx r0
- .align 2, 0
-_080CFA1C: .4byte gTasks
- thumb_func_end sub_80CF9F8
-
- thumb_func_start sub_80CFA20
-sub_80CFA20: @ 80CFA20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080CFA74
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _080CFAF4
- ldr r0, _080CFA78
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, _080CFA7C
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CFA80
- cmp r0, 0x2
- beq _080CFA96
- b _080CFAA4
- .align 2, 0
-_080CFA74: .4byte gTasks
-_080CFA78: .4byte gSpriteTemplate_83D74BC
-_080CFA7C: .4byte gSprites
-_080CFA80:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _080CFAA4
-_080CFA96:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080CFAA4:
- ldr r3, _080CFAFC
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9A
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080CFAF4
- ldr r0, _080CFB00
- str r0, [r4]
-_080CFAF4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFAFC: .4byte gTasks
-_080CFB00: .4byte sub_80CF9F8
- thumb_func_end sub_80CFA20
-
- thumb_func_start sub_80CFB04
-sub_80CFB04: @ 80CFB04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl sub_8076BE0
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080CFB70
- ldr r1, _080CFB60
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080CFB64
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080CFB68
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
- .align 2, 0
-_080CFB60: .4byte gTasks
-_080CFB64: .4byte gUnknown_03004B00
-_080CFB68:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
-_080CFB70:
- ldr r1, _080CFBB4
- ldr r0, _080CFBB8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _080CFBCA
- ldr r1, _080CFBBC
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080CFBC0
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080CFBC4
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080CFBC8
- .align 2, 0
-_080CFBB4: .4byte gUnknown_02024A72
-_080CFBB8: .4byte gUnknown_0202F7C9
-_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gUnknown_03004B00
-_080CFBC4:
- movs r0, 0x1
- orrs r0, r1
-_080CFBC8:
- strh r0, [r2, 0x4]
-_080CFBCA:
- ldr r5, _080CFC24
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080CFC28
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080CFC2C
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CFC34
- ldr r4, _080CFC30
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CFC34
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl sub_807A3FC
- b _080CFC56
- .align 2, 0
-_080CFC24: .4byte gUnknown_0202F7C8
-_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gUnknown_020239F8
-_080CFC30: .4byte gUnknown_0202F7C9
-_080CFC34:
- mov r5, sp
- ldr r4, _080CFC90
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080CFC56:
- mov r4, sp
- ldr r0, _080CFC94
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080CFC98
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _080CFC9C
- subs r0, r2, r1
- b _080CFC9E
- .align 2, 0
-_080CFC90: .4byte gUnknown_0202F7C9
-_080CFC94: .4byte gTasks
-_080CFC98: .4byte gUnknown_03004B00
-_080CFC9C:
- subs r0, r1, r2
-_080CFC9E:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080CFD14
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- ldr r2, _080CFD18
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_81174C4
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _080CFD1C
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080CFD3C
- .align 2, 0
-_080CFD14: .4byte gUnknown_03004B00
-_080CFD18: .4byte gTasks
-_080CFD1C:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080CFD3C:
- ldr r1, _080CFD7C
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080CFD80
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080CFD8C
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFD84
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CFD88
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gUnknown_03004B00
-_080CFD84: .4byte gUnknown_0202F7C9
-_080CFD88: .4byte 0x0000ffc0
-_080CFD8C:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFDAC
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080CFDB0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFDAC: .4byte gUnknown_0202F7C9
-_080CFDB0: .4byte 0x0000ffc0
-_080CFDB4:
- ldr r0, _080CFDF0
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080CFDC4:
- strh r0, [r5, 0xC]
- ldr r0, _080CFDF4
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _080CFDDC
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080CFDDC:
- ldr r0, _080CFDF8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFDF0: .4byte gUnknown_0202F7C9
-_080CFDF4: .4byte gTasks
-_080CFDF8: .4byte sub_80CFA20
- thumb_func_end sub_80CFB04
-
- thumb_func_start sub_80CFDFC
-sub_80CFDFC: @ 80CFDFC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CFE24
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, _080CFE28
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE24: .4byte gSpriteTemplate_83D75AC
-_080CFE28: .4byte sub_80CFE2C
- thumb_func_end sub_80CFDFC
-
- thumb_func_start sub_80CFE2C
-sub_80CFE2C: @ 80CFE2C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFE90
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080CFE98
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_080CFE64:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080CFE64
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080CFE90
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFE90:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE98: .4byte gPlttBufferFaded
- thumb_func_end sub_80CFE2C
-
- thumb_func_start sub_80CFE9C
-sub_80CFE9C: @ 80CFE9C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CFF3C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CFF40
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080CFF44
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CFEE0
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080CFEE0:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CFF48
- str r0, [r5, 0x1C]
- ldr r1, _080CFF4C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFF3C: .4byte gUnknown_0202F7C9
-_080CFF40: .4byte gUnknown_03004B00
-_080CFF44: .4byte gUnknown_0202F7C8
-_080CFF48: .4byte sub_8078C00
-_080CFF4C: .4byte move_anim_8072740
- thumb_func_end sub_80CFE9C
-
- thumb_func_start sub_80CFF50
-sub_80CFF50: @ 80CFF50
- ldr r1, _080CFF60
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080CFF64
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CFF60: .4byte 0x0000fff0
-_080CFF64: .4byte sub_80CFF68
- thumb_func_end sub_80CFF50
-
- thumb_func_start sub_80CFF68
-sub_80CFF68: @ 80CFF68
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, _080CFFD4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CFF8C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080CFF8C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080CFFCC
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFFCC
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFFCC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFFD4: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80CFF68
-
- thumb_func_start sub_80CFFD8
-sub_80CFFD8: @ 80CFFD8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080D0024
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080D0028
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D002C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0024: .4byte gUnknown_0202F7C9
-_080D0028: .4byte sub_8078B34
-_080D002C: .4byte sub_80D0030
- thumb_func_end sub_80CFFD8
-
- thumb_func_start sub_80D0030
-sub_80D0030: @ 80D0030
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA6
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_080D0064:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D0064
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080D00AC
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080D00B0
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D00AC: .4byte 0x0000fff4
-_080D00B0: .4byte sub_80D00B4
- thumb_func_end sub_80D0030
-
- thumb_func_start sub_80D00B4
-sub_80D00B4: @ 80D00B4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D00D2
- negs r0, r2
- strh r0, [r4, 0x24]
-_080D00D2:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080D0112
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D0112
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0112:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D00B4
-
- thumb_func_start sub_80D0118
-sub_80D0118: @ 80D0118
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D0168
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D0136
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080D0136:
- ldr r1, _080D016C
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D0170
- str r0, [r4, 0x1C]
- ldr r1, _080D0174
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0168: .4byte gUnknown_0202F7C8
-_080D016C: .4byte gUnknown_03004B00
-_080D0170: .4byte sub_8078114
-_080D0174: .4byte move_anim_8072740
- thumb_func_end sub_80D0118
-
- thumb_func_start sub_80D0178
-sub_80D0178: @ 80D0178
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080D01F4
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080D01F8
- ldr r0, _080D01FC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D01A4
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D01A4:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D0200
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080D0204
- str r0, [r5, 0x1C]
- ldr r1, _080D0208
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D01F4: .4byte 0x0000ffe0
-_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gUnknown_03004B00
-_080D0200: .4byte gUnknown_0202F7C9
-_080D0204: .4byte sub_8078B34
-_080D0208: .4byte sub_80D020C
- thumb_func_end sub_80D0178
-
- thumb_func_start sub_80D020C
-sub_80D020C: @ 80D020C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0222
- adds r0, r2, 0
- bl move_anim_8072740
-_080D0222:
- pop {r0}
- bx r0
- thumb_func_end sub_80D020C
-
- thumb_func_start sub_80D0228
-sub_80D0228: @ 80D0228
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, _080D02BC
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080D02C0
- ldr r7, _080D02C4
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080D025C
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080D025C:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D02C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080D02CC
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D02BC: .4byte 0x0000ffe0
-_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gUnknown_03004B00
-_080D02C8: .4byte gUnknown_0202F7C9
-_080D02CC: .4byte sub_80D02D0
- thumb_func_end sub_80D0228
-
- thumb_func_start sub_80D02D0
-sub_80D02D0: @ 80D02D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, _080D033C
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, _080D0340
- str r0, [r4, 0x1C]
-_080D0334:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D033C: .4byte 0x0000fffe
-_080D0340: .4byte sub_80D0344
- thumb_func_end sub_80D02D0
-
- thumb_func_start sub_80D0344
-sub_80D0344: @ 80D0344
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D035C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080D035C:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D039E
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080D03A4
- str r0, [r4, 0x1C]
-_080D039E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D03A4: .4byte sub_80D03A8
- thumb_func_end sub_80D0344
-
- thumb_func_start sub_80D03A8
-sub_80D03A8: @ 80D03A8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D03BC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D03BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D03A8
-
- thumb_func_start sub_80D03C4
-sub_80D03C4: @ 80D03C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080D041C
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
- ldr r1, _080D0420
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080D0424
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D041C: .4byte gSprites
-_080D0420: .4byte gTasks
-_080D0424: .4byte sub_80D0428
- thumb_func_end sub_80D03C4
-
- thumb_func_start sub_80D0428
-sub_80D0428: @ 80D0428
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D0480
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D0478
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080D0484
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl sub_8079108
- adds r0, r5, 0
- bl move_anim_task_del
-_080D0478:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0480: .4byte gTasks
-_080D0484: .4byte gSprites
- thumb_func_end sub_80D0428
-
- thumb_func_start sub_80D0488
-sub_80D0488: @ 80D0488
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D04D4
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, _080D04D8
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080D04DC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D04D4: .4byte gTasks
-_080D04D8: .4byte gUnknown_0202F7C8
-_080D04DC: .4byte sub_80D04E0
- thumb_func_end sub_80D0488
-
- thumb_func_start sub_80D04E0
-sub_80D04E0: @ 80D04E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D0504
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080D04FA
- b _080D060A
-_080D04FA:
- lsls r0, 2
- ldr r1, _080D0508
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D0504: .4byte gTasks
-_080D0508: .4byte _080D050C
- .align 2, 0
-_080D050C:
- .4byte _080D0524
- .4byte _080D056C
- .4byte _080D05A2
- .4byte _080D05A8
- .4byte _080D05B8
- .4byte _080D05EC
-_080D0524:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080D0534
- cmp r0, 0x3
- beq _080D0534
- cmp r0, 0x6
- bne _080D053C
-_080D0534:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80D0614
-_080D053C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080D05E4
-_080D056C:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D060A
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080D0582
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080D060A
-_080D0582:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A2:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080D060A
- b _080D05E0
-_080D05B8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
-_080D05E0:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080D05E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05EC:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- ldr r2, _080D0610
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D060A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0610: .4byte gSprites
- thumb_func_end sub_80D04E0
-
- thumb_func_start sub_80D0614
-sub_80D0614: @ 80D0614
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080D06EE
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080D0658
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080D0654
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080D06EE
- .align 2, 0
-_080D0654: .4byte gSprites
-_080D0658:
- ldr r5, _080D06FC
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, _080D0700
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_080D06EE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D06FC: .4byte gSprites
-_080D0700: .4byte sub_80D0704
- thumb_func_end sub_80D0614
-
- thumb_func_start sub_80D0704
-sub_80D0704: @ 80D0704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D0742
- ldr r3, _080D0748
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080D0742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0748: .4byte gTasks
- thumb_func_end sub_80D0704
-
- thumb_func_start sub_80D074C
-sub_80D074C: @ 80D074C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D0770
- adds r4, r0, r1
- ldr r5, _080D0774
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D0778
- adds r0, r2, 0
- bl move_anim_task_del
- b _080D079E
- .align 2, 0
-_080D0770: .4byte gTasks
-_080D0774: .4byte gUnknown_03004B00
-_080D0778:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, _080D07A4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D07A8
- str r0, [r4]
-_080D079E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D07A4: .4byte gUnknown_083D76F4
-_080D07A8: .4byte sub_80D07AC
- thumb_func_end sub_80D074C
-
- thumb_func_start sub_80D07AC
-sub_80D07AC: @ 80D07AC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D07D0
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D0814
- cmp r5, 0x1
- bgt _080D07D4
- cmp r5, 0
- beq _080D07DE
- b _080D08BC
- .align 2, 0
-_080D07D0: .4byte gTasks
-_080D07D4:
- cmp r5, 0x2
- beq _080D0848
- cmp r5, 0x3
- beq _080D0878
- b _080D08BC
-_080D07DE:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080D0810
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- strh r5, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0810: .4byte gSprites
-_080D0814:
- adds r0, r4, 0
- bl sub_807992C
- ldr r2, _080D0844
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0844: .4byte gSprites
-_080D0848:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D0870
- ldr r2, _080D086C
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _080D08BC
- .align 2, 0
-_080D086C: .4byte gSprites
-_080D0870:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D08BC
-_080D0878:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D08BC
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080D08B0
- ldr r2, _080D08AC
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
- b _080D08BC
- .align 2, 0
-_080D08AC: .4byte gSprites
-_080D08B0:
- ldrb r1, [r4, 0x8]
- ldr r2, _080D08C4
- adds r0, r4, 0
- bl sub_80798F4
- strh r5, [r4, 0xA]
-_080D08BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08C4: .4byte gUnknown_083D76F4
- thumb_func_end sub_80D07AC
-
- thumb_func_start sub_80D08C8
-sub_80D08C8: @ 80D08C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D08F8
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D08FC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0900
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08F8: .4byte gTasks
-_080D08FC: .4byte gUnknown_083D7714
-_080D0900: .4byte sub_80D0904
- thumb_func_end sub_80D08C8
-
- thumb_func_start sub_80D0904
-sub_80D0904: @ 80D0904
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D092C
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0924
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0924:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D092C: .4byte gTasks
- thumb_func_end sub_80D0904
-
- thumb_func_start sub_80D0930
-sub_80D0930: @ 80D0930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D0960
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D0964
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080D097E
- .align 2, 0
-_080D0960: .4byte gUnknown_0202F7C8
-_080D0964:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080D09B0
-_080D097E:
- strh r0, [r4, 0x30]
- ldr r0, _080D09B4
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, _080D09B8
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D09BC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gUnknown_0202F7C8
-_080D09B8: .4byte move_anim_8072740
-_080D09BC: .4byte sub_8078394
- thumb_func_end sub_80D0930
-
- thumb_func_start sub_80D09C0
-sub_80D09C0: @ 80D09C0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D09D4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D09DC
- ldr r0, _080D09D8
- b _080D09DE
- .align 2, 0
-_080D09D4: .4byte gUnknown_03004B00
-_080D09D8: .4byte gUnknown_0202F7C8
-_080D09DC:
- ldr r0, _080D0A3C
-_080D09DE:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D09F8
- ldr r1, _080D0A40
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D09F8:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D0A40
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080D0A2A
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080D0A2A:
- ldr r1, _080D0A44
- adds r0, r6, 0
- bl oamt_set_x3A_32
- ldr r0, _080D0A48
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A3C: .4byte gUnknown_0202F7C9
-_080D0A40: .4byte gUnknown_03004B00
-_080D0A44: .4byte move_anim_8074EE0
-_080D0A48: .4byte sub_80785E4
- thumb_func_end sub_80D09C0
-
- thumb_func_start sub_80D0A4C
-sub_80D0A4C: @ 80D0A4C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D0A80
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080D0A84
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0A88
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A80: .4byte gTasks
-_080D0A84: .4byte gUnknown_083D77B0
-_080D0A88: .4byte sub_80D0A8C
- thumb_func_end sub_80D0A4C
-
- thumb_func_start sub_80D0A8C
-sub_80D0A8C: @ 80D0A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0AB4
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0AAC
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0AB4: .4byte gTasks
- thumb_func_end sub_80D0A8C
-
- thumb_func_start sub_80D0AB8
-sub_80D0AB8: @ 80D0AB8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D0B2C
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, _080D0B30
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, _080D0B34
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0B22
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080D0B22:
- ldr r0, _080D0B38
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0B2C: .4byte gTasks
-_080D0B30: .4byte gSprites
-_080D0B34: .4byte gUnknown_0202F7C8
-_080D0B38: .4byte sub_80D0B3C
- thumb_func_end sub_80D0AB8
-
- thumb_func_start sub_80D0B3C
-sub_80D0B3C: @ 80D0B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0B84
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D0BA2
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0B8C
- ldr r2, _080D0B88
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _080D0BA0
- .align 2, 0
-_080D0B84: .4byte gTasks
-_080D0B88: .4byte gSprites
-_080D0B8C:
- ldr r2, _080D0BB4
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_080D0BA0:
- strh r1, [r0, 0x22]
-_080D0BA2:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080D0BF0
- cmp r0, 0x1
- bgt _080D0BB8
- cmp r0, 0
- beq _080D0BBE
- b _080D0C80
- .align 2, 0
-_080D0BB4: .4byte gSprites
-_080D0BB8:
- cmp r0, 0x2
- beq _080D0C20
- b _080D0C80
-_080D0BBE:
- ldr r2, _080D0BEC
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0BEC: .4byte gSprites
-_080D0BF0:
- ldr r2, _080D0C1C
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C1C: .4byte gSprites
-_080D0C20:
- ldr r2, _080D0C58
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080D0C80
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080D0C5C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C58: .4byte gSprites
-_080D0C5C:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0C7A
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_080D0C7A:
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0C80:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0B3C
-
- thumb_func_start sub_80D0C88
-sub_80D0C88: @ 80D0C88
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D0CD8
- adds r5, r1, r0
- ldr r4, _080D0CDC
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl sub_807A100
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0CE8
- ldr r0, _080D0CE0
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0CE4
- b _080D0CF0
- .align 2, 0
-_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gUnknown_0202F7C9
-_080D0CE0: .4byte gUnknown_030042C0
-_080D0CE4: .4byte REG_BG1HOFS
-_080D0CE8:
- ldr r0, _080D0D54
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0D58
-_080D0CF0:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _080D0D2E
- ldr r4, _080D0D5C
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080D0D08:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080D0D20
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_080D0D20:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080D0D08
-_080D0D2E:
- ldr r0, _080D0D60
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080D0D64
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0D54: .4byte gUnknown_03004288
-_080D0D58: .4byte REG_BG2HOFS
-_080D0D5C: .4byte gUnknown_03004DE0
-_080D0D60: .4byte 0xa2600001
-_080D0D64: .4byte sub_80D0D68
- thumb_func_end sub_80D0C88
-
- thumb_func_start sub_80D0D68
-sub_80D0D68: @ 80D0D68
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0D88
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080D0D8C
- cmp r0, 0x1
- beq _080D0DA2
- b _080D0E22
- .align 2, 0
-_080D0D88: .4byte gTasks
-_080D0D8C:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D0E22
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080D0E22
-_080D0DA2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0E22
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _080D0DD8
- cmp r1, 0x1
- ble _080D0DE0
- cmp r1, 0x2
- beq _080D0DDC
- cmp r1, 0x3
- beq _080D0DDC
- b _080D0DE0
-_080D0DD8:
- subs r0, 0x2
- b _080D0DDE
-_080D0DDC:
- adds r0, 0x1
-_080D0DDE:
- strh r0, [r3, 0x12]
-_080D0DE0:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080D0E04
- ldr r2, _080D0E28
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_080D0E04:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _080D0E22
- ldr r1, _080D0E2C
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0E22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E28: .4byte gUnknown_03004DE0
-_080D0E2C: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D0D68
-
- thumb_func_start sub_80D0E30
-sub_80D0E30: @ 80D0E30
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080D0E84
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080D0E88
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E84: .4byte gUnknown_0202F7C9
-_080D0E88: .4byte sub_80D0E8C
- thumb_func_end sub_80D0E30
-
- thumb_func_start sub_80D0E8C
-sub_80D0E8C: @ 80D0E8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080D0EF0
- cmp r1, 0x1
- bgt _080D0EA2
- cmp r1, 0
- beq _080D0EA8
- b _080D0FD0
-_080D0EA2:
- cmp r1, 0x2
- beq _080D0F82
- b _080D0FD0
-_080D0EA8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0ED2
- strh r1, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0ED2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080D0F7A
-_080D0EF0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0F36
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D0F36
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D0F36
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
-_080D0F36:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _080D0F4A
- movs r0, 0x40
- b _080D0F58
-_080D0F4A:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080D0F64
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080D0F58:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080D0F64:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080D0FD0
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080D0F7A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D0FD0
-_080D0F82:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0FAE
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0FAE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0FD0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0E8C
-
- thumb_func_start sub_80D0FD8
-sub_80D0FD8: @ 80D0FD8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, _080D0FFC
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080D1004
- ldr r0, _080D1000
- b _080D1006
- .align 2, 0
-_080D0FFC: .4byte gUnknown_03004B00
-_080D1000: .4byte gUnknown_0202F7C8
-_080D1004:
- ldr r0, _080D1040
-_080D1006:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_807A3FC
- cmp r4, 0
- bne _080D1044
- adds r0, r5, 0
- movs r1, 0
- b _080D1048
- .align 2, 0
-_080D1040: .4byte gUnknown_0202F7C9
-_080D1044:
- adds r0, r5, 0
- movs r1, 0x2
-_080D1048:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1074
- ldr r2, _080D1070
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080D107E
- .align 2, 0
-_080D1070: .4byte gUnknown_03004B00
-_080D1074:
- ldr r1, _080D1090
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080D107E:
- ldr r1, _080D1094
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1090: .4byte gUnknown_03004B00
-_080D1094: .4byte sub_80793C4
- thumb_func_end sub_80D0FD8
-
- thumb_func_start sub_80D1098
-sub_80D1098: @ 80D1098
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D10B2
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl move_anim_8072740
-_080D10B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1098
-
- thumb_func_start sub_80D10B8
-sub_80D10B8: @ 80D10B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, _080D10E4
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D10F0
- ldr r0, _080D10E8
- ldrb r7, [r0]
- ldr r0, _080D10EC
- b _080D10F6
- .align 2, 0
-_080D10E4: .4byte gUnknown_03004B00
-_080D10E8: .4byte gUnknown_0202F7C8
-_080D10EC: .4byte gUnknown_0202F7C9
-_080D10F0:
- ldr r0, _080D1110
- ldrb r7, [r0]
- ldr r0, _080D1114
-_080D10F6:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080D1118
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080D111C
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080D1124
- .align 2, 0
-_080D1110: .4byte gUnknown_0202F7C9
-_080D1114: .4byte gUnknown_0202F7C8
-_080D1118: .4byte gUnknown_03004B00
-_080D111C:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080D1124:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1180
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D1164
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D1170
- ldr r2, _080D1168
- ldr r0, _080D116C
- adds r0, r4, r0
- b _080D120A
- .align 2, 0
-_080D1164: .4byte gUnknown_03004B00
-_080D1168: .4byte gSprites
-_080D116C: .4byte gUnknown_02024BE0
-_080D1170:
- ldr r2, _080D1178
- ldr r0, _080D117C
- add r0, r8
- b _080D120A
- .align 2, 0
-_080D1178: .4byte gSprites
-_080D117C: .4byte gUnknown_02024BE0
-_080D1180:
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D11EC
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _080D11F0
- ldr r1, _080D11F4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D1204
- adds r4, r7, 0
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D1204
- ldr r3, _080D11F8
- ldr r2, _080D11FC
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r3, 0x20
- ldrsh r1, [r6, r3]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D1200
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080D121A
- .align 2, 0
-_080D11EC: .4byte gUnknown_03004B00
-_080D11F0: .4byte gMain
-_080D11F4: .4byte 0x0000043d
-_080D11F8: .4byte gSprites
-_080D11FC: .4byte gUnknown_02024BE0
-_080D1200:
- adds r0, r6, 0
- b _080D1214
-_080D1204:
- ldr r2, _080D1268
- ldr r0, _080D126C
- adds r0, r7, r0
-_080D120A:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080D1214:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080D121A:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D1270
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080D1274
- ldr r2, _080D1278
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D127C
- mov r0, r8
- movs r1, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D127C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl sub_807A3FC
- b _080D129C
- .align 2, 0
-_080D1268: .4byte gSprites
-_080D126C: .4byte gUnknown_02024BE0
-_080D1270: .4byte gUnknown_03004B00
-_080D1274: .4byte gMain
-_080D1278: .4byte 0x0000043d
-_080D127C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r3, sp
- strh r0, [r3, 0x2]
-_080D129C:
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D12C0
- mov r3, sp
- mov r2, sp
- ldr r1, _080D12BC
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080D12CE
- .align 2, 0
-_080D12BC: .4byte gUnknown_03004B00
-_080D12C0:
- mov r3, sp
- mov r0, sp
- ldr r2, _080D1310
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080D12CE:
- ldrh r1, [r2, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- adds r1, r0
- mov r3, sp
- strh r1, [r3, 0x2]
- mov r0, r9
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D1314
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1310: .4byte gUnknown_03004B00
-_080D1314: .4byte sub_80D1098
- thumb_func_end sub_80D10B8
-
- thumb_func_start sub_80D1318
-sub_80D1318: @ 80D1318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D1358
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080D133E
- lsls r0, 20
- ldr r1, _080D135C
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080D1360
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080D133E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080D1364
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1358: .4byte 0x000027db
-_080D135C: .4byte 0x01010000
-_080D1360: .4byte gUnknown_03004B00
-_080D1364: .4byte sub_80793C4
- thumb_func_end sub_80D1318
-
- thumb_func_start sub_80D1368
-sub_80D1368: @ 80D1368
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D139C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D1384
- ldr r1, _080D13A0
-_080D1384:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080D13A4
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D13A8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D139C: .4byte gUnknown_0202F7C8
-_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gUnknown_03004B00
-_080D13A8: .4byte sub_80D13AC
- thumb_func_end sub_80D1368
-
- thumb_func_start sub_80D13AC
-sub_80D13AC: @ 80D13AC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, _080D1418
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D13DC
- ldr r1, _080D141C
-_080D13DC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D1410
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080D1420
- str r0, [r4, 0x1C]
-_080D1410:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1418: .4byte gUnknown_0202F7C8
-_080D141C: .4byte 0x0000ff60
-_080D1420: .4byte sub_80D1424
- thumb_func_end sub_80D13AC
-
- thumb_func_start sub_80D1424
-sub_80D1424: @ 80D1424
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080D1442
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080D1448
- str r0, [r4, 0x1C]
-_080D1442:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1448: .4byte sub_80D144C
- thumb_func_end sub_80D1424
-
- thumb_func_start sub_80D144C
-sub_80D144C: @ 80D144C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D14B2
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1498
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080D148C
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D1490
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D1494
- b _080D14B0
- .align 2, 0
-_080D148C: .4byte 0x000003ff
-_080D1490: .4byte 0xfffffc00
-_080D1494: .4byte sub_80D14C4
-_080D1498:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080D14B8
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D14BC
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D14C0
-_080D14B0:
- str r0, [r4, 0x1C]
-_080D14B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D14B8: .4byte 0x000003ff
-_080D14BC: .4byte 0xfffffc00
-_080D14C0: .4byte sub_80D154C
- thumb_func_end sub_80D144C
-
- thumb_func_start sub_80D14C4
-sub_80D14C4: @ 80D14C4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x26]
- subs r0, 0x2
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _080D14F8
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r1, _080D14FC
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x2E]
- strh r0, [r1]
- ldr r0, _080D1500
- str r0, [r2, 0x1C]
-_080D14F8:
- pop {r0}
- bx r0
- .align 2, 0
-_080D14FC: .4byte REG_BLDCNT
-_080D1500: .4byte sub_80D1504
- thumb_func_end sub_80D14C4
-
- thumb_func_start sub_80D1504
-sub_80D1504: @ 80D1504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D153C
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- ldr r2, _080D1544
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D153C
- ldr r0, _080D1548
- str r0, [r4, 0x1C]
-_080D153C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1544: .4byte REG_BLDALPHA
-_080D1548: .4byte sub_80D154C
- thumb_func_end sub_80D1504
-
- thumb_func_start sub_80D154C
-sub_80D154C: @ 80D154C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080D1574
- ldrh r1, [r0, 0xE]
- ldr r0, _080D1578
- cmp r1, r0
- bne _080D1584
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D1580
- ldr r0, _080D157C
- b _080D1582
- .align 2, 0
-_080D1574: .4byte gUnknown_03004B00
-_080D1578: .4byte 0x0000ffff
-_080D157C: .4byte sub_80D158C
-_080D1580:
- ldr r0, _080D1588
-_080D1582:
- str r0, [r3, 0x1C]
-_080D1584:
- pop {r0}
- bx r0
- .align 2, 0
-_080D1588: .4byte move_anim_8072740
- thumb_func_end sub_80D154C
-
- thumb_func_start sub_80D158C
-sub_80D158C: @ 80D158C
- push {lr}
- ldr r1, _080D15A0
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080D15A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D158C
-
- thumb_func_start sub_80D15A4
-sub_80D15A4: @ 80D15A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D15D4
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080D15D8
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D15DC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D15D4: .4byte gTasks
-_080D15D8: .4byte gUnknown_083D79BC
-_080D15DC: .4byte sub_80D15E0
- thumb_func_end sub_80D15A4
-
- thumb_func_start sub_80D15E0
-sub_80D15E0: @ 80D15E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D1630
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080D162A
- ldr r2, _080D1634
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D162A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1630: .4byte gTasks
-_080D1634: .4byte gSprites
- thumb_func_end sub_80D15E0
-
- thumb_func_start sub_80D1638
-sub_80D1638: @ 80D1638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D166C
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, _080D1670
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D1678
- ldr r0, _080D1674
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080D167E
- .align 2, 0
-_080D166C: .4byte gTasks
-_080D1670: .4byte gUnknown_0202F7C9
-_080D1674: .4byte 0x0000ffff
-_080D1678:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080D1698
-_080D167E:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D169C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1698: .4byte 0x0000fff8
-_080D169C: .4byte sub_80D16A0
- thumb_func_end sub_80D1638
-
- thumb_func_start sub_80D16A0
-sub_80D16A0: @ 80D16A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D16C4
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080D16F4
- cmp r4, 0x1
- bgt _080D16C8
- cmp r4, 0
- beq _080D16D2
- b _080D17BA
- .align 2, 0
-_080D16C4: .4byte gTasks
-_080D16C8:
- cmp r4, 0x2
- beq _080D1770
- cmp r4, 0x3
- beq _080D178A
- b _080D17BA
-_080D16D2:
- ldr r2, _080D16F0
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _080D1782
- .align 2, 0
-_080D16F0: .4byte gSprites
-_080D16F4:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D17BA
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _080D172C
- ldr r2, _080D1728
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _080D173E
- .align 2, 0
-_080D1728: .4byte gSprites
-_080D172C:
- ldr r2, _080D176C
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_080D173E:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D17BA
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1782
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _080D1782
- .align 2, 0
-_080D176C: .4byte gSprites
-_080D1770:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080D1782
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D1782:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D178A:
- ldr r2, _080D17C0
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D17BA
- adds r0, r5, 0
- bl move_anim_task_del
-_080D17BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D17C0: .4byte gSprites
- thumb_func_end sub_80D16A0
-
- thumb_func_start sub_80D17C4
-sub_80D17C4: @ 80D17C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1800
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D1804
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1800: .4byte gTasks
-_080D1804: .4byte sub_80D1808
- thumb_func_end sub_80D17C4
-
- thumb_func_start sub_80D1808
-sub_80D1808: @ 80D1808
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D185C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080D18CE
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _080D18CE
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1864
- ldr r3, _080D1860
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _080D187A
- .align 2, 0
-_080D185C: .4byte gTasks
-_080D1860: .4byte gSprites
-_080D1864:
- ldr r3, _080D18AC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_080D187A:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D18CE
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _080D18B0
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080D18CE
- .align 2, 0
-_080D18AC: .4byte gSprites
-_080D18B0:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D18CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1808
-
- thumb_func_start sub_80D18D4
-sub_80D18D4: @ 80D18D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1924
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, _080D1928
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D192C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1924: .4byte gTasks
-_080D1928: .4byte gUnknown_0202F7C8
-_080D192C: .4byte sub_80D1930
- thumb_func_end sub_80D18D4
-
- thumb_func_start sub_80D1930
-sub_80D1930: @ 80D1930
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D1954
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080D199C
- cmp r2, 0x1
- bgt _080D1958
- cmp r2, 0
- beq _080D195E
- b _080D19B8
- .align 2, 0
-_080D1954: .4byte gTasks
-_080D1958:
- cmp r2, 0x2
- beq _080D19B4
- b _080D19B8
-_080D195E:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D19B8
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1996
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D1996:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D199C:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080D19B8
-_080D19B4:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080D19B8:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080D19C6
- cmp r5, 0x1
- beq _080D1A5C
- b _080D1A6A
-_080D19C6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D1A6A
- strh r5, [r4, 0xA]
- ldr r0, _080D1A50
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D1A6A
- ldr r0, _080D1A54
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, _080D1A58
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D1A6A
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080D1A6A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D1A6A
- .align 2, 0
-_080D1A50: .4byte gSpriteTemplate_83D79E8
-_080D1A54: .4byte gSprites
-_080D1A58: .4byte gUnknown_083D7A00
-_080D1A5C:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1A6A
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1A6A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1930
-
- thumb_func_start sub_80D1A70
-sub_80D1A70: @ 80D1A70
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080D1AD8
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D1AD2
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080D1AD2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1AD8: .4byte gTasks
- thumb_func_end sub_80D1A70
-
- thumb_func_start sub_80D1ADC
-sub_80D1ADC: @ 80D1ADC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080D1B34
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r5, 0x1
- ldr r0, _080D1B38
- adds r4, r0, 0
-_080D1AF4:
- subs r0, r4, r5
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1AF4
- ldr r4, _080D1B3C
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _080D1B40
- cmp r0, 0
- beq _080D1B1C
- ldr r0, _080D1B44
- adds r1, r0
-_080D1B1C:
- adds r0, r4, 0
- bl sub_800D238
- movs r5, 0
-_080D1B24:
- lsls r4, r5, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D1B4C
- ldr r0, _080D1B48
- b _080D1B4E
- .align 2, 0
-_080D1B34: .4byte 0x000027de
-_080D1B38: .4byte 0x00002710
-_080D1B3C: .4byte gBattleAnimSpritePalette_206
-_080D1B40: .4byte 0x02018000
-_080D1B44: .4byte 0xffffc800
-_080D1B48: .4byte 0x02014800
-_080D1B4C:
- ldr r0, _080D1B7C
-_080D1B4E:
- adds r2, r4, r0
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r1, 20
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1B24
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1B7C: .4byte 0x02018000
- thumb_func_end sub_80D1ADC
-
- thumb_func_start sub_80D1B80
-sub_80D1B80: @ 80D1B80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080D1BA4
- movs r4, 0x4
-_080D1B8A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D1B8A
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BA4: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1B80
-
- thumb_func_start sub_80D1BA8
-sub_80D1BA8: @ 80D1BA8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, _080D1BFC
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080D1C00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080D1C04
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BFC: .4byte 0x000003ff
-_080D1C00: .4byte 0xfffffc00
-_080D1C04: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1BA8
-
- thumb_func_start sub_80D1C08
-sub_80D1C08: @ 80D1C08
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r6, _080D1C70
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1C28
- ldr r1, _080D1C74
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D1C28:
- ldr r4, _080D1C74
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080D1C78
- str r0, [r5, 0x1C]
- ldr r1, _080D1C7C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80D1BA8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1C70: .4byte gUnknown_0202F7C8
-_080D1C74: .4byte gUnknown_03004B00
-_080D1C78: .4byte sub_8078B34
-_080D1C7C: .4byte move_anim_8072740
- thumb_func_end sub_80D1C08
-
- thumb_func_start sub_80D1C80
-sub_80D1C80: @ 80D1C80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1C9A
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
-_080D1C9A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _080D1CCA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1CCA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1C80
-
- thumb_func_start sub_80D1CD0
-sub_80D1CD0: @ 80D1CD0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- movs r2, 0xF0
- cmp r0, 0
- beq _080D1CE4
- movs r2, 0x98
-_080D1CE4:
- movs r3, 0
- ldr r0, _080D1D2C
- strh r2, [r0]
- ldr r0, _080D1D30
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080D1D34
- strh r2, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080D1D38
- ldr r5, _080D1D3C
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r5, 0x20
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _080D1D40
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- strh r2, [r0, 0xA]
- ldr r1, _080D1D44
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D2C: .4byte gUnknown_030042C4
-_080D1D30: .4byte gUnknown_03004240
-_080D1D34: .4byte REG_WIN0H
-_080D1D38: .4byte REG_WININ
-_080D1D3C: .4byte 0x00003f1f
-_080D1D40: .4byte gTasks
-_080D1D44: .4byte sub_80D1D48
- thumb_func_end sub_80D1CD0
-
- thumb_func_start sub_80D1D48
-sub_80D1D48: @ 80D1D48
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D1D7C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080D1D88
- ldr r0, _080D1D80
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D1D84
- str r0, [r3]
- b _080D1D90
- .align 2, 0
-_080D1D7C: .4byte gTasks
-_080D1D80: .4byte gUnknown_030042C4
-_080D1D84: .4byte sub_80D1D9C
-_080D1D88:
- ldr r1, _080D1D98
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080D1D90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D98: .4byte gUnknown_030042C4
- thumb_func_end sub_80D1D48
-
- thumb_func_start sub_80D1D9C
-sub_80D1D9C: @ 80D1D9C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r5, _080D1DEC
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- adds r1, r3, r5
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080D1DF8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- adds r0, r5, r3
- adds r0, 0x1E
- ldr r1, _080D1DF0
- movs r2, 0x2
- bl RequestSpriteCopy
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- ldr r2, _080D1DF4
- movs r1, 0x10
- bl BlendPalettes
- b _080D1E1E
- .align 2, 0
-_080D1DEC: .4byte gTasks
-_080D1DF0: .4byte REG_BLDCNT
-_080D1DF4: .4byte 0x00007fff
-_080D1DF8:
- cmp r0, 0x4
- ble _080D1E1E
- ldr r0, _080D1E28
- strh r4, [r0]
- ldr r0, _080D1E2C
- strh r4, [r0]
- ldr r0, _080D1E30
- ldr r3, _080D1E34
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080D1E1E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1E28: .4byte gUnknown_030042C4
-_080D1E2C: .4byte gUnknown_03004240
-_080D1E30: .4byte REG_WININ
-_080D1E34: .4byte 0x00003f3f
- thumb_func_end sub_80D1D9C
-
- thumb_func_start sub_80D1E38
-sub_80D1E38: @ 80D1E38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1E88
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1E94
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1E8C
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1E90
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1EBC
- .align 2, 0
-_080D1E88: .4byte gTasks
-_080D1E8C: .4byte gUnknown_083D7A98
-_080D1E90: .4byte gSprites
-_080D1E94:
- ldr r1, _080D1EC4
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1EBC
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1EBC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1EC4: .4byte gSprites
- thumb_func_end sub_80D1E38
-
- thumb_func_start sub_80D1EC8
-sub_80D1EC8: @ 80D1EC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1F18
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1F24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1F1C
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1F20
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1F4C
- .align 2, 0
-_080D1F18: .4byte gTasks
-_080D1F1C: .4byte gUnknown_083D7A98
-_080D1F20: .4byte gSprites
-_080D1F24:
- ldr r1, _080D1F54
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1F4C
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1F4C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F54: .4byte gSprites
- thumb_func_end sub_80D1EC8
-
- thumb_func_start sub_80D1F58
-sub_80D1F58: @ 80D1F58
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080D1F9C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D1FA0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F9C: .4byte gUnknown_0202F7C9
-_080D1FA0: .4byte sub_80D1FA4
- thumb_func_end sub_80D1F58
-
- thumb_func_start sub_80D1FA4
-sub_80D1FA4: @ 80D1FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D1FCE
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D1FD4
-_080D1FCE:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1FD4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FA4
-
- thumb_func_start sub_80D1FDC
-sub_80D1FDC: @ 80D1FDC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2000
- ldr r1, _080D1FFC
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D205C
- .align 2, 0
-_080D1FFC: .4byte gUnknown_03004B00
-_080D2000:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D204E
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D204E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D205C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D205C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FDC
-
- thumb_func_start sub_80D2064
-sub_80D2064: @ 80D2064
- push {lr}
- ldr r2, _080D2088
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, _080D208C
- str r1, [r0, 0x1C]
- ldr r1, _080D2090
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D2088: .4byte gUnknown_03004B00
-_080D208C: .4byte sub_80782D8
-_080D2090: .4byte sub_80D2094
- thumb_func_end sub_80D2064
-
- thumb_func_start sub_80D2094
-sub_80D2094: @ 80D2094
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _080D20FA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- cmp r5, 0x40
- bgt _080D20FA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D20FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2094
-
- thumb_func_start sub_80D2100
-sub_80D2100: @ 80D2100
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D21BC
- ldr r2, _080D21C0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D21C4
- ldrb r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D2144
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D2144:
- ldr r0, _080D21C8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D21CC
- strh r1, [r0]
- ldr r0, _080D21D0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080D21D4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080D21D8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080D21DC
- bl LZDecompressVram
- ldr r0, _080D21E0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D21E4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D21A4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D21A4:
- ldr r0, _080D21E8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D21EC
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D21BC: .4byte REG_BLDCNT
-_080D21C0: .4byte 0x00003f42
-_080D21C4: .4byte REG_BG1CNT
-_080D21C8: .4byte gUnknown_030042C0
-_080D21CC: .4byte gUnknown_030041B4
-_080D21D0: .4byte REG_BG1HOFS
-_080D21D4: .4byte 0x040000d4
-_080D21D8: .4byte 0x85000400
-_080D21DC: .4byte gAttractTilemap
-_080D21E0: .4byte gAttractGfx
-_080D21E4: .4byte gAttractPal
-_080D21E8: .4byte gTasks
-_080D21EC: .4byte sub_80D21F0
- thumb_func_end sub_80D2100
-
- thumb_func_start sub_80D21F0
-sub_80D21F0: @ 80D21F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2220
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2216
- b _080D238C
-_080D2216:
- lsls r0, 2
- ldr r1, _080D2224
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2220: .4byte gTasks
-_080D2224: .4byte _080D2228
- .align 2, 0
-_080D2228:
- .4byte _080D223C
- .4byte _080D2284
- .4byte _080D22A6
- .4byte _080D22E8
- .4byte _080D236C
-_080D223C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080D2256
- b _080D238C
-_080D2256:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2280
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- beq _080D2274
- b _080D238C
-_080D2274:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D2280: .4byte REG_BLDALPHA
-_080D2284:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _080D238C
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D238C
-_080D22A6:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D238C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D22E4
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D238C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D22E4: .4byte REG_BLDALPHA
-_080D22E8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D239C
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D23A0
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D230E:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D230E
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D239C
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D23A4
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D235C
- ldr r2, _080D23A8
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D235C:
- ldr r0, _080D23AC
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D236C:
- ldr r0, _080D23B0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D23A8
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D238C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D239C: .4byte 0x040000d4
-_080D23A0: .4byte 0x85000400
-_080D23A4: .4byte 0x85000200
-_080D23A8: .4byte REG_BG1CNT
-_080D23AC: .4byte gTasks
-_080D23B0: .4byte REG_BLDCNT
- thumb_func_end sub_80D21F0
-
- thumb_func_start sub_80D23B4
-sub_80D23B4: @ 80D23B4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2438
- ldr r2, _080D243C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D2440
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D23FE
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D23FE:
- ldr r0, _080D2444
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D2448
- strh r1, [r0]
- ldr r0, _080D244C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r1, _080D2450
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080D2454
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D245C
- ldr r0, _080D2458
- b _080D246E
- .align 2, 0
-_080D2438: .4byte REG_BLDCNT
-_080D243C: .4byte 0x00003f42
-_080D2440: .4byte REG_BG1CNT
-_080D2444: .4byte gUnknown_030042C0
-_080D2448: .4byte gUnknown_030041B4
-_080D244C: .4byte REG_BG1HOFS
-_080D2450: .4byte 0x040000d4
-_080D2454: .4byte 0x85000400
-_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
-_080D245C:
- ldr r0, _080D2478
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2480
- ldr r0, _080D247C
-_080D246E:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D2488
- .align 2, 0
-_080D2478: .4byte gUnknown_0202F7C9
-_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_080D2480:
- ldr r0, _080D24CC
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080D2488:
- ldr r0, _080D24D0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D24D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D24B6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D24B6:
- ldr r0, _080D24D8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D24DC
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
-_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
-_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
-_080D24D8: .4byte gTasks
-_080D24DC: .4byte sub_80D24E0
- thumb_func_end sub_80D23B4
-
- thumb_func_start sub_80D24E0
-sub_80D24E0: @ 80D24E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2510
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2506
- b _080D267C
-_080D2506:
- lsls r0, 2
- ldr r1, _080D2514
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2510: .4byte gTasks
-_080D2514: .4byte _080D2518
- .align 2, 0
-_080D2518:
- .4byte _080D252C
- .4byte _080D2574
- .4byte _080D2596
- .4byte _080D25D8
- .4byte _080D265C
-_080D252C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _080D2546
- b _080D267C
-_080D2546:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2570
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- beq _080D2564
- b _080D267C
-_080D2564:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D2570: .4byte REG_BLDALPHA
-_080D2574:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D267C
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D267C
-_080D2596:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080D267C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D25D4
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D267C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D25D4: .4byte REG_BLDALPHA
-_080D25D8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D268C
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D2690
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D25FE:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D25FE
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D268C
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D2694
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D264C
- ldr r2, _080D2698
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D264C:
- ldr r0, _080D269C
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D265C:
- ldr r0, _080D26A0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D2698
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D267C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D268C: .4byte 0x040000d4
-_080D2690: .4byte 0x85000400
-_080D2694: .4byte 0x85000200
-_080D2698: .4byte REG_BG1CNT
-_080D269C: .4byte gTasks
-_080D26A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D24E0
-
- thumb_func_start sub_80D26A4
-sub_80D26A4: @ 80D26A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D26F8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D26FC
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080D2700
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D26F8: .4byte gUnknown_0202F7C8
-_080D26FC: .4byte gUnknown_03004B00
-_080D2700: .4byte sub_80D2704
- thumb_func_end sub_80D26A4
-
- thumb_func_start sub_80D2704
-sub_80D2704: @ 80D2704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D271A
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080D271E
-_080D271A:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080D271E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _080D2790
- cmp r2, 0x1
- bne _080D27C0
- ldr r1, _080D2788
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080D278C
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D27C0
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080D27D0
- .align 2, 0
-_080D2788: .4byte 0xfffffc00
-_080D278C: .4byte 0xffffff00
-_080D2790:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080D27C0
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080D27C0:
- ldr r0, _080D27D8
- ldrh r1, [r0, 0xE]
- ldr r0, _080D27DC
- cmp r1, r0
- bne _080D27D0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D27D0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D27D8: .4byte gUnknown_03004B00
-_080D27DC: .4byte 0x0000ffff
- thumb_func_end sub_80D2704
-
- thumb_func_start sub_80D27E0
-sub_80D27E0: @ 80D27E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D2828
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D282C
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, _080D2830
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2828: .4byte gUnknown_0202F7C8
-_080D282C: .4byte gUnknown_03004B00
-_080D2830: .4byte sub_80D2834
- thumb_func_end sub_80D27E0
-
- thumb_func_start sub_80D2834
-sub_80D2834: @ 80D2834
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D2872
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D2872
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D2878
-_080D2872:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2878:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2834
-
- thumb_func_start sub_80D287C
-sub_80D287C: @ 80D287C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080D28A8
- adds r0, r2, 0
- bl move_anim_8072740
-_080D28A8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D287C
-
- thumb_func_start sub_80D28AC
-sub_80D28AC: @ 80D28AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D28F8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D28FC
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, _080D2900
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D28F8: .4byte gUnknown_0202F7C8
-_080D28FC: .4byte gUnknown_03004B00
-_080D2900: .4byte sub_80D287C
- thumb_func_end sub_80D28AC
-
- thumb_func_start sub_80D2904
-sub_80D2904: @ 80D2904
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D291A
- adds r0, r2, 0
- bl move_anim_8072740
-_080D291A:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2904
-
- thumb_func_start sub_80D2920
-sub_80D2920: @ 80D2920
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D2934
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2934: .4byte sub_80D2904
- thumb_func_end sub_80D2920
-
- thumb_func_start sub_80D2938
-sub_80D2938: @ 80D2938
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2956
- ldr r0, _080D29C8
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D2956:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _080D299A
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_080D299A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080D29B8
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_080D29B8:
- cmp r2, 0x64
- ble _080D29C2
- adds r0, r4, 0
- bl move_anim_8072740
-_080D29C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D29C8: .4byte gUnknown_03004B00
- thumb_func_end sub_80D2938
-
- thumb_func_start sub_80D29CC
-sub_80D29CC: @ 80D29CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080D2A22
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D2A22:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080D2A30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D29CC
-
- thumb_func_start sub_80D2A38
-sub_80D2A38: @ 80D2A38
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2A5C
- ldr r1, _080D2A58
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D2AB0
- .align 2, 0
-_080D2A58: .4byte gUnknown_03004B00
-_080D2A5C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _080D2AB0
- ldr r0, _080D2AB8
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080D2AB0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2AB8: .4byte sub_80D29CC
- thumb_func_end sub_80D2A38
-
- thumb_func_start sub_80D2ABC
-sub_80D2ABC: @ 80D2ABC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2AF6
- ldr r1, _080D2BB8
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080D2BBC
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2AF6:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _080D2B0C
- adds r0, 0xFF
-_080D2B0C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080D2B1E
- movs r0, 0
- strh r0, [r4, 0x30]
-_080D2B1E:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B2C
- adds r0, 0x3
-_080D2B2C:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B48
- adds r0, 0x7
-_080D2B48:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _080D2B6C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D2B6C
- ldr r0, _080D2BC0
- strh r0, [r4, 0x32]
-_080D2B6C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2B80
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080D2B80
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2B80:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _080D2BC4
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080D2BD2
- .align 2, 0
-_080D2BB8: .4byte gUnknown_03004B00
-_080D2BBC: .4byte gUnknown_0202F7C9
-_080D2BC0: .4byte 0x0000ffff
-_080D2BC4:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D2BD2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080D2BE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2BE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2ABC
-
- thumb_func_start sub_80D2BE8
-sub_80D2BE8: @ 80D2BE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2C1C
- ldr r1, _080D2C18
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D2C30
- .align 2, 0
-_080D2C18: .4byte gUnknown_03004B00
-_080D2C1C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2C30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2C30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2BE8
-
- thumb_func_start sub_80D2C38
-sub_80D2C38: @ 80D2C38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080D2C50
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C54
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D2CB8
- .align 2, 0
-_080D2C50: .4byte gUnknown_03004B00
-_080D2C54:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C64
- ldr r4, _080D2C60
- b _080D2C66
- .align 2, 0
-_080D2C60: .4byte gUnknown_0202F7C8
-_080D2C64:
- ldr r4, _080D2C94
-_080D2C66:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D2C98
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080D2C9C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080D2CA0
- .align 2, 0
-_080D2C94: .4byte gUnknown_0202F7C9
-_080D2C98: .4byte gUnknown_03004B00
-_080D2C9C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080D2CA0:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080D2CC0
- str r0, [r5, 0x1C]
-_080D2CB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2CC0: .4byte sub_80D2CC4
- thumb_func_end sub_80D2C38
-
- thumb_func_start sub_80D2CC4
-sub_80D2CC4: @ 80D2CC4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2CF4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080D2CEE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080D2CF4
-_080D2CEE:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2CF4:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2CC4
-
- thumb_func_start sub_80D2CF8
-sub_80D2CF8: @ 80D2CF8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080D2D2C
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080D2D30
- adds r4, r0
- ldr r2, _080D2D34
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D2D38
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D2C: .4byte gUnknown_03004B00
-_080D2D30: .4byte gTasks
-_080D2D34: .4byte gUnknown_083D7CA8
-_080D2D38: .4byte sub_80D2D3C
- thumb_func_end sub_80D2CF8
-
- thumb_func_start sub_80D2D3C
-sub_80D2D3C: @ 80D2D3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D2D64
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D2D5C
- adds r0, r4, 0
- bl move_anim_task_del
-_080D2D5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D64: .4byte gTasks
- thumb_func_end sub_80D2D3C
-
- thumb_func_start sub_80D2D68
-sub_80D2D68: @ 80D2D68
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D2D7C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D2D84
- ldr r0, _080D2D80
- b _080D2D86
- .align 2, 0
-_080D2D7C: .4byte gUnknown_03004B00
-_080D2D80: .4byte gUnknown_0202F7C8
-_080D2D84:
- ldr r0, _080D2E1C
-_080D2D86:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2DA0
- ldr r1, _080D2E20
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D2DA0:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r7, _080D2E20
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DE0
- adds r0, 0x7
-_080D2DE0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DF0
- adds r0, 0x7
-_080D2DF0:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, _080D2E24
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D2E28
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D2E2C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2E1C: .4byte gUnknown_0202F7C9
-_080D2E20: .4byte gUnknown_03004B00
-_080D2E24: .4byte 0x000003ff
-_080D2E28: .4byte 0xfffffc00
-_080D2E2C: .4byte sub_80D2E30
- thumb_func_end sub_80D2D68
-
- thumb_func_start sub_80D2E30
-sub_80D2E30: @ 80D2E30
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D2E64
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2E64:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2E30
-
- thumb_func_start sub_80D2E68
-sub_80D2E68: @ 80D2E68
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2E8A
- ldr r0, _080D2EC4
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080D2E8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D2EA8
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
-_080D2EA8:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080D2EBC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2EBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2EC4: .4byte gUnknown_03004B00
- thumb_func_end sub_80D2E68
-
- thumb_func_start sub_80D2EC8
-sub_80D2EC8: @ 80D2EC8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D2EF6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080D2F78
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_080D2EF6:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080D2F72
- ldr r0, _080D2F7C
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl oamt_add_pos2_onto_pos1
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080D2F72:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2F78: .4byte gUnknown_03004B00
-_080D2F7C: .4byte sub_80D2F80
- thumb_func_end sub_80D2EC8
-
- thumb_func_start sub_80D2F80
-sub_80D2F80: @ 80D2F80
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080D2F9A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080D2FA0
- str r0, [r1, 0x1C]
-_080D2F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D2FA0: .4byte sub_80D2FA4
- thumb_func_end sub_80D2F80
-
- thumb_func_start sub_80D2FA4
-sub_80D2FA4: @ 80D2FA4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080D2FCE
- lsls r0, r1, 16
- cmp r0, 0
- ble _080D2FCE
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080D2FCE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080D3000
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3000:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080D300E
- adds r0, r4, 0
- bl move_anim_8072740
-_080D300E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2FA4
-
- thumb_func_start sub_80D3014
-sub_80D3014: @ 80D3014
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D3058
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D3060
- ldr r4, _080D305C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D3060
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080D3080
- .align 2, 0
-_080D3058: .4byte gUnknown_020239F8
-_080D305C: .4byte gUnknown_0202F7C8
-_080D3060:
- ldr r4, _080D30A0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080D3080:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, _080D30A4
- str r0, [r5, 0x1C]
- ldr r1, _080D30A8
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D30A0: .4byte gUnknown_0202F7C8
-_080D30A4: .4byte sub_8078B34
-_080D30A8: .4byte move_anim_8072740
- thumb_func_end sub_80D3014
-
- thumb_func_start sub_80D30AC
-sub_80D30AC: @ 80D30AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D30C8
- ldr r1, _080D30CC
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D30C8: .4byte gUnknown_03004B00
-_080D30CC: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80D30AC
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80D30D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D30E8
- ldr r1, _080D30EC
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D30E8: .4byte gUnknown_03004B00
-_080D30EC: .4byte gUnknown_0202F7B4
- thumb_func_end update_fury_cutter_counter_copy
-
- thumb_func_start sub_80D30F0
-sub_80D30F0: @ 80D30F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080D3178
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D3118
- ldr r1, _080D317C
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_080D3118:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _080D3160
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080D3180
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_080D3160:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080D3172
- adds r0, r6, 0
- bl move_anim_task_del
-_080D3172:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3178: .4byte gTasks
-_080D317C: .4byte gUnknown_03004B00
-_080D3180: .4byte gSpriteTemplate_83D9130
- thumb_func_end sub_80D30F0
-
- thumb_func_start sub_80D3184
-sub_80D3184: @ 80D3184
- ldr r1, _080D318C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D318C: .4byte sub_80D3190
- thumb_func_end sub_80D3184
-
- thumb_func_start sub_80D3190
-sub_80D3190: @ 80D3190
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D31AE
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_080D31AE:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D31C2
- adds r0, r2, 0
- bl DestroySprite
-_080D31C2:
- pop {r0}
- bx r0
- thumb_func_end sub_80D3190
-
- thumb_func_start sub_80D31C8
-sub_80D31C8: @ 80D31C8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D31F0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D31F8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080D31F4
- ldrh r1, [r4]
- subs r0, r1
- b _080D320A
- .align 2, 0
-_080D31F0: .4byte gUnknown_0202F7C8
-_080D31F4: .4byte gUnknown_03004B00
-_080D31F8:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D32D0
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_080D320A:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D32D4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D3240
- ldr r1, _080D32D0
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D3240:
- ldr r5, _080D32D0
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, _080D32D8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D32DC
- bl object_new_hidden_with_callback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, _080D32E0
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, _080D32E4
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D32D0: .4byte gUnknown_03004B00
-_080D32D4: .4byte gUnknown_0202F7C8
-_080D32D8: .4byte gUnknown_0202F7C9
-_080D32DC: .4byte SpriteCallbackDummy
-_080D32E0: .4byte gSprites
-_080D32E4: .4byte sub_80D32E8
- thumb_func_end sub_80D31C8
-
- thumb_func_start sub_80D32E8
-sub_80D32E8: @ 80D32E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D3350
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _080D3354
- strh r4, [r7, 0x36]
- b _080D335E
- .align 2, 0
-_080D3350: .4byte gSprites
-_080D3354:
- ldr r0, _080D336C
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_080D335E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D336C: .4byte sub_80D3370
- thumb_func_end sub_80D32E8
-
- thumb_func_start sub_80D3370
-sub_80D3370: @ 80D3370
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, _080D3390
- str r1, [r0, 0x1C]
- ldr r1, _080D3394
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D3390: .4byte sub_8078600
-_080D3394: .4byte sub_80D3398
- thumb_func_end sub_80D3370
-
- thumb_func_start sub_80D3398
-sub_80D3398: @ 80D3398
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, _080D33AC
- str r1, [r0, 0x1C]
- ldr r1, _080D33B0
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D33AC: .4byte sub_80782D8
-_080D33B0: .4byte move_anim_8074EE0
- thumb_func_end sub_80D3398
-
- thumb_func_start sub_80D33B4
-sub_80D33B4: @ 80D33B4
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D33DC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D33E4
- ldr r1, _080D33E0
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _080D33EA
- .align 2, 0
-_080D33DC: .4byte gUnknown_0202F7C8
-_080D33E0: .4byte gUnknown_03004B00
-_080D33E4:
- ldr r0, _080D3440
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_080D33EA:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D3444
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D3448
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3440: .4byte gUnknown_03004B00
-_080D3444: .4byte gUnknown_0202F7C9
-_080D3448: .4byte sub_80D344C
- thumb_func_end sub_80D33B4
-
- thumb_func_start sub_80D344C
-sub_80D344C: @ 80D344C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3488
- ldrh r1, [r0, 0xE]
- ldr r0, _080D348C
- cmp r1, r0
- bne _080D346E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_080D346E:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D3480
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3488: .4byte gUnknown_03004B00
-_080D348C: .4byte 0x0000ffff
- thumb_func_end sub_80D344C
-
- thumb_func_start sub_80D3490
-sub_80D3490: @ 80D3490
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D34C4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080D34C8
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, _080D34CC
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _080D34D0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D34C4: .4byte gTasks
-_080D34C8: .4byte gUnknown_03004B00
-_080D34CC: .4byte 0x0000279c
-_080D34D0: .4byte sub_80D34D4
- thumb_func_end sub_80D3490
-
- thumb_func_start sub_80D34D4
-sub_80D34D4: @ 80D34D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D354C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _080D3526
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080D3550
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_080D3510:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D3510
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_080D3526:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _080D3546
- adds r0, r4, 0
- bl move_anim_task_del
-_080D3546:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D354C: .4byte gTasks
-_080D3550: .4byte gPlttBufferFaded
- thumb_func_end sub_80D34D4
-
- thumb_func_start sub_80D3554
-sub_80D3554: @ 80D3554
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D35BC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, _080D35C0
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _080D35C4
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _080D35C8
- .align 2, 0
-_080D35BC: .4byte gUnknown_0202F7C9
-_080D35C0: .4byte gUnknown_03004B00
-_080D35C4:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_080D35C8:
- ldr r1, _080D35D8
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D35D8: .4byte sub_80D35DC
- thumb_func_end sub_80D3554
-
- thumb_func_start sub_80D35DC
-sub_80D35DC: @ 80D35DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D35F0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D35F0:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _080D3620
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _080D3628
-_080D3620:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_080D3628:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D35DC
-
- thumb_func_start sub_80D3630
-sub_80D3630: @ 80D3630
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D3650
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080D3654
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, _080D3658
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D3650: .4byte gTasks
-_080D3654: .4byte gUnknown_03004B00
-_080D3658: .4byte sub_80D365C
- thumb_func_end sub_80D3630
-
- thumb_func_start sub_80D365C
-sub_80D365C: @ 80D365C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080D3690
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, _080D3694
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080D368A
- adds r0, r3, 0
- bl move_anim_task_del
-_080D368A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D3690: .4byte gUnknown_03004B00
-_080D3694: .4byte gTasks
- thumb_func_end sub_80D365C
-
- thumb_func_start sub_80D3698
-sub_80D3698: @ 80D3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, _080D36E4
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, _080D36E8
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_8079E90
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D36F2
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D36EC
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _080D36F4
- .align 2, 0
-_080D36E4: .4byte gUnknown_0202F7C8
-_080D36E8: .4byte 0x0000fff6
-_080D36EC:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _080D36F6
-_080D36F2:
- strh r6, [r4, 0x24]
-_080D36F4:
- adds r0, r5, 0x2
-_080D36F6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, _080D3708
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3708: .4byte sub_80D370C
- thumb_func_end sub_80D3698
-
- thumb_func_start sub_80D370C
-sub_80D370C: @ 80D370C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D3722
- adds r0, r2, 0
- bl move_anim_8072740
-_080D3722:
- pop {r0}
- bx r0
- thumb_func_end sub_80D370C
-
- thumb_func_start sub_80D3728
-sub_80D3728: @ 80D3728
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, _080D37E8
- ldrb r0, [r5]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080D37EC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D3772
- ldr r4, _080D37F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- beq _080D376A
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D3772
-_080D376A:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_080D3772:
- ldr r5, _080D37F0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080D3786
- movs r1, 0x1
-_080D3786:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _080D3790
- movs r7, 0x3
-_080D3790:
- adds r0, r6, 0
- bl sub_80787B0
- ldr r0, _080D37E8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D37AA
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_080D37AA:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, _080D37EC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, _080D37F4
- str r0, [r6, 0x1C]
- ldr r1, _080D37F8
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D37E8: .4byte gUnknown_0202F7C8
-_080D37EC: .4byte gUnknown_0202F7C9
-_080D37F0: .4byte gUnknown_03004B00
-_080D37F4: .4byte sub_8078B34
-_080D37F8: .4byte move_anim_8072740
- thumb_func_end sub_80D3728
-
- thumb_func_start sub_80D37FC
-sub_80D37FC: @ 80D37FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D382C
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, _080D3830
- str r0, [r4, 0x1C]
- ldr r1, _080D3834
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D382C: .4byte gUnknown_03004B00
-_080D3830: .4byte sub_8078B34
-_080D3834: .4byte move_anim_8072740
- thumb_func_end sub_80D37FC
-
- thumb_func_start sub_80D3838
-sub_80D3838: @ 80D3838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3850
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D3854
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D385C
- .align 2, 0
-_080D3850: .4byte gUnknown_03004B00
-_080D3854:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
-_080D385C:
- ldr r0, _080D386C
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D3870
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D386C: .4byte gUnknown_03004B00
-_080D3870: .4byte sub_80D3874
- thumb_func_end sub_80D3838
-
- thumb_func_start sub_80D3874
-sub_80D3874: @ 80D3874
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D38B4
- adds r0, r4, 0
- bl move_anim_8072740
-_080D38B4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D3874
-
- thumb_func_start sub_80D38BC
-sub_80D38BC: @ 80D38BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080D398C
- ldr r2, _080D3990
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r2, _080D3994
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- add r0, sp, 0xC
- mov r12, r0
- movs r5, 0
- ldr r1, _080D3998
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r7, _080D399C
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3920:
- str r5, [sp, 0x10]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D3920
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- mov r3, r12
- strb r0, [r3]
- strb r0, [r3]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x10]
- ldr r0, _080D3998
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D399C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D39B8
- ldr r2, _080D3994
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D39A0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D39A8
- ldr r0, _080D39A4
- b _080D39AA
- .align 2, 0
-_080D398C: .4byte REG_BLDCNT
-_080D3990: .4byte 0x00003f42
-_080D3994: .4byte REG_BG1CNT
-_080D3998: .4byte 0x040000d4
-_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gUnknown_0202F7C8
-_080D39A4: .4byte gUnknown_08E70968
-_080D39A8:
- ldr r0, _080D39B4
-_080D39AA:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D39CE
- .align 2, 0
-_080D39B4: .4byte gUnknown_08E70C38
-_080D39B8:
- ldr r0, _080D39F0
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_80763FC
-_080D39CE:
- ldr r0, _080D39F4
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D39F8
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D3A00
- ldr r0, _080D39FC
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080D3A0E
- .align 2, 0
-_080D39F0: .4byte gUnknown_08E70F0C
-_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gUnknown_03004B00
-_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
-_080D3A00:
- ldr r0, _080D3A78
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080D3A0E:
- ldr r0, _080D3A7C
- ldr r4, _080D3A80
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r3, 0
- mov r9, r3
- mov r0, r8
- strh r0, [r6, 0x26]
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r2, r9
- strh r2, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl sub_8076BE0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080D3A94
- ldr r3, _080D3A84
- adds r0, r3, 0
- ldr r1, _080D3A88
- strh r0, [r1]
- ldr r2, _080D3A8C
- adds r0, r2, 0
- ldr r3, _080D3A90
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
-_080D3A7C: .4byte sub_80D3D68
-_080D3A80: .4byte gTasks
-_080D3A84: .4byte 0x0000ffb0
-_080D3A88: .4byte gUnknown_030042C0
-_080D3A8C: .4byte 0x0000ffd0
-_080D3A90: .4byte gUnknown_030041B4
-_080D3A94:
- ldr r0, _080D3AC4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080D3AD8
- ldr r2, _080D3AC8
- adds r0, r2, 0
- ldr r3, _080D3ACC
- strh r0, [r3]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r3, _080D3AD0
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, _080D3AD4
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3AC4: .4byte gUnknown_0202F7C8
-_080D3AC8: .4byte 0x0000ff20
-_080D3ACC: .4byte gUnknown_030042C0
-_080D3AD0: .4byte gUnknown_030041B4
-_080D3AD4: .4byte 0x0000ffff
-_080D3AD8:
- ldr r0, _080D3B1C
- strh r4, [r0]
- ldr r1, _080D3B20
- adds r0, r1, 0
- ldr r2, _080D3B24
- strh r0, [r2]
- ldr r0, _080D3B28
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_080D3AEE:
- ldr r1, _080D3B2C
- ldr r3, _080D3B1C
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080D3B24
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _080D3B30
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080D3B34
- movs r0, 0x30
- strh r0, [r2, 0x10]
- movs r0, 0x70
- b _080D3B38
- .align 2, 0
-_080D3B1C: .4byte gUnknown_030042C0
-_080D3B20: .4byte 0x0000ffd0
-_080D3B24: .4byte gUnknown_030041B4
-_080D3B28: .4byte 0x0000fffe
-_080D3B2C: .4byte REG_BG1HOFS
-_080D3B30: .4byte gTasks
-_080D3B34:
- movs r0, 0
- strh r0, [r2, 0x10]
-_080D3B38:
- strh r0, [r2, 0x12]
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, _080D3B5C
- str r1, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3B5C: .4byte sub_80D3B60
- thumb_func_end sub_80D38BC
-
- thumb_func_start sub_80D3B60
-sub_80D3B60: @ 80D3B60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080D3D44
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldr r1, _080D3D48
- ldrh r1, [r1]
- adds r0, r1
- ldr r2, _080D3D48
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- ldr r3, _080D3D4C
- ldrh r3, [r3]
- adds r0, r3
- ldr r1, _080D3D4C
- strh r0, [r1]
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- ldrh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- mov r10, r5
- cmp r0, 0x4
- bne _080D3C02
- ldr r1, _080D3D50
- ldrb r0, [r5, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r5, r1, 0
- adds r3, r5, 0
- mov r4, r10
-_080D3BC8:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080D3BC8
- mov r3, r10
- ldrb r0, [r3, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- strh r6, [r0]
- ldr r1, _080D3D44
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_080D3C02:
- ldr r1, _080D3D44
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- str r2, [sp, 0x14]
- cmp r0, 0x1
- ble _080D3C70
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D3C4C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_080D3C4C:
- movs r2, 0xE
- ldrsh r0, [r3, r2]
- cmp r0, 0x36
- ble _080D3C70
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_080D3C70:
- ldr r2, [sp, 0x14]
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r4
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0xA]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080D3D32
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- movs r5, 0
- ldr r1, _080D3D54
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D3D58
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3CAA:
- str r5, [sp, 0x10]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D3CAA
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- mov r3, r10
- ldr r1, [r3, 0x4]
- movs r4, 0
- str r4, [sp, 0x10]
- ldr r0, _080D3D54
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D3D58
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D3D02
- ldr r2, _080D3D5C
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D3D02:
- ldr r0, _080D3D48
- strh r4, [r0]
- ldr r1, _080D3D4C
- strh r4, [r1]
- ldr r0, _080D3D60
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r2, _080D3D44
- ldr r3, [sp, 0x14]
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r2
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080D3D64
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_080D3D32:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3D44: .4byte gTasks
-_080D3D48: .4byte gUnknown_030042C0
-_080D3D4C: .4byte gUnknown_030041B4
-_080D3D50: .4byte gPlttBufferFaded
-_080D3D54: .4byte 0x040000d4
-_080D3D58: .4byte 0x85000400
-_080D3D5C: .4byte REG_BG1CNT
-_080D3D60: .4byte REG_BLDCNT
-_080D3D64: .4byte 0x0000ffff
- thumb_func_end sub_80D3B60
-
- thumb_func_start sub_80D3D68
-sub_80D3D68: @ 80D3D68
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080D3D90
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D3D84
- b _080D3EBC
-_080D3D84:
- cmp r0, 0x1
- bgt _080D3D94
- cmp r0, 0
- beq _080D3D9C
- b _080D4032
- .align 2, 0
-_080D3D90: .4byte gTasks
-_080D3D94:
- cmp r0, 0x2
- bne _080D3D9A
- b _080D3F88
-_080D3D9A:
- b _080D4032
-_080D3D9C:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, _080D3E6C
- mov r12, r1
- cmp r3, r0
- bge _080D3DDA
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, _080D3E70
-_080D3DB4:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080D3DB4
-_080D3DDA:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3E14
- ldr r5, _080D3E6C
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70
-_080D3DF2:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3DF2
-_080D3E14:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _080D3E4A
- ldr r5, _080D3E6C
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70
-_080D3E28:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _080D3E28
-_080D3E4A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D3E74
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _080D3E8A
- .align 2, 0
-_080D3E6C: .4byte gUnknown_03004DE0
-_080D3E70: .4byte 0x0000ffff
-_080D3E74:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_080D3E8A:
- strh r0, [r2]
- ldr r0, _080D3EB4
- str r0, [sp]
- ldr r0, _080D3EB8
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4032
- .align 2, 0
-_080D3EB4: .4byte REG_BLDALPHA
-_080D3EB8: .4byte 0xa2600001
-_080D3EBC:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080D3ED4
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _080D3EE8
- strh r1, [r4, 0x10]
- b _080D3EE2
-_080D3ED4:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080D3EE8
-_080D3EE2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D3EE8:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080D3F1C
- ldr r6, _080D3F80
- ldr r5, _080D3F84
-_080D3EF6:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3EF6
-_080D3F1C:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3F50
- ldr r6, _080D3F80
- ldr r5, _080D3F84
-_080D3F2E:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3F2E
-_080D3F50:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D4032
- ldr r6, _080D3F80
- ldr r5, _080D3F84
-_080D3F5E:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3F5E
- b _080D4032
- .align 2, 0
-_080D3F80: .4byte gUnknown_03004DE0
-_080D3F84: .4byte gUnknown_03004DC0
-_080D3F88:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080D3FBC
- ldr r6, _080D403C
- ldr r5, _080D4040
-_080D3F96:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3F96
-_080D3FBC:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3FF0
- ldr r6, _080D403C
- ldr r5, _080D4040
-_080D3FCE:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3FCE
-_080D3FF0:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D401C
- ldr r6, _080D403C
- ldr r5, _080D4040
-_080D3FFE:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3FFE
-_080D401C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D4032
- bl remove_some_task
- adds r0, r7, 0
- bl DestroyTask
-_080D4032:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D403C: .4byte gUnknown_03004DE0
-_080D4040: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D3D68
-
- thumb_func_start sub_80D4044
-sub_80D4044: @ 80D4044
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D4098
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D409C
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D40A0
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D408A
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D408A:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D40A4
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4098: .4byte 0x000003ff
-_080D409C: .4byte 0xfffffc00
-_080D40A0: .4byte 0x000001ff
-_080D40A4: .4byte sub_80D40A8
- thumb_func_end sub_80D4044
-
- thumb_func_start sub_80D40A8
-sub_80D40A8: @ 80D40A8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D40CC
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D40D0
-_080D40CC:
- lsls r0, r3, 16
- asrs r0, 24
-_080D40D0:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D40EE
- adds r0, r2, 0
- bl move_anim_8072740
-_080D40EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D40A8
-
- thumb_func_start sub_80D40F4
-sub_80D40F4: @ 80D40F4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D4144
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, _080D4148
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D414C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4144: .4byte gTasks
-_080D4148: .4byte gSprites
-_080D414C: .4byte sub_80D4150
- thumb_func_end sub_80D40F4
-
- thumb_func_start sub_80D4150
-sub_80D4150: @ 80D4150
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D4178
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _080D416C
- b _080D438A
-_080D416C:
- lsls r0, 2
- ldr r1, _080D417C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D4178: .4byte gTasks
-_080D417C: .4byte _080D4180
- .align 2, 0
-_080D4180:
- .4byte _080D41A0
- .4byte _080D41C6
- .4byte _080D4258
- .4byte _080D428E
- .4byte _080D42A2
- .4byte _080D42B0
- .4byte _080D4330
- .4byte _080D437C
-_080D41A0:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D41C6:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4222
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D4210
- ldr r2, _080D420C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _080D4222
- .align 2, 0
-_080D420C: .4byte gSprites
-_080D4210:
- ldr r2, _080D4250
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D4254
- strh r1, [r0, 0x24]
-_080D4222:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D4232
- b _080D438A
-_080D4232:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D4250
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _080D436C
- .align 2, 0
-_080D4250: .4byte gSprites
-_080D4254: .4byte 0x0000fffd
-_080D4258:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D4268
- b _080D438A
-_080D4268:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D436E
-_080D428E:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D438A
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
-_080D42A2:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80D4418
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D42B0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D438A
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D42E8
- ldr r2, _080D42E4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _080D42FA
- .align 2, 0
-_080D42E4: .4byte gSprites
-_080D42E8:
- ldr r2, _080D432C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_080D42FA:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080D438A
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
- .align 2, 0
-_080D432C: .4byte gSprites
-_080D4330:
- ldr r6, _080D4378
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D438A
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_080D436C:
- strh r5, [r4, 0x10]
-_080D436E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D438A
- .align 2, 0
-_080D4378: .4byte gSprites
-_080D437C:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D438A
- adds r0, r2, 0
- bl move_anim_task_del
-_080D438A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4150
-
- thumb_func_start sub_80D4394
-sub_80D4394: @ 80D4394
- push {r4,r5,lr}
- ldr r4, _080D43B8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D43C8
- ldr r1, _080D43BC
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D43C0
- b _080D43D8
- .align 2, 0
-_080D43B8: .4byte gUnknown_0202F7C8
-_080D43BC: .4byte gUnknown_02024A6A
-_080D43C0: .4byte gPlayerParty
-_080D43C4:
- adds r0, r2, 0
- b _080D440A
-_080D43C8:
- ldr r1, _080D4410
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D4414
-_080D43D8:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_080D43F6:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _080D43C4
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080D43F6
- movs r0, 0x3
-_080D440A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080D4410: .4byte gUnknown_02024A6A
-_080D4414: .4byte gEnemyParty
- thumb_func_end sub_80D4394
-
- thumb_func_start sub_80D4418
-sub_80D4418: @ 80D4418
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, _080D4520
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _080D4468
- movs r1, 0x1
-_080D4468:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_080D4482:
- ldr r0, _080D4524
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _080D44EA
- ldr r1, _080D4528
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D44E4
- adds r0, r5, 0
- bl sub_80D452C
-_080D44E4:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_080D44EA:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _080D4482
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4520: .4byte gUnknown_0202F7C8
-_080D4524: .4byte gSpriteTemplate_83D9378
-_080D4528: .4byte gSprites
- thumb_func_end sub_80D4418
-
- thumb_func_start sub_80D452C
-sub_80D452C: @ 80D452C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D453E
- cmp r0, 0x1
- beq _080D4574
- b _080D45CE
-_080D453E:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080D4574:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D45AA
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D45AA
- cmp r1, 0x78
- ble _080D45CE
-_080D45AA:
- ldr r3, _080D45D4
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D45CE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D45D4: .4byte gTasks
- thumb_func_end sub_80D452C
-
- thumb_func_start sub_80D45D8
-sub_80D45D8: @ 80D45D8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4608
- adds r4, r1, r0
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, _080D460C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D4610
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _080D4616
- .align 2, 0
-_080D4608: .4byte gTasks
-_080D460C: .4byte gUnknown_0202F7C8
-_080D4610:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_080D4616:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, _080D4638
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4638: .4byte sub_80D463C
- thumb_func_end sub_80D45D8
-
- thumb_func_start sub_80D463C
-sub_80D463C: @ 80D463C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, _080D4660
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080D4664
- cmp r2, 0x1
- beq _080D4714
- b _080D4722
- .align 2, 0
-_080D4660: .4byte gTasks
-_080D4664:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D467A
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_80D472C
-_080D467A:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D46F4
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D46F4
- ldr r5, _080D4708
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, _080D470C
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46C4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46C4:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46F0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46F0:
- mov r0, r8
- strh r0, [r4, 0x22]
-_080D46F4:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D4722
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4722
- .align 2, 0
-_080D4708: .4byte gUnknown_03004B00
-_080D470C: .4byte sub_80E1864
-_080D4710: .4byte gUnknown_0202F7B2
-_080D4714:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D4722
- adds r0, r1, 0
- bl move_anim_task_del
-_080D4722:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D463C
-
- thumb_func_start sub_80D472C
-sub_80D472C: @ 80D472C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080D47B8
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080D47BC
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D4786
- ldr r3, _080D47C0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D47C4
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_080D4786:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, _080D47C8
- muls r0, r1
- ldr r1, _080D47CC
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D47B8: .4byte gSineTable
-_080D47BC: .4byte gSpriteTemplate_83D9378
-_080D47C0: .4byte gSprites
-_080D47C4: .4byte sub_80D47D0
-_080D47C8: .4byte 0x41c64e6d
-_080D47CC: .4byte 0x00003039
- thumb_func_end sub_80D472C
-
- thumb_func_start sub_80D47D0
-sub_80D47D0: @ 80D47D0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D4866
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D4866
- ldr r2, _080D486C
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, _080D4870
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _080D4860
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D4874
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D4878
- str r1, [r0]
-_080D4860:
- adds r0, r5, 0
- bl DestroySprite
-_080D4866:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D486C: .4byte gTasks
-_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
-_080D4874: .4byte gSprites
-_080D4878: .4byte sub_80D487C
- thumb_func_end sub_80D47D0
-
- thumb_func_start sub_80D487C
-sub_80D487C: @ 80D487C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D48E8
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080D48E8
- ldr r3, _080D48F0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D48E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D48F0: .4byte gTasks
- thumb_func_end sub_80D487C
-
- thumb_func_start sub_80D48F4
-sub_80D48F4: @ 80D48F4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4978
- adds r5, r1, r0
- ldr r4, _080D497C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D4938
- movs r1, 0x1
-_080D4938:
- strh r1, [r5, 0x16]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D494C
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_080D494C:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, _080D4980
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, _080D4984
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4978: .4byte gTasks
-_080D497C: .4byte gUnknown_0202F7C8
-_080D4980: .4byte 0x0000ffe0
-_080D4984: .4byte sub_80D4988
- thumb_func_end sub_80D48F4
-
- thumb_func_start sub_80D4988
-sub_80D4988: @ 80D4988
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D49AC
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D49A2
- b _080D4AC2
-_080D49A2:
- lsls r0, 2
- ldr r1, _080D49B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D49AC: .4byte gTasks
-_080D49B0: .4byte _080D49B4
- .align 2, 0
-_080D49B4:
- .4byte _080D49D0
- .4byte _080D49E0
- .4byte _080D49FA
- .4byte _080D4A3C
- .4byte _080D4A5E
- .4byte _080D4A8C
- .4byte _080D4AB2
-_080D49D0:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D4AC8
- b _080D4ABA
-_080D49E0:
- adds r0, r4, 0
- bl sub_80D4AD0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D4AC8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D49FA:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D4A38
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _080D4AC8
-_080D4A38:
- strh r2, [r4, 0xA]
- b _080D4ABA
-_080D4A3C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- b _080D4ABA
-_080D4A5E:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D4A8C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AB2:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D4AC8
-_080D4ABA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AC2:
- adds r0, r2, 0
- bl move_anim_task_del
-_080D4AC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4988
-
- thumb_func_start sub_80D4AD0
-sub_80D4AD0: @ 80D4AD0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4B2A
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, _080D4B30
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D4B2A
- ldr r5, _080D4B34
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl sub_80786EC
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080D4B38
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_080D4B2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B30: .4byte gSpriteTemplate_83D9378
-_080D4B34: .4byte gSprites
-_080D4B38: .4byte sub_80D4B3C
- thumb_func_end sub_80D4AD0
-
- thumb_func_start sub_80D4B3C
-sub_80D4B3C: @ 80D4B3C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4B96
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, _080D4B9C
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080D4BA0
- str r0, [r6, 0x1C]
-_080D4B96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B9C: .4byte 0x0000fff0
-_080D4BA0: .4byte sub_80D4BA4
- thumb_func_end sub_80D4B3C
-
- thumb_func_start sub_80D4BA4
-sub_80D4BA4: @ 80D4BA4
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4BE0
- movs r4, 0
- ldr r6, _080D4BE8
-_080D4BB6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, _080D4BEC
- cmp r1, r0
- bne _080D4BD6
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_080D4BD6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080D4BB6
-_080D4BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4BE8: .4byte gTasks
-_080D4BEC: .4byte sub_80D4988
- thumb_func_end sub_80D4BA4
-
- thumb_func_start sub_80D4BF0
-sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, _080D4C14
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D4C10: .4byte gUnknown_03004B00
-_080D4C14: .4byte sub_80D4C18
- thumb_func_end sub_80D4BF0
-
- thumb_func_start sub_80D4C18
-sub_80D4C18: @ 80D4C18
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C5C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4C5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C18
-
- thumb_func_start sub_80D4C64
-sub_80D4C64: @ 80D4C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C9C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D4C9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C64
-
- thumb_func_start sub_80D4CA4
-sub_80D4CA4: @ 80D4CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D4CE0
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, _080D4CE4
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D4CE8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4CE0: .4byte gUnknown_0202F7C9
-_080D4CE4: .4byte gUnknown_03004B00
-_080D4CE8: .4byte sub_80D4CEC
- thumb_func_end sub_80D4CA4
-
- thumb_func_start sub_80D4CEC
-sub_80D4CEC: @ 80D4CEC
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D4D44
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80D4D64
-_080D4D44:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D4D56
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4D56:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4CEC
-
- thumb_func_start sub_80D4D64
-sub_80D4D64: @ 80D4D64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4DF2:
- ldr r0, _080D4E34
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4E38
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4E3C
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _080D4E40
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _080D4E42
- .align 2, 0
-_080D4E34: .4byte gSpriteTemplate_83D9420
-_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gUnknown_0202F7C8
-_080D4E40:
- strh r7, [r4, 0x32]
-_080D4E42:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4DF2
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4E68:
- ldr r0, _080D4EAC
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4EB0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4EB4
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _080D4EB8
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _080D4EBA
- .align 2, 0
-_080D4EAC: .4byte gSpriteTemplate_83D9420
-_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gUnknown_0202F7C8
-_080D4EB8:
- strh r7, [r4, 0x32]
-_080D4EBA:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4E68
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4D64
-
- thumb_func_start sub_80D4ED8
-sub_80D4ED8: @ 80D4ED8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4F0C
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D4F10
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080D4F14
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F0C: .4byte gUnknown_03004B00
-_080D4F10: .4byte move_anim_8072740
-_080D4F14: .4byte sub_8078174
- thumb_func_end sub_80D4ED8
-
- thumb_func_start sub_80D4F18
-sub_80D4F18: @ 80D4F18
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D4F50
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080D4F54
- str r0, [r4, 0x1C]
- ldr r1, _080D4F58
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F50: .4byte gUnknown_03004B00
-_080D4F54: .4byte sub_8078394
-_080D4F58: .4byte move_anim_8072740
- thumb_func_end sub_80D4F18
-
- thumb_func_start sub_80D4F5C
-sub_80D4F5C: @ 80D4F5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D4F90
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D4F98
- ldr r2, _080D4F94
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D4FAE
- .align 2, 0
-_080D4F90: .4byte gUnknown_0202F7C8
-_080D4F94: .4byte gUnknown_03004B00
-_080D4F98:
- ldr r1, _080D4FC4
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
-_080D4FAE:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D4FC8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4FC4: .4byte gUnknown_03004B00
-_080D4FC8: .4byte sub_80D5038
- thumb_func_end sub_80D4F5C
-
- thumb_func_start sub_80D4FCC
-sub_80D4FCC: @ 80D4FCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4FF8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5000
- ldr r2, _080D4FFC
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D5018
- .align 2, 0
-_080D4FF8: .4byte gUnknown_0202F7C8
-_080D4FFC: .4byte gUnknown_03004B00
-_080D5000:
- ldr r1, _080D5030
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
-_080D5018:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D5034
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5030: .4byte gUnknown_03004B00
-_080D5034: .4byte sub_80D5038
- thumb_func_end sub_80D4FCC
-
- thumb_func_start sub_80D5038
-sub_80D5038: @ 80D5038
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _080D505E
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
-_080D505E:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080D5070
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D5070:
- pop {r0}
- bx r0
- thumb_func_end sub_80D5038
-
- thumb_func_start sub_80D5074
-sub_80D5074: @ 80D5074
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D5098
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D50A0
- ldr r0, _080D509C
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D50B2
- .align 2, 0
-_080D5098: .4byte gUnknown_0202F7C8
-_080D509C: .4byte gUnknown_03004B00
-_080D50A0:
- ldr r0, _080D50E0
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- adds r2, r4, 0
- adds r2, 0x43
- movs r1, 0x8
- strb r1, [r2]
-_080D50B2:
- adds r2, r0, 0
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r2, 0xC]
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldr r0, _080D50E4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D50E0: .4byte gUnknown_03004B00
-_080D50E4: .4byte sub_80D50E8
- thumb_func_end sub_80D5074
-
- thumb_func_start sub_80D50E8
-sub_80D50E8: @ 80D50E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5170
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, _080D5154
- cmp r1, r0
- ble _080D5106
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_080D5106:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080D515C
- ldr r2, _080D5158
- b _080D5164
- .align 2, 0
-_080D5154: .4byte 0x00002710
-_080D5158: .4byte 0xffffff00
-_080D515C:
- cmp r0, 0
- bge _080D5168
- movs r2, 0x80
- lsls r2, 1
-_080D5164:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080D5168:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080D5176
-_080D5170:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D5176:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D50E8
-
- thumb_func_start sub_80D517C
-sub_80D517C: @ 80D517C
- push {lr}
- movs r1, 0
- strh r1, [r0, 0x20]
- strh r1, [r0, 0x22]
- movs r1, 0x3C
- strh r1, [r0, 0x2E]
- movs r1, 0x8C
- strh r1, [r0, 0x32]
- movs r1, 0x50
- strh r1, [r0, 0x36]
- ldr r1, _080D51A0
- str r1, [r0, 0x1C]
- ldr r1, _080D51A4
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D51A0: .4byte sub_8078B34
-_080D51A4: .4byte move_anim_8072740
- thumb_func_end sub_80D517C
-
- thumb_func_start sub_80D51A8
-sub_80D51A8: @ 80D51A8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D5200
- ldrb r0, [r5]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080D5204
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D51EE
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080D51E6
- movs r0, 0x3
- bl battle_get_side_with_given_state
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080D51EE
-_080D51E6:
- ldr r1, _080D5208
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D51EE:
- ldr r1, _080D520C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5200: .4byte gUnknown_0202F7C8
-_080D5204: .4byte gUnknown_0202F7C9
-_080D5208: .4byte gUnknown_03004B00
-_080D520C: .4byte sub_8079534
- thumb_func_end sub_80D51A8
-
- thumb_func_start sub_80D5210
-sub_80D5210: @ 80D5210
- ldr r2, _080D5224
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, _080D5228
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D5224: .4byte gUnknown_03004B00
-_080D5228: .4byte sub_8079534
- thumb_func_end sub_80D5210
-
- thumb_func_start sub_80D522C
-sub_80D522C: @ 80D522C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D524C
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, _080D5250
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D524C: .4byte gUnknown_03004B00
-_080D5250: .4byte sub_80D5254
- thumb_func_end sub_80D522C
-
- thumb_func_start sub_80D5254
-sub_80D5254: @ 80D5254
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80D5348
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _080D529E
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D52A4
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D52A8
- str r0, [r5, 0x1C]
-_080D529E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D52A4: .4byte gUnknown_0202F7C9
-_080D52A8: .4byte sub_80D52AC
- thumb_func_end sub_80D5254
-
- thumb_func_start sub_80D52AC
-sub_80D52AC: @ 80D52AC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D52F4
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, _080D52EC
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, _080D52F0
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _080D531E
- .align 2, 0
-_080D52EC: .4byte gUnknown_0202F7C9
-_080D52F0: .4byte sub_80D5324
-_080D52F4:
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Sin
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Cos
- ldrh r1, [r6, 0x26]
- adds r0, r1
- strh r0, [r6, 0x26]
- ldrh r0, [r6, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3C]
-_080D531E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D52AC
-
- thumb_func_start sub_80D5324
-sub_80D5324: @ 80D5324
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D5348
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5340
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5340:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5324
-
- thumb_func_start sub_80D5348
-sub_80D5348: @ 80D5348
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5348
-
- thumb_func_start sub_80D5374
-sub_80D5374: @ 80D5374
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080D53A8
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080D53AC
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D53B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53A8: .4byte gUnknown_03004B00
-_080D53AC: .4byte move_anim_8072740
-_080D53B0: .4byte sub_8078364
- thumb_func_end sub_80D5374
-
- thumb_func_start sub_80D53B4
-sub_80D53B4: @ 80D53B4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D53E8
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D53EC
- str r0, [r4, 0x1C]
- ldr r1, _080D53F0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53E8: .4byte gUnknown_03004B00
-_080D53EC: .4byte sub_80782D8
-_080D53F0: .4byte sub_80D53F4
- thumb_func_end sub_80D53B4
-
- thumb_func_start sub_80D53F4
-sub_80D53F4: @ 80D53F4
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldrh r1, [r0, 0x30]
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- ldr r1, _080D5418
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080D5418: .4byte sub_80D541C
- thumb_func_end sub_80D53F4
-
- thumb_func_start sub_80D541C
-sub_80D541C: @ 80D541C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0xD0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D5468
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5468:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D541C
-
- thumb_func_start sub_80D5470
-sub_80D5470: @ 80D5470
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D54D0
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r2, _080D54D4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x10]
- ldr r0, _080D54D8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D54DC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D54D0: .4byte gTasks
-_080D54D4: .4byte gSprites
-_080D54D8: .4byte gUnknown_0202F7C8
-_080D54DC: .4byte sub_80D54E0
- thumb_func_end sub_80D5470
-
- thumb_func_start sub_80D54E0
-sub_80D54E0: @ 80D54E0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D5508
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D54FC
- b _080D57BA
-_080D54FC:
- lsls r0, 2
- ldr r1, _080D550C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D5508: .4byte gTasks
-_080D550C: .4byte _080D5510
- .align 2, 0
-_080D5510:
- .4byte _080D552C
- .4byte _080D5552
- .4byte _080D5604
- .4byte _080D5664
- .4byte _080D5682
- .4byte _080D5758
- .4byte _080D57AC
-_080D552C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D5552:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D559A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5588
- ldr r2, _080D5584
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- b _080D5598
- .align 2, 0
-_080D5584: .4byte gSprites
-_080D5588:
- ldr r2, _080D55FC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D5600
-_080D5598:
- strh r1, [r0, 0x24]
-_080D559A:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D55C8
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D55C8
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, _080D55FC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_080D55C8:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D55D8
- b _080D57BA
-_080D55D8:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D55FC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D55FC: .4byte gSprites
-_080D5600: .4byte 0x0000fffd
-_080D5604:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D5614
- b _080D57BA
-_080D5614:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D563E
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xF0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- b _080D565E
-_080D563E:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xC0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
-_080D565E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D57A0
-_080D5664:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- cmp r0, 0
- beq _080D5672
- b _080D57BA
-_080D5672:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80D57C4
- b _080D57A0
-_080D5682:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D56D0
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D56BC
- ldr r2, _080D56B8
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- b _080D56CE
- .align 2, 0
-_080D56B8: .4byte gSprites
-_080D56BC:
- ldr r2, _080D5708
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
-_080D56CE:
- strh r1, [r0, 0x26]
-_080D56D0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _080D57BA
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D570C
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xF0
- bl sub_8079C08
- b _080D572A
- .align 2, 0
-_080D5708: .4byte gSprites
-_080D570C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xC0
- bl sub_8079C08
-_080D572A:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5748
- ldr r2, _080D5754
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
-_080D5748:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D5754: .4byte gSprites
-_080D5758:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5774
- ldr r2, _080D57A8
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_080D5774:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D57BA
- ldr r2, _080D57A8
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x22]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- strh r5, [r4, 0xC]
-_080D57A0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D57BA
- .align 2, 0
-_080D57A8: .4byte gSprites
-_080D57AC:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D57BA
- adds r0, r5, 0
- bl move_anim_task_del
-_080D57BA:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D54E0
-
- thumb_func_start sub_80D57C4
-sub_80D57C4: @ 80D57C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r4, 0
- bl sub_80D5940
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, _080D5814
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, _080D5818
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D581C
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _080D5826
- .align 2, 0
-_080D5814: .4byte gSprites
-_080D5818: .4byte gUnknown_0202F7C8
-_080D581C:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_080D5826:
- movs r6, 0
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x8]
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x4]
- ldr r2, _080D58E0
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_080D5844:
- ldr r0, _080D58E4
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- ldr r3, [sp, 0x4]
- asrs r2, r3, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D58C6
- ldr r1, _080D58E8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- lsls r0, r5, 2
- adds r0, 0x40
- adds r1, r0
- ldr r3, _080D58EC
- adds r0, r3, 0
- ands r1, r0
- ldr r3, _080D58F0
- adds r0, r3, 0
- ands r2, r0
- orrs r2, r1
- strh r2, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080D588E
- movs r5, 0
-_080D588E:
- lsls r2, r6, 2
- mov r1, r9
- adds r0, r2, r1
- ldrh r0, [r0]
- ldr r3, [sp]
- adds r1, r0, 0
- muls r1, r3
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080D58F4
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_80D5994
- strh r7, [r4, 0x3A]
- mov r0, r8
- strh r0, [r4, 0x3C]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- add r0, r10
- ldr r1, _080D58F8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_080D58C6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _080D5844
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D58E0: .4byte gUnknown_083D96DC
-_080D58E4: .4byte gSpriteTemplate_83D96C4
-_080D58E8: .4byte gSprites
-_080D58EC: .4byte 0x000003ff
-_080D58F0: .4byte 0xfffffc00
-_080D58F4: .4byte gUnknown_083D96DC + 0x2
-_080D58F8: .4byte gUnknown_03004B28
- thumb_func_end sub_80D57C4
-
- thumb_func_start sub_80D58FC
-sub_80D58FC: @ 80D58FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D59B0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D5936
- ldr r3, _080D593C
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D5936:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D593C: .4byte gTasks
- thumb_func_end sub_80D58FC
-
- thumb_func_start sub_80D5940
-sub_80D5940: @ 80D5940
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D5978
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x26]
- ldrh r0, [r1, 0x22]
- adds r2, r0
- adds r1, 0x29
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080D597C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D5980
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _080D5986
- .align 2, 0
-_080D5978: .4byte gSprites
-_080D597C: .4byte gUnknown_0202F7C8
-_080D5980:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_080D5986:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80D5940
-
- thumb_func_start sub_80D5994
-sub_80D5994: @ 80D5994
- movs r3, 0
- strh r3, [r0, 0x2E]
- strh r3, [r0, 0x30]
- ldrh r3, [r0, 0x20]
- lsls r3, 3
- strh r3, [r0, 0x32]
- ldrh r3, [r0, 0x22]
- lsls r3, 3
- strh r3, [r0, 0x34]
- lsls r1, 3
- strh r1, [r0, 0x36]
- lsls r2, 3
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_80D5994
-
- thumb_func_start sub_80D59B0
-sub_80D59B0: @ 80D59B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D59DA
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r3, [r2, 0x34]
- adds r0, r3
- strh r0, [r2, 0x34]
-_080D59DA:
- ldrh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r1, 16
- asrs r3, r1, 19
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D5A10
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D5A10
- cmp r1, 0x78
- ble _080D5A1C
-_080D5A10:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080D5A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_80D59B0
-
- thumb_func_start sub_80D5A20
-sub_80D5A20: @ 80D5A20
- push {r4,r5,lr}
- ldr r3, _080D5A64
- ldrh r1, [r3]
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x32]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0x3A]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x3C]
- ldrh r4, [r0, 0x4]
- lsls r2, r4, 22
- lsrs r2, 22
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r1, 4
- adds r2, r1
- ldr r3, _080D5A68
- adds r1, r3, 0
- ands r2, r1
- ldr r1, _080D5A6C
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, _080D5A70
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5A64: .4byte gUnknown_03004B00
-_080D5A68: .4byte 0x000003ff
-_080D5A6C: .4byte 0xfffffc00
-_080D5A70: .4byte sub_80D5A74
- thumb_func_end sub_80D5A20
-
- thumb_func_start sub_80D5A74
-sub_80D5A74: @ 80D5A74
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080D5AA6
- cmp r0, 0x1
- bgt _080D5A8A
- cmp r0, 0
- beq _080D5A90
- b _080D5B04
-_080D5A8A:
- cmp r0, 0x2
- beq _080D5AC4
- b _080D5B04
-_080D5A90:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080D5AA0
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _080D5B04
-_080D5AA0:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080D5AA6:
- ldrh r0, [r2, 0x22]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x3C]
- movs r4, 0x3C
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080D5B04
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _080D5B04
-_080D5AC4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5AF0
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5AEC
- ldr r0, _080D5AE8
- b _080D5AEE
- .align 2, 0
-_080D5AE8: .4byte 0x0000fffd
-_080D5AEC:
- movs r0, 0x3
-_080D5AEE:
- strh r0, [r2, 0x26]
-_080D5AF0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D5B04
- adds r0, r2, 0
- bl move_anim_8072740
-_080D5B04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5A74
-
- thumb_func_start sub_80D5B0C
-sub_80D5B0C: @ 80D5B0C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D5B80
- cmp r0, 0x1
- bgt _080D5B22
- cmp r0, 0
- beq _080D5B28
- b _080D5C4E
-_080D5B22:
- cmp r0, 0x2
- beq _080D5BDE
- b _080D5C4E
-_080D5B28:
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080D5B50
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, _080D5B54
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5B58
- movs r0, 0x4
- b _080D5B5A
- .align 2, 0
-_080D5B50: .4byte gUnknown_03004B00
-_080D5B54: .4byte gUnknown_0202F7C8
-_080D5B58:
- ldr r0, _080D5B78
-_080D5B5A:
- strh r0, [r5, 0x36]
- ldr r0, _080D5B7C
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080D5BD6
- .align 2, 0
-_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gUnknown_0202F7C9
-_080D5B80:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, _080D5BA0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5BA4
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _080D5BAA
- .align 2, 0
-_080D5BA0: .4byte gUnknown_0202F7C8
-_080D5BA4:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_080D5BAA:
- strh r0, [r5, 0x26]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D5C4E
- movs r0, 0
- strh r0, [r5, 0x34]
-_080D5BD6:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D5C4E
-_080D5BDE:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- adds r2, r0, 0
- movs r3, 0
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5C4E
- ldrh r0, [r5, 0x20]
- adds r1, r2, r0
- strh r1, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r3, [r5, 0x26]
- strh r3, [r5, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D5C54
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080D5C58
- str r0, [r5, 0x1C]
-_080D5C4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5C54: .4byte gUnknown_0202F7C9
-_080D5C58: .4byte sub_80D5C5C
- thumb_func_end sub_80D5B0C
-
- thumb_func_start sub_80D5C5C
-sub_80D5C5C: @ 80D5C5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D5CB4
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080D5C92
- cmp r2, 0xC4
- ble _080D5CBA
-_080D5C92:
- lsls r0, 16
- cmp r0, 0
- ble _080D5CBA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D5CBA
- ldr r0, _080D5CB0
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x90
- bl PlaySE12WithPanning
- b _080D5CBA
- .align 2, 0
-_080D5CB0: .4byte gUnknown_0202F7D2
-_080D5CB4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5C5C
-
- thumb_func_start sub_80D5CC0
-sub_80D5CC0: @ 80D5CC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D5CD8
- ldr r0, _080D5D4C
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_080D5CD8:
- movs r0, 0xC0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0xA0
- strh r0, [r4, 0x36]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x36]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x7
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- ldr r0, _080D5D50
- ldr r1, _080D5D54
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D5D84
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D5C
- ldr r0, _080D5D58
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D4C: .4byte gUnknown_03004B00
-_080D5D50: .4byte gMain
-_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gUnknown_0202F7C9
-_080D5D5C:
- ldr r0, _080D5D80
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D80: .4byte gUnknown_0202F7C9
-_080D5D84:
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D98
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _080D5D9E
-_080D5D98:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_080D5D9E:
- strb r0, [r1]
-_080D5DA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D5DC8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D5DC8:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _080D5DD6
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5DD6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5CC0
-
- thumb_func_start sub_80D5DDC
-sub_80D5DDC: @ 80D5DDC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D5E3C
- adds r4, r1, r0
- ldr r0, _080D5E40
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D5E02
- movs r1, 0x1
-_080D5E02:
- strh r1, [r4, 0x20]
- ldr r0, _080D5E44
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D5E48
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gUnknown_0202F7C8
-_080D5E44: .4byte gUnknown_0202F7C9
-_080D5E48: .4byte sub_80D5E4C
- thumb_func_end sub_80D5DDC
-
- thumb_func_start sub_80D5E4C
-sub_80D5E4C: @ 80D5E4C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D5E70
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _080D5F14
- cmp r3, 0x1
- bgt _080D5E74
- cmp r3, 0
- beq _080D5E82
- b _080D6074
- .align 2, 0
-_080D5E70: .4byte gTasks
-_080D5E74:
- cmp r3, 0x2
- bne _080D5E7A
- b _080D5F9C
-_080D5E7A:
- cmp r3, 0x3
- bne _080D5E80
- b _080D6030
-_080D5E80:
- b _080D6074
-_080D5E82:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5EB4
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5EB0
- movs r0, 0x2
- b _080D5EB2
-_080D5EB0:
- ldr r0, _080D5F0C
-_080D5EB2:
- strh r0, [r2, 0x1E]
-_080D5EB4:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5EF6
- ldr r4, _080D5F10
- adds r3, r2, 0
- adds r3, 0x8
-_080D5EC6:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5EC6
-_080D5EF6:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080D5F06
- b _080D6074
-_080D5F06:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F0C: .4byte 0x0000fffe
-_080D5F10: .4byte gSprites
-_080D5F14:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D5F3C
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ands r0, r3
- lsls r0, 16
- cmp r0, 0
- beq _080D5F38
- movs r0, 0x2
- b _080D5F3A
-_080D5F38:
- ldr r0, _080D5F94
-_080D5F3A:
- strh r0, [r2, 0x1E]
-_080D5F3C:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5F7E
- ldr r4, _080D5F98
- adds r3, r2, 0
- adds r3, 0x8
-_080D5F4E:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5F4E
-_080D5F7E:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _080D6074
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F94: .4byte 0x0000fffe
-_080D5F98: .4byte gSprites
-_080D5F9C:
- movs r7, 0x20
- ldrsh r1, [r2, r7]
- lsls r1, 1
- ldrh r0, [r2, 0x1C]
- subs r0, r1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5FD0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5FCC
- strh r3, [r2, 0x1E]
- b _080D5FD0
-_080D5FCC:
- ldr r0, _080D6028
- strh r0, [r2, 0x1E]
-_080D5FD0:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D6012
- ldr r4, _080D602C
- adds r3, r2, 0
- adds r3, 0x8
-_080D5FE2:
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D5FE2
-_080D6012:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080D6074
-_080D6020:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080D6074
- .align 2, 0
-_080D6028: .4byte 0x0000fffe
-_080D602C: .4byte gSprites
-_080D6030:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D606E
- ldr r6, _080D607C
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_080D6044:
- movs r7, 0xE
- ldrsh r0, [r2, r7]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D6044
-_080D606E:
- adds r0, r4, 0
- bl move_anim_task_del
-_080D6074:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D607C: .4byte gSprites
- thumb_func_end sub_80D5E4C
-
- thumb_func_start sub_80D6080
-sub_80D6080: @ 80D6080
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_8078914
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, _080D60B0
- ldrb r2, [r1]
- ldrh r3, [r1, 0x2]
- movs r1, 0x10
- bl BlendPalette
- adds r0, r4, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D60B0: .4byte gUnknown_03004B00
- thumb_func_end sub_80D6080
-
- thumb_func_start sub_80D60B4
-sub_80D60B4: @ 80D60B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080D610C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r9, r1
- ldr r4, _080D6110
- mov r8, r4
- cmp r0, 0
- bne _080D60EA
- ldrh r0, [r4]
- strh r0, [r2, 0xA]
- ldrh r0, [r4, 0x2]
- strh r0, [r2, 0xC]
- ldrh r0, [r4, 0x4]
- strh r0, [r2, 0xE]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x10]
-_080D60EA:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _080D6114
- ldr r0, _080D6118
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080D6120
- ldr r4, _080D611C
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _080D6126
- .align 2, 0
-_080D610C: .4byte gTasks
-_080D6110: .4byte gUnknown_03004B00
-_080D6114: .4byte gUnknown_02024BE0
-_080D6118: .4byte gUnknown_0202F7C9
-_080D611C: .4byte gUnknown_083D9794
-_080D6120:
- ldr r4, _080D616C
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_080D6126:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r0, r4
- ldrb r5, [r0]
- lsls r0, r7, 2
- adds r1, r0, r7
- lsls r1, 3
- add r1, r9
- movs r4, 0xE
- ldrsh r1, [r1, r4]
- mov r12, r0
- cmp r1, 0x1
- bne _080D6174
- ldr r2, _080D6170
- lsls r3, r6, 4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- mov r10, r0
- mov r0, r8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r5, 24
- asrs r0, 24
- muls r0, r1
- cmp r0, 0
- bge _080D6164
- negs r0, r0
-_080D6164:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _080D618E
- .align 2, 0
-_080D616C: .4byte gUnknown_083D97A4
-_080D6170: .4byte gSprites
-_080D6174:
- ldr r3, _080D61C4
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- lsls r0, r5, 24
- asrs r0, 24
- mov r5, r8
- ldrh r1, [r5, 0x2]
- muls r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_080D618E:
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r9
- movs r4, 0x8
- ldrsh r1, [r0, r4]
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080D61B4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_080D61B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D61C4: .4byte gSprites
- thumb_func_end sub_80D60B4
-
- thumb_func_start sub_80D61C8
-sub_80D61C8: @ 80D61C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D61E8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D61F0
- ldr r0, _080D61EC
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D61FC
- .align 2, 0
-_080D61E8: .4byte gUnknown_0202F7C8
-_080D61EC: .4byte gUnknown_03004B00
-_080D61F0:
- ldr r1, _080D6210
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080D61FC:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080D6214
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6210: .4byte gUnknown_03004B00
-_080D6214: .4byte sub_80D6218
- thumb_func_end sub_80D61C8
-
- thumb_func_start sub_80D6218
-sub_80D6218: @ 80D6218
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D622E
- adds r0, r2, 0
- bl move_anim_8072740
-_080D622E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6218
-
- thumb_func_start sub_80D6234
-sub_80D6234: @ 80D6234
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D6254
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D625C
- ldr r0, _080D6258
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080D6266
- .align 2, 0
-_080D6254: .4byte gUnknown_0202F7C8
-_080D6258: .4byte gUnknown_03004B00
-_080D625C:
- ldr r0, _080D6270
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080D6266:
- ldr r0, _080D6274
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6270: .4byte gUnknown_03004B00
-_080D6274: .4byte sub_80D6278
- thumb_func_end sub_80D6234
-
- thumb_func_start sub_80D6278
-sub_80D6278: @ 80D6278
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D628E
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D628E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6278
-
- thumb_func_start sub_80D6294
-sub_80D6294: @ 80D6294
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D62D8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D62DC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D62E4
- ldr r2, _080D62E0
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x22]
- b _080D62F8
- .align 2, 0
-_080D62D8: .4byte gUnknown_0202F7C9
-_080D62DC: .4byte gUnknown_0202F7C8
-_080D62E0: .4byte gUnknown_03004B00
-_080D62E4:
- ldr r0, _080D631C
- ldrh r1, [r0]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r2, [r5, 0x22]
- adds r1, r2
- strh r1, [r5, 0x22]
- adds r2, r0, 0
-_080D62F8:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080D6320
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6324
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D631C: .4byte gUnknown_03004B00
-_080D6320: .4byte move_anim_8074EE0
-_080D6324: .4byte sub_8078114
- thumb_func_end sub_80D6294
-
- thumb_func_start sub_80D6328
-sub_80D6328: @ 80D6328
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D6340
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080D63A0
- cmp r0, 0x1
- bgt _080D6344
- cmp r0, 0
- beq _080D634E
- b _080D63A0
- .align 2, 0
-_080D6340: .4byte gUnknown_03004B00
-_080D6344:
- cmp r0, 0x2
- beq _080D6358
- cmp r0, 0x3
- beq _080D637C
- b _080D63A0
-_080D634E:
- ldr r0, _080D6354
- b _080D63A2
- .align 2, 0
-_080D6354: .4byte gUnknown_0202F7C8
-_080D6358:
- ldr r4, _080D6370
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080D6374
- ldrb r4, [r4]
- b _080D63A4
- .align 2, 0
-_080D6370: .4byte gUnknown_0202F7C8
-_080D6374:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _080D63A4
-_080D637C:
- ldr r0, _080D6398
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D63A0
- ldr r0, _080D639C
- ldrb r0, [r0]
- eors r4, r0
- b _080D63A4
- .align 2, 0
-_080D6398: .4byte gUnknown_0202F7C8
-_080D639C: .4byte gUnknown_0202F7C9
-_080D63A0:
- ldr r0, _080D63C4
-_080D63A2:
- ldrb r4, [r0]
-_080D63A4:
- ldr r0, _080D63C8
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D63CC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _080D63DE
- .align 2, 0
-_080D63C4: .4byte gUnknown_0202F7C9
-_080D63C8: .4byte gUnknown_03004B00
-_080D63CC:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_080D63DE:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, _080D647C
- ldr r6, _080D6480
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r1, [r6, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D6442
- adds r0, r4, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
-_080D6442:
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- ldr r3, _080D6484
- lsls r2, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D6488
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D647C: .4byte gSineTable
-_080D6480: .4byte gUnknown_03004B00
-_080D6484: .4byte gOamMatrices
-_080D6488: .4byte sub_80DA48C
- thumb_func_end sub_80D6328
-
- thumb_func_start sub_80D648C
-sub_80D648C: @ 80D648C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D6500
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, _080D6504
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6508
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D650C
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, _080D6510
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6500: .4byte gUnknown_03004B00
-_080D6504: .4byte gUnknown_0202F7C9
-_080D6508: .4byte 0x000003ff
-_080D650C: .4byte 0xfffffc00
-_080D6510: .4byte sub_80D6514
- thumb_func_end sub_80D648C
-
- thumb_func_start sub_80D6514
-sub_80D6514: @ 80D6514
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D657E
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D6584
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080D6584
-_080D657E:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6584:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6514
-
- thumb_func_start sub_80D658C
-sub_80D658C: @ 80D658C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x38]
- subs r0, 0x1
- strh r0, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D65C4
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x36]
- strh r0, [r3, 0x38]
-_080D65C4:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080D65D6
- adds r0, r3, 0
- bl move_anim_8072740
-_080D65D6:
- pop {r0}
- bx r0
- thumb_func_end sub_80D658C
-
- thumb_func_start sub_80D65DC
-sub_80D65DC: @ 80D65DC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D6644
- ldr r1, _080D6648
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D65FE
- ldr r0, _080D664C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D6606
-_080D65FE:
- ldr r1, _080D6650
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D6606:
- ldr r5, _080D664C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6650
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4]
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x36]
- strh r0, [r6, 0x38]
- ldr r0, _080D6654
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6644: .4byte gMain
-_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gUnknown_0202F7C9
-_080D6650: .4byte gUnknown_03004B00
-_080D6654: .4byte sub_80D658C
- thumb_func_end sub_80D65DC
-
- thumb_func_start sub_80D6658
-sub_80D6658: @ 80D6658
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080D6674
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D667C
- ldr r0, _080D6678
- b _080D667E
- .align 2, 0
-_080D6674: .4byte gUnknown_03004B00
-_080D6678: .4byte gUnknown_0202F7C9
-_080D667C:
- ldr r0, _080D670C
-_080D667E:
- ldrb r6, [r0]
- ldr r0, _080D6710
- ldr r3, _080D6714
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D669C
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D66A4
-_080D669C:
- ldr r1, _080D6718
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D66A4:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6718
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x2]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, _080D671C
- ands r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x3C]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6720
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D6724
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _080D6728
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D670C: .4byte gUnknown_0202F7C8
-_080D6710: .4byte gMain
-_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gUnknown_03004B00
-_080D671C: .4byte 0x00007fff
-_080D6720: .4byte 0x000003ff
-_080D6724: .4byte 0xfffffc00
-_080D6728: .4byte sub_80D672C
- thumb_func_end sub_80D6658
-
- thumb_func_start sub_80D672C
-sub_80D672C: @ 80D672C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _080D6782
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D6782:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080D6794
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6794:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D672C
-
- thumb_func_start sub_80D679C
-sub_80D679C: @ 80D679C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D67D8
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, _080D67DC
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _080D67E0
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080D67E4
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _080D67F2
- .align 2, 0
-_080D67D8: .4byte gUnknown_03004B00
-_080D67DC: .4byte 0x000003ff
-_080D67E0: .4byte 0xfffffc00
-_080D67E4:
- cmp r0, 0x2
- bne _080D67F6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_080D67F2:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_080D67F6:
- ldr r0, _080D6810
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D6814
- str r0, [r4, 0x1C]
- ldr r1, _080D6818
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6810: .4byte gUnknown_03004B00
-_080D6814: .4byte sub_80782D8
-_080D6818: .4byte move_anim_8072740
- thumb_func_end sub_80D679C
-
- thumb_func_start sub_80D681C
-sub_80D681C: @ 80D681C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080D6864
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080D6868
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, _080D686C
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080D6870
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6864: .4byte gUnknown_0202F7C9
-_080D6868: .4byte gTasks
-_080D686C: .4byte gUnknown_03004B00
-_080D6870: .4byte sub_80D6874
- thumb_func_end sub_80D681C
-
- thumb_func_start sub_80D6874
-sub_80D6874: @ 80D6874
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- movs r7, 0
- ldr r1, _080D68B4
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0xC]
- str r2, [sp]
- ldrh r4, [r0, 0x8]
- ldrh r6, [r0, 0xA]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0
- bne _080D68B8
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _080D68C2
- .align 2, 0
-_080D68B4: .4byte gTasks
-_080D68B8:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_080D68C2:
- mov r0, r9
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- add r0, r10
- movs r3, 0x1C
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0xA
- bhi _080D69B8
- lsls r0, 2
- ldr r1, _080D68E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D68E0: .4byte _080D68E4
- .align 2, 0
-_080D68E4:
- .4byte _080D6910
- .4byte _080D69B8
- .4byte _080D6924
- .4byte _080D69B8
- .4byte _080D6944
- .4byte _080D69B8
- .4byte _080D695A
- .4byte _080D69B8
- .4byte _080D697C
- .4byte _080D69B8
- .4byte _080D69B0
-_080D6910:
- ldr r0, _080D6920
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _080D6992
- .align 2, 0
-_080D6920: .4byte gSpriteTemplate_83D9938
-_080D6924:
- mov r0, r12
- lsls r3, r0, 17
- mov r1, r8
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6940
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6940: .4byte gSpriteTemplate_83D9938
-_080D6944:
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- lsls r3, r0, 1
- adds r3, r0
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _080D6986
-_080D695A:
- mov r0, r12
- lsls r3, r0, 18
- lsls r0, r2, 1
- adds r0, r2
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6978
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6978: .4byte gSpriteTemplate_83D9938
-_080D697C:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_080D6986:
- ldr r0, _080D69AC
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_080D6992:
- asrs r3, 16
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _080D69B8
- .align 2, 0
-_080D69AC: .4byte gSpriteTemplate_83D9938
-_080D69B0:
- mov r0, r9
- bl move_anim_task_del
- b _080D69FC
-_080D69B8:
- cmp r7, 0
- beq _080D69EC
- ldr r4, _080D6A0C
- lsls r3, r5, 4
- adds r3, r5
- lsls r3, 2
- adds r0, r3, r4
- ldrh r5, [r0, 0x4]
- lsls r2, r5, 22
- lsrs r2, 22
- add r2, r8
- ldr r6, _080D6A10
- adds r1, r6, 0
- ands r2, r1
- ldr r1, _080D6A14
- ands r1, r5
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- adds r4, 0x1C
- adds r3, r4
- ldr r1, [r3]
- bl _call_via_r1
-_080D69EC:
- ldr r0, _080D6A18
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_080D69FC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6A0C: .4byte gSprites
-_080D6A10: .4byte 0x000003ff
-_080D6A14: .4byte 0xfffffc00
-_080D6A18: .4byte gTasks
- thumb_func_end sub_80D6874
-
- thumb_func_start sub_80D6A1C
-sub_80D6A1C: @ 80D6A1C
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D6A3E
- ldrb r1, [r3, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r2, r0
- strb r2, [r3, 0x3]
- b _080D6A52
-_080D6A3E:
- ldrb r2, [r3, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r3, 0x3]
-_080D6A52:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _080D6A66
- adds r0, r3, 0
- bl DestroySprite
-_080D6A66:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6A1C
-
- thumb_func_start sub_80D6A6C
-sub_80D6A6C: @ 80D6A6C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080D6AD4
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- ldr r0, _080D6AD8
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- movs r7, 0x22
- ldrsh r2, [r4, r7]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D6ADC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r6, r2, r3
- ldrh r5, [r6, 0x4]
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r7, _080D6AE0
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080D6AE4
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080D6AE8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080D6AEC
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6AD4: .4byte gUnknown_03004B00
-_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
-_080D6ADC: .4byte gSprites
-_080D6AE0: .4byte 0x000003ff
-_080D6AE4: .4byte 0xfffffc00
-_080D6AE8: .4byte gUnknown_0202F7B2
-_080D6AEC: .4byte sub_80D6AF0
- thumb_func_end sub_80D6A6C
-
- thumb_func_start sub_80D6AF0
-sub_80D6AF0: @ 80D6AF0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080D6B24
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080D6B24:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D6B38
- adds r0, r3, 0
- bl move_anim_8072740
-_080D6B38:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6AF0
-
- thumb_func_start sub_80D6B3C
-sub_80D6B3C: @ 80D6B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D6B5C
- adds r5, r1, r0
- ldr r0, _080D6B60
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6B68
- ldr r4, _080D6B64
- b _080D6B6A
- .align 2, 0
-_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gUnknown_03004B00
-_080D6B64: .4byte gUnknown_0202F7C8
-_080D6B68:
- ldr r4, _080D6BAC
-_080D6B6A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, _080D6BB0
- ldrh r0, [r2, 0x2]
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- strh r1, [r5, 0x18]
- strh r1, [r5, 0x1A]
- strh r1, [r5, 0x1C]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x22]
- ldr r0, _080D6BB4
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6BAC: .4byte gUnknown_0202F7C9
-_080D6BB0: .4byte gUnknown_03004B00
-_080D6BB4: .4byte sub_80D6BB8
- thumb_func_end sub_80D6B3C
-
- thumb_func_start sub_80D6BB8
-sub_80D6BB8: @ 80D6BB8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r2, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D6CA0
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D6CB8
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- cmp r0, r1
- ble _080D6CC6
- strh r7, [r5, 0x20]
- ldr r0, _080D6CA4
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- movs r3, 0x26
- ldrsh r2, [r5, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D6CC6
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080D6CA8
- adds r4, r0
- ldr r1, _080D6CAC
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D6CB0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6CB4
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080D6C70
- strh r7, [r5, 0x1A]
-_080D6C70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D6C92
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _080D6C92
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_080D6C92:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _080D6CC6
- .align 2, 0
-_080D6CA0: .4byte gTasks
-_080D6CA4: .4byte gSpriteTemplate_83D99B8
-_080D6CA8: .4byte gSprites
-_080D6CAC: .4byte gUnknown_083D9968
-_080D6CB0: .4byte sub_80D6D00
-_080D6CB4: .4byte sub_8078600
-_080D6CB8:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D6CC6
- adds r0, r2, 0
- bl move_anim_task_del
-_080D6CC6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6BB8
-
- thumb_func_start sub_80D6CCC
-sub_80D6CCC: @ 80D6CCC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D6CF4
- ldr r2, _080D6CFC
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x16]
- subs r1, 0x1
- strh r1, [r0, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080D6CF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6CFC: .4byte gTasks
- thumb_func_end sub_80D6CCC
-
- thumb_func_start sub_80D6D00
-sub_80D6D00: @ 80D6D00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D6D14
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D14: .4byte sub_80D6CCC
- thumb_func_end sub_80D6D00
-
- thumb_func_start sub_80D6D18
-sub_80D6D18: @ 80D6D18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D2C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D34
- ldr r4, _080D6D30
- b _080D6D36
- .align 2, 0
-_080D6D2C: .4byte gUnknown_03004B00
-_080D6D30: .4byte gUnknown_0202F7C8
-_080D6D34:
- ldr r4, _080D6D64
-_080D6D36:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6D68
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6D6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D64: .4byte gUnknown_0202F7C9
-_080D6D68: .4byte move_anim_8074EE0
-_080D6D6C: .4byte sub_80785E4
- thumb_func_end sub_80D6D18
-
- thumb_func_start sub_80D6D70
-sub_80D6D70: @ 80D6D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D84
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D8C
- ldr r4, _080D6D88
- b _080D6D8E
- .align 2, 0
-_080D6D84: .4byte gUnknown_03004B00
-_080D6D88: .4byte gUnknown_0202F7C8
-_080D6D8C:
- ldr r4, _080D6DC8
-_080D6D8E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6DCC
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, _080D6DD0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6DD4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6DC8: .4byte gUnknown_0202F7C9
-_080D6DCC: .4byte gUnknown_03004B00
-_080D6DD0: .4byte move_anim_8072740
-_080D6DD4: .4byte sub_8078600
- thumb_func_end sub_80D6D70
-
- thumb_func_start sub_80D6DD8
-sub_80D6DD8: @ 80D6DD8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, _080D6E30
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D6E26
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_080D6E26:
- ldr r0, _080D6E34
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E30: .4byte gUnknown_0202F7C8
-_080D6E34: .4byte sub_80D6E38
- thumb_func_end sub_80D6DD8
-
- thumb_func_start sub_80D6E38
-sub_80D6E38: @ 80D6E38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D6E4A
- cmp r0, 0x1
- beq _080D6E60
- b _080D6E90
-_080D6E4A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D6E90
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D6E90
-_080D6E60:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, _080D6E98
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- ldrh r0, [r4, 0x20]
- adds r0, 0x50
- lsls r0, 16
- movs r1, 0xC8
- lsls r1, 17
- cmp r0, r1
- bls _080D6E90
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D6E90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E98: .4byte gSprites
- thumb_func_end sub_80D6E38
-
- thumb_func_start sub_80D6E9C
-sub_80D6E9C: @ 80D6E9C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080D6EC0
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D6F30
- cmp r0, 0x1
- bgt _080D6EC4
- cmp r0, 0
- beq _080D6ED0
- b _080D7000
- .align 2, 0
-_080D6EC0: .4byte gTasks
-_080D6EC4:
- cmp r0, 0x2
- beq _080D6F8C
- cmp r0, 0x3
- bne _080D6ECE
- b _080D6FE0
-_080D6ECE:
- b _080D7000
-_080D6ED0:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, _080D6F04
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D6F0C
- ldr r0, _080D6F08
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _080D6F12
- .align 2, 0
-_080D6F04: .4byte gUnknown_0202F7C8
-_080D6F08: .4byte 0x0000ffe0
-_080D6F0C:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, _080D6F28
-_080D6F12:
- strh r0, [r5, 0x22]
- ldr r2, _080D6F2C
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r5, 0x24]
- strh r1, [r0, 0x24]
- b _080D6FD2
- .align 2, 0
-_080D6F28: .4byte 0x0000fffe
-_080D6F2C: .4byte gSprites
-_080D6F30:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, _080D6F88
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r1, [r5, 0x24]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D6FD2
- ldrh r2, [r5, 0x22]
- adds r2, r1, r2
- strh r2, [r5, 0x24]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- b _080D7000
- .align 2, 0
-_080D6F88: .4byte gSprites
-_080D6F8C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, _080D6FDC
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080D7000
-_080D6FD2:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D7000
- .align 2, 0
-_080D6FDC: .4byte gSprites
-_080D6FE0:
- ldr r2, _080D7008
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- bl move_anim_task_del
-_080D7000:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7008: .4byte gSprites
- thumb_func_end sub_80D6E9C
-
- thumb_func_start sub_80D700C
-sub_80D700C: @ 80D700C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D7030
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7026
- b _080D714C
-_080D7026:
- cmp r0, 0x1
- bgt _080D7034
- cmp r0, 0
- beq _080D703C
- b _080D718E
- .align 2, 0
-_080D7030: .4byte gTasks
-_080D7034:
- cmp r0, 0x2
- bne _080D703A
- b _080D7180
-_080D703A:
- b _080D718E
-_080D703C:
- ldr r4, _080D707C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D7052
- movs r1, 0x1
-_080D7052:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, _080D7080
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _080D7088
- cmp r2, 0x4
- beq _080D70B0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D70E8
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, _080D7084
- b _080D70F0
- .align 2, 0
-_080D707C: .4byte gUnknown_0202F7C8
-_080D7080: .4byte gUnknown_03004B00
-_080D7084: .4byte 0x0000fff0
-_080D7088:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 7
- adds r0, 0x78
- strh r0, [r5, 0x10]
- b _080D7126
-_080D70B0:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, _080D70E4
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _080D7126
- .align 2, 0
-_080D70E4: .4byte gUnknown_0202F7C9
-_080D70E8:
- ldr r0, _080D710C
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_080D70F0:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7110
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0x50
- subs r0, r1
- strh r0, [r5, 0x12]
- b _080D7126
- .align 2, 0
-_080D710C: .4byte 0x0000fff0
-_080D7110:
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x28
- strh r0, [r5, 0x12]
- ldrh r1, [r5, 0xE]
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
-_080D7126:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _080D713C
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _080D7178
-_080D713C:
- ldr r0, _080D7148
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _080D7178
- .align 2, 0
-_080D7148: .4byte 0x0000ffff
-_080D714C:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _080D718E
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- bne _080D7178
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- beq _080D718E
-_080D7178:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D718E
-_080D7180:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D718E
- adds r0, r4, 0
- bl move_anim_task_del
-_080D718E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D700C
-
- thumb_func_start sub_80D7194
-sub_80D7194: @ 80D7194
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7220
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r3, 0x12
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D71CA
- ldr r1, _080D7224
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x3A]
- movs r1, 0x7
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080D71CA:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _080D71DC
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_080D71DC:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080D71E8
- movs r0, 0
- strh r0, [r4, 0x14]
-_080D71E8:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- lsls r0, 4
- ldrh r5, [r4, 0xE]
- adds r2, r0, r5
- strh r2, [r4, 0xE]
- lsls r0, r1, 16
- asrs r3, r0, 16
- cmp r3, 0x1
- bne _080D7208
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _080D721C
-_080D7208:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080D7228
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _080D7228
-_080D721C:
- movs r0, 0x1
- b _080D722A
- .align 2, 0
-_080D7220: .4byte gSpriteTemplate_83D9B10
-_080D7224: .4byte gSprites
-_080D7228:
- movs r0, 0
-_080D722A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7194
-
- thumb_func_start sub_80D7230
-sub_80D7230: @ 80D7230
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7270
- ldr r3, _080D7278
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D7270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7278: .4byte gTasks
- thumb_func_end sub_80D7230
-
- thumb_func_start sub_80D727C
-sub_80D727C: @ 80D727C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D728E
- cmp r0, 0x1
- beq _080D72C0
- b _080D72D4
-_080D728E:
- ldr r4, _080D72BC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D72D4
- .align 2, 0
-_080D72BC: .4byte gUnknown_0202F7C8
-_080D72C0:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D72D4
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080D72D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D727C
-
- thumb_func_start sub_80D72DC
-sub_80D72DC: @ 80D72DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D7300
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080D72F6
- b _080D7468
-_080D72F6:
- lsls r0, 2
- ldr r1, _080D7304
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D7300: .4byte gTasks
-_080D7304: .4byte _080D7308
- .align 2, 0
-_080D7308:
- .4byte _080D731C
- .4byte _080D73AC
- .4byte _080D73E8
- .4byte _080D7444
- .4byte _080D7454
-_080D731C:
- ldr r4, _080D73A0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, _080D73A4
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- movs r2, 0x14
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x5
- bl __divsi3
- strh r0, [r5, 0x1A]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D73A8
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x22]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x24]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- b _080D7466
- .align 2, 0
-_080D73A0: .4byte gUnknown_0202F7C8
-_080D73A4: .4byte gUnknown_0202F7C9
-_080D73A8: .4byte 0x0000ffff
-_080D73AC:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _080D73DC
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7470
- lsls r0, 24
- cmp r0, 0
- beq _080D73DC
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _080D73D6
- movs r0, 0x3
- b _080D73DA
-_080D73D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_080D73DA:
- strh r0, [r5, 0x8]
-_080D73DC:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7468
- b _080D745E
-_080D73E8:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D73F6
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_080D73F6:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D7468
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080D7422
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _080D7432
-_080D7422:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D7440
- strh r0, [r5, 0x12]
-_080D7432:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D7464
- movs r0, 0x4
- b _080D7466
- .align 2, 0
-_080D7440: .4byte 0x0000ffff
-_080D7444:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7468
- adds r0, r2, 0
- bl move_anim_task_del
- b _080D7468
-_080D7454:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7464
-_080D745E:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _080D7468
-_080D7464:
- movs r0, 0x1
-_080D7466:
- strh r0, [r5, 0x8]
-_080D7468:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D72DC
-
- thumb_func_start sub_80D7470
-sub_80D7470: @ 80D7470
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7538
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r3, 0x16
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D74DC
- ldr r1, _080D753C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldrh r6, [r4, 0x10]
- adds r1, r6
- ldr r6, _080D7540
- adds r0, r6, 0
- ands r1, r0
- ldr r0, _080D7544
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _080D74C4
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_080D74C4:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _080D74D0
- movs r0, 0
- strh r0, [r4, 0x10]
-_080D74D0:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080D74DC:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D74FE
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _080D74FE
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080D74FE:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _080D7514
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080D7524
-_080D7514:
- cmp r3, 0
- ble _080D7548
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D7548
-_080D7524:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1A]
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r0, 0x1
- b _080D7554
- .align 2, 0
-_080D7538: .4byte gSpriteTemplate_83D9B40
-_080D753C: .4byte gSprites
-_080D7540: .4byte 0x000003ff
-_080D7544: .4byte 0xfffffc00
-_080D7548:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_080D7554:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7470
-
- thumb_func_start sub_80D755C
-sub_80D755C: @ 80D755C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7592
- ldr r3, _080D7598
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D7592:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7598: .4byte gTasks
- thumb_func_end sub_80D755C
-
- thumb_func_start sub_80D759C
-sub_80D759C: @ 80D759C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D75C0
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D7618
- cmp r0, 0x1
- bgt _080D75C4
- cmp r0, 0
- beq _080D75CA
- b _080D764E
- .align 2, 0
-_080D75C0: .4byte gTasks
-_080D75C4:
- cmp r0, 0x2
- beq _080D7640
- b _080D764E
-_080D75CA:
- ldr r0, _080D7614
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _080D75F4
- adds r2, r0, 0
-_080D75E4:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _080D75E4
- strh r1, [r5, 0x24]
-_080D75F4:
- ldr r4, _080D7614
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _080D7638
- .align 2, 0
-_080D7614: .4byte gUnknown_0202F7C9
-_080D7618:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D764E
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7654
- lsls r0, 24
- cmp r0, 0
- beq _080D764E
-_080D7638:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D764E
-_080D7640:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D764E
- adds r0, r2, 0
- bl move_anim_task_del
-_080D764E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D759C
-
- thumb_func_start sub_80D7654
-sub_80D7654: @ 80D7654
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D76B0
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D7698
- ldr r3, _080D76B4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D76B8
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r1, 0xA
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
-_080D7698:
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D76BC
- adds r0, r2, 0
- adds r0, 0x20
- strh r0, [r4, 0x24]
- movs r0, 0
- b _080D76BE
- .align 2, 0
-_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
-_080D76B4: .4byte gSprites
-_080D76B8: .4byte sub_80D76C4
-_080D76BC:
- movs r0, 0x1
-_080D76BE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7654
-
- thumb_func_start sub_80D76C4
-sub_80D76C4: @ 80D76C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D76F8
- ldr r3, _080D7700
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D76F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7700: .4byte gTasks
- thumb_func_end sub_80D76C4
-
- thumb_func_start sub_80D7704
-sub_80D7704: @ 80D7704
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x7
- ldr r3, _080D780C
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D7810
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r4, _080D7814
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080D7818
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- str r3, [sp]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080D781C
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1]
- ldr r3, [sp]
- adds r0, r3
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x4]
- mov r4, r9
- adds r0, r4, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- adds r0, r6
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x6]
- mov r7, r8
- adds r0, r7, r0
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- adds r4, 0x20
- movs r0, 0x98
- lsls r0, 1
- mov r12, r0
- ldr r3, [sp]
- cmp r4, r12
- bhi _080D77DE
- adds r0, r7, 0
- adds r0, 0x20
- ldrh r1, [r5, 0x30]
- ldrh r2, [r5, 0x32]
- cmp r0, 0xE0
- bhi _080D77DE
- adds r4, r1, 0
- mov r10, r12
-_080D77AA:
- mov r7, r9
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r4
- lsls r1, 16
- mov r7, r8
- lsls r0, r7, 16
- asrs r0, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r0, r1, 16
- mov r9, r0
- movs r7, 0x80
- lsls r7, 14
- adds r1, r7
- lsrs r1, 16
- cmp r1, r10
- bhi _080D77DE
- mov r1, r8
- lsls r0, r1, 16
- adds r0, r7
- lsrs r0, 16
- cmp r0, 0xE0
- bls _080D77AA
-_080D77DE:
- ldrh r0, [r5, 0x30]
- negs r7, r0
- strh r7, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- negs r4, r0
- strh r4, [r5, 0x32]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r0, 16
- movs r2, 0x98
- lsls r2, 1
- mov r12, r2
- ldr r1, _080D781C
- mov r10, r1
- cmp r0, r12
- bhi _080D784A
- lsls r1, r6, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r1, r2
- b _080D7842
- .align 2, 0
-_080D780C: .4byte 0x000003ff
-_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gUnknown_0202F7C9
-_080D7818: .4byte gUnknown_0202F7C8
-_080D781C: .4byte gUnknown_03004B00
-_080D7820:
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r7
- lsls r1, 16
- asrs r0, r2, 16
- adds r0, r4
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r3, r1, 16
- movs r0, 0x80
- lsls r0, 14
- adds r1, r0
- lsrs r1, 16
- cmp r1, r12
- bhi _080D784A
- lsls r1, r6, 16
- adds r0, r1, r0
-_080D7842:
- lsrs r0, 16
- adds r2, r1, 0
- cmp r0, 0xE0
- bls _080D7820
-_080D784A:
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x22]
- mov r1, r10
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- strh r3, [r5, 0x30]
- mov r2, r9
- strh r2, [r5, 0x32]
- strh r6, [r5, 0x34]
- mov r3, r8
- strh r3, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- mov r7, r10
- ldrh r0, [r7, 0xA]
- strh r0, [r5, 0x34]
- ldrh r0, [r7, 0xC]
- strh r0, [r5, 0x36]
- ldr r0, _080D7884
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7884: .4byte sub_80D7888
- thumb_func_end sub_80D7704
-
- thumb_func_start sub_80D7888
-sub_80D7888: @ 80D7888
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D78E0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- strh r1, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D78E6
-_080D78E0:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D78E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7888
-
- thumb_func_start sub_80D78EC
-sub_80D78EC: @ 80D78EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7920
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D7924
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080D7928
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7920: .4byte gUnknown_03004B00
-_080D7924: .4byte move_anim_8072740
-_080D7928: .4byte sub_8078174
- thumb_func_end sub_80D78EC
-
- thumb_func_start sub_80D792C
-sub_80D792C: @ 80D792C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D7960
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r0, _080D7964
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D796C
- ldr r0, _080D7968
- ldrh r1, [r4, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r4, 0x32]
- b _080D7976
- .align 2, 0
-_080D7960: .4byte gUnknown_0202F7C9
-_080D7964: .4byte gUnknown_0202F7C8
-_080D7968: .4byte gUnknown_03004B00
-_080D796C:
- ldr r0, _080D79A4
- ldrh r0, [r0, 0x4]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
-_080D7976:
- ldr r0, _080D79A8
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D79A4
- lsrs r0, 24
- ldrh r2, [r1, 0x6]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _080D79AC
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D79B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D79A4: .4byte gUnknown_03004B00
-_080D79A8: .4byte gUnknown_0202F7C9
-_080D79AC: .4byte move_anim_8072740
-_080D79B0: .4byte sub_8078B34
- thumb_func_end sub_80D792C
-
- thumb_func_start sub_80D79B4
-sub_80D79B4: @ 80D79B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D79CC
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D79D0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D7A06
- .align 2, 0
-_080D79CC: .4byte gUnknown_03004B00
-_080D79D0:
- ldr r0, _080D7A18
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D7A1C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D79F6
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D79F6:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D7A06:
- ldr r1, _080D7A20
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D7A24
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7A18: .4byte gUnknown_0202F7C9
-_080D7A1C: .4byte gUnknown_0202F7C8
-_080D7A20: .4byte sub_80D7A28
-_080D7A24: .4byte sub_80785E4
- thumb_func_end sub_80D79B4
-
- thumb_func_start sub_80D7A28
-sub_80D7A28: @ 80D7A28
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D7A5E
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080D7A5E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D7A28
-
- thumb_func_start sub_80D7A64
-sub_80D7A64: @ 80D7A64
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D7AAC
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7AB4
- ldr r4, _080D7AB0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- b _080D7AC6
- .align 2, 0
-_080D7AAC: .4byte gUnknown_03004B00
-_080D7AB0: .4byte gUnknown_0202F7C9
-_080D7AB4:
- ldr r0, _080D7AE0
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7AC6:
- ldr r0, _080D7AE4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7AEC
- ldr r0, _080D7AE8
- ldrh r1, [r5, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r5, 0x32]
- b _080D7AF6
- .align 2, 0
-_080D7AE0: .4byte gUnknown_0202F7C9
-_080D7AE4: .4byte gUnknown_0202F7C8
-_080D7AE8: .4byte gUnknown_03004B00
-_080D7AEC:
- ldr r0, _080D7B94
- ldrh r0, [r0, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7AF6:
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7B00:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B00
- adds r0, r5, 0
- bl sub_8078D60
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7B22:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7B56
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7B56
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7B22
-_080D7B56:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r6, _080D7B98
- ldr r1, _080D7B9C
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7B76:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B76
- str r6, [r5, 0x1C]
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7B94: .4byte gUnknown_03004B00
-_080D7B98: .4byte sub_8078D8C
-_080D7B9C: .4byte sub_80D7BA0
- thumb_func_end sub_80D7A64
-
- thumb_func_start sub_80D7BA0
-sub_80D7BA0: @ 80D7BA0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080D7C00
- cmp r0, 0
- beq _080D7BD0
- movs r1, 0x14
-_080D7BD0:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x34]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldr r1, _080D7C04
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7BFC: .4byte gUnknown_0202F7C8
-_080D7C00: .4byte 0x0000ffec
-_080D7C04: .4byte sub_80D7C08
- thumb_func_end sub_80D7BA0
-
- thumb_func_start sub_80D7C08
-sub_80D7C08: @ 80D7C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7C5C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080D7C60
- cmp r0, 0
- beq _080D7C1E
- movs r1, 0x14
-_080D7C1E:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- bgt _080D7C64
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x36]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _080D7C82
- .align 2, 0
-_080D7C5C: .4byte gUnknown_0202F7C8
-_080D7C60: .4byte 0x0000ffec
-_080D7C64:
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- ldr r0, _080D7C88
- str r0, [r4, 0x1C]
-_080D7C82:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7C88: .4byte sub_80D7C8C
- thumb_func_end sub_80D7C08
-
- thumb_func_start sub_80D7C8C
-sub_80D7C8C: @ 80D7C8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078CE8
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7CC8
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r1, r0, r1
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bgt _080D7CC8
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7CCE
-_080D7CC8:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7CCE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7C8C
-
- thumb_func_start sub_80D7CD4
-sub_80D7CD4: @ 80D7CD4
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D7D18
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D7D20
- ldr r4, _080D7D1C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080D7D32
- .align 2, 0
-_080D7D18: .4byte gUnknown_03004B00
-_080D7D1C: .4byte gUnknown_0202F7C9
-_080D7D20:
- ldr r0, _080D7D50
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7D32:
- ldr r0, _080D7D54
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7D5C
- ldr r0, _080D7D58
- ldrh r1, [r5, 0x32]
- ldrh r2, [r0, 0x4]
- subs r1, r2
- strh r1, [r5, 0x32]
- adds r1, r0, 0
- b _080D7D66
- .align 2, 0
-_080D7D50: .4byte gUnknown_0202F7C9
-_080D7D54: .4byte gUnknown_0202F7C8
-_080D7D58: .4byte gUnknown_03004B00
-_080D7D5C:
- ldr r1, _080D7E10
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7D66:
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7D7E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7D7E
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7D9A:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7DCE
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7DCE
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7D9A
-_080D7DCE:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r1, _080D7E10
- ldr r6, _080D7E14
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7DEE:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7DEE
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r1, 0xC]
- strh r0, [r5, 0x3A]
- str r6, [r5, 0x1C]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7E10: .4byte gUnknown_03004B00
-_080D7E14: .4byte sub_80D7E18
- thumb_func_end sub_80D7CD4
-
- thumb_func_start sub_80D7E18
-sub_80D7E18: @ 80D7E18
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7E2C
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080D7E2C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D7E82
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7E7C
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7E7C
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7E82
-_080D7E7C:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7E82:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E18
-
- thumb_func_start sub_80D7E88
-sub_80D7E88: @ 80D7E88
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7EF4
- ldr r5, _080D7EA8
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7EAC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- b _080D7EE2
- .align 2, 0
-_080D7EA8: .4byte gUnknown_03004B00
-_080D7EAC:
- ldr r0, _080D7EEC
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldr r0, _080D7EF0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7ED2
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D7ED2:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D7EE2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D7F08
- .align 2, 0
-_080D7EEC: .4byte gUnknown_0202F7C9
-_080D7EF0: .4byte gUnknown_0202F7C8
-_080D7EF4:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D7F08
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7F08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E88
-
- thumb_func_start sub_80D7F10
-sub_80D7F10: @ 80D7F10
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D7F30
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F80
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F34
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080D7F72
- .align 2, 0
-_080D7F30: .4byte gUnknown_03004B00
-_080D7F34:
- ldr r4, _080D7F5C
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7F60
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7F66
- .align 2, 0
-_080D7F5C: .4byte gUnknown_0202F7C8
-_080D7F60:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7F66:
- strh r0, [r5, 0x20]
- ldr r0, _080D7F78
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7F72:
- ldr r0, _080D7F7C
- b _080D7FD0
- .align 2, 0
-_080D7F78: .4byte gUnknown_03004B00
-_080D7F7C: .4byte gUnknown_0202F7C8
-_080D7F80:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F92
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
- b _080D7FCE
-_080D7F92:
- ldr r4, _080D7FB8
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7FBC
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7FC2
- .align 2, 0
-_080D7FB8: .4byte gUnknown_0202F7C9
-_080D7FBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7FC2:
- strh r0, [r5, 0x20]
- ldr r0, _080D7FEC
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7FCE:
- ldr r0, _080D7FF0
-_080D7FD0:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D7FE8
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080D7FF4
-_080D7FE8:
- movs r0, 0x20
- b _080D7FF6
- .align 2, 0
-_080D7FEC: .4byte gUnknown_03004B00
-_080D7FF0: .4byte gUnknown_0202F7C9
-_080D7FF4:
- movs r0, 0x40
-_080D7FF6:
- strh r0, [r5, 0x3A]
- ldr r0, _080D803C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D800C
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080D800C:
- ldr r1, _080D8040
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r5, 0x38]
- ldr r1, _080D8044
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D803C: .4byte gUnknown_0202F7C9
-_080D8040: .4byte gUnknown_03004B00
-_080D8044: .4byte sub_80D8048
- thumb_func_end sub_80D7F10
-
- thumb_func_start sub_80D8048
-sub_80D8048: @ 80D8048
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D80D2
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D80A4
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080D80C6
-_080D80A4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080D80C6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D80D8
-_080D80D2:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D80D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8048
-
- thumb_func_start sub_80D80E0
-sub_80D80E0: @ 80D80E0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D81A8
- ldr r2, _080D81AC
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D81B0
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D812A
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D812A:
- ldr r0, _080D81B4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D81B8
- strh r1, [r0]
- ldr r0, _080D81BC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D81C0
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D81C4
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D81C8
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D81CC
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D81D0
- bl LZDecompressVram
- ldr r0, _080D81D4
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D8190
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D8190:
- ldr r0, _080D81D8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D81DC
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D81A8: .4byte REG_BLDCNT
-_080D81AC: .4byte 0x00003f42
-_080D81B0: .4byte REG_BG1CNT
-_080D81B4: .4byte gUnknown_030042C0
-_080D81B8: .4byte gUnknown_030041B4
-_080D81BC: .4byte REG_BG1HOFS
-_080D81C0: .4byte 0x040000d4
-_080D81C4: .4byte 0x85000400
-_080D81C8: .4byte gWeatherFog1Tiles
-_080D81CC: .4byte 0x80000400
-_080D81D0: .4byte gWeatherFog1Tilemap
-_080D81D4: .4byte gUnknown_083970E8
-_080D81D8: .4byte gTasks
-_080D81DC: .4byte sub_80D81E0
- thumb_func_end sub_80D80E0
-
- thumb_func_start sub_80D81E0
-sub_80D81E0: @ 80D81E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080D8220
- ldr r1, _080D8224
- adds r0, r1, 0
- ldrh r4, [r2]
- adds r0, r4
- strh r0, [r2]
- ldr r1, _080D8228
- ldr r3, _080D822C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- movs r4, 0x20
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _080D8214
- b _080D83B0
-_080D8214:
- lsls r0, 2
- ldr r1, _080D8230
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8220: .4byte gUnknown_030042C0
-_080D8224: .4byte 0x0000ffff
-_080D8228: .4byte gUnknown_030041B4
-_080D822C: .4byte gTasks
-_080D8230: .4byte _080D8234
- .align 2, 0
-_080D8234:
- .4byte _080D8248
- .4byte _080D82A0
- .4byte _080D82C2
- .4byte _080D8304
- .4byte _080D838C
-_080D8248:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080D8262
- b _080D83B0
-_080D8262:
- strh r4, [r3, 0x1C]
- ldrh r0, [r3, 0x1A]
- adds r0, 0x1
- strh r0, [r3, 0x1A]
- ldr r1, _080D8298
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r3, 0x1E]
- ldr r2, _080D829C
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- beq _080D828C
- b _080D83B0
-_080D828C:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8298: .4byte gUnknown_083D9D6C
-_080D829C: .4byte REG_BLDALPHA
-_080D82A0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1E]
- adds r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D83B0
- movs r0, 0x9
- strh r0, [r3, 0x1E]
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- b _080D83B0
-_080D82C2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D83B0
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D8300
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D83B0
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8300: .4byte REG_BLDALPHA
-_080D8304:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r4, r6, 2
- mov r10, r4
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D83C0
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D83C4
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D832A:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D832A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D83C0
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D83C8
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D8378
- ldr r2, _080D83CC
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8378:
- ldr r0, _080D83D0
- mov r4, r10
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r2, _080D83D4
- ldr r4, _080D83D8
-_080D838C:
- movs r1, 0
- strh r1, [r2]
- strh r1, [r4]
- ldr r0, _080D83DC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D83CC
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D83B0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D83C0: .4byte 0x040000d4
-_080D83C4: .4byte 0x85000400
-_080D83C8: .4byte 0x85000200
-_080D83CC: .4byte REG_BG1CNT
-_080D83D0: .4byte gTasks
-_080D83D4: .4byte gUnknown_030042C0
-_080D83D8: .4byte gUnknown_030041B4
-_080D83DC: .4byte REG_BLDCNT
- thumb_func_end sub_80D81E0
-
- thumb_func_start sub_80D83E0
-sub_80D83E0: @ 80D83E0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D840C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080D8410
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D840C: .4byte gUnknown_0202F7C8
-_080D8410: .4byte sub_807941C
- thumb_func_end sub_80D83E0
-
- thumb_func_start sub_80D8414
-sub_80D8414: @ 80D8414
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D84E0
- ldr r2, _080D84E4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D84E8
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D845E
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D845E:
- ldr r0, _080D84EC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D84F0
- strh r1, [r0]
- ldr r0, _080D84F4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D84F8
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D84FC
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D8500
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D8504
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D8508
- bl LZDecompressVram
- ldr r0, _080D850C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D84C4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D84C4:
- ldr r1, _080D8510
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080D8514
- strh r1, [r0, 0x26]
- ldr r1, _080D8518
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D84E0: .4byte REG_BLDCNT
-_080D84E4: .4byte 0x00003f42
-_080D84E8: .4byte REG_BG1CNT
-_080D84EC: .4byte gUnknown_030042C0
-_080D84F0: .4byte gUnknown_030041B4
-_080D84F4: .4byte REG_BG1HOFS
-_080D84F8: .4byte 0x040000d4
-_080D84FC: .4byte 0x85000400
-_080D8500: .4byte gWeatherFog1Tiles
-_080D8504: .4byte 0x80000400
-_080D8508: .4byte gWeatherFog1Tilemap
-_080D850C: .4byte gUnknown_083970E8
-_080D8510: .4byte gTasks
-_080D8514: .4byte 0x0000ffff
-_080D8518: .4byte sub_80D851C
- thumb_func_end sub_80D8414
-
- thumb_func_start sub_80D851C
-sub_80D851C: @ 80D851C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _080D8558
- ldr r4, _080D855C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x26]
- ldrh r2, [r3]
- adds r0, r2
- strh r0, [r3]
- ldr r2, _080D8560
- movs r5, 0x20
- ldrsh r0, [r1, r5]
- cmp r0, 0x4
- bls _080D854C
- b _080D86D0
-_080D854C:
- lsls r0, 2
- ldr r1, _080D8564
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8558: .4byte gUnknown_030042C0
-_080D855C: .4byte gTasks
-_080D8560: .4byte gUnknown_030041B4
-_080D8564: .4byte _080D8568
- .align 2, 0
-_080D8568:
- .4byte _080D857C
- .4byte _080D85C0
- .4byte _080D85E2
- .4byte _080D8624
- .4byte _080D86AC
-_080D857C:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, _080D85B8
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- ldr r2, _080D85BC
- movs r0, 0x11
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- cmp r0, 0x5
- beq _080D85AC
- b _080D86D0
-_080D85AC:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D85B8: .4byte gUnknown_083D9D98
-_080D85BC: .4byte REG_BLDALPHA
-_080D85C0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D86D0
- movs r0, 0x5
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D86D0
-_080D85E2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D86D0
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- ldr r2, _080D8620
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080D86D0
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D8620: .4byte REG_BLDALPHA
-_080D8624:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r1, r6, 2
- mov r10, r1
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D86E0
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D86E4
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D864A:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D864A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D86E0
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D86E8
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D8698
- ldr r2, _080D86EC
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8698:
- ldr r0, _080D86F0
- mov r5, r10
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r3, _080D86F4
- ldr r2, _080D86F8
-_080D86AC:
- movs r1, 0
- strh r1, [r3]
- strh r1, [r2]
- ldr r0, _080D86FC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D86EC
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D86D0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D86E0: .4byte 0x040000d4
-_080D86E4: .4byte 0x85000400
-_080D86E8: .4byte 0x85000200
-_080D86EC: .4byte REG_BG1CNT
-_080D86F0: .4byte gTasks
-_080D86F4: .4byte gUnknown_030042C0
-_080D86F8: .4byte gUnknown_030041B4
-_080D86FC: .4byte REG_BLDCNT
- thumb_func_end sub_80D851C
-
- thumb_func_start sub_80D8700
-sub_80D8700: @ 80D8700
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r6, _080D87E8
- ldrh r0, [r6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D87EC
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldr r7, _080D87F0
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080D8734
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x3C]
-_080D8734:
- ldr r3, _080D87F4
- ldrb r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8794
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
- ldrh r0, [r6, 0x6]
- negs r0, r0
- strh r0, [r6, 0x6]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D8790
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8790
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _080D87F8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
-_080D8790:
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_080D8794:
- ldr r4, _080D87EC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r6, _080D87E8
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080D87FC
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D87F0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- b _080D8824
- .align 2, 0
-_080D87E8: .4byte gUnknown_03004B00
-_080D87EC: .4byte gUnknown_0202F7C8
-_080D87F0: .4byte gUnknown_0202F7C9
-_080D87F4: .4byte gUnknown_02024A72
-_080D87F8: .4byte gSprites
-_080D87FC:
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D886C
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x1
-_080D8824:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x8]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldrb r0, [r4]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 16
- ldrh r1, [r5, 0x3C]
- orrs r0, r1
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D8858
- movs r0, 0x1
- strh r0, [r5, 0x3A]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0x80
- strb r0, [r1]
-_080D8858:
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D8870
- str r0, [r5, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D886C: .4byte gUnknown_0202F7C9
-_080D8870: .4byte sub_80D8874
- thumb_func_end sub_80D8700
-
- thumb_func_start sub_80D8874
-sub_80D8874: @ 80D8874
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- movs r5, 0xFF
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x1
- beq _080D8968
- cmp r1, 0x1
- bgt _080D888E
- cmp r1, 0
- beq _080D8896
- b _080D8AD0
-_080D888E:
- cmp r1, 0x2
- bne _080D8894
- b _080D8A94
-_080D8894:
- b _080D8AD0
-_080D8896:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D88C0
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 4
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D88C4
- ldrh r0, [r4, 0x38]
- subs r0, 0x8
- b _080D88C8
- .align 2, 0
-_080D88C0: .4byte gSineTable
-_080D88C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
-_080D88C8:
- ands r0, r5
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D88D6
- b _080D8AD0
-_080D88D6:
- movs r5, 0x50
- strh r5, [r4, 0x2E]
- ldr r6, _080D8928
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x1D
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldr r0, _080D892C
- ldr r2, _080D8930
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- ldr r1, _080D8934
- ldrb r0, [r6]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- movs r0, 0xCC
- strh r0, [r4, 0x38]
- b _080D893A
- .align 2, 0
-_080D8928: .4byte gUnknown_0202F7C9
-_080D892C: .4byte gMain
-_080D8930: .4byte 0x0000043d
-_080D8934: .4byte gUnknown_02024A72
-_080D8938:
- strh r5, [r4, 0x38]
-_080D893A:
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080D8964
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 3
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _080D8AD0
- .align 2, 0
-_080D8964: .4byte gSineTable
-_080D8968:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D89C8
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r0, 3
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- negs r0, r0
- asrs r0, 8
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r0, _080D89CC
- ldr r2, _080D89D0
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D89F2
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- adds r3, r1, 0
- cmp r0, 0x7F
- bhi _080D89D4
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- b _080D89DC
- .align 2, 0
-_080D89C8: .4byte gSineTable
-_080D89CC: .4byte gMain
-_080D89D0: .4byte 0x0000043d
-_080D89D4:
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- adds r1, 0x1
-_080D89DC:
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r3, 0x4
- b _080D8A12
-_080D89F2:
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D8A06
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x80
- b _080D8A0C
-_080D8A06:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x8C
-_080D8A0C:
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- subs r0, 0x4
-_080D8A12:
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _080D8AD0
- movs r2, 0
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x4
- strh r0, [r4, 0x36]
- ldr r0, _080D8A68
- ldr r1, _080D8A6C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- ldr r1, _080D8A70
- ldr r0, _080D8A74
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- movs r0, 0x80
- lsls r0, 1
- b _080D8A7A
- .align 2, 0
-_080D8A68: .4byte gMain
-_080D8A6C: .4byte 0x0000043d
-_080D8A70: .4byte gUnknown_02024A72
-_080D8A74: .4byte gUnknown_0202F7C9
-_080D8A78:
- ldr r0, _080D8A90
-_080D8A7A:
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_8078BD4
- b _080D8AD0
- .align 2, 0
-_080D8A90: .4byte 0x0000fff0
-_080D8A94:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D8AD0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8AC2
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080D8AC2:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080D8AD8
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080D8AD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8AD8: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80D8874
-
- thumb_func_start sub_80D8ADC
-sub_80D8ADC: @ 80D8ADC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D8AF0
- adds r1, r0
- ldr r0, _080D8AF4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D8AF0: .4byte gTasks
-_080D8AF4: .4byte sub_80D8AF8
- thumb_func_end sub_80D8ADC
-
- thumb_func_start sub_80D8AF8
-sub_80D8AF8: @ 80D8AF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D8B1C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D8B3C
- cmp r5, 0x1
- bgt _080D8B20
- cmp r5, 0
- beq _080D8B26
- b _080D8BA0
- .align 2, 0
-_080D8B1C: .4byte gTasks
-_080D8B20:
- cmp r5, 0x2
- beq _080D8B92
- b _080D8BA0
-_080D8B26:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D8BA0
- strh r5, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0xC]
- b _080D8B78
-_080D8B3C:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D8B8C
- ldrb r0, [r4, 0xE]
- ldrb r1, [r4, 0xC]
- movs r3, 0x1
- bl sub_80D8BA8
- lsls r0, 24
- cmp r0, 0
- beq _080D8B5C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_080D8B5C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080D8B88
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080D8B80
-_080D8B78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B80:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B88:
- strh r5, [r4, 0x12]
- b _080D8BA0
-_080D8B8C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- b _080D8BA0
-_080D8B92:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8BA0
- adds r0, r2, 0
- bl move_anim_task_del
-_080D8BA0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8AF8
-
- thumb_func_start sub_80D8BA8
-sub_80D8BA8: @ 80D8BA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r1, _080D8C20
- lsrs r0, 22
- adds r4, r0, r1
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- asrs r0, 28
- mov r8, r0
- cmp r0, 0x2
- beq _080D8C94
- ldrh r0, [r4, 0x2]
- lsls r0, 20
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D8C94
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r8
- cmp r1, 0
- beq _080D8C24
- cmp r1, 0x1
- beq _080D8C5A
- b _080D8CA6
- .align 2, 0
-_080D8C20: .4byte gUnknown_083D9DC4
-_080D8C24:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r0
- b _080D8C8E
-_080D8C5A:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- adds r1, r0
-_080D8C8E:
- lsls r1, 16
- lsrs r6, r1, 16
- b _080D8CA6
-_080D8C94:
- ldrh r0, [r4]
- lsls r0, 22
- asrs r0, 6
- lsrs r7, r0, 16
- ldr r0, [r4]
- lsls r0, 12
- asrs r0, 22
- lsls r0, 16
- lsrs r6, r0, 16
-_080D8CA6:
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, 0x8
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- ldr r0, _080D8D00
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- negs r2, r2
- movs r3, 0x12
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080D8D08
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _080D8D04
- adds r4, r0
- adds r0, r4, 0
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- strh r7, [r4, 0x34]
- strh r6, [r4, 0x36]
- mov r1, r9
- strh r1, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- mov r1, r10
- strh r1, [r4, 0x3C]
- movs r0, 0x1
- b _080D8D0A
- .align 2, 0
-_080D8D00: .4byte gSpriteTemplate_83D9E3C
-_080D8D04: .4byte gSprites
-_080D8D08:
- movs r0, 0
-_080D8D0A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80D8BA8
-
- thumb_func_start sub_80D8D1C
-sub_80D8D1C: @ 80D8D1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r2, r1, 0
- adds r2, 0x8
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _080D8D46
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080D8DF6
-_080D8D46:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080D8DC8
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8DC8
- ldr r0, _080D8DBC
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- cmp r0, 0x40
- beq _080D8DAA
- ldr r2, _080D8DC0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080D8DC4
- str r1, [r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3A]
- strh r1, [r0, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3C]
- strh r1, [r0, 0x3C]
-_080D8DAA:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _080D8DF6
- .align 2, 0
-_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
-_080D8DC0: .4byte gSprites
-_080D8DC4: .4byte sub_80D8E00
-_080D8DC8:
- ldr r3, _080D8DFC
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8DF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8DFC: .4byte gTasks
- thumb_func_end sub_80D8D1C
-
- thumb_func_start sub_80D8E00
-sub_80D8E00: @ 80D8E00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D8E40
- ldr r3, _080D8E48
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8E40:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8E48: .4byte gTasks
- thumb_func_end sub_80D8E00
-
- thumb_func_start unc_080B06FC
-unc_080B06FC: @ 80D8E4C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080D8ECC
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080D8E6A
- movs r1, 0x4
-_080D8E6A:
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D8ED0
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D8E92
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_080D8E92:
- ldr r4, _080D8ED8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D8EDC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8ECC: .4byte gUnknown_0202F7B4
-_080D8ED0: .4byte gUnknown_03004B00
-_080D8ED4: .4byte gUnknown_0202F7C8
-_080D8ED8: .4byte gUnknown_0202F7C9
-_080D8EDC: .4byte sub_80D8EE0
- thumb_func_end unc_080B06FC
-
- thumb_func_start sub_80D8EE0
-sub_80D8EE0: @ 80D8EE0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D8F02
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D8F08
- str r0, [r4, 0x1C]
- ldr r1, _080D8F0C
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080D8F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F08: .4byte sub_8078600
-_080D8F0C: .4byte move_anim_8072740
- thumb_func_end sub_80D8EE0
-
- thumb_func_start sub_80D8F10
-sub_80D8F10: @ 80D8F10
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D8F64
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D8F68
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D8F6C
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D8F56
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D8F56:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D8F70
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F64: .4byte 0x000003ff
-_080D8F68: .4byte 0xfffffc00
-_080D8F6C: .4byte 0x000001ff
-_080D8F70: .4byte sub_80D8F74
- thumb_func_end sub_80D8F10
-
- thumb_func_start sub_80D8F74
-sub_80D8F74: @ 80D8F74
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D8F98
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D8F9C
-_080D8F98:
- lsls r0, r3, 16
- asrs r0, 24
-_080D8F9C:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D8FBA
- adds r0, r2, 0
- bl move_anim_8072740
-_080D8FBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8F74
-
- thumb_func_start sub_80D8FC0
-sub_80D8FC0: @ 80D8FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D8FE8
- ldrb r3, [r1]
- lsls r3, 1
- adds r3, r1
- ldr r1, _080D8FEC
- ldr r1, [r1]
- ldrb r1, [r1, 0x11]
- lsrs r2, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r2, r1
- subs r2, 0x1
- strh r2, [r3]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D8FE8: .4byte gUnknown_03004B00
-_080D8FEC: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80D8FC0
-
- thumb_func_start unc_080B08A0
-unc_080B08A0: @ 80D8FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9020
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0xF
- strh r0, [r4, 0x2E]
- ldr r0, _080D9024
- str r0, [r4, 0x1C]
- ldr r1, _080D9028
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9020: .4byte gUnknown_03004B00
-_080D9024: .4byte sub_80782D8
-_080D9028: .4byte move_anim_8072740
- thumb_func_end unc_080B08A0
-
- thumb_func_start sub_80D902C
-sub_80D902C: @ 80D902C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9070
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D9054
- ldr r0, _080D9074
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9054
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r4, 0x6]
-_080D9054:
- ldr r4, _080D9070
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8079534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9070: .4byte gUnknown_03004B00
-_080D9074: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80D902C
-
- thumb_func_start sub_80D9078
-sub_80D9078: @ 80D9078
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9094
- ldr r0, _080D90A0
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080D9094:
- adds r0, r4, 0
- bl sub_80D902C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90A0: .4byte gUnknown_03004B00
- thumb_func_end sub_80D9078
-
- thumb_func_start sub_80D90A4
-sub_80D90A4: @ 80D90A4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D90C4
- ldrb r1, [r4, 0x8]
- bl StartSpriteAnim
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D90C8
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080D90D0
- .align 2, 0
-_080D90C4: .4byte gUnknown_03004B00
-_080D90C8:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080D90D0:
- ldr r0, _080D90E8
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080D90EC
- str r0, [r5, 0x1C]
- ldr r1, _080D90F0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90E8: .4byte gUnknown_03004B00
-_080D90EC: .4byte sub_80782D8
-_080D90F0: .4byte move_anim_8072740
- thumb_func_end sub_80D90A4
-
- thumb_func_start sub_80D90F4
-sub_80D90F4: @ 80D90F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _080D9110
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r9, r0
- cmp r1, 0
- bne _080D9118
- ldr r0, _080D9114
- b _080D911A
- .align 2, 0
-_080D9110: .4byte gUnknown_03004B00
-_080D9114: .4byte gUnknown_0202F7C8
-_080D9118:
- ldr r0, _080D9260
-_080D911A:
- ldrb r0, [r0]
- mov r8, r0
- mov r4, r9
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080D9138
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x4]
-_080D9138:
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- mov r0, r8
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- mov r0, r8
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- mov r0, r8
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r6, r1, 16
- mov r0, r8
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080D9182
- adds r0, 0x3
-_080D9182:
- lsls r4, r0, 14
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91C4
- lsls r0, r6, 16
- negs r0, r0
- lsrs r6, r0, 16
-_080D91C4:
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91D6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080D91D6:
- ldr r0, _080D9264
- add r0, r8
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080D91EC
- lsls r0, r4, 16
- ldr r1, _080D9268
- adds r0, r1
- lsrs r4, r0, 16
-_080D91EC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- mov r1, r9
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080D926C
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- adds r3, r5, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3C]
- cmp r0, 0x40
- beq _080D9250
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D9270
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D9274
- str r1, [r0]
-_080D9250:
- ldr r0, _080D9278
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9260: .4byte gUnknown_0202F7C9
-_080D9264: .4byte gUnknown_02024A72
-_080D9268: .4byte 0xfff00000
-_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
-_080D9270: .4byte gSprites
-_080D9274: .4byte SpriteCallbackDummy
-_080D9278: .4byte sub_80D927C
- thumb_func_end sub_80D90F4
-
- thumb_func_start sub_80D927C
-sub_80D927C: @ 80D927C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080D92C4
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- beq _080D92B8
- ldr r4, _080D92C0
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080D92B8:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D92C8
- .align 2, 0
-_080D92C0: .4byte gSprites
-_080D92C4:
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
-_080D92C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D927C
-
- thumb_func_start sub_80D92D0
-sub_80D92D0: @ 80D92D0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- ldr r0, _080D92F0
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D92F4
- ldrh r0, [r4, 0x20]
- subs r0, 0x14
- strh r0, [r4, 0x32]
- b _080D9306
- .align 2, 0
-_080D92F0: .4byte gUnknown_03004B00
-_080D92F4:
- ldrh r0, [r4, 0x20]
- adds r0, 0x14
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080D9306:
- ldrh r0, [r4, 0x22]
- subs r0, 0x14
- strh r0, [r4, 0x36]
- ldr r0, _080D9320
- str r0, [r4, 0x1C]
- ldr r1, _080D9324
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9320: .4byte sub_8078B34
-_080D9324: .4byte sub_80D9328
- thumb_func_end sub_80D92D0
-
- thumb_func_start sub_80D9328
-sub_80D9328: @ 80D9328
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080D9368
- ldrh r2, [r5, 0x20]
- ldrh r4, [r5, 0x24]
- subs r0, r2, r4
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x22]
- ldrh r3, [r5, 0x26]
- subs r0, r1, r3
- strh r0, [r5, 0x36]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- adds r2, r4
- strh r2, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x22]
- strh r6, [r5, 0x26]
- strh r6, [r5, 0x24]
- ldr r0, _080D9370
- str r0, [r5, 0x1C]
- ldr r1, _080D9374
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080D9368:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9370: .4byte sub_8078B34
-_080D9374: .4byte move_anim_8072740
- thumb_func_end sub_80D9328
-
- thumb_func_start sub_80D9378
-sub_80D9378: @ 80D9378
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D93F4
- ldrb r1, [r0]
- movs r0, 0x2
- ldr r2, _080D93F8
- eors r0, r1
- ldrb r1, [r2]
- cmp r0, r1
- bne _080D93A4
- ldrb r0, [r2]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080D93A4
- ldr r1, _080D93FC
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080D93A4:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D93F4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D93C2
- ldr r1, _080D93FC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D93C2:
- ldr r4, _080D93FC
- ldrh r0, [r4, 0x6]
- movs r5, 0
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x3A]
- strh r5, [r6, 0x3C]
- ldr r0, _080D9400
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D93F4: .4byte gUnknown_0202F7C8
-_080D93F8: .4byte gUnknown_0202F7C9
-_080D93FC: .4byte gUnknown_03004B00
-_080D9400: .4byte sub_80D9404
- thumb_func_end sub_80D9378
-
- thumb_func_start sub_80D9404
-sub_80D9404: @ 80D9404
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D9430
- ldrh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
- b _080D9436
-_080D9430:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9404
-
- thumb_func_start sub_80D943C
-sub_80D943C: @ 80D943C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080D9468
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldr r0, _080D946C
- str r0, [r4, 0x1C]
- ldr r1, _080D9470
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9468: .4byte gUnknown_03004B00
-_080D946C: .4byte sub_80782D8
-_080D9470: .4byte sub_80D9474
- thumb_func_end sub_80D943C
-
- thumb_func_start sub_80D9474
-sub_80D9474: @ 80D9474
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r0, _080D94A0
- str r0, [r4, 0x1C]
- ldr r1, _080D94A4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94A0: .4byte sub_80782D8
-_080D94A4: .4byte move_anim_8072740
- thumb_func_end sub_80D9474
-
- thumb_func_start sub_80D94A8
-sub_80D94A8: @ 80D94A8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D94C4
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D94C8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94C4: .4byte gUnknown_03004B00
-_080D94C8: .4byte sub_80D94CC
- thumb_func_end sub_80D94A8
-
- thumb_func_start sub_80D94CC
-sub_80D94CC: @ 80D94CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9510
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D9518
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D951C
- str r0, [r5, 0x1C]
- ldr r1, _080D9520
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080D9510:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9518: .4byte gUnknown_0202F7C9
-_080D951C: .4byte sub_8078B34
-_080D9520: .4byte sub_80D9524
- thumb_func_end sub_80D94CC
-
- thumb_func_start sub_80D9524
-sub_80D9524: @ 80D9524
- push {lr}
- movs r1, 0xF
- strh r1, [r0, 0x2E]
- ldr r1, _080D9538
- str r1, [r0, 0x1C]
- ldr r1, _080D953C
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D9538: .4byte sub_80782D8
-_080D953C: .4byte move_anim_8072740
- thumb_func_end sub_80D9524
-
- thumb_func_start sub_80D9540
-sub_80D9540: @ 80D9540
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D956C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080D9568
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D95C8
- .align 2, 0
-_080D9568: .4byte gUnknown_03004B00
-_080D956C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D95BA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D95BA:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D95C8
- adds r0, r4, 0
- bl move_anim_8072740
-_080D95C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9540
-
- thumb_func_start sub_80D95D0
-sub_80D95D0: @ 80D95D0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D95E4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D95EC
- ldr r4, _080D95E8
- b _080D95EE
- .align 2, 0
-_080D95E4: .4byte gUnknown_03004B00
-_080D95E8: .4byte gUnknown_0202F7C8
-_080D95EC:
- ldr r4, _080D9634
-_080D95EE:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9638
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- strh r2, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldr r0, _080D963C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9634: .4byte gUnknown_0202F7C9
-_080D9638: .4byte gUnknown_03004B00
-_080D963C: .4byte sub_80D9640
- thumb_func_end sub_80D95D0
-
- thumb_func_start sub_80D9640
-sub_80D9640: @ 80D9640
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080D9652
- cmp r2, 0x1
- beq _080D9676
- b _080D96B0
-_080D9652:
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D966E
- adds r0, r1, 0
- bl move_anim_8072740
- b _080D96B0
-_080D966E:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080D96B0
-_080D9676:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D969E
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- beq _080D969A
- movs r0, 0x2
- b _080D969C
-_080D969A:
- ldr r0, _080D96B4
-_080D969C:
- strh r0, [r1, 0x24]
-_080D969E:
- ldrh r0, [r1, 0x32]
- subs r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- adds r0, r1, 0
- bl move_anim_8072740
-_080D96B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080D96B4: .4byte 0x0000fffe
- thumb_func_end sub_80D9640
-
- thumb_func_start sub_80D96B8
-sub_80D96B8: @ 80D96B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D96DC
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D96E4
- ldr r4, _080D96E0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x4]
- adds r0, r2
- b _080D96F6
- .align 2, 0
-_080D96DC: .4byte gUnknown_03004B00
-_080D96E0: .4byte gUnknown_0202F7C8
-_080D96E4:
- ldr r4, _080D9740
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
-_080D96F6:
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D9744
- movs r4, 0x2
- ldrsh r0, [r3, r4]
- lsls r0, 4
- adds r1, r0
- ldr r4, _080D9748
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080D974C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _080D9764
- cmp r0, 0x1
- bgt _080D9750
- cmp r0, 0
- beq _080D975A
- b _080D978A
- .align 2, 0
-_080D9740: .4byte gUnknown_0202F7C9
-_080D9744: .4byte gUnknown_03004B00
-_080D9748: .4byte 0x000003ff
-_080D974C: .4byte 0xfffffc00
-_080D9750:
- cmp r0, 0x2
- beq _080D9774
- cmp r0, 0x3
- beq _080D9784
- b _080D978A
-_080D975A:
- ldr r0, _080D9760
- b _080D9784
- .align 2, 0
-_080D9760: .4byte 0x0000fffd
-_080D9764:
- movs r0, 0x3
- strh r0, [r5, 0x3A]
- ldr r0, _080D9770
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9770: .4byte 0x0000fffd
-_080D9774:
- ldr r0, _080D9780
- strh r0, [r5, 0x3A]
- movs r0, 0x3
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9780: .4byte 0x0000fffd
-_080D9784:
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- b _080D9792
-_080D978A:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D9796
-_080D9792:
- ldr r0, _080D979C
- str r0, [r5, 0x1C]
-_080D9796:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D979C: .4byte sub_80D97A0
- thumb_func_end sub_80D96B8
-
- thumb_func_start sub_80D97A0
-sub_80D97A0: @ 80D97A0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x3A]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x3C]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D97C8
- adds r0, r1, 0
- bl move_anim_8072740
-_080D97C8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D97A0
-
- thumb_func_start sub_80D97CC
-sub_80D97CC: @ 80D97CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9818
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9828
- ldr r4, _080D981C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9820
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9824
- b _080D9844
- .align 2, 0
-_080D9818: .4byte gUnknown_03004B00
-_080D981C: .4byte gUnknown_02024C07
-_080D9820: .4byte gUnknown_0202F7C8
-_080D9824: .4byte gUnknown_0202F7C9
-_080D9828:
- ldr r0, _080D9860
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9864
-_080D9844:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r0, 0xC
- strh r0, [r5, 0x30]
- movs r0, 0x8
- strh r0, [r5, 0x32]
- ldr r0, _080D9868
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9860: .4byte gUnknown_0202F7C9
-_080D9864: .4byte gUnknown_0202F7C8
-_080D9868: .4byte sub_80D986C
- thumb_func_end sub_80D97CC
-
- thumb_func_start sub_80D986C
-sub_80D986C: @ 80D986C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- bne _080D98C6
- ldr r1, _080D98CC
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D98D0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D98D4
- str r0, [r4, 0x1C]
-_080D98C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D98CC: .4byte REG_BLDCNT
-_080D98D0: .4byte move_anim_8074EE0
-_080D98D4: .4byte sub_8078BB8
- thumb_func_end sub_80D986C
-
- thumb_func_start sub_80D98D8
-sub_80D98D8: @ 80D98D8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9924
- ldrh r0, [r4]
- strh r0, [r5, 0x20]
- movs r2, 0x78
- strh r2, [r5, 0x22]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- adds r0, 0x36
- adds r1, r5, 0
- adds r1, 0x38
- lsls r2, 8
- bl sub_8079BF4
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D9928
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D992C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D9930
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9924: .4byte gUnknown_03004B00
-_080D9928: .4byte 0x000003ff
-_080D992C: .4byte 0xfffffc00
-_080D9930: .4byte sub_80D9934
- thumb_func_end sub_80D98D8
-
- thumb_func_start sub_80D9934
-sub_80D9934: @ 80D9934
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080D9986
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- movs r2, 0x38
- ldrsh r1, [r7, r2]
- bl sub_8079BFC
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- subs r4, r0
- adds r0, r7, 0
- adds r0, 0x36
- adds r1, r7, 0
- adds r1, 0x38
- adds r2, r4, 0
- bl sub_8079BF4
- asrs r4, 8
- strh r4, [r7, 0x22]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- negs r0, r0
- cmp r4, r0
- bge _080D997E
- adds r0, r7, 0
- bl move_anim_8072740
- b _080D99DC
-_080D997E:
- ldrh r0, [r7, 0x2E]
- subs r0, 0x1
- strh r0, [r7, 0x2E]
- b _080D99DC
-_080D9986:
- ldr r4, _080D99E8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r2, _080D99EC
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- subs r4, r6
- strh r4, [r7, 0x2E]
- lsrs r0, 24
- subs r0, r5
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x20]
- lsls r0, 4
- strh r0, [r7, 0x32]
- ldrh r0, [r7, 0x22]
- lsls r0, 4
- strh r0, [r7, 0x34]
- ldr r0, _080D99F0
- str r0, [r7, 0x1C]
-_080D99DC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D99E8: .4byte gUnknown_0202F7C8
-_080D99EC: .4byte gUnknown_0202F7C9
-_080D99F0: .4byte sub_80D99F4
- thumb_func_end sub_80D9934
-
- thumb_func_start sub_80D99F4
-sub_80D99F4: @ 80D99F4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D9A2E
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D9A2E
- cmp r1, 0x78
- ble _080D9A34
-_080D9A2E:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D9A34:
- pop {r0}
- bx r0
- thumb_func_end sub_80D99F4
-
- thumb_func_start sub_80D9A38
-sub_80D9A38: @ 80D9A38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9A6C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9A7C
- ldr r4, _080D9A70
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9A74
- ldrb r4, [r0]
- ldr r0, _080D9A78
- b _080D9A82
- .align 2, 0
-_080D9A6C: .4byte gUnknown_03004B00
-_080D9A70: .4byte gUnknown_02024C07
-_080D9A74: .4byte gUnknown_0202F7C9
-_080D9A78: .4byte gUnknown_0202F7C8
-_080D9A7C:
- ldr r0, _080D9AB4
- ldrb r4, [r0]
- ldr r0, _080D9AB8
-_080D9A82:
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9ABC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- b _080D9AD6
- .align 2, 0
-_080D9AB4: .4byte gUnknown_0202F7C8
-_080D9AB8: .4byte gUnknown_0202F7C9
-_080D9ABC:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9ADC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
-_080D9AD6:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080D9ADC:
- movs r0, 0x10
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D9B1C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D9B20
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9B1C: .4byte move_anim_8072740
-_080D9B20: .4byte sub_8078BB8
- thumb_func_end sub_80D9A38
-
- thumb_func_start sub_80D9B24
-sub_80D9B24: @ 80D9B24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D9B3A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9B3A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9B24
-
- thumb_func_start sub_80D9B48
-sub_80D9B48: @ 80D9B48
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080D9BC4
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9BC8
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1]
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x36]
- ldr r0, _080D9BCC
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9B92
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080D9B92:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _080D9BA6
- ldrh r0, [r5, 0x32]
- negs r0, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
-_080D9BA6:
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x32]
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x26]
- ldr r0, _080D9BD0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9BC4: .4byte gUnknown_0202F7C9
-_080D9BC8: .4byte gUnknown_03004B00
-_080D9BCC: .4byte gUnknown_0202F7C4
-_080D9BD0: .4byte sub_80D9B24
- thumb_func_end sub_80D9B48
-
- thumb_func_start sub_80D9BD4
-sub_80D9BD4: @ 80D9BD4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9BEC
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9BF0
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080D9BF8
- .align 2, 0
-_080D9BEC: .4byte gUnknown_03004B00
-_080D9BF0:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080D9BF8:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9C0C
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- b _080D9C22
-_080D9C0C:
- ldr r0, _080D9C34
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9C22
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D9C22:
- ldr r0, _080D9C38
- str r0, [r4, 0x1C]
- ldr r1, _080D9C3C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9C34: .4byte gUnknown_0202F7C8
-_080D9C38: .4byte sub_8078600
-_080D9C3C: .4byte move_anim_8072740
- thumb_func_end sub_80D9BD4
-
- thumb_func_start sub_80D9C40
-sub_80D9C40: @ 80D9C40
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D9C7A
- ldrh r0, [r4, 0x30]
- adds r0, 0x28
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D9C7A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9C40
-
- thumb_func_start sub_80D9C80
-sub_80D9C80: @ 80D9C80
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D9CB0
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080D9CB8
- cmp r0, 0x1
- bgt _080D9CD2
- cmp r0, 0
- bne _080D9CD2
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080D9CB4
- ldrh r0, [r0]
- strh r0, [r4, 0x18]
- b _080D9CCA
- .align 2, 0
-_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gUnknown_03004B00
-_080D9CB8:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9CDE
-_080D9CCA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D9CDE
-_080D9CD2:
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
-_080D9CDE:
- movs r2, 0xB0
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9D14
- ldr r1, _080D9D10
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r7, r1, 0
- b _080D9D24
- .align 2, 0
-_080D9D0C: .4byte gUnknown_0202F7C9
-_080D9D10: .4byte gUnknown_030041B0
-_080D9D14:
- ldr r2, _080D9D64
- ldrh r1, [r4, 0x1A]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r7, r2, 0
-_080D9D24:
- ldr r3, _080D9D68
- ldrh r2, [r4, 0x1C]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r0, 0xFF
- ldrb r1, [r4, 0x1A]
- movs r5, 0
- strh r1, [r4, 0x1A]
- ands r0, r2
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D9D5C
- strh r5, [r7]
- strh r5, [r3]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl move_anim_task_del
-_080D9D5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9D64: .4byte gUnknown_030041B0
-_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gUnknown_03004B00
- thumb_func_end sub_80D9C80
-
- thumb_func_start sub_80D9D70
-sub_80D9D70: @ 80D9D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9DC4
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9D86
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9D86:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D9DCC
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D9DD0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9DC4: .4byte gUnknown_03004B00
-_080D9DC8: .4byte gUnknown_0202F7C9
-_080D9DCC: .4byte 0x0000ffe2
-_080D9DD0: .4byte sub_80D9DD4
- thumb_func_end sub_80D9D70
-
- thumb_func_start sub_80D9DD4
-sub_80D9DD4: @ 80D9DD4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9DE8
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9DE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9DD4
-
- thumb_func_start sub_80D9DF0
-sub_80D9DF0: @ 80D9DF0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r5, _080D9E64
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9E08
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9E08:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D9E68
- ldrb r0, [r0]
- mov r6, sp
- adds r6, 0x2
- movs r1, 0x1
- mov r2, sp
- adds r3, r6, 0
- bl sub_807A3FC
- ldr r0, _080D9E6C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9E36
- ldrh r0, [r5, 0x8]
- negs r0, r0
- strh r0, [r5, 0x8]
-_080D9E36:
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- mov r1, sp
- ldrh r0, [r5, 0x8]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r6, [r6]
- adds r0, r6
- strh r0, [r4, 0x36]
- ldr r0, _080D9E70
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080D9E74
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9E64: .4byte gUnknown_03004B00
-_080D9E68: .4byte gUnknown_0202F7C9
-_080D9E6C: .4byte gUnknown_0202F7C8
-_080D9E70: .4byte 0x0000ffe2
-_080D9E74: .4byte sub_80D9E78
- thumb_func_end sub_80D9DF0
-
- thumb_func_start sub_80D9E78
-sub_80D9E78: @ 80D9E78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9E8C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9E8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9E78
-
- thumb_func_start sub_80D9E94
-sub_80D9E94: @ 80D9E94
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9EE0
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078A5C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x38]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x3A]
- ldr r0, _080D9EE4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9EE0: .4byte gUnknown_03004B00
-_080D9EE4: .4byte sub_80D9EE8
- thumb_func_end sub_80D9E94
-
- thumb_func_start sub_80D9EE8
-sub_80D9EE8: @ 80D9EE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078394
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9F0E
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9F0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9EE8
-
- thumb_func_start sub_80D9F14
-sub_80D9F14: @ 80D9F14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9F74
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9F78
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9F40
- ldr r1, _080D9F7C
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D9F40:
- ldr r0, _080D9F7C
- ldrh r2, [r0]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- ldrh r3, [r0, 0x8]
- strh r3, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- adds r2, r0
- strh r2, [r4, 0x32]
- adds r1, r3
- strh r1, [r4, 0x36]
- ldr r0, _080D9F80
- str r0, [r4, 0x1C]
- ldr r1, _080D9F84
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9F74: .4byte gUnknown_0202F7C9
-_080D9F78: .4byte gUnknown_0202F7C8
-_080D9F7C: .4byte gUnknown_03004B00
-_080D9F80: .4byte sub_8078B34
-_080D9F84: .4byte move_anim_8072740
- thumb_func_end sub_80D9F14
-
- thumb_func_start sub_80D9F88
-sub_80D9F88: @ 80D9F88
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9FA0
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9FA4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D9FDA
- .align 2, 0
-_080D9FA0: .4byte gUnknown_03004B00
-_080D9FA4:
- ldr r0, _080D9FE4
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9FE8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9FCA
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D9FCA:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D9FDA:
- ldr r0, _080D9FEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9FE4: .4byte gUnknown_0202F7C9
-_080D9FE8: .4byte gUnknown_0202F7C8
-_080D9FEC: .4byte sub_80D9FF0
- thumb_func_end sub_80D9F88
-
- thumb_func_start sub_80D9FF0
-sub_80D9FF0: @ 80D9FF0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DA02C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA02C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9FF0
-
- thumb_func_start sub_80DA034
-sub_80DA034: @ 80DA034
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r0, [r4, 0x22]
- adds r0, 0x14
- strh r0, [r4, 0x22]
- movs r0, 0xBF
- strh r0, [r4, 0x30]
- ldr r1, _080DA058
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA058: .4byte sub_80DA05C
- thumb_func_end sub_80DA034
-
- thumb_func_start sub_80DA05C
-sub_80DA05C: @ 80DA05C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x47
- bne _080DA096
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA05C
-
- thumb_func_start sub_80DA09C
-sub_80DA09C: @ 80DA09C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080DA0CC
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r1, _080DA0D0
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- ldr r0, _080DA0D4
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldr r0, _080DA0D8
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gUnknown_03004B00
-_080DA0D4: .4byte 0x00002719
-_080DA0D8: .4byte sub_80DA0DC
- thumb_func_end sub_80DA09C
-
- thumb_func_start sub_80DA0DC
-sub_80DA0DC: @ 80DA0DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080DA15C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r7, r2, 0
- cmp r0, r1
- bne _080DA13A
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrb r0, [r3, 0xC]
- ldr r2, _080DA160
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r2
- ldrh r6, [r1]
- movs r4, 0x7
- mov r12, r0
- ldr r0, _080DA164
- add r0, r12
- lsls r0, 1
- adds r3, r0, r2
-_080DA122:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _080DA122
- ldr r0, _080DA168
- add r0, r12
- lsls r0, 1
- adds r0, r2
- strh r6, [r0]
-_080DA13A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080DA154
- adds r0, r5, 0
- bl move_anim_task_del
-_080DA154:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA15C: .4byte gTasks
-_080DA160: .4byte gPlttBufferFaded
-_080DA164: .4byte 0x00000107
-_080DA168: .4byte 0x00000101
- thumb_func_end sub_80DA0DC
-
- thumb_func_start sub_80DA16C
-sub_80DA16C: @ 80DA16C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DA1D8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA18C
- ldr r1, _080DA1DC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DA18C:
- ldr r4, _080DA1DC
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r5, _080DA1E0
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA1E4
- str r0, [r6, 0x1C]
- ldr r1, _080DA1E8
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA1D8: .4byte gUnknown_0202F7C8
-_080DA1DC: .4byte gUnknown_03004B00
-_080DA1E0: .4byte gUnknown_0202F7C9
-_080DA1E4: .4byte sub_80785E4
-_080DA1E8: .4byte sub_80DA1EC
- thumb_func_end sub_80DA16C
-
- thumb_func_start sub_80DA1EC
-sub_80DA1EC: @ 80DA1EC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DA200
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA1EC
-
- thumb_func_start sub_80DA208
-sub_80DA208: @ 80DA208
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DA2A4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA234
- ldr r1, _080DA2A8
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080DA234:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DA24C
- ldr r0, _080DA2A8
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080DA24C:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080DA2A8
- ldrh r1, [r2]
- ldrh r3, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x20]
- lsrs r0, 24
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x2E]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080DA2B0
- ldr r4, _080DA2AC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DA2C2
- .align 2, 0
-_080DA2A4: .4byte gUnknown_0202F7C8
-_080DA2A8: .4byte gUnknown_03004B00
-_080DA2AC: .4byte gUnknown_0202F7C9
-_080DA2B0:
- ldr r0, _080DA2F0
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DA2C2:
- ldr r4, _080DA2F4
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- ldrh r3, [r5, 0x36]
- adds r0, r3
- strh r0, [r5, 0x36]
- ldr r0, _080DA2F8
- str r0, [r5, 0x1C]
- ldr r1, _080DA2FC
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA2F0: .4byte gUnknown_0202F7C9
-_080DA2F4: .4byte gUnknown_03004B00
-_080DA2F8: .4byte sub_8078B34
-_080DA2FC: .4byte move_anim_8072740
- thumb_func_end sub_80DA208
-
- thumb_func_start sub_80DA300
-sub_80DA300: @ 80DA300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DA33C
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DA340
- str r0, [r4, 0x1C]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DA344
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA33C: .4byte gUnknown_03004B00
-_080DA340: .4byte sub_80DA348
-_080DA344: .4byte gSprites
- thumb_func_end sub_80DA300
-
- thumb_func_start sub_80DA348
-sub_80DA348: @ 80DA348
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DA35C
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DA36E
-_080DA35C:
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
-_080DA36E:
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DA386
- adds r0, r2, 0
- bl move_anim_8072740
-_080DA386:
- pop {r0}
- bx r0
- thumb_func_end sub_80DA348
-
- thumb_func_start sub_80DA38C
-sub_80DA38C: @ 80DA38C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DA3B4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA3BC
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldr r0, _080DA3B8
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080DA3C2
- .align 2, 0
-_080DA3B4: .4byte gUnknown_0202F7C8
-_080DA3B8: .4byte 0x0000ffe0
-_080DA3BC:
- ldr r0, _080DA400
- strh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
-_080DA3C2:
- ldr r0, _080DA404
- ldrh r0, [r0]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080DA408
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA40C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gUnknown_03004B00
-_080DA408: .4byte gUnknown_0202F7C9
-_080DA40C: .4byte sub_80DA410
- thumb_func_end sub_80DA38C
-
- thumb_func_start sub_80DA410
-sub_80DA410: @ 80DA410
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- ldrh r1, [r4, 0x34]
- lsrs r0, r1, 8
- cmp r0, 0xC8
- bls _080DA438
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
-_080DA438:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bhi _080DA45A
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- ble _080DA480
-_080DA45A:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DA488
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA488: .4byte gSprites
- thumb_func_end sub_80DA410
-
- thumb_func_start sub_80DA48C
-sub_80DA48C: @ 80DA48C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080DA4CC
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DA4BE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080DA4BE:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080DA4D4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080DA4CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA4D4: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80DA48C
-
- thumb_func_start sub_80DA4D8
-sub_80DA4D8: @ 80DA4D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r7, 0
- adds r5, 0x2E
- ldr r0, _080DA4F8
- ldrh r1, [r0, 0xE]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DA500
- ldr r0, _080DA4FC
- b _080DA502
- .align 2, 0
-_080DA4F8: .4byte gUnknown_03004B00
-_080DA4FC: .4byte gUnknown_0202F7C8
-_080DA500:
- ldr r0, _080DA5B0
-_080DA502:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DA518
- ldr r1, _080DA5B4
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DA518:
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080DA5B4
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- ldrh r1, [r4, 0x2]
- lsrs r0, 24
- adds r1, r0, r1
- strh r1, [r7, 0x22]
- lsls r1, 8
- strh r1, [r5, 0x8]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 1
- ldrh r2, [r5, 0xE]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0xE]
- ldrb r0, [r5]
- movs r2, 0x4
- mov r8, r2
- mov r1, r8
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r4, 0x4]
- ldrb r1, [r4, 0x4]
- strh r1, [r5, 0x2]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x4]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x6]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0xC]
- subs r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x7F
- bhi _080DA618
- ldr r0, _080DA5B8
- ldr r2, _080DA5BC
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA5C0
- adds r0, r6, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r7, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- b _080DA5D8
- .align 2, 0
-_080DA5B0: .4byte gUnknown_0202F7C9
-_080DA5B4: .4byte gUnknown_03004B00
-_080DA5B8: .4byte gMain
-_080DA5BC: .4byte 0x0000043d
-_080DA5C0:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
-_080DA5D8:
- ldrb r1, [r5, 0xE]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r5, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- b _080DA66E
-_080DA618:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrb r0, [r5, 0xE]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0xE]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r4
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- mov r1, r8
-_080DA66E:
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
-_080DA678:
- ldrh r1, [r5, 0x2]
- lsrs r1, 6
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r3, _080DA6E4
- ldrh r0, [r5, 0x2]
- lsls r0, 1
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldrb r0, [r5, 0xC]
- muls r0, r1
- asrs r0, 8
- strh r0, [r7, 0x24]
- ldrb r2, [r7, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r7, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r5, [r5, 0xA]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r4, [r1]
- ldr r1, _080DA6E8
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r4, [r2, 0x2]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldr r0, _080DA6EC
- str r0, [r7, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA6E4: .4byte gSineTable
-_080DA6E8: .4byte gOamMatrices
-_080DA6EC: .4byte sub_80DA6F0
- thumb_func_end sub_80DA4D8
-
- thumb_func_start sub_80DA6F0
-sub_80DA6F0: @ 80DA6F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r6, 0
- movs r0, 0x2E
- adds r0, r5
- mov r12, r0
- ldrb r2, [r0]
- movs r7, 0x1
- movs r1, 0x1
- mov r9, r1
- mov r0, r9
- ands r0, r2
- cmp r0, 0
- beq _080DA730
- mov r3, r12
- ldrb r0, [r3, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r3, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _080DA724
- b _080DAD1A
-_080DA724:
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAD1A
-_080DA730:
- mov r4, r12
- ldrh r0, [r4, 0x2]
- lsrs r4, r0, 6
- mov r8, r0
- cmp r4, 0x1
- bne _080DA73E
- b _080DA896
-_080DA73E:
- cmp r4, 0x1
- bgt _080DA748
- cmp r4, 0
- beq _080DA756
- b _080DAC52
-_080DA748:
- cmp r4, 0x2
- bne _080DA74E
- b _080DA9C8
-_080DA74E:
- cmp r4, 0x3
- bne _080DA754
- b _080DAB0E
-_080DA754:
- b _080DAC52
-_080DA756:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA76C
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r1, r12
- strb r0, [r1]
- strb r6, [r1, 0x1]
- b _080DA88A
-_080DA76C:
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA790
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r2, r12
- strb r1, [r2]
- strb r6, [r2, 0x1]
- b _080DA88A
-_080DA790:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA88A
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA87A
- ldr r0, _080DA80C
- ldr r1, _080DA810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA82E
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA814
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA868
- .align 2, 0
-_080DA80C: .4byte gMain
-_080DA810: .4byte 0x0000043d
-_080DA814:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA866
-_080DA82E:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA85C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DA87A
-_080DA85C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA866:
- mov r3, r12
-_080DA868:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DA87A:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DA88A:
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r2]
- b _080DAC52
-_080DA896:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DA8AC
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DA9BC
-_080DA8AC:
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DA8BE
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DA9BC
-_080DA8BE:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA9BC
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA9AC
- ldr r0, _080DA940
- ldr r1, _080DA944
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA962
- mov r2, r12
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA948
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r3, r12
- b _080DA978
- .align 2, 0
-_080DA940: .4byte gMain
-_080DA944: .4byte 0x0000043d
-_080DA948:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA996
-_080DA962:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA98C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
-_080DA978:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DA9AC
-_080DA98C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA996:
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
-_080DA9AC:
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r4, [r3, 0x2]
- mov r8, r4
-_080DA9BC:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _080DAC4C
-_080DA9C8:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA9DE
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAAFE
-_080DA9DE:
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA9F0
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DAAFE
-_080DA9F0:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _080DA9FA
- b _080DAAFE
-_080DA9FA:
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAAEC
- ldr r0, _080DAA6C
- ldr r3, _080DAA70
- adds r0, r3
- ldrb r0, [r0]
- ands r4, r0
- cmp r4, 0
- beq _080DAAA4
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAA74
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAAD8
- .align 2, 0
-_080DAA6C: .4byte gMain
-_080DAA70: .4byte 0x0000043d
-_080DAA74:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAAEC
-_080DAAA4:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAACE
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DAAEC
-_080DAACE:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAAD8:
- mov r4, r12
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080DAAEC:
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r2, [r1, 0x2]
- mov r8, r2
-_080DAAFE:
- mov r3, r12
- ldrb r0, [r3]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r3]
- b _080DAC52
-_080DAB0E:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DAB20
- movs r0, 0x8
- orrs r0, r2
- mov r4, r12
- strb r0, [r4]
- b _080DAC42
-_080DAB20:
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DAB44
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r0, r12
- strb r1, [r0]
- strb r6, [r0, 0x1]
- b _080DAC42
-_080DAB44:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DAC42
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAC32
- ldr r0, _080DABC4
- ldr r3, _080DABC8
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DABE6
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DABCC
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- b _080DAC00
- .align 2, 0
-_080DABC4: .4byte gMain
-_080DABC8: .4byte 0x0000043d
-_080DABCC:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAC1E
-_080DABE6:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAC14
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
-_080DAC00:
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAC32
-_080DAC14:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAC1E:
- mov r3, r12
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DAC32:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DAC42:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x30
-_080DAC4C:
- orrs r1, r0
- mov r2, r12
- strb r1, [r2]
-_080DAC52:
- mov r3, r12
- ldrb r1, [r3]
- lsls r1, 30
- lsrs r1, 31
- mov r0, r12
- adds r0, 0xC
- adds r0, r1
- ldrb r1, [r0]
- ldr r3, _080DACE0
- mov r4, r8
- lsls r0, r4, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r4, 0x24
- ldrsh r0, [r5, r4]
- negs r0, r0
- asrs r0, 1
- mov r1, r12
- ldrb r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r6, [r1]
- ldr r1, _080DACE4
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r6, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- mov r2, r12
- ldrh r0, [r2, 0x6]
- ldrh r3, [r2, 0x8]
- adds r0, r3
- strh r0, [r2, 0x8]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r4, 0x4
- ldrsh r0, [r2, r4]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DACE8
- ldrh r0, [r2, 0x4]
- subs r1, 0x1
- ands r1, r0
- ldrh r0, [r2, 0x2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x2]
- b _080DACFE
- .align 2, 0
-_080DACE0: .4byte gSineTable
-_080DACE4: .4byte gOamMatrices
-_080DACE8:
- mov r1, r12
- ldrh r0, [r1, 0x4]
- ldr r1, _080DAD28
- ands r1, r0
- mov r2, r12
- ldrh r2, [r2, 0x2]
- adds r1, r2
- movs r0, 0xFF
- ands r1, r0
- mov r3, r12
- strh r1, [r3, 0x2]
-_080DACFE:
- movs r4, 0x22
- ldrsh r1, [r5, r4]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- mov r3, r12
- ldrh r0, [r3, 0xE]
- lsrs r0, 1
- cmp r1, r0
- blt _080DAD1A
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080DAD2C
- str r0, [r5, 0x1C]
-_080DAD1A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD28: .4byte 0x00007fff
-_080DAD2C: .4byte sub_80DA48C
- thumb_func_end sub_80DA6F0
-
- thumb_func_start sub_80DAD30
-sub_80DAD30: @ 80DAD30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _080DAD78
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r5, _080DAD7C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080DAD80
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD78: .4byte gUnknown_0202F7C9
-_080DAD7C: .4byte gUnknown_0202F7C8
-_080DAD80: .4byte sub_807941C
- thumb_func_end sub_80DAD30
-
- thumb_func_start sub_80DAD84
-sub_80DAD84: @ 80DAD84
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080DADCC
- ldrh r0, [r5]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x34]
- ldr r0, _080DADD0
- ldr r1, _080DADD4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DAE44
- ldr r0, _080DADD8
- ldr r1, _080DADDC
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DADE0
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- b _080DADEE
- .align 2, 0
-_080DADCC: .4byte gUnknown_03004B00
-_080DADD0: .4byte gMain
-_080DADD4: .4byte 0x0000043d
-_080DADD8: .4byte gUnknown_02024A72
-_080DADDC: .4byte gUnknown_0202F7C9
-_080DADE0:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
-_080DADEE:
- strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DAE24
- ldr r0, _080DAE20
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080DAE58
- .align 2, 0
-_080DAE1C: .4byte gUnknown_03004B00
-_080DAE20: .4byte gUnknown_0202F7C9
-_080DAE24:
- ldr r0, _080DAE40
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080DAE58
- .align 2, 0
-_080DAE40: .4byte gUnknown_0202F7C9
-_080DAE44:
- ldr r0, _080DAEFC
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x3C]
-_080DAE58:
- ldr r5, _080DAF00
- ldrh r3, [r4, 0x30]
- movs r1, 0xFF
- ands r1, r3
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r4, 0x36]
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x38]
- strh r2, [r4, 0x3A]
- strh r2, [r4, 0x26]
- strh r2, [r4, 0x24]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r6, r0, 27
- lsls r3, 16
- lsrs r3, 24
- strh r3, [r4, 0x30]
- bl Random
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0x80
- lsls r0, 8
- ands r0, r7
- cmp r0, 0
- beq _080DAEA2
- ldrh r1, [r4, 0x30]
- movs r0, 0xFF
- subs r0, r1
- strh r0, [r4, 0x30]
-_080DAEA2:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, _080DAF04
- lsls r2, r6, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _080DAEF2
- adds r2, r4, 0
- adds r2, 0x2A
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r3]
- orrs r0, r1
- strb r0, [r3]
-_080DAEF2:
- ldr r0, _080DAF08
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAEFC: .4byte gUnknown_0202F7C9
-_080DAF00: .4byte gSineTable
-_080DAF04: .4byte gOamMatrices
-_080DAF08: .4byte sub_80DAF0C
- thumb_func_end sub_80DAD84
-
- thumb_func_start sub_80DAF0C
-sub_80DAF0C: @ 80DAF0C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x2E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- mov r8, r1
- movs r7, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080DAFF0
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r6, r0, 8
- strh r6, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r3, r0, 8
- strh r3, [r4, 0x26]
- ldrh r2, [r4, 0x34]
- movs r1, 0xFF
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- ands r1, r2
- cmp r0, r1
- blt _080DAFF0
- ldrh r0, [r4, 0x20]
- adds r0, r6
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- strh r7, [r4, 0x24]
- strh r7, [r4, 0x26]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x10
- bl memcpy
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldrh r0, [r4, 0x22]
- lsls r0, 8
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x6]
- lsrs r1, r0, 8
- strh r1, [r5, 0x6]
- strh r7, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080DAFC0
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFB8
- ldr r0, _080DAFB4
- b _080DAFCE
- .align 2, 0
-_080DAFB4: .4byte 0x00008001
-_080DAFB8:
- ldr r0, _080DAFBC
- b _080DAFCE
- .align 2, 0
-_080DAFBC: .4byte 0x00008002
-_080DAFC0:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFCC
- movs r0, 0x1
- b _080DAFCE
-_080DAFCC:
- movs r0, 0x2
-_080DAFCE:
- strh r0, [r5, 0x4]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- lsrs r0, 8
- strb r0, [r5, 0xC]
- subs r0, 0x2
- strb r0, [r5, 0xD]
- mov r0, sp
- ldrh r1, [r0, 0xE]
- lsls r1, 1
- ldrh r2, [r5, 0xE]
- movs r0, 0x1
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _080DAFFC
- str r0, [r4, 0x1C]
-_080DAFF0:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAFFC: .4byte sub_80DA6F0
- thumb_func_end sub_80DAF0C
-
- thumb_func_start sub_80DB000
-sub_80DB000: @ 80DB000
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DB018
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB01C
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080DB024
- .align 2, 0
-_080DB018: .4byte gUnknown_03004B00
-_080DB01C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
-_080DB024:
- ldr r4, _080DB08C
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DB03C
- ldr r0, _080DB090
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB052
-_080DB03C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080DB058
- ldr r0, _080DB094
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DB058
-_080DB052:
- ldrh r0, [r5, 0x20]
- adds r0, 0x8
- strh r0, [r5, 0x20]
-_080DB058:
- ldr r4, _080DB08C
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl SeekSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
- strh r0, [r5, 0x20]
- ldr r0, _080DB098
- strh r0, [r5, 0x30]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- strh r1, [r5, 0x2E]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080DB09C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB08C: .4byte gUnknown_03004B00
-_080DB090: .4byte gUnknown_0202F7C8
-_080DB094: .4byte gUnknown_0202F7C9
-_080DB098: .4byte 0x00000ccc
-_080DB09C: .4byte sub_80DB0A0
- thumb_func_end sub_80DB000
-
- thumb_func_start sub_80DB0A0
-sub_80DB0A0: @ 80DB0A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080DB0CA
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl StartSpriteAnim
-_080DB0CA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB0E2
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB0E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB0A0
-
- thumb_func_start sub_80DB0E8
-sub_80DB0E8: @ 80DB0E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080DB180
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x8]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080DB162
- ldr r1, _080DB184
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r5, 0xD
- negs r5, r5
- adds r1, r5, 0
- bl Sin
- ldr r4, _080DB188
- strh r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- adds r1, r5, 0
- bl Cos
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4, 0x4]
- movs r0, 0x3
- strh r0, [r4, 0x6]
- ldr r0, _080DB18C
- mov r8, r0
- ldr r5, _080DB190
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0x3
- bl CreateSpriteAndAnimate
-_080DB162:
- ldrh r0, [r7, 0x8]
- adds r0, 0x8
- strh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DB176
- adds r0, r6, 0
- bl move_anim_task_del
-_080DB176:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB180: .4byte gTasks
-_080DB184: .4byte gUnknown_0202F7B2
-_080DB188: .4byte gUnknown_03004B00
-_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80DB0E8
-
- thumb_func_start sub_80DB194
-sub_80DB194: @ 80DB194
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DB1A6
- cmp r0, 0x1
- beq _080DB1D8
- b _080DB1EC
-_080DB1A6:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB1D4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB1EC
- .align 2, 0
-_080DB1D4: .4byte gSprites
-_080DB1D8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DB1EC
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB1EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB194
-
- thumb_func_start sub_80DB1F4
-sub_80DB1F4: @ 80DB1F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DB22C
- cmp r0, 0x1
- bgt _080DB20A
- cmp r0, 0
- beq _080DB210
- b _080DB27E
-_080DB20A:
- cmp r0, 0x2
- beq _080DB240
- b _080DB27E
-_080DB210:
- ldr r0, _080DB228
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r4, 0x26]
- b _080DB238
- .align 2, 0
-_080DB228: .4byte gUnknown_0202F7C9
-_080DB22C:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080DB27E
-_080DB238:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB27E
-_080DB240:
- ldrh r0, [r4, 0x26]
- subs r0, 0xA
- strh r0, [r4, 0x26]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DB27E
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB284
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB27E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB284: .4byte gSprites
- thumb_func_end sub_80DB1F4
-
- thumb_func_start sub_80DB288
-sub_80DB288: @ 80DB288
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DB2C4
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DB2C8
- str r0, [r4, 0x1C]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB2CC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB2C4: .4byte gUnknown_03004B00
-_080DB2C8: .4byte sub_80DB2D0
-_080DB2CC: .4byte gSprites
- thumb_func_end sub_80DB288
-
- thumb_func_start sub_80DB2D0
-sub_80DB2D0: @ 80DB2D0
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DB2E4
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DB328
-_080DB2E4:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB30A
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
- b _080DB328
-_080DB30A:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DB328
- ldr r0, _080DB32C
- str r0, [r2, 0x1C]
-_080DB328:
- pop {r0}
- bx r0
- .align 2, 0
-_080DB32C: .4byte sub_80DB330
- thumb_func_end sub_80DB2D0
-
- thumb_func_start sub_80DB330
-sub_80DB330: @ 80DB330
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB360
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080DB360:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _080DB36E
- adds r0, r2, 0
- bl move_anim_8072740
-_080DB36E:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB330
-
- thumb_func_start sub_80DB374
-sub_80DB374: @ 80DB374
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080DB388
- cmp r0, 0x1
- beq _080DB3E0
- b _080DB44C
-_080DB388:
- ldr r0, _080DB398
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080DB3A0
- ldr r4, _080DB39C
- b _080DB3A2
- .align 2, 0
-_080DB398: .4byte gUnknown_03004B00
-_080DB39C: .4byte gUnknown_0202F7C8
-_080DB3A0:
- ldr r4, _080DB3DC
-_080DB3A2:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- movs r3, 0x80
- lsls r3, 2
- strh r3, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078FDC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DB44C
- .align 2, 0
-_080DB3DC: .4byte gUnknown_0202F7C9
-_080DB3E0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0xB
- bgt _080DB3EE
- ldrh r0, [r5, 0x30]
- subs r0, 0x28
- b _080DB3F2
-_080DB3EE:
- ldrh r0, [r5, 0x30]
- adds r0, 0x28
-_080DB3F2:
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x30
- ldrsh r3, [r5, r0]
- str r1, [sp]
- adds r0, r5, 0
- bl sub_8078FDC
- ldrb r1, [r5, 0x3]
- lsls r1, 26
- lsrs r1, 27
- movs r0, 0xF4
- lsls r0, 6
- ldr r2, _080DB454
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- adds r1, r0, 0x1
- cmp r1, 0x80
- ble _080DB42C
- movs r1, 0x80
-_080DB42C:
- movs r0, 0x40
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r1, r0, 1
- strh r1, [r5, 0x26]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x18
- bne _080DB44C
- adds r0, r5, 0
- bl sub_8079098
- adds r0, r5, 0
- bl move_anim_8072740
-_080DB44C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB454: .4byte gOamMatrices
- thumb_func_end sub_80DB374
-
- thumb_func_start sub_80DB458
-sub_80DB458: @ 80DB458
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- ldr r4, _080DB47C
- ands r4, r0
- bl Random
- movs r1, 0x7F
- ands r1, r0
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080DB480
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r4, r2
- b _080DB488
- .align 2, 0
-_080DB47C: .4byte 0x000001ff
-_080DB480:
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r4
-_080DB488:
- strh r0, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DB49C
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- adds r0, r1, r0
- b _080DB4A4
-_080DB49C:
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r1
-_080DB4A4:
- strh r0, [r5, 0x30]
- ldr r2, _080DB4CC
- ldrh r0, [r2]
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- beq _080DB4C0
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
-_080DB4C0:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080DB4D4
- ldr r4, _080DB4D0
- b _080DB4D6
- .align 2, 0
-_080DB4CC: .4byte gUnknown_03004B00
-_080DB4D0: .4byte gUnknown_0202F7C8
-_080DB4D4:
- ldr r4, _080DB500
-_080DB4D6:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x22]
- ldr r0, _080DB504
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB500: .4byte gUnknown_0202F7C9
-_080DB504: .4byte sub_80DB508
- thumb_func_end sub_80DB458
-
- thumb_func_start sub_80DB508
-sub_80DB508: @ 80DB508
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DB520
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _080DB52A
-_080DB520:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_080DB52A:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- strh r3, [r4, 0x2E]
- adds r0, r2, 0
- subs r0, 0x20
- strh r0, [r4, 0x30]
- lsls r0, r3, 16
- cmp r0, 0
- bge _080DB54A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080DB54A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080DB55E
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB55E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB508
-
- thumb_func_start sub_80DB564
-sub_80DB564: @ 80DB564
- movs r1, 0
- strh r1, [r0, 0x3A]
- movs r1, 0x40
- strh r1, [r0, 0x3C]
- ldr r1, _080DB574
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DB574: .4byte sub_80DB578
- thumb_func_end sub_80DB564
-
- thumb_func_start sub_80DB578
-sub_80DB578: @ 80DB578
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080DB58A
- cmp r1, 0x1
- beq _080DB5D8
- b _080DB5DE
-_080DB58A:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080DB5DE
- strh r1, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DB5DE
- ldrb r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DB5DE
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DB5DE
-_080DB5D8:
- adds r0, r3, 0
- bl move_anim_8072740
-_080DB5DE:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB578
-
- thumb_func_start sub_80DB5E4
-sub_80DB5E4: @ 80DB5E4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- ldrh r4, [r0, 0x20]
- ldrh r5, [r0, 0x22]
- ldr r6, _080DB698
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- strh r6, [r2, 0x22]
- ldrh r0, [r2, 0x20]
- mov r9, r0
- mov r1, r9
- lsls r0, r1, 4
- strh r0, [r2, 0x36]
- lsls r0, r6, 4
- strh r0, [r2, 0x38]
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- subs r0, r4, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3A]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- subs r0, r5, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- subs r5, r6
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080DB69C
- mov r2, r8
- str r0, [r2, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB698: .4byte gUnknown_0202F7C8
-_080DB69C: .4byte sub_80DB6A0
- thumb_func_end sub_80DB5E4
-
- thumb_func_start sub_80DB6A0
-sub_80DB6A0: @ 80DB6A0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x3C]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x2D
- lsls r0, 16
- movs r1, 0xA5
- lsls r1, 17
- cmp r0, r1
- bhi _080DB6DA
- adds r1, r3, 0
- cmp r1, 0x9D
- bgt _080DB6DA
- movs r0, 0x2D
- negs r0, r0
- cmp r1, r0
- bge _080DB6E0
-_080DB6DA:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080DB6E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB6A0
-
- thumb_func_start unref_sub_80DB6E4
-unref_sub_80DB6E4: @ 80DB6E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DB714
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB71C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB718
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- b _080DB73A
- .align 2, 0
-_080DB714: .4byte gUnknown_03004B00
-_080DB718: .4byte gSprites
-_080DB71C:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB748
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_080DB73A:
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB748: .4byte gSprites
- thumb_func_end unref_sub_80DB6E4
-
- thumb_func_start sub_80DB74C
-sub_80DB74C: @ 80DB74C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _080DB804
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DB77E
-_080DB768:
- ldrb r1, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r1, r6, 0
- adds r1, 0x43
- movs r0, 0xC8
- strb r0, [r1]
-_080DB77E:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB7DA
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB7BC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7BC:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r7
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB7DA
- movs r0, 0x1
- eors r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7DA:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB810
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080DB810
- ldr r0, _080DB804
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DB808
- movs r0, 0x48
- strh r0, [r6, 0x20]
- movs r0, 0x50
- b _080DB84A
- .align 2, 0
-_080DB804: .4byte gUnknown_0202F7C8
-_080DB808:
- movs r0, 0xB0
- strh r0, [r6, 0x20]
- movs r0, 0x28
- b _080DB84A
-_080DB810:
- ldr r5, _080DB880
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB826
- ldr r1, _080DB884
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DB826:
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080DB884
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
-_080DB84A:
- strh r0, [r6, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DB85C
- ldrh r0, [r6, 0x22]
- adds r0, 0x9
- strh r0, [r6, 0x22]
-_080DB85C:
- ldr r0, _080DB884
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x2E]
- ldr r1, _080DB888
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB880: .4byte gUnknown_0202F7C8
-_080DB884: .4byte gUnknown_03004B00
-_080DB888: .4byte sub_80DB88C
- thumb_func_end sub_80DB74C
-
- thumb_func_start sub_80DB88C
-sub_80DB88C: @ 80DB88C
- push {lr}
- adds r3, r0, 0
- ldr r2, _080DB8B0
- ldrh r1, [r3, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0xD
- bne _080DB8B8
- ldr r0, _080DB8B4
- str r0, [r3, 0x1C]
- b _080DB8BC
- .align 2, 0
-_080DB8B0: .4byte REG_BLDALPHA
-_080DB8B4: .4byte sub_80DB8C0
-_080DB8B8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x34]
-_080DB8BC:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB88C
-
- thumb_func_start sub_80DB8C0
-sub_80DB8C0: @ 80DB8C0
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080DB91E
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r4, [r3, 0x2E]
- ldr r1, _080DB924
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- movs r5, 0x8
- adds r6, r1, 0
- adds r1, r4, 0x7
- lsls r0, r4, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- lsls r1, 1
- adds r1, r6
-_080DB8F6:
- ldrh r0, [r1]
- strh r0, [r2]
- subs r1, 0x2
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bgt _080DB8F6
- adds r0, r4, 0x1
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080DB91E
- ldr r0, _080DB928
- str r0, [r3, 0x1C]
-_080DB91E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB924: .4byte gPlttBufferFaded
-_080DB928: .4byte sub_80DB92C
- thumb_func_end sub_80DB8C0
-
- thumb_func_start sub_80DB92C
-sub_80DB92C: @ 80DB92C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r2, _080DB9D4
- ldrh r1, [r5, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB9CC
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB9BC
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB98E
- ldr r2, _080DB9D8
- ldr r0, _080DB9DC
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB98E:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r6
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB9BC
- ldr r2, _080DB9D8
- ldr r0, _080DB9DC
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB9BC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DB9E0
- str r0, [r5, 0x1C]
-_080DB9CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB9D4: .4byte REG_BLDALPHA
-_080DB9D8: .4byte gSprites
-_080DB9DC: .4byte gUnknown_02024BE0
-_080DB9E0: .4byte sub_80DB9E4
- thumb_func_end sub_80DB92C
-
- thumb_func_start sub_80DB9E4
-sub_80DB9E4: @ 80DB9E4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DBA3C
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DBA22
- adds r0, r5, 0
- bl sub_8076464
-_080DBA22:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DBA3C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080DBA3C:
- ldr r0, _080DBA48
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBA48: .4byte move_anim_8072740
- thumb_func_end sub_80DB9E4
-
- thumb_func_start sub_80DBA4C
-sub_80DBA4C: @ 80DBA4C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DBAD8
- ldr r5, _080DBA98
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- movs r6, 0
- cmp r0, 0
- bne _080DBA66
- movs r6, 0x1
-_080DBA66:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DBAAE
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080DBAAE
- ldr r0, _080DBA9C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DBAA0
- ldrh r0, [r5]
- movs r1, 0x48
- subs r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x50
- strh r0, [r4, 0x22]
- b _080DBAD0
- .align 2, 0
-_080DBA98: .4byte gUnknown_03004B00
-_080DBA9C: .4byte gUnknown_0202F7C8
-_080DBAA0:
- ldrh r0, [r5]
- adds r0, 0xB0
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x28
- strh r0, [r4, 0x22]
- b _080DBAD0
-_080DBAAE:
- ldr r0, _080DBAC4
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DBAC8
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80787B0
- b _080DBAD0
- .align 2, 0
-_080DBAC4: .4byte gUnknown_03004B00
-_080DBAC8:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8078764
-_080DBAD0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBAEC
-_080DBAD8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _080DBAEC
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080DBAEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBA4C
-
- thumb_func_start sub_80DBAF4
-sub_80DBAF4: @ 80DBAF4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DBB3C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DBB44
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xA
- strh r0, [r5, 0x22]
- ldr r0, _080DBB40
- b _080DBB52
- .align 2, 0
-_080DBB3C: .4byte gUnknown_0202F7C8
-_080DBB40: .4byte 0x0000ffff
-_080DBB44:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- subs r0, 0xA
- strh r0, [r5, 0x22]
- movs r0, 0x1
-_080DBB52:
- strh r0, [r5, 0x30]
- ldr r1, _080DBB68
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DBB6C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBB68: .4byte move_anim_8072740
-_080DBB6C: .4byte sub_8078600
- thumb_func_end sub_80DBAF4
-
- thumb_func_start sub_80DBB70
-sub_80DBB70: @ 80DBB70
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080DBBF4
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r4, r1, 16
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- negs r1, r1
- lsls r1, 16
- lsrs r7, r1, 16
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DBBB6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080DBBB6:
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080DBBE2
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_080DBBE2:
- ldr r1, _080DBBF8
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DBBFC
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBBF4: .4byte gUnknown_0202F7C8
-_080DBBF8: .4byte sub_80DBC00
-_080DBBFC: .4byte sub_8078600
- thumb_func_end sub_80DBB70
-
- thumb_func_start sub_80DBC00
-sub_80DBC00: @ 80DBC00
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080DBC2C
- str r0, [r4, 0x10]
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldr r0, _080DBC30
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBC2C: .4byte gUnknown_083DA888
-_080DBC30: .4byte sub_80DBC34
- thumb_func_end sub_80DBC00
-
- thumb_func_start sub_80DBC34
-sub_80DBC34: @ 80DBC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBC46
- cmp r0, 0x1
- beq _080DBC74
- b _080DBC8C
-_080DBC46:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DBC8C
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x12
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBC8C
-_080DBC74:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DBC8C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DBC8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBC34
-
- thumb_func_start sub_80DBC94
-sub_80DBC94: @ 80DBC94
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DBCC4
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080DBCC8
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBCCC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCC4: .4byte gTasks
-_080DBCC8: .4byte gUnknown_083DA8A4
-_080DBCCC: .4byte sub_80DBCD0
- thumb_func_end sub_80DBC94
-
- thumb_func_start sub_80DBCD0
-sub_80DBCD0: @ 80DBCD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DBCF8
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080DBCF0
- adds r0, r4, 0
- bl move_anim_task_del
-_080DBCF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCF8: .4byte gTasks
- thumb_func_end sub_80DBCD0
-
- thumb_func_start sub_80DBCFC
-sub_80DBCFC: @ 80DBCFC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBD48
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldr r0, _080DBD4C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _080DBD30
- movs r1, 0x4
-_080DBD30:
- strh r1, [r4, 0xE]
- ldrb r1, [r4, 0x8]
- ldr r2, _080DBD50
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBD54
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gUnknown_0202F7C8
-_080DBD50: .4byte gUnknown_083DA8C4
-_080DBD54: .4byte sub_80DBD58
- thumb_func_end sub_80DBCFC
-
- thumb_func_start sub_80DBD58
-sub_80DBD58: @ 80DBD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DBD78
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBD7C
- cmp r0, 0x1
- beq _080DBD98
- b _080DBDF6
- .align 2, 0
-_080DBD78: .4byte gTasks
-_080DBD7C:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080DBDF6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080DBDF6
-_080DBD98:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBDC0
- ldr r2, _080DBDBC
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBDF6
- .align 2, 0
-_080DBDBC: .4byte gSprites
-_080DBDC0:
- ldr r3, _080DBDFC
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080DBDF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBDFC: .4byte gSprites
- thumb_func_end sub_80DBD58
-
- thumb_func_start sub_80DBE00
-sub_80DBE00: @ 80DBE00
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBE84
- adds r5, r1, r0
- movs r0, 0
- movs r7, 0x10
- strh r7, [r5, 0xE]
- strh r0, [r5, 0x10]
- ldr r4, _080DBE88
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, r6
- bcs _080DBE6A
- adds r1, r6, 0
-_080DBE6A:
- strh r1, [r5, 0x20]
- ldr r1, _080DBE8C
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DBE90
- strh r7, [r0]
- ldr r0, _080DBE94
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBE84: .4byte gTasks
-_080DBE88: .4byte gUnknown_0202F7C8
-_080DBE8C: .4byte REG_BLDCNT
-_080DBE90: .4byte REG_BLDALPHA
-_080DBE94: .4byte sub_80DBE98
- thumb_func_end sub_80DBE00
-
- thumb_func_start sub_80DBE98
-sub_80DBE98: @ 80DBE98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DBEBC
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DBF98
- cmp r1, 0x1
- bgt _080DBEC0
- cmp r1, 0
- beq _080DBECE
- b _080DC014
- .align 2, 0
-_080DBEBC: .4byte gTasks
-_080DBEC0:
- cmp r1, 0x2
- bne _080DBEC6
- b _080DBFF4
-_080DBEC6:
- cmp r1, 0x3
- bne _080DBECC
- b _080DC004
-_080DBECC:
- b _080DC014
-_080DBECE:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bgt _080DBEDE
- b _080DC014
-_080DBEDE:
- strh r1, [r4, 0xA]
- ldr r0, _080DBF1C
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- adds r1, 0x8
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- strh r2, [r0]
- cmp r2, 0x40
- beq _080DBF82
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DBF3C
- cmp r0, 0x1
- bgt _080DBF20
- cmp r0, 0
- beq _080DBF2A
- b _080DBF82
- .align 2, 0
-_080DBF1C: .4byte gSpriteTemplate_83DA8DC
-_080DBF20:
- cmp r0, 0x2
- beq _080DBF54
- cmp r0, 0x3
- beq _080DBF6C
- b _080DBF82
-_080DBF2A:
- ldr r0, _080DBF38
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- b _080DBF7A
- .align 2, 0
-_080DBF38: .4byte gSprites
-_080DBF3C:
- ldr r0, _080DBF50
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- b _080DBF80
- .align 2, 0
-_080DBF50: .4byte gSprites
-_080DBF54:
- ldr r1, _080DBF68
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x26]
- b _080DBF82
- .align 2, 0
-_080DBF68: .4byte gSprites
-_080DBF6C:
- ldr r0, _080DBF94
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF7A:
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF80:
- strh r0, [r1, 0x26]
-_080DBF82:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DC014
- b _080DBFF4
- .align 2, 0
-_080DBF94: .4byte gSprites
-_080DBF98:
- ldrh r0, [r4, 0xA]
- ands r1, r0
- cmp r1, 0
- beq _080DBFA8
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBFAE
-_080DBFA8:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_080DBFAE:
- ldr r2, _080DBFFC
- ldrh r0, [r4, 0x10]
- lsls r0, 8
- ldrh r1, [r4, 0xE]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _080DC014
- movs r5, 0x8
- adds r6, r4, 0
- adds r6, 0x8
-_080DBFCE:
- lsls r0, r5, 1
- adds r1, r6, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x40
- beq _080DBFEA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC000
- adds r0, r1
- bl DestroySprite
-_080DBFEA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xC
- bls _080DBFCE
-_080DBFF4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC014
- .align 2, 0
-_080DBFFC: .4byte REG_BLDALPHA
-_080DC000: .4byte gSprites
-_080DC004:
- ldr r0, _080DC01C
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC014:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC01C: .4byte REG_BLDALPHA
- thumb_func_end sub_80DBE98
-
- thumb_func_start sub_80DC020
-sub_80DC020: @ 80DC020
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080DC04A
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080DC04A:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080DC05C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DC05C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC020
-
- thumb_func_start sub_80DC068
-sub_80DC068: @ 80DC068
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DC0A4
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080DC094
- ldr r4, _080DC0A8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DC094:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080DC0AC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC0A4: .4byte gUnknown_03004B00
-_080DC0A8: .4byte gUnknown_0202F7C8
-_080DC0AC: .4byte sub_80DC020
- thumb_func_end sub_80DC068
-
- thumb_func_start sub_80DC0B0
-sub_80DC0B0: @ 80DC0B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC10C
- adds r5, r1, r0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC154
- ldr r0, _080DC110
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC120
- ldr r0, _080DC114
- strh r0, [r5, 0x1C]
- ldr r4, _080DC118
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC11C
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC10C: .4byte gTasks
-_080DC110: .4byte gUnknown_03004B00
-_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gUnknown_0202F7C9
-_080DC11C: .4byte gUnknown_0202F7C8
-_080DC120:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC14C
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC150
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- b _080DC1D2
- .align 2, 0
-_080DC14C: .4byte gUnknown_0202F7C8
-_080DC150: .4byte gUnknown_0202F7C9
-_080DC154:
- ldr r0, _080DC198
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC1A8
- ldr r0, _080DC19C
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1A4
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC198: .4byte gUnknown_03004B00
-_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gUnknown_0202F7C9
-_080DC1A4: .4byte gUnknown_0202F7C8
-_080DC1A8:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1F4
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
-_080DC1D2:
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
-_080DC1DE:
- strh r0, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0xA]
- ldr r0, _080DC1F8
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC1F0: .4byte gUnknown_0202F7C8
-_080DC1F4: .4byte gUnknown_0202F7C9
-_080DC1F8: .4byte sub_80DC1FC
- thumb_func_end sub_80DC0B0
-
- thumb_func_start sub_80DC1FC
-sub_80DC1FC: @ 80DC1FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC21C
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _080DC220
- cmp r1, 0x1
- beq _080DC294
- b _080DC2A8
- .align 2, 0
-_080DC21C: .4byte gTasks
-_080DC220:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080DC2A8
- strh r1, [r5, 0xA]
- ldr r0, _080DC28C
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- movs r3, 0x20
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DC274
- ldr r0, _080DC290
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x22]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x36]
- ldrh r0, [r5, 0x1C]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldrb r0, [r5, 0xC]
- movs r1, 0x3
- ands r1, r0
- adds r0, r4, 0
- bl StartSpriteAffineAnim
-_080DC274:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080DC2A8
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC2A8
- .align 2, 0
-_080DC28C: .4byte gSpriteTemplate_83DA9AC
-_080DC290: .4byte gSprites
-_080DC294:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080DC2A8
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC2A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC1FC
-
- thumb_func_start sub_80DC2B0
-sub_80DC2B0: @ 80DC2B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DC2CE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080DC2CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC2B0
-
- thumb_func_start sub_80DC2D4
-sub_80DC2D4: @ 80DC2D4
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC30C
- adds r4, r1, r0
- ldr r0, _080DC310
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- subs r0, 0x20
- strh r0, [r4, 0x24]
- ldr r0, _080DC314
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _080DC32A
- cmp r0, 0x1
- bgt _080DC318
- cmp r0, 0
- beq _080DC31E
- b _080DC346
- .align 2, 0
-_080DC30C: .4byte gTasks
-_080DC310: .4byte gUnknown_0202F7C9
-_080DC314: .4byte gUnknown_03004B00
-_080DC318:
- cmp r0, 0x2
- beq _080DC336
- b _080DC346
-_080DC31E:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080DC33E
-_080DC32A:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- b _080DC33E
-_080DC336:
- movs r0, 0x4
- strh r0, [r4, 0x1E]
- strh r0, [r4, 0x20]
- movs r0, 0
-_080DC33E:
- strh r0, [r4, 0x22]
- adds r0, r1, 0
- adds r0, 0x20
- strh r0, [r4, 0x26]
-_080DC346:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080DC352
- movs r0, 0
- strh r0, [r4, 0x24]
-_080DC352:
- ldr r0, _080DC36C
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DC378
- ldr r0, _080DC370
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC374
- b _080DC380
- .align 2, 0
-_080DC36C: .4byte gUnknown_0202F7C9
-_080DC370: .4byte gUnknown_030042C0
-_080DC374: .4byte REG_BG1HOFS
-_080DC378:
- ldr r0, _080DC3E0
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC3E4
-_080DC380:
- str r0, [sp]
- ldrh r1, [r4, 0x24]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- bgt _080DC3BA
- ldr r5, _080DC3E8
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DC39A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1C]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- ble _080DC39A
-_080DC3BA:
- ldr r0, _080DC3EC
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DC3F0
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC3E0: .4byte gUnknown_03004288
-_080DC3E4: .4byte REG_BG2HOFS
-_080DC3E8: .4byte gUnknown_03004DE0
-_080DC3EC: .4byte 0xa2600001
-_080DC3F0: .4byte sub_80DC3F4
- thumb_func_end sub_80DC2D4
-
- thumb_func_start sub_80DC3F4
-sub_80DC3F4: @ 80DC3F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC41C
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC4CE
- cmp r0, 0x1
- bgt _080DC420
- cmp r0, 0
- beq _080DC426
- b _080DC4E6
- .align 2, 0
-_080DC41C: .4byte gTasks
-_080DC420:
- cmp r0, 0x2
- beq _080DC4E0
- b _080DC4E6
-_080DC426:
- ldrh r3, [r5, 0x22]
- ldrh r4, [r5, 0x24]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bgt _080DC4BE
- ldr r0, _080DC470
- mov r9, r0
- movs r7, 0x3
- ldr r1, _080DC474
- mov r12, r1
- movs r2, 0xF0
- lsls r2, 3
- add r2, r12
- mov r8, r2
-_080DC448:
- lsls r2, r3, 16
- asrs r0, r2, 15
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x20
- ldrsh r1, [r5, r3]
- asrs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r3, r0, 16
- adds r6, r2, 0
- cmp r3, 0
- ble _080DC478
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- adds r0, r3, r0
- b _080DC484
- .align 2, 0
-_080DC470: .4byte gSineTable
-_080DC474: .4byte gUnknown_03004DE0
-_080DC478:
- cmp r3, 0
- bge _080DC488
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- subs r0, r3, r0
-_080DC484:
- lsls r0, 16
- lsrs r1, r0, 16
-_080DC488:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- mov r0, r12
- adds r4, r3, r0
- ldrh r0, [r5, 0x1C]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1, r0
- strh r0, [r4]
- add r3, r8
- ldrh r0, [r5, 0x1C]
- adds r1, r0
- strh r1, [r3]
- asrs r0, r6, 16
- ldrh r1, [r5, 0x1E]
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r2, r0
- ble _080DC448
-_080DC4BE:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _080DC4E6
- b _080DC4D4
-_080DC4CE:
- ldr r1, _080DC4DC
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080DC4D4:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC4E6
- .align 2, 0
-_080DC4DC: .4byte gUnknown_03004DC0
-_080DC4E0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC4E6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC3F4
-
- thumb_func_start sub_80DC4F4
-sub_80DC4F4: @ 80DC4F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DC528
- adds r7, r0, r1
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r5
- adds r6, r5, 0
- cmp r6, 0xFF
- bne _080DC52C
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DC5D6
- .align 2, 0
-_080DC528: .4byte gTasks
-_080DC52C:
- ldr r1, _080DC550
- ldrb r0, [r1]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r0, 16
- cmp r0, 0
- bge _080DC554
- adds r0, r5, 0
- bl FreeOamMatrix
- mov r0, r8
- bl move_anim_task_del
- b _080DC5D6
- .align 2, 0
-_080DC550: .4byte gUnknown_03004B00
-_080DC554:
- ldr r2, _080DC5E4
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r2, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, _080DC5E8
- str r1, [r0]
- adds r4, r2
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r1, _080DC5EC
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r0, r10
- strh r0, [r7, 0x24]
- mov r1, r9
- strh r1, [r7, 0x26]
- ldr r0, _080DC5F0
- str r0, [r7]
-_080DC5D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC5E4: .4byte gSprites
-_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gUnknown_03004B00
-_080DC5F0: .4byte sub_80DC5F4
- thumb_func_end sub_80DC4F4
-
- thumb_func_start sub_80DC5F4
-sub_80DC5F4: @ 80DC5F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DC618
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DC678
- cmp r0, 0x1
- bgt _080DC61C
- cmp r0, 0
- beq _080DC626
- b _080DC6F8
- .align 2, 0
-_080DC618: .4byte gTasks
-_080DC61C:
- cmp r0, 0x2
- beq _080DC6C8
- cmp r0, 0x3
- beq _080DC6E8
- b _080DC6F8
-_080DC626:
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC674
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x30
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC674: .4byte gSineTable
-_080DC678:
- ldrh r0, [r4, 0xA]
- subs r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC6C4
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC6C4: .4byte gSineTable
-_080DC6C8:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC6E4
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_080DC6DA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC6F8
- .align 2, 0
-_080DC6E4: .4byte gSprites
-_080DC6E8:
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl FreeOamMatrix
- adds r0, r5, 0
- bl move_anim_task_del
-_080DC6F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC5F4
-
- thumb_func_start sub_80DC700
-sub_80DC700: @ 80DC700
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC778
- cmp r0, 0x1
- bgt _080DC716
- cmp r0, 0
- beq _080DC720
- b _080DC818
-_080DC716:
- cmp r0, 0x2
- beq _080DC7AA
- cmp r0, 0x3
- beq _080DC808
- b _080DC818
-_080DC720:
- ldr r4, _080DC76C
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC74E
- ldrh r0, [r5, 0x22]
- adds r0, 0xC
- strh r0, [r5, 0x22]
-_080DC74E:
- movs r0, 0x8
- strh r0, [r5, 0x30]
- ldr r1, _080DC770
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DC774
- ldrh r1, [r5, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- b _080DC7A2
- .align 2, 0
-_080DC76C: .4byte gUnknown_0202F7C8
-_080DC770: .4byte REG_BLDCNT
-_080DC774: .4byte REG_BLDALPHA
-_080DC778:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DC818
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_080DC7A2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DC818
-_080DC7AA:
- ldrh r0, [r5, 0x32]
- adds r1, r0, 0x1
- strh r1, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DC7E8
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r1, 0x1
- strh r1, [r5, 0x30]
- ldr r2, _080DC804
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DC7E8
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080DC7E8:
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r0, 0
- ldrh r1, [r5, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r5, 0x26]
- subs r0, r1
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r5, 0x34]
- b _080DC818
- .align 2, 0
-_080DC804: .4byte REG_BLDALPHA
-_080DC808:
- ldr r0, _080DC820
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl move_anim_8072740
-_080DC818:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC820: .4byte REG_BLDCNT
- thumb_func_end sub_80DC700
-
- thumb_func_start sub_80DC824
-sub_80DC824: @ 80DC824
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC850
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080DC84C
- ldrh r1, [r0, 0x4]
- negs r1, r1
- strh r1, [r0, 0x4]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
- b _080DC880
- .align 2, 0
-_080DC84C: .4byte gUnknown_03004B00
-_080DC850:
- ldr r0, _080DC8E4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DC880
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080DC8E8
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DC880:
- ldr r5, _080DC8E4
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC8E8
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080DC8EC
- str r0, [r6, 0x1C]
- ldr r1, _080DC8F0
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC8E4: .4byte gUnknown_0202F7C9
-_080DC8E8: .4byte gUnknown_03004B00
-_080DC8EC: .4byte sub_8078B34
-_080DC8F0: .4byte move_anim_8072740
- thumb_func_end sub_80DC824
-
- thumb_func_start sub_80DC8F4
-sub_80DC8F4: @ 80DC8F4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC918
- ldr r1, _080DC914
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _080DC934
- .align 2, 0
-_080DC914: .4byte gUnknown_03004B00
-_080DC918:
- ldr r0, _080DC990
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DC934
- ldr r0, _080DC994
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
-_080DC934:
- ldr r5, _080DC990
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC994
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, _080DC998
- str r0, [r6, 0x1C]
- ldr r1, _080DC99C
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC990: .4byte gUnknown_0202F7C9
-_080DC994: .4byte gUnknown_03004B00
-_080DC998: .4byte sub_8078B34
-_080DC99C: .4byte move_anim_8072740
- thumb_func_end sub_80DC8F4
-
- thumb_func_start sub_80DC9A0
-sub_80DC9A0: @ 80DC9A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC9BC
- ldr r0, _080DC9FC
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r0, 0x4]
-_080DC9BC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DC9FC
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080DCA04
- ldr r4, _080DCA00
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DCA16
- .align 2, 0
-_080DC9FC: .4byte gUnknown_03004B00
-_080DCA00: .4byte gUnknown_0202F7C9
-_080DCA04:
- ldr r0, _080DCA2C
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DCA16:
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080DCA30
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x38]
- ldr r0, _080DCA34
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCA2C: .4byte gUnknown_0202F7C9
-_080DCA30: .4byte gUnknown_03004B00
-_080DCA34: .4byte sub_80DCA38
- thumb_func_end sub_80DC9A0
-
- thumb_func_start sub_80DCA38
-sub_80DCA38: @ 80DCA38
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DCA4E
- adds r0, r4, 0
- bl move_anim_8072740
- b _080DCA6A
-_080DCA4E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0xD
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
-_080DCA6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCA38
-
- thumb_func_start sub_80DCA70
-sub_80DCA70: @ 80DCA70
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCAA0
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldr r0, _080DCAA4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCAAC
- ldr r0, _080DCAA8
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080DCAB8
- .align 2, 0
-_080DCAA0: .4byte gUnknown_0202F7C9
-_080DCAA4: .4byte gUnknown_0202F7C8
-_080DCAA8: .4byte gUnknown_03004B00
-_080DCAAC:
- ldr r1, _080DCAE0
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080DCAB8:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080DCAE4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DCAD4
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_080DCAD4:
- ldr r0, _080DCAE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCAE0: .4byte gUnknown_03004B00
-_080DCAE4: .4byte gUnknown_0202F7C9
-_080DCAE8: .4byte sub_80DCAEC
- thumb_func_end sub_80DCA70
-
- thumb_func_start sub_80DCAEC
-sub_80DCAEC: @ 80DCAEC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DCB20
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080DCB20:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080DCB34
- adds r0, r3, 0
- bl move_anim_8072740
-_080DCB34:
- pop {r0}
- bx r0
- thumb_func_end sub_80DCAEC
-
- thumb_func_start sub_80DCB38
-sub_80DCB38: @ 80DCB38
- ldr r2, _080DCB54
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r1, 0x10
- strh r1, [r2]
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldr r1, _080DCB58
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DCB54: .4byte REG_BLDCNT
-_080DCB58: .4byte sub_80DCB5C
- thumb_func_end sub_80DCB38
-
- thumb_func_start sub_80DCB5C
-sub_80DCB5C: @ 80DCB5C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x32]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x13
- bgt _080DCB70
- adds r0, r1, 0x1
- strh r0, [r3, 0x32]
- b _080DCBA8
-_080DCB70:
- ldrh r1, [r3, 0x30]
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DCBA8
- ldrh r1, [r3, 0x2E]
- subs r1, 0x1
- strh r1, [r3, 0x2E]
- ldr r2, _080DCBAC
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DCBA8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DCBB0
- str r0, [r3, 0x1C]
-_080DCBA8:
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBAC: .4byte REG_BLDALPHA
-_080DCBB0: .4byte sub_80DCBB4
- thumb_func_end sub_80DCB5C
-
- thumb_func_start sub_80DCBB4
-sub_80DCBB4: @ 80DCBB4
- push {lr}
- ldr r1, _080DCBC8
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBC8: .4byte REG_BLDCNT
- thumb_func_end sub_80DCBB4
-
- thumb_func_start sub_80DCBCC
-sub_80DCBCC: @ 80DCBCC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DCBEC
- ldr r1, _080DCBE8
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080DCC0E
- .align 2, 0
-_080DCBE8: .4byte gUnknown_03004B00
-_080DCBEC:
- ldr r0, _080DCCE8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCC0E
- ldr r1, _080DCCEC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080DCC0E:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DCC5E
- ldr r0, _080DCCE8
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _080DCCF0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080DCC5E
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- beq _080DCC4C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DCC5E
-_080DCC4C:
- ldr r0, _080DCCEC
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x4]
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0]
-_080DCC5E:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080DCCF0
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- ldr r6, _080DCCEC
- lsrs r4, 24
- ldrh r0, [r6, 0x4]
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r6, 0x6]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r7, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r7, 0x22]
- lsrs r5, r1, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0x2E]
- strh r4, [r7, 0x32]
- strh r5, [r7, 0x36]
- ldr r0, _080DCCF4
- str r0, [r7, 0x1C]
- ldr r1, _080DCCF8
- adds r0, r7, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCCE8: .4byte gUnknown_0202F7C8
-_080DCCEC: .4byte gUnknown_03004B00
-_080DCCF0: .4byte gUnknown_0202F7C9
-_080DCCF4: .4byte sub_8078B34
-_080DCCF8: .4byte move_anim_8072740
- thumb_func_end sub_80DCBCC
-
- thumb_func_start sub_80DCCFC
-sub_80DCCFC: @ 80DCCFC
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DCD68
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCD1C
- ldr r1, _080DCD6C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DCD1C:
- ldr r4, _080DCD6C
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080DCD70
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080DCD74
- str r0, [r6, 0x1C]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCD68: .4byte gUnknown_0202F7C8
-_080DCD6C: .4byte gUnknown_03004B00
-_080DCD70: .4byte gUnknown_0202F7C9
-_080DCD74: .4byte sub_80DCD78
- thumb_func_end sub_80DCCFC
-
- thumb_func_start sub_80DCD78
-sub_80DCD78: @ 80DCD78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DCDA4
- adds r0, r4, 0
- bl move_anim_8072740
- b _080DCE34
-_080DCDA4:
- movs r0, 0x2E
- adds r0, r4
- mov r8, r0
- ldrh r7, [r4, 0x20]
- ldrh r5, [r4, 0x24]
- ldrh r1, [r4, 0x22]
- mov r12, r1
- ldrh r6, [r4, 0x26]
- mov r2, r8
- add r1, sp, 0x4
- movs r3, 0x7
-_080DCDBA:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCDBA
- adds r0, r7, r5
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080DCE34
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r2, r6, 16
- asrs r2, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- add r2, sp, 0x4
- mov r1, r8
- movs r3, 0x7
-_080DCE26:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCE26
-_080DCE34:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCD78
-
- thumb_func_start sub_80DCE40
-sub_80DCE40: @ 80DCE40
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DCE54
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DCE5C
- ldr r4, _080DCE58
- b _080DCE5E
- .align 2, 0
-_080DCE54: .4byte gUnknown_03004B00
-_080DCE58: .4byte gUnknown_0202F7C8
-_080DCE5C:
- ldr r4, _080DCE90
-_080DCE5E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, _080DCE94
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DCE98
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCE90: .4byte gUnknown_0202F7C9
-_080DCE94: .4byte move_anim_8074EE0
-_080DCE98: .4byte sub_80785E4
- thumb_func_end sub_80DCE40
-
- thumb_func_start sub_80DCE9C
-sub_80DCE9C: @ 80DCE9C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DCF08
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080DCEBC
- ldr r0, _080DCF0C
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
-_080DCEBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r4, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xE
- strh r0, [r5, 0x22]
- ldrb r1, [r6, 0x2]
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- strh r4, [r5, 0x2E]
- strh r4, [r5, 0x30]
- movs r0, 0x4
- strh r0, [r5, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, _080DCF10
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x38]
- ldr r1, _080DCF14
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r1, _080DCF18
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF08: .4byte gUnknown_03004B00
-_080DCF0C: .4byte gUnknown_0202F7C9
-_080DCF10: .4byte 0x0000ffba
-_080DCF14: .4byte sub_80DCF1C
-_080DCF18: .4byte sub_8078278
- thumb_func_end sub_80DCE9C
-
- thumb_func_start sub_80DCF1C
-sub_80DCF1C: @ 80DCF1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x20]
- adds r0, r1, r2
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x20
- strh r0, [r4, 0x34]
- ldr r0, _080DCF54
- strh r0, [r4, 0x36]
- ldr r1, _080DCF58
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080DCF5C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF54: .4byte 0x0000ffe8
-_080DCF58: .4byte move_anim_8074EE0
-_080DCF5C: .4byte sub_8078278
- thumb_func_end sub_80DCF1C
-
- thumb_func_start sub_80DCF60
-sub_80DCF60: @ 80DCF60
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DCF88
- ldrb r1, [r4, 0xA]
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- ldr r0, _080DCF8C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCF90
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080DCF96
- .align 2, 0
-_080DCF88: .4byte gUnknown_03004B00
-_080DCF8C: .4byte gUnknown_0202F7C8
-_080DCF90:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080DCF96:
- strh r0, [r5, 0x20]
- ldr r3, _080DCFD8
- ldrh r2, [r3, 0x2]
- ldrh r0, [r5, 0x22]
- adds r2, r0
- movs r4, 0
- strh r2, [r5, 0x22]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldrh r0, [r3, 0x6]
- adds r2, r0
- strh r2, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _080DCFDC
- str r0, [r5, 0x1C]
- ldr r1, _080DCFE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCFD8: .4byte gUnknown_03004B00
-_080DCFDC: .4byte sub_8078394
-_080DCFE0: .4byte move_anim_8074EE0
- thumb_func_end sub_80DCF60
-
- thumb_func_start sub_80DCFE4
-sub_80DCFE4: @ 80DCFE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCFFC
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DD000
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080DD008
- .align 2, 0
-_080DCFFC: .4byte gUnknown_03004B00
-_080DD000:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080DD008:
- ldr r1, _080DD024
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080DD028
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD024: .4byte gUnknown_03004B00
-_080DD028: .4byte sub_80DD02C
- thumb_func_end sub_80DCFE4
-
- thumb_func_start sub_80DD02C
-sub_80DD02C: @ 80DD02C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DD072
- adds r0, r4, 0
- bl move_anim_8072740
-_080DD072:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD02C
-
- thumb_func_start do_boulder_dust
-do_boulder_dust: @ 80DD078
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _080DD154
- ldr r2, _080DD158
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080DD15C
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DD0C4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080DD0C4:
- ldr r0, _080DD160
- strh r5, [r0]
- ldr r0, _080DD164
- strh r5, [r0]
- ldr r0, _080DD168
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r2, _080DD16C
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080DD170
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080DD174
- bl LZDecompressVram
- ldr r0, _080DD178
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080DD17C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DD120
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080DD120:
- ldr r0, _080DD180
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DD13A
- ldr r0, _080DD184
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DD13A
- movs r5, 0x1
-_080DD13A:
- ldr r0, _080DD188
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x8]
- ldr r0, _080DD18C
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD154: .4byte REG_BLDCNT
-_080DD158: .4byte 0x00003f42
-_080DD15C: .4byte REG_BG1CNT
-_080DD160: .4byte gUnknown_030042C0
-_080DD164: .4byte gUnknown_030041B4
-_080DD168: .4byte REG_BG1HOFS
-_080DD16C: .4byte 0x040000d4
-_080DD170: .4byte 0x85000400
-_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
-_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
-_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gUnknown_03004B00
-_080DD184: .4byte gUnknown_0202F7C8
-_080DD188: .4byte gTasks
-_080DD18C: .4byte sub_80DD190
- thumb_func_end do_boulder_dust
-
- thumb_func_start sub_80DD190
-sub_80DD190: @ 80DD190
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080DD1C0
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0
- bne _080DD1CC
- ldr r1, _080DD1C4
- ldr r5, _080DD1C8
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- b _080DD1D2
- .align 2, 0
-_080DD1C0: .4byte gTasks
-_080DD1C4: .4byte gUnknown_030042C0
-_080DD1C8: .4byte 0x0000fffa
-_080DD1CC:
- ldr r1, _080DD204
- ldrh r0, [r1]
- adds r0, 0x6
-_080DD1D2:
- strh r0, [r1]
- adds r4, r1, 0
- ldr r1, _080DD208
- ldr r5, _080DD20C
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r3
- movs r5, 0x20
- ldrsh r0, [r0, r5]
- mov r8, r2
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080DD1F8
- b _080DD37C
-_080DD1F8:
- lsls r0, 2
- ldr r1, _080DD210
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD204: .4byte gUnknown_030042C0
-_080DD208: .4byte gUnknown_030041B4
-_080DD20C: .4byte 0x0000ffff
-_080DD210: .4byte _080DD214
- .align 2, 0
-_080DD214:
- .4byte _080DD228
- .4byte _080DD270
- .4byte _080DD292
- .4byte _080DD2D4
- .4byte _080DD358
-_080DD228:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080DD242
- b _080DD37C
-_080DD242:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD26C
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r0, [r3, r2]
- cmp r0, 0x7
- beq _080DD260
- b _080DD37C
-_080DD260:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD26C: .4byte REG_BLDALPHA
-_080DD270:
- mov r5, r8
- adds r0, r5, r7
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080DD37C
- movs r0, 0x7
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080DD37C
-_080DD292:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080DD37C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD2D0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080DD37C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD2D0: .4byte REG_BLDALPHA
-_080DD2D4:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _080DD38C
- movs r4, 0x80
- lsls r4, 5
- mov r9, r5
- ldr r0, _080DD390
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r10, r0
-_080DD2F6:
- str r6, [sp, 0xC]
- mov r0, r9
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080DD2F6
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r10
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080DD38C
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080DD394
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DD344
- ldr r2, _080DD398
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080DD344:
- ldr r0, _080DD39C
- mov r5, r8
- adds r1, r5, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r4, _080DD3A0
- ldr r2, _080DD3A4
-_080DD358:
- movs r1, 0
- strh r1, [r4]
- strh r1, [r2]
- ldr r0, _080DD3A8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080DD398
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- bl move_anim_task_del
-_080DD37C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD38C: .4byte 0x040000d4
-_080DD390: .4byte 0x85000400
-_080DD394: .4byte 0x85000200
-_080DD398: .4byte REG_BG1CNT
-_080DD39C: .4byte gTasks
-_080DD3A0: .4byte gUnknown_030042C0
-_080DD3A4: .4byte gUnknown_030041B4
-_080DD3A8: .4byte REG_BLDCNT
- thumb_func_end sub_80DD190
-
- thumb_func_start sub_80DD3AC
-sub_80DD3AC: @ 80DD3AC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD428
- ldr r4, _080DD3F0
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DD3F8
- ldr r0, _080DD3F4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DD3F8
- movs r0, 0x98
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- subs r0, 0x40
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _080DD3FC
- .align 2, 0
-_080DD3F0: .4byte gUnknown_03004B00
-_080DD3F4: .4byte gUnknown_0202F7C8
-_080DD3F8:
- ldr r0, _080DD41C
- strh r0, [r5, 0x20]
-_080DD3FC:
- ldr r4, _080DD420
- ldrh r0, [r4]
- strh r0, [r5, 0x22]
- ldr r1, _080DD424
- adds r0, r5, 0
- bl SetSubspriteTables
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DD484
- .align 2, 0
-_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gUnknown_03004B00
-_080DD424: .4byte gUnknown_083DAD10
-_080DD428:
- ldrh r1, [r5, 0x30]
- ldrh r3, [r5, 0x34]
- adds r1, r3
- ldrh r2, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r2, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r3, [r5, 0x24]
- adds r0, r3
- strh r0, [r5, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r3, [r5, 0x26]
- adds r0, r3
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x34]
- ands r2, r0
- strh r2, [r5, 0x36]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD46E
- movs r2, 0x20
- ldrsh r0, [r5, r2]
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- adds r0, r1
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- ble _080DD484
- b _080DD480
-_080DD46E:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DD484
-_080DD480:
- ldr r0, _080DD48C
- str r0, [r5, 0x1C]
-_080DD484:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD48C: .4byte move_anim_8072740
- thumb_func_end sub_80DD3AC
-
- thumb_func_start sub_80DD490
-sub_80DD490: @ 80DD490
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD4C8
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _080DD4CC
- str r0, [r4, 0x1C]
- ldr r1, _080DD4D0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD4C8: .4byte gUnknown_03004B00
-_080DD4CC: .4byte sub_8078B34
-_080DD4D0: .4byte move_anim_8072740
- thumb_func_end sub_80DD490
-
- thumb_func_start sub_80DD4D4
-sub_80DD4D4: @ 80DD4D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DD554
- adds r6, r1, r0
- ldr r5, _080DD558
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, _080DD55C
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xC0
- lsls r2, 13
- adds r0, r2
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080DD544
- mov r8, r7
-_080DD544:
- bl sub_80DD8BC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080DD560
- movs r0, 0x20
- b _080DD566
- .align 2, 0
-_080DD554: .4byte gTasks
-_080DD558: .4byte gUnknown_0202F7C8
-_080DD55C: .4byte gUnknown_0202F7C9
-_080DD560:
- lsls r1, r5, 3
- movs r0, 0x30
- subs r0, r1
-_080DD566:
- strh r0, [r6, 0x18]
- movs r4, 0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0x1E]
- strh r4, [r6, 0x1A]
- movs r0, 0x1
- strh r0, [r6, 0x20]
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _080DD57E
- adds r0, 0x7
-_080DD57E:
- asrs r0, 3
- subs r0, 0x1
- strh r0, [r6, 0x1C]
- mov r2, r9
- lsls r0, r2, 3
- strh r0, [r6, 0xC]
- lsls r0, r7, 3
- strh r0, [r6, 0xE]
- mov r1, r10
- subs r0, r1, r2
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x10]
- mov r1, r8
- subs r0, r1, r7
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x12]
- strh r4, [r6, 0x14]
- strh r4, [r6, 0x16]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- strh r4, [r6, 0x22]
- asrs r0, 24
- lsls r4, 16
- asrs r4, 16
- subs r0, r4
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x24]
- strh r5, [r6, 0xA]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- ldr r0, _080DD600
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD600: .4byte sub_80DD604
- thumb_func_end sub_80DD4D4
-
- thumb_func_start sub_80DD604
-sub_80DD604: @ 80DD604
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DD628
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080DD61E
- b _080DD76C
-_080DD61E:
- lsls r0, 2
- ldr r1, _080DD62C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD628: .4byte gTasks
-_080DD62C: .4byte _080DD630
- .align 2, 0
-_080DD630:
- .4byte _080DD644
- .4byte _080DD6A8
- .4byte _080DD6B0
- .4byte _080DD70C
- .4byte _080DD75E
-_080DD644:
- ldrh r2, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- subs r2, r0
- strh r2, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- ldr r3, _080DD6A4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 16
- asrs r2, 19
- strh r2, [r0, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080DD694
- movs r0, 0x14
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD694:
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA2
- bl PlaySE12WithPanning
- b _080DD76C
- .align 2, 0
-_080DD6A4: .4byte gSprites
-_080DD6A8:
- ldrh r0, [r4, 0x1E]
- subs r0, 0x1
- strh r0, [r4, 0x1E]
- b _080DD750
-_080DD6B0:
- ldrh r0, [r4, 0x1A]
- subs r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080DD6D0
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0x14]
- adds r0, r2
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- b _080DD6DA
-_080DD6D0:
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD6DA:
- ldr r2, _080DD708
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- b _080DD76C
- .align 2, 0
-_080DD708: .4byte gSprites
-_080DD70C:
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080DD74A
- movs r0, 0
- strh r0, [r4, 0x1A]
- adds r0, r4, 0
- bl sub_80DD774
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xAF
- bl PlaySE12WithPanning
-_080DD74A:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
-_080DD750:
- lsls r0, 16
- cmp r0, 0
- bne _080DD76C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DD76C
-_080DD75E:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DD76C
- adds r0, r2, 0
- bl move_anim_task_del
-_080DD76C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD604
-
- thumb_func_start sub_80DD774
-sub_80DD774: @ 80DD774
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _080DD864
- lsls r0, 2
- ldr r1, _080DD790
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD790: .4byte _080DD794
- .align 2, 0
-_080DD794:
- .4byte _080DD7A8
- .4byte _080DD7B4
- .4byte _080DD7B4
- .4byte _080DD7C0
- .4byte _080DD7CC
-_080DD7A8:
- ldr r3, _080DD7B0
- movs r5, 0
- b _080DD7D0
- .align 2, 0
-_080DD7B0: .4byte gSpriteTemplate_83DAD78
-_080DD7B4:
- ldr r3, _080DD7BC
- movs r5, 0x50
- b _080DD7D0
- .align 2, 0
-_080DD7BC: .4byte gSpriteTemplate_83DAD90
-_080DD7C0:
- ldr r3, _080DD7C8
- movs r5, 0x40
- b _080DD7D0
- .align 2, 0
-_080DD7C8: .4byte gSpriteTemplate_83DAD90
-_080DD7CC:
- ldr r3, _080DD86C
- movs r5, 0x30
-_080DD7D0:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0xE]
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- lsls r0, 2
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r0, r3, 0
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DD85C
- ldr r1, _080DD870
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x2E]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r2, r6, r2
- movs r6, 0xA
- ldrsh r3, [r4, r6]
- lsls r1, r3, 1
- adds r1, r3
- adds r2, r1
- strh r2, [r0, 0x32]
- strh r7, [r0, 0x36]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r2, 1
- movs r3, 0x10
- negs r3, r3
- adds r1, r3, 0
- subs r1, r2
- strh r1, [r0, 0x38]
- ldrh r3, [r0, 0x4]
- lsls r2, r3, 22
- lsrs r2, 22
- adds r2, r5
- ldr r5, _080DD874
- adds r1, r5, 0
- ands r2, r1
- ldr r1, _080DD878
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- bl sub_80786EC
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_080DD85C:
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x20]
-_080DD864:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD86C: .4byte gSpriteTemplate_83DAD90
-_080DD870: .4byte gSprites
-_080DD874: .4byte 0x000003ff
-_080DD878: .4byte 0xfffffc00
- thumb_func_end sub_80DD774
-
- thumb_func_start sub_80DD87C
-sub_80DD87C: @ 80DD87C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DD8AE
- ldr r0, _080DD8B4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080DD8A8
- ldr r0, _080DD8B8
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- subs r0, 0x1
- strh r0, [r1, 0x1E]
-_080DD8A8:
- adds r0, r4, 0
- bl DestroySprite
-_080DD8AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD8B4: .4byte sub_80DD604
-_080DD8B8: .4byte gTasks
- thumb_func_end sub_80DD87C
-
- thumb_func_start sub_80DD8BC
-sub_80DD8BC: @ 80DD8BC
- push {lr}
- ldr r0, _080DD8E4
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080DD8DE
- movs r1, 0x1
-_080DD8DE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080DD8E4: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80DD8BC
-
- thumb_func_start sub_80DD8E8
-sub_80DD8E8: @ 80DD8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD920
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DD924
- str r0, [r4, 0x1C]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD920: .4byte gUnknown_03004B00
-_080DD924: .4byte sub_80DD928
- thumb_func_end sub_80DD8E8
-
- thumb_func_start sub_80DD928
-sub_80DD928: @ 80DD928
- push {lr}
- adds r2, r0, 0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x34]
- movs r3, 0x34
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080DD960
- ldrh r3, [r2, 0x32]
- adds r0, r1, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r1, r0
- strh r1, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r1, 16
- cmp r1, 0
- ble _080DD972
- movs r0, 0
- strh r0, [r2, 0x34]
- b _080DD972
-_080DD960:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080DD972
- adds r0, r2, 0
- bl move_anim_8072740
-_080DD972:
- pop {r0}
- bx r0
- thumb_func_end sub_80DD928
-
- thumb_func_start sub_80DD978
-sub_80DD978: @ 80DD978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DD9A0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DD994
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DD994:
- adds r0, r4, 0
- bl sub_807941C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9A0: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80DD978
-
- thumb_func_start sub_80DD9A4
-sub_80DD9A4: @ 80DD9A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD9F0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DD9F4
- ldrh r3, [r2]
- ldrh r5, [r4, 0x20]
- adds r1, r3, r5
- strh r1, [r4, 0x20]
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r3, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x38]
- ldrb r1, [r2, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080DD9F8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9F0: .4byte gUnknown_0202F7C9
-_080DD9F4: .4byte gUnknown_03004B00
-_080DD9F8: .4byte sub_80DD9FC
- thumb_func_end sub_80DD9A4
-
- thumb_func_start sub_80DD9FC
-sub_80DD9FC: @ 80DD9FC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- ldrh r1, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- subs r1, r0
- strh r1, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8C
- ble _080DDA46
- adds r0, r4, 0
- bl move_anim_8072740
-_080DDA46:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD9FC
-
- thumb_func_start sub_80DDA4C
-sub_80DDA4C: @ 80DDA4C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080DDA84
- ldr r0, [r2]
- cmp r0, 0x20
- bgt _080DDA60
- ldr r1, _080DDA88
- movs r0, 0
- strh r0, [r1, 0xE]
-_080DDA60:
- ldr r2, [r2]
- adds r0, r2, 0
- subs r0, 0x21
- cmp r0, 0x20
- bhi _080DDA70
- ldr r1, _080DDA88
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080DDA70:
- cmp r2, 0x41
- ble _080DDA7A
- ldr r1, _080DDA88
- movs r0, 0x2
- strh r0, [r1, 0xE]
-_080DDA7A:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080DDA84: .4byte gUnknown_0202F7B8
-_080DDA88: .4byte gUnknown_03004B00
- thumb_func_end sub_80DDA4C
-
- thumb_func_start sub_80DDA8C
-sub_80DDA8C: @ 80DDA8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080DDAE8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DDAAE
- movs r0, 0
- bl sub_80789D4
- movs r0, 0xC8
- strh r0, [r5, 0xA]
-_080DDAAE:
- ldr r4, _080DDAEC
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- ldrh r0, [r5, 0xA]
- subs r0, 0x3
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _080DDADA
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl move_anim_task_del
-_080DDADA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDAE8: .4byte gTasks
-_080DDAEC: .4byte gUnknown_030041B8
- thumb_func_end sub_80DDA8C
-
- thumb_func_start sub_80DDAF0
-sub_80DDAF0: @ 80DDAF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDB5C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDB1C
- movs r0, 0
- bl sub_80789D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080DDB60
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
-_080DDB1C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x50
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0xA]
- ldr r6, _080DDB60
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0x4
- bl Cos
- ldrh r4, [r4, 0xC]
- adds r0, r4
- strh r0, [r6]
- ldr r0, _080DDB64
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- ldr r0, _080DDB68
- cmp r1, r0
- bne _080DDB54
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl move_anim_task_del
-_080DDB54:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDB5C: .4byte gTasks
-_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gUnknown_03004B00
-_080DDB68: .4byte 0x00000fff
- thumb_func_end sub_80DDAF0
-
- thumb_func_start sub_80DDB6C
-sub_80DDB6C: @ 80DDB6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DDBC8
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080DDBCC
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078BD4
- ldr r0, _080DDBD0
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- ldr r1, _080DDBD4
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDBC8: .4byte gUnknown_03004B00
-_080DDBCC: .4byte gUnknown_0202F7C9
-_080DDBD0: .4byte sub_80DDBD8
-_080DDBD4: .4byte REG_BLDCNT
- thumb_func_end sub_80DDB6C
-
- thumb_func_start sub_80DDBD8
-sub_80DDBD8: @ 80DDBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80DDCC8
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DDBF8
- ldr r0, _080DDBF4
- str r0, [r4, 0x1C]
- b _080DDC42
- .align 2, 0
-_080DDBF4: .4byte sub_80DDC4C
-_080DDBF8:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC30
- cmp r2, 0xC4
- ble _080DDC42
-_080DDC30:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC42
- ldr r0, _080DDC48
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xC4
- bl PlaySE12WithPanning
-_080DDC42:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDC48: .4byte gUnknown_0202F7D2
- thumb_func_end sub_80DDBD8
-
- thumb_func_start sub_80DDC4C
-sub_80DDC4C: @ 80DDC4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC92
- cmp r2, 0xC4
- ble _080DDC9E
-_080DDC92:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC9E
- movs r0, 0xC4
- bl PlaySE
-_080DDC9E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDCBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DDCB8
- str r0, [r4, 0x1C]
- b _080DDCC2
- .align 2, 0
-_080DDCB8: .4byte sub_807861C
-_080DDCBC:
- adds r0, r4, 0
- bl sub_80DDCC8
-_080DDCC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDC4C
-
- thumb_func_start sub_80DDCC8
-sub_80DDCC8: @ 80DDCC8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0xFF
- ble _080DDCEC
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- lsls r0, 16
- ldr r1, _080DDCE8
- cmp r0, r1
- bne _080DDD4C
- movs r0, 0
- b _080DDD4A
- .align 2, 0
-_080DDCE8: .4byte 0x010d0000
-_080DDCEC:
- ldrh r1, [r3, 0x3C]
- adds r4, r1, 0x1
- strh r4, [r3, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080DDD4C
- ldr r1, _080DDD10
- ands r1, r4
- strh r1, [r3, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DDD14
- adds r0, r2, 0x1
- b _080DDD16
- .align 2, 0
-_080DDD10: .4byte 0xffffff00
-_080DDD14:
- subs r0, r2, 0x1
-_080DDD16:
- strh r0, [r3, 0x3A]
- ldr r2, _080DDD54
- ldrh r1, [r3, 0x3A]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080DDD32
- cmp r0, 0x10
- bne _080DDD3E
-_080DDD32:
- ldrh r0, [r3, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r3, 0x3C]
-_080DDD3E:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DDD4C
- movs r0, 0x80
- lsls r0, 1
-_080DDD4A:
- strh r0, [r3, 0x3A]
-_080DDD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DDCC8
-
- thumb_func_start sub_80DDD58
-sub_80DDD58: @ 80DDD58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080DDD74
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD74: .4byte sub_80DDD78
- thumb_func_end sub_80DDD58
-
- thumb_func_start sub_80DDD78
-sub_80DDD78: @ 80DDD78
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _080DDDAC
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _080DDDB6
-_080DDDAC:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_080DDDB6:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _080DDDE8
- adds r0, r4, 0
- bl move_anim_8072740
-_080DDDE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDD78
-
- thumb_func_start sub_80DDDF0
-sub_80DDDF0: @ 80DDDF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080DDE68
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080DDE6C
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, _080DDE70
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, _080DDE74
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, _080DDE78
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDE68: .4byte REG_BLDCNT
-_080DDE6C: .4byte gSprites
-_080DDE70: .4byte gTasks
-_080DDE74: .4byte gUnknown_03004B00
-_080DDE78: .4byte sub_80DDE7C
- thumb_func_end sub_80DDDF0
-
- thumb_func_start sub_80DDE7C
-sub_80DDE7C: @ 80DDE7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DDEC4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DDEBE
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xC]
- adds r1, 0x1
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- ldr r2, _080DDEC8
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- bne _080DDEBE
- ldr r0, _080DDECC
- str r0, [r3]
-_080DDEBE:
- pop {r0}
- bx r0
- .align 2, 0
-_080DDEC4: .4byte gTasks
-_080DDEC8: .4byte REG_BLDALPHA
-_080DDECC: .4byte sub_80DDED0
- thumb_func_end sub_80DDE7C
-
- thumb_func_start sub_80DDED0
-sub_80DDED0: @ 80DDED0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDEF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DDEF8
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080DDF36
- .align 2, 0
-_080DDEF4: .4byte gTasks
-_080DDEF8:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- movs r6, 0
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080DDF22
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _080DDF36
-_080DDF22:
- adds r0, r1, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
- ldr r0, _080DDF3C
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
-_080DDF36:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDF3C: .4byte REG_BLDCNT
- thumb_func_end sub_80DDED0
-
- thumb_func_start sub_80DDF40
-sub_80DDF40: @ 80DDF40
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, _080DDFE4
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDFDC: .4byte gUnknown_0202F7C8
-_080DDFE0: .4byte gUnknown_03004B00
-_080DDFE4: .4byte sub_80DDFE8
- thumb_func_end sub_80DDF40
-
- thumb_func_start sub_80DDFE8
-sub_80DDFE8: @ 80DDFE8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DE032
- cmp r0, 0x1
- bgt _080DDFFE
- cmp r0, 0
- beq _080DE008
- b _080DE0F6
-_080DDFFE:
- cmp r0, 0x2
- beq _080DE09C
- cmp r0, 0x3
- beq _080DE0F0
- b _080DE0F6
-_080DE008:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- b _080DE0E2
-_080DE032:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE098
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _080DE0E2
- .align 2, 0
-_080DE098: .4byte gUnknown_0202F7C9
-_080DE09C:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE0EC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DE0E2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DE0F6
- .align 2, 0
-_080DE0EC: .4byte gUnknown_0202F7C9
-_080DE0F0:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080DE0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDFE8
-
- thumb_func_start sub_80DE0FC
-sub_80DE0FC: @ 80DE0FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080DE110
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE110: .4byte sub_80DE114
- thumb_func_end sub_80DE0FC
-
- thumb_func_start sub_80DE114
-sub_80DE114: @ 80DE114
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DE1AA
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _080DE13E
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_080DE13E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080DE14E
- cmp r0, 0x1
- beq _080DE158
- movs r6, 0x1
- b _080DE162
-_080DE14E:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _080DE162
- b _080DE166
-_080DE158:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _080DE162
- movs r5, 0x1
-_080DE162:
- cmp r5, 0
- beq _080DE198
-_080DE166:
- ldrb r2, [r4]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DE1AA
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DE1AA
-_080DE198:
- cmp r6, 0
- beq _080DE1A4
- adds r0, r3, 0
- bl move_anim_8072740
- b _080DE1AA
-_080DE1A4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_080DE1AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE114
-
- thumb_func_start sub_80DE1B0
-sub_80DE1B0: @ 80DE1B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE1DC
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE1E0
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DE2C0
- .align 2, 0
-_080DE1DC: .4byte gTasks
-_080DE1E0:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r1, _080DE244
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DE248
- ldrh r0, [r5, 0xE]
- lsls r0, 8
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080DE24C
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, _080DE250
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DE258
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE254
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _080DE276
- .align 2, 0
-_080DE244: .4byte REG_BLDCNT
-_080DE248: .4byte REG_BLDALPHA
-_080DE24C: .4byte gSprites
-_080DE250: .4byte gUnknown_0202F7C9
-_080DE254: .4byte 0x0000ff70
-_080DE258:
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2C8
-_080DE276:
- strh r1, [r0, 0x32]
- ldr r4, _080DE2CC
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2D0
- bl oamt_set_x3A_32
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080DE2D4
- str r1, [r0]
- ldr r0, _080DE2D8
- str r0, [r5]
-_080DE2C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2C8: .4byte 0x0000ff90
-_080DE2CC: .4byte gSprites
-_080DE2D0: .4byte SpriteCallbackDummy
-_080DE2D4: .4byte sub_8078394
-_080DE2D8: .4byte sub_80DE2DC
- thumb_func_end sub_80DE1B0
-
- thumb_func_start sub_80DE2DC
-sub_80DE2DC: @ 80DE2DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DE300
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE37C
- cmp r0, 0x1
- bgt _080DE304
- cmp r0, 0
- beq _080DE30A
- b _080DE3A6
- .align 2, 0
-_080DE300: .4byte gTasks
-_080DE304:
- cmp r0, 0x2
- beq _080DE3A0
- b _080DE3A6
-_080DE30A:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _080DE328
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DE328
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080DE328:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _080DE33E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DE33E
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_080DE33E:
- ldr r2, _080DE374
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DE3A6
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080DE3A6
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DE378
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE374: .4byte REG_BLDALPHA
-_080DE378: .4byte gSprites
-_080DE37C:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DE3A6
- ldr r0, _080DE39C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE39C: .4byte REG_BLDCNT
-_080DE3A0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080DE3A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE2DC
-
- thumb_func_start sub_80DE3AC
-sub_80DE3AC: @ 80DE3AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080DE3CC
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080DE3D0
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080DE3CC: .4byte gTasks
-_080DE3D0: .4byte sub_80DE3D4
- thumb_func_end sub_80DE3AC
-
- thumb_func_start sub_80DE3D4
-sub_80DE3D4: @ 80DE3D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE40C
- adds r5, r0, r1
- ldr r0, _080DE410
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080DE400
- b _080DE604
-_080DE400:
- lsls r0, 2
- ldr r1, _080DE414
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DE40C: .4byte gTasks
-_080DE410: .4byte gUnknown_0202F7C9
-_080DE414: .4byte _080DE418
- .align 2, 0
-_080DE418:
- .4byte _080DE42C
- .4byte _080DE500
- .4byte _080DE544
- .4byte _080DE5AC
- .4byte _080DE5E0
-_080DE42C:
- ldr r7, _080DE460
- adds r0, r7, 0
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- mov r8, r2
- strh r0, [r5, 0x24]
- cmp r0, 0xFF
- beq _080DE456
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE464
- adds r0, r7, 0
- bl FreeSpritePaletteByTag
-_080DE456:
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DE60A
- .align 2, 0
-_080DE460: .4byte 0x00002771
-_080DE464:
- ldr r4, _080DE4E4
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r5, 0x24]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- mov r3, r8
- strh r3, [r5, 0xA]
- strh r3, [r5, 0xC]
- movs r0, 0x10
- strh r0, [r5, 0xE]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x10]
- cmp r6, 0x1
- bne _080DE4EC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4E8
- b _080DE4F4
- .align 2, 0
-_080DE4E4: .4byte gSprites
-_080DE4E8: .4byte 0x0000fdff
-_080DE4EC:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4FC
-_080DE4F4:
- ands r0, r1
- strh r0, [r2]
- b _080DE604
- .align 2, 0
-_080DE4FC: .4byte 0x0000fbff
-_080DE500:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x24]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- lsls r0, 1
- ldr r1, _080DE534
- adds r0, r1
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- lsls r1, 1
- ldr r2, _080DE538
- adds r1, r2
- ldr r2, _080DE53C
- bl CpuSet
- ldrh r0, [r5, 0x10]
- ldr r3, _080DE540
- movs r1, 0x10
- movs r2, 0xA
- bl BlendPalette
- b _080DE604
- .align 2, 0
-_080DE534: .4byte gPlttBufferUnfaded
-_080DE538: .4byte gPlttBufferFaded
-_080DE53C: .4byte REG_BG0CNT
-_080DE540: .4byte 0x00003c0d
-_080DE544:
- ldr r2, _080DE580
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080DE564
- movs r2, 0
-_080DE564:
- cmp r6, 0x1
- bne _080DE584
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- b _080DE59C
- .align 2, 0
-_080DE580: .4byte gSprites
-_080DE584:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
-_080DE59C:
- movs r2, 0x2
- movs r3, 0x6
- bl sub_8089944
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- b _080DE604
-_080DE5AC:
- cmp r6, 0x1
- bne _080DE5C0
- ldr r1, _080DE5B8
- ldr r2, _080DE5BC
- adds r0, r2, 0
- b _080DE5C6
- .align 2, 0
-_080DE5B8: .4byte REG_BLDCNT
-_080DE5BC: .4byte 0x00003f42
-_080DE5C0:
- ldr r1, _080DE5D4
- ldr r3, _080DE5D8
- adds r0, r3, 0
-_080DE5C6:
- strh r0, [r1]
- ldr r1, _080DE5DC
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _080DE604
- .align 2, 0
-_080DE5D4: .4byte REG_BLDCNT
-_080DE5D8: .4byte 0x00003f44
-_080DE5DC: .4byte REG_BLDALPHA
-_080DE5E0:
- cmp r6, 0x1
- bne _080DE5F0
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE5FA
-_080DE5F0:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE5FA:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080DE618
- str r0, [r5]
-_080DE604:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_080DE60A:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE618: .4byte sub_80DE61C
- thumb_func_end sub_80DE3D4
-
- thumb_func_start sub_80DE61C
-sub_80DE61C: @ 80DE61C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DE6A0
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0
- bne _080DE654
- ldr r1, _080DE6A4
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_080DE654:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _080DE676
- ldr r1, _080DE6A4
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_080DE676:
- ldr r2, _080DE6A8
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _080DE698
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080DE6AC
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_080DE698:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE6A0: .4byte gTasks
-_080DE6A4: .4byte gSineTable
-_080DE6A8: .4byte REG_BLDALPHA
-_080DE6AC: .4byte sub_80DE6B0
- thumb_func_end sub_80DE61C
-
- thumb_func_start sub_80DE6B0
-sub_80DE6B0: @ 80DE6B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DE6E0
- adds r4, r0, r1
- ldr r0, _080DE6E4
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE72C
- cmp r0, 0x1
- bgt _080DE6E8
- cmp r0, 0
- beq _080DE6EE
- b _080DE7AA
- .align 2, 0
-_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gUnknown_0202F7C9
-_080DE6E8:
- cmp r0, 0x2
- beq _080DE740
- b _080DE7AA
-_080DE6EE:
- ldr r1, _080DE710
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- cmp r6, 0x1
- bne _080DE718
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE714
- b _080DE720
- .align 2, 0
-_080DE710: .4byte gUnknown_03004DC0
-_080DE714: .4byte 0x0000fdff
-_080DE718:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE728
-_080DE720:
- ands r0, r1
- strh r0, [r2]
- b _080DE7AA
- .align 2, 0
-_080DE728: .4byte 0x0000fbff
-_080DE72C:
- ldrh r0, [r4, 0x10]
- ldr r3, _080DE73C
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- b _080DE7AA
- .align 2, 0
-_080DE73C: .4byte 0x00003c0d
-_080DE740:
- ldr r3, _080DE788
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl obj_delete_but_dont_free_vram
- ldr r0, _080DE78C
- bl FreeSpritePaletteByTag
- ldr r0, _080DE790
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- cmp r6, 0x1
- bne _080DE794
- subs r0, 0x52
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE79E
- .align 2, 0
-_080DE788: .4byte gSprites
-_080DE78C: .4byte 0x00002771
-_080DE790: .4byte REG_BLDCNT
-_080DE794:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE79E:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080DE7AA:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE6B0
-
- thumb_func_start sub_80DE7B8
-sub_80DE7B8: @ 80DE7B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r0, _080DE7F4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DE800
- ldr r4, _080DE7F8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE7FC
- b _080DE824
- .align 2, 0
-_080DE7F4: .4byte gUnknown_03004B00
-_080DE7F8: .4byte gUnknown_0202F7C8
-_080DE7FC: .4byte gUnknown_0202F7C9
-_080DE800:
- ldr r4, _080DE8C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE8CC
-_080DE824:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xE0
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- mov r8, r5
- mov r2, r9
- subs r4, r2, r5
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r6, 4
- strh r0, [r7, 0x2E]
- lsls r0, r5, 4
- strh r0, [r7, 0x30]
- mov r1, r10
- subs r0, r1, r6
- lsls r0, 4
- ldr r5, _080DE8D0
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r7, 0x32]
- lsls r4, 16
- asrs r4, 12
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r7, 0x34]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0x36]
- mov r1, r10
- strh r1, [r7, 0x38]
- mov r2, r9
- strh r2, [r7, 0x3A]
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r7, 0x3C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x5]
- strh r6, [r7, 0x20]
- mov r2, r8
- strh r2, [r7, 0x22]
- ldr r0, _080DE8D4
- str r0, [r7, 0x1C]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE8C8: .4byte gUnknown_0202F7C9
-_080DE8CC: .4byte gUnknown_0202F7C8
-_080DE8D0: .4byte gUnknown_03004B00
-_080DE8D4: .4byte sub_80DE8D8
- thumb_func_end sub_80DE7B8
-
- thumb_func_start sub_80DE8D8
-sub_80DE8D8: @ 80DE8D8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x36]
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080DE910
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r1, r4
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080DE910
- strh r0, [r2, 0x2E]
-_080DE910:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE8D8
-
- thumb_func_start sub_80DE918
-sub_80DE918: @ 80DE918
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DEA68
- adds r1, r0
- str r1, [sp]
- ldr r1, _080DEA6C
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0
- ldr r1, [sp]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- movs r0, 0x10
- strh r0, [r1, 0x1A]
- ldr r2, _080DEA70
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldr r4, _080DEA74
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DE988
- b _080DEA88
-_080DE988:
- movs r4, 0
-_080DE98A:
- lsls r1, r4, 16
- asrs r3, r1, 16
- ldr r0, _080DEA74
- ldrb r2, [r0]
- str r1, [sp, 0x10]
- cmp r3, r2
- beq _080DEA56
- movs r0, 0x2
- eors r2, r0
- cmp r3, r2
- beq _080DEA56
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DEA56
- ldr r6, [sp, 0x4]
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- asrs r7, r0, 16
- ldr r0, _080DEA78
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEA56
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r1, _080DEA7C
- adds r4, r5, r1
- lsls r0, r6, 4
- strh r0, [r4, 0x2E]
- lsls r0, r7, 4
- strh r0, [r4, 0x30]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 4
- ldr r3, _080DEA70
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r7
- lsls r0, 4
- ldr r2, _080DEA70
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEA70
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- ldr r0, _080DEA80
- adds r5, r0
- ldr r0, _080DEA84
- str r0, [r5]
- ldr r2, [sp]
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- adds r1, 0xD
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
-_080DEA56:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080DE98A
- b _080DEB0C
- .align 2, 0
-_080DEA68: .4byte gTasks
-_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gUnknown_03004B00
-_080DEA74: .4byte gUnknown_0202F7C8
-_080DEA78: .4byte gSpriteTemplate_83DAF08
-_080DEA7C: .4byte gSprites
-_080DEA80: .4byte gSprites + 0x1C
-_080DEA84: .4byte sub_80DE8D8
-_080DEA88:
- ldr r0, _080DEB24
- ldr r7, [sp, 0x4]
- ldr r2, [sp, 0x8]
- lsls r1, r2, 16
- asrs r1, 16
- str r1, [sp, 0xC]
- adds r1, r7, 0
- ldr r2, [sp, 0xC]
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEB0C
- movs r3, 0x30
- mov r10, r3
- movs r0, 0x28
- mov r9, r0
- ldr r6, _080DEB28
- mov r1, r8
- lsls r5, r1, 4
- add r5, r8
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, r7, 4
- strh r0, [r4, 0x2E]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 4
- strh r0, [r4, 0x30]
- subs r0, r3, r7
- lsls r0, 4
- ldr r3, _080DEB2C
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- lsls r0, 4
- ldr r2, _080DEB2C
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEB2C
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _080DEB30
- str r0, [r5]
- mov r1, r8
- ldr r0, [sp]
- strh r1, [r0, 0x22]
- movs r0, 0x1
- ldr r2, [sp]
- strh r0, [r2, 0x20]
-_080DEB0C:
- ldr r0, _080DEB34
- ldr r3, [sp]
- str r0, [r3]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEB24: .4byte gSpriteTemplate_83DAF08
-_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gUnknown_03004B00
-_080DEB30: .4byte sub_80DE8D8
-_080DEB34: .4byte sub_80DEB38
- thumb_func_end sub_80DE918
-
- thumb_func_start sub_80DEB38
-sub_80DEB38: @ 80DEB38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DEB5C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DEBEE
- cmp r1, 0x1
- bgt _080DEB60
- cmp r1, 0
- beq _080DEB6E
- b _080DECA4
- .align 2, 0
-_080DEB5C: .4byte gTasks
-_080DEB60:
- cmp r1, 0x2
- bne _080DEB66
- b _080DEC80
-_080DEB66:
- cmp r1, 0x3
- bne _080DEB6C
- b _080DEC94
-_080DEB6C:
- b _080DECA4
-_080DEB6E:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DEBCE
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DEBCE
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DEBA4
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEBB2
- adds r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEBB2
-_080DEBA4:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBB2
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEBB2:
- ldr r2, _080DEBE0
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- ble _080DEBCE
- movs r0, 0
- strh r0, [r4, 0x16]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080DEBCE:
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBE4
- subs r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _080DECA4
- .align 2, 0
-_080DEBE0: .4byte REG_BLDALPHA
-_080DEBE4:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DECA4
- b _080DEC8C
-_080DEBEE:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DECA4
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080DEC1E
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEC2C
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEC2C
-_080DEC1E:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEC2C
- adds r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEC2C:
- ldr r2, _080DEC48
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0x18]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DECA4
- movs r5, 0
- b _080DEC70
- .align 2, 0
-_080DEC48: .4byte REG_BLDALPHA
-_080DEC4C:
- adds r1, r5, 0
- adds r1, 0xD
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DEC7C
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080DEC70:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _080DEC4C
- b _080DEC8C
- .align 2, 0
-_080DEC7C: .4byte gSprites
-_080DEC80:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- ble _080DECA4
-_080DEC8C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DECA4
-_080DEC94:
- ldr r0, _080DECAC
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080DECA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DECAC: .4byte REG_BLDCNT
- thumb_func_end sub_80DEB38
-
- thumb_func_start sub_80DECB0
-sub_80DECB0: @ 80DECB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080DECF8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080DECFC
- strh r1, [r0]
- ldr r1, _080DED00
- ldr r2, _080DED04
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x20
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080DED08
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DECF4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DED0C
-_080DECF4:
- movs r6, 0x28
- b _080DED0E
- .align 2, 0
-_080DECF8: .4byte gUnknown_030042C4
-_080DECFC: .4byte gUnknown_03004240
-_080DED00: .4byte REG_WININ
-_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gUnknown_0202F7C8
-_080DED0C:
- movs r6, 0xC8
-_080DED0E:
- ldr r1, _080DED4C
- lsls r3, r6, 16
- asrs r2, r3, 16
- lsls r0, r2, 8
- orrs r0, r2
- strh r0, [r1]
- ldr r1, _080DED50
- movs r5, 0x28
- ldr r0, _080DED54
- strh r0, [r1]
- lsrs r3, 16
- movs r1, 0xF0
- subs r1, r2
- movs r4, 0x48
- ldr r2, _080DED58
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- strh r3, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- strh r4, [r0, 0x10]
- strh r6, [r0, 0x12]
- strh r5, [r0, 0x14]
- ldr r1, _080DED5C
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DED4C: .4byte gUnknown_030042C4
-_080DED50: .4byte gUnknown_03004240
-_080DED54: .4byte 0x00002828
-_080DED58: .4byte gTasks
-_080DED5C: .4byte sub_80DED60
- thumb_func_end sub_80DECB0
-
- thumb_func_start sub_80DED60
-sub_80DED60: @ 80DED60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DEE80
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- ldrh r5, [r4, 0xA]
- ldrh r7, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- mov r10, r0
- ldrh r2, [r4, 0x10]
- str r2, [sp, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r2, [r4, 0x14]
- mov r8, r2
- lsls r1, 16
- asrs r6, r1, 16
- cmp r6, 0xF
- ble _080DED9C
- b _080DEE8C
-_080DED9C:
- lsls r0, 16
- asrs r0, 16
- bl __floatsidf
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- lsls r0, r5, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84
- ldr r3, _080DEE88
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r0, r7, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84
- ldr r3, _080DEE88
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- adds r5, r1, 0
- adds r4, r0, 0
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84
- ldr r3, _080DEE88
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [sp, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84
- ldr r3, _080DEE88
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r5, r0, 16
- b _080DEEBA
- .align 2, 0
-_080DEE80: .4byte gTasks
-_080DEE84: .4byte 0x3fb00000
-_080DEE88: .4byte 0x00000000
-_080DEE8C:
- movs r2, 0
- mov r9, r2
- movs r7, 0xF0
- movs r6, 0
- movs r5, 0x70
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- lsls r0, 16
- lsrs r0, 16
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080DEEDC
- str r0, [r4]
-_080DEEBA:
- ldr r1, _080DEEE0
- mov r2, r9
- lsls r0, r2, 8
- orrs r7, r0
- strh r7, [r1]
- ldr r1, _080DEEE4
- lsls r0, r6, 8
- orrs r5, r0
- strh r5, [r1]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEEDC: .4byte sub_80DEEE8
-_080DEEE0: .4byte gUnknown_030042C4
-_080DEEE4: .4byte gUnknown_03004240
- thumb_func_end sub_80DED60
-
- thumb_func_start sub_80DEEE8
-sub_80DEEE8: @ 80DEEE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080DEF28
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080DEF20
- ldr r0, _080DEF2C
- strh r2, [r0]
- ldr r0, _080DEF30
- strh r2, [r0]
- ldr r0, _080DEF34
- ldr r4, _080DEF38
- adds r1, r4, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r3, 0
- bl move_anim_task_del
-_080DEF20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF28: .4byte gPaletteFade
-_080DEF2C: .4byte gUnknown_030042C4
-_080DEF30: .4byte gUnknown_03004240
-_080DEF34: .4byte REG_WININ
-_080DEF38: .4byte 0x00003f3f
- thumb_func_end sub_80DEEE8
-
- thumb_func_start sub_80DEF3C
-sub_80DEF3C: @ 80DEF3C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DEF68
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DEF70
- movs r2, 0x18
- ldr r3, _080DEF6C
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
- b _080DEF74
- .align 2, 0
-_080DEF68: .4byte gUnknown_0202F7C8
-_080DEF6C: .4byte 0x0000fffe
-_080DEF70:
- ldr r2, _080DEF90
- movs r3, 0x2
-_080DEF74:
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r3, [r4, 0x30]
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080DEF94
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF90: .4byte 0x0000ffe8
-_080DEF94: .4byte sub_80DEF98
- thumb_func_end sub_80DEF3C
-
- thumb_func_start sub_80DEF98
-sub_80DEF98: @ 80DEF98
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080DEFAA
- subs r0, r1, 0x1
- b _080DF00E
-_080DEFAA:
- ldrh r0, [r3, 0x30]
- ldrh r4, [r3, 0x24]
- adds r1, r0, r4
- strh r1, [r3, 0x24]
- adds r0, r1, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _080DF010
- ldrh r0, [r3, 0x20]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0
- strh r0, [r3, 0x24]
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r4, _080DEFFC
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080DF000
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DF00C
- movs r0, 0x1E
- strh r0, [r3, 0x2E]
- ldr r0, _080DF004
- str r0, [r3, 0x1C]
- ldr r1, _080DF008
- adds r0, r3, 0
- bl oamt_set_x3A_32
- b _080DF010
- .align 2, 0
-_080DEFFC: .4byte 0x000003ff
-_080DF000: .4byte 0xfffffc00
-_080DF004: .4byte sub_80782D8
-_080DF008: .4byte sub_80DF018
-_080DF00C:
- movs r0, 0x28
-_080DF00E:
- strh r0, [r3, 0x2E]
-_080DF010:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DEF98
-
- thumb_func_start sub_80DF018
-sub_80DF018: @ 80DF018
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _080DF044
- ldr r1, _080DF040
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- strh r2, [r3, 0x32]
- b _080DF082
- .align 2, 0
-_080DF040: .4byte REG_BLDCNT
-_080DF044:
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- bgt _080DF054
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080DF082
-_080DF054:
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- ldr r2, _080DF088
- movs r1, 0x10
- subs r1, r0
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- cmp r0, 0x10
- bne _080DF082
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF08C
- str r0, [r3, 0x1C]
-_080DF082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF088: .4byte REG_BLDALPHA
-_080DF08C: .4byte sub_80DF090
- thumb_func_end sub_80DF018
-
- thumb_func_start sub_80DF090
-sub_80DF090: @ 80DF090
- push {lr}
- ldr r1, _080DF0AC
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- ldr r1, _080DF0B0
- strh r2, [r1]
- ldr r1, _080DF0B4
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF0AC: .4byte REG_BLDCNT
-_080DF0B0: .4byte gUnknown_030042C4
-_080DF0B4: .4byte gUnknown_03004240
- thumb_func_end sub_80DF090
-
- thumb_func_start sub_80DF0B8
-sub_80DF0B8: @ 80DF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Sin
- strh r0, [r4, 0x24]
- ldr r0, _080DF120
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF0DC
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080DF0DC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080DF12C
- ldr r0, _080DF124
- strh r0, [r4, 0x3A]
- ldr r1, _080DF128
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- b _080DF17E
- .align 2, 0
-_080DF120: .4byte gUnknown_0202F7C8
-_080DF124: .4byte 0x0000050b
-_080DF128: .4byte REG_BLDCNT
-_080DF12C:
- cmp r0, 0x1E
- ble _080DF17E
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- movs r2, 0xFF
- ands r2, r1
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _080DF150
- movs r3, 0x10
-_080DF150:
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _080DF15C
- movs r2, 0
-_080DF15C:
- ldr r1, _080DF184
- lsls r0, r3, 8
- orrs r0, r2
- strh r0, [r1]
- strh r0, [r4, 0x3A]
- cmp r3, 0x10
- bne _080DF17E
- cmp r2, 0
- bne _080DF17E
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF188
- str r0, [r4, 0x1C]
-_080DF17E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF184: .4byte REG_BLDALPHA
-_080DF188: .4byte sub_80DF18C
- thumb_func_end sub_80DF0B8
-
- thumb_func_start sub_80DF18C
-sub_80DF18C: @ 80DF18C
- push {lr}
- ldr r1, _080DF1A0
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF1A0: .4byte REG_BLDCNT
- thumb_func_end sub_80DF18C
-
- thumb_func_start sub_80DF1A4
-sub_80DF1A4: @ 80DF1A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DF23C
- adds r4, r0
- movs r6, 0
- strh r6, [r4, 0x8]
- movs r0, 0x10
- mov r8, r0
- mov r2, r8
- strh r2, [r4, 0xA]
- ldr r5, _080DF240
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- ldrb r0, [r5]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- adds r1, 0x8
- strh r1, [r4, 0x1E]
- strh r6, [r4, 0x16]
- ldrb r0, [r5]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r4, 0x14]
- strh r6, [r4, 0xE]
- mov r0, r8
- strh r0, [r4, 0x10]
- ldr r1, _080DF244
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0x18]
- ldr r0, _080DF248
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF23C: .4byte gTasks
-_080DF240: .4byte gUnknown_0202F7C8
-_080DF244: .4byte REG_BLDCNT
-_080DF248: .4byte sub_80DF24C
- thumb_func_end sub_80DF1A4
-
- thumb_func_start sub_80DF24C
-sub_80DF24C: @ 80DF24C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080DF270
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080DF266
- b _080DF3CC
-_080DF266:
- lsls r0, 2
- ldr r1, _080DF274
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DF270: .4byte gTasks
-_080DF274: .4byte _080DF278
- .align 2, 0
-_080DF278:
- .4byte _080DF290
- .4byte _080DF300
- .4byte _080DF342
- .4byte _080DF356
- .4byte _080DF3AC
- .4byte _080DF3BC
-_080DF290:
- movs r6, 0
-_080DF292:
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- ldrb r3, [r4, 0x14]
- ldr r0, _080DF2F4
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DF2E6
- ldr r1, _080DF2F8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080DF2C8
- movs r1, 0x1
-_080DF2C8:
- strh r1, [r5, 0x30]
- movs r0, 0x2A
- muls r0, r6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x1E]
- strh r0, [r5, 0x34]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080DF2E6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080DF292
- b _080DF3B4
- .align 2, 0
-_080DF2F4: .4byte gSpriteTemplate_83DAF80
-_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gUnknown_0202F7C8
-_080DF300:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF31E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bgt _080DF32C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF32C
-_080DF31E:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- ble _080DF32C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF32C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0xE
- bne _080DF39C
- cmp r2, 0x4
- bne _080DF39C
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF396
-_080DF342:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080DF3CC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF3B4
-_080DF356:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF374
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DF382
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF382
-_080DF374:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF382
- adds r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF382:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- bne _080DF39C
- cmp r2, 0x10
- bne _080DF39C
- movs r0, 0x1
- strh r0, [r4, 0x18]
-_080DF396:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DF39C:
- ldr r1, _080DF3A8
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
- b _080DF3CC
- .align 2, 0
-_080DF3A8: .4byte REG_BLDALPHA
-_080DF3AC:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DF3CC
-_080DF3B4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DF3CC
-_080DF3BC:
- ldr r0, _080DF3D4
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_080DF3CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF3D4: .4byte REG_BLDCNT
- thumb_func_end sub_80DF24C
-
- thumb_func_start sub_80DF3D8
-sub_80DF3D8: @ 80DF3D8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DF3EA
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- b _080DF3EE
-_080DF3EA:
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
-_080DF3EE:
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7E
- bhi _080DF430
- ldr r2, _080DF42C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- b _080DF444
- .align 2, 0
-_080DF42C: .4byte gTasks
-_080DF430:
- ldr r2, _080DF498
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x3
- ldrb r1, [r0, 0x12]
- ands r1, r2
-_080DF444:
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r1, 0x7
- bl Sin
- strh r0, [r4, 0x26]
- ldr r2, _080DF498
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x18
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080DF492
- ldrh r0, [r1, 0x16]
- subs r0, 0x1
- strh r0, [r1, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080DF492:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF498: .4byte gTasks
- thumb_func_end sub_80DF3D8
-
- thumb_func_start sub_80DF49C
-sub_80DF49C: @ 80DF49C
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r2, _080DF4E0
- ldr r1, _080DF4E4
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0xA
- strh r1, [r0, 0x30]
- ldr r2, _080DF4E8
- ldrh r1, [r2]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x34]
- ldr r1, _080DF4EC
- str r1, [r0, 0x1C]
- ldr r2, _080DF4F0
- movs r3, 0x38
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080DF4E0: .4byte gUnknown_02024BE0
-_080DF4E4: .4byte gUnknown_0202F7C8
-_080DF4E8: .4byte gUnknown_03004B00
-_080DF4EC: .4byte sub_80DF4F4
-_080DF4F0: .4byte gSprites
- thumb_func_end sub_80DF49C
-
- thumb_func_start sub_80DF4F4
-sub_80DF4F4: @ 80DF4F4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x34
- ldrsh r3, [r5, r1]
- cmp r3, 0
- beq _080DF55C
- subs r0, 0x1
- strh r0, [r5, 0x34]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r4, _080DF554
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Cos
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x32]
- ldrh r2, [r5, 0x2E]
- adds r1, r0, r2
- strh r1, [r5, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DF590
- ldr r2, _080DF558
- adds r0, r1, r2
- strh r0, [r5, 0x2E]
- b _080DF590
- .align 2, 0
-_080DF554: .4byte gSprites
-_080DF558: .4byte 0xffffff00
-_080DF55C:
- ldr r2, _080DF598
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x8
- strh r1, [r0, 0x22]
- ldr r0, _080DF59C
- str r0, [r5, 0x1C]
-_080DF590:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF598: .4byte gSprites
-_080DF59C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF4F4
-
- thumb_func_start sub_80DF5A0
-sub_80DF5A0: @ 80DF5A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DF5E8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF5F0
- ldr r2, _080DF5EC
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r2, 0x8]
- adds r1, r2, 0
- b _080DF5FA
- .align 2, 0
-_080DF5E8: .4byte gUnknown_0202F7C8
-_080DF5EC: .4byte gUnknown_03004B00
-_080DF5F0:
- ldr r1, _080DF630
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080DF5FA:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080DF634
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DF638
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF630: .4byte gUnknown_03004B00
-_080DF634: .4byte move_anim_8074EE0
-_080DF638: .4byte sub_8078504
- thumb_func_end sub_80DF5A0
-
- thumb_func_start sub_80DF63C
-sub_80DF63C: @ 80DF63C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080DF694
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080DF698
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF6A0
- ldr r2, _080DF69C
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x32]
- ldrh r1, [r2, 0x4]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- b _080DF6CA
- .align 2, 0
-_080DF694: .4byte gUnknown_0202F7C9
-_080DF698: .4byte gUnknown_0202F7C8
-_080DF69C: .4byte gUnknown_03004B00
-_080DF6A0:
- ldr r1, _080DF6E4
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080DF6CA:
- ldr r0, _080DF6E4
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080DF6E8
- str r0, [r5, 0x1C]
- ldr r1, _080DF6EC
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF6E4: .4byte gUnknown_03004B00
-_080DF6E8: .4byte sub_8078B34
-_080DF6EC: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF63C
-
- thumb_func_start sub_80DF6F0
-sub_80DF6F0: @ 80DF6F0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DF704
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DF70C
- ldr r4, _080DF708
- b _080DF70E
- .align 2, 0
-_080DF704: .4byte gUnknown_03004B00
-_080DF708: .4byte gUnknown_0202F7C8
-_080DF70C:
- ldr r4, _080DF750
-_080DF70E:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080DF754
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, _080DF758
- str r0, [r5, 0x1C]
- ldr r1, _080DF75C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF750: .4byte gUnknown_0202F7C9
-_080DF754: .4byte gUnknown_03004B00
-_080DF758: .4byte sub_8078600
-_080DF75C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF6F0
-
- thumb_func_start sub_80DF760
-sub_80DF760: @ 80DF760
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DF788
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF77A
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DF77A:
- adds r0, r4, 0
- bl sub_80DF63C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF788: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80DF760
-
- thumb_func_start sub_80DF78C
-sub_80DF78C: @ 80DF78C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, _080DF7E0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x36]
- movs r0, 0x1
- strh r0, [r6, 0x38]
- ldr r0, _080DF7E4
- ldrh r0, [r0]
- strh r0, [r6, 0x3A]
- ldr r4, _080DF7E8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r7, r0, 16
- lsrs r5, r7, 16
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r5, r0
- bls _080DF7EC
- lsrs r0, r7, 17
- b _080DF7EE
- .align 2, 0
-_080DF7E0: .4byte gUnknown_0202F7C8
-_080DF7E4: .4byte gUnknown_03004B00
-_080DF7E8: .4byte gUnknown_02024C07
-_080DF7EC:
- lsrs r0, r1, 17
-_080DF7EE:
- strh r0, [r6, 0x3C]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Cos
- strh r0, [r6, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- ldr r0, _080DF818
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF818: .4byte sub_80DF81C
- thumb_func_end sub_80DF78C
-
- thumb_func_start sub_80DF81C
-sub_80DF81C: @ 80DF81C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080DF82E
- cmp r5, 0x1
- beq _080DF89A
- b _080DF91E
-_080DF82E:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF880
- strh r5, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF880
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF880
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF880:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DF91E
- movs r0, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DF91E
-_080DF89A:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x95
- bgt _080DF8C2
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x95
- ble _080DF8C2
- movs r0, 0x96
- strh r0, [r4, 0x3C]
-_080DF8C2:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF90A
- movs r0, 0
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF90A
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF90A
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF90A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DF91E
- adds r0, r4, 0
- bl move_anim_8072740
-_080DF91E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DF81C
-
- thumb_func_start sub_80DF924
-sub_80DF924: @ 80DF924
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DF950
- adds r4, r1, r0
- ldr r0, _080DF954
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DF960
- ldr r0, _080DF958
- str r0, [sp]
- ldr r0, _080DF95C
- b _080DF966
- .align 2, 0
-_080DF950: .4byte gTasks
-_080DF954: .4byte gUnknown_0202F7C8
-_080DF958: .4byte REG_BG1HOFS
-_080DF95C: .4byte gUnknown_030042C0
-_080DF960:
- ldr r0, _080DF9DC
- str r0, [sp]
- ldr r0, _080DF9E0
-_080DF966:
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- ldr r0, _080DF9E4
- str r0, [sp, 0x4]
- mov r1, sp
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r5, [r0, 0x9]
- ldr r0, _080DF9E8
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0xE]
- adds r0, 0x20
- strh r0, [r4, 0x10]
- cmp r1, 0
- bge _080DF996
- strh r5, [r4, 0xE]
-_080DF996:
- ldrh r3, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bgt _080DF9C4
- ldr r5, _080DF9EC
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DF9A8:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _080DF9A8
-_080DF9C4:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DF9F0
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF9DC: .4byte REG_BG2HOFS
-_080DF9E0: .4byte gUnknown_03004288
-_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gUnknown_0202F7C8
-_080DF9EC: .4byte gUnknown_03004DE0
-_080DF9F0: .4byte sub_80DF9F4
- thumb_func_end sub_80DF924
-
- thumb_func_start sub_80DF9F4
-sub_80DF9F4: @ 80DF9F4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080DFA18
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _080DFAAA
- lsls r0, 2
- ldr r1, _080DFA1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DFA18: .4byte gTasks
-_080DFA1C: .4byte _080DFA20
- .align 2, 0
-_080DFA20:
- .4byte _080DFA34
- .4byte _080DFA56
- .4byte _080DFA66
- .4byte _080DFA92
- .4byte _080DFAA4
-_080DFA34:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- adds r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DFA8A
- b _080DFA84
-_080DFA56:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DFA8A
- b _080DFA84
-_080DFA66:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- subs r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080DFA8A
-_080DFA84:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_080DFA8A:
- adds r0, r2, 0
- bl sub_80DFAB0
- b _080DFAAA
-_080DFA92:
- ldr r1, _080DFAA0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080DFAAA
- .align 2, 0
-_080DFAA0: .4byte gUnknown_03004DC0
-_080DFAA4:
- adds r0, r3, 0
- bl move_anim_task_del
-_080DFAAA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DF9F4
-
- thumb_func_start sub_80DFAB0
-sub_80DFAB0: @ 80DFAB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r3, [r5, 0x12]
- ldrh r4, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r4, r0
- bgt _080DFB06
- ldr r7, _080DFB1C
- mov r12, r7
- ldr r0, _080DFB20
- mov r8, r0
- ldr r6, _080DFB24
-_080DFACE:
- lsls r2, r4, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- lsls r0, r3, 1
- add r0, r8
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x14
- ldrsh r0, [r5, r7]
- muls r0, r1
- asrs r0, 7
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r2]
- adds r3, 0x8
- movs r0, 0xFF
- ands r3, r0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0x10
- ldrsh r0, [r5, r7]
- cmp r4, r0
- ble _080DFACE
-_080DFB06:
- ldrh r0, [r5, 0x12]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFB1C: .4byte gUnknown_03004DE0
-_080DFB20: .4byte gSineTable
-_080DFB24: .4byte gUnknown_03004DC0
- thumb_func_end sub_80DFAB0
-
- thumb_func_start sub_80DFB28
-sub_80DFB28: @ 80DFB28
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080DFBC8
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x5
- bl __divsi3
- adds r6, r0, 0
- ldr r1, _080DFBCC
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r5, 0x8]
- adds r0, r3
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r4, 0x30]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- lsls r6, 16
- asrs r6, 16
- adds r1, r6, 0
- bl Sin
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- ldrh r2, [r5]
- adds r3, r2, 0
- muls r3, r1
- adds r1, r3, 0
- ldrh r3, [r4, 0x20]
- adds r1, r3
- strh r1, [r4, 0x20]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x34]
- ldr r0, _080DFBD0
- str r0, [r4, 0x1C]
- adds r4, 0x2E
- ldr r2, _080DFBD4
- movs r1, 0x6
-_080DFBB0:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080DFBB0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFBC8: .4byte gUnknown_03004B00
-_080DFBCC: .4byte gUnknown_0202F7C8
-_080DFBD0: .4byte sub_80DFBD8
-_080DFBD4: .4byte gUnknown_03000730
- thumb_func_end sub_80DFB28
-
- thumb_func_start sub_80DFBD8
-sub_80DFBD8: @ 80DFBD8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080DFC1C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DFC1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFBD8
-
- thumb_func_start sub_80DFC24
-sub_80DFC24: @ 80DFC24
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DFC58
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC5C
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- ldr r0, _080DFC60
- ldrb r0, [r0]
- movs r2, 0x10
- strh r2, [r1, 0xA]
- ldr r1, _080DFC64
- strh r2, [r1]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFC70
- ldr r1, _080DFC68
- ldr r2, _080DFC6C
- b _080DFC74
- .align 2, 0
-_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gUnknown_03004B00
-_080DFC60: .4byte gUnknown_0202F7C8
-_080DFC64: .4byte REG_BLDALPHA
-_080DFC68: .4byte REG_BLDCNT
-_080DFC6C: .4byte 0x00003f42
-_080DFC70:
- ldr r1, _080DFC8C
- ldr r2, _080DFC90
-_080DFC74:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFC94
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC98
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFC8C: .4byte REG_BLDCNT
-_080DFC90: .4byte 0x00003f44
-_080DFC94: .4byte gTasks
-_080DFC98: .4byte sub_80DFC9C
- thumb_func_end sub_80DFC24
-
- thumb_func_start sub_80DFC9C
-sub_80DFC9C: @ 80DFC9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080DFD04
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- ldrb r3, [r4, 0x8]
- cmp r0, r3
- bne _080DFD18
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r2, 8
- orrs r1, r0
- movs r3, 0
- strh r1, [r4, 0xA]
- ldr r0, _080DFD08
- strh r1, [r0]
- strh r3, [r4, 0xC]
- cmp r2, 0x10
- bne _080DFD1E
- ldr r2, _080DFD0C
- ldr r1, _080DFD10
- ldr r0, _080DFD14
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
- b _080DFD1E
- .align 2, 0
-_080DFD04: .4byte gTasks
-_080DFD08: .4byte REG_BLDALPHA
-_080DFD0C: .4byte gSprites
-_080DFD10: .4byte gUnknown_02024BE0
-_080DFD14: .4byte gUnknown_0202F7C8
-_080DFD18:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080DFD1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFC9C
-
- thumb_func_start sub_80DFD24
-sub_80DFD24: @ 80DFD24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DFD48
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080DFD4C
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- movs r2, 0x80
- lsls r2, 5
- strh r2, [r1, 0xA]
- ldr r0, _080DFD50
- str r0, [r1]
- ldr r0, _080DFD54
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gUnknown_03004B00
-_080DFD50: .4byte sub_80DFD58
-_080DFD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DFD24
-
- thumb_func_start sub_80DFD58
-sub_80DFD58: @ 80DFD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDA8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- lsrs r1, r0, 8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- ldrb r3, [r2, 0x8]
- cmp r0, r3
- bne _080DFDB4
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r3, 8
- orrs r1, r0
- movs r0, 0
- strh r1, [r2, 0xA]
- ldr r5, _080DFDAC
- strh r1, [r5]
- strh r0, [r2, 0xC]
- cmp r3, 0
- bne _080DFDBA
- ldr r0, _080DFDB0
- strh r3, [r0]
- strh r3, [r5]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DFDBA
- .align 2, 0
-_080DFDA8: .4byte gTasks
-_080DFDAC: .4byte REG_BLDALPHA
-_080DFDB0: .4byte REG_BLDCNT
-_080DFDB4:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
-_080DFDBA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFD58
-
- thumb_func_start sub_80DFDC0
-sub_80DFDC0: @ 80DFDC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDE8
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFDEC
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFDF8
- ldr r1, _080DFDF0
- ldr r2, _080DFDF4
- b _080DFDFC
- .align 2, 0
-_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gUnknown_0202F7C8
-_080DFDF0: .4byte REG_BLDCNT
-_080DFDF4: .4byte 0x00003f42
-_080DFDF8:
- ldr r1, _080DFE0C
- ldr r2, _080DFE10
-_080DFDFC:
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE0C: .4byte REG_BLDCNT
-_080DFE10: .4byte 0x00003f44
- thumb_func_end sub_80DFDC0
-
- thumb_func_start sub_80DFE14
-sub_80DFE14: @ 80DFE14
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080DFE80
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, _080DFE84
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- movs r0, 0x7E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldr r0, _080DFE88
- strh r0, [r4, 0x3A]
- ldr r1, _080DFE8C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE80: .4byte gUnknown_0202F7C9
-_080DFE84: .4byte gUnknown_0202F7C8
-_080DFE88: .4byte 0x0000ffd8
-_080DFE8C: .4byte sub_80DFE90
- thumb_func_end sub_80DFE14
-
- thumb_func_start sub_80DFE90
-sub_80DFE90: @ 80DFE90
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r5, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r2, r5, r0
- strh r2, [r4, 0x34]
- ldrh r3, [r4, 0x32]
- ldrh r6, [r4, 0x36]
- adds r1, r3, r6
- strh r1, [r4, 0x36]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- movs r6, 0x3C
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _080DFED2
- adds r0, r2, r5
- strh r0, [r4, 0x34]
- adds r1, r3
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
-_080DFED2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r6, [r4, 0x26]
- adds r0, r6
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- cmp r0, 0x7F
- ble _080DFF02
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x14
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_080DFF02:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080DFF14
- adds r0, r4, 0
- bl move_anim_8072740
-_080DFF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFE90
-
- thumb_func_start sub_80DFF1C
-sub_80DFF1C: @ 80DFF1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DFF50
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x32]
- ldr r0, _080DFF54
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF50: .4byte gUnknown_03004B00
-_080DFF54: .4byte sub_80DFF58
- thumb_func_end sub_80DFF1C
-
- thumb_func_start sub_80DFF58
-sub_80DFF58: @ 80DFF58
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _080DFF8E
- ldr r0, _080DFF94
- str r0, [r2, 0x1C]
-_080DFF8E:
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF94: .4byte sub_80DFF98
- thumb_func_end sub_80DFF58
-
- thumb_func_start sub_80DFF98
-sub_80DFF98: @ 80DFF98
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x36]
- ldrh r0, [r3, 0x2E]
- subs r1, r0
- strh r1, [r3, 0x36]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x30]
- subs r0, r2
- strh r0, [r3, 0x38]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r3, 0x24]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080DFFCA
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080DFFCA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DFF98
-
- thumb_func_start sub_80DFFD0
-sub_80DFFD0: @ 80DFFD0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080DFFE4
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080DFFEC
- ldr r0, _080DFFE8
- b _080DFFEE
- .align 2, 0
-_080DFFE4: .4byte gUnknown_03004B00
-_080DFFE8: .4byte gUnknown_0202F7C8
-_080DFFEC:
- ldr r0, _080E001C
-_080DFFEE:
- ldrb r5, [r0]
- movs r6, 0x14
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- ldr r7, _080E0020
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080E0024
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080E004C
- cmp r0, 0x1
- bgt _080E0028
- cmp r0, 0
- beq _080E0032
- b _080E00A0
- .align 2, 0
-_080E001C: .4byte gUnknown_0202F7C9
-_080E0020: .4byte 0x000003ff
-_080E0024: .4byte 0xfffffc00
-_080E0028:
- cmp r0, 0x2
- beq _080E0066
- cmp r0, 0x3
- beq _080E007E
- b _080E00A0
-_080E0032:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E004C:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E0066:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080E0094
-_080E007E:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
-_080E0094:
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r6, 0xEC
-_080E00A0:
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- lsls r0, r6, 24
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r0, 0xC
- strh r0, [r4, 0x36]
- ldr r0, _080E00C8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E00CC
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E00C8: .4byte 0x0000fff4
-_080E00CC: .4byte sub_80E00D0
- thumb_func_end sub_80DFFD0
-
- thumb_func_start sub_80E00D0
-sub_80E00D0: @ 80E00D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E00E4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080E00E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E00D0
-
- thumb_func_start sub_80E00EC
-sub_80E00EC: @ 80E00EC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E0150
- adds r5, r1, r0
- ldr r4, _080E0154
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- strh r1, [r5, 0x12]
- strh r0, [r5, 0x10]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x24]
- adds r0, 0x20
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080E015C
- ldr r0, _080E0158
- b _080E015E
- .align 2, 0
-_080E0150: .4byte gTasks
-_080E0154: .4byte gUnknown_0202F7C8
-_080E0158: .4byte 0x0000fff4
-_080E015C:
- ldr r0, _080E01A8
-_080E015E:
- strh r0, [r5, 0x18]
- ldr r0, _080E01AC
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E01C4
- add r4, sp, 0xC
- adds r0, r4, 0
- bl sub_8078914
- ldr r0, _080E01B0
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E01B4
- ldr r2, _080E01B8
- adds r0, r2, 0
- strh r0, [r1]
- ldrb r1, [r4, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E01BC
- str r0, [sp]
- movs r7, 0x2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E01C0
- b _080E01EE
- .align 2, 0
-_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gUnknown_0202F7C8
-_080E01B0: .4byte gUnknown_030041B4
-_080E01B4: .4byte REG_BLDCNT
-_080E01B8: .4byte 0x00003f42
-_080E01BC: .4byte REG_BG1VOFS
-_080E01C0: .4byte gUnknown_03004288
-_080E01C4:
- ldr r0, _080E0278
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E027C
- ldr r2, _080E0280
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E0284
- str r0, [sp]
- movs r7, 0x4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E0288
-_080E01EE:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
-_080E01F4:
- ldr r0, _080E028C
- str r0, [sp, 0x4]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- strh r0, [r5, 0x20]
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- strh r1, [r5, 0xC]
- movs r0, 0x3
- bl sub_80E08CC
- movs r3, 0
- ldr r4, _080E0290
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080E0220:
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x1C]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E0220
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r1, _080E0294
- movs r0, 0x3F
- eors r7, r0
- movs r2, 0xFC
- lsls r2, 6
- adds r0, r2, 0
- orrs r7, r0
- strh r7, [r1]
- subs r1, 0x2
- adds r2, 0x3F
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E0298
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E029C
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080E02A0
- str r0, [r5]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0278: .4byte gUnknown_03004280
-_080E027C: .4byte REG_BLDCNT
-_080E0280: .4byte 0x00003f44
-_080E0284: .4byte REG_BG2VOFS
-_080E0288: .4byte gUnknown_030042C0
-_080E028C: .4byte 0xa2600001
-_080E0290: .4byte gUnknown_03004DE0
-_080E0294: .4byte REG_WINOUT
-_080E0298: .4byte gUnknown_030042C4
-_080E029C: .4byte gUnknown_03004240
-_080E02A0: .4byte sub_80E02A4
- thumb_func_end sub_80E00EC
-
- thumb_func_start sub_80E02A4
-sub_80E02A4: @ 80E02A4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E02C8
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E02BE
- b _080E03B6
-_080E02BE:
- lsls r0, 2
- ldr r1, _080E02CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E02C8: .4byte gTasks
-_080E02CC: .4byte _080E02D0
- .align 2, 0
-_080E02D0:
- .4byte _080E02E4
- .4byte _080E0344
- .4byte _080E035E
- .4byte _080E039C
- .4byte _080E03B0
-_080E02E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E03B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0314
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- beq _080E0322
- adds r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0322
-_080E0314:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _080E0322
- subs r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0322:
- ldr r2, _080E0340
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _080E03B6
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0340: .4byte REG_BLDALPHA
-_080E0344:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _080E03B6
- b _080E03A2
-_080E035E:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- ldrh r1, [r4, 0x24]
- adds r1, 0x4
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r2, r0, 0x4
- strh r2, [r4, 0x26]
- lsls r1, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080E0380
- strh r2, [r4, 0x24]
-_080E0380:
- ldr r3, _080E0398
- ldrh r2, [r4, 0x24]
- lsls r0, r2, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r3]
- lsls r2, 16
- lsls r1, 16
- cmp r2, r1
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0398: .4byte gUnknown_030042C4
-_080E039C:
- ldr r1, _080E03AC
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E03A2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E03B6
- .align 2, 0
-_080E03AC: .4byte gUnknown_03004DC0
-_080E03B0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E03B6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E02A4
-
- thumb_func_start sub_80E03BC
-sub_80E03BC: @ 80E03BC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080E03E4
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080E03D8
- b _080E05F2
-_080E03D8:
- lsls r0, 2
- ldr r1, _080E03E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E03E4: .4byte gTasks
-_080E03E8: .4byte _080E03EC
- .align 2, 0
-_080E03EC:
- .4byte _080E0400
- .4byte _080E048C
- .4byte _080E04D0
- .4byte _080E053C
- .4byte _080E05A4
-_080E0400:
- bl sub_8076BE0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E043C
- ldr r0, _080E042C
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0430
- strh r1, [r0]
- ldr r0, _080E0434
- ldr r2, _080E0438
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080E05F2
- .align 2, 0
-_080E042C: .4byte gUnknown_030042C4
-_080E0430: .4byte gUnknown_03004240
-_080E0434: .4byte REG_WININ
-_080E0438: .4byte 0x00003f3f
-_080E043C:
- ldr r0, _080E045C
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E046C
- ldr r1, _080E0460
- ldr r2, _080E0464
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0468
- b _080E0476
- .align 2, 0
-_080E045C: .4byte gUnknown_0202F7C9
-_080E0460: .4byte REG_BLDCNT
-_080E0464: .4byte 0x00003f42
-_080E0468: .4byte gUnknown_03004288
-_080E046C:
- ldr r1, _080E0480
- ldr r2, _080E0484
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0488
-_080E0476:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _080E0590
- .align 2, 0
-_080E0480: .4byte REG_BLDCNT
-_080E0484: .4byte 0x00003f44
-_080E0488: .4byte gUnknown_030042C0
-_080E048C:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E04B4
- mov r0, sp
- bl sub_8078914
- ldr r0, _080E04B0
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- b _080E04C4
- .align 2, 0
-_080E04B0: .4byte gUnknown_030041B4
-_080E04B4:
- ldr r0, _080E04CC
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
-_080E04C4:
- movs r0, 0x3
- bl sub_80E08CC
- b _080E0590
- .align 2, 0
-_080E04CC: .4byte gUnknown_03004280
-_080E04D0:
- ldr r4, _080E051C
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x4
- strh r1, [r5, 0x24]
- adds r0, 0x4
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080E0524
- ldr r0, _080E0520
- b _080E0526
- .align 2, 0
-_080E051C: .4byte gUnknown_0202F7C9
-_080E0520: .4byte 0x0000fff4
-_080E0524:
- ldr r0, _080E0538
-_080E0526:
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- movs r0, 0x8
- strh r0, [r5, 0x20]
- b _080E0590
- .align 2, 0
-_080E0538: .4byte 0x0000ffc0
-_080E053C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _080E054C
- ldr r0, _080E0548
- b _080E054E
- .align 2, 0
-_080E0548: .4byte REG_BG1VOFS
-_080E054C:
- ldr r0, _080E0598
-_080E054E:
- str r0, [sp, 0xC]
- movs r3, 0
- add r4, sp, 0xC
- ldr r6, _080E059C
- movs r0, 0xF0
- lsls r0, 3
- adds r7, r6, r0
-_080E055C:
- lsls r1, r3, 1
- adds r2, r1, r6
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r2]
- adds r1, r7
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E055C
- ldr r1, _080E05A0
- str r1, [r4, 0x4]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strb r2, [r4, 0x9]
- ldr r0, [sp, 0xC]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
-_080E0590:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080E05F2
- .align 2, 0
-_080E0598: .4byte REG_BG2VOFS
-_080E059C: .4byte gUnknown_03004DE0
-_080E05A0: .4byte 0xa2600001
-_080E05A4:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E05BC
- ldr r1, _080E05B4
- ldr r2, _080E05B8
- b _080E05C0
- .align 2, 0
-_080E05B4: .4byte REG_WINOUT
-_080E05B8: .4byte 0x00003f3d
-_080E05BC:
- ldr r1, _080E05FC
- ldr r2, _080E0600
-_080E05C0:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0604
- ldr r2, _080E0608
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E060C
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0610
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldr r1, _080E0614
- ldr r2, _080E0618
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E061C
- str r0, [r5]
-_080E05F2:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E05FC: .4byte REG_WINOUT
-_080E0600: .4byte 0x00003f3b
-_080E0604: .4byte REG_WININ
-_080E0608: .4byte 0x00003f3f
-_080E060C: .4byte gUnknown_030042C4
-_080E0610: .4byte gUnknown_03004240
-_080E0614: .4byte REG_BLDALPHA
-_080E0618: .4byte 0x0000080c
-_080E061C: .4byte sub_80E0620
- thumb_func_end sub_80E03BC
-
- thumb_func_start sub_80E0620
-sub_80E0620: @ 80E0620
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E0644
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E063A
- b _080E0784
-_080E063A:
- lsls r0, 2
- ldr r1, _080E0648
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0644: .4byte gTasks
-_080E0648: .4byte _080E064C
- .align 2, 0
-_080E064C:
- .4byte _080E0660
- .4byte _080E068C
- .4byte _080E06F4
- .4byte _080E0754
- .4byte _080E0768
-_080E0660:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x16]
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E0676
- strh r2, [r4, 0x12]
-_080E0676:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080E068A
- b _080E0784
-_080E068A:
- b _080E075A
-_080E068C:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- subs r0, r1
- cmp r0, 0x3F
- bgt _080E06A8
- ldrh r0, [r4, 0x24]
- subs r0, 0x4
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x4
- strh r0, [r4, 0x26]
- b _080E06AC
-_080E06A8:
- movs r0, 0x1
- strh r0, [r4, 0xA]
-_080E06AC:
- ldr r2, _080E06F0
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x14]
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E06CE
- strh r2, [r4, 0x10]
-_080E06CE:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E0784
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080E075A
- .align 2, 0
-_080E06F0: .4byte gUnknown_030042C4
-_080E06F4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0724
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E0732
- subs r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0732
-_080E0724:
- ldrh r1, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _080E0732
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0732:
- ldr r2, _080E0750
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E0784
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080E0784
- b _080E075A
- .align 2, 0
-_080E0750: .4byte REG_BLDALPHA
-_080E0754:
- ldr r1, _080E0764
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E075A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E0784
- .align 2, 0
-_080E0764: .4byte gUnknown_03004DC0
-_080E0768:
- ldr r0, _080E078C
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0790
- strh r1, [r0]
- ldr r0, _080E0794
- ldr r3, _080E0798
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080E0784:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E078C: .4byte gUnknown_030042C4
-_080E0790: .4byte gUnknown_03004240
-_080E0794: .4byte REG_WININ
-_080E0798: .4byte 0x00003f3f
- thumb_func_end sub_80E0620
-
- thumb_func_start sub_80E079C
-sub_80E079C: @ 80E079C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r0, [r6, 0x12]
- ldrh r4, [r6, 0x10]
- subs r0, r4
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080E0890
- movs r2, 0x22
- ldrsh r0, [r6, r2]
- bl __divsi3
- mov r8, r0
- movs r3, 0x14
- ldrsh r0, [r6, r3]
- lsls r5, r0, 8
- lsls r0, r4, 16
- movs r4, 0
- cmp r0, 0
- ble _080E07FC
- ldr r0, _080E0888
- mov r12, r0
- ldr r7, _080E088C
-_080E07D0:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- add r3, r12
- adds r1, r2, 0
- subs r1, 0x9F
- ldrh r0, [r6, 0x1C]
- subs r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r2, r0
- blt _080E07D0
-_080E07FC:
- ldrh r4, [r6, 0x10]
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bgt _080E0846
- ldr r0, _080E0888
- mov r12, r0
- ldr r7, _080E088C
-_080E0810:
- asrs r4, r3, 16
- cmp r4, 0
- blt _080E0832
- asrs r1, r5, 8
- subs r1, r4
- lsls r3, r4, 1
- ldrb r2, [r7, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- add r3, r12
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6, 0x1C]
- adds r1, r2
- strh r1, [r3]
-_080E0832:
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080E0810
-_080E0846:
- movs r3, 0x1C
- ldrsh r0, [r6, r3]
- adds r0, 0x9F
- lsls r2, r4, 16
- asrs r1, r2, 16
- subs r5, r0, r1
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bge _080E08BE
- ldr r7, _080E0888
- ldr r4, _080E088C
-_080E085E:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080E0876
- lsls r2, r3, 1
- ldrb r1, [r4, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- strh r5, [r2]
- subs r5, 0x1
-_080E0876:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _080E085E
- b _080E08BE
- .align 2, 0
-_080E0888: .4byte gUnknown_03004DE0
-_080E088C: .4byte gUnknown_03004DC0
-_080E0890:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- adds r5, r0, 0
- adds r5, 0x9F
- movs r4, 0
- ldr r3, _080E08C8
- movs r2, 0xF0
- lsls r2, 3
- adds r6, r3, r2
-_080E08A2:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r2, r0, 1
- adds r1, r2, r3
- strh r5, [r1]
- adds r2, r6
- strh r5, [r2]
- subs r5, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080E08A2
-_080E08BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E08C8: .4byte gUnknown_03004DE0
- thumb_func_end sub_80E079C
-
- thumb_func_start sub_80E08CC
-sub_80E08CC: @ 80E08CC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- ldr r7, _080E0914
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r0, 0xD
- negs r0, r0
- adds r6, r0, 0
-_080E08E2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E0902
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r0, r6
- orrs r0, r5
- strb r0, [r1, 0x5]
-_080E0902:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0914: .4byte gSprites
- thumb_func_end sub_80E08CC
-
- thumb_func_start sub_80E0918
-sub_80E0918: @ 80E0918
- 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
- ldr r6, _080E09B8
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldrb r0, [r6]
- adds r1, r4, 0
- bl sub_8076034
- ldr r0, _080E09BC
- mov r9, r0
- ldr r0, _080E09C0
- mov r8, r0
- ldrb r0, [r6]
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r7, 0x5
- negs r7, r7
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E09A2
- ldrb r0, [r6]
- eors r0, r5
- movs r1, 0x1
- eors r4, r1
- adds r1, r4, 0
- bl sub_8076034
- ldrb r0, [r6]
- eors r0, r5
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
-_080E09A2:
- mov r0, r10
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E09B8: .4byte gUnknown_0202F7C8
-_080E09BC: .4byte gSprites
-_080E09C0: .4byte gUnknown_02024BE0
- thumb_func_end sub_80E0918
-
- thumb_func_start sub_80E09C4
-sub_80E09C4: @ 80E09C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080E0A0C
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r5, 0
- bl sub_8076464
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E0A00
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080E0A00:
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A0C: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E09C4
-
- thumb_func_start sub_80E0A10
-sub_80E0A10: @ 80E0A10
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E0A40
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080E0A44
- str r0, [r4, 0x1C]
- ldr r1, _080E0A48
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A40: .4byte gUnknown_03004B00
-_080E0A44: .4byte sub_8078600
-_080E0A48: .4byte move_anim_8072740
- thumb_func_end sub_80E0A10
-
- thumb_func_start sub_80E0A4C
-sub_80E0A4C: @ 80E0A4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080E0B50
- strh r7, [r0]
- ldr r0, _080E0B54
- strh r7, [r0]
- ldr r1, _080E0B58
- ldr r2, _080E0B5C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B60
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0B64
- ldr r2, _080E0B68
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B6C
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _080E0B70
- ldrb r1, [r5]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r5]
- ldrb r1, [r5, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r5, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0AC4
- ldrb r0, [r5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5]
-_080E0AC4:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E0B40
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
- ldr r4, _080E0B74
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E0AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
-_080E0AF4:
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0B40
- ldr r3, _080E0B78
- ldr r1, _080E0B7C
- ldrb r0, [r4]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r5]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5]
- movs r7, 0x1
-_080E0B40:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E0B84
- ldr r0, _080E0B80
- ldrh r5, [r0]
- b _080E0BCC
- .align 2, 0
-_080E0B50: .4byte gUnknown_030042C4
-_080E0B54: .4byte gUnknown_03004240
-_080E0B58: .4byte REG_WININ
-_080E0B5C: .4byte 0x00003f3f
-_080E0B60: .4byte 0x00003f3d
-_080E0B64: .4byte REG_BLDCNT
-_080E0B68: .4byte 0x00003f42
-_080E0B6C: .4byte 0x00000c08
-_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gUnknown_0202F7C8
-_080E0B78: .4byte gSprites
-_080E0B7C: .4byte gUnknown_02024BE0
-_080E0B80: .4byte 0x02019348
-_080E0B84:
- ldr r4, _080E0BA4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E0BB0
- ldr r1, _080E0BA8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0BAC
- b _080E0BC0
- .align 2, 0
-_080E0BA4: .4byte gUnknown_0202F7C8
-_080E0BA8: .4byte gUnknown_02024A6A
-_080E0BAC: .4byte gEnemyParty
-_080E0BB0:
- ldr r1, _080E0C58
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0C5C
-_080E0BC0:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
-_080E0BCC:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E0C60
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E0C64
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E0C68
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E0C6C
- bl LZDecompressVram
- ldr r0, _080E0C70
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E0C74
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r2, _080E0C78
- ldr r0, _080E0C7C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x60
- strh r0, [r2]
- ldr r2, _080E0C80
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- ldr r2, _080E0C84
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E0C88
- adds r0, r1, 0
- movs r1, 0
- bl sub_8079108
- b _080E0C94
- .align 2, 0
-_080E0C58: .4byte gUnknown_02024A6A
-_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gUnknown_0202F7C8
-_080E0C64: .4byte 0x040000d4
-_080E0C68: .4byte 0x85000400
-_080E0C6C: .4byte gUnknown_08D1D574
-_080E0C70: .4byte gUnknown_08D1D410
-_080E0C74: .4byte gUnknown_08D1D54C
-_080E0C78: .4byte gUnknown_030042C0
-_080E0C7C: .4byte gSprites
-_080E0C80: .4byte gUnknown_030041B4
-_080E0C84: .4byte gUnknown_03004B00
-_080E0C88:
- lsls r0, r1, 4
- ldrh r3, [r2, 0x4]
- movs r1, 0x10
- movs r2, 0xB
- bl BlendPalette
-_080E0C94:
- ldr r1, _080E0CC4
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r2, _080E0CC8
- ldrh r1, [r2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x14]
- ldr r1, _080E0CCC
- str r1, [r0]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gUnknown_03004B00
-_080E0CCC: .4byte sub_80E0CD0
- thumb_func_end sub_80E0A4C
-
- thumb_func_start sub_80E0CD0
-sub_80E0CD0: @ 80E0CD0
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080E0DF0
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r2, _080E0DF4
- ldrh r3, [r2]
- subs r1, r3, 0x4
- strh r1, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x80
- bne _080E0DE8
- strh r5, [r4, 0x1C]
- adds r0, r3, 0
- adds r0, 0x7C
- strh r0, [r2]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080E0DE8
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E0DF8
- strh r5, [r0]
- ldr r0, _080E0DFC
- strh r5, [r0]
- ldr r0, _080E0E00
- ldr r2, _080E0E04
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0D40
- ldr r2, _080E0E08
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E0D40:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E0E0C
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080E0E10
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080E0D84
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_8079108
-_080E0D84:
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E0E14
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E0E18
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E0DE2
- ldr r2, _080E0E1C
- ldr r0, _080E0E20
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E0DE2:
- adds r0, r7, 0
- bl move_anim_task_del
-_080E0DE8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0DF0: .4byte gTasks
-_080E0DF4: .4byte gUnknown_030042C0
-_080E0DF8: .4byte gUnknown_030042C4
-_080E0DFC: .4byte gUnknown_03004240
-_080E0E00: .4byte REG_WININ
-_080E0E04: .4byte 0x00003f3f
-_080E0E08: .4byte REG_BG1CNT
-_080E0E0C: .4byte REG_BLDCNT
-_080E0E10: .4byte gSprites
-_080E0E14: .4byte 0x040000d4
-_080E0E18: .4byte 0x85000200
-_080E0E1C: .4byte gUnknown_02024BE0
-_080E0E20: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E0CD0
-
- thumb_func_start sub_80E0E24
-sub_80E0E24: @ 80E0E24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E0E44
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0x7
- bhi _080E0E88
- lsls r0, r1, 2
- ldr r1, _080E0E48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0E44: .4byte gUnknown_03004B00
-_080E0E48: .4byte _080E0E4C
- .align 2, 0
-_080E0E4C:
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E78
- .4byte _080E0E7C
- .4byte _080E0E80
- .4byte _080E0E84
-_080E0E6C:
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080E0E8A
-_080E0E78:
- movs r4, 0
- b _080E0E90
-_080E0E7C:
- movs r4, 0x2
- b _080E0E90
-_080E0E80:
- movs r4, 0x1
- b _080E0E90
-_080E0E84:
- movs r4, 0x3
- b _080E0E90
-_080E0E88:
- movs r2, 0xFF
-_080E0E8A:
- movs r0, 0
- cmp r0, 0
- beq _080E0EB6
-_080E0E90:
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E0EB4
- ldr r0, _080E0EB0
- adds r0, r4, r0
- ldrb r2, [r0]
- b _080E0EB6
- .align 2, 0
-_080E0EB0: .4byte gUnknown_02024BE0
-_080E0EB4:
- movs r2, 0xFF
-_080E0EB6:
- cmp r2, 0xFF
- beq _080E0ED2
- ldr r1, _080E0EE0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- ldr r1, _080E0EE4
- ldrb r1, [r1, 0x2]
- bl sub_8079108
-_080E0ED2:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gUnknown_03004B00
- thumb_func_end sub_80E0E24
-
- thumb_func_start sub_80E0EE8
-sub_80E0EE8: @ 80E0EE8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E0F14
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _080E0EFC
- ldr r1, _080E0F18
- movs r0, 0
- strh r0, [r1, 0xE]
-_080E0EFC:
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080E0F08
- ldr r1, _080E0F18
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080E0F08:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F14: .4byte gUnknown_0202F7C4
-_080E0F18: .4byte gUnknown_03004B00
- thumb_func_end sub_80E0EE8
-
- thumb_func_start sub_80E0F1C
-sub_80E0F1C: @ 80E0F1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E0F74
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080E0F78
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080E0F7C
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E0F80
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F74: .4byte gUnknown_0202F7C8
-_080E0F78: .4byte gUnknown_0202F7C9
-_080E0F7C: .4byte 0x0000ffd8
-_080E0F80: .4byte sub_80E0F84
- thumb_func_end sub_80E0F1C
-
- thumb_func_start sub_80E0F84
-sub_80E0F84: @ 80E0F84
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FD8
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E0FE4
- str r0, [r5, 0x1C]
-_080E0FD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0FE0: .4byte gUnknown_0202F7C8
-_080E0FE4: .4byte sub_80E0FE8
- thumb_func_end sub_80E0F84
-
- thumb_func_start sub_80E0FE8
-sub_80E0FE8: @ 80E0FE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FFC
- adds r0, r4, 0
- bl move_anim_8072740
-_080E0FFC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E0FE8
-
- thumb_func_start sub_80E1004
-sub_80E1004: @ 80E1004
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080E1064
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E1024
- ldr r1, _080E1068
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1024:
- ldr r4, _080E1068
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080E106C
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1070
- str r0, [r6, 0x1C]
- ldr r1, _080E1074
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1064: .4byte gUnknown_0202F7C8
-_080E1068: .4byte gUnknown_03004B00
-_080E106C: .4byte gUnknown_0202F7C9
-_080E1070: .4byte sub_8078B34
-_080E1074: .4byte move_anim_8072740
- thumb_func_end sub_80E1004
-
- thumb_func_start sub_80E1078
-sub_80E1078: @ 80E1078
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080E10F8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r7, r0, 24
- bl Random
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- bl Random
- ands r4, r0
- adds r1, r5, 0
- cmp r1, 0x10
- ble _080E10C0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E10C0:
- lsls r0, r4, 16
- asrs r1, r0, 16
- cmp r1, 0x10
- ble _080E10D0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080E10D0:
- ldr r0, _080E10FC
- ldrh r0, [r0, 0x4]
- strh r0, [r6, 0x2E]
- mov r1, r8
- adds r0, r1, r5
- strh r0, [r6, 0x32]
- adds r0, r7, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1100
- str r0, [r6, 0x1C]
- ldr r1, _080E1104
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E10F8: .4byte gUnknown_0202F7C9
-_080E10FC: .4byte gUnknown_03004B00
-_080E1100: .4byte sub_8078B34
-_080E1104: .4byte move_anim_8074EE0
- thumb_func_end sub_80E1078
-
- thumb_func_start sub_80E1108
-sub_80E1108: @ 80E1108
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x1
- ldr r3, _080E1168
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E116C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r6, _080E1170
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080E117C
- ldr r4, _080E1174
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x2]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r6, 0x4]
- adds r0, r3
- strh r0, [r5, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- ble _080E1162
- movs r1, 0x1
-_080E1162:
- strh r1, [r5, 0x2E]
- ldr r0, _080E1178
- b _080E118A
- .align 2, 0
-_080E1168: .4byte 0x000003ff
-_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gUnknown_03004B00
-_080E1174: .4byte gUnknown_0202F7C8
-_080E1178: .4byte sub_80E1198
-_080E117C:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x22]
- negs r0, r0
- strh r0, [r5, 0x26]
- ldr r0, _080E1194
-_080E118A:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1194: .4byte sub_80E11D4
- thumb_func_end sub_80E1108
-
- thumb_func_start sub_80E1198
-sub_80E1198: @ 80E1198
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E11B6
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
-_080E11B6:
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E11CE
- adds r0, r2, 0
- bl move_anim_8072740
-_080E11CE:
- pop {r0}
- bx r0
- thumb_func_end sub_80E1198
-
- thumb_func_start sub_80E11D4
-sub_80E11D4: @ 80E11D4
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080E11E6
- cmp r1, 0x1
- beq _080E11FC
- b _080E123E
-_080E11E6:
- ldrh r0, [r3, 0x26]
- adds r0, 0x4
- strh r0, [r3, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080E123E
- strh r1, [r3, 0x26]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080E123E
-_080E11FC:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _080E123E
- movs r0, 0
- strh r0, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080E123E
- adds r0, r3, 0
- bl move_anim_8072740
-_080E123E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E11D4
-
- thumb_func_start sub_80E1244
-sub_80E1244: @ 80E1244
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1264
- adds r1, r0, r1
- ldr r0, _080E1268
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E1270
- ldr r0, _080E126C
- b _080E1272
- .align 2, 0
-_080E1264: .4byte gTasks
-_080E1268: .4byte gUnknown_03004B00
-_080E126C: .4byte sub_80E1284
-_080E1270:
- ldr r0, _080E1280
-_080E1272:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E1280: .4byte sub_80E143C
- thumb_func_end sub_80E1244
-
- thumb_func_start sub_80E1284
-sub_80E1284: @ 80E1284
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E12A8
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E129E
- b _080E1432
-_080E129E:
- lsls r0, 2
- ldr r1, _080E12AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E12A8: .4byte gTasks
-_080E12AC: .4byte _080E12B0
- .align 2, 0
-_080E12B0:
- .4byte _080E12C4
- .4byte _080E134C
- .4byte _080E135C
- .4byte _080E1400
- .4byte _080E1414
-_080E12C4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E12EC
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E12F8
- ldr r0, _080E12F0
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E12F4
- b _080E1300
- .align 2, 0
-_080E12EC: .4byte gUnknown_0202F7C8
-_080E12F0: .4byte gUnknown_030042C0
-_080E12F4: .4byte gUnknown_030041B4
-_080E12F8:
- ldr r0, _080E133C
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E1340
-_080E1300:
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E1344
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- cmp r1, 0
- bge _080E1322
- movs r0, 0
- strh r0, [r4, 0x24]
-_080E1322:
- ldr r2, _080E1348
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080E1406
- .align 2, 0
-_080E133C: .4byte gUnknown_03004288
-_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gUnknown_0202F7C8
-_080E1348: .4byte gSprites
-_080E134C:
- ldrb r0, [r4, 0x1E]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- bl sub_80E1668
- b _080E1406
-_080E135C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x6
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E137E
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080E137E:
- ldr r1, _080E13A0
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- ldrh r3, [r4, 0xE]
- adds r2, r0, r3
- strh r2, [r4, 0x12]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E13A8
- ldr r1, _080E13A4
- b _080E13AA
- .align 2, 0
-_080E13A0: .4byte gSineTable
-_080E13A4: .4byte gUnknown_030041B4
-_080E13A8:
- ldr r1, _080E13CC
-_080E13AA:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _080E1432
- ldrh r0, [r4, 0x24]
- movs r1, 0x78
- subs r2, r1, r0
- strh r2, [r4, 0x12]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E13D4
- ldr r1, _080E13D0
- b _080E13D6
- .align 2, 0
-_080E13CC: .4byte gUnknown_03004280
-_080E13D0: .4byte gUnknown_030041B4
-_080E13D4:
- ldr r1, _080E13F8
-_080E13D6:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- ldr r2, _080E13FC
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r2
- strh r0, [r1, 0x24]
- b _080E1406
- .align 2, 0
-_080E13F8: .4byte gUnknown_03004280
-_080E13FC: .4byte gSprites
-_080E1400:
- ldr r1, _080E1410
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E1406:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1432
- .align 2, 0
-_080E1410: .4byte gUnknown_03004DC0
-_080E1414:
- adds r0, r2, 0
- bl move_anim_task_del
- ldr r2, _080E1438
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080E1432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1438: .4byte gSprites
- thumb_func_end sub_80E1284
-
- thumb_func_start sub_80E143C
-sub_80E143C: @ 80E143C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E147C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- movs r4, 0
- strh r4, [r1, 0x24]
- strh r4, [r1, 0x26]
- ldr r0, _080E1480
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E1488
- ldr r0, _080E1484
- b _080E148A
- .align 2, 0
-_080E147C: .4byte gSprites
-_080E1480: .4byte gUnknown_0202F7C8
-_080E1484: .4byte gUnknown_030041B4
-_080E1488:
- ldr r0, _080E1498
-_080E148A:
- strh r4, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1498: .4byte gUnknown_03004280
- thumb_func_end sub_80E143C
-
- thumb_func_start sub_80E149C
-sub_80E149C: @ 80E149C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14BC
- adds r1, r0, r1
- ldr r0, _080E14C0
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E14C8
- ldr r0, _080E14C4
- b _080E14CA
- .align 2, 0
-_080E14BC: .4byte gTasks
-_080E14C0: .4byte gUnknown_03004B00
-_080E14C4: .4byte sub_80E14DC
-_080E14C8:
- ldr r0, _080E14D8
-_080E14CA:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E14D8: .4byte sub_80E1560
- thumb_func_end sub_80E149C
-
- thumb_func_start sub_80E14DC
-sub_80E14DC: @ 80E14DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14FC
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080E1500
- cmp r5, 0x1
- beq _080E1554
- b _080E155A
- .align 2, 0
-_080E14FC: .4byte gTasks
-_080E1500:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r3, _080E1550
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x24]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x22]
- movs r0, 0xA0
- subs r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E155A
- .align 2, 0
-_080E1550: .4byte gSprites
-_080E1554:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E155A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E14DC
-
- thumb_func_start sub_80E1560
-sub_80E1560: @ 80E1560
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1584
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _080E1662
- lsls r0, 2
- ldr r1, _080E1588
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E1584: .4byte gTasks
-_080E1588: .4byte _080E158C
- .align 2, 0
-_080E158C:
- .4byte _080E15A0
- .4byte _080E15F4
- .4byte _080E1602
- .4byte _080E161C
- .4byte _080E165C
-_080E15A0:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E15C4
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E15CC
- ldr r0, _080E15C8
- b _080E15CE
- .align 2, 0
-_080E15C4: .4byte gUnknown_0202F7C8
-_080E15C8: .4byte gUnknown_030042C0
-_080E15CC:
- ldr r0, _080E15EC
-_080E15CE:
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E15F0
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- b _080E164A
- .align 2, 0
-_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gUnknown_0202F7C8
-_080E15F4:
- ldrb r0, [r4, 0x1E]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0
- bl sub_80E1668
- b _080E164A
-_080E1602:
- ldr r2, _080E1618
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x60
- strh r1, [r0, 0x26]
- b _080E164A
- .align 2, 0
-_080E1618: .4byte gSprites
-_080E161C:
- ldr r2, _080E1654
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E1662
- ldr r1, _080E1658
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E164A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1662
- .align 2, 0
-_080E1654: .4byte gSprites
-_080E1658: .4byte gUnknown_03004DC0
-_080E165C:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E1662:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1560
-
- thumb_func_start sub_80E1668
-sub_80E1668: @ 80E1668
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- cmp r0, 0x1
- bne _080E168C
- ldr r0, _080E1684
- ldrh r3, [r0]
- ldr r0, _080E1688
- b _080E1692
- .align 2, 0
-_080E1684: .4byte gUnknown_030042C0
-_080E1688: .4byte REG_BG1HOFS
-_080E168C:
- ldr r0, _080E1718
- ldrh r3, [r0]
- ldr r0, _080E171C
-_080E1692:
- str r0, [sp]
- lsls r0, r1, 16
- cmp r0, 0
- bge _080E169C
- movs r1, 0
-_080E169C:
- lsls r2, r1, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- cmp r2, r0
- bge _080E16C8
- ldr r5, _080E1720
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080E16AE:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r6
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r2, r1, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _080E16AE
-_080E16C8:
- lsls r1, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080E16F6
- ldr r4, _080E1720
- lsls r0, r3, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_080E16E0:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080E16E0
-_080E16F6:
- ldr r0, _080E1724
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1718: .4byte gUnknown_03004288
-_080E171C: .4byte REG_BG2HOFS
-_080E1720: .4byte gUnknown_03004DE0
-_080E1724: .4byte 0xa2600001
- thumb_func_end sub_80E1668
-
- thumb_func_start sub_80E1728
-sub_80E1728: @ 80E1728
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080E173C
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _080E1744
- ldr r0, _080E1740
- b _080E1746
- .align 2, 0
-_080E173C: .4byte gUnknown_03004B00
-_080E1740: .4byte gUnknown_0202F7C8
-_080E1744:
- ldr r0, _080E17A8
-_080E1746:
- ldrb r4, [r0]
- movs r6, 0x18
- adds r1, r7, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080E1762
- negs r0, r6
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1762:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1E
- strh r0, [r5, 0x22]
- ldrh r1, [r7, 0xA]
- strh r1, [r5, 0x2E]
- ldrh r1, [r7, 0x4]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x32]
- ldrh r1, [r7, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E17AC
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E17A8: .4byte gUnknown_0202F7C9
-_080E17AC: .4byte sub_80E17B0
- thumb_func_end sub_80E1728
-
- thumb_func_start sub_80E17B0
-sub_80E17B0: @ 80E17B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E17C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080E17C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E17B0
-
- thumb_func_start sub_80E17CC
-sub_80E17CC: @ 80E17CC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080E17E0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E17E8
- ldr r0, _080E17E4
- b _080E17EA
- .align 2, 0
-_080E17E0: .4byte gUnknown_03004B00
-_080E17E4: .4byte gUnknown_0202F7C8
-_080E17E8:
- ldr r0, _080E1848
-_080E17EA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E184C
- adds r0, r2
- ldr r4, _080E1850
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- lsls r1, 5
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r6, 0x22]
- ldrh r2, [r6, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r1, r0
- ldr r3, _080E1854
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E1858
- ands r0, r2
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080E185C
- adds r0, r6, 0
- bl oamt_set_x3A_32
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldr r0, _080E1860
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1848: .4byte gUnknown_0202F7C9
-_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gUnknown_03004B00
-_080E1854: .4byte 0x000003ff
-_080E1858: .4byte 0xfffffc00
-_080E185C: .4byte move_anim_8072740
-_080E1860: .4byte sub_80782D8
- thumb_func_end sub_80E17CC
-
- thumb_func_start sub_80E1864
-sub_80E1864: @ 80E1864
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E1888
- adds r4, r0, r1
- ldr r0, _080E188C
- ldrh r2, [r0, 0x2]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _080E1890
- adds r0, r2, 0x3
- b _080E189C
- .align 2, 0
-_080E1888: .4byte gTasks
-_080E188C: .4byte gUnknown_03004B00
-_080E1890:
- ldr r0, _080E18BC
- ldrh r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0x3
-_080E189C:
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xE]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080E18C8
- cmp r0, 0x5
- bne _080E1908
- ldr r0, _080E18C0
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E18C4
- b _080E1926
- .align 2, 0
-_080E18BC: .4byte gUnknown_0202F7BC
-_080E18C0: .4byte gUnknown_030041B0
-_080E18C4: .4byte sub_80E1934
-_080E18C8:
- movs r0, 0
- strh r0, [r4, 0x22]
- movs r5, 0
-_080E18CE:
- lsls r0, r5, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E18F8
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- adds r0, 0x9
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x8
- adds r1, r0
- ldr r0, _080E1904
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080E18F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E18CE
- b _080E1924
- .align 2, 0
-_080E1904: .4byte gUnknown_02024BE0
-_080E1908:
- ldrb r0, [r6]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- cmp r0, 0xFF
- bne _080E1920
- adds r0, r5, 0
- bl move_anim_task_del
- b _080E1928
-_080E1920:
- movs r0, 0x1
- strh r0, [r4, 0x22]
-_080E1924:
- ldr r0, _080E1930
-_080E1926:
- str r0, [r4]
-_080E1928:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1930: .4byte sub_80E1A2C
- thumb_func_end sub_80E1864
-
- thumb_func_start sub_80E1934
-sub_80E1934: @ 80E1934
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1958
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _080E19B8
- cmp r1, 0x1
- bgt _080E195C
- cmp r1, 0
- beq _080E1962
- b _080E1A24
- .align 2, 0
-_080E1958: .4byte gTasks
-_080E195C:
- cmp r1, 0x2
- beq _080E1A18
- b _080E1A24
-_080E1962:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- strh r1, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E198C
- ldr r1, _080E1988
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E1996
- .align 2, 0
-_080E1988: .4byte gUnknown_030041B0
-_080E198C:
- ldr r0, _080E19B4
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x26]
- subs r1, r2
- strh r1, [r0]
-_080E1996:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- b _080E1A0C
- .align 2, 0
-_080E19B4: .4byte gUnknown_030041B0
-_080E19B8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- ands r1, r0
- cmp r1, 0
- bne _080E19E4
- ldr r1, _080E19E0
- ldrh r0, [r3, 0x24]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E19EE
- .align 2, 0
-_080E19E0: .4byte gUnknown_030041B0
-_080E19E4:
- ldr r0, _080E1A14
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x24]
- subs r1, r2
- strh r1, [r0]
-_080E19EE:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1A24
-_080E1A0C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E1A24
- .align 2, 0
-_080E1A14: .4byte gUnknown_030041B0
-_080E1A18:
- ldr r1, _080E1A28
- ldrh r0, [r3, 0x22]
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
-_080E1A24:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1A28: .4byte gUnknown_030041B0
- thumb_func_end sub_80E1934
-
- thumb_func_start sub_80E1A2C
-sub_80E1A2C: @ 80E1A2C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1A50
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080E1A8C
- cmp r5, 0x1
- bgt _080E1A54
- cmp r5, 0
- beq _080E1A5A
- b _080E1B06
- .align 2, 0
-_080E1A50: .4byte gTasks
-_080E1A54:
- cmp r5, 0x2
- beq _080E1AC8
- b _080E1B06
-_080E1A5A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- b _080E1AC0
-_080E1A8C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1B06
-_080E1AC0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1B06
-_080E1AC8:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r4, r7]
- cmp r2, r0
- bge _080E1B00
- ldr r0, _080E1B0C
- mov r12, r0
- adds r5, r4, 0
- adds r5, 0x8
- movs r6, 0
-_080E1ADC:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- strh r6, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080E1ADC
-_080E1B00:
- adds r0, r3, 0
- bl move_anim_task_del
-_080E1B06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B0C: .4byte gSprites
- thumb_func_end sub_80E1A2C
-
- thumb_func_start sub_80E1B10
-sub_80E1B10: @ 80E1B10
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xC]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E1B38
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r2, [r3, 0x24]
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- b _080E1B48
-_080E1B38:
- movs r1, 0x24
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_080E1B48:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r3, r7]
- cmp r2, r0
- bge _080E1B7C
- ldr r6, _080E1B84
- adds r5, r3, 0
- adds r5, 0x8
-_080E1B58:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- cmp r2, r0
- blt _080E1B58
-_080E1B7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B84: .4byte gSprites
- thumb_func_end sub_80E1B10
-
- thumb_func_start sub_80E1B88
-sub_80E1B88: @ 80E1B88
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080E1BA8
- movs r2, 0
- ldr r0, _080E1BAC
- ldrh r0, [r0]
- cmp r0, 0x63
- bls _080E1B9C
- movs r2, 0x1
-_080E1B9C:
- strh r2, [r3, 0x1E]
- adds r0, r1, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E1BA8: .4byte gUnknown_03004B00
-_080E1BAC: .4byte gUnknown_0202F7BC
- thumb_func_end sub_80E1B88
-
- thumb_func_start sub_80E1BB0
-sub_80E1BB0: @ 80E1BB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080E1BC8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _080E1BD0
- ldr r0, _080E1BCC
- b _080E1BD2
- .align 2, 0
-_080E1BC8: .4byte gUnknown_03004B00
-_080E1BCC: .4byte gUnknown_0202F7C9
-_080E1BD0:
- ldr r0, _080E1C40
-_080E1BD2:
- ldrb r0, [r0]
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- ble _080E1BE2
- movs r0, 0x2
- eors r5, r0
-_080E1BE2:
- ldr r0, _080E1C44
- ldrb r1, [r6, 0x2]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080E1C48
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x20
- subs r1, r0
- ldr r2, _080E1C4C
- adds r0, r2, 0
- ands r1, r0
- strh r1, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x40
- subs r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0xC]
- ldr r2, _080E1C50
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- ldr r0, _080E1C54
- strh r1, [r0]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0xE]
- adds r0, r7, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1C40: .4byte gUnknown_0202F7C8
-_080E1C44: .4byte sub_80E1C58
-_080E1C48: .4byte gTasks
-_080E1C4C: .4byte 0x000001ff
-_080E1C50: .4byte gUnknown_030041B0
-_080E1C54: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1BB0
-
- thumb_func_start sub_80E1C58
-sub_80E1C58: @ 80E1C58
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1C88
- adds r2, r0, r1
- ldr r0, _080E1C8C
- movs r4, 0xE
- ldrsh r1, [r0, r4]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080E1C98
- ldr r0, _080E1C90
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E1C94
- strh r1, [r0]
- adds r0, r3, 0
- bl DestroyTask
- b _080E1CA4
- .align 2, 0
-_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gUnknown_03004B00
-_080E1C90: .4byte gUnknown_030041B0
-_080E1C94: .4byte gUnknown_030041B8
-_080E1C98:
- ldr r1, _080E1CAC
- ldrh r0, [r2, 0xA]
- strh r0, [r1]
- ldr r1, _080E1CB0
- ldrh r0, [r2, 0xC]
- strh r0, [r1]
-_080E1CA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1CAC: .4byte gUnknown_030041B0
-_080E1CB0: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1C58
-
- thumb_func_start sub_80E1CB4
-sub_80E1CB4: @ 80E1CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E1CEC
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E1CF4
- ldrh r0, [r5, 0x6]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080E1D02
- .align 2, 0
-_080E1CEC: .4byte gUnknown_03004B00
-_080E1CF0: .4byte gUnknown_0202F7C8
-_080E1CF4:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080E1D02:
- ldr r0, _080E1D18
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x34]
- ldr r1, _080E1D1C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1D18: .4byte gUnknown_03004B00
-_080E1D1C: .4byte sub_80E1D20
- thumb_func_end sub_80E1CB4
-
- thumb_func_start sub_80E1D20
-sub_80E1D20: @ 80E1D20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x1E
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x7F
- bhi _080E1D52
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080E1D5A
-_080E1D52:
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_080E1D5A:
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1D7E
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1D7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1D20
-
- thumb_func_start sub_80E1D84
-sub_80E1D84: @ 80E1D84
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _080E1DBC
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl BeginNormalPaletteFade
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1DC0
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1DBC: .4byte gUnknown_03004B00
-_080E1DC0: .4byte sub_80E1E0C
- thumb_func_end sub_80E1D84
-
- thumb_func_start sub_80E1DC4
-sub_80E1DC4: @ 80E1DC4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x1
- mov r8, r0
- mov r1, r8
- ands r1, r4
- mov r8, r1
- lsls r0, 16
- asrs r1, r0, 17
- ands r1, r4
- asrs r2, r0, 18
- ands r2, r4
- asrs r3, r0, 19
- ands r3, r4
- asrs r6, r0, 20
- ands r6, r4
- asrs r5, r0, 21
- ands r5, r4
- asrs r0, 22
- ands r0, r4
- str r6, [sp]
- str r5, [sp, 0x4]
- str r0, [sp, 0x8]
- mov r0, r8
- bl sub_80791A8
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1DC4
-
- thumb_func_start sub_80E1E0C
-sub_80E1E0C: @ 80E1E0C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E1E28
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1E22
- adds r0, r2, 0
- bl move_anim_8072740
-_080E1E22:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E28: .4byte gPaletteFade
- thumb_func_end sub_80E1E0C
-
- thumb_func_start sub_80E1E2C
-sub_80E1E2C: @ 80E1E2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E1E78
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x34]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xC]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4]
- strh r0, [r5, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- bl sub_80E1DC4
- ldrb r1, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- bl BlendPalettes
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1E7C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E78: .4byte gUnknown_03004B00
-_080E1E7C: .4byte sub_80E1E80
- thumb_func_end sub_80E1E2C
-
- thumb_func_start sub_80E1E80
-sub_80E1E80: @ 80E1E80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E1E94
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E1F04
-_080E1E94:
- ldr r0, _080E1EB0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F04
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E1EB8
- ldr r0, _080E1EB4
- str r0, [r4, 0x1C]
- b _080E1F04
- .align 2, 0
-_080E1EB0: .4byte gPaletteFade
-_080E1EB4: .4byte sub_80E1F0C
-_080E1EB8:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- bl sub_80E1DC4
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E1EDE
- ldrh r1, [r4, 0x36]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x34]
- adds r0, r3, 0
- bl BlendPalettes
- b _080E1EEC
-_080E1EDE:
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x38]
- adds r0, r3, 0
- bl BlendPalettes
-_080E1EEC:
- ldrh r0, [r4, 0x30]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- subs r0, 0x1
- strh r0, [r4, 0x32]
-_080E1F04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1E80
-
- thumb_func_start sub_80E1F0C
-sub_80E1F0C: @ 80E1F0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E1F38
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F32
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1F32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F38: .4byte gPaletteFade
- thumb_func_end sub_80E1F0C
-
- thumb_func_start sub_80E1F3C
-sub_80E1F3C: @ 80E1F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E1F80
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r2, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x30]
- movs r0, 0x8
- strh r0, [r4, 0x32]
- movs r0, 0x28
- strh r0, [r4, 0x34]
- movs r0, 0x70
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- ldr r1, _080E1F84
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080E1F88
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F80: .4byte gUnknown_03004B00
-_080E1F84: .4byte move_anim_8074EE0
-_080E1F88: .4byte sub_8078174
- thumb_func_end sub_80E1F3C
-
- thumb_func_start sub_80E1F8C
-sub_80E1F8C: @ 80E1F8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E1FD0
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E1FD4
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E1FDC
- ldr r0, _080E1FD8
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gUnknown_03004B00
-_080E1FD8: .4byte sub_80E202C
- thumb_func_end sub_80E1F8C
-
- thumb_func_start sub_80E1FDC
-sub_80E1FDC: @ 80E1FDC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E2028
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2028: .4byte gTasks
- thumb_func_end sub_80E1FDC
-
- thumb_func_start sub_80E202C
-sub_80E202C: @ 80E202C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2064
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E208E
- ldr r1, _080E2068
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E2088
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E206C
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2070
- .align 2, 0
-_080E2064: .4byte gPaletteFade
-_080E2068: .4byte gTasks
-_080E206C:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2070:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2080
- movs r2, 0
-_080E2080:
- adds r0, r4, 0
- bl sub_80E1FDC
- b _080E208E
-_080E2088:
- adds r0, r4, 0
- bl move_anim_task_del
-_080E208E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E202C
-
- thumb_func_start sub_80E2094
-sub_80E2094: @ 80E2094
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E20D8
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E20DC
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E20E4
- ldr r0, _080E20E0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E20D8: .4byte gTasks
-_080E20DC: .4byte gUnknown_03004B00
-_080E20E0: .4byte sub_80E2140
- thumb_func_end sub_80E2094
-
- thumb_func_start sub_80E20E4
-sub_80E20E4: @ 80E20E4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E213C
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x8]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E213C: .4byte gTasks
- thumb_func_end sub_80E20E4
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2178
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E21A2
- ldr r1, _080E217C
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E219C
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E2180
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2184
- .align 2, 0
-_080E2178: .4byte gPaletteFade
-_080E217C: .4byte gTasks
-_080E2180:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2184:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2194
- movs r2, 0
-_080E2194:
- adds r0, r4, 0
- bl sub_80E20E4
- b _080E21A2
-_080E219C:
- adds r0, r4, 0
- bl move_anim_task_del
-_080E21A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2140
-
- thumb_func_start sub_80E21A8
-sub_80E21A8: @ 80E21A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E2208
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r5, _080E220C
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r5]
- strh r0, [r4, 0x16]
- ldrh r0, [r5]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldrb r3, [r5, 0x8]
- ldrh r0, [r5, 0x6]
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080E2210
- str r0, [r4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2208: .4byte gTasks
-_080E220C: .4byte gUnknown_03004B00
-_080E2210: .4byte sub_80E2214
- thumb_func_end sub_80E21A8
-
- thumb_func_start sub_80E2214
-sub_80E2214: @ 80E2214
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2238
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E223C
- subs r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080E22C0
- .align 2, 0
-_080E2238: .4byte gTasks
-_080E223C:
- ldr r0, _080E2258
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E22C0
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080E2260
- ldr r0, _080E225C
- str r0, [r4]
- b _080E22C0
- .align 2, 0
-_080E2258: .4byte gPaletteFade
-_080E225C: .4byte sub_80E22CC
-_080E2260:
- ldrh r0, [r4, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E228E
- ldrb r3, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- b _080E229E
-_080E228E:
- ldrb r3, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
-_080E229E:
- ldr r0, _080E22C8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- eors r0, r2
- strh r0, [r1, 0xA]
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
-_080E22C0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E22C8: .4byte gTasks
- thumb_func_end sub_80E2214
-
- thumb_func_start sub_80E22CC
-sub_80E22CC: @ 80E22CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E231C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080E2312
- ldr r1, _080E2320
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- str r5, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl move_anim_task_del
-_080E2312:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E231C: .4byte gPaletteFade
-_080E2320: .4byte gTasks
- thumb_func_end sub_80E22CC
-
- thumb_func_start sub_80E2324
-sub_80E2324: @ 80E2324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080E239C
- ldrb r6, [r0]
- ldr r0, _080E23A0
- ldrb r7, [r0]
- ldr r4, _080E23A4
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E235E
- str r2, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
-_080E235E:
- ldrh r1, [r4, 0x2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2370
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r6
- orrs r2, r0
-_080E2370:
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2382
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r7
- orrs r2, r0
-_080E2382:
- adds r0, r2, 0
- bl InvertPlttBuffer
- mov r0, r8
- bl move_anim_task_del
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E239C: .4byte gUnknown_0202F7C8
-_080E23A0: .4byte gUnknown_0202F7C9
-_080E23A4: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2324
-
- thumb_func_start unref_sub_80E23A8
-unref_sub_80E23A8: @ 80E23A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r1, _080E249C
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E23EA
- ldr r1, _080E24A0
- ldrh r0, [r1]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x12]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x16]
-_080E23EA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080E24A4
- ldrb r0, [r0]
- mov r9, r0
- ldr r0, _080E24A8
- ldrb r0, [r0]
- mov r10, r0
- ldrh r1, [r4, 0xC]
- movs r7, 0x80
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E240C
- ldr r5, _080E24AC
-_080E240C:
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080E243C
- ldr r2, _080E24B0
- ldr r0, _080E24B4
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- lsls r1, r0
- lsls r1, 16
- orrs r5, r1
-_080E243C:
- ldrh r1, [r4, 0xE]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2450
- adds r0, r6, 0
- mov r2, r9
- lsls r0, r2
- lsls r0, 16
- orrs r5, r0
-_080E2450:
- ldrh r1, [r4, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2464
- adds r0, r6, 0
- mov r1, r10
- lsls r0, r1
- lsls r0, 16
- orrs r5, r0
-_080E2464:
- movs r1, 0x12
- ldrsb r1, [r4, r1]
- movs r2, 0x14
- ldrsb r2, [r4, r2]
- movs r3, 0x16
- ldrsb r3, [r4, r3]
- adds r0, r5, 0
- bl TintPlttBuffer
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E248E
- adds r0, r5, 0
- bl UnfadePlttBuffer
- mov r0, r8
- bl move_anim_task_del
-_080E248E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E249C: .4byte gTasks
-_080E24A0: .4byte gUnknown_03004B00
-_080E24A4: .4byte gUnknown_0202F7C8
-_080E24A8: .4byte gUnknown_0202F7C9
-_080E24AC: .4byte 0x0000ffff
-_080E24B0: .4byte gSprites
-_080E24B4: .4byte gUnknown_03004340
- thumb_func_end unref_sub_80E23A8
-
- thumb_func_start sub_80E24B8
-sub_80E24B8: @ 80E24B8
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080E24EC
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080E2500
- cmp r0, 0x1
- bgt _080E24F0
- cmp r0, 0
- beq _080E24F6
- b _080E2518
- .align 2, 0
-_080E24EC: .4byte gUnknown_03004B00
-_080E24F0:
- cmp r0, 0x2
- beq _080E2508
- b _080E2518
-_080E24F6:
- ldr r1, _080E24FC
- b _080E250A
- .align 2, 0
-_080E24FC: .4byte gUnknown_030041B0
-_080E2500:
- ldr r1, _080E2504
- b _080E250A
- .align 2, 0
-_080E2504: .4byte gUnknown_030041B8
-_080E2508:
- ldr r1, _080E2514
-_080E250A:
- adds r0, r4, 0
- bl oamt_set_x3A_32
- b _080E2520
- .align 2, 0
-_080E2514: .4byte gSpriteCoordOffsetX
-_080E2518:
- ldr r1, _080E2550
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080E2520:
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r0, 16
- orrs r1, r0
- ldr r0, [r1]
- strh r0, [r4, 0x36]
- ldr r0, _080E2554
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E2544
- bl sub_80E260C
-_080E2544:
- ldr r0, _080E2558
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gUnknown_03004B00
-_080E2558: .4byte sub_80E255C
- thumb_func_end sub_80E24B8
-
- thumb_func_start sub_80E255C
-sub_80E255C: @ 80E255C
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E25A0
- subs r0, r1, 0x1
- strh r0, [r3, 0x34]
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E257E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080E25FA
-_080E257E:
- ldrh r0, [r3, 0x32]
- strh r0, [r3, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- b _080E25FA
-_080E25A0:
- movs r2, 0x3A
- ldrsh r1, [r3, r2]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- str r0, [r1]
- ldrh r0, [r3, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E25F4
- movs r4, 0
- ldr r5, _080E2600
- ldrb r0, [r5]
- cmp r4, r0
- bcs _080E25F4
- ldr r2, _080E2604
- mov r12, r2
- ldr r6, _080E2608
- movs r7, 0x3
- negs r7, r7
-_080E25D2:
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- cmp r4, r0
- bcc _080E25D2
-_080E25F4:
- adds r0, r3, 0
- bl move_anim_8072740
-_080E25FA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2600: .4byte gUnknown_02024A68
-_080E2604: .4byte gSprites
-_080E2608: .4byte gUnknown_02024BE0
- thumb_func_end sub_80E255C
-
- thumb_func_start sub_80E260C
-sub_80E260C: @ 80E260C
- push {r4-r6,lr}
- ldr r6, _080E2680
- ldr r4, _080E2684
- ldr r5, _080E2688
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x3
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r3, _080E268C
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r0, _080E2690
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _080E2694
- ldrb r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- b _080E26B0
- .align 2, 0
-_080E2680: .4byte gSprites
-_080E2684: .4byte gUnknown_02024BE0
-_080E2688: .4byte gUnknown_0202F7C8
-_080E268C: .4byte gUnknown_0202F7C9
-_080E2690: .4byte gUnknown_03004B00
-_080E2694:
- cmp r0, 0
- bne _080E269C
- ldrb r0, [r5]
- b _080E269E
-_080E269C:
- ldrb r0, [r3]
-_080E269E:
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
-_080E26B0:
- orrs r1, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E260C
-
- thumb_func_start sub_80E26BC
-sub_80E26BC: @ 80E26BC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E26FC
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r3, _080E2700
- ldrh r1, [r3]
- strh r1, [r2, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x18]
- ldr r4, _080E2704
- ldrh r1, [r3]
- strh r1, [r4]
- ldr r4, _080E2708
- ldrh r1, [r3, 0x2]
- strh r1, [r4]
- ldr r1, _080E270C
- str r1, [r2]
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E26FC: .4byte gTasks
-_080E2700: .4byte gUnknown_03004B00
-_080E2704: .4byte gUnknown_030041B0
-_080E2708: .4byte gUnknown_030041B8
-_080E270C: .4byte sub_80E2710
- thumb_func_end sub_80E26BC
-
- thumb_func_start sub_80E2710
-sub_80E2710: @ 80E2710
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2740
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080E2796
- ldr r0, _080E2744
- ldrh r2, [r0]
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- adds r6, r0, 0
- cmp r2, r1
- bne _080E2748
- ldrh r0, [r3, 0x8]
- negs r0, r0
- b _080E274A
- .align 2, 0
-_080E2740: .4byte gTasks
-_080E2744: .4byte gUnknown_030041B0
-_080E2748:
- ldrh r0, [r3, 0x8]
-_080E274A:
- strh r0, [r6]
- ldr r2, _080E2768
- ldrh r3, [r2]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- mov r7, r12
- adds r4, r0, r7
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmn r3, r0
- bne _080E276C
- movs r0, 0
- b _080E2770
- .align 2, 0
-_080E2768: .4byte gUnknown_030041B8
-_080E276C:
- ldrh r0, [r4, 0xA]
- negs r0, r0
-_080E2770:
- strh r0, [r2]
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x18]
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0xC]
- subs r1, 0x1
- strh r1, [r0, 0xC]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _080E279A
- strh r1, [r6]
- strh r1, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
- b _080E279A
-_080E2796:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080E279A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2710
-
- thumb_func_start sub_80E27A0
-sub_80E27A0: @ 80E27A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E27C0
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E27C4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E27CC
- .align 2, 0
-_080E27C0: .4byte gUnknown_03004B00
-_080E27C4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E27CC:
- ldr r0, _080E27E0
- str r0, [r5, 0x1C]
- ldr r1, _080E27E4
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E27E0: .4byte sub_80785E4
-_080E27E4: .4byte move_anim_8072740
- thumb_func_end sub_80E27A0
-
- thumb_func_start sub_80E27E8
-sub_80E27E8: @ 80E27E8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E2808
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E280C
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E2814
- .align 2, 0
-_080E2808: .4byte gUnknown_03004B00
-_080E280C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E2814:
- ldr r0, _080E282C
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080E2830
- str r0, [r5, 0x1C]
- ldr r1, _080E2834
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E282C: .4byte gUnknown_03004B00
-_080E2830: .4byte sub_80785E4
-_080E2834: .4byte sub_80DA48C
- thumb_func_end sub_80E27E8
-
- thumb_func_start sub_80E2838
-sub_80E2838: @ 80E2838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2868
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E285C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E285C
- ldr r1, _080E286C
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080E285C:
- adds r0, r4, 0
- bl sub_80E27A0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2868: .4byte gUnknown_0202F7C8
-_080E286C: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2838
-
- thumb_func_start sub_80E2870
-sub_80E2870: @ 80E2870
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E28A8
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080E288C
- bl Random
- movs r1, 0x3
- ands r1, r0
- strh r1, [r5, 0x2]
-_080E288C:
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E28AC
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080E28B4
- .align 2, 0
-_080E28A8: .4byte gUnknown_03004B00
-_080E28AC:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080E28B4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x30
- bl __umodsi3
- ldr r1, _080E28F8
- adds r0, r1
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- ldr r1, _080E28FC
- adds r0, r1
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r1, _080E2900
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E2904
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E28F8: .4byte 0x0000ffe8
-_080E28FC: .4byte 0x0000fff4
-_080E2900: .4byte move_anim_8074EE0
-_080E2904: .4byte sub_80785E4
- thumb_func_end sub_80E2870
-
- thumb_func_start sub_80E2908
-sub_80E2908: @ 80E2908
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E2968
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, _080E296C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x26]
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080E2970
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E2974
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2968: .4byte gUnknown_03004B00
-_080E296C: .4byte gSprites
-_080E2970: .4byte move_anim_8074EE0
-_080E2974: .4byte sub_80785E4
- thumb_func_end sub_80E2908
-
- thumb_func_start sub_80E2978
-sub_80E2978: @ 80E2978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2990
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E2994
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E299C
- .align 2, 0
-_080E2990: .4byte gUnknown_03004B00
-_080E2994:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
-_080E299C:
- ldr r0, _080E29B4
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2E]
- ldr r1, _080E29B8
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E29BC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29B4: .4byte gUnknown_03004B00
-_080E29B8: .4byte move_anim_8072740
-_080E29BC: .4byte sub_80782D8
- thumb_func_end sub_80E2978
-
- thumb_func_start sub_80E29C0
-sub_80E29C0: @ 80E29C0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E29E0
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E29E4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E29EC
- .align 2, 0
-_080E29E0: .4byte gUnknown_03004B00
-_080E29E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E29EC:
- ldr r0, _080E29F8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29F8: .4byte sub_80E29FC
- thumb_func_end sub_80E29C0
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080E2A32
- adds r0, r3, 0
- bl move_anim_8072740
-_080E2A32:
- pop {r0}
- bx r0
- thumb_func_end sub_80E29FC
-
- thumb_func_start sub_80E2A38
-sub_80E2A38: @ 80E2A38
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2A78
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- adds r6, r0, 0
- ldrh r3, [r4]
- lsls r3, 16
- asrs r0, r3, 23
- movs r4, 0x1
- ands r0, r4
- asrs r1, r3, 24
- ands r1, r4
- asrs r2, r3, 25
- ands r2, r4
- asrs r3, 26
- ands r3, r4
- bl sub_80792C0
- orrs r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2A78: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2A38
-
- thumb_func_start sub_80E2A7C
-sub_80E2A7C: @ 80E2A7C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- movs r0, 0x1
- bl sub_80E1DC4
- adds r5, r0, 0
- ldr r0, _080E2AA8
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _080E2B26
- lsls r0, 2
- ldr r1, _080E2AAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2AA8: .4byte gUnknown_03004B00
-_080E2AAC: .4byte _080E2AB0
- .align 2, 0
-_080E2AB0:
- .4byte _080E2AD2
- .4byte _080E2ADE
- .4byte _080E2AD0
- .4byte _080E2ADC
- .4byte _080E2AEC
- .4byte _080E2B04
- .4byte _080E2B0C
- .4byte _080E2B18
-_080E2AD0:
- movs r5, 0
-_080E2AD2:
- mov r0, sp
- ldr r1, _080E2AD8
- b _080E2AE2
- .align 2, 0
-_080E2AD8: .4byte gUnknown_0202F7C8
-_080E2ADC:
- movs r5, 0
-_080E2ADE:
- mov r0, sp
- ldr r1, _080E2AE8
-_080E2AE2:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080E2B26
- .align 2, 0
-_080E2AE8: .4byte gUnknown_0202F7C9
-_080E2AEC:
- mov r1, sp
- ldr r0, _080E2AFC
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080E2B00
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- b _080E2B26
- .align 2, 0
-_080E2AFC: .4byte gUnknown_0202F7C8
-_080E2B00: .4byte gUnknown_0202F7C9
-_080E2B04:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- b _080E2B26
-_080E2B0C:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B14
- b _080E2B1E
- .align 2, 0
-_080E2B14: .4byte gUnknown_0202F7C8
-_080E2B18:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B70
-_080E2B1E:
- ldrb r0, [r0]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2]
-_080E2B26:
- movs r4, 0
- mov r6, sp
-_080E2B2A:
- ldrb r0, [r6]
- cmp r4, r0
- beq _080E2B54
- ldrb r0, [r6, 0x1]
- cmp r4, r0
- beq _080E2B54
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E2B54
- adds r0, r4, 0
- bl sub_80793A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- orrs r5, r1
-_080E2B54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080E2B2A
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80E2C8C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2B70: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80E2A7C
-
- thumb_func_start sub_80E2B74
-sub_80E2B74: @ 80E2B74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E2B98
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80E1DC4
- adds r2, r0, 0
- ldr r0, _080E2B9C
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _080E2C4A
- lsls r0, 2
- ldr r1, _080E2BA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2B98: .4byte gUnknown_03004B00
-_080E2B9C: .4byte gUnknown_0300428C
-_080E2BA0: .4byte _080E2BA4
- .align 2, 0
-_080E2BA4:
- .4byte _080E2BCC
- .4byte _080E2BDC
- .4byte _080E2BE8
- .4byte _080E2BF8
- .4byte _080E2C04
- .4byte _080E2C14
- .4byte _080E2C24
- .4byte _080E2C34
- .4byte _080E2C44
- .4byte _080E2C44
-_080E2BCC:
- ldr r1, _080E2BD4
- ldr r0, _080E2BD8
- b _080E2C48
- .align 2, 0
-_080E2BD4: .4byte gUnknown_03004B00
-_080E2BD8: .4byte 0x00000b0c
-_080E2BDC:
- ldr r1, _080E2BE4
- movs r0, 0x9E
- lsls r0, 4
- b _080E2C48
- .align 2, 0
-_080E2BE4: .4byte gUnknown_03004B00
-_080E2BE8:
- ldr r1, _080E2BF0
- ldr r0, _080E2BF4
- b _080E2C48
- .align 2, 0
-_080E2BF0: .4byte gUnknown_03004B00
-_080E2BF4: .4byte 0x00002f1e
-_080E2BF8:
- ldr r1, _080E2C00
- movs r0, 0x90
- lsls r0, 7
- b _080E2C48
- .align 2, 0
-_080E2C00: .4byte gUnknown_03004B00
-_080E2C04:
- ldr r1, _080E2C0C
- ldr r0, _080E2C10
- b _080E2C48
- .align 2, 0
-_080E2C0C: .4byte gUnknown_03004B00
-_080E2C10: .4byte 0x00007ecb
-_080E2C14:
- ldr r1, _080E2C1C
- ldr r0, _080E2C20
- b _080E2C48
- .align 2, 0
-_080E2C1C: .4byte gUnknown_03004B00
-_080E2C20: .4byte 0x00007ecb
-_080E2C24:
- ldr r1, _080E2C2C
- ldr r0, _080E2C30
- b _080E2C48
- .align 2, 0
-_080E2C2C: .4byte gUnknown_03004B00
-_080E2C30: .4byte 0x00002a16
-_080E2C34:
- ldr r1, _080E2C3C
- ldr r0, _080E2C40
- b _080E2C48
- .align 2, 0
-_080E2C3C: .4byte gUnknown_03004B00
-_080E2C40: .4byte 0x00000d2e
-_080E2C44:
- ldr r1, _080E2C58
- ldr r0, _080E2C5C
-_080E2C48:
- strh r0, [r1, 0x8]
-_080E2C4A:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C58: .4byte gUnknown_03004B00
-_080E2C5C: .4byte 0x00007fff
- thumb_func_end sub_80E2B74
-
- thumb_func_start sub_80E2C60
-sub_80E2C60: @ 80E2C60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E2C88
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- adds r0, r4, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C88: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2C60
-
- thumb_func_start sub_80E2C8C
-sub_80E2C8C: @ 80E2C8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080E2CC4
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- strh r1, [r2, 0x8]
- lsrs r1, 16
- strh r1, [r2, 0xA]
- ldr r3, _080E2CC8
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x10]
- ldrh r1, [r3, 0x8]
- strh r1, [r2, 0x12]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0x1C]
- ldr r1, _080E2CCC
- str r1, [r2]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gUnknown_03004B00
-_080E2CCC: .4byte sub_80E2CD0
- thumb_func_end sub_80E2C8C
-
- thumb_func_start sub_80E2CD0
-sub_80E2CD0: @ 80E2CD0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r2, _080E2D50
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1A]
- mov r8, r0
- movs r4, 0x1A
- ldrsh r1, [r3, r4]
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- mov r9, r2
- cmp r1, r0
- bne _080E2D66
- strh r6, [r3, 0x1A]
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r0, 16
- orrs r4, r0
- mov r8, r5
- cmp r4, 0
- beq _080E2D32
- adds r5, r3, 0
-_080E2D10:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E2D24
- ldrb r2, [r5, 0x1C]
- ldrh r3, [r5, 0x12]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
-_080E2D24:
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r4, 1
- cmp r4, 0
- bne _080E2D10
-_080E2D32:
- mov r4, r8
- adds r0, r4, r7
- lsls r0, 3
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- movs r4, 0x1C
- ldrsh r3, [r2, r4]
- movs r4, 0x10
- ldrsh r1, [r2, r4]
- cmp r3, r1
- bge _080E2D54
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
- .align 2, 0
-_080E2D50: .4byte gTasks
-_080E2D54:
- cmp r3, r1
- ble _080E2D5E
- subs r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
-_080E2D5E:
- adds r0, r7, 0
- bl move_anim_task_del
- b _080E2D6C
-_080E2D66:
- mov r0, r8
- adds r0, 0x1
- strh r0, [r3, 0x1A]
-_080E2D6C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2CD0
-
- thumb_func_start sub_80E2D78
-sub_80E2D78: @ 80E2D78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2DAC
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrb r4, [r4, 0x8]
- str r4, [sp]
- bl BeginHardwarePaletteFade
- ldr r1, _080E2DB0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E2DB4
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DAC: .4byte gUnknown_03004B00
-_080E2DB0: .4byte gTasks
-_080E2DB4: .4byte sub_80E2DB8
- thumb_func_end sub_80E2D78
-
- thumb_func_start sub_80E2DB8
-sub_80E2DB8: @ 80E2DB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E2DD4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E2DD0
- adds r0, r2, 0
- bl move_anim_task_del
-_080E2DD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DD4: .4byte gPaletteFade
- thumb_func_end sub_80E2DB8
-
- thumb_func_start sub_80E2DD8
-sub_80E2DD8: @ 80E2DD8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E2E04
- adds r1, r0
- ldr r2, _080E2E08
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x4]
- strh r0, [r1, 0xE]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- ldr r0, _080E2E0C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080E2E04: .4byte gTasks
-_080E2E08: .4byte gUnknown_03004B00
-_080E2E0C: .4byte sub_80E2E10
- thumb_func_end sub_80E2DD8
-
- thumb_func_start sub_80E2E10
-sub_80E2E10: @ 80E2E10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E2E3C
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E2ED4
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2E40
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2E3C: .4byte gTasks
-_080E2E40:
- ldrb r0, [r4, 0x8]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- blt _080E2EBE
- ldr r6, _080E2ECC
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x2
- cmp r0, 0
- beq _080E2E68
- movs r2, 0x1
-_080E2E68:
- lsls r2, 2
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x5]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0xE]
- strh r1, [r0, 0x2E]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x30]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strh r1, [r0, 0x32]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080E2ED0
- str r1, [r0]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_080E2EBE:
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2ECC: .4byte gSprites
-_080E2ED0: .4byte sub_80E2EE8
-_080E2ED4:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E2EE2
- adds r0, r2, 0
- bl move_anim_task_del
-_080E2EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2E10
-
- thumb_func_start sub_80E2EE8
-sub_80E2EE8: @ 80E2EE8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2EFC
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E2F20
-_080E2EFC:
- ldr r3, _080E2F28
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080E2F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2F28: .4byte gTasks
- thumb_func_end sub_80E2EE8
-
- thumb_func_start sub_80E2F2C
-sub_80E2F2C: @ 80E2F2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080E3038
- strh r7, [r0]
- ldr r0, _080E303C
- strh r7, [r0]
- ldr r1, _080E3040
- ldr r2, _080E3044
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3048
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E304C
- ldr r2, _080E3050
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3054
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3058
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E2FAC
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E2FAC:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E3028
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
- ldr r5, _080E305C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E2FDC
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
-_080E2FDC:
- ldrb r0, [r5]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E3028
- ldr r3, _080E3060
- ldr r1, _080E3064
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r7, 0x1
-_080E3028:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E306C
- ldr r0, _080E3068
- ldrh r4, [r0]
- b _080E30B4
- .align 2, 0
-_080E3038: .4byte gUnknown_030042C4
-_080E303C: .4byte gUnknown_03004240
-_080E3040: .4byte REG_WININ
-_080E3044: .4byte 0x00003f3f
-_080E3048: .4byte 0x00003f3d
-_080E304C: .4byte REG_BLDCNT
-_080E3050: .4byte 0x00003f42
-_080E3054: .4byte 0x00000c08
-_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gUnknown_0202F7C8
-_080E3060: .4byte gSprites
-_080E3064: .4byte gUnknown_02024BE0
-_080E3068: .4byte 0x02019348
-_080E306C:
- ldr r4, _080E308C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3098
- ldr r1, _080E3090
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3094
- b _080E30A8
- .align 2, 0
-_080E308C: .4byte gUnknown_0202F7C8
-_080E3090: .4byte gUnknown_02024A6A
-_080E3094: .4byte gEnemyParty
-_080E3098:
- ldr r1, _080E3160
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3164
-_080E30A8:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E30B4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3168
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E316C
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E3170
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E3174
- bl LZDecompressVram
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3106
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3106:
- ldr r0, _080E3178
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E317C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- adds r1, 0x1
- movs r2, 0x2
- bl LoadPalette
- ldr r2, _080E3180
- ldr r0, _080E3184
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r2, _080E3188
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r1, _080E318C
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0x14]
- ldr r1, _080E3190
- str r1, [r0]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3160: .4byte gUnknown_02024A6A
-_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gUnknown_0202F7C8
-_080E316C: .4byte 0x040000d4
-_080E3170: .4byte 0x85000400
-_080E3174: .4byte gUnknown_08D20A30
-_080E3178: .4byte gUnknown_08D20A14
-_080E317C: .4byte gUnknown_083DB568
-_080E3180: .4byte gUnknown_030042C0
-_080E3184: .4byte gSprites
-_080E3188: .4byte gUnknown_030041B4
-_080E318C: .4byte gTasks
-_080E3190: .4byte sub_80E3194
- thumb_func_end sub_80E2F2C
-
- thumb_func_start sub_80E3194
-sub_80E3194: @ 80E3194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E32AC
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r7, _080E32B0
- ldrh r2, [r7]
- subs r1, r2, 0x4
- strh r1, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080E329E
- strh r5, [r4, 0x1C]
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r7]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E329E
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E32B4
- strh r5, [r0]
- ldr r0, _080E32B8
- strh r5, [r0]
- ldr r0, _080E32BC
- ldr r2, _080E32C0
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3208
- ldr r2, _080E32C4
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3208:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E32C8
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r0, _080E32CC
- mov r8, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E32D0
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E32D4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3288
- ldr r2, _080E32D8
- ldr r0, _080E32DC
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E3288:
- ldr r2, _080E32C4
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0
- strh r0, [r7]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E329E:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E32AC: .4byte gTasks
-_080E32B0: .4byte gUnknown_030041B4
-_080E32B4: .4byte gUnknown_030042C4
-_080E32B8: .4byte gUnknown_03004240
-_080E32BC: .4byte REG_WININ
-_080E32C0: .4byte 0x00003f3f
-_080E32C4: .4byte REG_BG1CNT
-_080E32C8: .4byte REG_BLDCNT
-_080E32CC: .4byte gSprites
-_080E32D0: .4byte 0x040000d4
-_080E32D4: .4byte 0x85000200
-_080E32D8: .4byte gUnknown_02024BE0
-_080E32DC: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E3194
-
- thumb_func_start sub_80E32E0
-sub_80E32E0: @ 80E32E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _080E332C
- mov r12, r0
- ldr r1, _080E3330
- mov r8, r1
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r4, r0, 3
- mov r7, r12
- adds r7, 0x8
- adds r5, r1, 0
- ldr r6, _080E3334
-_080E3302:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r1, r7
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080E3302
- adds r0, r5, r3
- lsls r0, 3
- add r0, r12
- mov r1, r8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E332C: .4byte gTasks
-_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gUnknown_03004B00
- thumb_func_end sub_80E32E0
-
- thumb_func_start sub_80E3338
-sub_80E3338: @ 80E3338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0
- str r0, [sp, 0x1C]
- movs r1, 0
- str r1, [sp, 0x20]
- add r7, sp, 0xC
- ldr r2, _080E3388
- mov r3, r9
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- mov r10, r1
- adds r1, r2, 0
- adds r1, 0x8
- adds r1, r0, r1
- adds r3, r7, 0
- movs r4, 0
- movs r2, 0x7
-_080E336C:
- ldrh r0, [r1]
- strh r0, [r3]
- strh r4, [r1]
- adds r1, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080E336C
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3390
- ldr r0, _080E338C
- b _080E3392
- .align 2, 0
-_080E3388: .4byte gTasks
-_080E338C: .4byte gUnknown_0202F7C8
-_080E3390:
- ldr r0, _080E34B4
-_080E3392:
- ldrb r5, [r0]
- movs r0, 0x2
- mov r8, r5
- mov r2, r8
- eors r2, r0
- mov r8, r2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E33BC
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E33C0
- mov r0, r8
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080E33C0
-_080E33BC:
- movs r0, 0
- strh r0, [r7, 0x6]
-_080E33C0:
- ldr r0, _080E34B8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E34BC
- strh r1, [r0]
- ldr r1, _080E34C0
- ldr r2, _080E34C4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E34C8
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E34CC
- ldr r2, _080E34D0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E34D4
- ldrb r1, [r4]
- movs r6, 0x4
- negs r6, r6
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3432
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3432:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E34A4
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E34A4
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E345E
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E34A4
-_080E345E:
- mov r0, r8
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E34A4
- ldr r1, _080E34D8
- ldr r0, _080E34DC
- add r0, r8
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r2, 0x1
- str r2, [sp, 0x20]
-_080E34A4:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E34E4
- ldr r0, _080E34E0
- ldrh r4, [r0]
- b _080E3522
- .align 2, 0
-_080E34B4: .4byte gUnknown_0202F7C9
-_080E34B8: .4byte gUnknown_030042C4
-_080E34BC: .4byte gUnknown_03004240
-_080E34C0: .4byte REG_WININ
-_080E34C4: .4byte 0x00003f3f
-_080E34C8: .4byte 0x00003f3d
-_080E34CC: .4byte REG_BLDCNT
-_080E34D0: .4byte 0x00003f42
-_080E34D4: .4byte REG_BG1CNT
-_080E34D8: .4byte gSprites
-_080E34DC: .4byte gUnknown_02024BE0
-_080E34E0: .4byte 0x02019348
-_080E34E4:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3508
- ldr r1, _080E3500
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3504
- b _080E3516
- .align 2, 0
-_080E3500: .4byte gUnknown_02024A6A
-_080E3504: .4byte gEnemyParty
-_080E3508:
- ldr r1, _080E3568
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E356C
-_080E3516:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3522:
- ldr r6, _080E3570
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E3550
- mov r1, r8
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
-_080E3550:
- mov r0, sp
- bl sub_8078914
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E3578
- ldr r0, _080E3574
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080E3580
- .align 2, 0
-_080E3568: .4byte gUnknown_02024A6A
-_080E356C: .4byte gPlayerParty
-_080E3570: .4byte gUnknown_02024BE0
-_080E3574: .4byte gBattleStatMask1_Tilemap
-_080E3578:
- ldr r0, _080E35B0
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080E3580:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3598
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3598:
- ldr r0, _080E35B4
- ldr r1, [sp]
- bl LZDecompressVram
- ldrh r0, [r7, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080E35BC
- ldr r0, _080E35B8
- b _080E35FE
- .align 2, 0
-_080E35B0: .4byte gBattleStatMask2_Tilemap
-_080E35B4: .4byte gBattleStatMask_Gfx
-_080E35B8: .4byte gBattleStatMask2_Pal
-_080E35BC:
- cmp r0, 0x1
- bne _080E35C8
- ldr r0, _080E35C4
- b _080E35FE
- .align 2, 0
-_080E35C4: .4byte gBattleStatMask1_Pal
-_080E35C8:
- cmp r0, 0x2
- bne _080E35D4
- ldr r0, _080E35D0
- b _080E35FE
- .align 2, 0
-_080E35D0: .4byte gBattleStatMask3_Pal
-_080E35D4:
- cmp r0, 0x3
- bne _080E35E0
- ldr r0, _080E35DC
- b _080E35FE
- .align 2, 0
-_080E35DC: .4byte gBattleStatMask4_Pal
-_080E35E0:
- cmp r0, 0x4
- bne _080E35EC
- ldr r0, _080E35E8
- b _080E35FE
- .align 2, 0
-_080E35E8: .4byte gBattleStatMask6_Pal
-_080E35EC:
- cmp r0, 0x5
- bne _080E35F8
- ldr r0, _080E35F4
- b _080E35FE
- .align 2, 0
-_080E35F4: .4byte gBattleStatMask7_Pal
-_080E35F8:
- cmp r0, 0x6
- bne _080E3610
- ldr r0, _080E360C
-_080E35FE:
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080E361E
- .align 2, 0
-_080E360C: .4byte gBattleStatMask8_Pal
-_080E3610:
- ldr r0, _080E3644
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080E361E:
- ldr r2, _080E3648
- movs r1, 0
- strh r1, [r2]
- ldr r0, _080E364C
- strh r1, [r0]
- movs r3, 0
- ldrsh r0, [r7, r3]
- cmp r0, 0x1
- bne _080E3658
- movs r0, 0x40
- strh r0, [r2]
- ldr r2, _080E3650
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- ldr r1, _080E3654
- strh r1, [r0, 0xA]
- b _080E3668
- .align 2, 0
-_080E3644: .4byte gBattleStatMask5_Pal
-_080E3648: .4byte gUnknown_030042C0
-_080E364C: .4byte gUnknown_030041B4
-_080E3650: .4byte gTasks
-_080E3654: .4byte 0x0000fffd
-_080E3658:
- ldr r0, _080E3680
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- movs r2, 0x3
- strh r2, [r1, 0xA]
- adds r2, r0, 0
-_080E3668:
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3684
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- strh r1, [r0, 0x10]
- movs r1, 0x14
- b _080E3692
- .align 2, 0
-_080E3680: .4byte gTasks
-_080E3684:
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xD
- strh r1, [r0, 0x10]
- movs r1, 0x1E
-_080E3692:
- strh r1, [r0, 0x12]
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- ldrh r0, [r7, 0x6]
- strh r0, [r1, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r1, 0xE]
- mov r3, sp
- ldrh r3, [r3, 0x20]
- strh r3, [r1, 0x14]
- ldr r0, _080E36D8
- add r0, r8
- ldrb r0, [r0]
- strh r0, [r1, 0x16]
- ldr r0, _080E36DC
- str r0, [r1]
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E36E0
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xEF
- bl PlaySE12WithPanning
- b _080E36F4
- .align 2, 0
-_080E36D8: .4byte gUnknown_02024BE0
-_080E36DC: .4byte sub_80E3704
-_080E36E0:
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xF5
- bl PlaySE12WithPanning
-_080E36F4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E3338
-
- thumb_func_start sub_80E3704
-sub_80E3704: @ 80E3704
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080E3730
- ldr r1, _080E3734
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- cmp r2, 0x1
- beq _080E3774
- cmp r2, 0x1
- bgt _080E3738
- cmp r2, 0
- beq _080E373E
- b _080E3866
- .align 2, 0
-_080E3730: .4byte gUnknown_030041B4
-_080E3734: .4byte gTasks
-_080E3738:
- cmp r2, 0x2
- beq _080E378E
- b _080E3866
-_080E373E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- bgt _080E374C
- b _080E3866
-_080E374C:
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3770
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3866
- b _080E3786
- .align 2, 0
-_080E3770: .4byte REG_BLDALPHA
-_080E3774:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3866
-_080E3786:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3866
-_080E378E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- ble _080E3866
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E386C
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3866
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3870
- strh r5, [r0]
- ldr r0, _080E3874
- strh r5, [r0]
- ldr r0, _080E3878
- ldr r2, _080E387C
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E37E8
- ldr r2, _080E3880
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E37E8:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E3884
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E3888
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3828
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3828:
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3854
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E3854:
- ldr r2, _080E3880
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E3866:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E386C: .4byte REG_BLDALPHA
-_080E3870: .4byte gUnknown_030042C4
-_080E3874: .4byte gUnknown_03004240
-_080E3878: .4byte REG_WININ
-_080E387C: .4byte 0x00003f3f
-_080E3880: .4byte REG_BG1CNT
-_080E3884: .4byte REG_BLDCNT
-_080E3888: .4byte gSprites
- thumb_func_end sub_80E3704
-
- thumb_func_start sub_80E388C
-sub_80E388C: @ 80E388C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- adds r6, r0, 0
- movs r1, 0
- bl sub_80E39BC
- ldr r0, _080E38EC
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- lsrs r0, r6, 16
- movs r5, 0
- strh r0, [r4, 0x24]
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r6, r0, 0
- ldr r1, _080E38F0
- ands r6, r1
- adds r0, r6, 0
- bl sub_80E39BC
- strh r6, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r0, _080E38F4
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E38EC: .4byte gTasks
-_080E38F0: .4byte 0x0000ffff
-_080E38F4: .4byte sub_80E38F8
- thumb_func_end sub_80E388C
-
- thumb_func_start sub_80E38F8
-sub_80E38F8: @ 80E38F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E391C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080E393C
- cmp r1, 0x1
- bgt _080E3920
- cmp r1, 0
- beq _080E3926
- b _080E39B6
- .align 2, 0
-_080E391C: .4byte gTasks
-_080E3920:
- cmp r1, 0x2
- beq _080E39B0
- b _080E39B6
-_080E3926:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080E39B6
- strh r1, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- b _080E39A4
-_080E393C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E39B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r6, 0x1
-_080E3958:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3972
- lsls r0, r5, 20
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- ldr r3, _080E39AC
- bl BlendPalette
-_080E3972:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3992
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_080E3992:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080E3958
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E39B6
-_080E39A4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E39B6
- .align 2, 0
-_080E39AC: .4byte 0x0000ffff
-_080E39B0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E39B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E38F8
-
- thumb_func_start sub_80E39BC
-sub_80E39BC: @ 80E39BC
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r2, 0
-_080E39C6:
- movs r0, 0x1
- ands r0, r3
- lsrs r4, r3, 1
- adds r5, r2, 0x1
- cmp r0, 0
- beq _080E39F2
- lsls r0, r2, 20
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x10
- cmp r2, r0
- bge _080E39F2
- ldr r1, _080E3A04
- adds r3, r0, 0
-_080E39E2:
- lsls r0, r2, 1
- adds r0, r1
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _080E39E2
-_080E39F2:
- adds r3, r4, 0
- lsls r0, r5, 16
- lsrs r2, r0, 16
- cmp r2, 0x1F
- bls _080E39C6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A04: .4byte gPlttBufferFaded
- thumb_func_end sub_80E39BC
-
- thumb_func_start sub_80E3A08
-sub_80E3A08: @ 80E3A08
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r2, 0
- ldr r0, _080E3A50
- ldrb r3, [r0]
- movs r5, 0x1
-_080E3A18:
- cmp r3, r2
- beq _080E3A26
- adds r1, r2, 0
- adds r1, 0x10
- adds r0, r5, 0
- lsls r0, r1
- orrs r4, r0
-_080E3A26:
- adds r2, 0x1
- cmp r2, 0x3
- bls _080E3A18
- movs r2, 0x5
- ldr r0, _080E3A54
- adds r1, r0, 0
- adds r1, 0x8
-_080E3A34:
- ldrh r0, [r1]
- strh r0, [r1, 0x2]
- subs r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E3A34
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A50: .4byte gUnknown_0202F7C8
-_080E3A54: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3A08
-
- thumb_func_start sub_80E3A58
-sub_80E3A58: @ 80E3A58
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080E3AC0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080E3AC4
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3A94
- ldr r0, _080E3AC8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3A94
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080E3A94:
- ldr r0, _080E3ACC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r2, _080E3AC4
- ldrh r0, [r2]
- strh r0, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gUnknown_03004B00
-_080E3AC8: .4byte gUnknown_0202F7C8
-_080E3ACC: .4byte gTasks
- thumb_func_end sub_80E3A58
-
- thumb_func_start sub_80E3AD0
-sub_80E3AD0: @ 80E3AD0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3B3C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0xA]
- ldrh r0, [r1, 0x1C]
- adds r3, r0
- movs r4, 0
- mov r12, r4
- strh r3, [r1, 0x1C]
- ldrh r2, [r1, 0xC]
- ldrh r7, [r1, 0x1E]
- adds r2, r7
- strh r2, [r1, 0x1E]
- ldr r6, _080E3B40
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r4, [r6]
- adds r0, r4
- strh r0, [r6]
- ldr r4, _080E3B44
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r7, [r4]
- adds r0, r7
- strh r0, [r4]
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1, 0x1C]
- ands r2, r0
- strh r2, [r1, 0x1E]
- ldr r0, _080E3B48
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- movs r7, 0xE
- ldrsh r0, [r1, r7]
- cmp r2, r0
- bne _080E3B36
- mov r0, r12
- strh r0, [r6]
- strh r0, [r4]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl DestroyTask
-_080E3B36:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B3C: .4byte gTasks
-_080E3B40: .4byte gUnknown_030041B0
-_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3AD0
-
- thumb_func_start sub_80E3B4C
-sub_80E3B4C: @ 80E3B4C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B70
- ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3B74
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B70: .4byte gUnknown_0202F7C8
-_080E3B74: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3B4C
-
- thumb_func_start sub_80E3B78
-sub_80E3B78: @ 80E3B78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B9C
- ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3BA0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B9C: .4byte gUnknown_0202F7C9
-_080E3BA0: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3B78
-
- thumb_func_start sub_80E3BA4
-sub_80E3BA4: @ 80E3BA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r5, _080E3BD0
- movs r4, 0
- ldr r0, _080E3BD4
- ldrb r2, [r0]
- movs r0, 0x2
- ldr r1, _080E3BD8
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E3BC0
- movs r4, 0x1
-_080E3BC0:
- strh r4, [r5, 0xE]
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3BD0: .4byte gUnknown_03004B00
-_080E3BD4: .4byte gUnknown_0202F7C8
-_080E3BD8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80E3BA4
-
- thumb_func_start sub_80E3BDC
-sub_80E3BDC: @ 80E3BDC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, _080E3C3C
-_080E3BE6:
- ldr r0, _080E3C40
- ldrb r0, [r0]
- cmp r4, r0
- beq _080E3C24
- lsls r0, r4, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E3C24
- ldr r0, _080E3C44
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldr r1, _080E3C48
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r3, [r1]
- ands r3, r0
- lsls r3, 2
- ldrb r0, [r2]
- movs r7, 0x5
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E3C24:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E3BE6
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gUnknown_0202F7C8
-_080E3C44: .4byte gUnknown_02024BE0
-_080E3C48: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3BDC
-
- thumb_func_start sub_80E3C4C
-sub_80E3C4C: @ 80E3C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r1, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- movs r0, 0
- str r0, [sp, 0x18]
- movs r0, 0x2
- adds r6, r7, 0
- eors r6, r0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3CAE
- mov r1, r8
- cmp r1, 0
- beq _080E3CB2
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080E3CB2
-_080E3CAE:
- movs r2, 0
- mov r8, r2
-_080E3CB2:
- ldr r0, _080E3D34
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3D38
- strh r1, [r0]
- ldr r1, _080E3D3C
- ldr r3, _080E3D40
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E3D44
- adds r0, r2, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E3D48
- ldr r2, _080E3D4C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3D50
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3D22
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3D22:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3D58
- ldr r0, _080E3D54
- ldrh r4, [r0]
- b _080E3D96
- .align 2, 0
-_080E3D34: .4byte gUnknown_030042C4
-_080E3D38: .4byte gUnknown_03004240
-_080E3D3C: .4byte REG_WININ
-_080E3D40: .4byte 0x00003f3f
-_080E3D44: .4byte 0x00003f3d
-_080E3D48: .4byte REG_BLDCNT
-_080E3D4C: .4byte 0x00003f42
-_080E3D50: .4byte REG_BG1CNT
-_080E3D54: .4byte 0x02019348
-_080E3D58:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3D7C
- ldr r1, _080E3D74
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3D78
- b _080E3D8A
- .align 2, 0
-_080E3D74: .4byte gUnknown_02024A6A
-_080E3D78: .4byte gEnemyParty
-_080E3D7C:
- ldr r1, _080E3E48
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3E4C
-_080E3D8A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3D96:
- ldr r5, _080E3E50
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r8
- cmp r0, 0
- beq _080E3DC0
- adds r0, r6, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
-_080E3DC0:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- ldr r0, [sp, 0x50]
- bl LZDecompressVram
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3DE6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3DE6:
- ldr r1, [sp]
- ldr r0, [sp, 0x4C]
- bl LZDecompressVram
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- ldr r0, [sp, 0x54]
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080E3E54
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3E58
- strh r1, [r0]
- ldr r1, _080E3E5C
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x10]
- mov r2, r10
- strh r2, [r0, 0x12]
- mov r3, sp
- ldrh r3, [r3, 0x14]
- strh r3, [r0, 0x14]
- strh r7, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xE]
- ldr r1, _080E3E60
- str r1, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3E48: .4byte gUnknown_02024A6A
-_080E3E4C: .4byte gPlayerParty
-_080E3E50: .4byte gUnknown_02024BE0
-_080E3E54: .4byte gUnknown_030042C0
-_080E3E58: .4byte gUnknown_030041B4
-_080E3E5C: .4byte gTasks
-_080E3E60: .4byte sub_80E3E64
- thumb_func_end sub_80E3C4C
-
- thumb_func_start sub_80E3E64
-sub_80E3E64: @ 80E3E64
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E3E9C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0xA
- ldrsh r2, [r3, r0]
- adds r5, r1, 0
- cmp r2, 0
- bge _080E3E80
- negs r2, r2
-_080E3E80:
- ldrh r0, [r3, 0x22]
- adds r4, r0, r2
- strh r4, [r3, 0x22]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080E3EA4
- ldr r2, _080E3EA0
- lsls r1, r4, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- b _080E3EB0
- .align 2, 0
-_080E3E9C: .4byte gTasks
-_080E3EA0: .4byte gUnknown_030041B4
-_080E3EA4:
- ldr r1, _080E3ED4
- lsls r0, r4, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
-_080E3EB0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r5
- ldrh r1, [r4, 0x22]
- movs r0, 0xFF
- ands r0, r1
- movs r2, 0
- strh r0, [r4, 0x22]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080E3F18
- cmp r0, 0x1
- bgt _080E3ED8
- cmp r0, 0
- beq _080E3EDE
- b _080E3FE2
- .align 2, 0
-_080E3ED4: .4byte gUnknown_030041B4
-_080E3ED8:
- cmp r0, 0x2
- beq _080E3F32
- b _080E3FE2
-_080E3EDE:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3F14
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3FE2
- b _080E3F2A
- .align 2, 0
-_080E3F14: .4byte REG_BLDALPHA
-_080E3F18:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3FE2
-_080E3F2A:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3FE2
-_080E3F32:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E3FE8
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3FE2
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3FEC
- strh r5, [r0]
- ldr r0, _080E3FF0
- strh r5, [r0]
- ldr r0, _080E3FF4
- ldr r2, _080E3FF8
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3F90
- ldr r2, _080E3FFC
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3F90:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E4000
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E4004
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3FD0
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3FD0:
- ldr r2, _080E3FFC
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E3FE2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3FE8: .4byte REG_BLDALPHA
-_080E3FEC: .4byte gUnknown_030042C4
-_080E3FF0: .4byte gUnknown_03004240
-_080E3FF4: .4byte REG_WININ
-_080E3FF8: .4byte 0x00003f3f
-_080E3FFC: .4byte REG_BG1CNT
-_080E4000: .4byte REG_BLDCNT
-_080E4004: .4byte gSprites
- thumb_func_end sub_80E3E64
-
- thumb_func_start sub_80E4008
-sub_80E4008: @ 80E4008
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4020
- ldr r1, _080E4024
- ldrb r1, [r1]
- strh r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E4020: .4byte gUnknown_03004B00
-_080E4024: .4byte gUnknown_0300428C
- thumb_func_end sub_80E4008
-
- thumb_func_start sub_80E4028
-sub_80E4028: @ 80E4028
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4068
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E406C
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E4084
- movs r2, 0x1
-_080E405A:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E405A
- b _080E4084
- .align 2, 0
-_080E4068: .4byte gUnknown_03004B00
-_080E406C:
- cmp r0, 0x1
- bne _080E4078
- ldr r0, _080E4074
- b _080E407E
- .align 2, 0
-_080E4074: .4byte gUnknown_0202F7C8
-_080E4078:
- cmp r0, 0x2
- bne _080E4084
- ldr r0, _080E409C
-_080E407E:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E4084:
- ldr r0, _080E40A0
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r5, r0, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E40A8
- ldr r0, _080E40A4
- b _080E40AA
- .align 2, 0
-_080E409C: .4byte gUnknown_0202F7C9
-_080E40A0: .4byte gUnknown_03004B00
-_080E40A4: .4byte 0x02014800
-_080E40A8:
- ldr r0, _080E40C8
-_080E40AA:
- adds r2, r5, r0
- lsls r1, r4, 5
- ldr r0, _080E40CC
- adds r1, r0
- adds r0, r2, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E40C8: .4byte 0x02018000
-_080E40CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80E4028
-
- thumb_func_start sub_80E40D0
-sub_80E40D0: @ 80E40D0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4110
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E4114
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E412C
- movs r2, 0x1
-_080E4102:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E4102
- b _080E412C
- .align 2, 0
-_080E4110: .4byte gUnknown_03004B00
-_080E4114:
- cmp r0, 0x1
- bne _080E4120
- ldr r0, _080E411C
- b _080E4126
- .align 2, 0
-_080E411C: .4byte gUnknown_0202F7C8
-_080E4120:
- cmp r0, 0x2
- bne _080E412C
- ldr r0, _080E4148
-_080E4126:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E412C:
- lsls r1, r4, 5
- ldr r0, _080E414C
- adds r5, r1, r0
- ldr r0, _080E4150
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r4, r0, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E4158
- ldr r0, _080E4154
- b _080E415A
- .align 2, 0
-_080E4148: .4byte gUnknown_0202F7C9
-_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gUnknown_03004B00
-_080E4154: .4byte 0x02014800
-_080E4158:
- ldr r0, _080E4174
-_080E415A:
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4174: .4byte 0x02018000
- thumb_func_end sub_80E40D0
-
- thumb_func_start sub_80E4178
-sub_80E4178: @ 80E4178
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E41B8
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E41BC
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E41D4
- movs r2, 0x1
-_080E41AA:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E41AA
- b _080E41D4
- .align 2, 0
-_080E41B8: .4byte gUnknown_03004B00
-_080E41BC:
- cmp r0, 0x1
- bne _080E41C8
- ldr r0, _080E41C4
- b _080E41CE
- .align 2, 0
-_080E41C4: .4byte gUnknown_0202F7C8
-_080E41C8:
- cmp r0, 0x2
- bne _080E41D4
- ldr r0, _080E41F4
-_080E41CE:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E41D4:
- lsls r1, r4, 5
- ldr r0, _080E41F8
- adds r0, r1, r0
- ldr r2, _080E41FC
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E41F4: .4byte gUnknown_0202F7C9
-_080E41F8: .4byte gPlttBufferUnfaded
-_080E41FC: .4byte gPlttBufferFaded
- thumb_func_end sub_80E4178
-
- thumb_func_start sub_80E4200
-sub_80E4200: @ 80E4200
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E4220
- ldr r1, _080E421C
- movs r0, 0x1
- strh r0, [r1, 0xE]
- b _080E4224
- .align 2, 0
-_080E421C: .4byte gUnknown_03004B00
-_080E4220:
- ldr r0, _080E4230
- strh r1, [r0, 0xE]
-_080E4224:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4230: .4byte gUnknown_03004B00
- thumb_func_end sub_80E4200
-
- thumb_func_start sub_80E4234
-sub_80E4234: @ 80E4234
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4254
- ldr r1, _080E4258
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E425C
- ldr r1, _080E4260
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E4254: .4byte gUnknown_0202F7C8
-_080E4258: .4byte gUnknown_02024C08
-_080E425C: .4byte gUnknown_0202F7C9
-_080E4260: .4byte gUnknown_02024C0A
- thumb_func_end sub_80E4234
-
- thumb_func_start sub_80E4264
-sub_80E4264: @ 80E4264
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E428C
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080E4290
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080E4298
- ldr r1, _080E4294
- movs r0, 0x1
- b _080E429C
- .align 2, 0
-_080E428C: .4byte gUnknown_0202F7C8
-_080E4290: .4byte gUnknown_0202F7C9
-_080E4294: .4byte gUnknown_03004B00
-_080E4298:
- ldr r1, _080E42AC
- movs r0, 0
-_080E429C:
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E42AC: .4byte gUnknown_03004B00
- thumb_func_end sub_80E4264
-
- thumb_func_start sub_80E42B0
-sub_80E42B0: @ 80E42B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42C8
- ldr r1, _080E42CC
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E42C8: .4byte gUnknown_0202F7C9
-_080E42CC: .4byte gUnknown_02024C08
- thumb_func_end sub_80E42B0
-
- thumb_func_start sub_80E42D0
-sub_80E42D0: @ 80E42D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42F0
- ldr r1, _080E42F4
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E42F8
- ldr r1, _080E42FC
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E42F0: .4byte gUnknown_0202F7C8
-_080E42F4: .4byte gUnknown_02024C07
-_080E42F8: .4byte gUnknown_0202F7C9
-_080E42FC: .4byte gUnknown_02024C0A
- thumb_func_end sub_80E42D0
-
- thumb_func_start sub_80E4300
-sub_80E4300: @ 80E4300
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E4318
- adds r0, r4, 0
- bl move_anim_task_del
- b _080E434E
-_080E4318:
- ldr r0, _080E4354
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- ldr r1, _080E4358
- ldrb r0, [r1]
- lsls r0, 2
- ldr r2, _080E435C
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r3, 0x8]
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _080E4360
- str r0, [r3]
- ldr r1, _080E4364
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080E434E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4354: .4byte gTasks
-_080E4358: .4byte gUnknown_0202F7C8
-_080E435C: .4byte 0x02017800
-_080E4360: .4byte sub_80E4368
-_080E4364: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80E4300
-
- thumb_func_start sub_80E4368
-sub_80E4368: @ 80E4368
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43B0
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _080E43A8
- ldr r0, _080E43B4
- ldrb r3, [r0]
- lsls r3, 2
- ldr r0, _080E43B8
- adds r3, r0
- ldr r1, _080E43BC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
-_080E43A8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E43B0: .4byte gUnknown_03004B00
-_080E43B4: .4byte gUnknown_0202F7C8
-_080E43B8: .4byte 0x02017800
-_080E43BC: .4byte gTasks
- thumb_func_end sub_80E4368
-
- thumb_func_start sub_80E43C0
-sub_80E43C0: @ 80E43C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43D8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E43E0
- ldr r0, _080E43DC
- b _080E4408
- .align 2, 0
-_080E43D8: .4byte gUnknown_020239F8
-_080E43DC: .4byte sub_80E4C34
-_080E43E0:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _080E4400
- ldr r0, _080E43F8
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080E4400
- movs r4, 0x3
- ldr r0, _080E43FC
- b _080E4408
- .align 2, 0
-_080E43F8: .4byte gGameVersion
-_080E43FC: .4byte task00_battle_intro_80BC6C8
-_080E4400:
- ldr r1, _080E4434
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
-_080E4408:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E4438
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4434: .4byte gUnknown_083DB56C
-_080E4438: .4byte gTasks
- thumb_func_end sub_80E43C0
-
- thumb_func_start sub_80E443C
-sub_80E443C: @ 80E443C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080E4474
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E4478
- strh r1, [r0]
- ldr r0, _080E447C
- strh r1, [r0]
- ldr r0, _080E4480
- strh r1, [r0]
- ldr r0, _080E4484
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- ldr r2, _080E4488
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E4474: .4byte gUnknown_030042C0
-_080E4478: .4byte gUnknown_030041B4
-_080E447C: .4byte gUnknown_03004288
-_080E4480: .4byte gUnknown_03004280
-_080E4484: .4byte REG_BLDCNT
-_080E4488: .4byte 0x00003f3f
- thumb_func_end sub_80E443C
-
- thumb_func_start task_battle_intro_80BC47C
-task_battle_intro_80BC47C: @ 80E448C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E44C4
- ldrh r0, [r1]
- adds r0, 0x6
- strh r0, [r1]
- ldr r1, _080E44C8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x4
- bls _080E44B8
- b _080E46BE
-_080E44B8:
- lsls r0, 2
- ldr r1, _080E44CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E44C4: .4byte gUnknown_030042C0
-_080E44C8: .4byte gTasks
-_080E44CC: .4byte _080E44D0
- .align 2, 0
-_080E44D0:
- .4byte _080E44E4
- .4byte _080E4514
- .4byte _080E4540
- .4byte _080E4588
- .4byte _080E46B8
-_080E44E4:
- ldr r0, _080E44FC
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4500
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x10
- b _080E450A
- .align 2, 0
-_080E44FC: .4byte gUnknown_020239F8
-_080E4500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x1
-_080E450A:
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E46BE
-_080E4514:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r3, r8
- adds r1, r0, r3
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E452C
- b _080E46BE
-_080E452C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E453C
- movs r0, 0x3F
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E453C: .4byte REG_WININ
-_080E4540:
- ldr r1, _080E457C
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4558
- b _080E46BE
-_080E4558:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4580
- ldrh r1, [r2]
- ldr r0, _080E4584
- ands r0, r1
- strh r0, [r2]
- b _080E46BE
- .align 2, 0
-_080E457C: .4byte gUnknown_03004240
-_080E4580: .4byte gUnknown_02024DE8
-_080E4584: .4byte 0x0000fffe
-_080E4588:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- mov r5, r8
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r5, 0xE
- ldrsh r1, [r2, r5]
- mov r12, r0
- cmp r1, 0
- beq _080E45A4
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E45D2
-_080E45A4:
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080E45C4
- ldr r2, _080E45BC
- ldrh r1, [r2]
- ldr r0, _080E45C0
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x2
- b _080E45D0
- .align 2, 0
-_080E45BC: .4byte gUnknown_030041B4
-_080E45C0: .4byte 0x0000ffb0
-_080E45C4:
- ldr r2, _080E4690
- ldrh r1, [r2]
- ldr r0, _080E4694
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x1
-_080E45D0:
- strh r0, [r2]
-_080E45D2:
- ldr r2, _080E4698
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E45E6
- ldr r3, _080E469C
- adds r0, r1, r3
- strh r0, [r2]
-_080E45E6:
- mov r5, r12
- adds r0, r5, r4
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E45FE
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E45FE:
- movs r3, 0
- ldr r5, _080E46A0
- mov r9, r5
- ldr r7, _080E46A4
- mov r6, r9
- adds r5, r1, 0
-_080E460A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E460A
- cmp r3, 0x9F
- bgt _080E464E
- ldr r7, _080E46A4
- ldr r6, _080E46A0
- ldr r1, _080E46A8
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4634:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4634
-_080E464E:
- mov r3, r12
- adds r0, r3, r4
- lsls r0, 3
- mov r5, r8
- adds r1, r0, r5
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _080E46BE
- movs r0, 0x3
- mov r3, r9
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E46AC
- ldr r2, _080E46B0
- mov r0, sp
- bl CpuSet
- ldr r1, _080E46B4
- movs r5, 0x9C
- lsls r5, 8
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E4690: .4byte gUnknown_030041B4
-_080E4694: .4byte 0x0000ffc8
-_080E4698: .4byte gUnknown_03004240
-_080E469C: .4byte 0xfffffc04
-_080E46A0: .4byte gUnknown_03004DC0
-_080E46A4: .4byte gUnknown_03004DE0
-_080E46A8: .4byte gTasks
-_080E46AC: .4byte 0x0600e000
-_080E46B0: .4byte 0x05000200
-_080E46B4: .4byte REG_BG1CNT
-_080E46B8:
- adds r0, r4, 0
- bl sub_80E443C
-_080E46BE:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_battle_intro_80BC47C
-
- thumb_func_start task00_battle_intro_80BC6C8
-task00_battle_intro_80BC6C8: @ 80E46CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E46F8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x3
- beq _080E470C
- cmp r0, 0x3
- bgt _080E46FC
- cmp r0, 0x2
- beq _080E4700
- b _080E4714
- .align 2, 0
-_080E46F8: .4byte gTasks
-_080E46FC:
- cmp r0, 0x4
- bne _080E4714
-_080E4700:
- ldr r1, _080E4708
- ldrh r0, [r1]
- adds r0, 0x8
- b _080E4712
- .align 2, 0
-_080E4708: .4byte gUnknown_030042C0
-_080E470C:
- ldr r1, _080E4750
- ldrh r0, [r1]
- adds r0, 0x6
-_080E4712:
- strh r0, [r1]
-_080E4714:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r4, r1, r2
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- adds r6, r0, 0
- cmp r1, 0x4
- bne _080E4778
- ldr r7, _080E4754
- ldrh r0, [r4, 0x14]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080E473A
- ldr r1, _080E4758
- adds r0, r1
-_080E473A:
- asrs r0, 9
- subs r0, 0x8
- strh r0, [r7]
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0xB3
- bgt _080E475C
- adds r0, r1, 0x4
- b _080E475E
- .align 2, 0
-_080E4750: .4byte gUnknown_030042C0
-_080E4754: .4byte gUnknown_030041B4
-_080E4758: .4byte 0x000001ff
-_080E475C:
- adds r0, r1, 0x6
-_080E475E:
- strh r0, [r4, 0x14]
- ldr r2, _080E4794
- adds r0, r6, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r4, 0x14
- ldrsh r1, [r3, r4]
- movs r0, 0xB4
- lsls r0, 1
- cmp r1, r0
- bne _080E4778
- movs r0, 0
- strh r0, [r3, 0x14]
-_080E4778:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _080E4788
- b _080E4996
-_080E4788:
- lsls r0, 2
- ldr r1, _080E4798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4794: .4byte gTasks
-_080E4798: .4byte _080E479C
- .align 2, 0
-_080E479C:
- .4byte _080E47B0
- .4byte _080E47E0
- .4byte _080E480C
- .4byte _080E485C
- .4byte _080E4990
-_080E47B0:
- ldr r1, _080E47CC
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x10
- strh r3, [r2, 0x10]
- ldr r0, _080E47D0
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E47D4
- strh r3, [r2, 0xC]
- b _080E47D8
- .align 2, 0
-_080E47CC: .4byte gTasks
-_080E47D0: .4byte gUnknown_020239F8
-_080E47D4:
- movs r0, 0x1
- strh r0, [r2, 0xC]
-_080E47D8:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080E4996
-_080E47E0:
- ldr r0, _080E4804
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E47F6
- b _080E4996
-_080E47F6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4808
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4804: .4byte gTasks
-_080E4808: .4byte REG_WININ
-_080E480C:
- ldr r1, _080E484C
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4824
- b _080E4996
-_080E4824:
- ldr r0, _080E4850
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4854
- ldrh r1, [r2]
- ldr r0, _080E4858
- ands r0, r1
- strh r0, [r2]
- b _080E4996
- .align 2, 0
-_080E484C: .4byte gUnknown_03004240
-_080E4850: .4byte gTasks
-_080E4854: .4byte gUnknown_02024DE8
-_080E4858: .4byte 0x0000fffe
-_080E485C:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r3, [r1, 0xE]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _080E4898
- subs r0, r3, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080E48B8
- ldr r1, _080E488C
- ldr r4, _080E4890
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xF
- strh r0, [r1]
- ldr r0, _080E4894
- strh r3, [r0]
- b _080E48B8
- .align 2, 0
-_080E488C: .4byte REG_BLDCNT
-_080E4890: .4byte 0x00001842
-_080E4894: .4byte REG_BLDY
-_080E4898:
- ldrh r3, [r1, 0x10]
- movs r0, 0x1F
- ands r0, r3
- cmp r0, 0
- beq _080E48B8
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E48B8
- adds r0, r3, 0
- adds r0, 0xFF
- strh r0, [r1, 0x10]
- movs r0, 0x4
- strh r0, [r1, 0x12]
-_080E48B8:
- ldr r3, _080E4970
- ldrh r1, [r3]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E48CC
- ldr r4, _080E4974
- adds r0, r1, r4
- strh r0, [r3]
-_080E48CC:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E48E0
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E48E0:
- movs r3, 0
- ldr r4, _080E4978
- mov r8, r4
- ldr r0, _080E497C
- mov r12, r0
- mov r7, r8
- adds r4, r1, 0
-_080E48EE:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E48EE
- cmp r3, 0x9F
- bgt _080E4932
- ldr r1, _080E497C
- mov r12, r1
- ldr r7, _080E4978
- ldr r1, _080E4980
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r1
-_080E4918:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4918
-_080E4932:
- ldr r1, _080E4980
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4996
- movs r0, 0x3
- mov r4, r8
- strb r0, [r4, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4984
- ldr r2, _080E4988
- mov r0, sp
- bl CpuSet
- ldr r1, _080E498C
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4970: .4byte gUnknown_03004240
-_080E4974: .4byte 0xfffffc04
-_080E4978: .4byte gUnknown_03004DC0
-_080E497C: .4byte gUnknown_03004DE0
-_080E4980: .4byte gTasks
-_080E4984: .4byte 0x0600e000
-_080E4988: .4byte 0x05000200
-_080E498C: .4byte REG_BG1CNT
-_080E4990:
- adds r0, r5, 0
- bl sub_80E443C
-_080E4996:
- ldr r0, _080E49B8
- adds r1, r6, r5
- lsls r1, 3
- adds r2, r1, r0
- movs r4, 0x8
- ldrsh r0, [r2, r4]
- cmp r0, 0x4
- beq _080E49AC
- ldr r1, _080E49BC
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E49AC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E49B8: .4byte gTasks
-_080E49BC: .4byte REG_BLDALPHA
- thumb_func_end task00_battle_intro_80BC6C8
-
- thumb_func_start task_battle_intro_anim
-task_battle_intro_anim: @ 80E49C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E49F4
- ldrh r0, [r1]
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, _080E49F8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x4
- bls _080E49EA
- b _080E4C06
-_080E49EA:
- lsls r0, 2
- ldr r1, _080E49FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E49F4: .4byte gUnknown_030042C0
-_080E49F8: .4byte gTasks
-_080E49FC: .4byte _080E4A00
- .align 2, 0
-_080E4A00:
- .4byte _080E4A14
- .4byte _080E4A6C
- .4byte _080E4A9C
- .4byte _080E4AEC
- .4byte _080E4C00
-_080E4A14:
- ldr r1, _080E4A48
- ldr r3, _080E4A4C
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080E4A50
- ldr r6, _080E4A54
- adds r2, r6, 0
- strh r2, [r0]
- adds r1, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080E4A58
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- strh r2, [r3, 0x10]
- ldr r0, _080E4A5C
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4A60
- movs r0, 0x10
- b _080E4A62
- .align 2, 0
-_080E4A48: .4byte REG_BLDCNT
-_080E4A4C: .4byte 0x00001842
-_080E4A50: .4byte REG_BLDALPHA
-_080E4A54: .4byte 0x00000808
-_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gUnknown_020239F8
-_080E4A60:
- movs r0, 0x1
-_080E4A62:
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E4C06
-_080E4A6C:
- ldr r0, _080E4A94
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4A84
- b _080E4C06
-_080E4A84:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4A98
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4A94: .4byte gTasks
-_080E4A98: .4byte REG_WININ
-_080E4A9C:
- ldr r1, _080E4ADC
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4AB4
- b _080E4C06
-_080E4AB4:
- ldr r0, _080E4AE0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4AE4
- ldrh r1, [r2]
- ldr r0, _080E4AE8
- ands r0, r1
- strh r0, [r2]
- b _080E4C06
- .align 2, 0
-_080E4ADC: .4byte gUnknown_03004240
-_080E4AE0: .4byte gTasks
-_080E4AE4: .4byte gUnknown_02024DE8
-_080E4AE8: .4byte 0x0000fffe
-_080E4AEC:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r6, 0xE
- ldrsh r1, [r2, r6]
- mov r12, r0
- cmp r1, 0
- beq _080E4B06
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E4B26
-_080E4B06:
- ldrh r1, [r2, 0x10]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080E4B26
- ldrh r0, [r2, 0x12]
- subs r0, 0x1
- strh r0, [r2, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E4B26
- adds r0, r1, 0
- adds r0, 0xFF
- strh r0, [r2, 0x10]
- movs r0, 0x6
- strh r0, [r2, 0x12]
-_080E4B26:
- ldr r2, _080E4BE0
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4B3A
- ldr r3, _080E4BE4
- adds r0, r1, r3
- strh r0, [r2]
-_080E4B3A:
- mov r6, r12
- adds r0, r6, r4
- lsls r0, 3
- adds r1, r0, r5
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4B50
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4B50:
- movs r3, 0
- ldr r6, _080E4BE8
- mov r8, r6
- ldr r7, _080E4BEC
- adds r5, r1, 0
-_080E4B5A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4B5A
- cmp r3, 0x9F
- bgt _080E4B9E
- ldr r7, _080E4BEC
- ldr r6, _080E4BE8
- ldr r1, _080E4BF0
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4B84:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4B84
-_080E4B9E:
- ldr r1, _080E4BF0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4C06
- movs r0, 0x3
- mov r6, r8
- strb r0, [r6, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4BF4
- ldr r2, _080E4BF8
- mov r0, sp
- bl CpuSet
- ldr r1, _080E4BFC
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4BE0: .4byte gUnknown_03004240
-_080E4BE4: .4byte 0xfffffc04
-_080E4BE8: .4byte gUnknown_03004DC0
-_080E4BEC: .4byte gUnknown_03004DE0
-_080E4BF0: .4byte gTasks
-_080E4BF4: .4byte 0x0600e000
-_080E4BF8: .4byte 0x05000200
-_080E4BFC: .4byte REG_BG1CNT
-_080E4C00:
- adds r0, r4, 0
- bl sub_80E443C
-_080E4C06:
- ldr r0, _080E4C2C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r6, 0x8
- ldrsh r0, [r2, r6]
- cmp r0, 0x4
- beq _080E4C1E
- ldr r1, _080E4C30
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E4C1E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4C2C: .4byte gTasks
-_080E4C30: .4byte REG_BLDALPHA
- thumb_func_end task_battle_intro_anim
-
- thumb_func_start sub_80E4C34
-sub_80E4C34: @ 80E4C34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E4C80
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- ble _080E4CAA
- movs r2, 0x10
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E4CAA
- ldr r2, _080E4C84
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080E4C72
- cmp r1, 0x4F
- bhi _080E4C8C
-_080E4C72:
- adds r0, r1, 0x3
- strh r0, [r2]
- ldr r1, _080E4C88
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _080E4CAA
- .align 2, 0
-_080E4C80: .4byte gTasks
-_080E4C84: .4byte gUnknown_030042C0
-_080E4C88: .4byte gUnknown_03004288
-_080E4C8C:
- str r5, [sp]
- ldr r1, _080E4CCC
- ldr r4, _080E4CD0
- mov r0, sp
- adds r2, r4, 0
- bl CpuSet
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, _080E4CD4
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x1
- strh r0, [r7, 0x10]
-_080E4CAA:
- ldr r0, _080E4CD8
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- mov r12, r0
- adds r5, r2, 0
- cmp r1, 0x4
- bls _080E4CC2
- b _080E4EBA
-_080E4CC2:
- lsls r0, r1, 2
- ldr r1, _080E4CDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4CCC: .4byte 0x0600e000
-_080E4CD0: .4byte 0x05000200
-_080E4CD4: .4byte 0x0600f000
-_080E4CD8: .4byte gTasks
-_080E4CDC: .4byte _080E4CE0
- .align 2, 0
-_080E4CE0:
- .4byte _080E4CF4
- .4byte _080E4D06
- .4byte _080E4DA8
- .4byte _080E4DEC
- .4byte _080E4EB4
-_080E4CF4:
- adds r0, r5, r6
- lsls r0, 3
- add r0, r12
- movs r1, 0x10
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E4EBA
-_080E4D06:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4D1C
- b _080E4EBA
-_080E4D1C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r5, _080E4D8C
- ldr r4, _080E4D90
- ldr r3, _080E4D94
- adds r6, r4, r3
- ldrb r0, [r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x8
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r6
- ldr r3, _080E4D98
- str r3, [r0]
- ldr r0, _080E4D9C
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r1, r8
- orrs r2, r1
- strb r2, [r0, 0x1]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r3, [r0]
- ldr r1, _080E4DA0
- movs r0, 0x3F
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E4DA4
- b _080E4E94
- .align 2, 0
-_080E4D8C: .4byte gSprites
-_080E4D90: .4byte 0x02000000
-_080E4D94: .4byte 0x0001608a
-_080E4D98: .4byte sub_800FE20
-_080E4D9C: .4byte 0x0001608b
-_080E4DA0: .4byte REG_WININ
-_080E4DA4: .4byte 0x00003f06
-_080E4DA8:
- ldr r1, _080E4DE0
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4DC0
- b _080E4EBA
-_080E4DC0:
- adds r1, r5, r6
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4DE4
- ldrh r1, [r2]
- ldr r0, _080E4DE8
- ands r0, r1
- strh r0, [r2]
- b _080E4EBA
- .align 2, 0
-_080E4DE0: .4byte gUnknown_03004240
-_080E4DE4: .4byte gUnknown_02024DE8
-_080E4DE8: .4byte 0x0000fffe
-_080E4DEC:
- ldr r2, _080E4E9C
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4E00
- ldr r3, _080E4EA0
- adds r0, r1, r3
- strh r0, [r2]
-_080E4E00:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4E16
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4E16:
- movs r3, 0
- ldr r0, _080E4EA4
- mov r9, r0
- ldr r2, _080E4EA8
- mov r8, r2
- mov r7, r9
- adds r4, r1, 0
-_080E4E24:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4E24
- cmp r3, 0x9F
- bgt _080E4E68
- ldr r0, _080E4EA8
- mov r8, r0
- ldr r7, _080E4EA4
- ldr r1, _080E4EAC
- adds r0, r5, r6
- lsls r0, 3
- adds r4, r0, r1
-_080E4E4E:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4E4E
-_080E4E68:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080E4EBA
- movs r0, 0x3
- mov r2, r9
- strb r0, [r2, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4EB0
- movs r3, 0x9C
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
-_080E4E94:
- adds r0, r2, 0
- strh r0, [r1]
- b _080E4EBA
- .align 2, 0
-_080E4E9C: .4byte gUnknown_03004240
-_080E4EA0: .4byte 0xfffffc04
-_080E4EA4: .4byte gUnknown_03004DC0
-_080E4EA8: .4byte gUnknown_03004DE0
-_080E4EAC: .4byte gTasks
-_080E4EB0: .4byte REG_BG1CNT
-_080E4EB4:
- adds r0, r6, 0
- bl sub_80E443C
-_080E4EBA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E4C34
-
- thumb_func_start unref_sub_80E4EC8
-unref_sub_80E4EC8: @ 80E4EC8
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0x80
- lsls r4, 7
- str r4, [sp]
- movs r4, 0x1E
- str r4, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_80E4EF8
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80E4EC8
-
- thumb_func_start sub_80E4EF8
-sub_80E4EF8: @ 80E4EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r1
- adds r4, r2, 0
- ldr r1, [sp, 0x24]
- mov r8, r1
- ldr r1, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r7, r9
- lsls r7, 24
- adds r0, r7, 0
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsrs r6, r3, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4FCC
- ldr r1, _080E4FD0
- lsls r4, 2
- adds r4, r1
- ldr r1, _080E4FD4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r4]
- adds r0, r1
- str r0, [r2]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r2, 0x4]
- ldr r0, _080E4FD8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- mov r0, r8
- lsrs r0, 21
- lsls r5, 9
- subs r5, r0, r5
- mov r0, r9
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E4FBC
- mov r9, r1
- mov r1, r10
- lsls r1, 1
- mov r8, r1
- lsls r7, 11
- mov r12, r7
-_080E4F86:
- mov r2, r10
- adds r4, r2, 0
- adds r4, 0x8
- adds r1, r0, 0x1
- cmp r2, r4
- bge _080E4FB6
- ldr r3, [sp]
- lsls r6, r3, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- add r0, r12
- mov r7, r8
- adds r3, r7, r0
- subs r2, r4, r2
-_080E4FA6:
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r3]
- adds r5, 0x1
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E4FA6
-_080E4FB6:
- adds r0, r1, 0
- cmp r0, r9
- blt _080E4F86
-_080E4FBC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4FCC: .4byte 0x040000d4
-_080E4FD0: .4byte gUnknown_081FAF4C
-_080E4FD4: .4byte gUnknown_02024E84
-_080E4FD8: .4byte 0x80000400
- thumb_func_end sub_80E4EF8
-
- thumb_func_start unref_sub_80E4FDC
-unref_sub_80E4FDC: @ 80E4FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- mov r8, r5
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- mov r7, r8
- lsls r7, 16
- lsrs r6, r7, 16
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- lsls r0, 24
- mov r9, r0
- ldr r4, _080E509C
- ldr r0, _080E50A0
- lsrs r2, 22
- adds r2, r0
- lsrs r3, 13
- ldr r0, [r2]
- adds r0, r3
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r4, 0x4]
- ldr r0, _080E50A4
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, r7, 0
- lsrs r2, 21
- mov r6, r9
- lsrs r6, 15
- subs r4, r2, r6
- lsrs r0, r1, 24
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E508C
- mov r9, r1
- mov r7, r12
- lsls r7, 1
- mov r8, r7
- lsls r5, 11
- str r5, [sp]
-_080E5054:
- mov r2, r12
- adds r3, r2, 0
- adds r3, 0x8
- adds r5, r0, 0x1
- cmp r2, r3
- bge _080E5086
- mov r1, r10
- lsls r6, r1, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- ldr r1, [sp]
- adds r0, r1, r0
- mov r7, r8
- adds r1, r7, r0
- subs r2, r3, r2
-_080E5076:
- adds r0, r4, 0
- orrs r0, r6
- strh r0, [r1]
- adds r4, 0x1
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E5076
-_080E5086:
- adds r0, r5, 0
- cmp r0, r9
- blt _080E5054
-_080E508C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E509C: .4byte 0x040000d4
-_080E50A0: .4byte gUnknown_081FAF4C
-_080E50A4: .4byte 0x80000400
- thumb_func_end unref_sub_80E4FDC
-
- thumb_func_start MovePlayerOnBike
-MovePlayerOnBike: @ 80E50A8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080E50CC
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E50D0
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnMachBike
- b _080E50D8
- .align 2, 0
-_080E50CC: .4byte gPlayerAvatar
-_080E50D0:
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnAcroBike
-_080E50D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerOnBike
-
- thumb_func_start MovePlayerOnMachBike
-MovePlayerOnMachBike: @ 80E50E0
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- strb r0, [r1]
- ldr r4, _080E510C
- mov r0, sp
- bl CheckMovementInputMachBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E510C: .4byte gUnknown_083DB594
- thumb_func_end MovePlayerOnMachBike
-
- thumb_func_start CheckMovementInputMachBike
-CheckMovementInputMachBike: @ 80E5110
- push {r4,lr}
- adds r4, r0, 0
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5138
- strb r0, [r4]
- ldr r2, _080E5134
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E514C
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E5160
- .align 2, 0
-_080E5134: .4byte gPlayerAvatar
-_080E5138:
- ldr r2, _080E5154
- cmp r1, r3
- beq _080E515C
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- beq _080E515C
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _080E5158
- strb r3, [r4]
-_080E514C:
- movs r0, 0x2
- strb r0, [r2, 0x2]
- movs r0, 0x3
- b _080E5160
- .align 2, 0
-_080E5154: .4byte gPlayerAvatar
-_080E5158:
- movs r0, 0x1
- b _080E515E
-_080E515C:
- movs r0, 0x2
-_080E515E:
- strb r0, [r2, 0x2]
-_080E5160:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputMachBike
-
- thumb_func_start sub_80E5168
-sub_80E5168: @ 80E5168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- bl sub_80E6024
- pop {r0}
- bx r0
- thumb_func_end sub_80E5168
-
- thumb_func_start sub_80E517C
-sub_80E517C: @ 80E517C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E51AC
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51B0
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- beq _080E51B4
- adds r0, r5, 0
- bl PlayerTurnInPlace
- bl sub_80E6024
- b _080E51BE
- .align 2, 0
-_080E51AC: .4byte gPlayerAvatar
-_080E51B0: .4byte gMapObjects
-_080E51B4:
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80E5168
-_080E51BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E517C
-
- thumb_func_start sub_80E51C4
-sub_80E51C4: @ 80E51C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r6, _080E51F8
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51FC
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E520A
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5200
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5270
- b _080E5266
- .align 2, 0
-_080E51F8: .4byte gPlayerAvatar
-_080E51FC: .4byte gMapObjects
-_080E5200:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5168
- b _080E5266
-_080E520A:
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5242
- cmp r4, 0x6
- bne _080E522C
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _080E5266
-_080E522C:
- bl sub_80E6024
- subs r0, r4, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5266
- adds r0, r5, 0
- bl PlayerOnBikeCollide
- b _080E5266
-_080E5242:
- ldr r1, _080E526C
- ldrb r0, [r6, 0xA]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl _call_via_r1
- ldrb r2, [r6, 0xA]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- adds r0, r2, r0
- strb r0, [r6, 0xB]
- cmp r1, 0x1
- bhi _080E5266
- adds r0, r2, 0x1
- strb r0, [r6, 0xA]
-_080E5266:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E526C: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E51C4
-
- thumb_func_start sub_80E5270
-sub_80E5270: @ 80E5270
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r6, _080E52A8
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5286
- subs r0, 0x1
- strb r0, [r6, 0xB]
- strb r0, [r6, 0xA]
-_080E5286:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E52C2
- cmp r5, 0x6
- bne _080E52AC
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E52D2
- .align 2, 0
-_080E52A8: .4byte gPlayerAvatar
-_080E52AC:
- bl sub_80E6024
- subs r0, r5, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E52D2
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E52D2
-_080E52C2:
- ldr r0, _080E52D8
- ldrb r1, [r6, 0xA]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r7, 0
- bl _call_via_r1
-_080E52D2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E52D8: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E5270
-
- thumb_func_start MovePlayerOnAcroBike
-MovePlayerOnAcroBike: @ 80E52DC
- push {r4,lr}
- sub sp, 0x4
- mov r3, sp
- strb r0, [r3]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5310
- mov r0, sp
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5310: .4byte gUnknown_083DB5B0
- thumb_func_end MovePlayerOnAcroBike
-
- thumb_func_start CheckMovementInputAcroBike
-CheckMovementInputAcroBike: @ 80E5314
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5338
- ldr r3, _080E533C
- ldrb r3, [r3, 0x8]
- lsls r3, 2
- adds r3, r4
- ldr r3, [r3]
- bl _call_via_r3
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5338: .4byte gUnknown_083DB5E4
-_080E533C: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBike
-
- thumb_func_start CheckMovementInputAcroBikeNormal
-CheckMovementInputAcroBikeNormal: @ 80E5340
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E5374
- movs r0, 0
- strb r0, [r2, 0xA]
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5380
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _080E5378
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0x2
- strb r0, [r2, 0x8]
- movs r0, 0x3
- b _080E53D4
- .align 2, 0
-_080E5374: .4byte gPlayerAvatar
-_080E5378:
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E53D4
-_080E5380:
- cmp r1, r3
- bne _080E53A6
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080E539E
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E539E
- adds r0, 0x1
- strb r0, [r2, 0xB]
- movs r0, 0x4
- strb r0, [r2, 0x8]
- movs r0, 0xB
- b _080E53D4
-_080E539E:
- ldrb r0, [r4]
- ldr r2, _080E53CC
- cmp r0, r3
- beq _080E53D0
-_080E53A6:
- ldr r0, _080E53CC
- ldrb r1, [r0, 0x2]
- adds r2, r0, 0
- cmp r1, 0x2
- beq _080E53D0
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- ldrb r0, [r4]
- strb r0, [r2, 0x9]
- strb r1, [r2, 0x2]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E53D4
- .align 2, 0
-_080E53CC: .4byte gPlayerAvatar
-_080E53D0:
- movs r0, 0x2
- strb r0, [r2, 0x2]
-_080E53D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeNormal
-
- thumb_func_start CheckMovementInputAcroBikeChangingDirection
-CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080E5404
- ldrb r0, [r4, 0x9]
- strb r0, [r5]
- ldrb r0, [r4, 0xA]
- adds r0, 0x1
- strb r0, [r4, 0xA]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _080E5408
- movs r0, 0x1
- strb r0, [r4, 0x2]
- movs r0, 0
- strb r0, [r4, 0x8]
- bl sub_80E6024
- movs r0, 0x1
- b _080E544E
- .align 2, 0
-_080E5404: .4byte gPlayerAvatar
-_080E5408:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_80E5C2C
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E544A
- bl sub_80E6024
- movs r0, 0x1
- strb r0, [r4, 0xB]
- adds r0, r6, 0
- bl GetOppositeDirection
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E543E
- movs r0, 0x6
- strb r0, [r4, 0x8]
- movs r0, 0x9
- b _080E544E
-_080E543E:
- movs r0, 0x2
- strb r0, [r4, 0x2]
- movs r0, 0x5
- strb r0, [r4, 0x8]
- movs r0, 0x8
- b _080E544E
-_080E544A:
- strb r6, [r5]
- movs r0, 0
-_080E544E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeChangingDirection
-
- thumb_func_start CheckMovementInputAcroBikeStandingWheelie
-CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080E54A0
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E54A4
- adds r1, r0, r1
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x2
- ands r4, r0
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0
- bne _080E54A8
- strb r4, [r5, 0xA]
- ldrb r0, [r1, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080E54AE
- strb r6, [r7]
- strb r0, [r5, 0x8]
- bl sub_80E6024
- movs r0, 0x4
- b _080E54EC
- .align 2, 0
-_080E54A0: .4byte gPlayerAvatar
-_080E54A4: .4byte gMapObjects
-_080E54A8:
- ldrb r0, [r5, 0xA]
- adds r0, 0x1
- strb r0, [r5, 0xA]
-_080E54AE:
- ldr r1, _080E54C4
- ldrb r0, [r1, 0xA]
- cmp r0, 0x27
- bls _080E54C8
- strb r6, [r7]
- movs r0, 0x3
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0x6
- b _080E54EC
- .align 2, 0
-_080E54C4: .4byte gPlayerAvatar
-_080E54C8:
- ldrb r0, [r7]
- cmp r0, r6
- bne _080E54DE
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0xA
- b _080E54EC
-_080E54DE:
- cmp r0, 0
- beq _080E54E8
- movs r0, 0x1
- strb r0, [r1, 0x2]
- b _080E54EA
-_080E54E8:
- strb r6, [r7]
-_080E54EA:
- movs r0, 0x5
-_080E54EC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeStandingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeBunnyHop
-CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E5554
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5558
- adds r7, r0, r1
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5566
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080E555C
- movs r0, 0x2
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E558A
- .align 2, 0
-_080E5554: .4byte gPlayerAvatar
-_080E5558: .4byte gMapObjects
-_080E555C:
- strb r5, [r6]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x8]
- movs r0, 0x4
- b _080E558A
-_080E5566:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5570
- strb r5, [r6]
- b _080E557C
-_080E5570:
- cmp r0, r2
- beq _080E5582
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5582
- movs r0, 0x1
-_080E557C:
- strb r0, [r4, 0x2]
- movs r0, 0x6
- b _080E558A
-_080E5582:
- ldr r1, _080E5598
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x7
-_080E558A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5598: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeBunnyHop
-
- thumb_func_start CheckMovementInputAcroBikeMovingWheelie
-CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E55F8
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E55FC
- adds r7, r0, r1
- movs r0, 0x2
- mov r9, r0
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5634
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E5620
- strb r1, [r4, 0x8]
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5600
- strb r5, [r6]
- b _080E560A
- .align 2, 0
-_080E55F8: .4byte gPlayerAvatar
-_080E55FC: .4byte gMapObjects
-_080E5600:
- cmp r0, r5
- beq _080E5610
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5610
-_080E560A:
- strb r1, [r4, 0x2]
- movs r0, 0x4
- b _080E5664
-_080E5610:
- ldr r1, _080E561C
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xC
- b _080E5664
- .align 2, 0
-_080E561C: .4byte gPlayerAvatar
-_080E5620:
- mov r0, r9
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E5664
-_080E5634:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E564A
- strb r5, [r6]
- mov r1, r9
- strb r1, [r4, 0x8]
- strb r0, [r4, 0x2]
- bl sub_80E6024
- movs r0, 0x5
- b _080E5664
-_080E564A:
- cmp r2, r0
- beq _080E565C
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E565C
- movs r0, 0
- strb r0, [r4, 0x2]
- movs r0, 0x5
- b _080E5664
-_080E565C:
- ldr r1, _080E5674
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xA
-_080E5664:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5674: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeMovingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode5
-CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080E56CC
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E56D0
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- movs r0, 0
- strb r0, [r6, 0x8]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56CC: .4byte gPlayerAvatar
-_080E56D0: .4byte gMapObjects
- thumb_func_end CheckMovementInputAcroBikeUnknownMode5
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode6
-CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E56F4
- movs r3, 0
- strb r3, [r4, 0x8]
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56F4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeUnknownMode6
-
- thumb_func_start sub_80E56F8
-sub_80E56F8: @ 80E56F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end sub_80E56F8
-
- thumb_func_start sub_80E5708
-sub_80E5708: @ 80E5708
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E573C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5740
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E572E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E572E:
- adds r0, r4, 0
- bl PlayerFaceDirection
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E573C: .4byte gPlayerAvatar
-_080E5740: .4byte gMapObjects
- thumb_func_end sub_80E5708
-
- thumb_func_start sub_80E5744
-sub_80E5744: @ 80E5744
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5774
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5778
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E577C
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E56F8
- b _080E57B6
- .align 2, 0
-_080E5774: .4byte gPlayerAvatar
-_080E5778: .4byte gMapObjects
-_080E577C:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E57B0
- cmp r1, 0x6
- bne _080E579E
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E57B6
-_080E579E:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E57B6
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E57B6
-_080E57B0:
- adds r0, r6, 0
- bl npc_use_some_d2s
-_080E57B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5744
-
- thumb_func_start sub_80E57BC
-sub_80E57BC: @ 80E57BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E57F0
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E57F4
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E57E2
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E57E2:
- adds r0, r4, 0
- bl sub_805951C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E57F0: .4byte gPlayerAvatar
-_080E57F4: .4byte gMapObjects
- thumb_func_end sub_80E57BC
-
- thumb_func_start sub_80E57F8
-sub_80E57F8: @ 80E57F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E582C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5830
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E581E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E581E:
- adds r0, r4, 0
- bl sub_8059534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E582C: .4byte gPlayerAvatar
-_080E5830: .4byte gMapObjects
- thumb_func_end sub_80E57F8
-
- thumb_func_start sub_80E5834
-sub_80E5834: @ 80E5834
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E5868
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E586C
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E585A
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E585A:
- adds r0, r4, 0
- bl sub_8059504
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5868: .4byte gPlayerAvatar
-_080E586C: .4byte gMapObjects
- thumb_func_end sub_80E5834
-
- thumb_func_start sub_80E5870
-sub_80E5870: @ 80E5870
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58A4
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58A8
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5896
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E5896:
- adds r0, r4, 0
- bl sub_805954C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E58A4: .4byte gPlayerAvatar
-_080E58A8: .4byte gMapObjects
- thumb_func_end sub_80E5870
-
- thumb_func_start sub_80E58AC
-sub_80E58AC: @ 80E58AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58D8
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58DC
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E58E0
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E5870
- b _080E591A
- .align 2, 0
-_080E58D8: .4byte gPlayerAvatar
-_080E58DC: .4byte gMapObjects
-_080E58E0:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E5914
- cmp r1, 0x9
- beq _080E5914
- cmp r1, 0x6
- bne _080E58FE
- adds r0, r4, 0
- bl sub_8059594
- b _080E591A
-_080E58FE:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E591A
- cmp r1, 0xB
- bhi _080E5914
- adds r0, r4, 0
- bl sub_80E5870
- b _080E591A
-_080E5914:
- adds r0, r4, 0
- bl sub_8059570
-_080E591A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E58AC
-
- thumb_func_start sub_80E5920
-sub_80E5920: @ 80E5920
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _080E5954
- cmp r0, 0x7
- beq _080E5980
- cmp r0, 0x9
- bls _080E594C
- adds r0, r1, 0
- adds r1, r5, 0
- bl sub_80E5EC0
- lsls r0, 24
- cmp r0, 0
- bne _080E5954
-_080E594C:
- adds r0, r5, 0
- bl sub_80E5708
- b _080E5980
-_080E5954:
- ldr r0, _080E5988
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E598C
- adds r4, r0
- movs r0, 0x22
- bl PlaySE
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80608A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
-_080E5980:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5988: .4byte gPlayerAvatar
-_080E598C: .4byte gMapObjects
- thumb_func_end sub_80E5920
-
- thumb_func_start sub_80E5990
-sub_80E5990: @ 80E5990
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80595B8
- pop {r0}
- bx r0
- thumb_func_end sub_80E5990
-
- thumb_func_start sub_80E59A0
-sub_80E59A0: @ 80E59A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E59D0
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E59D4
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E59D8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059504
- b _080E5A28
- .align 2, 0
-_080E59D0: .4byte gPlayerAvatar
-_080E59D4: .4byte gMapObjects
-_080E59D8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5A1E
- cmp r1, 0x6
- bne _080E59FA
- adds r0, r4, 0
- bl sub_8059594
- b _080E5A28
-_080E59FA:
- cmp r1, 0x9
- beq _080E5A0E
- cmp r1, 0x4
- bhi _080E5A28
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5A16
-_080E5A0E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5A28
-_080E5A16:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5A28
-_080E5A1E:
- adds r0, r6, 0
- bl sub_8059618
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5A28:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E59A0
-
- thumb_func_start sub_80E5A30
-sub_80E5A30: @ 80E5A30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E5A60
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5A64
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5A68
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_805951C
- b _080E5AB8
- .align 2, 0
-_080E5A60: .4byte gPlayerAvatar
-_080E5A64: .4byte gMapObjects
-_080E5A68:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5AAE
- cmp r1, 0x6
- bne _080E5A8A
- adds r0, r4, 0
- bl sub_8059594
- b _080E5AB8
-_080E5A8A:
- cmp r1, 0x9
- beq _080E5A9E
- cmp r1, 0x4
- bhi _080E5AB8
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5AA6
-_080E5A9E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5AB8
-_080E5AA6:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5AB8
-_080E5AAE:
- adds r0, r6, 0
- bl sub_8059600
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5AB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5A30
-
- thumb_func_start sub_80E5AC0
-sub_80E5AC0: @ 80E5AC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5AF0
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5AF4
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5AF8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059534
- b _080E5B32
- .align 2, 0
-_080E5AF0: .4byte gPlayerAvatar
-_080E5AF4: .4byte gMapObjects
-_080E5AF8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5B2C
- cmp r1, 0x6
- bne _080E5B1A
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E5B32
-_080E5B1A:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5B32
- adds r0, r4, 0
- bl sub_8059534
- b _080E5B32
-_080E5B2C:
- adds r0, r6, 0
- bl sub_8059630
-_080E5B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5AC0
-
- thumb_func_start sub_80E5B38
-sub_80E5B38: @ 80E5B38
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r0, _080E5B5C
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E5B56
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80E5B60
-_080E5B56:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5B5C: .4byte gPlayerAvatar
- thumb_func_end sub_80E5B38
-
- thumb_func_start sub_80E5B60
-sub_80E5B60: @ 80E5B60
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r5, 0
- bl sub_80E5CF4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _080E5B88
- ldr r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5B8C
- ldrb r0, [r4, 0x14]
- cmp r0, 0xFE
- bhi _080E5B96
- adds r0, 0x1
- strb r0, [r4, 0x14]
- b _080E5B96
- .align 2, 0
-_080E5B88: .4byte gPlayerAvatar
-_080E5B8C:
- adds r0, r2, 0
- bl sub_80E5C7C
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5B96:
- movs r0, 0xF
- adds r2, r5, 0
- ands r2, r0
- ldr r4, _080E5BB4
- ldr r0, [r4, 0x10]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5BB8
- ldrb r0, [r4, 0x1C]
- cmp r0, 0xFE
- bhi _080E5BC2
- adds r0, 0x1
- strb r0, [r4, 0x1C]
- b _080E5BC2
- .align 2, 0
-_080E5BB4: .4byte gPlayerAvatar
-_080E5BB8:
- adds r0, r2, 0
- bl sub_80E5CB8
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5BC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5B60
-
- thumb_func_start sub_80E5BC8
-sub_80E5BC8: @ 80E5BC8
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- movs r2, 0
- ldrb r0, [r3]
- cmp r0, 0
- beq _080E5BF2
- ldr r5, _080E5C0C
-_080E5BD8:
- adds r0, r2, r5
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bhi _080E5C08
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BD8
-_080E5BF2:
- movs r2, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _080E5C22
- ldr r3, _080E5C10
-_080E5BFC:
- adds r0, r2, r3
- adds r1, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5C14
-_080E5C08:
- movs r0, 0
- b _080E5C24
- .align 2, 0
-_080E5C0C: .4byte gUnknown_0202E86C
-_080E5C10: .4byte gUnknown_0202E874
-_080E5C14:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BFC
-_080E5C22:
- movs r0, 0x1
-_080E5C24:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5BC8
-
- thumb_func_start sub_80E5C2C
-sub_80E5C2C: @ 80E5C2C
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_080E5C32:
- ldr r0, _080E5C64
- adds r4, r5, r0
- ldr r0, _080E5C68
- ldr r1, [r0, 0xC]
- ldr r2, [r0, 0x10]
- ldr r0, [r4, 0x8]
- ands r1, r0
- ldr r0, [r4, 0xC]
- ands r2, r0
- ldr r0, [r4]
- cmp r1, r0
- bne _080E5C6C
- ldr r0, [r4, 0x4]
- cmp r2, r0
- bne _080E5C6C
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x14]
- bl sub_80E5BC8
- lsls r0, 24
- cmp r0, 0
- beq _080E5C6C
- ldrb r0, [r4, 0x18]
- b _080E5C76
- .align 2, 0
-_080E5C64: .4byte gUnknown_083DB608
-_080E5C68: .4byte gPlayerAvatar
-_080E5C6C:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- bls _080E5C32
- movs r0, 0
-_080E5C76:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5C2C
-
- thumb_func_start sub_80E5C7C
-sub_80E5C7C: @ 80E5C7C
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CB4
- ldr r2, [r3, 0xC]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0xC]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x14
-_080E5C98:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5C98
- movs r0, 0x1
- strb r0, [r4, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CB4: .4byte gPlayerAvatar
- thumb_func_end sub_80E5C7C
-
- thumb_func_start sub_80E5CB8
-sub_80E5CB8: @ 80E5CB8
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CF0
- ldr r2, [r3, 0x10]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0x10]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x1C
-_080E5CD4:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5CD4
- movs r0, 0x1
- strb r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CF0: .4byte gPlayerAvatar
- thumb_func_end sub_80E5CB8
-
- thumb_func_start sub_80E5CF4
-sub_80E5CF4: @ 80E5CF4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E5D08
- movs r0, 0x2
- b _080E5D2E
-_080E5D08:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E5D14
- movs r0, 0x1
- b _080E5D2E
-_080E5D14:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080E5D20
- movs r0, 0x3
- b _080E5D2E
-_080E5D20:
- movs r0, 0x10
- ands r2, r0
- cmp r2, 0
- bne _080E5D2C
- movs r0, 0
- b _080E5D2E
-_080E5D2C:
- movs r0, 0x4
-_080E5D2E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5CF4
-
- thumb_func_start sub_80E5D34
-sub_80E5D34: @ 80E5D34
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080E5D98
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E5D9C
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_80E5DA0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5D98: .4byte gPlayerAvatar
-_080E5D9C: .4byte gMapObjects
- thumb_func_end sub_80E5D34
-
- thumb_func_start sub_80E5DA0
-sub_80E5DA0: @ 80E5DA0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- str r5, [sp]
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _080E5DE0
- cmp r4, 0
- bne _080E5DDC
- adds r0, r5, 0
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- beq _080E5DD8
- movs r4, 0x2
-_080E5DD8:
- cmp r4, 0
- beq _080E5DE0
-_080E5DDC:
- bl sub_80E5E4C
-_080E5DE0:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DA0
-
- thumb_func_start sub_80E5DEC
-sub_80E5DEC: @ 80E5DEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5E04
- ldr r0, _080E5E08
- ldrb r0, [r0, 0x17]
- cmp r0, 0x8
- bne _080E5E0C
-_080E5E04:
- movs r0, 0x1
- b _080E5E0E
- .align 2, 0
-_080E5E08: .4byte gMapHeader
-_080E5E0C:
- movs r0, 0
-_080E5E0E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DEC
-
- thumb_func_start IsRunningDisallowedByMetatile
-IsRunningDisallowedByMetatile: @ 80E5E14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsRunningDisallowed
- lsls r0, 24
- cmp r0, 0
- bne _080E5E3E
- adds r0, r4, 0
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- beq _080E5E42
- bl PlayerGetZCoord
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080E5E42
-_080E5E3E:
- movs r0, 0x1
- b _080E5E44
-_080E5E42:
- movs r0, 0
-_080E5E44:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsRunningDisallowedByMetatile
-
- thumb_func_start sub_80E5E4C
-sub_80E5E4C: @ 80E5E4C
- push {lr}
- ldr r0, _080E5E68
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E5E62
- ldr r1, _080E5E6C
- ldrb r0, [r1]
- cmp r0, 0x63
- bhi _080E5E62
- adds r0, 0x1
- strb r0, [r1]
-_080E5E62:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5E68: .4byte gUnknown_02039250
-_080E5E6C: .4byte gUnknown_02039251
- thumb_func_end sub_80E5E4C
-
- thumb_func_start sub_80E5E70
-sub_80E5E70: @ 80E5E70
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0xFD
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080E5E9A
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- b _080E5EAC
-_080E5E9A:
- adds r0, r5, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r5, 0
- bl MetatileBehavior_IsHorizontalRail
-_080E5EAC:
- lsls r0, 24
- cmp r0, 0
- beq _080E5EB6
-_080E5EB2:
- movs r0, 0
- b _080E5EB8
-_080E5EB6:
- movs r0, 0x1
-_080E5EB8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5E70
-
- thumb_func_start sub_80E5EC0
-sub_80E5EC0: @ 80E5EC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r1, r3
- lsrs r1, 24
- cmp r1, 0x1
- bhi _080E5EE0
- cmp r0, 0xA
- beq _080E5EE8
- cmp r0, 0xC
- bne _080E5EEC
- b _080E5EE8
-_080E5EE0:
- cmp r2, 0xB
- beq _080E5EE8
- cmp r2, 0xD
- bne _080E5EEC
-_080E5EE8:
- movs r0, 0
- b _080E5EEE
-_080E5EEC:
- movs r0, 0x1
-_080E5EEE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EC0
-
- thumb_func_start sub_80E5EF4
-sub_80E5EF4: @ 80E5EF4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080E5F30
- ldrb r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- bne _080E5F34
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5F34
- movs r0, 0
- b _080E5F36
- .align 2, 0
-_080E5F30: .4byte gPlayerAvatar
-_080E5F34:
- movs r0, 0x1
-_080E5F36:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EF4
-
- thumb_func_start player_should_look_direction_be_enforced_upon_movement
-player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- ldr r2, _080E5F6C
- ldr r0, _080E5F70
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- movs r0, 0
- b _080E5F76
- .align 2, 0
-_080E5F6C: .4byte gMapObjects
-_080E5F70: .4byte gPlayerAvatar
-_080E5F74:
- movs r0, 0x1
-_080E5F76:
- pop {r1}
- bx r1
- thumb_func_end player_should_look_direction_be_enforced_upon_movement
-
- thumb_func_start GetOnOffBike
-GetOnOffBike: @ 80E5F7C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080E5FA4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080E5FA8
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080E5FAC
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- bl sav1_reset_battle_music_maybe
- bl sub_8053E90
- b _080E5FC0
- .align 2, 0
-_080E5FA4: .4byte gUnknown_0202E854
-_080E5FA8: .4byte gPlayerAvatar
-_080E5FAC:
- adds r0, r2, 0
- bl SetPlayerAvatarTransitionFlags
- ldr r4, _080E5FC8
- adds r0, r4, 0
- bl sav1_set_battle_music_maybe
- adds r0, r4, 0
- bl sub_8053FB0
-_080E5FC0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5FC8: .4byte 0x00000193
- thumb_func_end GetOnOffBike
-
- thumb_func_start sub_80E5FCC
-sub_80E5FCC: @ 80E5FCC
- push {lr}
- ldr r2, _080E6008
- movs r3, 0
- strb r3, [r2, 0x8]
- strb r3, [r2, 0x9]
- strb r3, [r2, 0xA]
- strb r3, [r2, 0xB]
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
- movs r1, 0
- adds r2, 0x14
-_080E5FE2:
- adds r0, r1, r2
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FE2
- movs r1, 0
- ldr r3, _080E600C
- movs r2, 0
-_080E5FF6:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FF6
- pop {r0}
- bx r0
- .align 2, 0
-_080E6008: .4byte gPlayerAvatar
-_080E600C: .4byte gUnknown_0202E874
- thumb_func_end sub_80E5FCC
-
- thumb_func_start sub_80E6010
-sub_80E6010: @ 80E6010
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E6020
- strb r0, [r2, 0xA]
- lsrs r1, r0, 1
- adds r0, r1
- strb r0, [r2, 0xB]
- bx lr
- .align 2, 0
-_080E6020: .4byte gPlayerAvatar
- thumb_func_end sub_80E6010
-
- thumb_func_start sub_80E6024
-sub_80E6024: @ 80E6024
- ldr r1, _080E6030
- movs r0, 0
- strb r0, [r1, 0xA]
- strb r0, [r1, 0xB]
- bx lr
- .align 2, 0
-_080E6030: .4byte gPlayerAvatar
- thumb_func_end sub_80E6024
-
- thumb_func_start sub_80E6034
-sub_80E6034: @ 80E6034
- push {lr}
- sub sp, 0x8
- ldr r1, _080E605C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r2, _080E6060
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6064
- ldrb r0, [r2, 0xA]
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- b _080E607E
- .align 2, 0
-_080E605C: .4byte gUnknown_083DB600
-_080E6060: .4byte gPlayerAvatar
-_080E6064:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E6070
- movs r0, 0x3
- b _080E607E
-_080E6070:
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _080E607C
- movs r0, 0x1
- b _080E607E
-_080E607C:
- movs r0, 0x2
-_080E607E:
- add sp, 0x8
- pop {r1}
- bx r1
- thumb_func_end sub_80E6034
-
- thumb_func_start sub_80E6084
-sub_80E6084: @ 80E6084
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080E60D4
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E60CC
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E60CC
- movs r0, 0x2
- strb r0, [r5, 0x8]
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059C94
-_080E60CC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E60D4: .4byte gPlayerAvatar
- thumb_func_end sub_80E6084
-
- thumb_func_start sub_80E60D8
-sub_80E60D8: @ 80E60D8
- push {r4-r7,lr}
- movs r4, 0x3
- ldr r0, _080E60F4
- ldrh r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xD
- bls _080E60E8
- b _080E6284
-_080E60E8:
- lsls r0, r1, 2
- ldr r1, _080E60F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E60F4: .4byte gUnknown_0202E8CC
-_080E60F8: .4byte _080E60FC
- .align 2, 0
-_080E60FC:
- .4byte _080E6134
- .4byte _080E613C
- .4byte _080E6144
- .4byte _080E614C
- .4byte _080E6154
- .4byte _080E619C
- .4byte _080E616C
- .4byte _080E61BC
- .4byte _080E61E0
- .4byte _080E61FC
- .4byte _080E6200
- .4byte _080E6214
- .4byte _080E623C
- .4byte _080E6260
-_080E6134:
- ldr r1, _080E6138
- b _080E624C
- .align 2, 0
-_080E6138: .4byte gSaveBlock1 + 0x2B1C
-_080E613C:
- ldr r1, _080E6140
- b _080E6276
- .align 2, 0
-_080E6140: .4byte gSaveBlock1 + 0x2B28
-_080E6144:
- ldr r1, _080E6148
- b _080E624C
- .align 2, 0
-_080E6148: .4byte gSaveBlock1 + 0x2B34
-_080E614C:
- ldr r1, _080E6150
- b _080E6276
- .align 2, 0
-_080E6150: .4byte gSaveBlock1 + 0x2B40
-_080E6154:
- ldr r0, _080E6164
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6168
- adds r1, r0, r1
- b _080E624C
- .align 2, 0
-_080E6164: .4byte gUnknown_0202E8CE
-_080E6168: .4byte gSaveBlock1 + 0x2B4C
-_080E616C:
- ldr r0, _080E6194
- movs r2, 0
- ldr r1, _080E6198
- mov r12, r1
- adds r3, r0, 0
- adds r3, 0xE
- adds r5, r0, 0x2
- adds r6, r3, 0
-_080E617C:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080E617C
- adds r1, r6, 0
- b _080E627A
- .align 2, 0
-_080E6194: .4byte gSaveBlock1 + 0x2D94
-_080E6198: .4byte sub_80546B8
-_080E619C:
- ldr r0, _080E61B0
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61B4
- adds r1, r0, r1
- ldr r0, _080E61B8
- ldrb r4, [r0]
- b _080E6276
- .align 2, 0
-_080E61B0: .4byte gUnknown_0202E8CE
-_080E61B4: .4byte gSaveBlock1 + 0x273C
-_080E61B8: .4byte gUnknown_0202E8D0
-_080E61BC:
- ldr r0, _080E61D4
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E61D8
- adds r1, r0
- ldr r0, _080E61DC
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- b _080E624A
- .align 2, 0
-_080E61D4: .4byte gUnknown_0202E8CE
-_080E61D8: .4byte gSaveBlock1 + 0x2754
-_080E61DC: .4byte gUnknown_0202E8D0
-_080E61E0:
- ldr r0, _080E61F4
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61F8
- adds r1, r0, r1
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E61F4: .4byte gUnknown_0202E8CE
-_080E61F8: .4byte gSaveBlock1 + 0x273A
-_080E61FC:
- movs r1, 0
- b _080E624C
-_080E6200:
- ldr r1, _080E620C
- ldr r2, _080E6210
- adds r0, r2, 0
- strh r0, [r1]
- b _080E624A
- .align 2, 0
-_080E620C: .4byte gSaveBlock1 + 0x2B16
-_080E6210: .4byte 0x0000ffff
-_080E6214:
- ldr r0, _080E6230
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E6234
- adds r1, r0
- ldr r0, _080E6238
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E6230: .4byte gUnknown_0202E8CE
-_080E6234: .4byte gSaveBlock1 + 0x273C
-_080E6238: .4byte gUnknown_0202E8D0
-_080E623C:
- ldr r0, _080E6254
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6258
- adds r1, r0, r1
-_080E624A:
- movs r4, 0x1
-_080E624C:
- ldr r0, _080E625C
- mov r12, r0
- b _080E627A
- .align 2, 0
-_080E6254: .4byte gUnknown_0202E8CE
-_080E6258: .4byte gSaveBlock1 + 0x2750
-_080E625C: .4byte sub_80546B8
-_080E6260:
- ldr r1, _080E628C
- ldr r0, _080E6290
- adds r2, r1, r0
- ldr r0, _080E6294
- strh r0, [r2]
- ldr r0, _080E6298
- adds r1, r0
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- adds r1, r2, 0
-_080E6276:
- ldr r2, _080E629C
- mov r12, r2
-_080E627A:
- ldrb r0, [r7]
- mov r2, r12
- adds r3, r4, 0
- bl sub_80E62A0
-_080E6284:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E628C: .4byte 0x02001000
-_080E6290: .4byte 0x00009c7c
-_080E6294: .4byte 0x0000ffff
-_080E6298: .4byte 0x00009c7e
-_080E629C: .4byte sub_80546B8
- thumb_func_end sub_80E60D8
-
- thumb_func_start sub_80E62A0
-sub_80E62A0: @ 80E62A0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080E62DC
- str r2, [r4]
- str r1, [r4, 0x4]
- strb r0, [r4, 0x8]
- strb r3, [r4, 0xB]
- cmp r0, 0x9
- bne _080E62D0
- ldr r0, _080E62E0
- adds r2, r4, r0
- str r2, [r4, 0x4]
- ldr r0, _080E62E4
- ldr r3, _080E62E8
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2]
- ldr r1, _080E62EC
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, _080E62F0
- adds r0, r4, r2
- strh r1, [r0]
-_080E62D0:
- ldr r0, _080E62F4
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E62DC: .4byte 0x02001000
-_080E62E0: .4byte 0x00009c7c
-_080E62E4: .4byte gSaveBlock1
-_080E62E8: .4byte 0x00002dd8
-_080E62EC: .4byte 0x00002dda
-_080E62F0: .4byte 0x00009c7e
-_080E62F4: .4byte sub_80E62F8
- thumb_func_end sub_80E62A0
-
- thumb_func_start sub_80E62F8
-sub_80E62F8: @ 80E62F8
- push {lr}
- sub sp, 0x4
- ldr r0, _080E6314
- ldr r1, _080E6318
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080E6344
- lsls r0, 2
- ldr r1, _080E631C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6314: .4byte gMain
-_080E6318: .4byte 0x0000043c
-_080E631C: .4byte _080E6320
- .align 2, 0
-_080E6320:
- .4byte _080E6344
- .4byte _080E6380
- .4byte _080E638C
- .4byte _080E63A8
- .4byte _080E63AE
- .4byte _080E63B4
- .4byte _080E63BE
- .4byte _080E63D8
- .4byte _080E63EA
-_080E6344:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetSpriteData
- bl dp12_8087EA4
- bl remove_some_task
- bl sub_80EAD08
- ldr r2, _080E637C
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080E6402
- .align 2, 0
-_080E637C: .4byte gUnknown_083DB698
-_080E6380:
- ldr r0, _080E6388
- bl SetUpWindowConfig
- b _080E6402
- .align 2, 0
-_080E6388: .4byte gWindowConfig_81E6DA8
-_080E638C:
- ldr r0, _080E63A0
- bl InitMenuWindow
- ldr r0, _080E63A4
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080E6402
- .align 2, 0
-_080E63A0: .4byte gWindowConfig_81E6D54
-_080E63A4: .4byte gWindowConfig_81E6DA8
-_080E63A8:
- bl sub_80E6424
- b _080E6402
-_080E63AE:
- bl sub_80E8DD8
- b _080E6402
-_080E63B4:
- bl sub_80E8218
- bl sub_80E8CEC
- b _080E6402
-_080E63BE:
- bl sub_80E69F8
- ldr r0, _080E63D0
- bl sub_80E682C
- ldr r0, _080E63D4
- bl SetVBlankCallback
- b _080E6402
- .align 2, 0
-_080E63D0: .4byte sub_80E6AA8
-_080E63D4: .4byte sub_80E6A6C
-_080E63D8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080E6402
-_080E63EA:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E6414
- bl SetMainCallback2
- ldr r0, _080E6418
- bl FlagSet
-_080E6402:
- ldr r1, _080E641C
- ldr r0, _080E6420
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080E6414: .4byte sub_80E6A88
-_080E6418: .4byte 0x00000805
-_080E641C: .4byte gMain
-_080E6420: .4byte 0x0000043c
- thumb_func_end sub_80E62F8
-
- thumb_func_start sub_80E6424
-sub_80E6424: @ 80E6424
- push {lr}
- ldr r2, _080E6444
- ldr r0, _080E6448
- ldrb r1, [r2, 0x8]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0x9]
- ldrb r0, [r2, 0x9]
- adds r3, r2, 0
- cmp r0, 0x5
- bhi _080E6512
- lsls r0, 2
- ldr r1, _080E644C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6444: .4byte 0x02001000
-_080E6448: .4byte gUnknown_083DB6A4
-_080E644C: .4byte _080E6450
- .align 2, 0
-_080E6450:
- .4byte _080E64A0
- .4byte _080E64B8
- .4byte _080E64DA
- .4byte _080E64F6
- .4byte _080E6468
- .4byte _080E6480
-_080E6468:
- movs r2, 0x4
- strb r2, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- movs r1, 0x2
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x5
- b _080E64D0
-_080E6480:
- movs r1, 0x4
- strb r1, [r3, 0xA]
- adds r2, r3, 0
- adds r2, 0x83
- movs r0, 0x1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x84
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- b _080E6510
-_080E64A0:
- movs r0, 0x6
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x84
- movs r2, 0x3
- strb r2, [r0]
- adds r1, 0x5
- b _080E64CE
-_080E64B8:
- movs r2, 0
- movs r0, 0x9
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- strb r0, [r1]
- adds r1, 0x4
-_080E64CE:
- movs r0, 0x4
-_080E64D0:
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8A
- strh r2, [r0]
- b _080E6512
-_080E64DA:
- movs r1, 0x1
- strb r1, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- b _080E6510
-_080E64F6:
- movs r0, 0x2
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3
-_080E6510:
- strh r0, [r1]
-_080E6512:
- adds r1, r3, 0
- adds r1, 0x86
- movs r0, 0
- strb r0, [r1]
- subs r1, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- subs r1, 0x61
- strb r0, [r1]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- movs r0, 0xDF
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80E6554
- bl sub_80EAECC
- bl sub_80EB040
- bl sub_80E7E50
- bl sub_80E6630
- bl sub_80E6690
- pop {r0}
- bx r0
- thumb_func_end sub_80E6424
-
- thumb_func_start sub_80E6554
-sub_80E6554: @ 80E6554
- push {r4-r7,lr}
- sub sp, 0x4
- movs r4, 0
- movs r7, 0
- ldr r0, _080E6564
- mov r12, r0
- b _080E656E
- .align 2, 0
-_080E6564: .4byte 0x02001000
-_080E6568:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080E656E:
- movs r5, 0
- lsls r3, r7, 1
- mov r6, r12
- adds r6, 0x2A
- adds r2, r3, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- beq _080E65A6
-_080E6586:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bhi _080E65A2
- adds r2, r5, r3
- adds r2, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- bne _080E6586
-_080E65A2:
- cmp r4, 0x11
- bne _080E6568
-_080E65A6:
- movs r0, 0x11
- mov r1, r12
- strh r0, [r1, 0x28]
- cmp r4, 0x15
- bhi _080E6612
- mov r6, r12
- adds r2, r6, 0
- adds r2, 0x78
-_080E65B6:
- lsls r0, r4, 24
- lsrs r0, 24
- str r2, [sp]
- bl sub_80EAD7C
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [sp]
- cmp r1, 0
- beq _080E65FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E65DC
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
-_080E65DC:
- lsls r0, r7, 1
- adds r0, r5, r0
- adds r1, r6, 0
- adds r1, 0x2A
- adds r0, r1
- strb r4, [r0]
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r6, 0x28]
- adds r0, 0x1
- strh r0, [r6, 0x28]
- mov r12, r6
- b _080E6608
-_080E65FC:
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- strb r1, [r0]
- ldr r0, _080E662C
- mov r12, r0
-_080E6608:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x15
- bls _080E65B6
-_080E6612:
- mov r1, r12
- ldrh r0, [r1, 0x28]
- adds r0, 0x1
- asrs r0, 1
- movs r1, 0xDB
- lsls r1, 1
- add r1, r12
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E662C: .4byte 0x02001000
- thumb_func_end sub_80E6554
-
- thumb_func_start sub_80E6630
-sub_80E6630: @ 80E6630
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080E6664
- mov r12, r0
-_080E6638:
- lsls r0, r1, 4
- mov r2, r12
- adds r5, r0, r2
- movs r3, 0
- ldrb r0, [r5]
- adds r7, r1, 0x1
- cmp r0, 0xFF
- beq _080E6680
- lsls r0, r1, 3
- subs r0, r1
- lsls r4, r0, 1
- ldr r6, _080E6668
-_080E6650:
- adds r0, r5, r3
- ldrb r1, [r0]
- adds r2, r1, 0
- cmp r2, 0
- beq _080E666C
- adds r0, r3, r4
- adds r0, r6
- adds r1, 0x46
- strb r1, [r0]
- b _080E6672
- .align 2, 0
-_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte 0x02001040
-_080E666C:
- adds r0, r3, r4
- adds r0, r6
- strb r2, [r0]
-_080E6672:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E6650
-_080E6680:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080E6638
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E6630
-
- thumb_func_start sub_80E6690
-sub_80E6690: @ 80E6690
- push {r4-r6,lr}
- sub sp, 0x10
- mov r0, sp
- ldr r1, _080E66E0
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldr r1, [r1]
- str r1, [r0]
- movs r5, 0
- ldr r6, _080E66E4
-_080E66A4:
- ldr r0, _080E66E8
- ldrb r0, [r0, 0x8]
- lsls r0, 1
- adds r0, r5, r0
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E66EC
- adds r4, r0, r1
- lsls r0, r5, 3
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4]
- bl StringCopy
- adds r3, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _080E66F0
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4, 0x4]
- bl StringCopy
- b _080E670A
- .align 2, 0
-_080E66E0: .4byte gUnknown_083DB7DC
-_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte 0x02001000
-_080E66EC: .4byte gUnknown_083DB6F4
-_080E66F0:
- strb r0, [r3]
- adds r3, 0x1
- ldr r1, [r4, 0x4]
- adds r0, r3, 0
- bl StringCopy
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
-_080E670A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E66A4
- movs r5, 0
- ldr r3, _080E6758
- ldr r0, _080E675C
- adds r2, r3, r0
- movs r1, 0
-_080E671E:
- adds r0, r5, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x23
- bls _080E671E
- ldr r1, _080E675C
- adds r0, r3, r1
- adds r0, r5, r0
- movs r4, 0x1
- negs r4, r4
- adds r2, r4, 0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _080E6760
- adds r3, r0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x11
- strb r0, [r3, 0x1]
- movs r0, 0xE0
- strb r0, [r3, 0x2]
- strb r2, [r3, 0x3]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6758: .4byte 0x02001000
-_080E675C: .4byte 0x00009da4
-_080E6760: .4byte 0x00009f6e
- thumb_func_end sub_80E6690
-
- thumb_func_start sub_80E6764
-sub_80E6764: @ 80E6764
- push {r4-r6,lr}
- movs r3, 0
- ldr r4, _080E680C
- ldr r2, _080E6810
-_080E676C:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080E676C
- movs r3, 0
- ldr r4, _080E6814
- ldr r2, _080E6818
-_080E6786:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E6786
- movs r3, 0
- ldr r5, _080E681C
- ldr r0, _080E6820
- adds r4, r0, 0
- adds r6, r5, 0
- adds r6, 0xC
-_080E67A6:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r2]
- orrs r0, r4
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E67A6
- movs r3, 0
- ldr r6, _080E6824
- ldr r0, _080E6820
- adds r5, r0, 0
-_080E67CA:
- movs r2, 0
- lsls r0, r3, 3
- adds r0, r3
- lsls r4, r0, 2
-_080E67D2:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x8
- bls _080E67D2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080E67CA
- movs r3, 0
- ldr r2, _080E6828
- movs r1, 0
-_080E67F8:
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080E67F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E680C: .4byte gSaveBlock1 + 0x2B1C
-_080E6810: .4byte gUnknown_083DB7EC
-_080E6814: .4byte gSaveBlock1 + 0x2B28
-_080E6818: .4byte gUnknown_083DB7F4
-_080E681C: .4byte gSaveBlock1 + 0x2B34
-_080E6820: .4byte 0x0000ffff
-_080E6824: .4byte gSaveBlock1 + 0x2B4C
-_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end sub_80E6764
-
- thumb_func_start sub_80E682C
-sub_80E682C: @ 80E682C
- ldr r1, _080E6838
- str r0, [r1, 0x20]
- movs r0, 0
- strh r0, [r1, 0x24]
- bx lr
- .align 2, 0
-_080E6838: .4byte 0x02001000
- thumb_func_end sub_80E682C
-
- thumb_func_start sub_80E683C
-sub_80E683C: @ 80E683C
- push {r4,r5,lr}
- ldr r1, _080E6890
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0
- bne _080E6898
- movs r1, 0
- movs r0, 0xDB
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- bge _080E6876
- movs r0, 0xD5
- lsls r0, 1
- adds r5, r2, r0
- movs r4, 0x2
-_080E6864:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- blt _080E6864
-_080E6876:
- adds r0, r2, r1
- ldr r1, _080E6894
- adds r3, r0, r1
- ldrh r0, [r2, 0x28]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r3]
- cmp r0, 0
- bne _080E68B8
- movs r0, 0x2
- strb r0, [r3]
- b _080E68B8
- .align 2, 0
-_080E6890: .4byte 0x02001000
-_080E6894: .4byte 0x000001a9
-_080E6898:
- movs r3, 0xD5
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x7
- strb r0, [r1]
- ldr r1, _080E68E0
- adds r3, r2, r1
- movs r1, 0x6
- strb r1, [r3]
- movs r3, 0xD6
- lsls r3, 1
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x1
- adds r1, r2, r3
- strb r0, [r1]
-_080E68B8:
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080E68E4
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0xC
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x2
- adds r1, r2, r3
- strb r0, [r1]
- bl sub_80E9A4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E68E0: .4byte 0x000001ab
-_080E68E4: .4byte 0x000001a9
- thumb_func_end sub_80E683C
-
- thumb_func_start sub_80E68E8
-sub_80E68E8: @ 80E68E8
- push {r4-r6,lr}
- bl sub_80EB0B0
- ldr r3, _080E694C
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E695C
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E6950
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E6954
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E693A
- ldr r3, _080E6958
- adds r4, r5, r3
- movs r3, 0x2
-_080E6928:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E6928
-_080E693A:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E6958
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E6950
- b _080E69AC
- .align 2, 0
-_080E694C: .4byte 0x02001000
-_080E6950: .4byte 0x00004178
-_080E6954: .4byte 0x00009a28
-_080E6958: .4byte 0x000099a6
-_080E695C:
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E69E0
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E69E4
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E699C
- ldr r3, _080E69E8
- adds r4, r5, r3
- movs r3, 0x2
-_080E698A:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E698A
-_080E699C:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E69E8
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E69E0
-_080E69AC:
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0
- bne _080E69C0
- movs r0, 0x2
- strb r0, [r2]
-_080E69C0:
- ldr r1, _080E69EC
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080E69F0
- adds r0, r5, r2
- strb r1, [r0]
- ldr r3, _080E69F4
- adds r0, r5, r3
- strb r1, [r0]
- bl sub_80E9A4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E69E0: .4byte 0x00004142
-_080E69E4: .4byte 0x00009a28
-_080E69E8: .4byte 0x000099a6
-_080E69EC: .4byte 0x000099a4
-_080E69F0: .4byte 0x000099a5
-_080E69F4: .4byte 0x00009a29
- thumb_func_end sub_80E68E8
-
- thumb_func_start sub_80E69F8
-sub_80E69F8: @ 80E69F8
- push {r4,lr}
- ldr r0, _080E6A10
- ldrb r1, [r0, 0x8]
- adds r4, r0, 0
- cmp r1, 0xD
- bhi _080E6A50
- lsls r0, r1, 2
- ldr r1, _080E6A14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6A10: .4byte 0x02001000
-_080E6A14: .4byte _080E6A18
- .align 2, 0
-_080E6A18:
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
-_080E6A50:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- b _080E6A66
-_080E6A58:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- bl sub_80E8BF4
-_080E6A66:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E69F8
-
- thumb_func_start sub_80E6A6C
-sub_80E6A6C: @ 80E6A6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_80EAC5C
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80E6A6C
-
- thumb_func_start sub_80E6A88
-sub_80E6A88: @ 80E6A88
- push {lr}
- ldr r0, _080E6AA4
- ldr r0, [r0, 0x20]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl sub_80EAD08
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AA4: .4byte 0x02001000
- thumb_func_end sub_80E6A88
-
- thumb_func_start sub_80E6AA8
-sub_80E6AA8: @ 80E6AA8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E6ABA
- ldr r0, _080E6AC0
- bl sub_80E682C
-_080E6ABA:
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AC0: .4byte sub_80E6AC4
- thumb_func_end sub_80E6AA8
-
- thumb_func_start sub_80E6AC4
-sub_80E6AC4: @ 80E6AC4
- push {lr}
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8398
- movs r0, 0
- bl sub_80E91D4
- ldr r0, _080E6AE0
- bl sub_80E682C
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AE0: .4byte sub_80E6AE4
- thumb_func_end sub_80E6AC4
-
- thumb_func_start sub_80E6AE4
-sub_80E6AE4: @ 80E6AE4
- push {r4,r5,lr}
- bl sub_80E75D8
- ldr r4, _080E6B44
- adds r1, r4, 0
- adds r1, 0x87
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080E6AFE
- movs r0, 0x5
- bl PlaySE
-_080E6AFE:
- ldr r2, _080E6B48
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080E6BA4
- movs r0, 0x5
- bl PlaySE
- adds r1, r4, 0
- adds r1, 0x86
- adds r0, r4, 0
- adds r0, 0x84
- ldrb r2, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E6B78
- adds r0, r4, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080E6B60
- cmp r0, 0x1
- bgt _080E6B4C
- cmp r0, 0
- beq _080E6B52
- b _080E6BA4
- .align 2, 0
-_080E6B44: .4byte 0x02001000
-_080E6B48: .4byte gMain
-_080E6B4C:
- cmp r0, 0x2
- beq _080E6B6C
- b _080E6BA4
-_080E6B52:
- ldr r0, _080E6B5C
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B5C: .4byte sub_80E6BC0
-_080E6B60:
- ldr r0, _080E6B68
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B68: .4byte sub_80E6C84
-_080E6B6C:
- ldr r0, _080E6B74
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B74: .4byte sub_80E6D7C
-_080E6B78:
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x85
- adds r3, r0, 0
- muls r3, r2
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x27
- strb r0, [r1]
- bl sub_80E7574
- ldr r0, _080E6BA0
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6BA0: .4byte sub_80E6F68
-_080E6BA4:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6BB4
- ldr r0, _080E6BBC
- bl sub_80E682C
-_080E6BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6BBC: .4byte sub_80E6C84
- thumb_func_end sub_80E6AE4
-
- thumb_func_start sub_80E6BC0
-sub_80E6BC0: @ 80E6BC0
- push {r4,lr}
- ldr r4, _080E6BD4
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6C12
- cmp r0, 0x1
- bgt _080E6BD8
- cmp r0, 0
- beq _080E6BE2
- b _080E6C76
- .align 2, 0
-_080E6BD4: .4byte 0x02001000
-_080E6BD8:
- cmp r0, 0x2
- beq _080E6C54
- cmp r0, 0x64
- beq _080E6C64
- b _080E6C76
-_080E6BE2:
- movs r0, 0x2
- bl sub_80E8398
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6BFA
- movs r0, 0x6
- bl sub_80E91D4
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6BFA:
- movs r0, 0x2
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- b _080E6C3E
-_080E6C12:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6C32
- cmp r1, 0
- bgt _080E6C2C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6C46
- b _080E6C76
-_080E6C2C:
- cmp r1, 0x1
- beq _080E6C46
- b _080E6C76
-_080E6C32:
- bl sub_80E7D6C
- bl sub_80E98C4
- bl sub_80E95A4
-_080E6C3E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6C46:
- ldr r1, _080E6C50
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6C76
- .align 2, 0
-_080E6C50: .4byte 0x02001000
-_080E6C54:
- bl sub_80E81FC
- ldr r0, _080E6C60
- bl sub_80E682C
- b _080E6C76
- .align 2, 0
-_080E6C60: .4byte sub_80E6AC4
-_080E6C64:
- ldr r0, _080E6C7C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6C76
- ldr r0, _080E6C80
- bl sub_80E682C
-_080E6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6C7C: .4byte gMain
-_080E6C80: .4byte sub_80E6AC4
- thumb_func_end sub_80E6BC0
-
- thumb_func_start sub_80E6C84
-sub_80E6C84: @ 80E6C84
- push {r4,lr}
- ldr r4, _080E6C98
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6CF4
- cmp r0, 0x1
- bgt _080E6C9C
- cmp r0, 0
- beq _080E6CA6
- b _080E6D72
- .align 2, 0
-_080E6C98: .4byte 0x02001000
-_080E6C9C:
- cmp r0, 0x2
- beq _080E6D24
- cmp r0, 0xFF
- beq _080E6D64
- b _080E6D72
-_080E6CA6:
- movs r0, 0x2
- bl sub_80E8398
- movs r0, 0x3
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- ldrb r0, [r4, 0x8]
- cmp r0, 0x9
- beq _080E6CE8
- cmp r0, 0x4
- beq _080E6CE8
- cmp r0, 0x7
- beq _080E6CE8
- cmp r0, 0x8
- beq _080E6CE8
- cmp r0, 0xA
- beq _080E6CE8
- cmp r0, 0xB
- beq _080E6CE8
- cmp r0, 0xC
- beq _080E6CE8
- cmp r0, 0x5
- beq _080E6CE8
- cmp r0, 0xD
- bne _080E6D1C
-_080E6CE8:
- ldr r1, _080E6CF0
- movs r0, 0x2
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6CF0: .4byte 0x02001000
-_080E6CF4:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D06
- cmp r1, 0
- ble _080E6D34
- b _080E6D3E
-_080E6D06:
- movs r0, 0x4
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
-_080E6D1C:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6D72
-_080E6D24:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D44
- cmp r1, 0
- bgt _080E6D3E
-_080E6D34:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6D58
- b _080E6D72
-_080E6D3E:
- cmp r1, 0x1
- beq _080E6D58
- b _080E6D72
-_080E6D44:
- ldr r0, _080E6D50
- strh r1, [r0]
- ldr r0, _080E6D54
- bl sub_80E682C
- b _080E6D72
- .align 2, 0
-_080E6D50: .4byte gScriptResult
-_080E6D54: .4byte sub_80E752C
-_080E6D58:
- ldr r1, _080E6D60
- movs r0, 0xFF
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6D60: .4byte 0x02001000
-_080E6D64:
- bl sub_8072DEC
- bl sub_80E81FC
- ldr r0, _080E6D78
- bl sub_80E682C
-_080E6D72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6D78: .4byte sub_80E6AC4
- thumb_func_end sub_80E6C84
-
- thumb_func_start sub_80E6D7C
-sub_80E6D7C: @ 80E6D7C
- push {r4-r7,lr}
- ldr r5, _080E6D98
- ldrh r0, [r5, 0x24]
- cmp r0, 0xA
- bne _080E6D88
- b _080E6F06
-_080E6D88:
- cmp r0, 0xA
- bgt _080E6D9C
- cmp r0, 0
- beq _080E6DB6
- cmp r0, 0x1
- beq _080E6E3C
- b _080E6F5E
- .align 2, 0
-_080E6D98: .4byte 0x02001000
-_080E6D9C:
- cmp r0, 0x65
- bne _080E6DA2
- b _080E6F30
-_080E6DA2:
- cmp r0, 0x65
- bgt _080E6DAE
- cmp r0, 0x64
- bne _080E6DAC
- b _080E6F24
-_080E6DAC:
- b _080E6F5E
-_080E6DAE:
- cmp r0, 0x66
- bne _080E6DB4
- b _080E6F50
-_080E6DB4:
- b _080E6F5E
-_080E6DB6:
- movs r0, 0x2
- bl sub_80E8398
- bl sub_80E8054
- lsls r0, 24
- cmp r0, 0
- beq _080E6DCA
- movs r0, 0x5
- b _080E6DEE
-_080E6DCA:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6DFC
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6DDE
- movs r0, 0x8
- b _080E6DEE
-_080E6DDE:
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6DF8
- cmp r0, r1
- beq _080E6DEC
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6DFC
-_080E6DEC:
- movs r0, 0x9
-_080E6DEE:
- bl sub_80E91D4
- movs r0, 0xA
- strh r0, [r5, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6DF8: .4byte 0x0000ffff
-_080E6DFC:
- ldr r0, _080E6E18
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- bne _080E6E20
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6E20
- ldr r0, _080E6E1C
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6E18: .4byte 0x02001000
-_080E6E1C: .4byte sub_80E6C84
-_080E6E20:
- movs r0, 0x1
- bl sub_80E91D4
- bl sub_80E9744
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- b _080E6F3C
-_080E6E3C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _080E6E5C
- cmp r6, 0
- bgt _080E6E56
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- beq _080E6EDC
- b _080E6F5E
-_080E6E56:
- cmp r6, 0x1
- beq _080E6EDC
- b _080E6F5E
-_080E6E5C:
- ldr r7, _080E6EC8
- bl sub_80E7FA8
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r0, 31
- strh r0, [r7]
- bl sub_80E7D9C
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _080E6E82
- ldr r4, _080E6ECC
- bl sub_80E8094
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E82:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6E9C
- bl sub_80E81C0
- ldr r4, _080E6ECC
- ldr r1, _080E6ED0
- adds r0, r5, r1
- bl sub_80FA364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E9C:
- ldrb r0, [r5, 0x8]
- cmp r0, 0xD
- bne _080E6EBE
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6ED4
- cmp r0, r1
- beq _080E6EB0
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6EB2
-_080E6EB0:
- strh r6, [r7]
-_080E6EB2:
- ldr r4, _080E6ECC
- bl sub_80E810C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6EBE:
- ldr r0, _080E6ED8
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6EC8: .4byte gScriptResult
-_080E6ECC: .4byte gUnknown_0202E8CC
-_080E6ED0: .4byte 0x00009c7c
-_080E6ED4: .4byte 0x0000ffff
-_080E6ED8: .4byte sub_80E752C
-_080E6EDC:
- bl sub_8072DEC
- bl sub_80E81FC
- ldr r4, _080E6EFC
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6F00
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6F00
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6EFC: .4byte 0x02001000
-_080E6F00:
- bl sub_80E95A4
- b _080E6F12
-_080E6F06:
- ldr r0, _080E6F1C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F12:
- ldr r0, _080E6F20
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6F1C: .4byte gMain
-_080E6F20: .4byte sub_80E6AC4
-_080E6F24:
- movs r0, 0x7
- bl sub_80E91D4
- ldrh r0, [r5, 0x24]
- adds r0, 0x1
- strh r0, [r5, 0x24]
-_080E6F30:
- ldr r0, _080E6F48
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F3C:
- ldr r1, _080E6F4C
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6F48: .4byte gMain
-_080E6F4C: .4byte 0x02001000
-_080E6F50:
- bl sub_80E7E50
- bl sub_80E95A4
- ldr r0, _080E6F64
- bl sub_80E682C
-_080E6F5E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6F64: .4byte sub_80E6AC4
- thumb_func_end sub_80E6D7C
-
- thumb_func_start sub_80E6F68
-sub_80E6F68: @ 80E6F68
- push {r4,lr}
- ldr r4, _080E6F78
- ldrh r0, [r4, 0x24]
- cmp r0, 0
- beq _080E6F7C
- cmp r0, 0x1
- beq _080E6F9C
- b _080E6FBC
- .align 2, 0
-_080E6F78: .4byte 0x02001000
-_080E6F7C:
- movs r0, 0x1
- bl sub_80E8398
- movs r0, 0xA
- bl sub_80E91D4
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6FBC
-_080E6F9C:
- bl sub_80E9EA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6FBC
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E6FC4
- bl sub_80E682C
-_080E6FBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6FC4: .4byte sub_80E6FC8
- thumb_func_end sub_80E6F68
-
- thumb_func_start sub_80E6FC8
-sub_80E6FC8: @ 80E6FC8
- push {r4,lr}
- bl sub_80E77C8
- adds r1, r0, 0
- ldr r4, _080E7000
- adds r0, r4, 0
- adds r0, 0x96
- strb r1, [r0]
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E700C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E7004
- str r1, [r0]
- ldr r0, _080E7008
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E7000: .4byte 0x02001000
-_080E7004: .4byte sub_80E6FC8
-_080E7008: .4byte sub_80E7458
-_080E700C:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E7018
- movs r0, 0x5
- bl PlaySE
-_080E7018:
- ldr r0, _080E7054
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E70E8
- ldr r2, _080E7058
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7090
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- beq _080E7070
- cmp r0, 0x2
- bgt _080E705C
- cmp r0, 0x1
- beq _080E7062
- b _080E710A
- .align 2, 0
-_080E7054: .4byte gMain
-_080E7058: .4byte 0x000001b7
-_080E705C:
- cmp r0, 0x3
- beq _080E70F0
- b _080E710A
-_080E7062:
- ldr r0, _080E706C
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E706C: .4byte sub_80E718C
-_080E7070:
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- beq _080E710A
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- ldr r1, _080E708C
- bl sub_80E7F00
- bl sub_80E7574
- bl sub_80E95A4
- b _080E710A
- .align 2, 0
-_080E708C: .4byte 0x0000ffff
-_080E7090:
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E70CA
- ldr r2, _080E70DC
- adds r0, r4, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r4, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 1
- ldr r2, _080E70E0
- adds r1, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080E710A
-_080E70CA:
- movs r0, 0x5
- bl PlaySE
- bl sub_80E7AD4
- ldr r0, _080E70E4
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70DC: .4byte 0x000001a9
-_080E70E0: .4byte 0x00004142
-_080E70E4: .4byte sub_80E7218
-_080E70E8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E70FC
-_080E70F0:
- ldr r0, _080E70F8
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70F8: .4byte sub_80E7114
-_080E70FC:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E710A
- ldr r0, _080E7110
- bl sub_80E682C
-_080E710A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7110: .4byte sub_80E718C
- thumb_func_end sub_80E6FC8
-
- thumb_func_start sub_80E7114
-sub_80E7114: @ 80E7114
- push {lr}
- ldr r0, _080E712C
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E7182
- lsls r0, r1, 2
- ldr r1, _080E7130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E712C: .4byte 0x02001000
-_080E7130: .4byte _080E7134
- .align 2, 0
-_080E7134:
- .4byte _080E7148
- .4byte _080E715C
- .4byte _080E715C
- .4byte _080E7164
- .4byte _080E717C
-_080E7148:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8D8C
- b _080E716E
-_080E715C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E7182
-_080E7164:
- bl sub_80E9F50
- lsls r0, 24
- cmp r0, 0
- beq _080E7182
-_080E716E:
- ldr r1, _080E7178
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7182
- .align 2, 0
-_080E7178: .4byte 0x02001000
-_080E717C:
- ldr r0, _080E7188
- bl sub_80E682C
-_080E7182:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7188: .4byte sub_80E6AC4
- thumb_func_end sub_80E7114
-
- thumb_func_start sub_80E718C
-sub_80E718C: @ 80E718C
- push {r4,lr}
- ldr r0, _080E71A4
- ldrh r1, [r0, 0x24]
- adds r4, r0, 0
- cmp r1, 0x1
- beq _080E71C6
- cmp r1, 0x1
- bgt _080E71A8
- cmp r1, 0
- beq _080E71AE
- b _080E71EC
- .align 2, 0
-_080E71A4: .4byte 0x02001000
-_080E71A8:
- cmp r1, 0x8
- beq _080E71F4
- b _080E71EC
-_080E71AE:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- bl sub_80E8D54
- b _080E720E
-_080E71C6:
- bl sub_80E9FD4
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- movs r2, 0
- adds r1, r4, 0
- adds r1, 0x26
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E71DE
- movs r2, 0x1
-_080E71DE:
- strb r2, [r1]
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
-_080E71EC:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E720E
-_080E71F4:
- bl sub_80EA014
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E7214
- bl sub_80E682C
-_080E720E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7214: .4byte sub_80E6FC8
- thumb_func_end sub_80E718C
-
- thumb_func_start sub_80E7218
-sub_80E7218: @ 80E7218
- push {r4,lr}
- ldr r4, _080E7230
- ldrh r0, [r4, 0x24]
- adds r1, r4, 0
- cmp r0, 0x9
- beq _080E7260
- cmp r0, 0x9
- bgt _080E7234
- cmp r0, 0x8
- beq _080E7244
- b _080E723C
- .align 2, 0
-_080E7230: .4byte 0x02001000
-_080E7234:
- cmp r0, 0xA
- beq _080E7276
- cmp r0, 0xB
- beq _080E7288
-_080E723C:
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7288
-_080E7244:
- movs r0, 0
- bl sub_80E8D8C
- bl sub_80E8504
- bl sub_80E9AD4
- bl sub_80E68E8
- bl sub_80E88F0
- bl sub_80E9E98
- b _080E726E
-_080E7260:
- bl sub_80EA050
- lsls r0, 24
- cmp r0, 0
- beq _080E7288
- bl sub_80E9C94
-_080E726E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7288
-_080E7276:
- movs r0, 0x1
- bl sub_80E87CC
- movs r0, 0x1
- bl sub_80E8958
- ldr r0, _080E7290
- bl sub_80E682C
-_080E7288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7290: .4byte sub_80E7294
- thumb_func_end sub_80E7218
-
- thumb_func_start sub_80E7294
-sub_80E7294: @ 80E7294
- push {r4,lr}
- bl sub_80E7B40
- adds r1, r0, 0
- ldr r4, _080E72CC
- ldr r2, _080E72D0
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E72DC
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E72D4
- str r1, [r0]
- ldr r0, _080E72D8
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E72CC: .4byte 0x02001000
-_080E72D0: .4byte 0x000001b9
-_080E72D4: .4byte sub_80E7294
-_080E72D8: .4byte sub_80E7458
-_080E72DC:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E72E8
- movs r0, 0x5
- bl PlaySE
-_080E72E8:
- ldr r0, _080E7304
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E730C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080E7308
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E7304: .4byte gMain
-_080E7308: .4byte sub_80E7324
-_080E730C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E731A
- ldr r0, _080E7320
- bl sub_80E682C
-_080E731A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7320: .4byte sub_80E73D0
- thumb_func_end sub_80E7294
-
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {lr}
- ldr r0, _080E733C
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E73C6
- lsls r0, r1, 2
- ldr r1, _080E7340
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E733C: .4byte 0x02001000
-_080E7340: .4byte _080E7344
- .align 2, 0
-_080E7344:
- .4byte _080E7358
- .4byte _080E737C
- .4byte _080E7384
- .4byte _080E738A
- .4byte _080E73A4
-_080E7358:
- bl sub_80E7DD0
- lsls r0, 24
- cmp r0, 0
- bne _080E7370
- ldr r0, _080E736C
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E736C: .4byte sub_80E7294
-_080E7370:
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E87CC
- b _080E7394
-_080E737C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E73C6
-_080E7384:
- bl sub_80E9E98
- b _080E7394
-_080E738A:
- bl sub_80EA184
- lsls r0, 24
- cmp r0, 0
- beq _080E73C6
-_080E7394:
- ldr r1, _080E73A0
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E73C6
- .align 2, 0
-_080E73A0: .4byte 0x02001000
-_080E73A4:
- ldrb r0, [r2, 0x8]
- cmp r0, 0x6
- bne _080E73C0
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E73C0
- ldr r0, _080E73BC
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E73BC: .4byte sub_80E6D7C
-_080E73C0:
- ldr r0, _080E73CC
- bl sub_80E682C
-_080E73C6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E73CC: .4byte sub_80E6AC4
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E73D0
-sub_80E73D0: @ 80E73D0
- push {lr}
- ldr r0, _080E73E4
- ldrh r0, [r0, 0x24]
- cmp r0, 0x4
- bhi _080E744E
- lsls r0, 2
- ldr r1, _080E73E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E73E4: .4byte 0x02001000
-_080E73E8: .4byte _080E73EC
- .align 2, 0
-_080E73EC:
- .4byte _080E7400
- .4byte _080E740C
- .4byte _080E7416
- .4byte _080E742C
- .4byte _080E7444
-_080E7400:
- movs r0, 0
- bl sub_80E87CC
- bl sub_80E88F0
- b _080E7436
-_080E740C:
- bl sub_80E9AD4
- bl sub_80E9E98
- b _080E7436
-_080E7416:
- bl sub_80EA0E4
- lsls r0, 24
- cmp r0, 0
- beq _080E744E
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E9A14
- b _080E7436
-_080E742C:
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
-_080E7436:
- ldr r1, _080E7440
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E744E
- .align 2, 0
-_080E7440: .4byte 0x02001000
-_080E7444:
- bl sub_80E9974
- ldr r0, _080E7454
- bl sub_80E682C
-_080E744E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7454: .4byte sub_80E6FC8
- thumb_func_end sub_80E73D0
-
- thumb_func_start sub_80E7458
-sub_80E7458: @ 80E7458
- push {r4,r5,lr}
- ldr r4, _080E7468
- ldrh r5, [r4, 0x24]
- cmp r5, 0
- beq _080E746C
- cmp r5, 0x1
- beq _080E74A4
- b _080E7518
- .align 2, 0
-_080E7468: .4byte 0x02001000
-_080E746C:
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E7480
- cmp r1, r0
- bne _080E7484
- bl sub_80E9D7C
- b _080E7488
- .align 2, 0
-_080E7480: .4byte sub_80E6FC8
-_080E7484:
- bl sub_80E9D00
-_080E7488:
- ldr r4, _080E74A0
- movs r2, 0xDF
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80E9E08
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7518
- .align 2, 0
-_080E74A0: .4byte 0x02001000
-_080E74A4:
- bl sub_80E9E54
- lsls r0, 24
- cmp r0, 0
- beq _080E7518
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E74DC
- cmp r1, r0
- bne _080E74E4
- bl sub_80E9D7C
- ldr r2, _080E74E0
- adds r1, r4, r2
- adds r2, 0xB
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7A98
- adds r0, r4, 0
- adds r0, 0x96
- b _080E74FE
- .align 2, 0
-_080E74DC: .4byte sub_80E6FC8
-_080E74E0: .4byte 0x000001b5
-_080E74E4:
- ldr r0, _080E7520
- adds r1, r4, r0
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7D30
- ldr r1, _080E7524
- adds r0, r4, r1
-_080E74FE:
- strb r5, [r0]
- ldr r1, _080E7528
- movs r0, 0xDF
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0x2
- strb r0, [r2]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- bl sub_80E682C
-_080E7518:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7520: .4byte 0x00009a29
-_080E7524: .4byte 0x000001b9
-_080E7528: .4byte 0x02001000
- thumb_func_end sub_80E7458
-
- thumb_func_start sub_80E752C
-sub_80E752C: @ 80E752C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080E7540
- ldrh r1, [r4, 0x24]
- cmp r1, 0
- beq _080E7544
- cmp r1, 0x1
- beq _080E755C
- b _080E756C
- .align 2, 0
-_080E7540: .4byte 0x02001000
-_080E7544:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E756C
-_080E755C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E756C
- ldr r0, [r4]
- bl SetMainCallback2
-_080E756C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E752C
-
- thumb_func_start sub_80E7574
-sub_80E7574: @ 80E7574
- push {r4,r5,lr}
- ldr r4, _080E75B8
- ldrb r5, [r4, 0x8]
- cmp r5, 0x1
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r4, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- lsls r0, 1
- subs r1, 0x72
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- beq _080E75BC
- adds r0, r4, 0
- adds r0, 0x7D
- strb r5, [r0]
- adds r1, r4, 0
- b _080E75C6
- .align 2, 0
-_080E75B8: .4byte 0x02001000
-_080E75BC:
- ldr r1, _080E75D4
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0
- strb r0, [r2]
-_080E75C6:
- adds r1, 0x7D
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E75D4: .4byte 0x02001000
- thumb_func_end sub_80E7574
-
- thumb_func_start sub_80E75D8
-sub_80E75D8: @ 80E75D8
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, _080E75FC
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7604
- ldr r1, _080E7600
- adds r0, r1, 0
- adds r0, 0x84
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x86
- strb r0, [r2]
- adds r1, 0x85
- movs r0, 0x2
- b _080E768E
- .align 2, 0
-_080E75FC: .4byte gMain
-_080E7600: .4byte 0x02001000
-_080E7604:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E7630
- ldr r2, _080E762C
- adds r1, r2, 0
- adds r1, 0x86
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E765C
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- strb r0, [r1]
- b _080E765C
- .align 2, 0
-_080E762C: .4byte 0x02001000
-_080E7630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E7658
- ldr r0, _080E7684
- adds r3, r0, 0
- adds r3, 0x86
- ldrb r1, [r3]
- adds r1, 0x1
- strb r1, [r3]
- adds r0, 0x84
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- ble _080E7656
- strb r4, [r3]
-_080E7656:
- movs r4, 0x1
-_080E7658:
- cmp r4, 0
- beq _080E76EA
-_080E765C:
- ldr r2, _080E7684
- ldrb r3, [r2, 0x9]
- cmp r3, 0x2
- bne _080E7692
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7688
- adds r0, r2, 0
- adds r0, 0x85
- strb r3, [r0]
- b _080E77BC
- .align 2, 0
-_080E7684: .4byte 0x02001000
-_080E7688:
- adds r1, r2, 0
- adds r1, 0x85
- movs r0, 0
-_080E768E:
- strb r0, [r1]
- b _080E77BC
-_080E7692:
- movs r0, 0x85
- adds r0, r2
- mov r12, r0
- adds r4, r2, 0
- adds r4, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrb r3, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _080E76B0
- subs r0, r3, 0x1
- mov r1, r12
- strb r0, [r1]
-_080E76B0:
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r3, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- beq _080E77BC
- ldrb r0, [r4]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, 0
- mov r5, r12
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
- mov r6, r12
- strb r0, [r6]
- b _080E77BC
-_080E76EA:
- ldrh r2, [r2, 0x30]
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E7744
- ldr r2, _080E7728
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bge _080E77BC
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r4, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E772C
- movs r0, 0x2
- b _080E77BA
- .align 2, 0
-_080E7728: .4byte 0x02001000
-_080E772C:
- adds r0, r2, 0
- adds r0, 0x83
- ldrb r0, [r0]
- subs r1, r0, 0x1
- strb r1, [r3]
- adds r5, r4, 0
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0
- lsls r1, 24
- lsrs r0, r1, 24
- b _080E77B2
-_080E7744:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080E77C0
- ldr r2, _080E777C
- adds r5, r2, 0
- adds r5, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7780
- adds r1, r2, 0
- adds r1, 0x85
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- ble _080E77BC
- strb r4, [r1]
- b _080E77BC
- .align 2, 0
-_080E777C: .4byte 0x02001000
-_080E7780:
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r6, 0x83
- adds r6, r2
- mov r12, r6
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- blt _080E779E
- strb r4, [r3]
-_080E779E:
- ldrb r1, [r5]
- mov r4, r12
- ldrb r0, [r4]
- adds r5, r0, 0
- muls r5, r1
- adds r0, r5, 0
- ldrb r6, [r3]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
-_080E77B2:
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
-_080E77BA:
- strb r0, [r3]
-_080E77BC:
- movs r0, 0x1
- b _080E77C2
-_080E77C0:
- movs r0, 0
-_080E77C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E75D8
-
- thumb_func_start sub_80E77C8
-sub_80E77C8: @ 80E77C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r1, _080E780C
- ldr r2, _080E7810
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r1, 0
- cmp r0, 0
- beq _080E783E
- ldr r1, _080E7814
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7818
- movs r4, 0xD4
- lsls r4, 1
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- ble _080E7806
- b _080E7948
-_080E7806:
- movs r0, 0x3
- strb r0, [r1]
- b _080E7948
- .align 2, 0
-_080E780C: .4byte 0x02001000
-_080E7810: .4byte 0x000001b7
-_080E7814: .4byte gMain
-_080E7818:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- bne _080E7822
- b _080E7950
-_080E7822:
- movs r5, 0xD4
- lsls r5, 1
- adds r1, r3, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080E7838
- b _080E7948
-_080E7838:
- movs r0, 0x1
- strb r0, [r1]
- b _080E7948
-_080E783E:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E789A
- movs r4, 0
- ldr r1, _080E7870
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7874
- movs r6, 0xD4
- lsls r6, 1
- adds r1, r3, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E7944
- movs r0, 0x3
- strb r0, [r1]
- b _080E7944
- .align 2, 0
-_080E7870: .4byte gMain
-_080E7874:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E7894
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E7892
- strb r7, [r1]
-_080E7892:
- movs r4, 0x1
-_080E7894:
- cmp r4, 0
- beq _080E7950
- b _080E7944
-_080E789A:
- movs r4, 0
- movs r1, 0xE0
- lsls r1, 1
- adds r5, r3, r1
- strb r7, [r5]
- ldr r1, _080E78E0
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E78E8
- movs r2, 0xD4
- lsls r2, 1
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E78C4
- b _080E7A88
-_080E78C4:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E78E4
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7932
- movs r0, 0xFF
- strb r0, [r5]
- b _080E7932
- .align 2, 0
-_080E78E0: .4byte gMain
-_080E78E4: .4byte 0x000001b5
-_080E78E8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E792E
- movs r0, 0xD4
- lsls r0, 1
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r4, 0xDB
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E790E
- b _080E7A88
-_080E790E:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E794C
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x3
- cmp r1, r0
- ble _080E792C
- movs r0, 0x1
- strb r0, [r5]
-_080E792C:
- movs r4, 0x1
-_080E792E:
- cmp r4, 0
- beq _080E7950
-_080E7932:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7944
- b _080E7A88
-_080E7944:
- bl sub_80E7A98
-_080E7948:
- movs r0, 0x1
- b _080E7A8A
- .align 2, 0
-_080E794C: .4byte 0x000001b5
-_080E7950:
- ldrh r1, [r6, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080E7992
- ldr r5, _080E7974
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080E7978
- subs r0, r1, 0x1
- strb r0, [r2]
- b _080E79E6
- .align 2, 0
-_080E7974: .4byte 0x000001a9
-_080E7978:
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r4, 0xD5
- lsls r4, 1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- b _080E79E6
-_080E7992:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E79E2
- ldr r5, _080E79D4
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E79CC
- ldr r0, _080E79D8
- adds r4, r3, r0
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD5
- lsls r2, 1
- adds r0, r3, r2
- adds r1, r0
- ldrb r5, [r4]
- movs r2, 0
- ldrsb r2, [r4, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E79DC
-_080E79CC:
- ldr r4, _080E79D8
- adds r0, r3, r4
- strb r6, [r0]
- b _080E79E0
- .align 2, 0
-_080E79D4: .4byte 0x000001b7
-_080E79D8: .4byte 0x000001a9
-_080E79DC:
- adds r0, r5, 0x1
- strb r0, [r4]
-_080E79E0:
- movs r7, 0x1
-_080E79E2:
- cmp r7, 0
- beq _080E7A88
-_080E79E6:
- adds r2, r3, 0
- ldr r5, _080E7A48
- adds r7, r2, r5
- ldrb r6, [r7]
- mov r9, r6
- movs r1, 0
- ldr r0, _080E7A4C
- adds r0, r2
- mov r12, r0
- subs r5, 0xF
- adds r4, r2, r5
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r6, 0xD5
- lsls r6, 1
- adds r6, r2
- mov r8, r6
- add r0, r8
- mov r6, r12
- movs r5, 0
- ldrsb r5, [r6, r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E7A1C
- movs r1, 0x1
-_080E7A1C:
- strb r1, [r7]
- cmp r1, 0
- beq _080E7A58
- ldr r0, _080E7A50
- adds r1, r2, r0
- ldrb r0, [r4]
- ldrb r1, [r1]
- subs r0, r1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- beq _080E7A36
- b _080E7948
-_080E7A36:
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080E7A54
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r2, r12
- strb r0, [r2]
- b _080E7948
- .align 2, 0
-_080E7A48: .4byte 0x000001b7
-_080E7A4C: .4byte 0x000001a9
-_080E7A50: .4byte 0x000001b5
-_080E7A54: .4byte 0x000001ab
-_080E7A58:
- mov r6, r9
- cmp r6, 0
- bne _080E7A60
- b _080E7948
-_080E7A60:
- ldr r1, _080E7A84
- adds r0, r3, r1
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r0, r2
- strb r0, [r4]
- cmp r5, 0
- bne _080E7A72
- b _080E7948
-_080E7A72:
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r0, r8
- ldrb r0, [r0]
- subs r0, 0x1
- mov r4, r12
- strb r0, [r4]
- b _080E7948
- .align 2, 0
-_080E7A84: .4byte 0x000001b5
-_080E7A88:
- movs r0, 0
-_080E7A8A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E77C8
-
- thumb_func_start sub_80E7A98
-sub_80E7A98: @ 80E7A98
- push {lr}
- ldr r1, _080E7ACC
- ldr r0, _080E7AD0
- adds r3, r1, r0
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0x2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldrb r2, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080E7AC6
- subs r0, r2, 0x1
- strb r0, [r3]
-_080E7AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7ACC: .4byte 0x02001000
-_080E7AD0: .4byte 0x000001a9
- thumb_func_end sub_80E7A98
-
- thumb_func_start sub_80E7AD4
-sub_80E7AD4: @ 80E7AD4
- push {lr}
- ldr r3, _080E7B08
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7B10
- ldr r1, _080E7B0C
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x2A
- adds r1, r0
- ldrb r1, [r1]
- adds r2, 0x10
- b _080E7B34
- .align 2, 0
-_080E7B08: .4byte 0x02001000
-_080E7B0C: .4byte 0x000001a9
-_080E7B10:
- ldr r1, _080E7B3C
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r1, 0x1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r3, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r1, [r2]
- movs r2, 0xDC
- lsls r2, 1
-_080E7B34:
- adds r0, r3, r2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B3C: .4byte 0x000001a9
- thumb_func_end sub_80E7AD4
-
- thumb_func_start sub_80E7B40
-sub_80E7B40: @ 80E7B40
- push {r4-r7,lr}
- movs r5, 0
- ldr r2, _080E7B8C
- movs r0, 0xE0
- lsls r0, 1
- adds r6, r2, r0
- strb r5, [r6]
- ldr r1, _080E7B90
- ldrh r4, [r1, 0x30]
- movs r0, 0x40
- ands r0, r4
- adds r3, r2, 0
- adds r7, r1, 0
- cmp r0, 0
- beq _080E7B9C
- ldr r2, _080E7B94
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E7B6E
- b _080E7D1A
-_080E7B6E:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E7B98
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7BF2
- movs r0, 0xFF
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7B8C: .4byte 0x02001000
-_080E7B90: .4byte gMain
-_080E7B94: .4byte 0x000099a4
-_080E7B98: .4byte 0x00009a29
-_080E7B9C:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _080E7BEE
- ldr r0, _080E7BE0
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r4, _080E7BE4
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E7BBE
- b _080E7D1A
-_080E7BBE:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E7BE8
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- cmp r1, r0
- blt _080E7BEC
- movs r0, 0x1
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7BE0: .4byte 0x000099a4
-_080E7BE4: .4byte 0x00009a28
-_080E7BE8: .4byte 0x00009a29
-_080E7BEC:
- movs r5, 0x1
-_080E7BEE:
- cmp r5, 0
- beq _080E7BFA
-_080E7BF2:
- bl sub_80E7D30
-_080E7BF6:
- movs r0, 0x1
- b _080E7D1C
-_080E7BFA:
- ldrh r1, [r7, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080E7C38
- ldr r4, _080E7C30
- adds r2, r3, r4
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bge _080E7BF6
- ldr r6, _080E7C34
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, 0x1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r2]
- b _080E7BF6
- .align 2, 0
-_080E7C30: .4byte 0x000099a5
-_080E7C34: .4byte 0x000099a4
-_080E7C38:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7C70
- ldr r6, _080E7C68
- adds r4, r3, r6
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r2, _080E7C6C
- adds r1, r3, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r6, 0x1
- adds r1, r3, r6
- adds r2, r1
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r2, r1]
- cmp r0, r1
- blt _080E7BF6
- strb r5, [r4]
- b _080E7BF6
- .align 2, 0
-_080E7C68: .4byte 0x000099a5
-_080E7C6C: .4byte 0x000099a4
-_080E7C70:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7CC4
- ldr r1, _080E7CBC
- adds r0, r3, r1
- ldrb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7CA2
- negs r0, r1
- movs r4, 0xE0
- lsls r4, 1
- adds r2, r3, r4
- strb r0, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E7CA2
- strb r1, [r2]
-_080E7CA2:
- ldr r6, _080E7CC0
- adds r1, r3, r6
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- ldrb r4, [r1]
- adds r0, r4
- strb r0, [r1]
- movs r6, 0xDF
- lsls r6, 1
- adds r1, r3, r6
- b _080E7D16
- .align 2, 0
-_080E7CBC: .4byte 0x00009a29
-_080E7CC0: .4byte 0x000099a4
-_080E7CC4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E7D1A
- ldr r0, _080E7D24
- adds r4, r3, r0
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r6, _080E7D28
- adds r2, r3, r6
- movs r0, 0
- ldrsb r0, [r2, r0]
- subs r0, 0x4
- cmp r1, r0
- bge _080E7CFE
- ldrb r1, [r4]
- adds r1, 0x4
- ldrb r0, [r2]
- subs r0, r1
- movs r2, 0xE0
- lsls r2, 1
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080E7CFE
- movs r0, 0x4
- strb r0, [r1]
-_080E7CFE:
- ldr r4, _080E7D2C
- adds r1, r3, r4
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- movs r4, 0xDF
- lsls r4, 1
- adds r1, r3, r4
-_080E7D16:
- movs r0, 0x4
- strb r0, [r1]
-_080E7D1A:
- movs r0, 0
-_080E7D1C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7D24: .4byte 0x00009a29
-_080E7D28: .4byte 0x00009a28
-_080E7D2C: .4byte 0x000099a4
- thumb_func_end sub_80E7B40
-
- thumb_func_start sub_80E7D30
-sub_80E7D30: @ 80E7D30
- push {r4,lr}
- ldr r0, _080E7D60
- ldr r1, _080E7D64
- adds r4, r0, r1
- ldr r2, _080E7D68
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r2, 0x2
- adds r0, r2
- adds r1, r0
- movs r2, 0
- ldrsb r2, [r4, r2]
- ldrb r3, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- blt _080E7D5A
- subs r0, r3, 0x1
- strb r0, [r4]
-_080E7D5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D60: .4byte 0x02001000
-_080E7D64: .4byte 0x000099a5
-_080E7D68: .4byte 0x000099a4
- thumb_func_end sub_80E7D30
-
- thumb_func_start sub_80E7D6C
-sub_80E7D6C: @ 80E7D6C
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080E7D94
- ldrb r1, [r0, 0xA]
- cmp r4, r1
- bcs _080E7D8E
- adds r5, r0, 0
-_080E7D7A:
- adds r0, r4, 0
- ldr r1, _080E7D98
- bl sub_80E7F00
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r5, 0xA]
- cmp r4, r0
- bcc _080E7D7A
-_080E7D8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D94: .4byte 0x02001000
-_080E7D98: .4byte 0x0000ffff
- thumb_func_end sub_80E7D6C
-
- thumb_func_start sub_80E7D9C
-sub_80E7D9C: @ 80E7D9C
- push {r4,r5,lr}
- movs r2, 0
- ldr r0, _080E7DCC
- ldrb r1, [r0, 0xA]
- cmp r2, r1
- bcs _080E7DC6
- adds r3, r0, 0
- ldr r4, [r3, 0x4]
- adds r5, r3, 0
- adds r5, 0xC
-_080E7DB0:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r3, 0xA]
- cmp r2, r0
- bcc _080E7DB0
-_080E7DC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DCC: .4byte 0x02001000
- thumb_func_end sub_80E7D9C
-
- thumb_func_start sub_80E7DD0
-sub_80E7DD0: @ 80E7DD0
- push {r4,lr}
- ldr r2, _080E7E28
- ldr r1, _080E7E2C
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r3, _080E7E30
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0
- adds r3, 0x86
- adds r0, r2, r3
- adds r1, r0
- ldrh r4, [r1]
- adds r0, r2, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E7E34
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r2, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080E7E34
- adds r0, r4, 0
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bne _080E7E34
- movs r0, 0
- b _080E7E46
- .align 2, 0
-_080E7E28: .4byte 0x02001000
-_080E7E2C: .4byte 0x000099a5
-_080E7E30: .4byte 0x000099a4
-_080E7E34:
- ldr r0, _080E7E4C
- adds r0, 0x27
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80E7F00
- bl sub_80E95A4
- movs r0, 0x1
-_080E7E46:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7E4C: .4byte 0x02001000
- thumb_func_end sub_80E7DD0
-
- thumb_func_start sub_80E7E50
-sub_80E7E50: @ 80E7E50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r5, 0
- movs r2, 0
- ldr r1, _080E7EF0
- adds r3, r1, 0
- adds r3, 0x84
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r2, r0
- bge _080E7EDE
- mov r8, r1
- adds r0, r1, 0
- str r0, [sp]
-_080E7E74:
- mov r0, r8
- adds r0, 0x7E
- adds r0, r2, r0
- movs r1, 0
- strb r1, [r0]
- movs r3, 0
- ldr r6, _080E7EF4
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- cmp r3, r0
- bge _080E7ECE
- ldr r6, [sp]
- mov r12, r6
- movs r0, 0
- mov r10, r0
- ldr r1, _080E7EF4
- mov r9, r1
- ldr r7, _080E7EF8
- lsls r4, r2, 1
-_080E7E9E:
- lsls r1, r5, 1
- adds r2, r1, r7
- mov r6, r12
- ldr r0, [r6, 0x4]
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- adds r0, r3, r4
- mov r1, r12
- adds r1, 0x8C
- adds r0, r1
- mov r1, r10
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- mov r6, r9
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r3, r0
- blt _080E7E9E
-_080E7ECE:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r6, _080E7EFC
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080E7E74
-_080E7EDE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7EF0: .4byte 0x02001000
-_080E7EF4: .4byte 0x02001083
-_080E7EF8: .4byte 0x0200100c
-_080E7EFC: .4byte 0x02001084
- thumb_func_end sub_80E7E50
-
- thumb_func_start sub_80E7F00
-sub_80E7F00: @ 80E7F00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r7, _080E7F68
- adds r0, r7, 0
- adds r0, 0x83
- movs r4, 0
- ldrsb r4, [r0, r4]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, r6, 1
- adds r1, r7, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r9
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, 0x7
- bne _080E7F6C
- cmp r3, 0x7
- beq _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- subs r0, 0x1
- b _080E7F7A
- .align 2, 0
-_080E7F68: .4byte 0x02001000
-_080E7F6C:
- cmp r3, 0x7
- bne _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- adds r0, 0x1
-_080E7F7A:
- strb r0, [r1]
-_080E7F7C:
- movs r3, 0
- ldr r2, _080E7FA4
- lsls r0, r5, 1
- add r0, r8
- adds r1, r2, 0
- adds r1, 0x8C
- adds r0, r1
- strb r3, [r0]
- lsls r0, r6, 1
- adds r2, 0xC
- adds r0, r2
- mov r1, r9
- strh r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7FA4: .4byte 0x02001000
- thumb_func_end sub_80E7F00
-
- thumb_func_start sub_80E7FA8
-sub_80E7FA8: @ 80E7FA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _080E8040
- ldrb r1, [r0, 0xA]
- cmp r8, r1
- bcs _080E802E
- ldr r3, _080E8044
- adds r6, r0, r3
- ldr r1, _080E8048
- adds r1, r0
- mov r9, r1
-_080E7FC8:
- ldr r3, _080E804C
- adds r7, r6, r3
- ldr r0, [r7, 0x4]
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r1, _080E8050
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0
- bl sub_80EB218
- adds r1, r6, 0
- mov r2, r9
- ldrb r0, [r1]
- adds r4, r5, 0x1
- ldrb r3, [r2]
- cmp r0, r3
- bne _080E8018
- adds r3, r7, 0
- cmp r0, 0xFF
- beq _080E8010
-_080E8000:
- adds r1, 0x1
- adds r2, 0x1
- ldrb r0, [r1]
- ldrb r5, [r2]
- cmp r0, r5
- bne _080E8018
- cmp r0, 0xFF
- bne _080E8000
-_080E8010:
- ldrb r0, [r1]
- ldrb r2, [r2]
- cmp r0, r2
- beq _080E8024
-_080E8018:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r3, _080E8040
-_080E8024:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- ldrb r3, [r3, 0xA]
- cmp r5, r3
- bcc _080E7FC8
-_080E802E:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E8040: .4byte 0x02001000
-_080E8044: .4byte 0x00009e14
-_080E8048: .4byte 0x00009e41
-_080E804C: .4byte 0xffff61ec
-_080E8050: .4byte 0xffff61f8
- thumb_func_end sub_80E7FA8
-
- thumb_func_start sub_80E8054
-sub_80E8054: @ 80E8054
- push {r4,lr}
- movs r1, 0
- ldr r2, _080E8078
- ldrb r0, [r2, 0xA]
- cmp r1, r0
- bcs _080E808A
- adds r4, r2, 0
- adds r4, 0xC
- ldr r3, _080E807C
- adds r2, r0, 0
-_080E8068:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _080E8080
- movs r0, 0
- b _080E808C
- .align 2, 0
-_080E8078: .4byte 0x02001000
-_080E807C: .4byte 0x0000ffff
-_080E8080:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080E8068
-_080E808A:
- movs r0, 0x1
-_080E808C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8054
-
- thumb_func_start sub_80E8094
-sub_80E8094: @ 80E8094
- push {r4-r7,lr}
- movs r5, 0
- ldr r6, _080E80C4
- adds r7, r6, 0
- adds r7, 0x2D
-_080E809E:
- lsls r4, r5, 1
- ldr r1, _080E80C8
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r0, _080E80CC
- adds r4, r0
- ldrh r1, [r4]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- adds r3, r6, 0
- adds r4, r7, 0
- b _080E80D8
- .align 2, 0
-_080E80C4: .4byte 0x0200ae14
-_080E80C8: .4byte 0xffff61f8
-_080E80CC: .4byte gMysteryEventPhrase
-_080E80D0:
- adds r4, 0x1
- adds r3, 0x1
- cmp r2, r1
- bne _080E80F4
-_080E80D8:
- ldrb r2, [r3]
- adds r0, r2, 0
- cmp r0, 0xFF
- beq _080E80EE
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E80D0
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E80F4
-_080E80EE:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080E80F8
-_080E80F4:
- movs r0, 0
- b _080E8104
-_080E80F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E809E
- movs r0, 0x1
-_080E8104:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8094
-
- thumb_func_start sub_80E810C
-sub_80E810C: @ 80E810C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r6, _080E8198
- ldr r0, _080E819C
- adds r0, r6
- mov r9, r0
- movs r1, 0
- mov r8, r1
- adds r7, r6, 0
- adds r7, 0x80
- ldr r2, _080E81A0
- mov r10, r2
-_080E812C:
- mov r0, r9
- ldrh r1, [r0, 0xC]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- mov r1, r8
- strb r1, [r0]
- adds r0, 0x1
- mov r2, r9
- ldrh r1, [r2, 0xE]
- movs r2, 0
- bl sub_80EB218
- lsls r4, r5, 2
- mov r1, r10
- adds r0, r4, r1
- ldrh r1, [r0]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- mov r2, r8
- strb r2, [r0]
- adds r0, 0x1
- ldr r1, _080E81A4
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- adds r0, r6, 0
- adds r3, r7, 0
- adds r4, r5, 0x1
-_080E8170:
- ldrb r2, [r0]
- cmp r2, 0xFF
- beq _080E818A
- ldrb r1, [r3]
- cmp r1, 0xFF
- beq _080E8184
- adds r3, 0x1
- adds r0, 0x1
- cmp r2, r1
- beq _080E8170
-_080E8184:
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E81A8
-_080E818A:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E81A8
- lsls r0, r4, 24
- lsrs r0, 24
- b _080E81B2
- .align 2, 0
-_080E8198: .4byte 0x0200ae6e
-_080E819C: .4byte 0xffff6192
-_080E81A0: .4byte gBerryMasterWifePhrases
-_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
-_080E81A8:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080E812C
- movs r0, 0
-_080E81B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E810C
-
- thumb_func_start sub_80E81C0
-sub_80E81C0: @ 80E81C0
- push {r4,lr}
- ldr r0, _080E81EC
- ldr r4, _080E81F0
- ldr r2, _080E81F4
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r2, 0
- bl sub_80EB218
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- ldr r1, _080E81F8
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte 0x02001000
-_080E81F4: .4byte 0x00009c7c
-_080E81F8: .4byte 0x00009c7e
- thumb_func_end sub_80E81C0
-
- thumb_func_start sub_80E81FC
-sub_80E81FC: @ 80E81FC
- push {lr}
- movs r0, 0x5
- bl PlaySE
- bl sub_80E95A4
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80E81FC
-
- thumb_func_start sub_80E8218
-sub_80E8218: @ 80E8218
- push {r4,r5,lr}
- sub sp, 0x40
- mov r1, sp
- ldr r0, _080E8260
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldr r0, [r0]
- str r0, [r1]
- add r4, sp, 0x28
- adds r1, r4, 0
- ldr r0, _080E8264
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- bl sub_80E8268
- bl sub_80E8818
- bl sub_80E8A7C
- add sp, 0x40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8260: .4byte gSpriteSheets_Interview
-_080E8264: .4byte gSpritePalettes_Interview
- thumb_func_end sub_80E8218
-
- thumb_func_start sub_80E8268
-sub_80E8268: @ 80E8268
- push {lr}
- ldr r0, _080E82B0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E82B4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080E82B8
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x8
- movs r2, 0
- strh r0, [r1, 0x22]
- adds r0, r3, 0
- adds r0, 0x88
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r0, r3, 0
- adds r0, 0x98
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E82B0: .4byte gSpriteTemplate_83DBBFC
-_080E82B4: .4byte gSprites
-_080E82B8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8268
-
- thumb_func_start sub_80E82BC
-sub_80E82BC: @ 80E82BC
- push {r4-r7,lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E838C
- ldr r0, _080E8334
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x87
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _080E836C
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0
- movs r1, 0
- cmp r7, r4
- bcs _080E8316
- lsls r6, r5, 1
- adds r2, 0x8C
-_080E8300:
- adds r0, r1, r6
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bcc _080E8300
-_080E8316:
- mov r0, r12
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E8338
- movs r0, 0x60
- strh r0, [r3, 0x22]
- lsls r0, r4, 3
- subs r0, r4
- adds r0, 0x3
- b _080E8356
- .align 2, 0
-_080E8334: .4byte gUnknown_083DB694
-_080E8338:
- adds r1, r2, 0
- adds r1, 0x8A
- lsls r0, r5, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 3
- adds r0, 0x8
- strh r0, [r3, 0x22]
- adds r0, r2, 0
- adds r0, 0x88
- ldrh r0, [r0]
- adds r0, r7
- movs r1, 0xB
- muls r1, r4
- adds r0, r1
-_080E8356:
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3, 0x20]
- movs r1, 0
- ldr r0, _080E8368
- strh r0, [r3, 0x24]
- strh r1, [r3, 0x2E]
- b _080E838C
- .align 2, 0
-_080E8368: .4byte 0x0000fffa
-_080E836C:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E838C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x24]
- adds r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E838C
- ldr r0, _080E8394
- strh r0, [r3, 0x24]
-_080E838C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8394: .4byte 0x0000fffa
- thumb_func_end sub_80E82BC
-
- thumb_func_start sub_80E8398
-sub_80E8398: @ 80E8398
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- beq _080E83D4
- cmp r3, 0x1
- bgt _080E83AC
- cmp r3, 0
- beq _080E83B2
- b _080E8416
-_080E83AC:
- cmp r3, 0x2
- beq _080E83F8
- b _080E8416
-_080E83B2:
- ldr r0, _080E83D0
- ldr r0, [r0]
- adds r0, 0x98
- ldr r1, [r0]
- strh r3, [r1, 0x30]
- ldr r1, [r0]
- strh r3, [r1, 0x24]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83D0: .4byte gUnknown_083DB694
-_080E83D4:
- ldr r0, _080E83F4
- ldr r1, [r0]
- adds r1, 0x98
- ldr r0, [r1]
- movs r2, 0
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r2, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83F4: .4byte gUnknown_083DB694
-_080E83F8:
- ldr r0, _080E841C
- ldr r1, [r0]
- adds r1, 0x98
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x1
- strh r0, [r2, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_080E8414:
- strb r0, [r1]
-_080E8416:
- pop {r0}
- bx r0
- .align 2, 0
-_080E841C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8398
-
- thumb_func_start sub_80E8420
-sub_80E8420: @ 80E8420
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E84E0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E84E4
- ldr r7, [r1]
- adds r5, r7, 0
- adds r5, 0x9C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _080E84E8
- adds r1, r4
- str r1, [r5]
- ldr r0, _080E84EC
- str r0, [sp, 0x8]
- ldr r0, _080E84F0
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r6, r7, 0
- adds r6, 0xA0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r6]
- ldr r0, _080E84F4
- str r0, [sp, 0x8]
- ldr r0, _080E84F8
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r2, r7, 0
- adds r2, 0xA4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2]
- ldr r0, [r5]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r6]
- strh r1, [r0, 0x2E]
- ldr r0, [r2]
- strh r1, [r0, 0x2E]
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 20
- ldr r2, _080E84FC
- adds r0, r2
- strh r0, [r1, 0x34]
- bl sub_80E8534
- adds r1, r7, 0
- adds r1, 0x96
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080E8500
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E84E0: .4byte gSpriteTemplate_83DBCAC
-_080E84E4: .4byte gUnknown_083DB694
-_080E84E8: .4byte gSprites
-_080E84EC: .4byte gSpriteAnimTable_83DBC8C
-_080E84F0: .4byte sub_80E872C
-_080E84F4: .4byte gSpriteAnimTable_83DBC9C
-_080E84F8: .4byte sub_80E8760
-_080E84FC: .4byte 0x00000101
-_080E8500: .4byte REG_BLDCNT
- thumb_func_end sub_80E8420
-
- thumb_func_start sub_80E8504
-sub_80E8504: @ 80E8504
- push {r4,lr}
- ldr r0, _080E8530
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x9C
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA4
- ldr r0, [r0]
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8530: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8504
-
- thumb_func_start sub_80E8534
-sub_80E8534: @ 80E8534
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _080E8554
- ldr r3, [r1]
- ldr r2, _080E8558
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r1, 0
- cmp r0, 0
- beq _080E8560
- ldr r1, _080E855C
- movs r0, 0x1
- b _080E8598
- .align 2, 0
-_080E8554: .4byte gUnknown_083DB694
-_080E8558: .4byte 0x000001b7
-_080E855C: .4byte gUnknown_020388AC
-_080E8560:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r2, [r0]
- cmp r2, 0
- bne _080E8578
- ldr r0, _080E8574
- strb r2, [r0]
- adds r7, r0, 0
- b _080E859C
- .align 2, 0
-_080E8574: .4byte gUnknown_020388AC
-_080E8578:
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _080E8594
- ldr r1, _080E8590
- movs r0, 0x2
- b _080E8598
- .align 2, 0
-_080E8590: .4byte gUnknown_020388AC
-_080E8594:
- ldr r1, _080E85F4
- movs r0, 0x3
-_080E8598:
- strb r0, [r1]
- adds r7, r1, 0
-_080E859C:
- ldr r2, [r4]
- adds r4, r2, 0
- adds r4, 0x9C
- ldr r1, [r4]
- ldrb r0, [r7]
- movs r3, 0
- mov r8, r3
- strh r0, [r1, 0x32]
- adds r5, r2, 0
- adds r5, 0xA0
- ldr r1, [r5]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- adds r6, r2, 0
- adds r6, 0xA4
- ldr r1, [r6]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r5]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r6]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0x8
- strh r1, [r0, 0x38]
- ldr r0, [r4]
- strh r1, [r0, 0x3A]
- ldr r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E85F4: .4byte gUnknown_020388AC
- thumb_func_end sub_80E8534
-
- thumb_func_start sub_80E85F8
-sub_80E85F8: @ 80E85F8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E8624
- ldr r1, _080E8620
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r0, 0x8
- strh r0, [r5, 0x38]
- b _080E863A
- .align 2, 0
-_080E8620: .4byte gSineTable
-_080E8624:
- ldr r1, _080E8688
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 21
- movs r0, 0x8
- subs r0, r1
- strh r0, [r5, 0x3A]
-_080E863A:
- ldrh r0, [r5, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldr r2, _080E868C
- ldrh r0, [r5, 0x3A]
- lsls r0, 8
- ldrh r1, [r5, 0x38]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080E8690
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E871A
- bl sub_80E8534
- adds r1, r6, 0
- adds r1, 0x9C
- ldr r0, [r1]
- movs r2, 0x8
- strh r2, [r0, 0x38]
- ldr r0, [r1]
- strh r2, [r0, 0x3A]
- ldr r1, [r1]
- movs r0, 0
- strh r0, [r1, 0x30]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080E86C4
- cmp r0, 0x1
- bgt _080E8694
- cmp r0, 0
- beq _080E869E
- b _080E871A
- .align 2, 0
-_080E8688: .4byte gSineTable
-_080E868C: .4byte REG_BLDALPHA
-_080E8690: .4byte gUnknown_083DB694
-_080E8694:
- cmp r0, 0x2
- beq _080E86D6
- cmp r0, 0x3
- beq _080E86DE
- b _080E871A
-_080E869E:
- ldr r2, _080E86C0
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x20
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0xC
- b _080E870A
- .align 2, 0
-_080E86C0: .4byte 0x000001a9
-_080E86C4:
- movs r0, 0xD8
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _080E8714
-_080E86D6:
- movs r0, 0x97
- strh r0, [r5, 0x20]
- movs r0, 0x60
- b _080E8718
-_080E86DE:
- ldr r4, _080E8720
- ldr r2, _080E8724
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xD4
- lsls r0, 1
- adds r3, r6, r0
- movs r2, 0
- ldrsb r2, [r3, r2]
- lsls r0, r2, 3
- subs r0, r2
- adds r1, r0
- adds r1, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 3
- adds r0, 0x1F
- strh r0, [r5, 0x20]
- movs r0, 0
- ldrsb r0, [r3, r0]
- ldr r2, _080E8728
-_080E870A:
- adds r1, r6, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
-_080E8714:
- lsls r0, 4
- adds r0, 0x60
-_080E8718:
- strh r0, [r5, 0x22]
-_080E871A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8720: .4byte gUnknown_083DBCC4
-_080E8724: .4byte 0x000001a9
-_080E8728: .4byte 0x000001b5
- thumb_func_end sub_80E85F8
-
- thumb_func_start sub_80E872C
-sub_80E872C: @ 80E872C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E875C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8756
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E8756
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E8756:
- pop {r0}
- bx r0
- .align 2, 0
-_080E875C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E872C
-
- thumb_func_start sub_80E8760
-sub_80E8760: @ 80E8760
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E8780
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E879E
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080E8784
- cmp r0, 0x2
- beq _080E878E
- b _080E879E
- .align 2, 0
-_080E8780: .4byte gUnknown_083DB694
-_080E8784:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x40
- b _080E8796
-_080E878E:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x15
-_080E8796:
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E879E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8760
-
- thumb_func_start sub_80E87A4
-sub_80E87A4: @ 80E87A4
- push {r4,lr}
- lsls r0, 24
- ldr r1, _080E87C8
- ldr r1, [r1]
- adds r2, r1, 0
- adds r2, 0xA8
- ldr r3, [r2]
- movs r4, 0
- cmp r0, 0
- bne _080E87BA
- movs r4, 0x1
-_080E87BA:
- movs r1, 0
- strh r4, [r3, 0x30]
- ldr r0, [r2]
- strh r1, [r0, 0x24]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E87C8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E87A4
-
- thumb_func_start sub_80E87CC
-sub_80E87CC: @ 80E87CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E8810
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0xA8
- ldr r0, [r0]
- movs r3, 0
- cmp r4, 0
- bne _080E87E6
- movs r3, 0x1
-_080E87E6:
- adds r2, r0, 0
- adds r2, 0x3E
- lsls r3, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- adds r0, r4, 0
- bl sub_80E87A4
- cmp r4, 0
- beq _080E880A
- ldr r0, _080E8814
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_080E880A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8810: .4byte gUnknown_083DB694
-_080E8814: .4byte 0x000001b9
- thumb_func_end sub_80E87CC
-
- thumb_func_start sub_80E8818
-sub_80E8818: @ 80E8818
- push {lr}
- ldr r0, _080E8850
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E8854
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- ldr r0, _080E8858
- ldr r0, [r0]
- adds r0, 0xA8
- str r1, [r0]
- ldr r0, _080E885C
- str r0, [r1, 0x1C]
- movs r0, 0
- bl sub_80E87CC
- pop {r0}
- bx r0
- .align 2, 0
-_080E8850: .4byte gSpriteTemplate_83DBBFC
-_080E8854: .4byte gSprites
-_080E8858: .4byte gUnknown_083DB694
-_080E885C: .4byte sub_80E8860
- thumb_func_end sub_80E8818
-
- thumb_func_start sub_80E8860
-sub_80E8860: @ 80E8860
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r4, [r2, r0]
- cmp r4, 0
- bne _080E88E4
- ldr r0, _080E88B0
- ldr r3, [r0]
- ldr r1, _080E88B4
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080E88C4
- ldr r5, _080E88B8
- adds r0, r3, r5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x2C
- strh r0, [r2, 0x20]
- ldr r1, _080E88BC
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r5, 0x84
- adds r1, r3, r5
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
- lsls r0, 4
- adds r0, 0x60
- strh r0, [r2, 0x22]
- ldr r0, _080E88C0
- strh r0, [r2, 0x24]
- strh r4, [r2, 0x2E]
- b _080E88E4
- .align 2, 0
-_080E88B0: .4byte gUnknown_083DB694
-_080E88B4: .4byte 0x000001b9
-_080E88B8: .4byte 0x000099a5
-_080E88BC: .4byte 0x000099a4
-_080E88C0: .4byte 0x0000fffa
-_080E88C4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E88E4
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E88E4
- ldr r0, _080E88EC
- strh r0, [r2, 0x24]
-_080E88E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88EC: .4byte 0x0000fffa
- thumb_func_end sub_80E8860
-
- thumb_func_start sub_80E88F0
-sub_80E88F0: @ 80E88F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r0, _080E8950
- mov r8, r0
- ldr r0, [r0]
- movs r6, 0x4
- movs r5, 0
- movs r1, 0xB4
- adds r1, r0
- mov r12, r1
- adds r7, r0, 0
- adds r7, 0xAC
-_080E890C:
- lsls r2, r4, 2
- adds r3, r7, r2
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r3]
- strh r5, [r0, 0x30]
- add r2, r12
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r2]
- strh r5, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E890C
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080E8954
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8950: .4byte gUnknown_083DB694
-_080E8954: .4byte 0x00009c70
- thumb_func_end sub_80E88F0
-
- thumb_func_start sub_80E8958
-sub_80E8958: @ 80E8958
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _080E89B4
- movs r0, 0x64
- mov r9, r0
- ldr r0, _080E8998
- ldr r2, [r0]
- ldr r3, _080E899C
- adds r1, r2, r3
- ldr r3, _080E89A0
- adds r0, r2, r3
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E89A8
- movs r1, 0xDB
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E89A4
- adds r1, r2, r3
- strb r0, [r1]
- b _080E8A00
- .align 2, 0
-_080E8998: .4byte gUnknown_083DB694
-_080E899C: .4byte 0x00009c6c
-_080E89A0: .4byte 0x000001b5
-_080E89A4: .4byte 0x00009c71
-_080E89A8:
- ldr r1, _080E89B0
- adds r0, r2, r1
- strb r7, [r0]
- b _080E8A00
- .align 2, 0
-_080E89B0: .4byte 0x00009c71
-_080E89B4:
- movs r3, 0x78
- mov r9, r3
- ldr r0, _080E8A64
- ldr r2, [r0]
- ldr r0, _080E8A68
- adds r1, r2, r0
- ldr r3, _080E8A6C
- adds r0, r2, r3
- str r0, [r1]
- ldr r1, _080E8A70
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E8A74
- adds r1, r2, r3
- strb r0, [r1]
- movs r4, 0
- adds r5, r2, 0
- adds r5, 0xB4
- movs r0, 0x5
- negs r0, r0
- mov r12, r0
- movs r6, 0x1
-_080E89E2:
- lsls r3, r4, 2
- adds r3, r5, r3
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- strh r6, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E89E2
-_080E8A00:
- ldr r0, _080E8A64
- ldr r2, [r0]
- ldr r3, _080E8A74
- adds r1, r2, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E8A14
- movs r0, 0
- strb r0, [r1]
-_080E8A14:
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0xAC
- movs r0, 0x5
- negs r0, r0
- mov r8, r0
-_080E8A20:
- lsls r2, r4, 2
- adds r2, r6, r2
- ldr r0, [r2]
- mov r1, r9
- strh r1, [r0, 0x20]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r2]
- movs r5, 0x1
- strh r5, [r0, 0x30]
- ldr r0, [r2]
- adds r1, r7, 0
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E8A20
- ldr r0, _080E8A64
- ldr r0, [r0]
- ldr r1, _080E8A78
- adds r0, r1
- strb r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A64: .4byte gUnknown_083DB694
-_080E8A68: .4byte 0x00009c6c
-_080E8A6C: .4byte 0x00009a29
-_080E8A70: .4byte 0x00009a28
-_080E8A74: .4byte 0x00009c71
-_080E8A78: .4byte 0x00009c70
- thumb_func_end sub_80E8958
-
- thumb_func_start sub_80E8A7C
-sub_80E8A7C: @ 80E8A7C
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E8B68
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r5, 0
-_080E8A8E:
- lsls r2, r5, 3
- adds r2, r5
- lsls r2, 19
- movs r0, 0xA8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- mov r0, sp
- movs r1, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C
- ldr r2, [r0]
- lsls r0, r5, 2
- adds r2, 0xAC
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- adds r3, 0x3F
- movs r0, 0x1
- adds r2, r5, 0
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3]
- movs r4, 0x3
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8A8E
- mov r0, sp
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _080E8B74
- str r0, [sp, 0x8]
- movs r5, 0
- movs r7, 0x3F
- movs r6, 0x40
-_080E8AF6:
- lsls r4, r5, 2
- adds r1, r4, r5
- lsls r1, 19
- movs r0, 0x8E
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C
- ldr r2, [r0]
- adds r2, 0xB4
- adds r2, r4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x1]
- ldr r3, [r2]
- ldrb r1, [r3, 0x3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x3]
- ldr r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8AF6
- movs r0, 0
- bl sub_80E8958
- bl sub_80E88F0
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B68: .4byte gSpriteTemplate_83DBD18
-_080E8B6C: .4byte gUnknown_083DB694
-_080E8B70: .4byte gSprites
-_080E8B74: .4byte gUnknown_083DBD10
- thumb_func_end sub_80E8A7C
-
- thumb_func_start sub_80E8B78
-sub_80E8B78: @ 80E8B78
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080E8BB0
- ldr r1, [r0]
- ldr r2, _080E8BB4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _080E8BBC
- movs r4, 0
- ldr r2, _080E8BB8
- adds r0, r1, r2
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E8BD6
- b _080E8BD4
- .align 2, 0
-_080E8BB0: .4byte gUnknown_083DB694
-_080E8BB4: .4byte 0x00009c70
-_080E8BB8: .4byte 0x00009c6c
-_080E8BBC:
- movs r4, 0
- ldr r2, _080E8BF0
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x5
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E8BD6
-_080E8BD4:
- movs r4, 0x1
-_080E8BD6:
- adds r2, r3, 0
- adds r2, 0x3E
- lsls r3, r4, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E8BE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8BF0: .4byte 0x00009c6c
- thumb_func_end sub_80E8B78
-
- thumb_func_start sub_80E8BF4
-sub_80E8BF4: @ 80E8BF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, _080E8C28
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- ldr r0, _080E8C2C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- cmp r2, 0x2
- beq _080E8C20
- cmp r2, 0x5
- beq _080E8C30
-_080E8C20:
- movs r4, 0x40
- movs r5, 0x28
- b _080E8C34
- .align 2, 0
-_080E8C28: .4byte gUnknown_083DBD30
-_080E8C2C: .4byte gUnknown_083DBD38
-_080E8C30:
- movs r4, 0x24
- movs r5, 0x30
-_080E8C34:
- cmp r3, 0
- beq _080E8C3C
- cmp r3, 0x1
- beq _080E8C40
-_080E8C3C:
- movs r0, 0x43
- b _080E8C42
-_080E8C40:
- movs r0, 0x44
-_080E8C42:
- mov r8, r0
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- add r0, sp, 0xC
- bl LoadSpritePalette
- ldr r0, _080E8CDC
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateSprite
- ldr r0, _080E8CE0
- ldrb r0, [r0, 0x8]
- movs r1, 0x69
- cmp r0, 0
- bne _080E8C68
- movs r1, 0x64
-_080E8C68:
- ldr r7, _080E8CE4
- adds r2, r4, 0
- subs r2, 0xC
- movs r6, 0
- str r6, [sp]
- adds r0, r1, 0
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8C9E
- ldr r1, _080E8CE8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x3
- bl StartSpriteAnim
-_080E8C9E:
- adds r2, r4, 0
- adds r2, 0xC
- str r6, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8CD0
- ldr r1, _080E8CE8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8CD0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8CDC: .4byte gSpriteTemplate_83DBD48
-_080E8CE0: .4byte gSaveBlock2
-_080E8CE4: .4byte SpriteCallbackDummy
-_080E8CE8: .4byte gSprites
- thumb_func_end sub_80E8BF4
-
- thumb_func_start sub_80E8CEC
-sub_80E8CEC: @ 80E8CEC
- push {lr}
- ldr r0, _080E8D24
- bl LoadCompressedObjectPic
- ldr r0, _080E8D28
- bl LoadSpritePalette
- ldr r0, _080E8D2C
- movs r1, 0xE0
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080E8D3C
- ldr r0, _080E8D30
- ldr r2, [r0]
- ldr r0, _080E8D34
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8D38
- adds r0, r1
- str r0, [r2]
- b _080E8D48
- .align 2, 0
-_080E8D24: .4byte gUnknown_083DBD60
-_080E8D28: .4byte gUnknown_083DBD68
-_080E8D2C: .4byte gSpriteTemplate_83DBDE4
-_080E8D30: .4byte gUnknown_083DB694
-_080E8D34: .4byte 0x00009c74
-_080E8D38: .4byte gSprites
-_080E8D3C:
- ldr r0, _080E8D4C
- ldr r0, [r0]
- ldr r1, _080E8D50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_080E8D48:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8D4C: .4byte gUnknown_083DB694
-_080E8D50: .4byte 0x00009c74
- thumb_func_end sub_80E8CEC
-
- thumb_func_start sub_80E8D54
-sub_80E8D54: @ 80E8D54
- push {lr}
- ldr r0, _080E8D78
- ldr r2, [r0]
- ldr r1, _080E8D7C
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8D88
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8D80
- adds r0, r1, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _080E8D88
- .align 2, 0
-_080E8D78: .4byte gUnknown_083DB694
-_080E8D7C: .4byte 0x00009c74
-_080E8D80:
- adds r0, r1, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8D88:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D54
-
- thumb_func_start sub_80E8D8C
-sub_80E8D8C: @ 80E8D8C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080E8DB8
- ldr r2, [r0]
- ldr r1, _080E8DBC
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8DD2
- cmp r3, 0
- beq _080E8DCA
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8DC0
- adds r0, r1, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080E8DD2
- .align 2, 0
-_080E8DB8: .4byte gUnknown_083DB694
-_080E8DBC: .4byte 0x00009c74
-_080E8DC0:
- adds r0, r1, 0
- movs r1, 0x4
- bl StartSpriteAnim
- b _080E8DD2
-_080E8DCA:
- adds r0, r1, 0
- movs r1, 0x5
- bl StartSpriteAnim
-_080E8DD2:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D8C
-
- thumb_func_start sub_80E8DD8
-sub_80E8DD8: @ 80E8DD8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- ldr r0, _080E8F2C
- movs r6, 0
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- subs r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- ldr r1, _080E8F30
- movs r2, 0x8B
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E8F34
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E8F38
- ldr r1, _080E8F3C
- ldr r1, [r1]
- mov r8, r1
- movs r4, 0xE4
- lsls r4, 1
- add r4, r8
- movs r5, 0xA0
- lsls r5, 2
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F40
- movs r1, 0xD9
- lsls r1, 3
- add r1, r8
- bl LZ77UnCompWram
- ldr r0, _080E8F44
- ldr r1, _080E8F48
- bl LZ77UnCompVram
- ldr r1, _080E8F4C
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F50
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r1, _080E8F54
- ldr r2, _080E8F58
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F5C
- movs r5, 0x80
- lsls r5, 4
- mov r0, sp
- strh r6, [r0]
- ldr r4, _080E8F60
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r0, r5, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F64
- ldr r2, _080E8F68
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _080E8F6C
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F70
- bl LZ77UnCompVram
- ldr r0, _080E8F74
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F78
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080E8F7C
- ldr r2, _080E8F80
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F84
- movs r0, 0
- mov r9, r0
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r5, 2
- movs r0, 0x85
- lsls r0, 24
- orrs r5, r0
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F88
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F8C
- adds r1, r0, 0
- adds r1, 0x7E
- ldr r3, _080E8F90
- strh r3, [r1]
- subs r1, 0x1C
- ldr r2, _080E8F94
- strh r2, [r1]
- adds r0, 0x70
- ldr r1, _080E8F98
- strh r1, [r0]
- ldr r0, _080E8F9C
- adds r4, r0, 0
- adds r4, 0x7E
- strh r3, [r4]
- adds r3, r0, 0
- adds r3, 0x62
- strh r2, [r3]
- adds r0, 0x70
- strh r1, [r0]
- movs r1, 0xBC
- add r8, r1
- mov r2, r8
- strb r6, [r2]
- bl sub_80E8FA4
- bl sub_80E948C
- movs r0, 0xA
- bl sub_80E9198
- movs r0, 0
- bl sub_80E91D4
- bl sub_80E95A4
- ldr r0, _080E8FA0
- mov r1, r9
- strh r1, [r0]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8F2C: .4byte REG_BG0HOFS
-_080E8F30: .4byte REG_BG0CNT
-_080E8F34: .4byte 0x00000d09
-_080E8F38: .4byte gUnknown_08E945D0
-_080E8F3C: .4byte gUnknown_083DB694
-_080E8F40: .4byte gUnknown_08E953D0
-_080E8F44: .4byte gMenuWordGroupFrame_Gfx
-_080E8F48: .4byte 0x06008000
-_080E8F4C: .4byte 0x06006800
-_080E8F50: .4byte gMenuWordGroupFrame1_Pal
-_080E8F54: .4byte REG_BG2CNT
-_080E8F58: .4byte 0x00000e02
-_080E8F5C: .4byte 0x06007000
-_080E8F60: .4byte 0x040000d4
-_080E8F64: .4byte gUnknown_08E9AB00
-_080E8F68: .4byte 0x06006000
-_080E8F6C: .4byte 0x80000020
-_080E8F70: .4byte gUnknown_08E9AB60
-_080E8F74: .4byte gUnknown_08E9AB40
-_080E8F78: .4byte gUnknown_083DBDFC
-_080E8F7C: .4byte REG_BG3CNT
-_080E8F80: .4byte 0x00000f0f
-_080E8F84: .4byte 0x06007800
-_080E8F88: .4byte gUnknown_083DBE40
-_080E8F8C: .4byte gPlttBufferUnfaded
-_080E8F90: .4byte 0x00007fff
-_080E8F94: .4byte 0x00006f5b
-_080E8F98: .4byte 0x0000739c
-_080E8F9C: .4byte gPlttBufferFaded
-_080E8FA0: .4byte REG_BLDCNT
- thumb_func_end sub_80E8DD8
-
- thumb_func_start sub_80E8FA4
-sub_80E8FA4: @ 80E8FA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x24]
- add r2, sp, 0xC
- mov r12, r2
-_080E8FBE:
- mov r3, r9
- lsls r1, r3, 1
- ldr r4, _080E90F4
- adds r0, r1, r4
- ldrh r2, [r0]
- movs r0, 0x1F
- ands r0, r2
- lsls r0, 8
- str r0, [sp]
- ldr r5, _080E90F8
- adds r1, r5
- ldrh r1, [r1]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0xC]
- lsls r2, 16
- lsrs r0, r2, 21
- movs r3, 0x1F
- ands r0, r3
- lsls r0, 8
- str r0, [sp, 0x4]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r3
- lsls r0, 8
- mov r4, r12
- str r0, [r4, 0x4]
- lsrs r2, 26
- ands r2, r3
- lsls r2, 8
- str r2, [sp, 0x8]
- lsrs r1, 26
- ands r1, r3
- lsls r1, 8
- str r1, [r4, 0x8]
- movs r3, 0
- mov r5, r9
- lsls r5, 3
- mov r10, r5
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x28]
- ldr r4, [sp, 0x24]
-_080E9016:
- lsls r0, r3, 2
- adds r2, r4, r0
- mov r5, r12
- adds r1, r5, r0
- add r0, sp
- ldr r1, [r1]
- ldr r0, [r0]
- subs r0, r1, r0
- cmp r0, 0
- bge _080E902C
- adds r0, 0x7
-_080E902C:
- asrs r0, 3
- str r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9016
- movs r4, 0
- ldr r0, _080E90FC
- ldr r1, [r0]
- mov r0, r10
- add r0, r9
- lsls r0, 1
- mov r8, r0
- movs r5, 0x1F
- ldr r6, [sp, 0x24]
- ldr r0, _080E9100
- adds r7, r1, r0
-_080E9050:
- lsls r2, r4, 1
- add r2, r8
- adds r2, r7, r2
- ldr r1, [sp, 0x8]
- asrs r1, 8
- ands r1, r5
- lsls r1, 10
- ldr r0, [sp, 0x4]
- asrs r0, 8
- ands r0, r5
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp]
- asrs r0, 8
- ands r0, r5
- orrs r1, r0
- strh r1, [r2]
- movs r3, 0
- adds r4, 0x1
-_080E9076:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- adds r0, r6, r0
- ldr r1, [r2]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9076
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080E9050
- ldr r2, _080E90FC
- ldr r3, [r2]
- mov r0, r10
- add r0, r9
- adds r0, r4
- lsls r0, 1
- ldr r4, _080E9100
- adds r2, r3, r4
- adds r2, r0
- mov r5, r12
- ldr r1, [r5, 0x8]
- asrs r1, 8
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 10
- ldr r0, [r5, 0x4]
- asrs r0, 8
- movs r4, 0x1F
- ands r0, r4
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp, 0xC]
- asrs r0, 8
- ands r0, r4
- orrs r1, r0
- strh r1, [r2]
- ldr r5, [sp, 0x28]
- lsls r0, r5, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x2
- bhi _080E90DA
- b _080E8FBE
-_080E90DA:
- ldr r0, _080E9104
- adds r1, r3, r0
- movs r0, 0
- strb r0, [r1]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
-_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
-_080E90FC: .4byte gUnknown_083DB694
-_080E9100: .4byte 0x00009c34
-_080E9104: .4byte 0x00009c32
- thumb_func_end sub_80E8FA4
-
- thumb_func_start sub_80E9108
-sub_80E9108: @ 80E9108
- push {r4-r7,lr}
- lsls r0, 24
- ldr r1, _080E9164
- ldr r2, [r1]
- ldr r3, _080E9168
- adds r1, r2, r3
- lsrs r0, 24
- ldrb r3, [r1]
- adds r0, r3
- strb r0, [r1]
- movs r4, 0
- ldr r0, _080E916C
- mov r12, r0
- adds r6, r1, 0
- ldr r3, _080E9170
- adds r5, r2, r3
- ldr r7, _080E9174
-_080E912A:
- adds r2, r4, 0
- adds r2, 0x51
- lsls r2, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r0, [r6]
- lsls r0, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r3]
- adds r2, r7
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080E912A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9164: .4byte gUnknown_083DB694
-_080E9168: .4byte 0x00009c32
-_080E916C: .4byte gPlttBufferUnfaded
-_080E9170: .4byte 0x00009c34
-_080E9174: .4byte gPlttBufferFaded
- thumb_func_end sub_80E9108
-
- thumb_func_start sub_80E9178
-sub_80E9178: @ 80E9178
- push {lr}
- ldr r0, _080E9190
- ldr r0, [r0]
- ldr r1, _080E9194
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- bl sub_80E9108
- pop {r0}
- bx r0
- .align 2, 0
-_080E9190: .4byte gUnknown_083DB694
-_080E9194: .4byte 0x00009c32
- thumb_func_end sub_80E9178
-
- thumb_func_start sub_80E9198
-sub_80E9198: @ 80E9198
- ldr r1, _080E91A0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080E91A0: .4byte gUnknown_03000740
- thumb_func_end sub_80E9198
-
- thumb_func_start sub_80E91A4
-sub_80E91A4: @ 80E91A4
- ldr r0, _080E91AC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080E91AC: .4byte gUnknown_03000740
- thumb_func_end sub_80E91A4
-
- thumb_func_start sub_80E91B0
-sub_80E91B0: @ 80E91B0
- push {lr}
- sub sp, 0x8
- lsls r2, 24
- lsls r1, 27
- lsrs r1, 24
- lsrs r2, 21
- lsls r3, 27
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- movs r3, 0xB0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80E91B0
-
- thumb_func_start sub_80E91D4
-sub_80E91D4: @ 80E91D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E91FC
- bl BasicInitMenuWindow
- cmp r4, 0xA
- bne _080E9200
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0xA
- bl sub_80E9198
- b _080E935C
- .align 2, 0
-_080E91FC: .4byte gWindowConfig_81E6DA8
-_080E9200:
- bl sub_80E91A4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _080E9218
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080E9218:
- adds r0, r4, 0
- bl sub_80E9198
- cmp r4, 0x9
- bls _080E9224
- b _080E935C
-_080E9224:
- lsls r0, r4, 2
- ldr r1, _080E9230
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9230: .4byte _080E9234
- .align 2, 0
-_080E9234:
- .4byte _080E925C
- .4byte _080E9284
- .4byte _080E92AC
- .4byte _080E92C4
- .4byte _080E92F0
- .4byte _080E9308
- .4byte _080E9310
- .4byte _080E9318
- .4byte _080E933C
- .4byte _080E9350
-_080E925C:
- ldr r0, _080E9278
- ldr r4, [r0]
- ldr r1, _080E927C
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9280
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E9278: .4byte gUnknown_083DB694
-_080E927C: .4byte 0x00009c80
-_080E9280: .4byte 0x00009cc9
-_080E9284:
- ldr r0, _080E92A0
- ldr r4, [r0]
- ldr r1, _080E92A4
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92A8
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E92A0: .4byte gUnknown_083DB694
-_080E92A4: .4byte 0x00009d12
-_080E92A8: .4byte 0x00009d5b
-_080E92AC:
- ldr r0, _080E92BC
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92C0
- b _080E9326
- .align 2, 0
-_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
-_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
-_080E92C4:
- ldr r0, _080E92D8
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- beq _080E92E0
- cmp r0, 0x9
- bne _080E92E8
- ldr r0, _080E92DC
- b _080E933E
- .align 2, 0
-_080E92D8: .4byte gUnknown_083DB694
-_080E92DC: .4byte gOtherText_QuitGivingInfo
-_080E92E0:
- ldr r0, _080E92E4
- b _080E933E
- .align 2, 0
-_080E92E4: .4byte gOtherText_StopGivingMail
-_080E92E8:
- ldr r0, _080E92EC
- b _080E933E
- .align 2, 0
-_080E92EC: .4byte gOtherText_QuitEditing
-_080E92F0:
- ldr r0, _080E9300
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9304
- b _080E9326
- .align 2, 0
-_080E9300: .4byte gOtherText_EditedTextNoSavePage1
-_080E9304: .4byte gOtherText_EditedTextNoSavePage2
-_080E9308:
- ldr r0, _080E930C
- b _080E933E
- .align 2, 0
-_080E930C: .4byte gOtherText_EnterAPhraseOrWord
-_080E9310:
- ldr r0, _080E9314
- b _080E933E
- .align 2, 0
-_080E9314: .4byte gOtherText_TextNoDelete
-_080E9318:
- ldr r0, _080E9334
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9338
-_080E9326:
- movs r1, 0x4
- movs r2, 0x11
- movs r3, 0x2
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E9334: .4byte gOtherText_OnlyOnePhrase
-_080E9338: .4byte gOtherText_OriginalSongRestored
-_080E933C:
- ldr r0, _080E934C
-_080E933E:
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E934C: .4byte gOtherText_TrendyAlready
-_080E9350:
- ldr r0, _080E9364
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
-_080E935C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9364: .4byte gOtherText_CombineTwoPhrases
- thumb_func_end sub_80E91D4
-
- thumb_func_start sub_80E9368
-sub_80E9368: @ 80E9368
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080E93F8
- lsls r0, 2
- ldr r1, _080E937C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E937C: .4byte _080E9380
- .align 2, 0
-_080E9380:
- .4byte _080E93B8
- .4byte _080E93C0
- .4byte _080E93C8
- .4byte _080E93D0
- .4byte _080E93F8
- .4byte _080E93E8
- .4byte _080E93D8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E0
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93F0
-_080E93B8:
- ldr r4, _080E93BC
- b _080E93FA
- .align 2, 0
-_080E93BC: .4byte gOtherText_Profile
-_080E93C0:
- ldr r4, _080E93C4
- b _080E93FA
- .align 2, 0
-_080E93C4: .4byte gOtherText_AtBattleStart
-_080E93C8:
- ldr r4, _080E93CC
- b _080E93FA
- .align 2, 0
-_080E93CC: .4byte gOtherText_UponWinningBattle
-_080E93D0:
- ldr r4, _080E93D4
- b _080E93FA
- .align 2, 0
-_080E93D4: .4byte gOtherText_UponLosingBattle
-_080E93D8:
- ldr r4, _080E93DC
- b _080E93FA
- .align 2, 0
-_080E93DC: .4byte gOtherText_TheBardsSong
-_080E93E0:
- ldr r4, _080E93E4
- b _080E93FA
- .align 2, 0
-_080E93E4: .4byte gOtherText_WhatsHipHappening
-_080E93E8:
- ldr r4, _080E93EC
- b _080E93FA
- .align 2, 0
-_080E93EC: .4byte gOtherText_Interview
-_080E93F0:
- ldr r4, _080E93F4
- b _080E93FA
- .align 2, 0
-_080E93F4: .4byte gOtherText_GoodSaying
-_080E93F8:
- movs r4, 0
-_080E93FA:
- ldr r0, _080E943C
- bl BasicInitMenuWindow
- ldr r0, _080E9440
- ldr r2, [r0]
- ldr r0, _080E9444
- adds r5, r2, r0
- movs r3, 0xFC
- strb r3, [r5]
- adds r0, 0x1
- adds r1, r2, r0
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080E9448
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- cmp r4, 0
- beq _080E9450
- ldr r1, _080E944C
- adds r0, r2, r1
- adds r1, r4, 0
- movs r2, 0xF0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- b _080E9476
- .align 2, 0
-_080E943C: .4byte gWindowConfig_81E6D8C
-_080E9440: .4byte gUnknown_083DB694
-_080E9444: .4byte 0x00009f8e
-_080E9448: .4byte 0x00009f90
-_080E944C: .4byte 0x00009f91
-_080E9450:
- ldr r0, _080E9484
- adds r1, r2, r0
- strb r3, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl MenuPrint
-_080E9476:
- ldr r0, _080E9488
- bl BasicInitMenuWindow
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9484: .4byte 0x00009f91
-_080E9488: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9368
-
- thumb_func_start sub_80E948C
-sub_80E948C: @ 80E948C
- push {lr}
- sub sp, 0x10
- ldr r0, _080E94A8
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bls _080E949C
- b _080E9594
-_080E949C:
- lsls r0, 2
- ldr r1, _080E94AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E94A8: .4byte gUnknown_083DB694
-_080E94AC: .4byte _080E94B0
- .align 2, 0
-_080E94B0:
- .4byte _080E9508
- .4byte _080E9530
- .4byte _080E9554
- .4byte _080E9578
- .4byte _080E94C8
- .4byte _080E94E8
-_080E94C8:
- ldr r0, _080E94E0
- ldr r3, _080E94E4
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1A
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x6
- str r1, [sp, 0xC]
- movs r1, 0x3
- b _080E9568
- .align 2, 0
-_080E94E0: .4byte 0x06006800
-_080E94E4: .4byte gUnknown_08E94AD0
-_080E94E8:
- ldr r0, _080E9500
- ldr r3, _080E9504
- movs r1, 0
- str r1, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- movs r1, 0xD
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0xE
- b _080E951E
- .align 2, 0
-_080E9500: .4byte 0x06006800
-_080E9504: .4byte gUnknown_08E94AD0
-_080E9508:
- ldr r0, _080E9528
- ldr r3, _080E952C
- movs r1, 0
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0x2
-_080E951E:
- movs r2, 0x2
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9528: .4byte 0x06006800
-_080E952C: .4byte gUnknown_08E94AD0
-_080E9530:
- ldr r0, _080E954C
- ldr r3, _080E9550
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0xA
- str r1, [sp, 0xC]
- movs r1, 0x2
- movs r2, 0
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E954C: .4byte 0x06006800
-_080E9550: .4byte gUnknown_08E94AD0
-_080E9554:
- ldr r0, _080E9570
- ldr r3, _080E9574
- movs r2, 0xD
- str r2, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0xE
-_080E9568:
- movs r2, 0x3
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9570: .4byte 0x06006800
-_080E9574: .4byte gUnknown_08E94AD0
-_080E9578:
- ldr r0, _080E959C
- ldr r3, _080E95A0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0x3
- movs r2, 0x2
- bl sub_809D104
-_080E9594:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080E959C: .4byte 0x06006800
-_080E95A0: .4byte gUnknown_08E94AD0
- thumb_func_end sub_80E948C
-
- thumb_func_start sub_80E95A4
-sub_80E95A4: @ 80E95A4
- push {lr}
- ldr r0, _080E95C0
- bl BasicInitMenuWindow
- ldr r0, _080E95C4
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9612
- lsls r0, 2
- ldr r1, _080E95C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E95C0: .4byte gWindowConfig_81E6D8C
-_080E95C4: .4byte gUnknown_083DB694
-_080E95C8: .4byte _080E95CC
- .align 2, 0
-_080E95CC:
- .4byte _080E95F2
- .4byte _080E95F6
- .4byte _080E9600
- .4byte _080E960A
- .4byte _080E95E4
- .4byte _080E95EE
-_080E95E4:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E9620
- b _080E9612
-_080E95EE:
- movs r0, 0x2
- b _080E9602
-_080E95F2:
- movs r0, 0x3
- b _080E95F8
-_080E95F6:
- movs r0, 0
-_080E95F8:
- movs r1, 0x5
- bl sub_80E9620
- b _080E9612
-_080E9600:
- movs r0, 0x4
-_080E9602:
- movs r1, 0x11
- bl sub_80E9620
- b _080E9612
-_080E960A:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E9620
-_080E9612:
- ldr r0, _080E961C
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E961C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E95A4
-
- thumb_func_start sub_80E9620
-sub_80E9620: @ 80E9620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r1, 0
- mov r10, r1
- lsrs r7, r0, 16
- mov r9, r1
- ldr r0, _080E9644
- ldr r0, [r0]
- b _080E971A
- .align 2, 0
-_080E9644: .4byte gUnknown_083DB694
-_080E9648:
- ldr r6, [sp, 0x14]
- movs r2, 0
- mov r8, r2
- adds r0, r7, 0x2
- str r0, [sp, 0x1C]
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x18]
- b _080E96E4
-_080E965A:
- mov r2, r10
- lsls r0, r2, 1
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _080E9690
- cmp r0, r2
- bne _080E969C
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, _080E9694
- adds r1, r6, 0
- adds r2, r7, 0
- ldr r3, _080E9698
- bl sub_8095C8C
- adds r0, r6, 0
- adds r0, 0xB
- b _080E96CC
- .align 2, 0
-_080E9690: .4byte 0x0000ffff
-_080E9694: .4byte 0x06007000
-_080E9698: .4byte gUnknown_083DBE1C
-_080E969C:
- ldr r0, _080E9738
- adds r4, r5, r0
- ldrh r1, [r1]
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_80EB218
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- mov r1, r9
- lsls r0, r1, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x8C
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xB
- ldrb r1, [r1]
- adds r0, r1
-_080E96CC:
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080E96E4:
- ldr r0, _080E973C
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080E970A
- ldrb r2, [r5, 0xA]
- cmp r10, r2
- bcc _080E965A
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- ldr r0, _080E9740
- bl MenuPrint
-_080E970A:
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 16
- lsrs r7, r0, 16
- ldr r2, [sp, 0x18]
- lsls r0, r2, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
-_080E971A:
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r9, r0
- blt _080E9648
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9738: .4byte 0x00009e14
-_080E973C: .4byte gUnknown_083DB694
-_080E9740: .4byte gUnknown_083DBEA8
- thumb_func_end sub_80E9620
-
- thumb_func_start sub_80E9744
-sub_80E9744: @ 80E9744
- push {lr}
- ldr r0, _080E9760
- bl BasicInitMenuWindow
- ldr r0, _080E9764
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E97B2
- lsls r0, 2
- ldr r1, _080E9768
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9760: .4byte gWindowConfig_81E6D8C
-_080E9764: .4byte gUnknown_083DB694
-_080E9768: .4byte _080E976C
- .align 2, 0
-_080E976C:
- .4byte _080E9792
- .4byte _080E9796
- .4byte _080E97A0
- .4byte _080E97AA
- .4byte _080E9784
- .4byte _080E978E
-_080E9784:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E97C0
- b _080E97B2
-_080E978E:
- movs r0, 0x2
- b _080E97A2
-_080E9792:
- movs r0, 0x3
- b _080E9798
-_080E9796:
- movs r0, 0
-_080E9798:
- movs r1, 0x5
- bl sub_80E97C0
- b _080E97B2
-_080E97A0:
- movs r0, 0x4
-_080E97A2:
- movs r1, 0x11
- bl sub_80E97C0
- b _080E97B2
-_080E97AA:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E97C0
-_080E97B2:
- ldr r0, _080E97BC
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E97BC: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9744
-
- thumb_func_start sub_80E97C0
-sub_80E97C0: @ 80E97C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r7, 0
- movs r3, 0
- ldr r1, _080E98B8
- ldr r0, [r1]
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080E98A6
-_080E97EA:
- ldr r1, [r1]
- ldr r0, _080E98BC
- adds r2, r1, r0
- movs r6, 0
- adds r0, r1, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r4, [sp]
- lsls r4, 24
- mov r8, r4
- lsls r4, r5, 24
- mov r9, r4
- adds r5, 0x2
- mov r10, r5
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r6, r0
- bge _080E985E
- ldrb r1, [r1, 0xA]
- cmp r7, r1
- bcs _080E985E
- ldr r0, _080E98B8
- ldr r4, [r0]
- ldr r5, _080E98C0
-_080E981E:
- lsls r0, r7, 1
- adds r1, r4, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- beq _080E983E
- adds r1, r0, 0
- adds r0, r2, 0
- movs r2, 0
- bl sub_80EB218
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
-_080E983E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E985E
- ldrb r0, [r4, 0xA]
- cmp r7, r0
- bcc _080E981E
-_080E985E:
- ldr r1, _080E98B8
- ldr r4, [r1]
- adds r0, r4, 0
- adds r0, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xB
- muls r1, r0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- lsls r1, 3
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _080E98BC
- adds r0, r4, r2
- mov r3, r8
- lsrs r1, r3, 24
- mov r3, r9
- lsrs r2, r3, 24
- bl MenuPrint
- mov r1, r10
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x4]
- lsls r0, r2, 24
- lsrs r3, r0, 24
- ldr r1, _080E98B8
- adds r4, 0x84
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r3, r0
- blt _080E97EA
-_080E98A6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E98B8: .4byte gUnknown_083DB694
-_080E98BC: .4byte 0x00009e6e
-_080E98C0: .4byte 0x0000ffff
- thumb_func_end sub_80E97C0
-
- thumb_func_start sub_80E98C4
-sub_80E98C4: @ 80E98C4
- push {lr}
- ldr r0, _080E98E0
- bl BasicInitMenuWindow
- ldr r0, _080E98E4
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9936
- lsls r0, 2
- ldr r1, _080E98E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E98E0: .4byte gWindowConfig_81E6D8C
-_080E98E4: .4byte gUnknown_083DB694
-_080E98E8: .4byte _080E98EC
- .align 2, 0
-_080E98EC:
- .4byte _080E990A
- .4byte _080E9910
- .4byte _080E9916
- .4byte _080E991A
- .4byte _080E9904
- .4byte _080E990A
-_080E9904:
- movs r1, 0x4
- movs r3, 0x2
- b _080E991E
-_080E990A:
- movs r1, 0x3
- movs r3, 0x2
- b _080E991E
-_080E9910:
- movs r1, 0x1
- movs r3, 0x3
- b _080E991E
-_080E9916:
- movs r1, 0x4
- b _080E991C
-_080E991A:
- movs r1, 0x3
-_080E991C:
- movs r3, 0x1
-_080E991E:
- lsls r3, 1
- adds r3, r1, r3
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- movs r2, 0x1B
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080E993C
- bl BasicInitMenuWindow
-_080E9936:
- pop {r0}
- bx r0
- .align 2, 0
-_080E993C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E98C4
-
- thumb_func_start sub_80E9940
-sub_80E9940: @ 80E9940
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- movs r4, 0x7
- ands r4, r5
- lsls r3, r4, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0x2
- movs r2, 0x1F
- bl MenuFillWindowRectWithBlankTile
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80E9A7C
- lsls r4, 1
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_80E9A60
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9940
-
- thumb_func_start sub_80E9974
-sub_80E9974: @ 80E9974
- push {r4-r6,lr}
- ldr r0, _080E99C4
- bl BasicInitMenuWindow
- ldr r0, _080E99C8
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E99D4
- ldr r1, _080E99CC
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 16
- lsrs r4, r1, 16
- adds r0, 0x4
- cmp r4, r0
- bge _080E9A08
- adds r5, r2, 0
- ldr r2, _080E99CC
- adds r6, r5, r2
-_080E99A4:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E99D0
- adds r0, r5, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, 0x4
- cmp r4, r0
- blt _080E99A4
- b _080E9A08
- .align 2, 0
-_080E99C4: .4byte gWindowConfig_81E6D54
-_080E99C8: .4byte gUnknown_083DB694
-_080E99CC: .4byte 0x000001b5
-_080E99D0: .4byte 0x00009dc9
-_080E99D4:
- bl sub_80E9AD4
- ldr r4, _080E9A10
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x20
- movs r1, 0x2
- movs r2, 0x2
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x2
- movs r2, 0x4
- bl sub_80E9A60
- adds r4, 0x60
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x6
- bl sub_80E9A60
-_080E9A08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A10: .4byte gUnknown_083DBEAC
- thumb_func_end sub_80E9974
-
- thumb_func_start sub_80E9A14
-sub_80E9A14: @ 80E9A14
- push {lr}
- bl sub_80E9A4C
- ldr r0, _080E9A44
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E9A40
- movs r0, 0xDD
- lsls r0, 1
- adds r2, r1, r0
- ldr r3, _080E9A48
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
-_080E9A40:
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A44: .4byte gUnknown_083DB694
-_080E9A48: .4byte 0x000001b5
- thumb_func_end sub_80E9A14
-
- thumb_func_start sub_80E9A4C
-sub_80E9A4C: @ 80E9A4C
- ldr r0, _080E9A5C
- ldr r0, [r0]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080E9A5C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A4C
-
- thumb_func_start sub_80E9A60
-sub_80E9A60: @ 80E9A60
- push {lr}
- lsls r2, 16
- movs r3, 0xF0
- lsls r3, 12
- ands r3, r2
- lsls r1, 24
- lsrs r1, 24
- lsrs r3, 16
- adds r2, r3, 0
- bl MenuPrint
- pop {r0}
- bx r0
- thumb_func_end sub_80E9A60
-
- thumb_func_start sub_80E9A7C
-sub_80E9A7C: @ 80E9A7C
- push {r4-r7,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r0, r7, 17
- lsrs r5, r0, 16
- movs r4, 0
- ldr r0, _080E9AD0
- ldr r6, [r0]
-_080E9A8E:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x58
- muls r0, r4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r7, 1
- adds r1, r4, r1
- adds r0, r6, 0
- adds r0, 0x2A
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0xB
- bl sub_80EAD64
- adds r2, r0, 0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r6, 0x28]
- cmp r5, r0
- bcs _080E9ACA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E9A8E
-_080E9ACA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AD0: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A7C
-
- thumb_func_start sub_80E9AD4
-sub_80E9AD4: @ 80E9AD4
- push {r4,lr}
- ldr r0, _080E9AF4
- bl BasicInitMenuWindow
- movs r4, 0
-_080E9ADE:
- adds r0, r4, 0
- bl sub_80E9C74
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080E9ADE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AF4: .4byte gWindowConfig_81E6D54
- thumb_func_end sub_80E9AD4
-
- thumb_func_start sub_80E9AF8
-sub_80E9AF8: @ 80E9AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- bl sub_80E9C74
- ldr r4, _080E9B7C
- ldr r5, [r4]
- ldr r0, _080E9B80
- adds r0, r5
- mov r8, r0
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- ldr r2, _080E9B84
- adds r2, r5
- mov r8, r2
- adds r0, r5, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E9BF4
- movs r6, 0
- ldr r3, _080E9B88
- adds r0, r5, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- blt _080E9B4A
- b _080E9C52
-_080E9B4A:
- lsls r0, r7, 2
- mov r9, r0
- ldr r1, _080E9B8C
- adds r1, r5, r1
- str r1, [sp]
- lsls r2, r7, 17
- mov r10, r2
-_080E9B58:
- lsls r4, r6, 1
- mov r3, r9
- adds r0, r4, r3
- ldr r1, [sp]
- adds r0, r1, r0
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- adds r5, r4, 0
- cmp r0, 0x7
- bne _080E9B94
- ldr r0, _080E9B90
- bl BasicInitMenuWindow
- b _080E9B9A
- .align 2, 0
-_080E9B7C: .4byte gUnknown_083DB694
-_080E9B80: .4byte 0x00009e14
-_080E9B84: .4byte 0x00009e17
-_080E9B88: .4byte 0x000099a6
-_080E9B8C: .4byte 0x00009a2a
-_080E9B90: .4byte gWindowConfig_81E6D70
-_080E9B94:
- ldr r0, _080E9BE0
- bl BasicInitMenuWindow
-_080E9B9A:
- ldr r2, _080E9BE4
- ldr r4, [r2]
- mov r3, r9
- adds r1, r5, r3
- ldr r2, _080E9BE8
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- ldr r3, _080E9BEC
- adds r0, r4, r3
- movs r1, 0xB
- muls r1, r6
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- mov r3, r10
- lsrs r2, r3, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080E9BF0
- adds r4, r0
- adds r4, r7
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r6, r0
- blt _080E9B58
- b _080E9C52
- .align 2, 0
-_080E9BE0: .4byte gWindowConfig_81E6D54
-_080E9BE4: .4byte gUnknown_083DB694
-_080E9BE8: .4byte 0x00009a2a
-_080E9BEC: .4byte 0x00009e14
-_080E9BF0: .4byte 0x000099a6
-_080E9BF4:
- ldr r0, _080E9C64
- bl BasicInitMenuWindow
- movs r6, 0
- ldr r1, _080E9C68
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E9C52
- adds r4, r5, 0
- adds r0, r4, r1
- adds r0, r7
- mov r9, r0
- lsls r5, r7, 17
-_080E9C16:
- lsls r1, r6, 1
- lsls r0, r7, 2
- adds r1, r0
- ldr r2, _080E9C6C
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- movs r0, 0xB
- adds r1, r6, 0
- muls r1, r0
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _080E9C70
- adds r0, r4, r3
- lsrs r2, r5, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r9
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r6, r0
- blt _080E9C16
-_080E9C52:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9C64: .4byte gWindowConfig_81E6D54
-_080E9C68: .4byte 0x000099a6
-_080E9C6C: .4byte 0x00009a2a
-_080E9C70: .4byte 0x00009e14
- thumb_func_end sub_80E9AF8
-
- thumb_func_start sub_80E9C74
-sub_80E9C74: @ 80E9C74
- push {lr}
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- lsls r3, r1, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0
- movs r2, 0x1D
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C74
-
- thumb_func_start sub_80E9C94
-sub_80E9C94: @ 80E9C94
- push {r4-r6,lr}
- ldr r0, _080E9CAC
- ldr r0, [r0]
- ldr r2, _080E9CB0
- adds r1, r0, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x3
- bgt _080E9CB4
- lsls r0, 16
- lsrs r0, 16
- b _080E9CB6
- .align 2, 0
-_080E9CAC: .4byte gUnknown_083DB694
-_080E9CB0: .4byte 0x00009a28
-_080E9CB4:
- movs r0, 0x4
-_080E9CB6:
- adds r5, r0, 0
- movs r4, 0
- cmp r4, r5
- bcs _080E9CF4
- ldr r0, _080E9CE0
- ldr r0, [r0]
- ldr r1, _080E9CE4
- adds r6, r0, r1
-_080E9CC6:
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl sub_80E9AF8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080E9CC6
- b _080E9CF4
- .align 2, 0
-_080E9CE0: .4byte gUnknown_083DB694
-_080E9CE4: .4byte 0x00009a29
-_080E9CE8:
- adds r0, r4, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_80E9C74
-_080E9CF4:
- cmp r4, 0x3
- bls _080E9CE8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C94
-
- thumb_func_start sub_80E9D00
-sub_80E9D00: @ 80E9D00
- push {r4-r6,lr}
- ldr r0, _080E9D28
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- ble _080E9D30
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D2C
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- b _080E9D46
- .align 2, 0
-_080E9D28: .4byte gUnknown_083DB694
-_080E9D2C: .4byte 0x00009a29
-_080E9D30:
- movs r0, 0
- ldrsb r0, [r1, r0]
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D74
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r4
-_080E9D46:
- lsls r0, 16
- lsrs r5, r0, 16
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080E9D78
- cmp r4, r0
- beq _080E9D6E
- adds r6, r0, 0
-_080E9D58:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_80E9AF8
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- bne _080E9D58
-_080E9D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9D74: .4byte 0x00009a29
-_080E9D78: .4byte 0x0000ffff
- thumb_func_end sub_80E9D00
-
- thumb_func_start sub_80E9D7C
-sub_80E9D7C: @ 80E9D7C
- push {r4-r7,lr}
- ldr r0, _080E9DAC
- bl BasicInitMenuWindow
- ldr r0, _080E9DB0
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E9DB8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DB4
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r6
- b _080E9DCC
- .align 2, 0
-_080E9DAC: .4byte gWindowConfig_81E6D54
-_080E9DB0: .4byte gUnknown_083DB694
-_080E9DB4: .4byte 0x000001b5
-_080E9DB8:
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DFC
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
-_080E9DCC:
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0
- cmp r5, r6
- bcs _080E9DF6
- ldr r0, _080E9E00
- ldr r7, [r0]
-_080E9DDA:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E9E04
- adds r0, r7, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcc _080E9DDA
-_080E9DF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DFC: .4byte 0x000001b5
-_080E9E00: .4byte gUnknown_083DB694
-_080E9E04: .4byte 0x00009dc9
- thumb_func_end sub_80E9D7C
-
- thumb_func_start sub_80E9E08
-sub_80E9E08: @ 80E9E08
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E9E4C
- ldr r3, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r3, r0
- movs r5, 0xE0
- lsls r5, 1
- adds r2, r3, r5
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 4
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7F
- ands r0, r1
- subs r5, 0x4
- adds r1, r3, r5
- strh r0, [r1]
- adds r1, r4, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bge _080E9E3E
- negs r1, r4
-_080E9E3E:
- ldr r2, _080E9E50
- adds r0, r3, r2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E4C: .4byte gUnknown_083DB694
-_080E9E50: .4byte 0x000001bf
- thumb_func_end sub_80E9E08
-
- thumb_func_start sub_80E9E54
-sub_80E9E54: @ 80E9E54
- push {r4,lr}
- ldr r0, _080E9E8C
- ldr r2, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r3, r2, r0
- ldr r1, _080E9E90
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r4, [r3]
- adds r0, r4
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r3]
- movs r3, 0
- movs r4, 0xDE
- lsls r4, 1
- adds r1, r2, r4
- ldrh r1, [r1]
- cmp r0, r1
- bne _080E9E84
- movs r3, 0x1
-_080E9E84:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9E8C: .4byte gUnknown_083DB694
-_080E9E90: .4byte 0x000001bf
- thumb_func_end sub_80E9E54
-
- thumb_func_start nullsub_23
-nullsub_23: @ 80E9E94
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start sub_80E9E98
-sub_80E9E98: @ 80E9E98
- ldr r0, _080E9EA4
- ldr r0, [r0]
- adds r0, 0xBE
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080E9EA4: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9E98
-
- thumb_func_start sub_80E9EA8
-sub_80E9EA8: @ 80E9EA8
- push {lr}
- ldr r1, _080E9EC4
- ldr r0, [r1]
- adds r0, 0xBE
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _080E9F48
- lsls r0, 2
- ldr r1, _080E9EC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9EC4: .4byte gUnknown_083DB694
-_080E9EC8: .4byte _080E9ECC
- .align 2, 0
-_080E9ECC:
- .4byte _080E9EE4
- .4byte _080E9EF4
- .4byte _080E9F0C
- .4byte _080E9F24
- .4byte _080E9F38
- .4byte _080E9F44
-_080E9EE4:
- bl sub_80EA24C
- ldr r0, _080E9F08
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9EF4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA4A4
- ldr r0, _080E9F08
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F08: .4byte gUnknown_083DB694
-_080E9F0C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA704
- ldr r0, _080E9F20
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F20: .4byte gUnknown_083DB694
-_080E9F24:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- ldr r0, _080E9F34
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F34: .4byte gUnknown_083DB694
-_080E9F38:
- ldr r1, [r2]
-_080E9F3A:
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9F48
-_080E9F44:
- movs r0, 0x1
- b _080E9F4A
-_080E9F48:
- movs r0, 0
-_080E9F4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9EA8
-
- thumb_func_start sub_80E9F50
-sub_80E9F50: @ 80E9F50
- push {lr}
- ldr r0, _080E9F68
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x6
- bhi _080E9FCC
- lsls r0, 2
- ldr r1, _080E9F6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9F68: .4byte gUnknown_083DB694
-_080E9F6C: .4byte _080E9F70
- .align 2, 0
-_080E9F70:
- .4byte _080E9F8C
- .4byte _080E9FAC
- .4byte _080E9F96
- .4byte _080E9FAC
- .4byte _080E9F9C
- .4byte _080E9FAC
- .4byte _080E9FC8
-_080E9F8C:
- bl nullsub_23
- bl sub_80EA764
- b _080E9FA0
-_080E9F96:
- bl sub_80EA5A0
- b _080E9FA0
-_080E9F9C:
- bl sub_80EA348
-_080E9FA0:
- ldr r0, _080E9FC4
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9FAC:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9FCC
- ldr r0, _080E9FC4
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9FCC
- .align 2, 0
-_080E9FC4: .4byte gUnknown_083DB694
-_080E9FC8:
- movs r0, 0x1
- b _080E9FCE
-_080E9FCC:
- movs r0, 0
-_080E9FCE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9F50
-
- thumb_func_start sub_80E9FD4
-sub_80E9FD4: @ 80E9FD4
- push {r4,lr}
- ldr r0, _080E9FEC
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080E9FF0
- cmp r0, 0x1
- beq _080E9FFE
- b _080EA00C
- .align 2, 0
-_080E9FEC: .4byte gUnknown_083DB694
-_080E9FF0:
- bl nullsub_23
- bl sub_80EA5A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080E9FFE:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA00C
- movs r0, 0x1
- b _080EA00E
-_080EA00C:
- movs r0, 0
-_080EA00E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E9FD4
-
- thumb_func_start sub_80EA014
-sub_80EA014: @ 80EA014
- push {r4,lr}
- ldr r0, _080EA02C
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EA030
- cmp r0, 0x1
- beq _080EA03A
- b _080EA048
- .align 2, 0
-_080EA02C: .4byte gUnknown_083DB694
-_080EA030:
- bl sub_80EA4A4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA03A:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA048
- movs r0, 0x1
- b _080EA04A
-_080EA048:
- movs r0, 0
-_080EA04A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA014
-
- thumb_func_start sub_80EA050
-sub_80EA050: @ 80EA050
- push {lr}
- ldr r0, _080EA068
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA0DC
- lsls r0, 2
- ldr r1, _080EA06C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA068: .4byte gUnknown_083DB694
-_080EA06C: .4byte _080EA070
- .align 2, 0
-_080EA070:
- .4byte _080EA084
- .4byte _080EA08E
- .4byte _080EA09E
- .4byte _080EA0B4
- .4byte _080EA0D8
-_080EA084:
- bl nullsub_23
- bl sub_80EA764
- b _080EA0C4
-_080EA08E:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA7F4
- b _080EA0C4
-_080EA09E:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA8BC
- b _080EA0C4
-_080EA0B4:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
-_080EA0C4:
- ldr r0, _080EA0D4
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA0DC
- .align 2, 0
-_080EA0D4: .4byte gUnknown_083DB694
-_080EA0D8:
- movs r0, 0x1
- b _080EA0DE
-_080EA0DC:
- movs r0, 0
-_080EA0DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA050
-
- thumb_func_start sub_80EA0E4
-sub_80EA0E4: @ 80EA0E4
- push {lr}
- ldr r0, _080EA0FC
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA17C
- lsls r0, 2
- ldr r1, _080EA100
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA0FC: .4byte gUnknown_083DB694
-_080EA100: .4byte _080EA104
- .align 2, 0
-_080EA104:
- .4byte _080EA118
- .4byte _080EA128
- .4byte _080EA144
- .4byte _080EA15C
- .4byte _080EA178
-_080EA118:
- bl sub_80EA948
- ldr r0, _080EA140
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EA128:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EAA44
- b _080EA166
- .align 2, 0
-_080EA140: .4byte gUnknown_083DB694
-_080EA144:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EA704
- b _080EA166
-_080EA15C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
-_080EA166:
- ldr r0, _080EA174
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA17C
- .align 2, 0
-_080EA174: .4byte gUnknown_083DB694
-_080EA178:
- movs r0, 0x1
- b _080EA17E
-_080EA17C:
- movs r0, 0
-_080EA17E:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA0E4
-
- thumb_func_start sub_80EA184
-sub_80EA184: @ 80EA184
- push {r4,lr}
- ldr r0, _080EA1A0
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EA1B4
- cmp r0, 0x1
- bgt _080EA1A4
- cmp r0, 0
- beq _080EA1AA
- b _080EA1D8
- .align 2, 0
-_080EA1A0: .4byte gUnknown_083DB694
-_080EA1A4:
- cmp r0, 0x2
- beq _080EA1D0
- b _080EA1D8
-_080EA1AA:
- bl sub_80EAAD4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA1B4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA1D8
- ldr r0, _080EA1CC
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA1D8
- .align 2, 0
-_080EA1CC: .4byte gUnknown_083DB694
-_080EA1D0:
- bl sub_80E9178
- movs r0, 0x1
- b _080EA1DA
-_080EA1D8:
- movs r0, 0
-_080EA1DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA184
-
- thumb_func_start sub_80EA1E0
-sub_80EA1E0: @ 80EA1E0
- push {r4-r6,lr}
- ldr r0, _080EA240
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EA244
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EA228
- adds r5, r1, 0
- adds r6, r0, 0
-_080EA200:
- lsls r0, r4, 4
- adds r0, 0xC8
- adds r0, r5, r0
- bl sub_80EAC0C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- bl sub_80EAC48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EA200
-_080EA228:
- ldr r0, _080EA240
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xBC
- movs r0, 0x1
- strb r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080EA246
- .align 2, 0
-_080EA240: .4byte gUnknown_083DB694
-_080EA244:
- movs r0, 0x1
-_080EA246:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA1E0
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA340
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- ldr r1, _080EA344
- mov r8, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r6, 0x10
- str r6, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0x9
- mov r3, r8
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA340: .4byte gUnknown_083DB694
-_080EA344: .4byte 0x0000fffe
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA348
-sub_80EA348: @ 80EA348
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA49C
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r5, 0xF
- str r5, [sp]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EA4A0
- mov r8, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0x2
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r5, 0x10
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0x2
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xE
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA49C: .4byte gUnknown_083DB694
-_080EA4A0: .4byte 0x0000fffe
- thumb_func_end sub_80EA348
-
- thumb_func_start sub_80EA4A4
-sub_80EA4A4: @ 80EA4A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA598
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, _080EA59C
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x10
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA598: .4byte gUnknown_083DB694
-_080EA59C: .4byte 0x0000ffff
- thumb_func_end sub_80EA4A4
-
- thumb_func_start sub_80EA5A0
-sub_80EA5A0: @ 80EA5A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA6FC
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EA700
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r1, r8
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x6
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6FC: .4byte gUnknown_083DB694
-_080EA700: .4byte 0x0000ffff
- thumb_func_end sub_80EA5A0
-
- thumb_func_start sub_80EA704
-sub_80EA704: @ 80EA704
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA75C
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r1, 0x14
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldr r3, _080EA760
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0xA
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xC2
- strh r5, [r0]
- adds r1, r6, 0
- adds r1, 0xC4
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA75C: .4byte gUnknown_083DB694
-_080EA760: .4byte 0x0000ffff
- thumb_func_end sub_80EA704
-
- thumb_func_start sub_80EA764
-sub_80EA764: @ 80EA764
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _080EA7EC
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EA7F0
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1E
- movs r2, 0xC
- movs r3, 0x1F
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0xC
- adds r3, r5, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7EC: .4byte gUnknown_083DB694
-_080EA7F0: .4byte 0x0000ffff
- thumb_func_end sub_80EA764
-
- thumb_func_start sub_80EA7F4
-sub_80EA7F4: @ 80EA7F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _080EA8B4
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x14
- movs r2, 0xA
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- ldr r3, _080EA8B8
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r2, r7
- mov r8, r2
- str r2, [sp, 0x4]
- movs r1, 0x19
- movs r2, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x3
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8B4: .4byte gUnknown_083DB694
-_080EA8B8: .4byte 0x0000ffff
- thumb_func_end sub_80EA7F4
-
- thumb_func_start sub_80EA8BC
-sub_80EA8BC: @ 80EA8BC
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA944
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA944: .4byte gUnknown_083DB694
- thumb_func_end sub_80EA8BC
-
- thumb_func_start sub_80EA948
-sub_80EA948: @ 80EA948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EAA3C
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EAA40
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x80
- adds r1, r7
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x5
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1A
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0x1A
- movs r2, 0xA
- adds r3, r5, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x19
- movs r2, 0xA
- movs r3, 0x1A
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAA3C: .4byte gUnknown_083DB694
-_080EAA40: .4byte 0x0000ffff
- thumb_func_end sub_80EA948
-
- thumb_func_start sub_80EAA44
-sub_80EAA44: @ 80EAA44
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EAACC
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EAAD0
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x17
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAACC: .4byte gUnknown_083DB694
-_080EAAD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAA44
-
- thumb_func_start sub_80EAAD4
-sub_80EAAD4: @ 80EAAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EABCC
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r1, 0xF
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r5, 0x1
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EABD0
- str r6, [sp, 0x10]
- movs r1, 0
- movs r2, 0xF
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x68
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EABCC: .4byte gUnknown_083DB694
-_080EABD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAAD4
-
- thumb_func_start sub_80EABD4
-sub_80EABD4: @ 80EABD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r8, r7
- strh r1, [r0]
- strh r3, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r5, [r0, 0x6]
- strh r6, [r0, 0x8]
- strh r4, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r4, r8
- strh r4, [r0, 0xE]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD4
-
- thumb_func_start sub_80EAC0C
-sub_80EAC0C: @ 80EAC0C
- ldrh r1, [r0, 0x8]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0xA]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0xC]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- strh r1, [r0, 0x4]
- ldrh r1, [r0, 0xE]
- ldrh r2, [r0, 0x6]
- adds r1, r2
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_80EAC0C
-
- thumb_func_start sub_80EAC30
-sub_80EAC30: @ 80EAC30
- push {r4,r5,lr}
- ldr r4, [sp, 0xC]
- ldr r5, [sp, 0x10]
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- str r5, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC30
-
- thumb_func_start sub_80EAC48
-sub_80EAC48: @ 80EAC48
- ldrh r1, [r0, 0x4]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end sub_80EAC48
-
- thumb_func_start sub_80EAC5C
-sub_80EAC5C: @ 80EAC5C
- push {r4-r6,lr}
- ldr r0, _080EACB4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EACAC
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EACA2
- adds r5, r1, 0
- adds r6, r0, 0
-_080EAC7C:
- lsls r1, r4, 4
- adds r1, 0xC8
- adds r1, r5, r1
- lsls r2, r4, 1
- adds r2, r4
- lsls r2, 2
- movs r0, 0xA4
- lsls r0, 1
- adds r2, r0
- adds r2, r5, r2
- ldr r0, _080EACB8
- bl sub_80EACBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EAC7C
-_080EACA2:
- ldr r0, _080EACB4
- ldr r0, [r0]
- adds r0, 0xBC
- movs r1, 0
- strb r1, [r0]
-_080EACAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EACB4: .4byte gUnknown_083DB694
-_080EACB8: .4byte 0x06006800
- thumb_func_end sub_80EAC5C
-
- thumb_func_start sub_80EACBC
-sub_80EACBC: @ 80EACBC
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- ldrh r2, [r3, 0x2]
- ldrh r0, [r3]
- subs r2, r0
- ldrh r0, [r3, 0x6]
- ldrh r1, [r3, 0x4]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r6, r2, 16
- cmp r6, 0
- ble _080EACFE
- lsls r5, r0, 16
- cmp r5, 0
- ble _080EACFE
- ldrh r1, [r3]
- ldrh r2, [r3, 0x4]
- ldr r3, [r4, 0x8]
- ldrh r0, [r4]
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- str r0, [sp, 0x4]
- lsrs r0, r6, 16
- str r0, [sp, 0x8]
- lsrs r0, r5, 16
- str r0, [sp, 0xC]
- adds r0, r7, 0
- bl sub_809D104
-_080EACFE:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EACBC
-
- thumb_func_start sub_80EAD08
-sub_80EAD08: @ 80EAD08
- push {r4,r5,lr}
- ldr r0, _080EAD58
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080EAD5C
- adds r4, r0, r1
- adds r4, 0xB0
- ldr r0, _080EAD60
- ldr r1, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r2, r0, 0
- subs r2, 0x58
- movs r0, 0xFF
- ands r2, r0
- movs r3, 0
- movs r5, 0xFF
-_080EAD32:
- ldrh r0, [r1]
- adds r0, r3
- cmp r0, 0x80
- bne _080EAD42
- negs r0, r3
- adds r2, r0, 0
- subs r2, 0x58
- ands r2, r5
-_080EAD42:
- strh r2, [r4]
- adds r4, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080EAD32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD58: .4byte gUnknown_03004DC0
-_080EAD5C: .4byte gUnknown_03004DE0
-_080EAD60: .4byte gUnknown_083DB694
- thumb_func_end sub_80EAD08
-
- thumb_func_start sub_80EAD64
-sub_80EAD64: @ 80EAD64
- push {lr}
- lsls r1, 24
- ldr r2, _080EAD78
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r1}
- bx r1
- .align 2, 0
-_080EAD78: .4byte gEasyChatGroupNames
- thumb_func_end sub_80EAD64
-
- thumb_func_start sub_80EAD7C
-sub_80EAD7C: @ 80EAD7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080EADA2
- cmp r0, 0x14
- bgt _080EAD9C
- cmp r0, 0x11
- blt _080EADBA
- ldr r0, _080EAD98
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EAD98: .4byte 0x00000804
-_080EAD9C:
- cmp r1, 0x15
- beq _080EADB0
- b _080EADBA
-_080EADA2:
- ldr r0, _080EADAC
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EADAC: .4byte 0x00000806
-_080EADB0:
- bl sub_80EB9C8
-_080EADB4:
- lsls r0, 24
- lsrs r0, 24
- b _080EADBC
-_080EADBA:
- movs r0, 0x1
-_080EADBC:
- pop {r1}
- bx r1
- thumb_func_end sub_80EAD7C
-
- thumb_func_start sub_80EADC0
-sub_80EADC0: @ 80EADC0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r2, 0x15
- bhi _080EAE82
- lsls r0, r2, 2
- ldr r1, _080EADD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EADD8: .4byte _080EADDC
- .align 2, 0
-_080EADDC:
- .4byte _080EAE50
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE34
- .4byte _080EAE78
-_080EAE34:
- ldr r0, _080EAE4C
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EAE70
- lsls r0, r3, 24
- lsrs r0, 24
- bl sub_80EB868
- b _080EAE7C
- .align 2, 0
-_080EAE4C: .4byte gUnknown_083DB694
-_080EAE50:
- adds r0, r3, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- b _080EAE7C
-_080EAE62:
- ldr r0, _080EAE74
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EAE82
-_080EAE70:
- movs r0, 0
- b _080EAE84
- .align 2, 0
-_080EAE74: .4byte gUnknown_083DB694
-_080EAE78:
- bl sub_80EB9C8
-_080EAE7C:
- lsls r0, 24
- lsrs r0, 24
- b _080EAE84
-_080EAE82:
- movs r0, 0x1
-_080EAE84:
- pop {r1}
- bx r1
- thumb_func_end sub_80EADC0
-
- thumb_func_start sub_80EAE88
-sub_80EAE88: @ 80EAE88
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080EAEA6
- cmp r4, 0x14
- beq _080EAEB2
- adds r0, r4, 0
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EAEBC
- movs r0, 0
- b _080EAEC2
-_080EAEA6:
- movs r0, 0
- bl sub_8090F68
- lsls r0, 16
- lsrs r0, 16
- b _080EAEC2
-_080EAEB2:
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r0, 24
- b _080EAEC2
-_080EAEBC:
- ldr r0, _080EAEC8
- adds r0, r4, r0
- ldrb r0, [r0]
-_080EAEC2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EAEC8: .4byte gEasyChatGroupSizes
- thumb_func_end sub_80EAE88
-
- thumb_func_start sub_80EAECC
-sub_80EAECC: @ 80EAECC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r8, r0
- ldr r1, _080EAF10
- ldr r0, [r1]
- ldr r3, _080EAF14
- adds r3, r0, r3
- str r3, [sp, 0x4]
-_080EAEE6:
- ldr r1, _080EAF18
- mov r7, r8
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrh r4, [r0]
- mov r3, r8
- adds r3, 0x1
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x4]
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- mov r9, r0
- adds r6, r4, 0
- mov r10, r2
- str r3, [sp, 0x8]
- b _080EB00C
- .align 2, 0
-_080EAF10: .4byte gUnknown_083DB694
-_080EAF14: .4byte 0x00004142
-_080EAF18: .4byte gEasyChatWordsByLetter
-_080EAF1C:
- ldr r2, _080EAFB0
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r4, r1, 0
- ldr r0, _080EAFB4
- cmp r1, r0
- bls _080EAFCC
- movs r0, 0xFF
- ands r1, r0
- movs r7, 0
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r3, _080EAFB8
- cmp r5, r3
- beq _080EB00C
- mov r1, r8
- lsls r0, r1, 8
- subs r0, r1
- lsls r3, r0, 1
-_080EAF4E:
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r0, _080EAFB0
- adds r1, r0
- ldrh r4, [r1]
- lsrs r0, r4, 9
- ldr r1, _080EAFBC
- adds r2, r1, 0
- adds r1, r4, 0
- ands r1, r2
- str r3, [sp, 0xC]
- bl sub_80EADC0
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _080EAFA2
- cmp r7, 0
- bne _080EAFA2
- ldr r7, _080EAFC0
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 1
- adds r1, r3
- ldr r7, _080EAFC4
- adds r0, r2, r7
- adds r0, r1
- strh r4, [r0]
- ldr r0, _080EAFC8
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- movs r7, 0x1
-_080EAFA2:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080EAFB8
- cmp r5, r1
- bne _080EAF4E
- b _080EB00C
- .align 2, 0
-_080EAFB0: .4byte gEasyChatWordsAlphabetized
-_080EAFB4: .4byte 0x0000feff
-_080EAFB8: .4byte 0x0000ffff
-_080EAFBC: .4byte 0x000001ff
-_080EAFC0: .4byte gUnknown_083DB694
-_080EAFC4: .4byte 0x00000b78
-_080EAFC8: .4byte 0x00004142
-_080EAFCC:
- lsrs r0, r4, 9
- ldr r3, _080EB030
- adds r2, r3, 0
- adds r1, r4, 0
- ands r1, r2
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB00C
- ldr r7, _080EB034
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r3, r8
- lsls r0, r3, 8
- subs r0, r3
- adds r0, r1
- lsls r0, 1
- ldr r7, _080EB038
- adds r1, r2, r7
- adds r1, r0
- strh r4, [r1]
- ldr r0, _080EB03C
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EB00C:
- ldr r1, [sp]
- cmp r6, r1
- bcc _080EAF1C
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x1A
- bhi _080EB020
- b _080EAEE6
-_080EB020:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB030: .4byte 0x000001ff
-_080EB034: .4byte gUnknown_083DB694
-_080EB038: .4byte 0x00000b78
-_080EB03C: .4byte 0x00004142
- thumb_func_end sub_80EAECC
-
- thumb_func_start sub_80EB040
-sub_80EB040: @ 80EB040
- push {r4-r6,lr}
- movs r3, 0
-_080EB044:
- adds r6, r3, 0x1
- cmp r3, 0
- beq _080EB094
- cmp r3, 0x15
- beq _080EB094
- cmp r3, 0x12
- beq _080EB094
- cmp r3, 0x13
- beq _080EB094
- ldr r0, _080EB0A4
- lsls r1, r3, 2
- adds r1, r0
- ldr r2, [r1]
- movs r4, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _080EB094
- ldr r0, _080EB0A8
- ldr r0, [r0]
- ldr r1, _080EB0AC
- adds r5, r0, r1
-_080EB06E:
- lsls r0, r4, 2
- lsls r1, r3, 10
- adds r0, r1
- adds r0, r5, r0
- str r2, [r0]
- ldrb r0, [r2]
- adds r1, r4, 0x1
- cmp r0, 0xFF
- beq _080EB088
-_080EB080:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB080
-_080EB088:
- adds r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB06E
-_080EB094:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, 0x15
- bls _080EB044
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB0A4: .4byte gEasyChatGroupWords
-_080EB0A8: .4byte gUnknown_083DB694
-_080EB0AC: .4byte 0x000041a4
- thumb_func_end sub_80EB040
-
- thumb_func_start sub_80EB0B0
-sub_80EB0B0: @ 80EB0B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r3, _080EB184
- ldr r4, [r3]
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r5, [r0]
- cmp r5, 0
- bne _080EB19C
- movs r0, 0xDC
- lsls r0, 1
- adds r2, r4, r0
- ldrb r6, [r2]
- lsls r1, r6, 1
- ldr r7, _080EB188
- adds r0, r4, r7
- adds r0, r1
- strh r5, [r0]
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r1, _080EB18C
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp]
- movs r1, 0
- mov r8, r1
- ldr r1, _080EB190
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB0FE
- b _080EB1FA
-_080EB0FE:
- movs r2, 0xDC
- lsls r2, 1
- adds r2, r4, r2
- str r2, [sp, 0x4]
- lsls r5, r6, 24
- mov r10, r5
-_080EB10A:
- mov r1, r8
- lsls r0, r1, 1
- ldr r2, [sp]
- adds r5, r0, r2
- ldrh r1, [r5]
- mov r2, r10
- lsrs r0, r2, 24
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB16A
- ldr r0, _080EB184
- ldr r3, [r0]
- lsls r1, r7, 1
- mov r2, r9
- lsls r0, r2, 2
- adds r1, r0
- ldr r0, _080EB194
- adds r4, r3, r0
- adds r4, r1
- movs r0, 0x7F
- ands r0, r6
- lsls r0, 9
- ldrh r1, [r5]
- ldr r5, _080EB198
- adds r2, r5, 0
- ands r1, r2
- orrs r0, r1
- strh r0, [r4]
- lsls r0, r6, 1
- ldr r1, _080EB188
- adds r3, r1
- adds r3, r0
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _080EB16A
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_080EB16A:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080EB190
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB10A
- b _080EB1FA
- .align 2, 0
-_080EB184: .4byte gUnknown_083DB694
-_080EB188: .4byte 0x00004178
-_080EB18C: .4byte gEasyChatGroupOrders
-_080EB190: .4byte gEasyChatGroupSizes
-_080EB194: .4byte 0x00009a2a
-_080EB198: .4byte 0x000001ff
-_080EB19C:
- movs r5, 0xDC
- lsls r5, 1
- adds r0, r4, r5
- ldrb r2, [r0]
- movs r3, 0
- movs r6, 0
- movs r5, 0
- lsls r1, r2, 1
- ldr r7, _080EB20C
- adds r0, r4, r7
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r5, r0
- bcs _080EB1FA
- ldr r7, _080EB210
- adds r7, r4
- mov r8, r7
- lsls r0, r2, 8
- subs r0, r2
- lsls r7, r0, 1
- ldr r0, _080EB214
- adds r2, r4, r0
- adds r4, r1, 0
-_080EB1CA:
- lsls r1, r3, 1
- lsls r0, r6, 2
- adds r1, r0
- add r1, r8
- lsls r0, r5, 1
- adds r0, r7
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _080EB1EE
- movs r3, 0
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB1EE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r1, [r4]
- cmp r5, r1
- bcc _080EB1CA
-_080EB1FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB20C: .4byte 0x00004142
-_080EB210: .4byte 0x00009a2a
-_080EB214: .4byte 0x00000b78
- thumb_func_end sub_80EB0B0
-
- thumb_func_start sub_80EB218
-sub_80EB218: @ 80EB218
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB240
- ldr r1, _080EB23C
- b _080EB2A2
- .align 2, 0
-_080EB23C: .4byte gOtherText_ThreeQuestions
-_080EB240:
- ldr r0, _080EB250
- cmp r4, r0
- bne _080EB254
- adds r1, r5, 0
- movs r0, 0xFF
- strb r0, [r1]
- b _080EB2AA
- .align 2, 0
-_080EB250: .4byte 0x0000ffff
-_080EB254:
- lsrs r2, r6, 25
- ldr r1, _080EB268
- ands r1, r7
- cmp r2, 0x13
- bgt _080EB26C
- cmp r2, 0x12
- bge _080EB280
- cmp r2, 0
- beq _080EB270
- b _080EB290
- .align 2, 0
-_080EB268: .4byte 0x000001ff
-_080EB26C:
- cmp r2, 0x15
- bne _080EB290
-_080EB270:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB27C
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB27C: .4byte gSpeciesNames
-_080EB280:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB28C
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB28C: .4byte gMoveNames
-_080EB290:
- ldr r0, _080EB2CC
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB2D0
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB2A2:
- adds r0, r5, 0
- bl StringCopy
- adds r1, r0, 0
-_080EB2AA:
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- mov r2, r8
- lsls r0, r2, 3
- strb r0, [r1, 0x2]
- adds r1, 0x3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB2CC: .4byte gUnknown_083DB694
-_080EB2D0: .4byte 0x000041a4
- thumb_func_end sub_80EB218
-
- thumb_func_start sub_80EB2D4
-sub_80EB2D4: @ 80EB2D4
- push {r4-r6,lr}
- lsls r5, r0, 16
- lsrs r4, r5, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB2F8
- ldr r0, _080EB2F4
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- b _080EB374
- .align 2, 0
-_080EB2F4: .4byte gOtherText_ThreeQuestions
-_080EB2F8:
- ldr r0, _080EB304
- cmp r4, r0
- bne _080EB308
- movs r0, 0
- b _080EB374
- .align 2, 0
-_080EB304: .4byte 0x0000ffff
-_080EB308:
- lsrs r2, r5, 25
- ldr r1, _080EB31C
- ands r1, r6
- cmp r2, 0x13
- bgt _080EB320
- cmp r2, 0x12
- bge _080EB334
- cmp r2, 0
- beq _080EB324
- b _080EB344
- .align 2, 0
-_080EB31C: .4byte 0x000001ff
-_080EB320:
- cmp r2, 0x15
- bne _080EB344
-_080EB324:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB330
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB330: .4byte gSpeciesNames
-_080EB334:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB340
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB340: .4byte gMoveNames
-_080EB344:
- ldr r0, _080EB35C
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB360
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB356:
- movs r2, 0
- b _080EB36C
- .align 2, 0
-_080EB35C: .4byte gUnknown_083DB694
-_080EB360: .4byte 0x000041a4
-_080EB364:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB36C:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB364
- adds r0, r2, 0
-_080EB374:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB2D4
-
- thumb_func_start sub_80EB37C
-sub_80EB37C: @ 80EB37C
- push {r4,r5,lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB3A0
- cmp r3, r0
- beq _080EB3EA
- lsrs r2, r1, 25
- ldr r5, _080EB3A4
- ands r5, r3
- cmp r2, 0x15
- bhi _080EB3F4
- cmp r2, 0x13
- bgt _080EB3A8
- cmp r2, 0x12
- bge _080EB3AC
- cmp r2, 0
- beq _080EB3AC
- b _080EB3E0
- .align 2, 0
-_080EB3A0: .4byte 0x0000ffff
-_080EB3A4: .4byte 0x000001ff
-_080EB3A8:
- cmp r2, 0x15
- bne _080EB3E0
-_080EB3AC:
- ldr r0, _080EB3D8
- lsls r1, r2, 2
- adds r1, r0
- ldr r4, [r1]
- movs r3, 0
- ldr r0, _080EB3DC
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080EB3F4
- adds r1, r0, 0
-_080EB3C2:
- lsls r0, r3, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r5, r0
- beq _080EB3EA
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _080EB3C2
- b _080EB3F4
- .align 2, 0
-_080EB3D8: .4byte gEasyChatGroupWords
-_080EB3DC: .4byte gEasyChatGroupSizes
-_080EB3E0:
- ldr r0, _080EB3F0
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080EB3F4
-_080EB3EA:
- movs r0, 0
- b _080EB3F6
- .align 2, 0
-_080EB3F0: .4byte gEasyChatGroupSizes
-_080EB3F4:
- movs r0, 0x1
-_080EB3F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB37C
-
- thumb_func_start sub_80EB3FC
-sub_80EB3FC: @ 80EB3FC
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB420
- ldr r1, _080EB41C
- adds r0, r5, 0
- bl StringCopy
- b _080EB4A6
- .align 2, 0
-_080EB41C: .4byte gOtherText_ThreeQuestions
-_080EB420:
- ldr r0, _080EB43C
- cmp r4, r0
- beq _080EB4A0
- lsrs r1, r6, 25
- ldr r2, _080EB440
- ands r2, r7
- cmp r1, 0x13
- bgt _080EB444
- cmp r1, 0x12
- bge _080EB458
- cmp r1, 0
- beq _080EB448
- b _080EB468
- .align 2, 0
-_080EB43C: .4byte 0x0000ffff
-_080EB440: .4byte 0x000001ff
-_080EB444:
- cmp r1, 0x15
- bne _080EB468
-_080EB448:
- movs r0, 0xB
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB454
- adds r1, r0
- b _080EB498
- .align 2, 0
-_080EB454: .4byte gSpeciesNames
-_080EB458:
- movs r0, 0xD
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB464
- adds r1, r0
- b _080EB498
- .align 2, 0
-_080EB464: .4byte gMoveNames
-_080EB468:
- ldr r0, _080EB4AC
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB4B0
- cmp r2, r0
- beq _080EB498
- adds r3, r0, 0
-_080EB47E:
- ldrb r0, [r1]
- adds r1, 0x1
- subs r2, 0x1
- cmp r0, 0xFF
- beq _080EB490
-_080EB488:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFF
- bne _080EB488
-_080EB490:
- lsls r0, r2, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB47E
-_080EB498:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
-_080EB4A0:
- movs r0, 0xFF
- strb r0, [r5]
- adds r0, r5, 0
-_080EB4A6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB4AC: .4byte gEasyChatGroupWords
-_080EB4B0: .4byte 0x0000ffff
- thumb_func_end sub_80EB3FC
-
- thumb_func_start ConvertEasyChatWordsToString
-ConvertEasyChatWordsToString: @ 80EB4B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- ldr r0, _080EB53C
- adds r2, r0
- lsrs r7, r2, 16
- movs r0, 0
- cmp r0, r9
- bcs _080EB524
-_080EB4D6:
- movs r6, 0
- adds r0, 0x1
- mov r8, r0
- cmp r6, r7
- bcs _080EB508
- ldr r2, _080EB540
-_080EB4E2:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB4FC
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB4FC:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EB4E2
-_080EB508:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- movs r0, 0xFE
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r8
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r9
- bcc _080EB4D6
-_080EB524:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB53C: .4byte 0xffff0000
-_080EB540: .4byte 0x0000ffff
- thumb_func_end ConvertEasyChatWordsToString
-
- thumb_func_start sub_80EB544
-sub_80EB544: @ 80EB544
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldr r0, _080EB5B0
- adds r2, r0
- lsrs r2, 16
- mov r8, r2
- movs r7, 0
- cmp r7, r10
- bcs _080EB5C8
-_080EB56A:
- movs r6, 0
- adds r1, r7, 0x1
- mov r9, r1
- cmp r6, r8
- bcs _080EB59C
- ldr r2, _080EB5B4
-_080EB576:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB590
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB590:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r8
- bcc _080EB576
-_080EB59C:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- cmp r7, 0
- bne _080EB5B8
- movs r0, 0xFE
- b _080EB5BA
- .align 2, 0
-_080EB5B0: .4byte 0xffff0000
-_080EB5B4: .4byte 0x0000ffff
-_080EB5B8:
- movs r0, 0xFA
-_080EB5BA:
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _080EB56A
-_080EB5C8:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB544
-
- thumb_func_start unref_sub_80EB5E0
-unref_sub_80EB5E0: @ 80EB5E0
- push {lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB5F0
- cmp r3, r0
- bne _080EB5F4
- movs r0, 0
- b _080EB67C
- .align 2, 0
-_080EB5F0: .4byte 0x0000ffff
-_080EB5F4:
- lsrs r1, 25
- ldr r2, _080EB608
- ands r2, r3
- cmp r1, 0x13
- bgt _080EB60C
- cmp r1, 0x12
- bge _080EB620
- cmp r1, 0
- beq _080EB610
- b _080EB630
- .align 2, 0
-_080EB608: .4byte 0x000001ff
-_080EB60C:
- cmp r1, 0x15
- bne _080EB630
-_080EB610:
- movs r0, 0xB
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB61C
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB61C: .4byte gSpeciesNames
-_080EB620:
- movs r0, 0xD
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB62C
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB62C: .4byte gMoveNames
-_080EB630:
- ldr r0, _080EB664
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB668
- cmp r2, r0
- beq _080EB660
- adds r3, r0, 0
-_080EB646:
- ldrb r0, [r1]
- adds r1, 0x1
- subs r2, 0x1
- cmp r0, 0xFF
- beq _080EB658
-_080EB650:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFF
- bne _080EB650
-_080EB658:
- lsls r0, r2, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB646
-_080EB660:
- movs r2, 0
- b _080EB674
- .align 2, 0
-_080EB664: .4byte gEasyChatGroupWords
-_080EB668: .4byte 0x0000ffff
-_080EB66C:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB674:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB66C
- adds r0, r2, 0
-_080EB67C:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80EB5E0
-
- thumb_func_start sub_80EB680
-sub_80EB680: @ 80EB680
- movs r0, 0
- bx lr
- thumb_func_end sub_80EB680
-
- thumb_func_start unref_sub_80EB684
-unref_sub_80EB684: @ 80EB684
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0x7
- beq _080EB6B4
- cmp r0, 0x7
- bgt _080EB69E
- cmp r0, 0x5
- beq _080EB6A4
- b _080EB6EE
-_080EB69E:
- cmp r2, 0x8
- beq _080EB6C4
- b _080EB6EE
-_080EB6A4:
- movs r2, 0x6
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6B0
- b _080EB6CE
- .align 2, 0
-_080EB6B0: .4byte gSaveBlock1 + 0x273C
-_080EB6B4:
- movs r2, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6C0
- b _080EB6CE
- .align 2, 0
-_080EB6C0: .4byte gSaveBlock1 + 0x2754
-_080EB6C4:
- movs r2, 0x1
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6F4
-_080EB6CE:
- adds r1, r0, r1
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB6F8
- cmp r2, r0
- beq _080EB6EE
- adds r4, r0, 0
- adds r3, r0, 0
-_080EB6E0:
- strh r4, [r1]
- adds r1, 0x2
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB6E0
-_080EB6EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB6F4: .4byte gSaveBlock1 + 0x273A
-_080EB6F8: .4byte 0x0000ffff
- thumb_func_end unref_sub_80EB684
-
- thumb_func_start sub_80EB6FC
-sub_80EB6FC: @ 80EB6FC
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- ldr r0, _080EB724
- adds r1, r0
- lsrs r0, r1, 16
- ldr r1, _080EB728
- cmp r0, r1
- beq _080EB71E
- adds r3, r1, 0
-_080EB710:
- strh r3, [r2]
- adds r2, 0x2
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bne _080EB710
-_080EB71E:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB724: .4byte 0xffff0000
-_080EB728: .4byte 0x0000ffff
- thumb_func_end sub_80EB6FC
-
- thumb_func_start sub_80EB72C
-sub_80EB72C: @ 80EB72C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080EB778
- adds r1, r4, r1
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- beq _080EB758
- cmp r4, 0x15
- beq _080EB758
- cmp r4, 0x12
- beq _080EB758
- cmp r4, 0x13
- bne _080EB766
-_080EB758:
- ldr r1, _080EB77C
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r2, [r0]
-_080EB766:
- movs r0, 0x7F
- ands r0, r4
- lsls r0, 9
- ldr r1, _080EB780
- ands r2, r1
- orrs r0, r2
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB778: .4byte gEasyChatGroupSizes
-_080EB77C: .4byte gEasyChatGroupWords
-_080EB780: .4byte 0x000001ff
- thumb_func_end sub_80EB72C
-
- thumb_func_start sub_80EB784
-sub_80EB784: @ 80EB784
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EB7A0
- ldr r0, _080EB79C
- b _080EB7BE
- .align 2, 0
-_080EB79C: .4byte 0x0000ffff
-_080EB7A0:
- cmp r4, 0
- beq _080EB7AE
- cmp r4, 0x14
- bne _080EB7B4
- bl sub_80EB960
- b _080EB7BA
-_080EB7AE:
- bl sub_80EB9D8
- b _080EB7BA
-_080EB7B4:
- adds r0, r4, 0
- bl sub_80EB72C
-_080EB7BA:
- lsls r0, 16
- lsrs r0, 16
-_080EB7BE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB784
-
- thumb_func_start sub_80EB7C4
-sub_80EB7C4: @ 80EB7C4
- push {r4,r5,lr}
- ldr r0, _080EB7D8
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080EB7F0
- cmp r0, 0x1
- bgt _080EB7DC
- cmp r0, 0
- beq _080EB7E6
- b _080EB82E
- .align 2, 0
-_080EB7D8: .4byte gUnknown_0202E8CC
-_080EB7DC:
- cmp r0, 0x2
- beq _080EB810
- cmp r0, 0x3
- beq _080EB818
- b _080EB82E
-_080EB7E6:
- ldr r5, _080EB7EC
- movs r2, 0x2
- b _080EB81C
- .align 2, 0
-_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
-_080EB7F0:
- ldr r5, _080EB80C
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x14
- bl sub_80EB680
- lsls r0, 24
- cmp r0, 0
- beq _080EB81A
- movs r2, 0x2
- movs r3, 0x3
- b _080EB81E
- .align 2, 0
-_080EB80C: .4byte gSaveBlock1 + 0x2B28
-_080EB810:
- ldr r5, _080EB814
- b _080EB81A
- .align 2, 0
-_080EB814: .4byte gSaveBlock1 + 0x2B34
-_080EB818:
- ldr r5, _080EB834
-_080EB81A:
- movs r2, 0x3
-_080EB81C:
- movs r3, 0x2
-_080EB81E:
- ldr r4, _080EB838
- adds r0, r4, 0
- adds r1, r5, 0
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldAutoScrollMessage
-_080EB82E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB834: .4byte gSaveBlock1 + 0x2B40
-_080EB838: .4byte gStringVar4
- thumb_func_end sub_80EB7C4
-
- thumb_func_start sub_80EB83C
-sub_80EB83C: @ 80EB83C
- push {lr}
- bl Random
- movs r1, 0x1
- ands r1, r0
- movs r0, 0xC
- cmp r1, 0
- beq _080EB84E
- movs r0, 0xD
-_080EB84E:
- bl sub_80EB784
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080EB864
- bl sub_80EB3FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EB864: .4byte gStringVar2
- thumb_func_end sub_80EB83C
-
- thumb_func_start sub_80EB868
-sub_80EB868: @ 80EB868
- lsls r0, 24
- lsrs r2, r0, 27
- movs r1, 0xE0
- lsls r1, 19
- ands r1, r0
- lsrs r1, 24
- ldr r0, _080EB888
- ldr r3, _080EB88C
- adds r0, r3
- adds r2, r0
- ldrb r0, [r2]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_080EB888: .4byte gSaveBlock1
-_080EB88C: .4byte 0x00002d8c
- thumb_func_end sub_80EB868
-
- thumb_func_start sub_80EB890
-sub_80EB890: @ 80EB890
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x20
- bhi _080EB8B2
- lsrs r2, r0, 27
- movs r1, 0x7
- ands r1, r3
- ldr r0, _080EB8B8
- ldr r3, _080EB8BC
- adds r0, r3
- adds r2, r0
- movs r0, 0x1
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
-_080EB8B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB8B8: .4byte gSaveBlock1
-_080EB8BC: .4byte 0x00002d8c
- thumb_func_end sub_80EB890
-
- thumb_func_start sub_80EB8C0
-sub_80EB8C0: @ 80EB8C0
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_080EB8C6:
- adds r0, r4, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB8D8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080EB8D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x20
- bls _080EB8C6
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB8C0
-
- thumb_func_start sub_80EB8EC
-sub_80EB8EC: @ 80EB8EC
- push {r4-r6,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x21
- bne _080EB918
- b _080EB952
-_080EB8FC:
- adds r0, r5, 0
- bl sub_80EB890
- ldr r0, _080EB914
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB954
- .align 2, 0
-_080EB914: .4byte 0x000001ff
-_080EB918:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x21
- subs r1, r4
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
-_080EB92E:
- lsls r0, r4, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- bne _080EB948
- cmp r6, 0
- beq _080EB8FC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB948:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB92E
-_080EB952:
- ldr r0, _080EB95C
-_080EB954:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB95C: .4byte 0x0000ffff
- thumb_func_end sub_80EB8EC
-
- thumb_func_start sub_80EB960
-sub_80EB960: @ 80EB960
- push {r4,r5,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080EB984
- b _080EB9BA
-_080EB970:
- ldr r0, _080EB980
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB9BC
- .align 2, 0
-_080EB980: .4byte 0x000001ff
-_080EB984:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_080EB998:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB9B0
- cmp r5, 0
- beq _080EB970
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080EB9B0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB998
-_080EB9BA:
- ldr r0, _080EB9C4
-_080EB9BC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB9C4: .4byte 0x0000ffff
- thumb_func_end sub_80EB960
-
- thumb_func_start sub_80EB9C8
-sub_80EB9C8: @ 80EB9C8
- push {lr}
- bl sub_806912C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80EB9C8
-
- thumb_func_start sub_80EB9D8
-sub_80EB9D8: @ 80EB9D8
- push {r4-r7,lr}
- movs r0, 0
- bl sub_80EAE88
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080EB9F8
- b _080EBA46
-_080EB9EA:
- ldrh r1, [r5]
- ldr r0, _080EB9F4
- ands r0, r1
- b _080EBA48
- .align 2, 0
-_080EB9F4: .4byte 0x000001ff
-_080EB9F8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080EBA50
- ldr r5, [r0]
- movs r6, 0
- ldr r0, _080EBA54
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080EBA46
- adds r7, r0, 0
-_080EBA1A:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _080EBA3A
- cmp r4, 0
- beq _080EB9EA
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EBA3A:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EBA1A
-_080EBA46:
- ldr r0, _080EBA58
-_080EBA48:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EBA50: .4byte gEasyChatGroupWords
-_080EBA54: .4byte gEasyChatGroupSizes
-_080EBA58: .4byte 0x0000ffff
- thumb_func_end sub_80EB9D8
-
- thumb_func_start sub_80EBA5C
-sub_80EBA5C: @ 80EBA5C
- push {lr}
- ldr r0, _080EBA74
- ldr r2, _080EBA78
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bhi _080EBABC
- lsls r0, 2
- ldr r1, _080EBA7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBA74: .4byte gMain
-_080EBA78: .4byte 0x0000043c
-_080EBA7C: .4byte _080EBA80
- .align 2, 0
-_080EBA80:
- .4byte _080EBAC0
- .4byte _080EBB08
- .4byte _080EBB10
- .4byte _080EBB16
- .4byte _080EBB1C
- .4byte _080EBB22
- .4byte _080EBB28
- .4byte _080EBB2E
- .4byte _080EBB3E
- .4byte _080EBB4C
- .4byte _080EBB5C
- .4byte _080EBB6C
- .4byte _080EBB7C
- .4byte _080EBB90
- .4byte _080EBBA0
-_080EBABC:
- movs r0, 0
- strb r0, [r1]
-_080EBAC0:
- bl is_c1_link_related_active
- ldr r3, _080EBAF0
- ldr r2, _080EBAF4
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080EBBC0
- ldr r1, _080EBAF8
- adds r0, r3, r1
- strb r2, [r0]
- ldr r1, _080EBAFC
- ldr r2, _080EBB00
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBB04
- bl SetMainCallback2
- b _080EBBC0
- .align 2, 0
-_080EBAF0: .4byte 0x02000000
-_080EBAF4: .4byte 0x00006dac
-_080EBAF8: .4byte 0x00006dab
-_080EBAFC: .4byte gMain
-_080EBB00: .4byte 0x0000043c
-_080EBB04: .4byte sub_80EBBE8
-_080EBB08:
- movs r0, 0
- bl SetVBlankCallback
- b _080EBBC0
-_080EBB10:
- bl ResetPaletteFade
- b _080EBBC0
-_080EBB16:
- bl ResetSpriteData
- b _080EBBC0
-_080EBB1C:
- bl FreeAllSpritePalettes
- b _080EBBC0
-_080EBB22:
- bl ResetTasks
- b _080EBBC0
-_080EBB28:
- bl remove_some_task
- b _080EBBC0
-_080EBB2E:
- bl sub_80F1A90
- ldr r1, _080EBB44
- ldr r0, _080EBB48
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB3E:
- bl sub_80F1AC4
- b _080EBB80
- .align 2, 0
-_080EBB44: .4byte gMain
-_080EBB48: .4byte 0x0000043c
-_080EBB4C:
- bl sub_80F2688
- ldr r1, _080EBB64
- ldr r2, _080EBB68
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB5C:
- bl sub_80F26BC
- b _080EBB80
- .align 2, 0
-_080EBB64: .4byte gMain
-_080EBB68: .4byte 0x0000043c
-_080EBB6C:
- bl sub_80F36F0
- ldr r1, _080EBB88
- ldr r0, _080EBB8C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB7C:
- bl sub_80F3724
-_080EBB80:
- lsls r0, 24
- cmp r0, 0
- bne _080EBBCC
- b _080EBBC0
- .align 2, 0
-_080EBB88: .4byte gMain
-_080EBB8C: .4byte 0x0000043c
-_080EBB90:
- bl sub_80EBC10
- ldr r0, _080EBB9C
- bl sub_80EBDBC
- b _080EBBC0
- .align 2, 0
-_080EBB9C: .4byte sub_80EBDD8
-_080EBBA0:
- ldr r0, _080EBBD0
- ldr r1, _080EBBD4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x6E
- bl PlaySE
- ldr r0, _080EBBD8
- bl SetMainCallback2
- ldr r0, _080EBBDC
- bl SetVBlankCallback
- bl sub_80F1A74
-_080EBBC0:
- ldr r1, _080EBBE0
- ldr r2, _080EBBE4
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBBCC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EBBD0: .4byte 0x02000000
-_080EBBD4: .4byte 0x00006dab
-_080EBBD8: .4byte sub_80EBD90
-_080EBBDC: .4byte sub_80EBD18
-_080EBBE0: .4byte gMain
-_080EBBE4: .4byte 0x0000043c
- thumb_func_end sub_80EBA5C
-
- thumb_func_start sub_80EBBE8
-sub_80EBBE8: @ 80EBBE8
- push {r4,lr}
- ldr r0, _080EBC08
- ldr r2, _080EBC0C
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080EBC02
- adds r4, r1, 0
-_080EBBF8:
- bl sub_80EBA5C
- ldrb r0, [r4]
- cmp r0, 0
- beq _080EBBF8
-_080EBC02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC08: .4byte 0x02000000
-_080EBC0C: .4byte 0x00006dab
- thumb_func_end sub_80EBBE8
-
- thumb_func_start sub_80EBC10
-sub_80EBC10: @ 80EBC10
- push {r4-r7,lr}
- ldr r1, _080EBC7C
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r2, _080EBC80
- ldr r1, _080EBC84
- adds r3, r2, r1
- movs r1, 0
- strb r0, [r3]
- ldr r3, _080EBC88
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC8C
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC90
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080EBC94
- adds r0, r2, r3
- str r1, [r0]
- movs r3, 0
- ldr r0, _080EBC98
- adds r7, r2, r0
- mov r12, r2
- movs r6, 0
- ldr r5, _080EBC9C
- movs r4, 0x9B
-_080EBC4C:
- adds r0, r3, r7
- strb r6, [r0]
- lsls r1, r3, 2
- adds r1, r2
- adds r0, r1, r5
- strh r4, [r0]
- ldr r0, _080EBCA0
- adds r1, r0
- movs r0, 0x5B
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080EBC4C
- ldr r1, _080EBCA4
- add r1, r12
- movs r0, 0
- strb r0, [r1]
- bl sub_80EBCA8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC7C: .4byte gKeyRepeatStartDelay
-_080EBC80: .4byte 0x02000000
-_080EBC84: .4byte 0x00008828
-_080EBC88: .4byte 0x00006ddc
-_080EBC8C: .4byte 0x00009344
-_080EBC90: .4byte 0x00008768
-_080EBC94: .4byte 0x0000ced0
-_080EBC98: .4byte 0x00008fff
-_080EBC9C: .4byte 0x00009040
-_080EBCA0: .4byte 0x00009042
-_080EBCA4: .4byte 0x00006e95
- thumb_func_end sub_80EBC10
-
- thumb_func_start sub_80EBCA8
-sub_80EBCA8: @ 80EBCA8
- push {r4,lr}
- ldr r4, _080EBCDC
- ldr r0, _080EBCE0
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBCE4
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080EBCE8
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _080EBCEC
- bl FlagGet
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EBCF4
- ldr r0, _080EBCF0
- adds r1, r4, r0
- movs r0, 0x4
- strb r0, [r1]
- b _080EBCFA
- .align 2, 0
-_080EBCDC: .4byte 0x02000000
-_080EBCE0: .4byte 0x00006db2
-_080EBCE4: .4byte 0x00006db3
-_080EBCE8: .4byte 0x00006db4
-_080EBCEC: .4byte 0x0000083b
-_080EBCF0: .4byte 0x00006db5
-_080EBCF4:
- ldr r1, _080EBD0C
- adds r0, r4, r1
- strb r2, [r0]
-_080EBCFA:
- ldr r0, _080EBD10
- ldr r1, _080EBD14
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBD0C: .4byte 0x00006db5
-_080EBD10: .4byte 0x02000000
-_080EBD14: .4byte 0x00006db6
- thumb_func_end sub_80EBCA8
-
- thumb_func_start sub_80EBD18
-sub_80EBD18: @ 80EBD18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F1FF0
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD18
-
- thumb_func_start sub_80EBD30
-sub_80EBD30: @ 80EBD30
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80FB260
- bl sub_80EFE7C
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD30
-
- thumb_func_start sub_80EBD4C
-sub_80EBD4C: @ 80EBD4C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F5BF0
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD4C
-
- thumb_func_start sub_80EBD68
-sub_80EBD68: @ 80EBD68
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F6F64
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD68
-
- thumb_func_start sub_80EBD80
-sub_80EBD80: @ 80EBD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD80
-
- thumb_func_start sub_80EBD90
-sub_80EBD90: @ 80EBD90
- push {lr}
- ldr r0, _080EBDB8
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- bl sub_80F19FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EBDB8: .4byte 0x02000000
- thumb_func_end sub_80EBD90
-
- thumb_func_start sub_80EBDBC
-sub_80EBDBC: @ 80EBDBC
- ldr r2, _080EBDD4
- movs r3, 0xC0
- lsls r3, 2
- adds r1, r2, r3
- str r0, [r1]
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080EBDD4: .4byte 0x02000000
- thumb_func_end sub_80EBDBC
-
- thumb_func_start sub_80EBDD8
-sub_80EBDD8: @ 80EBDD8
- push {lr}
- sub sp, 0x4
- ldr r1, _080EBDF8
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x11
- bls _080EBDEE
- b _080EC000
-_080EBDEE:
- lsls r0, 2
- ldr r1, _080EBDFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBDF8: .4byte 0x02000000
-_080EBDFC: .4byte _080EBE00
- .align 2, 0
-_080EBE00:
- .4byte _080EBE48
- .4byte _080EBE80
- .4byte _080EBE92
- .4byte _080EBEAC
- .4byte _080EBEC0
- .4byte _080EBED2
- .4byte _080EBEF0
- .4byte _080EBF04
- .4byte _080EBF18
- .4byte _080EBF2C
- .4byte _080EBF48
- .4byte _080EBF54
- .4byte _080EBF74
- .4byte _080EBF88
- .4byte _080EBFA0
- .4byte _080EBFB4
- .4byte _080EBFD0
- .4byte _080EBFE8
-_080EBE48:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080EBE74
- ldr r3, _080EBE78
- adds r0, r1, r3
- ldrb r2, [r0]
- subs r3, 0x2F
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EBE7C
- adds r2, r1, r0
- movs r0, 0x5
- strb r0, [r2]
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBE74: .4byte 0x02000000
-_080EBE78: .4byte 0x00006ddc
-_080EBE7C: .4byte 0x00006dae
-_080EBE80:
- bl sub_80F3FF0
- ldr r1, _080EBEA8
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBE92:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- beq _080EBE9E
- b _080EC000
-_080EBE9E:
- ldr r1, _080EBEA8
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEA8: .4byte 0x02000000
-_080EBEAC:
- bl sub_80F2598
- ldr r1, _080EBEBC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBEBC: .4byte 0x02000000
-_080EBEC0:
- bl sub_80EEE20
- ldr r1, _080EBEEC
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBED2:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- beq _080EBEDE
- b _080EC000
-_080EBEDE:
- bl sub_80EEE08
- ldr r1, _080EBEEC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEEC: .4byte 0x02000000
-_080EBEF0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EBF14
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF04:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EBF12
- b _080EC000
-_080EBF12:
- b _080EBFD4
- .align 2, 0
-_080EBF14: .4byte 0x02000000
-_080EBF18:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EBF44
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF2C:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBF44
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF44: .4byte 0x02000000
-_080EBF48:
- ldr r0, _080EBF50
- bl SetVBlankCallback
- b _080EBFD4
- .align 2, 0
-_080EBF50: .4byte sub_80EBD18
-_080EBF54:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080EBF70
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBF70: .4byte 0x02000000
-_080EBF74:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EBF84
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF84: .4byte 0x02000000
-_080EBF88:
- ldr r0, _080EBF9C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r2, r3
- b _080EBFDC
- .align 2, 0
-_080EBF9C: .4byte gPaletteFade
-_080EBFA0:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EBFCC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBFB4:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBFCC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBFCC: .4byte 0x02000000
-_080EBFD0:
- bl sub_80F1DF0
-_080EBFD4:
- ldr r1, _080EBFE4
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080EBFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC000
- .align 2, 0
-_080EBFE4: .4byte 0x02000000
-_080EBFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- movs r0, 0
- movs r1, 0
- bl sub_80EF428
- ldr r0, _080EC008
- bl sub_80EBDBC
-_080EC000:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EC008: .4byte sub_80EC268
- thumb_func_end sub_80EBDD8
-
- thumb_func_start sub_80EC00C
-sub_80EC00C: @ 80EC00C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC02C
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080EC022
- b _080EC1FA
-_080EC022:
- lsls r0, 2
- ldr r1, _080EC030
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC02C: .4byte 0x02000000
-_080EC030: .4byte _080EC034
- .align 2, 0
-_080EC034:
- .4byte _080EC06C
- .4byte _080EC0C0
- .4byte _080EC0D4
- .4byte _080EC0F0
- .4byte _080EC104
- .4byte _080EC120
- .4byte _080EC12A
- .4byte _080EC154
- .4byte _080EC168
- .4byte _080EC180
- .4byte _080EC194
- .4byte _080EC1A8
- .4byte _080EC1C4
- .4byte _080EC1DC
-_080EC06C:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080EC078
- b _080EC1FA
-_080EC078:
- ldr r0, _080EC0AC
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080EC0B0
- ldr r1, _080EC0B4
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080EC0B8
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080EC0BC
- adds r1, r4, r0
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC1FA
- .align 2, 0
-_080EC0AC: .4byte sub_80EBD80
-_080EC0B0: .4byte 0x02000000
-_080EC0B4: .4byte 0x00006ddc
-_080EC0B8: .4byte 0x00006dad
-_080EC0BC: .4byte 0x00006dae
-_080EC0C0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EC0EC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC0D4:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EC0E2
- b _080EC1FA
-_080EC0E2:
- ldr r1, _080EC0EC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC0EC: .4byte 0x02000000
-_080EC0F0:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EC11C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC104:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080EC112
- b _080EC1FA
-_080EC112:
- ldr r1, _080EC11C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC11C: .4byte 0x02000000
-_080EC120:
- bl sub_8055870
- cmp r0, 0
- bne _080EC1FA
- b _080EC1C8
-_080EC12A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EC150
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC150: .4byte sub_80EBD18
-_080EC154:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EC164
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC164: .4byte 0x02000000
-_080EC168:
- ldr r0, _080EC17C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC1FA
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC17C: .4byte gPaletteFade
-_080EC180:
- bl sub_80F2598
- ldr r1, _080EC190
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC190: .4byte 0x02000000
-_080EC194:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EC1C0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC1A8:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r1, _080EC1C0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC1C0: .4byte 0x02000000
-_080EC1C4:
- bl sub_80F1DF0
-_080EC1C8:
- ldr r1, _080EC1D8
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080EC1D0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC1FA
- .align 2, 0
-_080EC1D8: .4byte 0x02000000
-_080EC1DC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r0, _080EC204
- ldr r1, _080EC208
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- ldr r0, _080EC20C
- bl sub_80EBDBC
-_080EC1FA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC204: .4byte 0x02000000
-_080EC208: .4byte 0x00006dad
-_080EC20C: .4byte sub_80EC268
- thumb_func_end sub_80EC00C
-
- thumb_func_start sub_80EC210
-sub_80EC210: @ 80EC210
- push {r4,r5,lr}
- ldr r5, _080EC228
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC22C
- cmp r0, 0x1
- beq _080EC24C
- b _080EC25C
- .align 2, 0
-_080EC228: .4byte 0x02000000
-_080EC22C:
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080EC248
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC25C
- .align 2, 0
-_080EC248: .4byte 0x00006ddc
-_080EC24C:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC25C
- ldr r0, _080EC264
- bl sub_80EBDBC
-_080EC25C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC264: .4byte sub_80EC268
- thumb_func_end sub_80EC210
-
- thumb_func_start sub_80EC268
-sub_80EC268: @ 80EC268
- push {r4-r6,lr}
- ldr r4, _080EC290
- movs r0, 0xC1
- lsls r0, 2
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0x3
- bne _080EC27A
- b _080EC3BE
-_080EC27A:
- cmp r0, 0x3
- bgt _080EC294
- cmp r0, 0x1
- bne _080EC284
- b _080EC3A2
-_080EC284:
- cmp r0, 0x1
- ble _080EC28A
- b _080EC3B4
-_080EC28A:
- cmp r0, 0
- beq _080EC2AE
- b _080EC492
- .align 2, 0
-_080EC290: .4byte 0x02000000
-_080EC294:
- cmp r0, 0x6
- bne _080EC29A
- b _080EC414
-_080EC29A:
- cmp r0, 0x6
- bgt _080EC2A6
- cmp r0, 0x4
- bne _080EC2A4
- b _080EC3DC
-_080EC2A4:
- b _080EC492
-_080EC2A6:
- cmp r0, 0xFF
- bne _080EC2AC
- b _080EC44C
-_080EC2AC:
- b _080EC492
-_080EC2AE:
- bl sub_80EEC10
- lsls r0, 24
- cmp r0, 0
- beq _080EC2D4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC2D0
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC2D0: .4byte 0x00006dad
-_080EC2D4:
- ldr r0, _080EC310
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080EC394
- ldr r2, _080EC314
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x2F
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r2, 0x2A
- adds r1, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bls _080EC304
- b _080EC492
-_080EC304:
- lsls r0, 2
- ldr r1, _080EC318
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC310: .4byte gMain
-_080EC314: .4byte 0x00006dad
-_080EC318: .4byte _080EC31C
- .align 2, 0
-_080EC31C:
- .4byte _080EC330
- .4byte _080EC344
- .4byte _080EC380
- .4byte _080EC36C
- .4byte _080EC358
-_080EC330:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC340
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC340: .4byte sub_80EC4A0
-_080EC344:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC354
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC354: .4byte sub_80EC81C
-_080EC358:
- ldr r0, _080EC368
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC368: .4byte 0x02000000
-_080EC36C:
- ldr r0, _080EC37C
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC37C: .4byte 0x02000000
-_080EC380:
- ldr r0, _080EC390
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC390: .4byte 0x02000000
-_080EC394:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080EC39E
- b _080EC492
-_080EC39E:
- strh r2, [r6]
- b _080EC492
-_080EC3A2:
- bl sub_80F208C
- ldr r0, _080EC3B0
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC3B0: .4byte sub_80EE96C
-_080EC3B4:
- bl sub_80F6208
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
-_080EC3BE:
- bl sub_80F6250
- lsls r0, 24
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC3D8
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC492
- .align 2, 0
-_080EC3D8: .4byte 0x02000000
-_080EC3DC:
- bl sub_8055870
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC400
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080EC408
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC404
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC400: .4byte 0x00008fe8
-_080EC404: .4byte sub_80EDB88
-_080EC408:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x5
- b _080EC442
-_080EC414:
- bl sub_80F6C20
- ldr r2, _080EC430
- adds r0, r4, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EC438
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC434
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC430: .4byte 0x0000d158
-_080EC434: .4byte sub_80EE3D8
-_080EC438:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x6
-_080EC442:
- bl sub_80EF428
- movs r0, 0xFF
- strh r0, [r6]
- b _080EC492
-_080EC44C:
- bl sub_80EEC10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080EC478
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC474
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- movs r0, 0
- strh r0, [r6]
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC474: .4byte 0x00006dad
-_080EC478:
- ldr r0, _080EC498
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080EC492
- ldr r2, _080EC49C
- adds r0, r4, r2
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- strh r5, [r6]
-_080EC492:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC498: .4byte gMain
-_080EC49C: .4byte 0x00006dad
- thumb_func_end sub_80EC268
-
- thumb_func_start sub_80EC4A0
-sub_80EC4A0: @ 80EC4A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC4C0
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xE
- bls _080EC4B6
- b _080EC66A
-_080EC4B6:
- lsls r0, 2
- ldr r1, _080EC4C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC4C0: .4byte 0x02000000
-_080EC4C4: .4byte _080EC4C8
- .align 2, 0
-_080EC4C8:
- .4byte _080EC504
- .4byte _080EC510
- .4byte _080EC544
- .4byte _080EC578
- .4byte _080EC594
- .4byte _080EC5A8
- .4byte _080EC5AE
- .4byte _080EC5C0
- .4byte _080EC5D0
- .4byte _080EC5E4
- .4byte _080EC5F8
- .4byte _080EC614
- .4byte _080EC61E
- .4byte _080EC63E
- .4byte _080EC658
-_080EC504:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EC644
-_080EC510:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EC51C
- b _080EC66A
-_080EC51C:
- ldr r0, _080EC53C
- ldrb r1, [r0, 0x15]
- movs r0, 0x8
- ands r0, r1
- movs r1, 0x8
- cmp r0, 0
- beq _080EC52C
- movs r1, 0x7
-_080EC52C:
- adds r0, r1, 0
- bl sub_80EEFBC
- ldr r1, _080EC540
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC53C: .4byte gSaveBlock2
-_080EC540: .4byte 0x02000000
-_080EC544:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EC552
- b _080EC66A
-_080EC552:
- ldr r4, _080EC574
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
- .align 2, 0
-_080EC574: .4byte 0x02000000
-_080EC578:
- ldr r0, _080EC590
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- b _080EC644
- .align 2, 0
-_080EC590: .4byte gPaletteFade
-_080EC594:
- bl sub_80F2620
- ldr r1, _080EC5A4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC5A4: .4byte 0x02000000
-_080EC5A8:
- bl sub_80EF814
- b _080EC644
-_080EC5AE:
- bl sub_80EF840
- ldr r1, _080EC5CC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5C0:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5CC: .4byte 0x02000000
-_080EC5D0:
- movs r0, 0x4
- bl sub_80F2C80
- ldr r1, _080EC5F4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5E4:
- movs r0, 0x4
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5F4: .4byte 0x02000000
-_080EC5F8:
- bl sub_80F2DD8
- ldr r0, _080EC60C
- bl SetVBlankCallback
- ldr r1, _080EC610
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC60C: .4byte sub_80EBD30
-_080EC610: .4byte 0x02000000
-_080EC614:
- bl sub_8055870
- cmp r0, 0
- bne _080EC66A
- b _080EC644
-_080EC61E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
-_080EC63E:
- movs r0, 0x1
- bl sub_80EED2C
-_080EC644:
- ldr r1, _080EC654
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EC64C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC66A
- .align 2, 0
-_080EC654: .4byte 0x02000000
-_080EC658:
- ldr r0, _080EC674
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- ldr r0, _080EC678
- bl sub_80EBDBC
-_080EC66A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC674: .4byte gPaletteFade
-_080EC678: .4byte sub_80EC67C
- thumb_func_end sub_80EC4A0
-
- thumb_func_start sub_80EC67C
-sub_80EC67C: @ 80EC67C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080EC69C
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080EC692
- b _080EC800
-_080EC692:
- lsls r0, 2
- ldr r1, _080EC6A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC69C: .4byte 0x02000000
-_080EC6A0: .4byte _080EC6A4
- .align 2, 0
-_080EC6A4:
- .4byte _080EC6BC
- .4byte _080EC718
- .4byte _080EC746
- .4byte _080EC77C
- .4byte _080EC7A0
- .4byte _080EC7C4
-_080EC6BC:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080EC6E2
- cmp r0, 0x3
- bgt _080EC6D2
- cmp r0, 0x1
- beq _080EC6DC
- b _080EC800
-_080EC6D2:
- cmp r0, 0x4
- beq _080EC6E8
- cmp r0, 0x5
- beq _080EC700
- b _080EC800
-_080EC6DC:
- bl sub_80EED9C
- b _080EC800
-_080EC6E2:
- bl sub_80EF9F8
- b _080EC800
-_080EC6E8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC6FC
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC6FC: .4byte 0x02000000
-_080EC700:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC714
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC714: .4byte 0x02000000
-_080EC718:
- ldr r1, _080EC730
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EC734
- bl sub_80FAEC4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC7BC
- .align 2, 0
-_080EC730: .4byte 0x00006e90
-_080EC734:
- movs r0, 0x1
- bl sub_80EFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- bl sub_80FAEC4
- b _080EC7B6
-_080EC746:
- bl sub_80FAFC0
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- ldr r5, _080EC76C
- ldr r1, _080EC770
- adds r0, r5, r1
- ldrb r4, [r0]
- cmp r4, 0
- bne _080EC774
- bl sub_80EFBB0
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r5, r2
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC76C: .4byte 0x02000000
-_080EC770: .4byte 0x00006e90
-_080EC774:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
- b _080EC7BC
-_080EC77C:
- movs r0, 0
- bl sub_80EFBDC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EC800
- bl sub_80EFBB0
- ldr r0, _080EC79C
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC79C: .4byte 0x02000000
-_080EC7A0:
- movs r2, 0xC2
- lsls r2, 2
- adds r0, r4, r2
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080EC7B6:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EC7BC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC800
-_080EC7C4:
- ldr r0, _080EC808
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC800
- bl sub_80F2DF4
- movs r0, 0x4
- bl sub_80F2D04
- ldr r3, _080EC80C
- movs r2, 0
- ldr r0, _080EC810
- ldr r1, _080EC814
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EC7EC
- movs r2, 0x1
-_080EC7EC:
- lsls r2, 3
- ldrb r1, [r3, 0x15]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- ldr r0, _080EC818
- bl sub_80EBDBC
-_080EC800:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC808: .4byte gPaletteFade
-_080EC80C: .4byte gSaveBlock2
-_080EC810: .4byte 0x02000000
-_080EC814: .4byte 0x00006e90
-_080EC818: .4byte sub_80EC00C
- thumb_func_end sub_80EC67C
-
- thumb_func_start sub_80EC81C
-sub_80EC81C: @ 80EC81C
- push {r4,lr}
- ldr r0, _080EC834
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC838
- cmp r0, 0x1
- beq _080EC850
- b _080EC860
- .align 2, 0
-_080EC834: .4byte 0x02000000
-_080EC838:
- movs r0, 0
- bl sub_80F2D04
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC860
-_080EC850:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC860
- ldr r0, _080EC868
- bl sub_80EBDBC
-_080EC860:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC868: .4byte sub_80EC86C
- thumb_func_end sub_80EC81C
-
- thumb_func_start sub_80EC86C
-sub_80EC86C: @ 80EC86C
- push {r4-r6,lr}
- ldr r4, _080EC884
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080EC888
- cmp r0, 0x1
- beq _080EC944
- b _080EC954
- .align 2, 0
-_080EC884: .4byte 0x02000000
-_080EC888:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080EC8B0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC8AC
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC954
- .align 2, 0
-_080EC8AC: .4byte 0x00006dad
-_080EC8B0:
- ldr r0, _080EC8E4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EC918
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080EC8E8
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x43
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080EC900
- cmp r0, 0x1
- bgt _080EC8EC
- cmp r0, 0
- beq _080EC8F2
- b _080EC954
- .align 2, 0
-_080EC8E4: .4byte gMain
-_080EC8E8: .4byte 0x00006dad
-_080EC8EC:
- cmp r0, 0x2
- beq _080EC90C
- b _080EC954
-_080EC8F2:
- ldr r0, _080EC8FC
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC8FC: .4byte sub_80ED620
-_080EC900:
- ldr r0, _080EC908
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC908: .4byte sub_80EC960
-_080EC90C:
- ldr r0, _080EC914
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC914: .4byte sub_80EC210
-_080EC918:
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EC954
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC93C
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _080EC940
- adds r0, r4, r2
- strb r6, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EC954
- .align 2, 0
-_080EC93C: .4byte 0x00006df0
-_080EC940: .4byte 0x00006dad
-_080EC944:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080EC954
- ldr r0, _080EC95C
- bl sub_80EBDBC
-_080EC954:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC95C: .4byte sub_80EC210
- thumb_func_end sub_80EC86C
-
- thumb_func_start sub_80EC960
-sub_80EC960: @ 80EC960
- push {r4,lr}
- ldr r0, _080EC978
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC97C
- cmp r0, 0x1
- beq _080EC98E
- b _080EC99E
- .align 2, 0
-_080EC978: .4byte 0x02000000
-_080EC97C:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x5
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC99E
-_080EC98E:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC99E
- ldr r0, _080EC9A4
- bl sub_80EBDBC
-_080EC99E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC9A4: .4byte sub_80ECC08
- thumb_func_end sub_80EC960
-
- thumb_func_start sub_80EC9A8
-sub_80EC9A8: @ 80EC9A8
- push {r4,r5,lr}
- ldr r5, _080EC9C0
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC9C4
- cmp r0, 0x1
- beq _080EC9E4
- b _080ECA00
- .align 2, 0
-_080EC9C0: .4byte 0x02000000
-_080EC9C4:
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080EC9E0
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xC
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECA00
- .align 2, 0
-_080EC9E0: .4byte 0x00006df0
-_080EC9E4:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080ECA00
- ldr r0, _080ECA08
- bl sub_80EBDBC
- ldr r1, _080ECA0C
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
-_080ECA00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECA08: .4byte sub_80EC86C
-_080ECA0C: .4byte 0x00006dad
- thumb_func_end sub_80EC9A8
-
- thumb_func_start sub_80ECA10
-sub_80ECA10: @ 80ECA10
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECA30
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080ECA26
- b _080ECBF2
-_080ECA26:
- lsls r0, 2
- ldr r1, _080ECA34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECA30: .4byte 0x02000000
-_080ECA34: .4byte _080ECA38
- .align 2, 0
-_080ECA38:
- .4byte _080ECA70
- .4byte _080ECAC4
- .4byte _080ECAD8
- .4byte _080ECAF4
- .4byte _080ECB08
- .4byte _080ECB24
- .4byte _080ECB2E
- .4byte _080ECB58
- .4byte _080ECB6C
- .4byte _080ECB72
- .4byte _080ECB8C
- .4byte _080ECBA0
- .4byte _080ECBBC
- .4byte _080ECBD4
-_080ECA70:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECA7C
- b _080ECBF2
-_080ECA7C:
- ldr r0, _080ECAB0
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080ECAB4
- ldr r1, _080ECAB8
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECABC
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080ECAC0
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECBF2
- .align 2, 0
-_080ECAB0: .4byte sub_80EBD80
-_080ECAB4: .4byte 0x02000000
-_080ECAB8: .4byte 0x00006df0
-_080ECABC: .4byte 0x00006dad
-_080ECAC0: .4byte 0x00006dae
-_080ECAC4:
- movs r0, 0x1
- bl sub_80EF248
- ldr r1, _080ECAF0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECAD8:
- movs r0, 0x1
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECAE6
- b _080ECBF2
-_080ECAE6:
- ldr r1, _080ECAF0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECAF0: .4byte 0x02000000
-_080ECAF4:
- movs r0, 0x1
- bl sub_80F1B8C
- ldr r1, _080ECB20
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECB08:
- movs r0, 0x1
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECB20
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB20: .4byte 0x02000000
-_080ECB24:
- bl sub_8055870
- cmp r0, 0
- bne _080ECBF2
- b _080ECBC0
-_080ECB2E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECB54
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECBC8
- .align 2, 0
-_080ECB54: .4byte sub_80EBD18
-_080ECB58:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080ECB68
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB68: .4byte 0x02000000
-_080ECB6C:
- bl sub_80F2598
- b _080ECBC0
-_080ECB72:
- ldr r0, _080ECB88
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ECBF2
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECBC8
- .align 2, 0
-_080ECB88: .4byte gPaletteFade
-_080ECB8C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECBB8
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECBA0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECBB8
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECBB8: .4byte 0x02000000
-_080ECBBC:
- bl sub_80F1DF0
-_080ECBC0:
- ldr r1, _080ECBD0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ECBC8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ECBF2
- .align 2, 0
-_080ECBD0: .4byte 0x02000000
-_080ECBD4:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r0, _080ECBFC
- ldr r1, _080ECC00
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- ldr r0, _080ECC04
- bl sub_80EBDBC
-_080ECBF2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECBFC: .4byte 0x02000000
-_080ECC00: .4byte 0x00006dad
-_080ECC04: .4byte sub_80EC86C
- thumb_func_end sub_80ECA10
-
- thumb_func_start sub_80ECC08
-sub_80ECC08: @ 80ECC08
- push {r4,r5,lr}
- ldr r4, _080ECC20
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080ECC24
- cmp r0, 0x1
- bne _080ECC1E
- b _080ECD64
-_080ECC1E:
- b _080ECD74
- .align 2, 0
-_080ECC20: .4byte 0x02000000
-_080ECC24:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080ECC4C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080ECC48
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- bl sub_80EED9C
- b _080ECD74
- .align 2, 0
-_080ECC48: .4byte 0x00006dad
-_080ECC4C:
- ldr r0, _080ECC78
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080ECC5A
- b _080ECD40
-_080ECC5A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECC7C
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _080ECD0C
- lsls r0, 2
- ldr r1, _080ECC80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECC78: .4byte gMain
-_080ECC7C: .4byte 0x00006dad
-_080ECC80: .4byte _080ECC84
- .align 2, 0
-_080ECC84:
- .4byte _080ECC9C
- .4byte _080ECCB0
- .4byte _080ECCC4
- .4byte _080ECCD8
- .4byte _080ECCEC
- .4byte _080ECD00
-_080ECC9C:
- ldr r0, _080ECCA8
- ldr r3, _080ECCAC
- adds r0, r3
- movs r1, 0x16
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCA8: .4byte 0x02000000
-_080ECCAC: .4byte 0x000087d8
-_080ECCB0:
- ldr r0, _080ECCBC
- ldr r1, _080ECCC0
- adds r0, r1
- movs r1, 0x17
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCBC: .4byte 0x02000000
-_080ECCC0: .4byte 0x000087d8
-_080ECCC4:
- ldr r0, _080ECCD0
- ldr r2, _080ECCD4
- adds r0, r2
- movs r1, 0x18
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCD0: .4byte 0x02000000
-_080ECCD4: .4byte 0x000087d8
-_080ECCD8:
- ldr r0, _080ECCE4
- ldr r3, _080ECCE8
- adds r0, r3
- movs r1, 0x21
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCE4: .4byte 0x02000000
-_080ECCE8: .4byte 0x000087d8
-_080ECCEC:
- ldr r0, _080ECCF8
- ldr r1, _080ECCFC
- adds r0, r1
- movs r1, 0x2F
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCF8: .4byte 0x02000000
-_080ECCFC: .4byte 0x000087d8
-_080ECD00:
- ldr r0, _080ECD08
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD08: .4byte sub_80EC9A8
-_080ECD0C:
- ldr r1, _080ECD2C
- ldr r2, _080ECD30
- adds r0, r1, r2
- ldrb r2, [r0]
- ldr r3, _080ECD34
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080ECD38
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080ECD3C
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD2C: .4byte 0x02000000
-_080ECD30: .4byte 0x00006dad
-_080ECD34: .4byte 0x00006dfc
-_080ECD38: .4byte 0x000076aa
-_080ECD3C: .4byte sub_80ED01C
-_080ECD40:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ECD74
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECD60
- adds r1, r4, r2
- movs r0, 0x5
- strb r0, [r1]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080ECD74
- .align 2, 0
-_080ECD60: .4byte 0x00006dad
-_080ECD64:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080ECD74
- ldr r0, _080ECD7C
- bl sub_80EBDBC
-_080ECD74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECD7C: .4byte sub_80EC9A8
- thumb_func_end sub_80ECC08
-
- thumb_func_start sub_80ECD80
-sub_80ECD80: @ 80ECD80
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECDA0
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x14
- bls _080ECD96
- b _080ED006
-_080ECD96:
- lsls r0, 2
- ldr r1, _080ECDA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECDA0: .4byte 0x02000000
-_080ECDA4: .4byte _080ECDA8
- .align 2, 0
-_080ECDA8:
- .4byte _080ECDFC
- .4byte _080ECE1A
- .4byte _080ECE34
- .4byte _080ECE4C
- .4byte _080ECE64
- .4byte _080ECE78
- .4byte _080ECE80
- .4byte _080ECEAC
- .4byte _080ECEC0
- .4byte _080ECED4
- .4byte _080ECEE8
- .4byte _080ECF04
- .4byte _080ECF10
- .4byte _080ECF3C
- .4byte _080ECF44
- .4byte _080ECF58
- .4byte _080ECF70
- .4byte _080ECF84
- .4byte _080ECFB0
- .4byte _080ECFC4
- .4byte _080ECFE8
-_080ECDFC:
- movs r3, 0xC2
- lsls r3, 2
- adds r0, r4, r3
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
-_080ECE1A:
- ldr r0, _080ECE30
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ECE28
- b _080ED006
-_080ECE28:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECE30: .4byte gPaletteFade
-_080ECE34:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECE40
- b _080ED006
-_080ECE40:
- ldr r0, _080ECE48
- bl SetVBlankCallback
- b _080ECFD4
- .align 2, 0
-_080ECE48: .4byte sub_80EBD80
-_080ECE4C:
- bl sub_80EED1C
- bl sub_80F3130
- ldr r1, _080ECE60
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECE60: .4byte 0x02000000
-_080ECE64:
- movs r0, 0x1
- bl sub_80F2D6C
- ldr r1, _080ECE74
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECE74: .4byte 0x02000000
-_080ECE78:
- movs r0, 0x5
- bl sub_80F2D6C
- b _080ECFD4
-_080ECE80:
- ldr r1, _080ECEA0
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECEA4
- adds r0, r4, r2
- strb r1, [r0]
- ldr r3, _080ECEA8
- adds r1, r4, r3
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80EEE08
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
- .align 2, 0
-_080ECEA0: .4byte 0x00006dfc
-_080ECEA4: .4byte 0x00006dad
-_080ECEA8: .4byte 0x00006dae
-_080ECEAC:
- movs r0, 0x2
- bl sub_80EF248
- ldr r1, _080ECED0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEC0:
- movs r0, 0x2
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECECE
- b _080ED006
-_080ECECE:
- b _080ECFD4
- .align 2, 0
-_080ECED0: .4byte 0x02000000
-_080ECED4:
- movs r0, 0x2
- bl sub_80F1B8C
- ldr r1, _080ECF00
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEE8:
- movs r0, 0x2
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080ECEF6
- b _080ED006
-_080ECEF6:
- ldr r1, _080ECF00
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECF00: .4byte 0x02000000
-_080ECF04:
- bl sub_8055870
- cmp r0, 0
- beq _080ECF0E
- b _080ED006
-_080ECF0E:
- b _080ECFD4
-_080ECF10:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECF38
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF38: .4byte sub_80EBD18
-_080ECF3C:
- movs r0, 0
- bl sub_80EED2C
- b _080ECFD4
-_080ECF44:
- bl sub_80F2598
- ldr r1, _080ECF54
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECF54: .4byte 0x02000000
-_080ECF58:
- ldr r0, _080ECF6C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED006
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF6C: .4byte gPaletteFade
-_080ECF70:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECFA8
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECF84:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED006
- ldr r0, _080ECFA8
- ldr r3, _080ECFAC
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED006
- .align 2, 0
-_080ECFA8: .4byte 0x02000000
-_080ECFAC: .4byte 0x00000306
-_080ECFB0:
- movs r0, 0x5
- bl sub_80F2C80
- ldr r1, _080ECFE4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECFC4:
- movs r0, 0x5
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- bl sub_80F1DF0
-_080ECFD4:
- ldr r1, _080ECFE4
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080ECFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED006
- .align 2, 0
-_080ECFE4: .4byte 0x02000000
-_080ECFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- ldr r0, _080ED010
- ldr r1, _080ED014
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- ldr r0, _080ED018
- bl sub_80EBDBC
-_080ED006:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED010: .4byte 0x02000000
-_080ED014: .4byte 0x00006dad
-_080ED018: .4byte sub_80ECC08
- thumb_func_end sub_80ECD80
-
- thumb_func_start sub_80ED01C
-sub_80ED01C: @ 80ED01C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED03C
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x13
- bls _080ED032
- b _080ED308
-_080ED032:
- lsls r0, 2
- ldr r1, _080ED040
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED03C: .4byte 0x02000000
-_080ED040: .4byte _080ED044
- .align 2, 0
-_080ED044:
- .4byte _080ED094
- .4byte _080ED0B4
- .4byte _080ED0D4
- .4byte _080ED108
- .4byte _080ED138
- .4byte _080ED14C
- .4byte _080ED15E
- .4byte _080ED18C
- .4byte _080ED1AC
- .4byte _080ED1C4
- .4byte _080ED1D8
- .4byte _080ED1F4
- .4byte _080ED208
- .4byte _080ED220
- .4byte _080ED24C
- .4byte _080ED260
- .4byte _080ED28C
- .4byte _080ED2A0
- .4byte _080ED2CC
- .4byte _080ED2EA
-_080ED094:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080ED0B0
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED0B0: .4byte 0x02000000
-_080ED0B4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED0C0
- b _080ED308
-_080ED0C0:
- movs r0, 0
- bl sub_80EEFBC
- ldr r1, _080ED0D0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED0D0: .4byte 0x02000000
-_080ED0D4:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED0E2
- b _080ED308
-_080ED0E2:
- ldr r4, _080ED104
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED104: .4byte 0x02000000
-_080ED108:
- ldr r0, _080ED130
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED116
- b _080ED308
-_080ED116:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r1, _080ED134
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED130: .4byte gPaletteFade
-_080ED134: .4byte 0x02000000
-_080ED138:
- bl sub_80F2620
- ldr r1, _080ED148
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED148: .4byte 0x02000000
-_080ED14C:
- bl sub_80F4D44
- ldr r1, _080ED178
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED15E:
- bl sub_80F4D88
- lsls r0, 24
- cmp r0, 0
- bne _080ED17C
- ldr r1, _080ED178
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED178: .4byte 0x02000000
-_080ED17C:
- ldr r1, _080ED188
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED188: .4byte 0x02000000
-_080ED18C:
- bl sub_8055870
- cmp r0, 0
- beq _080ED196
- b _080ED308
-_080ED196:
- ldr r1, _080ED1A8
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED1A8: .4byte 0x02000000
-_080ED1AC:
- bl sub_8055870
- cmp r0, 0
- beq _080ED1B6
- b _080ED308
-_080ED1B6:
- ldr r1, _080ED1C0
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED1C0: .4byte 0x02000000
-_080ED1C4:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED1F0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED1D8:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- beq _080ED1E4
- b _080ED308
-_080ED1E4:
- ldr r1, _080ED1F0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED27C
- .align 2, 0
-_080ED1F0: .4byte 0x02000000
-_080ED1F4:
- movs r0, 0
- bl sub_80F3008
- ldr r1, _080ED204
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED204: .4byte 0x02000000
-_080ED208:
- bl sub_8055870
- cmp r0, 0
- beq _080ED212
- b _080ED308
-_080ED212:
- ldr r1, _080ED21C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED21C: .4byte 0x02000000
-_080ED220:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED248
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED248: .4byte sub_80EBD18
-_080ED24C:
- movs r0, 0x4
- bl sub_80EED2C
- ldr r1, _080ED25C
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED25C: .4byte 0x02000000
-_080ED260:
- ldr r0, _080ED284
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080ED308
- ldr r2, _080ED288
- adds r0, r4, r2
- strh r1, [r0]
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r4, r3
-_080ED27C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED284: .4byte gPaletteFade
-_080ED288: .4byte 0x00000306
-_080ED28C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED2C4
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED2A0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED308
- ldr r0, _080ED2C4
- ldr r3, _080ED2C8
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED308
- .align 2, 0
-_080ED2C4: .4byte 0x02000000
-_080ED2C8: .4byte 0x00000306
-_080ED2CC:
- ldr r4, _080ED310
- ldr r2, _080ED314
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2C80
- movs r3, 0xC1
- lsls r3, 2
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080ED2EA:
- ldr r0, _080ED310
- ldr r1, _080ED314
- adds r0, r1
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED308
- ldr r0, _080ED318
- bl sub_80EBDBC
-_080ED308:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED310: .4byte 0x02000000
-_080ED314: .4byte 0x00006dfc
-_080ED318: .4byte sub_80ED31C
- thumb_func_end sub_80ED01C
-
- thumb_func_start sub_80ED31C
-sub_80ED31C: @ 80ED31C
- push {r4,lr}
- ldr r0, _080ED338
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080ED3A8
- cmp r0, 0x1
- bgt _080ED33C
- cmp r0, 0
- beq _080ED342
- b _080ED3CA
- .align 2, 0
-_080ED338: .4byte 0x02000000
-_080ED33C:
- cmp r0, 0x2
- beq _080ED3C0
- b _080ED3CA
-_080ED342:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080ED374
- cmp r0, 0x2
- beq _080ED380
- ldr r0, _080ED36C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ED38C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED370
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED36C: .4byte gMain
-_080ED370: .4byte sub_80ED4D8
-_080ED374:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080ED3CA
-_080ED380:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED38C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ED3CA
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED3A4
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED3A4: .4byte sub_80ECD80
-_080ED3A8:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080ED3CA
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED3C0:
- bl sub_8055870
- cmp r0, 0
- bne _080ED3CA
-_080ED3C8:
- strh r0, [r4]
-_080ED3CA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED31C
-
- thumb_func_start sub_80ED3D0
-sub_80ED3D0: @ 80ED3D0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080ED3EC
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080ED4C6
- lsls r0, 2
- ldr r1, _080ED3F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED3EC: .4byte 0x02000000
-_080ED3F0: .4byte _080ED3F4
- .align 2, 0
-_080ED3F4:
- .4byte _080ED418
- .4byte _080ED420
- .4byte _080ED42A
- .4byte _080ED432
- .4byte _080ED446
- .4byte _080ED458
- .4byte _080ED462
- .4byte _080ED498
- .4byte _080ED4B4
-_080ED418:
- movs r0, 0
- bl SetVBlankCallback
- b _080ED49E
-_080ED420:
- bl sub_80EED0C
- bl sub_80F6134
- b _080ED49E
-_080ED42A:
- movs r0, 0
- bl sub_80EEFBC
- b _080ED49E
-_080ED432:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED454
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED446:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
- .align 2, 0
-_080ED454: .4byte 0x02000000
-_080ED458:
- bl sub_8055870
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
-_080ED462:
- movs r0, 0
- bl sub_80F3008
- ldr r4, _080ED490
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED494
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ED4A6
- .align 2, 0
-_080ED490: .4byte 0x02000000
-_080ED494: .4byte sub_80EBD18
-_080ED498:
- movs r0, 0x4
- bl sub_80EED2C
-_080ED49E:
- ldr r1, _080ED4B0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED4A6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED4C6
- .align 2, 0
-_080ED4B0: .4byte 0x02000000
-_080ED4B4:
- ldr r0, _080ED4D0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED4C6
- ldr r0, _080ED4D4
- bl sub_80EBDBC
-_080ED4C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED4D0: .4byte gPaletteFade
-_080ED4D4: .4byte sub_80ED31C
- thumb_func_end sub_80ED3D0
-
- thumb_func_start sub_80ED4D8
-sub_80ED4D8: @ 80ED4D8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED4F8
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080ED4EE
- b _080ED60E
-_080ED4EE:
- lsls r0, 2
- ldr r1, _080ED4FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED4F8: .4byte 0x02000000
-_080ED4FC: .4byte _080ED500
- .align 2, 0
-_080ED500:
- .4byte _080ED524
- .4byte _080ED542
- .4byte _080ED564
- .4byte _080ED57C
- .4byte _080ED582
- .4byte _080ED594
- .4byte _080ED5A4
- .4byte _080ED5E0
- .4byte _080ED5FC
-_080ED524:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
-_080ED542:
- ldr r0, _080ED560
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- b _080ED5E6
- .align 2, 0
-_080ED560: .4byte gPaletteFade
-_080ED564:
- bl sub_8055870
- cmp r0, 0
- bne _080ED60E
- ldr r1, _080ED578
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED5EE
- .align 2, 0
-_080ED578: .4byte 0x02000000
-_080ED57C:
- bl sub_80F4CF0
- b _080ED5E6
-_080ED582:
- bl sub_80EFF34
- ldr r1, _080ED5A0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED594:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080ED60E
- b _080ED5E6
- .align 2, 0
-_080ED5A0: .4byte 0x02000000
-_080ED5A4:
- bl sub_80F35B4
- movs r0, 0x2
- bl sub_80EEFBC
- ldr r4, _080ED5D8
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED5DC
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
- .align 2, 0
-_080ED5D8: .4byte 0x02000000
-_080ED5DC: .4byte sub_80EBD4C
-_080ED5E0:
- movs r0, 0x2
- bl sub_80EED2C
-_080ED5E6:
- ldr r1, _080ED5F8
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED5EE:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED60E
- .align 2, 0
-_080ED5F8: .4byte 0x02000000
-_080ED5FC:
- ldr r0, _080ED618
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- ldr r0, _080ED61C
- bl sub_80EBDBC
-_080ED60E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED618: .4byte gPaletteFade
-_080ED61C: .4byte sub_80ED858
- thumb_func_end sub_80ED4D8
-
- thumb_func_start sub_80ED620
-sub_80ED620: @ 80ED620
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED640
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _080ED636
- b _080ED846
-_080ED636:
- lsls r0, 2
- ldr r1, _080ED644
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED640: .4byte 0x02000000
-_080ED644: .4byte _080ED648
- .align 2, 0
-_080ED648:
- .4byte _080ED68C
- .4byte _080ED6A4
- .4byte _080ED6B8
- .4byte _080ED6EC
- .4byte _080ED730
- .4byte _080ED736
- .4byte _080ED750
- .4byte _080ED762
- .4byte _080ED76C
- .4byte _080ED784
- .4byte _080ED78A
- .4byte _080ED7C0
- .4byte _080ED7D4
- .4byte _080ED7EC
- .4byte _080ED800
- .4byte _080ED820
- .4byte _080ED834
-_080ED68C:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080ED6A0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED6A0: .4byte 0x02000000
-_080ED6A4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED6B0
- b _080ED846
-_080ED6B0:
- movs r0, 0x1
- bl sub_80EEFBC
- b _080ED80C
-_080ED6B8:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED6C6
- b _080ED846
-_080ED6C6:
- ldr r4, _080ED6E8
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED6E8: .4byte 0x02000000
-_080ED6EC:
- ldr r0, _080ED724
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080ED6FE
- b _080ED846
-_080ED6FE:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r0, _080ED728
- ldr r2, _080ED72C
- adds r1, r0, r2
- strb r4, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED846
- .align 2, 0
-_080ED724: .4byte gPaletteFade
-_080ED728: .4byte 0x02000000
-_080ED72C: .4byte 0x000076aa
-_080ED730:
- bl sub_80F2620
- b _080ED80C
-_080ED736:
- ldr r0, _080ED74C
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80F4BD0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED74C: .4byte 0x0000d162
-_080ED750:
- bl sub_80EFF34
- ldr r1, _080ED768
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED762:
- bl sub_80EFF68
- b _080ED806
- .align 2, 0
-_080ED768: .4byte 0x02000000
-_080ED76C:
- bl sub_8055870
- cmp r0, 0
- bne _080ED846
- ldr r1, _080ED780
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED780: .4byte 0x02000000
-_080ED784:
- bl sub_8055870
- b _080ED808
-_080ED78A:
- bl sub_80F33A8
- ldr r4, _080ED7B8
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED7BC
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7B8: .4byte 0x02000000
-_080ED7BC: .4byte sub_80EBD4C
-_080ED7C0:
- movs r0, 0x2
- bl sub_80EED2C
- ldr r1, _080ED7D0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED7D0: .4byte 0x02000000
-_080ED7D4:
- ldr r0, _080ED7E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED846
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7E8: .4byte gPaletteFade
-_080ED7EC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED81C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED800:
- movs r0, 0x1
- bl sub_80F2CBC
-_080ED806:
- lsls r0, 24
-_080ED808:
- cmp r0, 0
- bne _080ED846
-_080ED80C:
- ldr r1, _080ED81C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ED814:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED846
- .align 2, 0
-_080ED81C: .4byte 0x02000000
-_080ED820:
- movs r0, 0x6
- bl sub_80F2C80
- ldr r1, _080ED850
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED834:
- movs r0, 0x6
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED846
- ldr r0, _080ED854
- bl sub_80EBDBC
-_080ED846:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED850: .4byte 0x02000000
-_080ED854: .4byte sub_80ED858
- thumb_func_end sub_80ED620
-
- thumb_func_start sub_80ED858
-sub_80ED858: @ 80ED858
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080ED878
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _080ED86E
- b _080EDB7A
-_080ED86E:
- lsls r0, 2
- ldr r1, _080ED87C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED878: .4byte 0x02000000
-_080ED87C: .4byte _080ED880
- .align 2, 0
-_080ED880:
- .4byte _080ED8B0
- .4byte _080ED8CC
- .4byte _080ED8EC
- .4byte _080ED904
- .4byte _080ED91A
- .4byte _080EDA68
- .4byte _080EDA8C
- .4byte _080EDAA4
- .4byte _080EDAC0
- .4byte _080EDAE8
- .4byte _080EDB7A
- .4byte _080EDB28
-_080ED8B0:
- bl sub_80F4F78
- bl sub_80F5B38
- ldr r0, _080ED8C8
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8C8: .4byte 0x02000000
-_080ED8CC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- beq _080ED8D8
- b _080EDB7A
-_080ED8D8:
- ldr r0, _080ED8E8
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8E8: .4byte 0x02000000
-_080ED8EC:
- movs r0, 0x1
- bl sub_80F0174
- ldr r0, _080ED900
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED900: .4byte 0x02000000
-_080ED904:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- beq _080ED910
- b _080EDB7A
-_080ED910:
- bl sub_80F3C94
- bl sub_80F3D00
- b _080EDAD4
-_080ED91A:
- ldr r2, _080ED960
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080ED970
- ldr r1, _080ED964
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED970
- ldr r2, _080ED968
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED948
- ldr r4, _080ED96C
- adds r0, r5, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080ED970
-_080ED948:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- b _080ED9B8
- .align 2, 0
-_080ED960: .4byte gMain
-_080ED964: .4byte 0x000087cb
-_080ED968: .4byte 0x000076aa
-_080ED96C: .4byte 0x000087dc
-_080ED970:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED9CC
- ldr r4, _080ED9C0
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9CC
- ldr r1, _080ED9C4
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9A2
- ldr r2, _080ED9C8
- adds r0, r5, r2
- subs r4, 0x57
- adds r1, r5, r4
- movs r4, 0
- ldrsh r2, [r0, r4]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r2, r0
- bge _080ED9CC
-_080ED9A2:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
-_080ED9B8:
- movs r0, 0x5
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080ED9C0: .4byte 0x000087cb
-_080ED9C4: .4byte 0x000076aa
-_080ED9C8: .4byte 0x000087dc
-_080ED9CC:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080ED9F8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4FDC
- bl move_anim_execute
- ldr r0, _080ED9F4
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x9
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED9F4: .4byte 0x02000000
-_080ED9F8:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080EDA02
- b _080EDB7A
-_080EDA02:
- adds r4, r5, 0
- ldr r2, _080EDA38
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDA44
- ldr r1, _080EDA3C
- adds r0, r4, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r2, _080EDA40
- adds r0, r4, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _080EDA26
- b _080EDB7A
-_080EDA26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- movs r0, 0x9
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA38: .4byte 0x000076aa
-_080EDA3C: .4byte 0x000087dc
-_080EDA40: .4byte 0x000087da
-_080EDA44:
- ldr r1, _080EDA64
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EDA50
- b _080EDB7A
-_080EDA50:
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0x7
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA64: .4byte 0x00006dac
-_080EDA68:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- beq _080EDA74
- b _080EDB7A
-_080EDA74:
- bl sub_80F3D00
- ldr r0, _080EDA88
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x6
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDA88: .4byte 0x02000000
-_080EDA8C:
- bl sub_8055870
- cmp r0, 0
- bne _080EDB7A
- ldr r0, _080EDAA0
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EDADC
- .align 2, 0
-_080EDAA0: .4byte 0x02000000
-_080EDAA4:
- movs r0, 0x3
- bl sub_80EEFBC
- bl sub_80F3668
- ldr r0, _080EDABC
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDABC: .4byte 0x02000000
-_080EDAC0:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _080EDB7A
- movs r0, 0x2
- bl sub_80EEFBC
- bl sub_80F3698
-_080EDAD4:
- ldr r0, _080EDAE4
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
-_080EDADC:
- movs r1, 0x4
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDAE4: .4byte 0x02000000
-_080EDAE8:
- bl sub_80F5038
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EDB7A
- movs r0, 0
- bl sub_80F0174
- bl sub_80F2F48
- ldr r5, _080EDB24
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0xB
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDB24: .4byte 0x02000000
-_080EDB28:
- ldr r0, _080EDB60
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDB7A
- bl sub_80F3CE8
- bl sub_80F5BDC
- ldr r0, _080EDB64
- ldr r4, _080EDB68
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDB70
- bl sub_80F357C
- movs r0, 0x1
- bl sub_80F2D6C
- movs r0, 0x6
- bl sub_80F2D6C
- ldr r0, _080EDB6C
- bl sub_80EBDBC
- b _080EDB7A
- .align 2, 0
-_080EDB60: .4byte gPaletteFade
-_080EDB64: .4byte 0x02000000
-_080EDB68: .4byte 0x000076aa
-_080EDB6C: .4byte sub_80ECA10
-_080EDB70:
- bl sub_80F3614
- ldr r0, _080EDB84
- bl sub_80EBDBC
-_080EDB7A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDB84: .4byte sub_80ED3D0
- thumb_func_end sub_80ED858
-
- thumb_func_start sub_80EDB88
-sub_80EDB88: @ 80EDB88
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDBA8
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EDB9E
- b _080EDDAA
-_080EDB9E:
- lsls r0, 2
- ldr r1, _080EDBAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDBA8: .4byte 0x02000000
-_080EDBAC: .4byte _080EDBB0
- .align 2, 0
-_080EDBB0:
- .4byte _080EDBF8
- .4byte _080EDC04
- .4byte _080EDC24
- .4byte _080EDC58
- .4byte _080EDC7C
- .4byte _080EDC90
- .4byte _080EDCA2
- .4byte _080EDCC0
- .4byte _080EDCDC
- .4byte _080EDCE6
- .4byte _080EDCFA
- .4byte _080EDD0C
- .4byte _080EDD20
- .4byte _080EDD34
- .4byte _080EDD48
- .4byte _080EDD52
- .4byte _080EDD7C
- .4byte _080EDD98
-_080EDBF8:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EDD82
-_080EDC04:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EDC10
- b _080EDDAA
-_080EDC10:
- movs r0, 0x4
- bl sub_80EEFBC
- ldr r1, _080EDC20
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC20: .4byte 0x02000000
-_080EDC24:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EDC32
- b _080EDDAA
-_080EDC32:
- ldr r4, _080EDC54
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDC54: .4byte 0x02000000
-_080EDC58:
- ldr r0, _080EDC78
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDC66
- b _080EDDAA
-_080EDC66:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- b _080EDD82
- .align 2, 0
-_080EDC78: .4byte gPaletteFade
-_080EDC7C:
- bl sub_80F2620
- ldr r1, _080EDC8C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC8C: .4byte 0x02000000
-_080EDC90:
- bl sub_80F638C
- ldr r1, _080EDCBC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCA2:
- bl sub_80F63D0
- lsls r0, 24
- cmp r0, 0
- bne _080EDD82
- ldr r1, _080EDCBC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCBC: .4byte 0x02000000
-_080EDCC0:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- ldr r1, _080EDCD8
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCD8: .4byte 0x02000000
-_080EDCDC:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDCE6:
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EDD08
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCFA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD08: .4byte 0x02000000
-_080EDD0C:
- movs r0, 0x2
- bl sub_80F2C80
- ldr r1, _080EDD30
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDD20:
- movs r0, 0x2
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD30: .4byte 0x02000000
-_080EDD34:
- movs r0, 0x1
- bl sub_80F3008
- ldr r1, _080EDD44
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDD44: .4byte 0x02000000
-_080EDD48:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDD52:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EDD78
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDD78: .4byte sub_80EBD18
-_080EDD7C:
- movs r0, 0x4
- bl sub_80EED2C
-_080EDD82:
- ldr r1, _080EDD94
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EDD8A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDD94: .4byte 0x02000000
-_080EDD98:
- ldr r0, _080EDDB4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDDAA
- ldr r0, _080EDDB8
- bl sub_80EBDBC
-_080EDDAA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDDB4: .4byte gPaletteFade
-_080EDDB8: .4byte sub_80EDDBC
- thumb_func_end sub_80EDB88
-
- thumb_func_start sub_80EDDBC
-sub_80EDDBC: @ 80EDDBC
- push {r4,lr}
- ldr r0, _080EDDD8
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EDE48
- cmp r0, 0x1
- bgt _080EDDDC
- cmp r0, 0
- beq _080EDDE2
- b _080EDE6A
- .align 2, 0
-_080EDDD8: .4byte 0x02000000
-_080EDDDC:
- cmp r0, 0x2
- beq _080EDE60
- b _080EDE6A
-_080EDDE2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EDE14
- cmp r0, 0x2
- beq _080EDE20
- ldr r0, _080EDE0C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EDE2C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE10
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE0C: .4byte gMain
-_080EDE10: .4byte sub_80EDEE4
-_080EDE14:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080EDE6A
-_080EDE20:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE2C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EDE6A
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE44
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE44: .4byte sub_80EDE70
-_080EDE48:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EDE6A
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE60:
- bl sub_8055870
- cmp r0, 0
- bne _080EDE6A
-_080EDE68:
- strh r0, [r4]
-_080EDE6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EDDBC
-
- thumb_func_start sub_80EDE70
-sub_80EDE70: @ 80EDE70
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EDE8C
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EDEAE
- cmp r2, 0x1
- bgt _080EDE90
- cmp r2, 0
- beq _080EDE96
- b _080EDED6
- .align 2, 0
-_080EDE8C: .4byte 0x02000000
-_080EDE90:
- cmp r2, 0x2
- beq _080EDED0
- b _080EDED6
-_080EDE96:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EDEC4
-_080EDEAE:
- ldr r0, _080EDECC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDED6
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
-_080EDEC4:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EDED6
- .align 2, 0
-_080EDECC: .4byte gPaletteFade
-_080EDED0:
- ldr r0, _080EDEE0
- bl sub_80EBDBC
-_080EDED6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDEE0: .4byte sub_80EC00C
- thumb_func_end sub_80EDE70
-
- thumb_func_start sub_80EDEE4
-sub_80EDEE4: @ 80EDEE4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDF04
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _080EDEFA
- b _080EE060
-_080EDEFA:
- lsls r0, 2
- ldr r1, _080EDF08
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDF04: .4byte 0x02000000
-_080EDF08: .4byte _080EDF0C
- .align 2, 0
-_080EDF0C:
- .4byte _080EDF38
- .4byte _080EDF50
- .4byte _080EDF80
- .4byte _080EDF98
- .4byte _080EDFB0
- .4byte _080EDFC8
- .4byte _080EDFE0
- .4byte _080EDFF8
- .4byte _080EE01C
- .4byte _080EE030
- .4byte _080EE050
-_080EDF38:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE03C
-_080EDF50:
- ldr r0, _080EDF78
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDF5E
- b _080EE060
-_080EDF5E:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- ldr r1, _080EDF7C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDF78: .4byte gPaletteFade
-_080EDF7C: .4byte 0x02000000
-_080EDF80:
- bl sub_80F66E0
- bl sub_80EEE08
- ldr r1, _080EDF94
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDF94: .4byte 0x02000000
-_080EDF98:
- bl sub_80F1080
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFAC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFAC: .4byte 0x02000000
-_080EDFB0:
- movs r0, 0x5
- bl sub_80EEFBC
- bl sub_80F38B8
- ldr r1, _080EDFDC
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDFC8:
- bl sub_80F38EC
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFDC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFDC: .4byte 0x02000000
-_080EDFE0:
- bl sub_8055870
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFF4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDFF4: .4byte 0x02000000
-_080EDFF8:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE018
- bl SetVBlankCallback
- b _080EE03C
- .align 2, 0
-_080EE018: .4byte sub_80EBD18
-_080EE01C:
- movs r0, 0x3
- bl sub_80EED2C
- ldr r1, _080EE02C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EE02C: .4byte 0x02000000
-_080EE030:
- ldr r0, _080EE04C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE060
-_080EE03C:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
-_080EE042:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE060
- .align 2, 0
-_080EE04C: .4byte gPaletteFade
-_080EE050:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r0, _080EE068
- bl sub_80EBDBC
-_080EE060:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE068: .4byte sub_80EE06C
- thumb_func_end sub_80EDEE4
-
- thumb_func_start sub_80EE06C
-sub_80EE06C: @ 80EE06C
- push {r4,r5,lr}
- ldr r1, _080EE08C
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE080
- b _080EE288
-_080EE080:
- lsls r0, 2
- ldr r1, _080EE090
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE08C: .4byte 0x02000000
-_080EE090: .4byte _080EE094
- .align 2, 0
-_080EE094:
- .4byte _080EE0B8
- .4byte _080EE0CC
- .4byte _080EE180
- .4byte _080EE19C
- .4byte _080EE1B8
- .4byte _080EE1D0
- .4byte _080EE1F8
- .4byte _080EE250
- .4byte _080EE26C
-_080EE0B8:
- bl sub_80F15A8
- ldr r1, _080EE0C8
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
- b _080EE1C4
- .align 2, 0
-_080EE0C8: .4byte 0x02000000
-_080EE0CC:
- ldr r2, _080EE0FC
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE104
- ldr r1, _080EE100
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE104
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F6A4C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE1C4
- .align 2, 0
-_080EE0FC: .4byte gMain
-_080EE100: .4byte 0x000087dc
-_080EE104:
- ldrh r1, [r3, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE140
- ldr r1, _080EE138
- adds r0, r4, r1
- ldr r2, _080EE13C
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE140
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F6A4C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE1C4
- .align 2, 0
-_080EE138: .4byte 0x000087dc
-_080EE13C: .4byte 0x00008774
-_080EE140:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080EE164
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- bl sub_80EEFBC
- ldr r0, _080EE160
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EE262
- .align 2, 0
-_080EE160: .4byte 0x02000000
-_080EE164:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _080EE16E
- b _080EE288
-_080EE16E:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE17C
- bl sub_80EBDBC
- b _080EE288
- .align 2, 0
-_080EE17C: .4byte sub_80EE294
-_080EE180:
- bl sub_80F6AF0
- lsls r0, 24
- cmp r0, 0
- beq _080EE18C
- b _080EE288
-_080EE18C:
- ldr r1, _080EE198
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE1C4
- .align 2, 0
-_080EE198: .4byte 0x02000000
-_080EE19C:
- bl sub_8055870
- adds r1, r0, 0
- cmp r1, 0
- bne _080EE288
- ldr r0, _080EE1B4
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE1B4: .4byte 0x02000000
-_080EE1B8:
- bl sub_80F3B00
- ldr r1, _080EE1CC
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE1C4:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE288
- .align 2, 0
-_080EE1CC: .4byte 0x02000000
-_080EE1D0:
- bl sub_80F3B58
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- bl sub_80F1494
- ldr r1, _080EE1F4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_80EED9C
- b _080EE288
- .align 2, 0
-_080EE1F4: .4byte 0x02000000
-_080EE1F8:
- bl sub_80F68E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080EE224
- cmp r0, 0x1
- bne _080EE224
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE220
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- movs r1, 0x7
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE220: .4byte 0x02000000
-_080EE224:
- ldr r0, _080EE248
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE288
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE24C
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE248: .4byte gMain
-_080EE24C: .4byte 0x02000000
-_080EE250:
- bl sub_80F3BD4
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- ldr r0, _080EE268
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
-_080EE262:
- movs r1, 0x4
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE268: .4byte 0x02000000
-_080EE26C:
- bl sub_80F3BD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EE288
- movs r0, 0x5
- bl sub_80EEFBC
- ldr r0, _080EE290
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r4, [r0]
-_080EE288:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE290: .4byte 0x02000000
- thumb_func_end sub_80EE06C
-
- thumb_func_start sub_80EE294
-sub_80EE294: @ 80EE294
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EE2B4
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE2AA
- b _080EE3C6
-_080EE2AA:
- lsls r0, 2
- ldr r1, _080EE2B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE2B4: .4byte 0x02000000
-_080EE2B8: .4byte _080EE2BC
- .align 2, 0
-_080EE2BC:
- .4byte _080EE2E0
- .4byte _080EE2FE
- .4byte _080EE324
- .4byte _080EE33C
- .4byte _080EE34C
- .4byte _080EE370
- .4byte _080EE37A
- .4byte _080EE39A
- .4byte _080EE3B4
-_080EE2E0:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE2FE:
- ldr r0, _080EE320
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3C2C
- bl sub_80EEE08
- b _080EE3A0
- .align 2, 0
-_080EE320: .4byte gPaletteFade
-_080EE324:
- bl sub_80F6134
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EE348
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE33C:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
- .align 2, 0
-_080EE348: .4byte 0x02000000
-_080EE34C:
- movs r0, 0x4
- bl sub_80EEFBC
- movs r0, 0x1
- bl sub_80F3008
- ldr r0, _080EE368
- bl SetVBlankCallback
- ldr r1, _080EE36C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE3A8
- .align 2, 0
-_080EE368: .4byte sub_80EBD18
-_080EE36C: .4byte 0x02000000
-_080EE370:
- bl sub_8055870
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
-_080EE37A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE39A:
- movs r0, 0x4
- bl sub_80EED2C
-_080EE3A0:
- ldr r1, _080EE3B0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE3A8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE3C6
- .align 2, 0
-_080EE3B0: .4byte 0x02000000
-_080EE3B4:
- ldr r0, _080EE3D0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- ldr r0, _080EE3D4
- bl sub_80EBDBC
-_080EE3C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE3D0: .4byte gPaletteFade
-_080EE3D4: .4byte sub_80EDDBC
- thumb_func_end sub_80EE294
-
- thumb_func_start sub_80EE3D8
-sub_80EE3D8: @ 80EE3D8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE3F8
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EE3EC
- b _080EE57A
-_080EE3EC:
- lsls r0, 2
- ldr r1, _080EE3FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE3F8: .4byte 0x02000000
-_080EE3FC: .4byte _080EE400
- .align 2, 0
-_080EE400:
- .4byte _080EE438
- .4byte _080EE444
- .4byte _080EE458
- .4byte _080EE48C
- .4byte _080EE4B0
- .4byte _080EE4B6
- .4byte _080EE4CA
- .4byte _080EE4DC
- .4byte _080EE4F0
- .4byte _080EE504
- .4byte _080EE50C
- .4byte _080EE516
- .4byte _080EE54C
- .4byte _080EE568
-_080EE438:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EE552
-_080EE444:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EE450
- b _080EE57A
-_080EE450:
- movs r0, 0x9
- bl sub_80EEFBC
- b _080EE552
-_080EE458:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EE466
- b _080EE57A
-_080EE466:
- ldr r4, _080EE488
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE488: .4byte 0x02000000
-_080EE48C:
- ldr r0, _080EE4AC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- bl sub_80EEE08
- b _080EE552
- .align 2, 0
-_080EE4AC: .4byte gPaletteFade
-_080EE4B0:
- bl sub_80F2620
- b _080EE552
-_080EE4B6:
- movs r0, 0x2
- bl sub_80F0264
- ldr r1, _080EE4D8
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4CA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE4D8: .4byte 0x02000000
-_080EE4DC:
- movs r0, 0x3
- bl sub_80F2C80
- ldr r1, _080EE500
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4F0:
- movs r0, 0x3
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE500: .4byte 0x02000000
-_080EE504:
- movs r0, 0x2
- bl sub_80F3008
- b _080EE552
-_080EE50C:
- bl sub_8055870
- cmp r0, 0
- bne _080EE57A
- b _080EE552
-_080EE516:
- bl sub_80F6F10
- ldr r4, _080EE544
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE548
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE544: .4byte 0x02000000
-_080EE548: .4byte sub_80EBD68
-_080EE54C:
- movs r0, 0x5
- bl sub_80EED2C
-_080EE552:
- ldr r1, _080EE564
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE55A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE57A
- .align 2, 0
-_080EE564: .4byte 0x02000000
-_080EE568:
- ldr r0, _080EE584
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- ldr r0, _080EE588
- bl sub_80EBDBC
-_080EE57A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE584: .4byte gPaletteFade
-_080EE588: .4byte sub_80EE58C
- thumb_func_end sub_80EE3D8
-
- thumb_func_start sub_80EE58C
-sub_80EE58C: @ 80EE58C
- push {r4,r5,lr}
- ldr r5, _080EE5A8
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EE624
- cmp r0, 0x1
- bgt _080EE5AC
- cmp r0, 0
- beq _080EE5B2
- b _080EE652
- .align 2, 0
-_080EE5A8: .4byte 0x02000000
-_080EE5AC:
- cmp r0, 0x2
- beq _080EE648
- b _080EE652
-_080EE5B2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EE5E4
- cmp r0, 0x2
- beq _080EE5FC
- ldr r0, _080EE5DC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EE608
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE5E0
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE5DC: .4byte gMain
-_080EE5E0: .4byte sub_80EE658
-_080EE5E4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EE5F8
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080EE652
- .align 2, 0
-_080EE5F8: .4byte 0x0000876e
-_080EE5FC:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
-_080EE608:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE652
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE620
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE620: .4byte sub_80EE8F4
-_080EE624:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EE652
- ldr r1, _080EE644
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
- .align 2, 0
-_080EE644: .4byte 0x0000876e
-_080EE648:
- bl sub_8055870
- cmp r0, 0
- bne _080EE652
-_080EE650:
- strh r0, [r4]
-_080EE652:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE58C
-
- thumb_func_start sub_80EE658
-sub_80EE658: @ 80EE658
- push {r4,r5,lr}
- ldr r1, _080EE678
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EE66C
- b _080EE8E8
-_080EE66C:
- lsls r0, 2
- ldr r1, _080EE67C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE678: .4byte 0x02000000
-_080EE67C: .4byte _080EE680
- .align 2, 0
-_080EE680:
- .4byte _080EE6C8
- .4byte _080EE6DA
- .4byte _080EE6F4
- .4byte _080EE708
- .4byte _080EE71C
- .4byte _080EE730
- .4byte _080EE758
- .4byte _080EE76A
- .4byte _080EE780
- .4byte _080EE820
- .4byte _080EE840
- .4byte _080EE854
- .4byte _080EE868
- .4byte _080EE86E
- .4byte _080EE880
- .4byte _080EE898
- .4byte _080EE8B4
- .4byte _080EE8D4
-_080EE6C8:
- movs r0, 0x1
- bl sub_80F3294
- movs r0, 0xA
- bl sub_80EEFBC
- bl sub_80F0B24
- b _080EE8BE
-_080EE6DA:
- bl sub_80F0B44
- lsls r0, 24
- cmp r0, 0
- beq _080EE6E6
- b _080EE8E8
-_080EE6E6:
- ldr r1, _080EE6F0
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE6F0: .4byte 0x02000000
-_080EE6F4:
- bl sub_80F0F64
- ldr r1, _080EE704
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE704: .4byte 0x02000000
-_080EE708:
- bl sub_80F0FEC
- lsls r0, 24
- cmp r0, 0
- beq _080EE714
- b _080EE8E8
-_080EE714:
- movs r0, 0x1
- bl sub_80F6FB8
- b _080EE8BE
-_080EE71C:
- bl sub_80F6DB8
- ldr r1, _080EE72C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE72C: .4byte 0x02000000
-_080EE730:
- ldr r4, _080EE750
- adds r0, r4, 0
- subs r0, 0x1A
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_80F700C
- adds r0, r4, 0
- bl sub_80F42C4
- ldr r1, _080EE754
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE8E8
- .align 2, 0
-_080EE750: .4byte 0x02008788
-_080EE754: .4byte 0xffff7b7c
-_080EE758:
- bl sub_80F0CD8
- ldr r1, _080EE77C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE76A:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- beq _080EE776
- b _080EE8E8
-_080EE776:
- bl sub_80F0D5C
- b _080EE8B8
- .align 2, 0
-_080EE77C: .4byte 0x02000000
-_080EE780:
- ldr r2, _080EE7B0
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE7B8
- ldr r1, _080EE7B4
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE7B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F708C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE7E8
- .align 2, 0
-_080EE7B0: .4byte gMain
-_080EE7B4: .4byte 0x000087dc
-_080EE7B8:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE7F8
- ldr r1, _080EE7F0
- adds r0, r4, r1
- ldr r2, _080EE7F4
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE7F8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F708C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EE7E8:
- movs r0, 0x10
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE7F0: .4byte 0x000087dc
-_080EE7F4: .4byte 0x00008774
-_080EE7F8:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE8E8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4394
- bl sub_80F0EC0
- ldr r1, _080EE81C
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE81C: .4byte 0x02000000
-_080EE820:
- bl sub_80F6ED4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- bl sub_80F0EF4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- movs r0, 0
- bl sub_80F6FB8
- bl sub_80F2FB0
- b _080EE8BE
-_080EE840:
- bl sub_80F6134
- ldr r1, _080EE850
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE850: .4byte 0x02000000
-_080EE854:
- bl sub_80F0FA0
- ldr r1, _080EE864
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE864: .4byte 0x02000000
-_080EE868:
- bl sub_80F0FEC
- b _080EE8B8
-_080EE86E:
- bl sub_80F0C28
- ldr r1, _080EE87C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE87C: .4byte 0x02000000
-_080EE880:
- bl sub_80F0C48
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- ldr r1, _080EE894
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE894: .4byte 0x02000000
-_080EE898:
- movs r0, 0x9
- bl sub_80EEFBC
- movs r0, 0
- bl sub_80F3294
- ldr r0, _080EE8B0
- bl sub_80EBDBC
- bl sub_80EED9C
- b _080EE8E8
- .align 2, 0
-_080EE8B0: .4byte sub_80EE58C
-_080EE8B4:
- bl sub_80F70FC
-_080EE8B8:
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
-_080EE8BE:
- ldr r1, _080EE8D0
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
-_080EE8C6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE8D0: .4byte 0x02000000
-_080EE8D4:
- bl sub_8055870
- cmp r0, 0
- bne _080EE8E8
- ldr r0, _080EE8F0
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
-_080EE8E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE8F0: .4byte 0x02000000
- thumb_func_end sub_80EE658
-
- thumb_func_start sub_80EE8F4
-sub_80EE8F4: @ 80EE8F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE910
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EE932
- cmp r2, 0x1
- bgt _080EE914
- cmp r2, 0
- beq _080EE91A
- b _080EE95E
- .align 2, 0
-_080EE910: .4byte 0x02000000
-_080EE914:
- cmp r2, 0x2
- beq _080EE958
- b _080EE95E
-_080EE91A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE94C
-_080EE932:
- ldr r0, _080EE954
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE95E
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
- bl sub_80F6FFC
-_080EE94C:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE95E
- .align 2, 0
-_080EE954: .4byte gPaletteFade
-_080EE958:
- ldr r0, _080EE968
- bl sub_80EBDBC
-_080EE95E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE968: .4byte sub_80EC00C
- thumb_func_end sub_80EE8F4
-
- thumb_func_start sub_80EE96C
-sub_80EE96C: @ 80EE96C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080EE99C
- movs r1, 0xC1
- lsls r1, 2
- adds r5, r0, r1
- ldrh r4, [r5]
- cmp r4, 0
- bne _080EE9A0
- movs r0, 0x6F
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EE9B4
- .align 2, 0
-_080EE99C: .4byte 0x02000000
-_080EE9A0:
- ldr r0, _080EE9BC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE9B4
- bl sub_80F5BDC
- bl sub_805469C
-_080EE9B4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9BC: .4byte gPaletteFade
- thumb_func_end sub_80EE96C
-
- thumb_func_start sub_80EE9C0
-sub_80EE9C0: @ 80EE9C0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- bl sub_80F1E84
- ldr r1, _080EE9FC
- ldr r2, _080EEA00
- adds r0, r1, r2
- movs r2, 0
- strb r4, [r0]
- ldr r3, _080EEA04
- adds r0, r1, r3
- strb r5, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EEA08
- adds r1, r0
- strb r6, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9FC: .4byte 0x02000000
-_080EEA00: .4byte 0x00006e14
-_080EEA04: .4byte 0x00006e15
-_080EEA08: .4byte 0x00006e17
- thumb_func_end sub_80EE9C0
-
- thumb_func_start sub_80EEA0C
-sub_80EEA0C: @ 80EEA0C
- push {r4,lr}
- ldr r1, _080EEA28
- ldr r2, _080EEA2C
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x8
- bls _080EEA1E
- b _080EEBFA
-_080EEA1E:
- lsls r0, 2
- ldr r1, _080EEA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEA28: .4byte 0x02000000
-_080EEA2C: .4byte 0x00006e16
-_080EEA30: .4byte _080EEA34
- .align 2, 0
-_080EEA34:
- .4byte _080EEA58
- .4byte _080EEA98
- .4byte _080EEAAE
- .4byte _080EEAD4
- .4byte _080EEB3E
- .4byte _080EEB68
- .4byte _080EEB88
- .4byte _080EEBAC
- .4byte _080EEBE4
-_080EEA58:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EEA64
- b _080EEC08
-_080EEA64:
- ldr r1, _080EEA7C
- ldr r4, _080EEA80
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _080EEA88
- ldr r0, _080EEA84
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA7C: .4byte 0x02000000
-_080EEA80: .4byte 0x00006e17
-_080EEA84: .4byte 0x00006e16
-_080EEA88:
- ldr r2, _080EEA94
- adds r1, r2
- movs r0, 0x3
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA94: .4byte 0x00006e16
-_080EEA98:
- ldr r4, _080EEAC8
- ldr r1, _080EEACC
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2C80
- ldr r2, _080EEAD0
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEAAE:
- ldr r4, _080EEAC8
- ldr r1, _080EEACC
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _080EEAC2
- b _080EEC08
-_080EEAC2:
- ldr r2, _080EEAD0
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEAC8: .4byte 0x02000000
-_080EEACC: .4byte 0x00006e17
-_080EEAD0: .4byte 0x00006e16
-_080EEAD4:
- adds r2, r3, 0
- ldr r4, _080EEAF8
- adds r0, r2, r4
- ldrb r1, [r0]
- subs r4, 0x68
- adds r0, r2, r4
- strb r1, [r0]
- ldr r1, _080EEAFC
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080EEB14
- cmp r0, 0x1
- bgt _080EEB00
- cmp r0, 0
- beq _080EEB06
- b _080EEB28
- .align 2, 0
-_080EEAF8: .4byte 0x00006e15
-_080EEAFC: .4byte 0x00006e14
-_080EEB00:
- cmp r0, 0x2
- beq _080EEB20
- b _080EEB28
-_080EEB06:
- ldr r4, _080EEB10
- adds r1, r2, r4
- movs r0, 0x5
- b _080EEB26
- .align 2, 0
-_080EEB10: .4byte 0x00006dae
-_080EEB14:
- ldr r0, _080EEB1C
- adds r1, r2, r0
- movs r0, 0x3
- b _080EEB26
- .align 2, 0
-_080EEB1C: .4byte 0x00006dae
-_080EEB20:
- ldr r2, _080EEB58
- adds r1, r3, r2
- movs r0, 0x6
-_080EEB26:
- strb r0, [r1]
-_080EEB28:
- ldr r4, _080EEB5C
- ldr r1, _080EEB60
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1B8C
- ldr r2, _080EEB64
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEB3E:
- ldr r4, _080EEB5C
- ldr r1, _080EEB60
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r2, _080EEB64
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEB58: .4byte 0x00006dae
-_080EEB5C: .4byte 0x02000000
-_080EEB60: .4byte 0x00006e14
-_080EEB64: .4byte 0x00006e16
-_080EEB68:
- bl sub_8055870
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEB80
- ldr r4, _080EEB84
- adds r1, r4
-_080EEB76:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEB80: .4byte 0x02000000
-_080EEB84: .4byte 0x00006e16
-_080EEB88:
- bl sub_80F1DF0
- ldr r4, _080EEBA0
- ldr r1, _080EEBA4
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80EF490
- ldr r2, _080EEBA8
- adds r4, r2
- b _080EEBCC
- .align 2, 0
-_080EEBA0: .4byte 0x02000000
-_080EEBA4: .4byte 0x00006e14
-_080EEBA8: .4byte 0x00006e16
-_080EEBAC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r4, _080EEBD4
- ldr r1, _080EEBD8
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080EEBDC
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80EF428
- ldr r0, _080EEBE0
- adds r4, r0
-_080EEBCC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080EEC08
- .align 2, 0
-_080EEBD4: .4byte 0x02000000
-_080EEBD8: .4byte 0x00006e14
-_080EEBDC: .4byte 0x00006dad
-_080EEBE0: .4byte 0x00006e16
-_080EEBE4:
- bl sub_80EF4F8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEC00
- ldr r2, _080EEC04
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EEBFA:
- movs r0, 0
- b _080EEC0A
- .align 2, 0
-_080EEC00: .4byte 0x02000000
-_080EEC04: .4byte 0x00006e16
-_080EEC08:
- movs r0, 0x1
-_080EEC0A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEA0C
-
- thumb_func_start sub_80EEC10
-sub_80EEC10: @ 80EEC10
- push {r4,lr}
- ldr r0, _080EEC48
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080EEC50
- ldr r1, _080EEC4C
- adds r3, r1, 0x1
- adds r2, r1, 0x5
-_080EEC24:
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EEC36
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r1]
-_080EEC36:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC24
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC48: .4byte gMain
-_080EEC4C: .4byte 0x02006dad
-_080EEC50:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EEC88
- ldr r1, _080EEC84
- movs r4, 0
- movs r2, 0x1
- ldrsb r2, [r1, r2]
- adds r3, r1, 0x5
-_080EEC62:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r2
- blt _080EEC72
- strb r4, [r1]
-_080EEC72:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC62
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC84: .4byte 0x02006dad
-_080EEC88:
- movs r0, 0
-_080EEC8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC10
-
- thumb_func_start sub_80EEC90
-sub_80EEC90: @ 80EEC90
- push {r4,lr}
- ldr r0, _080EECC0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080EECD0
- ldr r2, _080EECC4
- ldr r0, _080EECC8
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EECF8
- ldr r3, _080EECCC
- adds r0, r2, r3
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r1]
- b _080EECF8
- .align 2, 0
-_080EECC0: .4byte gMain
-_080EECC4: .4byte 0x02000000
-_080EECC8: .4byte 0x00006dad
-_080EECCC: .4byte 0x00006dae
-_080EECD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EED04
- ldr r0, _080EECFC
- ldr r4, _080EED00
- adds r2, r0, r4
- ldrb r1, [r2]
- adds r1, 0x1
- strb r1, [r2]
- adds r4, 0x1
- adds r0, r4
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080EECF8
- strb r3, [r2]
-_080EECF8:
- movs r0, 0x1
- b _080EED06
- .align 2, 0
-_080EECFC: .4byte 0x02000000
-_080EED00: .4byte 0x00006dad
-_080EED04:
- movs r0, 0
-_080EED06:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC90
-
- thumb_func_start sub_80EED0C
-sub_80EED0C: @ 80EED0C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED0C
-
- thumb_func_start sub_80EED1C
-sub_80EED1C: @ 80EED1C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x92
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED1C
-
- thumb_func_start sub_80EED2C
-sub_80EED2C: @ 80EED2C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080EED98
- lsls r0, 2
- ldr r1, _080EED40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EED40: .4byte _080EED44
- .align 2, 0
-_080EED44:
- .4byte _080EED5C
- .4byte _080EED66
- .4byte _080EED7E
- .4byte _080EED74
- .4byte _080EED74
- .4byte _080EED8C
-_080EED5C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED66:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED70
- b _080EED94
- .align 2, 0
-_080EED70: .4byte 0x00001741
-_080EED74:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED7E:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED88
- b _080EED94
- .align 2, 0
-_080EED88: .4byte 0x00007b40
-_080EED8C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
-_080EED94:
- adds r0, r2, 0
- strh r0, [r1]
-_080EED98:
- pop {r0}
- bx r0
- thumb_func_end sub_80EED2C
-
- thumb_func_start sub_80EED9C
-sub_80EED9C: @ 80EED9C
- push {lr}
- ldr r2, _080EEDB8
- ldr r0, _080EEDBC
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- ldr r1, _080EEDC0
- str r1, [r0]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDB8: .4byte gUnknown_03000744
-_080EEDBC: .4byte 0x02000000
-_080EEDC0: .4byte sub_80EEDC4
- thumb_func_end sub_80EED9C
-
- thumb_func_start sub_80EEDC4
-sub_80EEDC4: @ 80EEDC4
- push {lr}
- bl sub_8055870
- cmp r0, 0x1
- beq _080EEDDC
- ldr r0, _080EEDE0
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, _080EEDE4
- ldr r1, [r1]
- str r1, [r0]
-_080EEDDC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDE0: .4byte 0x02000000
-_080EEDE4: .4byte gUnknown_03000744
- thumb_func_end sub_80EEDC4
-
- thumb_func_start sub_80EEDE8
-sub_80EEDE8: @ 80EEDE8
- ldr r0, _080EEE04
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080EEE04: .4byte REG_BG0HOFS
- thumb_func_end sub_80EEDE8
-
- thumb_func_start sub_80EEE08
-sub_80EEE08: @ 80EEE08
- ldr r0, _080EEE18
- ldr r0, [r0]
- ldr r1, _080EEE1C
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080EEE18: .4byte gUnknown_083DFEC4
-_080EEE1C: .4byte 0x0000d160
- thumb_func_end sub_80EEE08
-
- thumb_func_start sub_80EEE20
-sub_80EEE20: @ 80EEE20
- push {lr}
- ldr r0, _080EEE48
- ldr r0, [r0]
- ldr r1, _080EEE4C
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EEE50
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EEE42
-_080EEE38:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- bne _080EEE38
-_080EEE42:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEE48: .4byte gUnknown_083DFEC4
-_080EEE4C: .4byte 0x0000d160
-_080EEE50: .4byte 0x00006dac
- thumb_func_end sub_80EEE20
-
- thumb_func_start sub_80EEE54
-sub_80EEE54: @ 80EEE54
- push {lr}
- ldr r1, _080EEE70
- ldr r0, [r1]
- ldr r2, _080EEE74
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080EEF02
- lsls r0, 2
- ldr r1, _080EEE78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEE70: .4byte gUnknown_083DFEC4
-_080EEE74: .4byte 0x0000d160
-_080EEE78: .4byte _080EEE7C
- .align 2, 0
-_080EEE7C:
- .4byte _080EEE90
- .4byte _080EEEA4
- .4byte _080EEEB8
- .4byte _080EEEC8
- .4byte _080EEEDC
-_080EEE90:
- ldr r0, _080EEE9C
- ldr r1, _080EEEA0
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
-_080EEEA0: .4byte 0x0600c000
-_080EEEA4:
- ldr r0, _080EEEB0
- ldr r1, _080EEEB4
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEEB0: .4byte gUnknown_08E99FB0
-_080EEEB4: .4byte 0x0600d800
-_080EEEB8:
- ldr r0, _080EEEC4
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- b _080EEF18
- .align 2, 0
-_080EEEC4: .4byte gPokenavHoennMap1_Pal
-_080EEEC8:
- movs r0, 0
- bl sub_80EF58C
- movs r0, 0x1
- bl sub_80EF58C
- movs r0, 0x2
- bl sub_80EF58C
- b _080EEF18
-_080EEEDC:
- ldr r2, [r2]
- movs r3, 0xC3
- lsls r3, 2
- adds r0, r2, r3
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EEF08
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080EEF0C
- ldr r3, _080EEF10
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080EEF14
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EEF02:
- movs r0, 0
- b _080EEF28
- .align 2, 0
-_080EEF08: .4byte REG_BG1HOFS
-_080EEF0C: .4byte REG_BG1CNT
-_080EEF10: .4byte 0x00001b0c
-_080EEF14: .4byte 0x0000d160
-_080EEF18:
- ldr r0, _080EEF2C
- ldr r1, [r0]
- ldr r2, _080EEF30
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080EEF28:
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF2C: .4byte gUnknown_083DFEC4
-_080EEF30: .4byte 0x0000d160
- thumb_func_end sub_80EEE54
-
- thumb_func_start sub_80EEF34
-sub_80EEF34: @ 80EEF34
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF50
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0x20
- bne _080EEF54
- movs r0, 0
- b _080EEF6E
- .align 2, 0
-_080EEF50: .4byte gUnknown_083DFEC4
-_080EEF54:
- adds r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080EEF66
- movs r0, 0x20
- strh r0, [r2]
- movs r3, 0
-_080EEF66:
- ldr r1, _080EEF74
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEF6E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF74: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF34
-
- thumb_func_start sub_80EEF78
-sub_80EEF78: @ 80EEF78
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF94
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _080EEF98
- movs r0, 0
- b _080EEFB0
- .align 2, 0
-_080EEF94: .4byte gUnknown_083DFEC4
-_080EEF98:
- subs r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080EEFA8
- movs r0, 0
- strh r0, [r2]
- movs r3, 0
-_080EEFA8:
- ldr r1, _080EEFB8
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEFB0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEFB8: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF78
-
- thumb_func_start sub_80EEFBC
-sub_80EEFBC: @ 80EEFBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EEFF4
- ldr r3, _080EEFF8
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x11
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0x16
- bl sub_809D104
- cmp r4, 0xB
- bls _080EEFE8
- b _080EF234
-_080EEFE8:
- lsls r0, r4, 2
- ldr r1, _080EEFFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEFF4: .4byte 0x0600d800
-_080EEFF8: .4byte gUnknown_08E9A100
-_080EEFFC: .4byte _080EF000
- .align 2, 0
-_080EF000:
- .4byte _080EF030
- .4byte _080EF234
- .4byte _080EF08C
- .4byte _080EF100
- .4byte _080EF13C
- .4byte _080EF1D4
- .4byte _080EF234
- .4byte _080EF178
- .4byte _080EF190
- .4byte _080EF1D4
- .4byte _080EF218
- .4byte _080EF06C
-_080EF030:
- ldr r6, _080EF064
- ldr r0, _080EF068
- mov r8, r0
- movs r0, 0x11
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r5, 0x2
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r4, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF064: .4byte 0x0600d800
-_080EF068: .4byte gUnknown_08E9A100
-_080EF06C:
- ldr r0, _080EF084
- ldr r3, _080EF088
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- b _080EF0EE
- .align 2, 0
-_080EF084: .4byte 0x0600d800
-_080EF088: .4byte gUnknown_08E9A100
-_080EF08C:
- ldr r0, _080EF0C8
- ldr r0, [r0]
- ldr r1, _080EF0CC
- adds r0, r1
- ldrb r7, [r0]
- cmp r7, 0
- bne _080EF0D8
- ldr r5, _080EF0D0
- ldr r6, _080EF0D4
- movs r0, 0xA
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- str r7, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF0C8: .4byte gUnknown_083DFEC4
-_080EF0CC: .4byte 0x00006dac
-_080EF0D0: .4byte 0x0600d800
-_080EF0D4: .4byte gUnknown_08E9A100
-_080EF0D8:
- ldr r0, _080EF0F8
- ldr r3, _080EF0FC
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0xA
-_080EF0EE:
- movs r2, 0x16
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF0F8: .4byte 0x0600d800
-_080EF0FC: .4byte gUnknown_08E9A100
-_080EF100:
- ldr r6, _080EF134
- ldr r0, _080EF138
- mov r8, r0
- movs r5, 0
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF134: .4byte 0x0600d800
-_080EF138: .4byte gUnknown_08E9A100
-_080EF13C:
- ldr r5, _080EF170
- ldr r6, _080EF174
- movs r0, 0x14
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF170: .4byte 0x0600d800
-_080EF174: .4byte gUnknown_08E9A100
-_080EF178:
- ldr r5, _080EF188
- ldr r6, _080EF18C
- movs r1, 0xA
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- b _080EF1A0
- .align 2, 0
-_080EF188: .4byte 0x0600d800
-_080EF18C: .4byte gUnknown_08E9A100
-_080EF190:
- ldr r5, _080EF1CC
- ldr r6, _080EF1D0
- movs r0, 0x14
- str r0, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
-_080EF1A0:
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x7
-_080EF1C2:
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF1CC: .4byte 0x0600d800
-_080EF1D0: .4byte gUnknown_08E9A100
-_080EF1D4:
- ldr r6, _080EF210
- ldr r1, _080EF214
- mov r8, r1
- movs r5, 0
- str r5, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x8
-_080EF204:
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF210: .4byte 0x0600d800
-_080EF214: .4byte gUnknown_08E9A100
-_080EF218:
- ldr r0, _080EF240
- ldr r3, _080EF244
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- movs r2, 0x16
- bl sub_809D104
-_080EF234:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF240: .4byte 0x0600d800
-_080EF244: .4byte gUnknown_08E9A100
- thumb_func_end sub_80EEFBC
-
- thumb_func_start sub_80EF248
-sub_80EF248: @ 80EF248
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EF278
- ldr r0, [r0]
- ldr r1, _080EF27C
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF280
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF270
-_080EF264:
- adds r0, r4, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- bne _080EF264
-_080EF270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF278: .4byte gUnknown_083DFEC4
-_080EF27C: .4byte 0x0000d160
-_080EF280: .4byte 0x00006dac
- thumb_func_end sub_80EF248
-
- thumb_func_start sub_80EF284
-sub_80EF284: @ 80EF284
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080EF2A8
- ldr r0, [r1]
- ldr r3, _080EF2AC
- adds r0, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080EF29C
- b _080EF3F6
-_080EF29C:
- lsls r0, 2
- ldr r1, _080EF2B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF2A8: .4byte gUnknown_083DFEC4
-_080EF2AC: .4byte 0x0000d160
-_080EF2B0: .4byte _080EF2B4
- .align 2, 0
-_080EF2B4:
- .4byte _080EF2E4
- .4byte _080EF2EA
- .4byte _080EF2F8
- .4byte _080EF304
- .4byte _080EF310
- .4byte _080EF330
- .4byte _080EF344
- .4byte _080EF368
- .4byte _080EF37C
- .4byte _080EF390
- .4byte _080EF3A4
- .4byte _080EF3CC
-_080EF2E4:
- bl sub_80EEDE8
- b _080EF40C
-_080EF2EA:
- ldr r0, _080EF2F4
- bl SetUpWindowConfig
- b _080EF40C
- .align 2, 0
-_080EF2F4: .4byte gWindowConfig_81E7224
-_080EF2F8:
- ldr r0, _080EF300
- bl MultistepInitMenuWindowBegin
- b _080EF40C
- .align 2, 0
-_080EF300: .4byte gWindowConfig_81E7224
-_080EF304:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080EF30E
- b _080EF40C
-_080EF30E:
- b _080EF41A
-_080EF310:
- ldr r1, _080EF320
- ldr r2, _080EF324
- ldr r0, _080EF328
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF32C
- b _080EF350
- .align 2, 0
-_080EF320: .4byte gUnknown_083DFEEC
-_080EF324: .4byte 0x06005000
-_080EF328: .4byte 0x040000d4
-_080EF32C: .4byte 0x80000050
-_080EF330:
- ldr r0, _080EF33C
- ldr r1, _080EF340
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF33C: .4byte gUnknown_083DFF8C
-_080EF340: .4byte 0x0600f800
-_080EF344:
- ldr r1, _080EF358
- ldr r2, _080EF35C
- ldr r0, _080EF360
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF364
-_080EF350:
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080EF40C
- .align 2, 0
-_080EF358: .4byte gUnknown_083E005C
-_080EF35C: .4byte 0x06008000
-_080EF360: .4byte 0x040000d4
-_080EF364: .4byte 0x80000010
-_080EF368:
- ldr r0, _080EF374
- ldr r1, _080EF378
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF374: .4byte gUnknown_083E007C
-_080EF378: .4byte 0x0600e000
-_080EF37C:
- ldr r0, _080EF388
- ldr r1, _080EF38C
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF388: .4byte gPokenavOutlineTilemap
-_080EF38C: .4byte 0x0600e800
-_080EF390:
- ldr r0, _080EF39C
- ldr r1, _080EF3A0
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF39C: .4byte gPokenavOutlineTiles
-_080EF3A0: .4byte 0x06008020
-_080EF3A4:
- adds r0, r2, 0
- bl sub_80EF54C
- ldr r0, _080EF3C4
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080EF3C8
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EF7D4
- b _080EF40C
- .align 2, 0
-_080EF3C4: .4byte gUnknown_083DFECC
-_080EF3C8: .4byte gPokenavOutlinePalette
-_080EF3CC:
- ldr r1, _080EF3FC
- ldr r2, _080EF400
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080EF404
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x42
- movs r0, 0
- strh r0, [r1]
- ldr r1, [r3]
- ldr r3, _080EF408
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF3F6:
- movs r0, 0
- b _080EF41C
- .align 2, 0
-_080EF3FC: .4byte REG_BG0CNT
-_080EF400: .4byte 0x00001f01
-_080EF404: .4byte 0x00001d0a
-_080EF408: .4byte 0x0000d160
-_080EF40C:
- ldr r0, _080EF420
- ldr r1, [r0]
- ldr r0, _080EF424
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF41A:
- movs r0, 0x1
-_080EF41C:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF420: .4byte gUnknown_083DFEC4
-_080EF424: .4byte 0x0000d160
- thumb_func_end sub_80EF284
-
- thumb_func_start sub_80EF428
-sub_80EF428: @ 80EF428
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r1, 0
- cmp r0, 0x1
- beq _080EF454
- cmp r0, 0x1
- bgt _080EF444
- cmp r0, 0
- beq _080EF44A
- b _080EF464
-_080EF444:
- cmp r3, 0x2
- beq _080EF45C
- b _080EF464
-_080EF44A:
- ldr r1, _080EF450
- b _080EF45E
- .align 2, 0
-_080EF450: .4byte gUnknown_083E31B0
-_080EF454:
- ldr r1, _080EF458
- b _080EF45E
- .align 2, 0
-_080EF458: .4byte gUnknown_083E31CC
-_080EF45C:
- ldr r1, _080EF488
-_080EF45E:
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
-_080EF464:
- ldr r0, _080EF48C
- ldr r4, [r0]
- movs r0, 0x80
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r2, 0xC0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF488: .4byte gUnknown_083E31D8
-_080EF48C: .4byte gUnknown_083DFEC8
- thumb_func_end sub_80EF428
-
- thumb_func_start sub_80EF490
-sub_80EF490: @ 80EF490
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF49C
- movs r2, 0x1
-_080EF49C:
- ldr r0, _080EF4C4
- ldr r3, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r2, r1, 1
- ldr r4, _080EF4C8
- adds r0, r3, r4
- strh r2, [r0]
- ldr r2, _080EF4CC
- adds r0, r3, r2
- ldrh r2, [r0]
- lsls r1, 17
- lsrs r0, r1, 16
- cmp r2, r0
- bcs _080EF4D0
- adds r4, 0x2
- adds r1, r3, r4
- movs r0, 0x2
- b _080EF4EA
- .align 2, 0
-_080EF4C4: .4byte gUnknown_083DFEC4
-_080EF4C8: .4byte 0x0000ce4e
-_080EF4CC: .4byte 0x0000ce4c
-_080EF4D0:
- cmp r2, r0
- bls _080EF4E4
- ldr r0, _080EF4DC
- adds r1, r3, r0
- ldr r0, _080EF4E0
- b _080EF4EA
- .align 2, 0
-_080EF4DC: .4byte 0x0000ce50
-_080EF4E0: .4byte 0x0000fffe
-_080EF4E4:
- ldr r2, _080EF4F4
- adds r1, r3, r2
- movs r0, 0
-_080EF4EA:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF4F4: .4byte 0x0000ce50
- thumb_func_end sub_80EF490
-
- thumb_func_start sub_80EF4F8
-sub_80EF4F8: @ 80EF4F8
- push {r4,lr}
- ldr r0, _080EF530
- ldr r1, [r0]
- ldr r0, _080EF534
- adds r2, r1, r0
- ldr r3, _080EF538
- adds r0, r1, r3
- ldrh r3, [r2]
- ldrh r0, [r0]
- cmp r3, r0
- beq _080EF544
- ldr r4, _080EF53C
- adds r0, r1, r4
- ldrh r0, [r0]
- adds r0, r3, r0
- strh r0, [r2]
- ldr r3, _080EF540
- adds r0, r1, r3
- ldrh r1, [r2]
- lsls r1, 1
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x1
- b _080EF546
- .align 2, 0
-_080EF530: .4byte gUnknown_083DFEC4
-_080EF534: .4byte 0x0000ce4c
-_080EF538: .4byte 0x0000ce4e
-_080EF53C: .4byte 0x0000ce50
-_080EF540: .4byte 0x0000ce52
-_080EF544:
- movs r0, 0
-_080EF546:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EF4F8
-
- thumb_func_start sub_80EF54C
-sub_80EF54C: @ 80EF54C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF558
- movs r2, 0x1
-_080EF558:
- ldr r0, _080EF580
- ldr r0, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 1
- ldr r3, _080EF584
- adds r2, r0, r3
- strh r1, [r2]
- ldrh r1, [r2]
- lsls r1, 1
- ldr r2, _080EF588
- adds r1, r2
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080EF580: .4byte gUnknown_083DFEC4
-_080EF584: .4byte 0x0000ce4c
-_080EF588: .4byte 0x0000ce52
- thumb_func_end sub_80EF54C
-
- thumb_func_start sub_80EF58C
-sub_80EF58C: @ 80EF58C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080EF5D0
- cmp r0, 0x1
- bgt _080EF5A4
- cmp r0, 0
- beq _080EF5AA
- b _080EF610
-_080EF5A4:
- cmp r1, 0x2
- beq _080EF5F8
- b _080EF610
-_080EF5AA:
- movs r1, 0
- ldr r0, _080EF5C8
- ldr r0, [r0]
- ldr r3, _080EF5CC
- adds r2, r0, r3
- movs r3, 0
-_080EF5B6:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3D
- bls _080EF5B6
- b _080EF610
- .align 2, 0
-_080EF5C8: .4byte gUnknown_083DFEC4
-_080EF5CC: .4byte 0x0000ce52
-_080EF5D0:
- ldr r0, _080EF5EC
- ldr r0, [r0]
- ldr r1, _080EF5F0
- adds r2, r0, r1
- ldr r1, _080EF5F4
- adds r0, r1, 0x2
- adds r1, 0x6
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
- b _080EF610
- .align 2, 0
-_080EF5EC: .4byte gUnknown_083DFEC4
-_080EF5F0: .4byte 0x0000ce52
-_080EF5F4: .4byte gUnknown_083E003C
-_080EF5F8:
- ldr r0, _080EF618
- ldr r0, [r0]
- ldr r3, _080EF61C
- adds r2, r0, r3
- ldr r1, _080EF620
- adds r0, r1, 0x6
- adds r1, 0xE
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
-_080EF610:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EF618: .4byte gUnknown_083DFEC4
-_080EF61C: .4byte 0x0000ce8e
-_080EF620: .4byte gUnknown_083E003C
- thumb_func_end sub_80EF58C
-
- thumb_func_start sub_80EF624
-sub_80EF624: @ 80EF624
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x58]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- movs r0, 0
- str r0, [sp, 0x10]
- lsls r0, r3, 16
- ldr r1, [sp, 0x10]
- cmp r1, r3
- bcs _080EF72E
- subs r2, 0x1
- str r2, [sp, 0x20]
- str r0, [sp, 0x2C]
-_080EF654:
- ldr r2, [sp]
- ldrh r1, [r2]
- movs r0, 0x1F
- ands r0, r1
- lsls r7, r0, 8
- lsls r1, 16
- lsrs r0, r1, 21
- movs r2, 0x1F
- ands r0, r2
- lsls r6, r0, 8
- lsrs r1, 26
- ands r1, r2
- lsls r5, r1, 8
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0x14]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r2
- lsls r0, 8
- str r0, [sp, 0x18]
- lsrs r1, 26
- ands r1, r2
- lsls r1, 8
- str r1, [sp, 0x1C]
- ldr r1, [sp, 0x14]
- subs r0, r1, r7
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r10, r0
- ldr r2, [sp, 0x18]
- subs r0, r2, r6
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r9, r0
- ldr r1, [sp, 0x1C]
- subs r0, r1, r5
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r8, r0
- adds r3, r4, 0
- movs r4, 0
- ldr r2, [sp]
- adds r2, 0x2
- str r2, [sp, 0x30]
- ldr r0, [sp, 0x4]
- adds r0, 0x2
- str r0, [sp, 0x34]
- adds r1, r3, 0x2
- str r1, [sp, 0x24]
- ldr r2, [sp, 0x10]
- adds r2, 0x1
- str r2, [sp, 0x28]
- ldr r0, [sp, 0x20]
- cmp r4, r0
- bge _080EF700
- ldr r1, [sp, 0xC]
- lsls r1, 1
- mov r12, r1
-_080EF6D6:
- lsls r0, r7, 8
- lsrs r2, r0, 16
- lsls r0, r6, 8
- lsrs r1, r0, 16
- lsls r0, r5, 8
- lsrs r0, 16
- lsls r0, 10
- lsls r1, 5
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- add r3, r12
- add r7, r10
- add r6, r9
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x20]
- cmp r4, r2
- blt _080EF6D6
-_080EF700:
- ldr r4, [sp, 0x14]
- lsrs r2, r4, 8
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 2
- ldr r4, [sp, 0x18]
- lsrs r1, r4, 3
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- ldr r0, [sp, 0x30]
- str r0, [sp]
- ldr r1, [sp, 0x34]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x24]
- ldr r2, [sp, 0x28]
- lsls r0, r2, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x2C]
- lsrs r0, r1, 16
- ldr r2, [sp, 0x10]
- cmp r2, r0
- bcc _080EF654
-_080EF72E:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF624
-
- thumb_func_start sub_80EF740
-sub_80EF740: @ 80EF740
- push {lr}
- ldr r0, _080EF770
- ldr r3, [r0]
- ldr r0, _080EF774
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2]
- cmp r0, 0
- beq _080EF762
- ldr r2, _080EF778
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF762:
- ldr r0, _080EF77C
- ldr r2, _080EF778
- adds r1, r3, r2
- ldrh r1, [r1]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080EF770: .4byte gUnknown_083DFEC4
-_080EF774: .4byte 0x00006da0
-_080EF778: .4byte 0x00006da2
-_080EF77C: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF740
-
- thumb_func_start sub_80EF780
-sub_80EF780: @ 80EF780
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EF7B0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080EF7AA
- ldr r0, _080EF7B4
- ldr r3, [r0]
- ldr r0, _080EF7B8
- adds r2, r3, r0
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080EF7BC
-_080EF7AA:
- bl sub_80EF740
- b _080EF7C8
- .align 2, 0
-_080EF7B0: .4byte gTasks
-_080EF7B4: .4byte gUnknown_083DFEC4
-_080EF7B8: .4byte 0x00006da2
-_080EF7BC:
- strh r1, [r2]
- ldr r2, _080EF7CC
- adds r0, r3, r2
- strh r1, [r0]
- ldr r0, _080EF7D0
- strh r1, [r0]
-_080EF7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF7CC: .4byte 0x00006da0
-_080EF7D0: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF780
-
- thumb_func_start sub_80EF7D4
-sub_80EF7D4: @ 80EF7D4
- push {r4,lr}
- ldr r0, _080EF800
- ldr r4, [r0]
- ldr r1, _080EF804
- adds r0, r4, r1
- movs r1, 0
- strh r1, [r0]
- ldr r2, _080EF808
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080EF80C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EF810
- adds r4, r1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF800: .4byte gUnknown_083DFEC4
-_080EF804: .4byte 0x00006da2
-_080EF808: .4byte 0x00006da0
-_080EF80C: .4byte sub_80EF780
-_080EF810: .4byte 0x00006da4
- thumb_func_end sub_80EF7D4
-
- thumb_func_start sub_80EF814
-sub_80EF814: @ 80EF814
- push {lr}
- ldr r0, _080EF834
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080EF830
- ldr r0, _080EF838
- ldr r0, [r0]
- ldr r1, _080EF83C
- adds r0, r1
- ldrb r0, [r0]
- bl DestroyTask
-_080EF830:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF834: .4byte sub_80EF780
-_080EF838: .4byte gUnknown_083DFEC4
-_080EF83C: .4byte 0x00006da4
- thumb_func_end sub_80EF814
-
- thumb_func_start sub_80EF840
-sub_80EF840: @ 80EF840
- push {lr}
- ldr r0, _080EF868
- ldr r0, [r0]
- ldr r1, _080EF86C
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF870
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF862
-_080EF858:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EF858
-_080EF862:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF868: .4byte gUnknown_083DFEC4
-_080EF86C: .4byte 0x0000d160
-_080EF870: .4byte 0x00006dac
- thumb_func_end sub_80EF840
-
- thumb_func_start sub_80EF874
-sub_80EF874: @ 80EF874
- push {lr}
- ldr r0, _080EF890
- ldr r0, [r0]
- ldr r1, _080EF894
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xB
- bls _080EF886
- b _080EF9D8
-_080EF886:
- lsls r0, 2
- ldr r1, _080EF898
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF890: .4byte gUnknown_083DFEC4
-_080EF894: .4byte 0x0000d160
-_080EF898: .4byte _080EF89C
- .align 2, 0
-_080EF89C:
- .4byte _080EF8CC
- .4byte _080EF8D2
- .4byte _080EF8E0
- .4byte _080EF8EC
- .4byte _080EF8F6
- .4byte _080EF8FC
- .4byte _080EF920
- .4byte _080EF92C
- .4byte _080EF940
- .4byte _080EF954
- .4byte _080EF960
- .4byte _080EF972
-_080EF8CC:
- bl sub_80EEDE8
- b _080EF9DC
-_080EF8D2:
- ldr r0, _080EF8DC
- bl SetUpWindowConfig
- b _080EF9DC
- .align 2, 0
-_080EF8DC: .4byte gWindowConfig_81E7224
-_080EF8E0:
- ldr r0, _080EF8E8
- bl MultistepInitMenuWindowBegin
- b _080EF9DC
- .align 2, 0
-_080EF8E8: .4byte gWindowConfig_81E7224
-_080EF8EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _080EF9DC
- b _080EF9EA
-_080EF8F6:
- bl MenuZeroFillScreen
- b _080EF9DC
-_080EF8FC:
- ldr r0, _080EF914
- ldr r0, [r0]
- ldr r2, _080EF918
- adds r0, r2
- ldr r1, _080EF91C
- ldrb r1, [r1, 0x15]
- lsrs r1, 3
- movs r2, 0x1
- ands r1, r2
- bl sub_80FA904
- b _080EF9DC
- .align 2, 0
-_080EF914: .4byte gUnknown_083DFEC4
-_080EF918: .4byte 0x00006e18
-_080EF91C: .4byte gSaveBlock2
-_080EF920:
- bl sub_80FA940
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF92C:
- ldr r0, _080EF938
- ldr r1, _080EF93C
- bl LZ77UnCompVram
- b _080EF9DC
- .align 2, 0
-_080EF938: .4byte gPokenavHoennMapSquares_Gfx
-_080EF93C: .4byte 0x06005000
-_080EF940:
- ldr r0, _080EF950
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EFC3C
- b _080EF9DC
- .align 2, 0
-_080EF950: .4byte gPokenavHoennMapSquares_Pal
-_080EF954:
- bl sub_80EFC64
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF960:
- movs r0, 0xD
- movs r1, 0x3
- movs r2, 0x1D
- movs r3, 0x11
- bl MenuDrawTextWindow
- bl sub_80EF9F8
- b _080EF9DC
-_080EF972:
- ldr r0, _080EF990
- ldr r1, [r0]
- ldr r2, _080EF994
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF9A0
- ldr r2, _080EF998
- adds r0, r1, r2
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080EF99C
- strh r1, [r0]
- b _080EF9B0
- .align 2, 0
-_080EF990: .4byte gUnknown_083DFEC4
-_080EF994: .4byte 0x00006e90
-_080EF998: .4byte 0x00007698
-_080EF99C: .4byte REG_BG0VOFS
-_080EF9A0:
- ldr r0, _080EF9C8
- adds r1, r0
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r0, _080EF9CC
- strh r2, [r0]
-_080EF9B0:
- ldr r2, _080EF9D0
- ldrh r0, [r2]
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080EF9D4
- movs r0, 0
- strh r0, [r1]
- b _080EF9DC
- .align 2, 0
-_080EF9C8: .4byte 0x00007698
-_080EF9CC: .4byte REG_BG0VOFS
-_080EF9D0: .4byte REG_BG0CNT
-_080EF9D4: .4byte REG_BLDCNT
-_080EF9D8:
- movs r0, 0
- b _080EF9EC
-_080EF9DC:
- ldr r0, _080EF9F0
- ldr r1, [r0]
- ldr r2, _080EF9F4
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF9EA:
- movs r0, 0x1
-_080EF9EC:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF9F0: .4byte gUnknown_083DFEC4
-_080EF9F4: .4byte 0x0000d160
- thumb_func_end sub_80EF874
-
- thumb_func_start sub_80EF9F8
-sub_80EF9F8: @ 80EF9F8
- push {r4-r6,lr}
- sub sp, 0x14
- movs r5, 0x4
- ldr r0, _080EFA18
- ldr r0, [r0]
- ldr r1, _080EFA1C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _080EFA0E
- b _080EFB6A
-_080EFA0E:
- lsls r0, 2
- ldr r1, _080EFA20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFA18: .4byte gUnknown_083DFEC4
-_080EFA1C: .4byte 0x00006e2e
-_080EFA20: .4byte _080EFA24
- .align 2, 0
-_080EFA24:
- .4byte _080EFB6A
- .4byte _080EFA38
- .4byte _080EFAC0
- .4byte _080EFB4C
- .4byte _080EFA38
-_080EFA38:
- ldr r0, _080EFA64
- ldr r0, [r0]
- ldr r2, _080EFA68
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080EFA6C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EFA70
- bl sub_80F1A80
- b _080EFB82
- .align 2, 0
-_080EFA64: .4byte gUnknown_083DFEC4
-_080EFA68: .4byte 0x00006e18
-_080EFA6C: .4byte gLinkOpen
-_080EFA70:
- movs r4, 0
- b _080EFA92
-_080EFA74:
- lsls r2, r5, 19
- lsrs r2, 16
- movs r0, 0x1
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EFA92:
- cmp r4, 0x3
- bhi _080EFB6A
- ldr r0, _080EFAB8
- ldr r1, [r0]
- ldr r2, _080EFABC
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_811A8CC
- adds r1, r0, 0
- cmp r1, 0
- bne _080EFA74
- b _080EFB6A
- .align 2, 0
-_080EFAB8: .4byte gUnknown_083DFEC4
-_080EFABC: .4byte 0x00006e2c
-_080EFAC0:
- ldr r0, _080EFB38
- ldr r4, [r0]
- ldr r1, _080EFB3C
- adds r0, r4, r1
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _080EFB40
- adds r0, r4, r2
- ldrh r1, [r0]
- adds r2, 0x3
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- lsls r1, 3
- adds r0, r1
- ldr r1, _080EFB44
- adds r4, r1
- adds r6, r4, r0
- ldr r0, [r6]
- cmp r0, 0
- beq _080EFB6A
- lsls r4, r5, 24
- lsrs r4, 24
- movs r0, 0xE
- adds r1, r4, 0
- movs r2, 0xF
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x1A
- adds r1, r4, 0
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080EFB48
- ldr r3, [r6]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x10
- movs r2, 0x6
- bl sub_8095C8C
- adds r0, r5, 0
- adds r0, 0xB
- b _080EFB66
- .align 2, 0
-_080EFB38: .4byte gUnknown_083DFEC4
-_080EFB3C: .4byte 0x00006e18
-_080EFB40: .4byte 0x00006e2c
-_080EFB44: .4byte 0x0000cdcc
-_080EFB48: .4byte 0x0600f800
-_080EFB4C:
- ldr r0, _080EFB98
- ldr r0, [r0]
- ldr r2, _080EFB9C
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
-_080EFB66:
- lsls r0, 16
- lsrs r5, r0, 16
-_080EFB6A:
- movs r0, 0
- cmp r0, 0
- bne _080EFB82
- cmp r5, 0xF
- bhi _080EFB82
- lsls r1, r5, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
-_080EFB82:
- ldr r0, _080EFB98
- ldr r0, [r0]
- ldr r1, _080EFBA0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080EFBA4
- bl sub_80EFD74
- b _080EFBA8
- .align 2, 0
-_080EFB98: .4byte gUnknown_083DFEC4
-_080EFB9C: .4byte 0x00006e18
-_080EFBA0: .4byte 0x00006e2e
-_080EFBA4:
- bl sub_80EFDA0
-_080EFBA8:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF9F8
-
- thumb_func_start sub_80EFBB0
-sub_80EFBB0: @ 80EFBB0
- push {lr}
- ldr r0, _080EFBC8
- ldr r0, [r0]
- ldr r1, _080EFBCC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFBD0
- movs r0, 0x8
- bl sub_80EEFBC
- b _080EFBD6
- .align 2, 0
-_080EFBC8: .4byte gUnknown_083DFEC4
-_080EFBCC: .4byte 0x00006e90
-_080EFBD0:
- movs r0, 0x7
- bl sub_80EEFBC
-_080EFBD6:
- pop {r0}
- bx r0
- thumb_func_end sub_80EFBB0
-
- thumb_func_start sub_80EFBDC
-sub_80EFBDC: @ 80EFBDC
- push {r4,lr}
- lsls r0, 24
- movs r4, 0x1
- ldr r2, _080EFBFC
- ldr r1, [r2]
- ldr r3, _080EFC00
- adds r1, r3
- ldrh r3, [r1]
- cmp r0, 0
- beq _080EFC08
- cmp r3, 0xA8
- bls _080EFC04
- adds r0, r3, 0
- subs r0, 0x8
- b _080EFC10
- .align 2, 0
-_080EFBFC: .4byte gUnknown_083DFEC4
-_080EFC00: .4byte 0x00007698
-_080EFC04:
- movs r3, 0xA0
- b _080EFC1A
-_080EFC08:
- cmp r3, 0xF7
- bhi _080EFC16
- adds r0, r3, 0
- adds r0, 0x8
-_080EFC10:
- lsls r0, 16
- lsrs r3, r0, 16
- b _080EFC1C
-_080EFC16:
- movs r3, 0x80
- lsls r3, 1
-_080EFC1A:
- movs r4, 0
-_080EFC1C:
- ldr r0, [r2]
- ldr r1, _080EFC34
- adds r0, r1
- strh r3, [r0]
- ldr r1, _080EFC38
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1]
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EFC34: .4byte 0x00007698
-_080EFC38: .4byte REG_BG0VOFS
- thumb_func_end sub_80EFBDC
-
- thumb_func_start sub_80EFC3C
-sub_80EFC3C: @ 80EFC3C
- push {lr}
- ldr r0, _080EFC58
- ldr r0, [r0]
- ldr r2, _080EFC5C
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080EFC60
- adds r0, r1
- strb r2, [r0]
- bl sub_80EFD3C
- pop {r0}
- bx r0
- .align 2, 0
-_080EFC58: .4byte gUnknown_083DFEC4
-_080EFC5C: .4byte 0x0000bc9a
-_080EFC60: .4byte 0x0000bc9b
- thumb_func_end sub_80EFC3C
-
- thumb_func_start sub_80EFC64
-sub_80EFC64: @ 80EFC64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _080EFCD0
- ldr r2, [r4]
- ldr r0, _080EFCD4
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xF
- bhi _080EFD2C
- ldrb r1, [r1]
- mov r8, r1
- ldr r1, _080EFCD8
- adds r0, r2, r1
- ldrb r7, [r0]
- movs r2, 0
- ldr r0, _080EFCDC
- mov r9, r0
- adds r3, r4, 0
-_080EFC8E:
- lsls r0, r2, 2
- mov r4, r8
- lsls r1, r4, 3
- adds r6, r0, r1
- mov r1, r9
- adds r0, r6, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080EFCE8
- movs r0, 0xC8
- adds r5, r7, 0
- muls r5, r0
- ldr r4, _080EFCE0
- adds r5, r4
- ldr r4, [r3]
- adds r5, r4, r5
- adds r0, r1, 0
- adds r1, r5, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl LZ77UnCompVram
- ldr r0, _080EFCE4
- adds r4, r0
- adds r4, r6
- str r5, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- b _080EFCF2
- .align 2, 0
-_080EFCD0: .4byte gUnknown_083DFEC4
-_080EFCD4: .4byte 0x0000bc9a
-_080EFCD8: .4byte 0x0000bc9b
-_080EFCDC: .4byte gPokenavCityMaps
-_080EFCE0: .4byte 0x0000bc9c
-_080EFCE4: .4byte 0x0000cdcc
-_080EFCE8:
- ldr r0, [r3]
- ldr r4, _080EFD1C
- adds r0, r4
- adds r0, r6
- str r1, [r0]
-_080EFCF2:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _080EFC8E
- ldr r0, _080EFD20
- ldr r2, [r0]
- ldr r0, _080EFD24
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _080EFD2C
- ldr r1, _080EFD28
- adds r0, r2, r1
- strb r7, [r0]
- movs r0, 0x1
- b _080EFD2E
- .align 2, 0
-_080EFD1C: .4byte 0x0000cdcc
-_080EFD20: .4byte gUnknown_083DFEC4
-_080EFD24: .4byte 0x0000bc9a
-_080EFD28: .4byte 0x0000bc9b
-_080EFD2C:
- movs r0, 0
-_080EFD2E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EFC64
-
- thumb_func_start sub_80EFD3C
-sub_80EFD3C: @ 80EFD3C
- ldr r0, _080EFD60
- ldr r1, [r0]
- ldr r2, _080EFD64
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r0, _080EFD68
- adds r3, r1, r0
- movs r0, 0x2F
- strb r0, [r3]
- ldr r3, _080EFD6C
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EFD70
- adds r1, r0
- strh r2, [r1]
- bx lr
- .align 2, 0
-_080EFD60: .4byte gUnknown_083DFEC4
-_080EFD64: .4byte 0x0000769e
-_080EFD68: .4byte 0x0000769c
-_080EFD6C: .4byte 0x0000769d
-_080EFD70: .4byte 0x0000769a
- thumb_func_end sub_80EFD3C
-
- thumb_func_start sub_80EFD74
-sub_80EFD74: @ 80EFD74
- push {lr}
- ldr r0, _080EFD94
- ldr r2, [r0]
- ldr r0, _080EFD98
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EFD9C
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080EFD90
- movs r0, 0x2
- strb r0, [r2]
-_080EFD90:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFD94: .4byte gUnknown_083DFEC4
-_080EFD98: .4byte 0x0000769e
-_080EFD9C: .4byte 0x0000769d
- thumb_func_end sub_80EFD74
-
- thumb_func_start sub_80EFDA0
-sub_80EFDA0: @ 80EFDA0
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFDD4
- ldr r3, _080EFDD8
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r2, 0xF
- str r2, [sp, 0x8]
- movs r1, 0x1
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- ldr r0, _080EFDDC
- ldr r0, [r0]
- ldr r1, _080EFDE0
- adds r0, r1
- strb r4, [r0]
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFDD4: .4byte 0x0600f800
-_080EFDD8: .4byte gUnknown_08E9AC2C
-_080EFDDC: .4byte gUnknown_083DFEC4
-_080EFDE0: .4byte 0x0000769e
- thumb_func_end sub_80EFDA0
-
- thumb_func_start sub_80EFDE4
-sub_80EFDE4: @ 80EFDE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EFE68
- ldr r1, [r0]
- ldr r2, _080EFE6C
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x3C
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080EFE06
- movs r4, 0xF
-_080EFE06:
- ldr r3, _080EFE70
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EFE58
- ldr r0, _080EFE74
- mov r8, r0
- ldr r3, _080EFE78
- mov r9, r3
- str r2, [sp]
- movs r5, 0
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r7, 0x1
- str r7, [sp, 0xC]
- movs r6, 0x3C
- str r6, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- cmp r4, 0xE
- bhi _080EFE58
- adds r1, r4, 0
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0xF
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
- str r6, [sp, 0x10]
- mov r0, r8
- movs r2, 0x10
- mov r3, r9
- bl sub_8095C8C
-_080EFE58:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFE68: .4byte gUnknown_083DFEC4
-_080EFE6C: .4byte 0x0000769c
-_080EFE70: .4byte 0x0000769e
-_080EFE74: .4byte 0x0600f800
-_080EFE78: .4byte gUnknown_08E9ABB4
- thumb_func_end sub_80EFDE4
-
- thumb_func_start sub_80EFE7C
-sub_80EFE7C: @ 80EFE7C
- push {r4,lr}
- ldr r0, _080EFE98
- ldr r2, [r0]
- ldr r0, _080EFE9C
- adds r4, r2, r0
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080EFF08
- cmp r1, 0x1
- bgt _080EFEA0
- cmp r1, 0
- beq _080EFEA6
- b _080EFF2E
- .align 2, 0
-_080EFE98: .4byte gUnknown_083DFEC4
-_080EFE9C: .4byte 0x0000769d
-_080EFEA0:
- cmp r1, 0x2
- beq _080EFF24
- b _080EFF2E
-_080EFEA6:
- ldr r0, _080EFED4
- adds r4, r2, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _080EFEBA
- strb r1, [r4]
-_080EFEBA:
- ldr r1, _080EFED8
- adds r0, r2, r1
- ldrb r0, [r0]
- bl sub_80EFDE4
- ldrb r0, [r4]
- cmp r0, 0xF
- beq _080EFEE4
- cmp r0, 0xF
- bgt _080EFEDC
- cmp r0, 0
- beq _080EFEE4
- b _080EFF2E
- .align 2, 0
-_080EFED4: .4byte 0x0000769c
-_080EFED8: .4byte 0x0000769e
-_080EFEDC:
- cmp r0, 0x1E
- beq _080EFEE4
- cmp r0, 0x2D
- bne _080EFF2E
-_080EFEE4:
- ldr r0, _080EFEFC
- ldr r1, [r0]
- ldr r0, _080EFF00
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _080EFF04
- adds r1, r0
- strh r3, [r1]
- b _080EFF2E
- .align 2, 0
-_080EFEFC: .4byte gUnknown_083DFEC4
-_080EFF00: .4byte 0x0000769d
-_080EFF04: .4byte 0x0000769a
-_080EFF08:
- ldr r0, _080EFF20
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x78
- bls _080EFF2E
- movs r0, 0
- strh r0, [r1]
- b _080EFF2C
- .align 2, 0
-_080EFF20: .4byte 0x0000769a
-_080EFF24:
- movs r0, 0x1
- bl sub_80EFDE4
- movs r0, 0x1
-_080EFF2C:
- strb r0, [r4]
-_080EFF2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EFE7C
-
- thumb_func_start sub_80EFF34
-sub_80EFF34: @ 80EFF34
- push {lr}
- ldr r0, _080EFF5C
- ldr r0, [r0]
- ldr r1, _080EFF60
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EFF64
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFF56
-_080EFF4C:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080EFF4C
-_080EFF56:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFF5C: .4byte gUnknown_083DFEC4
-_080EFF60: .4byte 0x0000d160
-_080EFF64: .4byte 0x00006dac
- thumb_func_end sub_80EFF34
-
- thumb_func_start sub_80EFF68
-sub_80EFF68: @ 80EFF68
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFF88
- ldr r0, [r0]
- ldr r1, _080EFF8C
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EFF7C
- b _080F0150
-_080EFF7C:
- lsls r0, 2
- ldr r1, _080EFF90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFF88: .4byte gUnknown_083DFEC4
-_080EFF8C: .4byte 0x0000d160
-_080EFF90: .4byte _080EFF94
- .align 2, 0
-_080EFF94:
- .4byte _080EFFCC
- .4byte _080EFFE8
- .4byte _080EFFF4
- .4byte _080F0000
- .4byte _080F000C
- .4byte _080F0012
- .4byte _080F0018
- .4byte _080F0028
- .4byte _080F003C
- .4byte _080F005C
- .4byte _080F0098
- .4byte _080F00AC
- .4byte _080F00F8
- .4byte _080F0118
-_080EFFCC:
- bl sub_80EEDE8
- ldr r0, _080EFFE0
- ldr r0, [r0]
- ldr r2, _080EFFE4
- adds r0, r2
- movs r1, 0xB
- strb r1, [r0]
- b _080F0154
- .align 2, 0
-_080EFFE0: .4byte gUnknown_083DFEC4
-_080EFFE4: .4byte 0x0000d162
-_080EFFE8:
- ldr r0, _080EFFF0
- bl SetUpWindowConfig
- b _080F0154
- .align 2, 0
-_080EFFF0: .4byte gWindowConfig_81E7080
-_080EFFF4:
- ldr r0, _080EFFFC
- bl MultistepInitMenuWindowBegin
- b _080F0154
- .align 2, 0
-_080EFFFC: .4byte gWindowConfig_81E7080
-_080F0000:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F000A
- b _080F0154
-_080F000A:
- b _080F0162
-_080F000C:
- bl MenuZeroFillScreen
- b _080F0154
-_080F0012:
- bl sub_80F1614
- b _080F0154
-_080F0018:
- movs r0, 0
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- bne _080F0026
- b _080F0154
-_080F0026:
- b _080F0162
-_080F0028:
- ldr r0, _080F0034
- ldr r1, _080F0038
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F0034: .4byte gPokenavConditionView_Gfx
-_080F0038: .4byte 0x06005000
-_080F003C:
- ldr r0, _080F0050
- ldr r1, _080F0054
- bl LZ77UnCompVram
- ldr r0, _080F0058
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _080F0154
- .align 2, 0
-_080F0050: .4byte gUnknown_08E9AC4C
-_080F0054: .4byte 0x0600f000
-_080F0058: .4byte gPokenavConditionMenu2_Pal
-_080F005C:
- ldr r0, _080F0088
- ldr r0, [r0]
- ldr r1, _080F008C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0154
- ldr r0, _080F0090
- ldr r3, _080F0094
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0154
- .align 2, 0
-_080F0088: .4byte gUnknown_083DFEC4
-_080F008C: .4byte 0x000076aa
-_080F0090: .4byte 0x0600f000
-_080F0094: .4byte gUnknown_083E01AC
-_080F0098:
- ldr r0, _080F00A4
- ldr r1, _080F00A8
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F00A4: .4byte gUnknown_08E9FEB4
-_080F00A8: .4byte 0x0600b800
-_080F00AC:
- ldr r0, _080F00EC
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F00F0
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F00F4
- adds r0, r4, 0
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0x1C
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- bl sub_80F01A4
- b _080F0154
- .align 2, 0
-_080F00EC: .4byte gUnknown_083E0254
-_080F00F0: .4byte gUnknownPalette_81E6692
-_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
-_080F00F8:
- ldr r0, _080F0110
- ldr r0, [r0]
- ldr r2, _080F0114
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F0154
- .align 2, 0
-_080F0110: .4byte gUnknown_083DFEC4
-_080F0114: .4byte 0x00008fe9
-_080F0118:
- ldr r1, _080F013C
- ldr r2, _080F0140
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080F0144
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- ldr r2, _080F0148
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F014C
- adds r0, r2, 0
- strh r0, [r1]
- b _080F0154
- .align 2, 0
-_080F013C: .4byte REG_BG3CNT
-_080F0140: .4byte 0x00001e03
-_080F0144: .4byte 0x00001702
-_080F0148: .4byte 0x00000844
-_080F014C: .4byte 0x0000040b
-_080F0150:
- movs r0, 0
- b _080F0164
-_080F0154:
- ldr r0, _080F016C
- ldr r1, [r0]
- ldr r0, _080F0170
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0162:
- movs r0, 0x1
-_080F0164:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F016C: .4byte gUnknown_083DFEC4
-_080F0170: .4byte 0x0000d160
- thumb_func_end sub_80EFF68
-
- thumb_func_start sub_80F0174
-sub_80F0174: @ 80F0174
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080F018E
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- b _080F019A
-_080F018E:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F01A0
- ands r0, r1
- strh r0, [r2]
-_080F019A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F01A0: .4byte 0x0000fbff
- thumb_func_end sub_80F0174
-
- thumb_func_start sub_80F01A4
-sub_80F01A4: @ 80F01A4
- ldr r1, _080F01CC
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _080F01D0
- ldr r2, _080F01D4
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080F01D8
- ldr r2, _080F01DC
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080F01CC: .4byte REG_WIN0H
-_080F01D0: .4byte REG_WIN0V
-_080F01D4: .4byte 0x00003879
-_080F01D8: .4byte REG_WININ
-_080F01DC: .4byte 0x00003f3f
- thumb_func_end sub_80F01A4
-
- thumb_func_start sub_80F01E0
-sub_80F01E0: @ 80F01E0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080F0248
- lsls r0, r4, 6
- ldr r2, _080F024C
- adds r0, r2
- ldr r5, [r1]
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x1
- bl MenuPrint
- ldr r1, _080F0250
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0242
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r2, _080F0254
- adds r0, r2
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x3
- bl MenuPrint
- ldr r0, _080F0258
- adds r4, r5, r0
- ldr r1, _080F025C
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r0, r5, r0
- ldr r1, _080F0260
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 18
- lsrs r1, 23
- adds r0, r4, 0
- bl sub_80F443C
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x6
- bl MenuPrint
-_080F0242:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0248: .4byte gUnknown_083DFEC4
-_080F024C: .4byte 0x00008829
-_080F0250: .4byte 0x000076aa
-_080F0254: .4byte 0x000088e9
-_080F0258: .4byte 0x00008788
-_080F025C: .4byte 0x000087dc
-_080F0260: .4byte 0x0000893e
- thumb_func_end sub_80F01E0
-
- thumb_func_start sub_80F0264
-sub_80F0264: @ 80F0264
- push {lr}
- ldr r1, _080F0290
- ldr r2, [r1]
- ldr r1, _080F0294
- adds r3, r2, r1
- movs r1, 0
- strh r1, [r3]
- ldr r3, _080F0298
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _080F029C
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _080F028C
-_080F0282:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080F0282
-_080F028C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0290: .4byte gUnknown_083DFEC4
-_080F0294: .4byte 0x00000306
-_080F0298: .4byte 0x000087ca
-_080F029C: .4byte 0x00006dac
- thumb_func_end sub_80F0264
-
- thumb_func_start sub_80F02A0
-sub_80F02A0: @ 80F02A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- ldr r1, _080F02C4
- ldr r0, [r1]
- ldr r2, _080F02C8
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xE
- bls _080F02BA
- b _080F05FA
-_080F02BA:
- lsls r0, 2
- ldr r1, _080F02CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F02C4: .4byte gUnknown_083DFEC4
-_080F02C8: .4byte 0x00000306
-_080F02CC: .4byte _080F02D0
- .align 2, 0
-_080F02D0:
- .4byte _080F030C
- .4byte _080F0344
- .4byte _080F0350
- .4byte _080F035C
- .4byte _080F0368
- .4byte _080F036E
- .4byte _080F0380
- .4byte _080F0394
- .4byte _080F04BC
- .4byte _080F053C
- .4byte _080F0550
- .4byte _080F0574
- .4byte _080F057A
- .4byte _080F0586
- .4byte _080F05BC
-_080F030C:
- bl sub_80EEDE8
- ldr r0, _080F0334
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _080F0338
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0322
- movs r2, 0x1
-_080F0322:
- ldr r3, _080F033C
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080F0340
- adds r1, r0
- movs r0, 0xB
- strb r0, [r1]
- b _080F0618
- .align 2, 0
-_080F0334: .4byte gUnknown_083DFEC4
-_080F0338: .4byte 0x000087ca
-_080F033C: .4byte 0x000087c8
-_080F0340: .4byte 0x0000d162
-_080F0344:
- ldr r0, _080F034C
- bl SetUpWindowConfig
- b _080F0618
- .align 2, 0
-_080F034C: .4byte gWindowConfig_81E70D4
-_080F0350:
- ldr r0, _080F0358
- bl MultistepInitMenuWindowBegin
- b _080F0618
- .align 2, 0
-_080F0358: .4byte gWindowConfig_81E70D4
-_080F035C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F0366
- b _080F0618
-_080F0366:
- b _080F0626
-_080F0368:
- bl MenuZeroFillScreen
- b _080F0618
-_080F036E:
- ldr r0, _080F0378
- ldr r1, _080F037C
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0378: .4byte gUnknown_08E9FC64
-_080F037C: .4byte 0x0600e800
-_080F0380:
- ldr r0, _080F038C
- ldr r1, _080F0390
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F038C: .4byte gPokenavConditionSearch2_Gfx
-_080F0390: .4byte 0x06008000
-_080F0394:
- ldr r6, _080F03FC
- adds r0, r6, 0
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0400
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0404
- ldr r0, [r0]
- ldr r1, _080F0408
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F0418
- ldr r4, _080F040C
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F0410
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0414
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F03FC: .4byte gUnknown_083E02B4
-_080F0400: .4byte gUnknown_083E0334
-_080F0404: .4byte gUnknown_083DFEC4
-_080F0408: .4byte 0x000087ca
-_080F040C: .4byte gPokenavConditionSearch2_Pal
-_080F0410: .4byte gPlttBufferUnfaded
-_080F0414: .4byte gUnknownPalette_81E6692
-_080F0418:
- cmp r0, 0x1
- bne _080F0464
- ldr r4, _080F0458
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F045C
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0460
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F0458: .4byte gUnknown_083E0274
-_080F045C: .4byte gPlttBufferUnfaded
-_080F0460: .4byte gUnknownPalette_81E6692
-_080F0464:
- ldr r4, _080F04B0
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F04B4
- adds r5, r4, 0
- adds r5, 0xA
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F04B8
- movs r1, 0x50
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x5F
-_080F04A8:
- movs r2, 0x2
- bl LoadPalette
- b _080F0618
- .align 2, 0
-_080F04B0: .4byte gUnknown_08E9F9E8
-_080F04B4: .4byte gPlttBufferUnfaded
-_080F04B8: .4byte gUnknown_083E0314
-_080F04BC:
- ldr r0, _080F04E8
- ldr r0, [r0]
- ldr r2, _080F04EC
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F04F8
- ldr r0, _080F04F0
- ldr r3, _080F04F4
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F04E8: .4byte gUnknown_083DFEC4
-_080F04EC: .4byte 0x000087ca
-_080F04F0: .4byte 0x0600e800
-_080F04F4: .4byte gUnknown_08E9FD1C
-_080F04F8:
- ldr r3, _080F0530
- mov r8, r3
- ldr r3, _080F0534
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0xC
- str r5, [sp, 0x8]
- movs r6, 0xA
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x4
- bl sub_8095C8C
- ldr r3, _080F0538
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x8
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F0530: .4byte 0x0600e800
-_080F0534: .4byte gUnknown_08E9FE54
-_080F0538: .4byte gUnknown_08E9FD64
-_080F053C:
- ldr r0, _080F0548
- ldr r1, _080F054C
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0548: .4byte gUnknown_083E0354
-_080F054C: .4byte 0x06005000
-_080F0550:
- ldr r2, _080F0568
- add r1, sp, 0x14
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F056C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080F0570
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080F0618
- .align 2, 0
-_080F0568: .4byte 0x0600f800
-_080F056C: .4byte 0x040000d4
-_080F0570: .4byte 0x81000400
-_080F0574:
- bl sub_80F0900
- b _080F0618
-_080F057A:
- bl sub_80F0944
- lsls r0, 24
- cmp r0, 0
- beq _080F0618
- b _080F0626
-_080F0586:
- ldr r0, _080F059C
- ldr r4, [r0]
- ldr r1, _080F05A0
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F05A4
- bl ShowMapNamePopUpWindow
- b _080F0618
- .align 2, 0
-_080F059C: .4byte gUnknown_083DFEC4
-_080F05A0: .4byte 0x000087ca
-_080F05A4:
- movs r0, 0
- bl sub_80F081C
- ldr r2, _080F05B8
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080F0618
- .align 2, 0
-_080F05B8: .4byte 0x0000876e
-_080F05BC:
- ldr r1, _080F0600
- ldr r3, _080F0604
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0xF9
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r3, 0xFE
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x16
- movs r0, 0xF8
- strh r0, [r1]
- ldr r1, [r2]
- ldr r0, _080F0608
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xF8
- strh r0, [r2]
- ldr r2, _080F060C
- adds r0, r1, r2
- strh r3, [r0]
- ldr r0, _080F0610
- strh r3, [r0]
- ldr r3, _080F0614
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F05FA:
- movs r0, 0
- b _080F0628
- .align 2, 0
-_080F0600: .4byte REG_BG2CNT
-_080F0604: .4byte 0x00001d0a
-_080F0608: .4byte 0x00008776
-_080F060C: .4byte 0x00008778
-_080F0610: .4byte REG_BLDCNT
-_080F0614: .4byte 0x0000d160
-_080F0618:
- ldr r0, _080F0634
- ldr r1, [r0]
- ldr r0, _080F0638
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0626:
- movs r0, 0x1
-_080F0628:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0634: .4byte gUnknown_083DFEC4
-_080F0638: .4byte 0x00000306
- thumb_func_end sub_80F02A0
-
- thumb_func_start sub_80F063C
-sub_80F063C: @ 80F063C
- push {r4-r7,lr}
- lsls r0, 16
- ldr r3, _080F0664
- ldr r2, [r3]
- lsrs r5, r0, 16
- asrs r4, r0, 16
- lsls r1, r4, 4
- ldr r6, _080F0668
- adds r0, r2, r6
- strh r1, [r0]
- adds r7, r3, 0
- cmp r4, 0x1
- beq _080F065E
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _080F066C
-_080F065E:
- movs r1, 0x4
- b _080F066E
- .align 2, 0
-_080F0664: .4byte gUnknown_083DFEC4
-_080F0668: .4byte 0x0000877c
-_080F066C:
- movs r1, 0x8
-_080F066E:
- ldr r3, _080F06C0
- adds r0, r2, r3
- strh r1, [r0]
- lsls r0, r5, 16
- asrs r3, r0, 16
- cmp r3, 0
- bge _080F06CC
- ldr r4, [r7]
- ldr r6, _080F06C0
- adds r1, r4, r6
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
- subs r6, 0x2
- adds r1, r4, r6
- lsls r0, r3, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080F06C4
- adds r0, r4, r1
- ldrh r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080F06B8
- ldr r2, _080F06C8
- adds r1, r4, r2
- adds r0, 0x1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F06B8:
- negs r0, r3
- lsls r0, 16
- lsrs r5, r0, 16
- b _080F06E6
- .align 2, 0
-_080F06C0: .4byte 0x0000877a
-_080F06C4: .4byte 0x00008770
-_080F06C8: .4byte 0x00008774
-_080F06CC:
- ldr r1, [r7]
- ldr r3, _080F070C
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F0710
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F06E6:
- ldr r0, [r7]
- ldr r1, _080F0714
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- ble _080F06FA
- movs r2, 0
-_080F06FA:
- movs r1, 0x1F
- adds r0, r2, 0
- ands r1, r6
- adds r2, r5, 0
- bl sub_80F0954
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F070C: .4byte 0x00008778
-_080F0710: .4byte 0x00008772
-_080F0714: .4byte 0x00008774
- thumb_func_end sub_80F063C
-
- thumb_func_start sub_80F0718
-sub_80F0718: @ 80F0718
- push {r4,r5,lr}
- bl sub_80F098C
- lsls r0, 24
- cmp r0, 0
- bne _080F0790
- ldr r0, _080F073C
- ldr r4, [r0]
- ldr r0, _080F0740
- adds r3, r4, r0
- ldrh r2, [r3]
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080F0744
- movs r0, 0
- b _080F0792
- .align 2, 0
-_080F073C: .4byte gUnknown_083DFEC4
-_080F0740: .4byte 0x0000877c
-_080F0744:
- ldr r0, _080F0780
- adds r1, r4, r0
- ldrh r0, [r1]
- subs r0, r2, r0
- strh r0, [r3]
- ldr r0, _080F0784
- adds r2, r4, r0
- ldrh r0, [r1]
- ldrh r1, [r2]
- adds r0, r1
- movs r5, 0xFF
- ands r0, r5
- strh r0, [r2]
- ldr r1, _080F0788
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080F0790
- movs r1, 0
- ldrsh r0, [r2, r1]
- adds r0, 0x8
- ands r0, r5
- asrs r1, r0, 3
- ldr r2, _080F078C
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0
- b _080F0792
- .align 2, 0
-_080F0780: .4byte 0x0000877a
-_080F0784: .4byte 0x00008776
-_080F0788: .4byte REG_BG3VOFS
-_080F078C: .4byte 0x00008778
-_080F0790:
- movs r0, 0x1
-_080F0792:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0718
-
- thumb_func_start ShowMapNamePopUpWindow
-ShowMapNamePopUpWindow: @ 80F0798
- push {lr}
- ldr r0, _080F07B0
- ldr r2, [r0]
- ldr r1, _080F07B4
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F07B8
- cmp r0, 0x1
- beq _080F07E0
- b _080F080A
- .align 2, 0
-_080F07B0: .4byte gUnknown_083DFEC4
-_080F07B4: .4byte 0x000087ca
-_080F07B8:
- ldr r3, _080F07D8
- adds r0, r2, r3
- subs r3, 0x1A
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r1, r2, r1
- ldr r2, _080F07DC
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 18
- lsrs r1, 23
- bl sub_80F443C
- b _080F07F4
- .align 2, 0
-_080F07D8: .4byte 0x00008788
-_080F07DC: .4byte 0x0000893e
-_080F07E0:
- ldr r3, _080F0810
- adds r0, r2, r3
- subs r3, 0x1A
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- bl sub_80F445C
-_080F07F4:
- ldr r0, _080F0814
- bl BasicInitMenuWindow
- ldr r0, _080F0818
- ldr r0, [r0]
- ldr r1, _080F0810
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x6
- bl MenuPrint
-_080F080A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0810: .4byte 0x00008788
-_080F0814: .4byte gWindowConfig_81E710C
-_080F0818: .4byte gUnknown_083DFEC4
- thumb_func_end ShowMapNamePopUpWindow
-
- thumb_func_start sub_80F081C
-sub_80F081C: @ 80F081C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F0838
- bl BasicInitMenuWindow
- cmp r5, 0x4
- bhi _080F08C6
- lsls r0, r5, 2
- ldr r1, _080F083C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F0838: .4byte gWindowConfig_81E710C
-_080F083C: .4byte _080F0840
- .align 2, 0
-_080F0840:
- .4byte _080F0854
- .4byte _080F0854
- .4byte _080F0862
- .4byte _080F088C
- .4byte _080F089A
-_080F0854:
- ldr r0, _080F08CC
- movs r1, 0xA
- movs r2, 0x9
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F0862:
- ldr r0, _080F08D0
- ldr r0, [r0]
- ldr r1, _080F08D4
- adds r4, r0, r1
- ldr r2, _080F08D8
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r1, 0x1
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0xB
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F088C:
- ldr r0, _080F08DC
- movs r1, 0xA
- movs r2, 0xD
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F089A:
- movs r0, 0x9
- bl sub_8053108
- adds r1, r0, 0
- ldr r0, _080F08E0
- cmp r1, r0
- bls _080F08AA
- adds r1, r0, 0
-_080F08AA:
- ldr r0, _080F08D0
- ldr r4, [r0]
- ldr r0, _080F08D4
- adds r4, r0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0xF
- bl sub_8072B4C
-_080F08C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F08CC: .4byte gOtherText_NumberRegistered
-_080F08D0: .4byte gUnknown_083DFEC4
-_080F08D4: .4byte 0x00008788
-_080F08D8: .4byte 0x00008774
-_080F08DC: .4byte gOtherText_NumberBattles
-_080F08E0: .4byte 0x0001869f
- thumb_func_end sub_80F081C
-
- thumb_func_start sub_80F08E4
-sub_80F08E4: @ 80F08E4
- push {lr}
- ldr r0, _080F08FC
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x9
- movs r2, 0xB
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080F08FC: .4byte gWindowConfig_81E710C
- thumb_func_end sub_80F08E4
-
- thumb_func_start sub_80F0900
-sub_80F0900: @ 80F0900
- push {r4,r5,lr}
- ldr r0, _080F093C
- ldr r0, [r0]
- ldr r2, _080F0940
- adds r1, r0, r2
- subs r2, 0x2
- adds r5, r0, r2
- ldrh r0, [r1]
- ldrh r1, [r5]
- subs r0, r1
- adds r0, 0x1
- lsls r4, r0, 16
- asrs r0, r4, 16
- cmp r0, 0x7
- bgt _080F092A
- movs r0, 0xC
- movs r1, 0x1
- movs r2, 0x1F
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_080F092A:
- ldrh r0, [r5]
- lsrs r2, r4, 16
- movs r1, 0
- bl sub_80F0954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F093C: .4byte gUnknown_083DFEC4
-_080F0940: .4byte 0x00008772
- thumb_func_end sub_80F0900
-
- thumb_func_start sub_80F0944
-sub_80F0944: @ 80F0944
- push {lr}
- bl sub_80F098C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F0944
-
- thumb_func_start sub_80F0954
-sub_80F0954: @ 80F0954
- push {r4,r5,lr}
- ldr r3, _080F097C
- ldr r3, [r3]
- ldr r5, _080F0980
- adds r4, r3, r5
- movs r5, 0
- strh r0, [r4]
- ldr r4, _080F0984
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, _080F0988
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x6
- adds r3, r4
- strh r5, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F097C: .4byte gUnknown_083DFEC4
-_080F0980: .4byte 0x0000877e
-_080F0984: .4byte 0x00008780
-_080F0988: .4byte 0x00008784
- thumb_func_end sub_80F0954
-
- thumb_func_start sub_80F098C
-sub_80F098C: @ 80F098C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080F09A4
- ldr r6, [r0]
- ldr r0, _080F09A8
- adds r7, r6, r0
- ldrh r0, [r7]
- cmp r0, 0
- bne _080F09AC
-_080F09A0:
- movs r0, 0
- b _080F0A02
- .align 2, 0
-_080F09A4: .4byte gUnknown_083DFEC4
-_080F09A8: .4byte 0x00008784
-_080F09AC:
- movs r1, 0
- mov r8, r1
- ldr r1, _080F0A0C
- ldr r2, _080F0A10
- adds r0, r6, r2
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r1
- ldr r0, _080F0A14
- adds r4, r6, r0
- ldrh r0, [r4]
- ldr r1, _080F0A18
- adds r5, r6, r1
- ldrh r1, [r5]
- ldr r2, [r2]
- bl _call_via_r2
- ldrh r0, [r7]
- subs r0, 0x1
- strh r0, [r7]
- ldr r2, _080F0A1C
- adds r1, r2, 0
- lsls r0, 16
- cmp r0, 0
- beq _080F09A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ands r0, r1
- ldr r2, _080F0A20
- adds r1, r6, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _080F09F6
- mov r0, r8
- strh r0, [r4]
-_080F09F6:
- ldrh r0, [r5]
- adds r0, 0x2
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r5]
- movs r0, 0x1
-_080F0A02:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0A0C: .4byte gUnknown_083E3270
-_080F0A10: .4byte 0x000087ca
-_080F0A14: .4byte 0x0000877e
-_080F0A18: .4byte 0x00008780
-_080F0A1C: .4byte 0x0000ffff
-_080F0A20: .4byte 0x00008774
- thumb_func_end sub_80F098C
-
- thumb_func_start sub_80F0A24
-sub_80F0A24: @ 80F0A24
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _080F0A64
- ldr r4, [r0]
- ldr r1, _080F0A68
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r2, 0x1
- cmp r0, 0
- bne _080F0A40
- movs r2, 0x2
-_080F0A40:
- ldr r0, _080F0A6C
- adds r4, r0
- adds r0, r4, 0
- adds r1, r3, 0
- bl sub_80F4428
- ldr r0, _080F0A70
- bl BasicInitMenuWindow
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r4, 0
- movs r1, 0xD
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0A64: .4byte gUnknown_083DFEC4
-_080F0A68: .4byte 0x000087c8
-_080F0A6C: .4byte 0x00008788
-_080F0A70: .4byte gWindowConfig_81E70D4
- thumb_func_end sub_80F0A24
-
- thumb_func_start sub_80F0A74
-sub_80F0A74: @ 80F0A74
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- ldr r0, _080F0ADC
- ldr r5, [r0]
- ldr r0, _080F0AE0
- adds r4, r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80F700C
- movs r0, 0x1F
- ands r7, r0
- ldr r0, _080F0AE4
- bl BasicInitMenuWindow
- lsls r2, r7, 3
- adds r0, r4, 0
- movs r1, 0x61
- movs r3, 0
- bl sub_80729D8
- ldr r1, _080F0AE8
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r6, r0
- bcs _080F0AF8
- lsls r0, r6, 3
- adds r0, r5, r0
- ldr r1, _080F0AEC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F0AF8
- ldr r0, _080F0AF0
- ldr r3, _080F0AF4
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x1D
- adds r2, r7, 0
- bl sub_8095C8C
- b _080F0B14
- .align 2, 0
-_080F0ADC: .4byte gUnknown_083DFEC4
-_080F0AE0: .4byte 0x00008788
-_080F0AE4: .4byte gWindowConfig_81E70D4
-_080F0AE8: .4byte 0x0000d158
-_080F0AEC: .4byte 0x0000ceed
-_080F0AF0: .4byte 0x0600f000
-_080F0AF4: .4byte gUnknown_083E039C
-_080F0AF8:
- ldr r0, _080F0B1C
- ldr r3, _080F0B20
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x1D
- adds r2, r7, 0
- bl sub_8095C8C
-_080F0B14:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0B1C: .4byte 0x0600f000
-_080F0B20: .4byte gUnknown_083E03A0
- thumb_func_end sub_80F0A74
-
- thumb_func_start sub_80F0B24
-sub_80F0B24: @ 80F0B24
- ldr r0, _080F0B38
- ldr r0, [r0]
- ldr r2, _080F0B3C
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _080F0B40
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080F0B38: .4byte gUnknown_083DFEC4
-_080F0B3C: .4byte 0x0000d15c
-_080F0B40: .4byte 0x00000306
- thumb_func_end sub_80F0B24
-
- thumb_func_start sub_80F0B44
-sub_80F0B44: @ 80F0B44
- push {r4-r6,lr}
- ldr r0, _080F0B58
- ldr r5, [r0]
- ldr r0, _080F0B5C
- adds r6, r5, r0
- ldrh r0, [r6]
- cmp r0, 0x8
- bls _080F0B60
- movs r0, 0
- b _080F0C22
- .align 2, 0
-_080F0B58: .4byte gUnknown_083DFEC4
-_080F0B5C: .4byte 0x0000d15c
-_080F0B60:
- ldr r0, _080F0BBC
- adds r1, r5, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0C20
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r6]
- cmp r0, 0x7
- bhi _080F0BCC
- ldr r0, _080F0BC0
- adds r1, r5, r0
- ldrh r2, [r6]
- lsls r0, r2, 1
- ldrh r1, [r1]
- adds r4, r0, r1
- movs r0, 0x1F
- ands r4, r0
- ldr r1, _080F0BC4
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- beq _080F0BAA
- ldr r0, _080F0BC8
- bl BasicInitMenuWindow
- adds r1, r4, 0
- adds r3, r1, 0x1
- movs r0, 0xC
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
-_080F0BAA:
- ldrh r0, [r6]
- cmp r0, 0
- bne _080F0BB4
- bl sub_80F08E4
-_080F0BB4:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _080F0C20
- .align 2, 0
-_080F0BBC: .4byte 0x00000306
-_080F0BC0: .4byte 0x00008778
-_080F0BC4: .4byte 0x0000876c
-_080F0BC8: .4byte gWindowConfig_81E70D4
-_080F0BCC:
- ldr r0, _080F0C10
- bl BasicInitMenuWindow
- ldr r1, _080F0C14
- adds r0, r5, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
- movs r0, 0x1F
- ands r4, r0
- movs r5, 0
-_080F0BE2:
- adds r3, r4, 0x1
- movs r0, 0xC
- adds r1, r4, 0
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
- adds r4, 0x2
- movs r0, 0x1F
- ands r4, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _080F0BE2
- ldr r0, _080F0C18
- ldr r1, [r0]
- ldr r0, _080F0C1C
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080F0C22
- .align 2, 0
-_080F0C10: .4byte gWindowConfig_81E70D4
-_080F0C14: .4byte 0x00008778
-_080F0C18: .4byte gUnknown_083DFEC4
-_080F0C1C: .4byte 0x0000d15c
-_080F0C20:
- movs r0, 0x1
-_080F0C22:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0B44
-
- thumb_func_start sub_80F0C28
-sub_80F0C28: @ 80F0C28
- ldr r0, _080F0C3C
- ldr r0, [r0]
- ldr r2, _080F0C40
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _080F0C44
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080F0C3C: .4byte gUnknown_083DFEC4
-_080F0C40: .4byte 0x0000d15c
-_080F0C44: .4byte 0x00000306
- thumb_func_end sub_80F0C28
-
- thumb_func_start sub_80F0C48
-sub_80F0C48: @ 80F0C48
- push {r4-r6,lr}
- ldr r0, _080F0C5C
- ldr r4, [r0]
- ldr r0, _080F0C60
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0x7
- bls _080F0C64
- movs r0, 0
- b _080F0CD2
- .align 2, 0
-_080F0C5C: .4byte gUnknown_083DFEC4
-_080F0C60: .4byte 0x0000d15c
-_080F0C64:
- ldr r2, _080F0CBC
- adds r1, r4, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r2, _080F0CC0
- adds r6, r2, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0CD0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F0CC4
- bl BasicInitMenuWindow
- ldr r0, _080F0CC8
- adds r1, r4, r0
- ldrh r0, [r5]
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080F0CCC
- adds r2, r4, r1
- ldrh r1, [r5]
- lsls r1, 1
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- bl sub_80F0A74
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- ands r0, r6
- cmp r0, 0x7
- bls _080F0CD0
- movs r0, 0
- bl sub_80F081C
- movs r0, 0
- b _080F0CD2
- .align 2, 0
-_080F0CBC: .4byte 0x00000306
-_080F0CC0: .4byte 0x0000ffff
-_080F0CC4: .4byte gWindowConfig_81E70D4
-_080F0CC8: .4byte 0x00008770
-_080F0CCC: .4byte 0x00008778
-_080F0CD0:
- movs r0, 0x1
-_080F0CD2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0C48
-
- thumb_func_start sub_80F0CD8
-sub_80F0CD8: @ 80F0CD8
- push {r4,r5,lr}
- ldr r4, _080F0D40
- ldr r1, [r4]
- ldr r2, _080F0D44
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- ldr r3, _080F0D48
- adds r0, r1, r3
- strh r2, [r0]
- ldr r2, _080F0D4C
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 3
- adds r0, r1, r0
- ldr r2, _080F0D50
- adds r0, r2
- ldrb r0, [r0]
- ldr r3, _080F0D54
- adds r1, r3
- ldr r2, _080F0D58
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- adds r2, r0, 0
- movs r1, 0
- adds r5, r4, 0
- adds r4, r3, 0
-_080F0D14:
- ldrb r0, [r2]
- adds r3, r1, 0x1
- cmp r0, 0xFF
- beq _080F0D24
-_080F0D1C:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080F0D1C
-_080F0D24:
- ldr r0, [r5]
- lsls r1, r3, 2
- adds r0, r4
- adds r0, r1
- adds r2, 0x1
- str r2, [r0]
- lsls r0, r3, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bls _080F0D14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0D40: .4byte gUnknown_083DFEC4
-_080F0D44: .4byte 0x00000306
-_080F0D48: .4byte 0x0000d15c
-_080F0D4C: .4byte 0x0000876e
-_080F0D50: .4byte 0x0000ceec
-_080F0D54: .4byte 0x0000d110
-_080F0D58: .4byte gTrainerEyeDescriptions
- thumb_func_end sub_80F0CD8
-
- thumb_func_start sub_80F0D5C
-sub_80F0D5C: @ 80F0D5C
- push {r4,r5,lr}
- ldr r0, _080F0D70
- ldr r4, [r0]
- ldr r0, _080F0D74
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0x7
- bne _080F0D78
-_080F0D6C:
- movs r0, 0
- b _080F0EB0
- .align 2, 0
-_080F0D70: .4byte gUnknown_083DFEC4
-_080F0D74: .4byte 0x0000d15c
-_080F0D78:
- ldr r0, _080F0DB8
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080F0D8C
- b _080F0EAE
-_080F0D8C:
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F0DBC
- bl BasicInitMenuWindow
- ldr r0, _080F0DC0
- adds r1, r4, r0
- ldrh r3, [r5]
- lsls r0, r3, 1
- adds r0, 0x2
- ldrh r1, [r1]
- adds r5, r0, r1
- movs r0, 0x1F
- ands r5, r0
- cmp r3, 0x6
- bhi _080F0D6C
- lsls r0, r3, 2
- ldr r1, _080F0DC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F0DB8: .4byte 0x00000306
-_080F0DBC: .4byte gWindowConfig_81E70D4
-_080F0DC0: .4byte 0x00008778
-_080F0DC4: .4byte _080F0DC8
- .align 2, 0
-_080F0DC8:
- .4byte _080F0DE4
- .4byte _080F0DF0
- .4byte _080F0E08
- .4byte _080F0E14
- .4byte _080F0E2C
- .4byte _080F0E38
- .4byte _080F0E6C
-_080F0DE4:
- ldr r0, _080F0DEC
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0DEC: .4byte gOtherText_Strategy
-_080F0DF0:
- ldr r0, _080F0DFC
- ldr r0, [r0]
- ldr r1, _080F0E00
- adds r4, r0, r1
- ldr r1, _080F0E04
- b _080F0E42
- .align 2, 0
-_080F0DFC: .4byte gUnknown_083DFEC4
-_080F0E00: .4byte 0x00008788
-_080F0E04: .4byte 0x0000d110
-_080F0E08:
- ldr r0, _080F0E10
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0E10: .4byte gOtherText_TrainersPokemon
-_080F0E14:
- ldr r0, _080F0E20
- ldr r0, [r0]
- ldr r1, _080F0E24
- adds r4, r0, r1
- ldr r1, _080F0E28
- b _080F0E42
- .align 2, 0
-_080F0E20: .4byte gUnknown_083DFEC4
-_080F0E24: .4byte 0x00008788
-_080F0E28: .4byte 0x0000d114
-_080F0E2C:
- ldr r0, _080F0E34
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0E34: .4byte gOtherText_SelfIntroduction
-_080F0E38:
- ldr r0, _080F0E60
- ldr r0, [r0]
- ldr r1, _080F0E64
- adds r4, r0, r1
- ldr r1, _080F0E68
-_080F0E42:
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- movs r2, 0x88
- movs r3, 0
- bl sub_8072C74
- lsls r2, r5, 3
- adds r0, r4, 0
-_080F0E54:
- movs r1, 0x61
- movs r3, 0
- bl sub_80729D8
- b _080F0EA0
- .align 2, 0
-_080F0E60: .4byte gUnknown_083DFEC4
-_080F0E64: .4byte 0x00008788
-_080F0E68: .4byte 0x0000d118
-_080F0E6C:
- ldr r0, _080F0E94
- ldr r0, [r0]
- ldr r1, _080F0E98
- adds r4, r0, r1
- ldr r1, _080F0E9C
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- movs r2, 0x88
- movs r3, 0
- bl sub_8072C74
- lsls r2, r5, 3
- adds r0, r4, 0
- movs r1, 0x61
- movs r3, 0
- bl sub_80729D8
- b _080F0D6C
- .align 2, 0
-_080F0E94: .4byte gUnknown_083DFEC4
-_080F0E98: .4byte 0x00008788
-_080F0E9C: .4byte 0x0000d11c
-_080F0EA0:
- ldr r0, _080F0EB8
- ldr r1, [r0]
- ldr r0, _080F0EBC
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0EAE:
- movs r0, 0x1
-_080F0EB0:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0EB8: .4byte gUnknown_083DFEC4
-_080F0EBC: .4byte 0x0000d15c
- thumb_func_end sub_80F0D5C
-
- thumb_func_start sub_80F0EC0
-sub_80F0EC0: @ 80F0EC0
- push {lr}
- ldr r0, _080F0EE4
- ldr r0, [r0]
- ldr r2, _080F0EE8
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r3, _080F0EEC
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _080F0EF0
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- pop {r0}
- bx r0
- .align 2, 0
-_080F0EE4: .4byte gUnknown_083DFEC4
-_080F0EE8: .4byte 0x00000306
-_080F0EEC: .4byte 0x0000d15c
-_080F0EF0: .4byte 0x00008788
- thumb_func_end sub_80F0EC0
-
- thumb_func_start sub_80F0EF4
-sub_80F0EF4: @ 80F0EF4
- push {r4,r5,lr}
- ldr r0, _080F0F08
- ldr r2, [r0]
- ldr r0, _080F0F0C
- adds r5, r2, r0
- ldrh r0, [r5]
- cmp r0, 0x6
- bls _080F0F10
- movs r0, 0
- b _080F0F52
- .align 2, 0
-_080F0F08: .4byte gUnknown_083DFEC4
-_080F0F0C: .4byte 0x0000d15c
-_080F0F10:
- ldr r0, _080F0F58
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0F50
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080F0F5C
- adds r0, r2, r1
- ldrh r4, [r5]
- lsls r4, 1
- adds r4, 0x2
- ldrh r0, [r0]
- adds r4, r0
- movs r0, 0x1F
- ands r4, r0
- ldr r0, _080F0F60
- bl BasicInitMenuWindow
- adds r3, r4, 0x1
- movs r0, 0xC
- adds r1, r4, 0
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F0F50:
- movs r0, 0x1
-_080F0F52:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0F58: .4byte 0x00000306
-_080F0F5C: .4byte 0x00008778
-_080F0F60: .4byte gWindowConfig_81E70D4
- thumb_func_end sub_80F0EF4
-
- thumb_func_start sub_80F0F64
-sub_80F0F64: @ 80F0F64
- push {r4,lr}
- ldr r0, _080F0F90
- ldr r3, [r0]
- ldr r1, _080F0F94
- adds r0, r3, r1
- movs r4, 0
- ldrsh r2, [r0, r4]
- lsls r1, r2, 4
- ldr r4, _080F0F98
- adds r0, r3, r4
- strh r1, [r0]
- movs r1, 0x8
- cmp r2, 0x1
- bne _080F0F82
- movs r1, 0x4
-_080F0F82:
- ldr r2, _080F0F9C
- adds r0, r3, r2
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0F90: .4byte gUnknown_083DFEC4
-_080F0F94: .4byte 0x0000876c
-_080F0F98: .4byte 0x0000877c
-_080F0F9C: .4byte 0x0000877a
- thumb_func_end sub_80F0F64
-
- thumb_func_start sub_80F0FA0
-sub_80F0FA0: @ 80F0FA0
- push {r4,lr}
- ldr r0, _080F0FDC
- ldr r3, [r0]
- ldr r1, _080F0FE0
- adds r0, r3, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- negs r0, r0
- lsls r0, 16
- asrs r0, 16
- lsls r2, r0, 4
- ldr r4, _080F0FE4
- adds r1, r3, r4
- strh r2, [r1]
- movs r1, 0x1
- negs r1, r1
- movs r4, 0x8
- negs r4, r4
- adds r2, r4, 0
- cmp r0, r1
- bne _080F0FD0
- movs r0, 0x4
- negs r0, r0
- adds r2, r0, 0
-_080F0FD0:
- ldr r1, _080F0FE8
- adds r0, r3, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0FDC: .4byte gUnknown_083DFEC4
-_080F0FE0: .4byte 0x0000876c
-_080F0FE4: .4byte 0x0000877c
-_080F0FE8: .4byte 0x0000877a
- thumb_func_end sub_80F0FA0
-
- thumb_func_start sub_80F0FEC
-sub_80F0FEC: @ 80F0FEC
- push {lr}
- bl sub_80F0718
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F0FEC
-
- thumb_func_start sub_80F0FFC
-sub_80F0FFC: @ 80F0FFC
- push {r4,r5,lr}
- lsls r0, 24
- ldr r1, _080F1048
- ldr r4, [r1]
- ldr r1, _080F104C
- adds r5, r4, r1
- lsrs r0, 21
- adds r0, r4, r0
- ldr r1, _080F1050
- adds r0, r1
- ldrh r1, [r0]
- adds r0, r5, 0
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080F1054
- bl BasicInitMenuWindow
- adds r0, r5, 0
- bl sub_80F19DC
- ldr r0, _080F1058
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x58
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x5
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1048: .4byte gUnknown_083DFEC4
-_080F104C: .4byte 0x00008788
-_080F1050: .4byte 0x0000ceea
-_080F1054: .4byte gWindowConfig_81E710C
-_080F1058: .4byte 0x0000d138
- thumb_func_end sub_80F0FFC
-
- thumb_func_start sub_80F105C
-sub_80F105C: @ 80F105C
- push {lr}
- ldr r0, _080F1078
- ldr r1, [r0]
- ldr r2, _080F107C
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, 0xA
- adds r1, r2
- ldrh r1, [r1]
- bl sub_80F0A74
- pop {r0}
- bx r0
- .align 2, 0
-_080F1078: .4byte gUnknown_083DFEC4
-_080F107C: .4byte 0x0000876e
- thumb_func_end sub_80F105C
-
- thumb_func_start sub_80F1080
-sub_80F1080: @ 80F1080
- push {r4,lr}
- ldr r1, _080F10A0
- ldr r0, [r1]
- ldr r2, _080F10A4
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xE
- bls _080F1094
- b _080F1204
-_080F1094:
- lsls r0, 2
- ldr r1, _080F10A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F10A0: .4byte gUnknown_083DFEC4
-_080F10A4: .4byte 0x0000d160
-_080F10A8: .4byte _080F10AC
- .align 2, 0
-_080F10AC:
- .4byte _080F10E8
- .4byte _080F1104
- .4byte _080F1110
- .4byte _080F111C
- .4byte _080F1128
- .4byte _080F112E
- .4byte _080F1134
- .4byte _080F1142
- .4byte _080F1160
- .4byte _080F1166
- .4byte _080F116C
- .4byte _080F1180
- .4byte _080F1194
- .4byte _080F11DC
- .4byte _080F11E2
-_080F10E8:
- bl sub_80EEDE8
- ldr r0, _080F10FC
- ldr r0, [r0]
- ldr r3, _080F1100
- adds r0, r3
- movs r1, 0xB
- strb r1, [r0]
- b _080F1218
- .align 2, 0
-_080F10FC: .4byte gUnknown_083DFEC4
-_080F1100: .4byte 0x0000d162
-_080F1104:
- ldr r0, _080F110C
- bl SetUpWindowConfig
- b _080F1218
- .align 2, 0
-_080F110C: .4byte gWindowConfig_81E70B8
-_080F1110:
- ldr r0, _080F1118
- bl MultistepInitMenuWindowBegin
- b _080F1218
- .align 2, 0
-_080F1118: .4byte gWindowConfig_81E70B8
-_080F111C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F1126
- b _080F1218
-_080F1126:
- b _080F1226
-_080F1128:
- bl MenuZeroFillScreen
- b _080F1218
-_080F112E:
- bl sub_80F1614
- b _080F1218
-_080F1134:
- movs r0, 0x1
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- beq _080F1218
- b _080F1226
-_080F1142:
- ldr r0, _080F1154
- ldr r1, _080F1158
- ldr r1, [r1]
- ldr r2, _080F115C
- adds r1, r2
- bl LZ77UnCompWram
- b _080F1218
- .align 2, 0
-_080F1154: .4byte gUnknown_08E9FBA0
-_080F1158: .4byte gUnknown_083DFEC4
-_080F115C: .4byte 0x0000934c
-_080F1160:
- bl sub_80F1238
- b _080F1218
-_080F1166:
- bl sub_80F13FC
- b _080F1218
-_080F116C:
- ldr r0, _080F1178
- ldr r1, _080F117C
- bl LZ77UnCompVram
- b _080F1218
- .align 2, 0
-_080F1178: .4byte gPokenavRibbonView_Gfx
-_080F117C: .4byte 0x06008000
-_080F1180:
- ldr r0, _080F118C
- ldr r1, _080F1190
- bl LZ77UnCompVram
- b _080F1218
- .align 2, 0
-_080F118C: .4byte gUnknown_083E040C
-_080F1190: .4byte 0x06008200
-_080F1194:
- ldr r0, _080F11CC
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F11D0
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F11D4
- movs r1, 0x30
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _080F11D8
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1E
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- b _080F1218
- .align 2, 0
-_080F11CC: .4byte gPokenavRibbonView_Pal
-_080F11D0: .4byte gUnknown_083E03A8
-_080F11D4: .4byte gUnknown_083E3C60
-_080F11D8: .4byte gUnknownPalette_81E6692
-_080F11DC:
- bl sub_80F1438
- b _080F1218
-_080F11E2:
- ldr r1, _080F1208
- ldr r3, _080F120C
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080F1210
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x42
- movs r0, 0
- strh r0, [r1]
- ldr r1, [r2]
- ldr r0, _080F1214
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1204:
- movs r0, 0
- b _080F1228
- .align 2, 0
-_080F1208: .4byte REG_BG2CNT
-_080F120C: .4byte 0x00001e02
-_080F1210: .4byte 0x0000170b
-_080F1214: .4byte 0x0000d160
-_080F1218:
- ldr r0, _080F1230
- ldr r1, [r0]
- ldr r2, _080F1234
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1226:
- movs r0, 0x1
-_080F1228:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1230: .4byte gUnknown_083DFEC4
-_080F1234: .4byte 0x0000d160
- thumb_func_end sub_80F1080
-
- thumb_func_start sub_80F1238
-sub_80F1238: @ 80F1238
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r6, 0x8B
- ldr r0, _080F1318
- ldr r2, [r0]
- ldr r1, _080F131C
- adds r0, r2, r1
- ldr r3, _080F1320
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r7, 0
- mov r5, sp
- adds r4, r2, 0
-_080F1264:
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- strh r0, [r5]
- lsls r1, r7, 5
- adds r1, r6, r1
- lsls r1, 1
- ldr r2, _080F1324
- adds r1, r2
- adds r1, r4, r1
- mov r0, sp
- ldr r2, _080F1328
- bl CpuSet
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x7
- bls _080F1264
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- movs r7, 0
- mov r9, r0
- cmp r0, 0
- beq _080F1342
- ldr r0, _080F1318
- ldr r0, [r0]
- mov r8, r0
- ldr r1, _080F132C
- mov r10, r1
- ldr r5, _080F1324
- add r5, r8
-_080F12A4:
- ldr r0, _080F1330
- add r0, r8
- adds r0, r7
- ldrb r1, [r0]
- lsls r1, 2
- mov r0, r10
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r2, [r0]
- adds r2, 0x3
- lsls r2, 24
- add r1, r10
- ldrh r0, [r1]
- lsls r0, 25
- movs r3, 0x80
- lsls r3, 21
- adds r0, r3
- lsrs r4, r0, 24
- lsls r1, r6, 1
- adds r1, r5, r1
- lsrs r2, 12
- adds r0, r2, 0
- orrs r0, r4
- strh r0, [r1]
- adds r1, r6, 0x1
- lsls r1, 1
- adds r1, r5, r1
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- adds r3, r2, 0
- orrs r3, r0
- adds r0, r3, 0
- orrs r0, r4
- strh r0, [r1]
- adds r0, r6, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r5, r0
- adds r1, r4, 0x1
- orrs r2, r1
- strh r2, [r0]
- adds r0, r6, 0
- adds r0, 0x21
- lsls r0, 1
- adds r0, r5, r0
- orrs r3, r1
- strh r3, [r0]
- adds r4, r7, 0x1
- adds r0, r4, 0
- movs r1, 0x9
- bl __modsi3
- cmp r0, 0
- bne _080F1334
- adds r0, r6, 0
- adds r0, 0x30
- b _080F1336
- .align 2, 0
-_080F1318: .4byte gUnknown_083DFEC4
-_080F131C: .4byte 0x0000bc8e
-_080F1320: .4byte 0x0000bc8f
-_080F1324: .4byte 0x0000934c
-_080F1328: .4byte 0x01000012
-_080F132C: .4byte gUnknown_083E4698
-_080F1330: .4byte 0x0000bc4c
-_080F1334:
- adds r0, r6, 0x2
-_080F1336:
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r4, 16
- lsrs r7, r0, 16
- cmp r0, r9
- bcc _080F12A4
-_080F1342:
- ldr r6, _080F13E8
- movs r7, 0
- ldr r1, _080F13EC
- ldr r0, [r1]
- ldr r2, _080F13F0
- adds r1, r0, r2
- ldrb r3, [r1]
- cmp r7, r3
- bcs _080F13D8
- subs r2, 0x43
- adds r2, r0
- mov r10, r2
- ldr r3, _080F13F4
- mov r8, r3
- ldr r2, _080F13F8
- adds r5, r0, r2
- mov r9, r1
-_080F1364:
- ldr r3, [sp, 0x4]
- adds r0, r3, r7
- add r0, r10
- ldrb r1, [r0]
- lsls r1, 2
- mov r0, r8
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r2, [r0]
- adds r2, 0x3
- lsls r2, 24
- add r1, r8
- ldrh r0, [r1]
- lsls r0, 25
- movs r1, 0x80
- lsls r1, 21
- adds r0, r1
- lsrs r4, r0, 24
- lsls r1, r6, 1
- adds r1, r5, r1
- lsrs r2, 12
- adds r0, r2, 0
- orrs r0, r4
- strh r0, [r1]
- adds r1, r6, 0x1
- lsls r1, 1
- adds r1, r5, r1
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- adds r3, r2, 0
- orrs r3, r0
- adds r0, r3, 0
- orrs r0, r4
- strh r0, [r1]
- adds r0, r6, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r5, r0
- adds r1, r4, 0x1
- orrs r2, r1
- strh r2, [r0]
- adds r0, r6, 0
- adds r0, 0x21
- lsls r0, 1
- adds r0, r5, r0
- orrs r3, r1
- strh r3, [r0]
- adds r0, r6, 0x2
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r9
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080F1364
-_080F13D8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F13E8: .4byte 0x0000014b
-_080F13EC: .4byte gUnknown_083DFEC4
-_080F13F0: .4byte 0x0000bc8f
-_080F13F4: .4byte gUnknown_083E4698
-_080F13F8: .4byte 0x0000934c
- thumb_func_end sub_80F1238
-
- thumb_func_start sub_80F13FC
-sub_80F13FC: @ 80F13FC
- ldr r0, _080F141C
- ldr r0, [r0]
- ldr r1, _080F1420
- adds r0, r1
- ldr r2, _080F1424
- ldr r1, _080F1428
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080F142C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _080F1430
- ldr r0, _080F1434
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080F141C: .4byte gUnknown_083DFEC4
-_080F1420: .4byte 0x0000934c
-_080F1424: .4byte 0x0600b800
-_080F1428: .4byte 0x040000d4
-_080F142C: .4byte 0x84000140
-_080F1430: .4byte gPlttBufferUnfaded
-_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C
- thumb_func_end sub_80F13FC
-
- thumb_func_start sub_80F1438
-sub_80F1438: @ 80F1438
- push {r4,r5,lr}
- ldr r0, _080F1470
- ldr r4, [r0]
- ldr r1, _080F1474
- adds r0, r4, r1
- movs r1, 0xD
- movs r2, 0x1
- bl MenuPrint
- ldr r0, _080F1478
- adds r5, r4, r0
- ldr r1, _080F147C
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80F445C
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1470: .4byte gUnknown_083DFEC4
-_080F1474: .4byte 0x00008829
-_080F1478: .4byte 0x00008788
-_080F147C: .4byte 0x0000876e
- thumb_func_end sub_80F1438
-
- thumb_func_start sub_80F1480
-sub_80F1480: @ 80F1480
- push {lr}
- movs r0, 0xC
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80F1480
-
- thumb_func_start sub_80F1494
-sub_80F1494: @ 80F1494
- push {r4-r7,lr}
- ldr r0, _080F14D4
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 4
- adds r6, r0, r1
- ldr r2, _080F14D8
- adds r7, r0, r2
- ldr r0, _080F14DC
- ldr r3, [r0]
- ldr r4, _080F14E0
- adds r1, r3, r4
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _080F14F0
- ldr r5, _080F14E4
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r4, 0x1
- adds r2, r3, r4
- adds r0, r1
- ldrb r2, [r2]
- adds r0, r2
- strh r0, [r5]
- ldr r1, _080F14E8
- adds r0, r3, r1
- ldrh r2, [r5]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r4, _080F14EC
- b _080F152E
- .align 2, 0
-_080F14D4: .4byte gUnknown_083DFEC8
-_080F14D8: .4byte 0x00000a98
-_080F14DC: .4byte gUnknown_083DFEC4
-_080F14E0: .4byte 0x0000bc91
-_080F14E4: .4byte gUnknown_020388B4
-_080F14E8: .4byte 0x0000bc4c
-_080F14EC: .4byte gRibbonDescriptions
-_080F14F0:
- ldr r5, _080F1558
- ldr r4, _080F155C
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r2, _080F1560
- adds r1, r3, r2
- ldrb r1, [r1]
- subs r0, r1
- strh r0, [r5]
- ldrh r1, [r5]
- adds r4, 0x2
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- subs r2, 0x43
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r0, _080F1564
- ldrh r1, [r5]
- adds r0, r1
- ldr r4, _080F1568
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r5]
- cmp r0, 0
- beq _080F1570
- subs r0, 0x1
- strh r0, [r5]
- ldr r4, _080F156C
-_080F152E:
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- ldrh r0, [r5]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- b _080F158A
- .align 2, 0
-_080F1558: .4byte gUnknown_020388B4
-_080F155C: .4byte 0x0000bc8e
-_080F1560: .4byte 0x0000bc8f
-_080F1564: .4byte gSaveBlock1
-_080F1568: .4byte 0x000030f7
-_080F156C: .4byte gGiftRibbonDescriptions
-_080F1570:
- ldr r4, _080F15A4
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
-_080F158A:
- adds r0, r6, 0
- movs r1, 0xC
- movs r2, 0xD
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0xF
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F15A4: .4byte gEmptyString_81E72B0
- thumb_func_end sub_80F1494
-
- thumb_func_start sub_80F15A8
-sub_80F15A8: @ 80F15A8
- push {r4,r5,lr}
- movs r0, 0xC
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- ldr r0, _080F1600
- ldr r4, [r0]
- ldr r0, _080F1604
- adds r5, r4, r0
- ldr r1, _080F1608
- adds r0, r5, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
- ldr r1, _080F160C
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 2
- adds r4, r0
- ldr r0, _080F1610
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0xD
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1600: .4byte gUnknown_083DFEC4
-_080F1604: .4byte 0x00008788
-_080F1608: .4byte gOtherText_Ribbons
-_080F160C: .4byte 0x000087dc
-_080F1610: .4byte 0x0000893c
- thumb_func_end sub_80F15A8
-
- thumb_func_start sub_80F1614
-sub_80F1614: @ 80F1614
- ldr r0, _080F1624
- ldr r0, [r0]
- ldr r1, _080F1628
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F1624: .4byte gUnknown_083DFEC4
-_080F1628: .4byte 0x00008764
- thumb_func_end sub_80F1614
-
- thumb_func_start sub_80F162C
-sub_80F162C: @ 80F162C
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F164C
- ldr r0, [r0]
- ldr r2, _080F1650
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F165E
- cmp r0, 0x1
- bgt _080F1654
- cmp r0, 0
- beq _080F16F0
- b _080F16D0
- .align 2, 0
-_080F164C: .4byte gUnknown_083DFEC4
-_080F1650: .4byte 0x00008764
-_080F1654:
- cmp r0, 0x2
- beq _080F1670
- cmp r0, 0x3
- beq _080F1694
- b _080F16D0
-_080F165E:
- ldr r0, _080F1668
- ldr r1, _080F166C
- bl LZ77UnCompVram
- b _080F16F0
- .align 2, 0
-_080F1668: .4byte gUnknown_08E9FF58
-_080F166C: .4byte 0x0600e800
-_080F1670:
- ldr r1, _080F1684
- ldr r2, _080F1688
- ldr r0, _080F168C
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080F1690
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080F16F0
- .align 2, 0
-_080F1684: .4byte gPokenavRibbonPokeView_Gfx
-_080F1688: .4byte 0x0600e000
-_080F168C: .4byte 0x040000d4
-_080F1690: .4byte 0x80000070
-_080F1694:
- cmp r1, 0
- bne _080F16A8
- ldr r0, _080F16A4
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- b _080F16B2
- .align 2, 0
-_080F16A4: .4byte gUnknown_083E0124
-_080F16A8:
- ldr r0, _080F16D4
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
-_080F16B2:
- ldr r0, _080F16D8
- ldr r1, [r0]
- ldr r3, _080F16DC
- adds r2, r1, r3
- ldr r0, _080F16E0
- strh r0, [r2]
- ldr r2, _080F16E4
- ldr r3, _080F16E8
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _080F16EC
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F16D0:
- movs r0, 0
- b _080F1700
- .align 2, 0
-_080F16D4: .4byte gUnknown_083E0144
-_080F16D8: .4byte gUnknown_083DFEC4
-_080F16DC: .4byte 0x00008766
-_080F16E0: .4byte 0x0000ffb0
-_080F16E4: .4byte REG_BG0CNT
-_080F16E8: .4byte 0x00001d0d
-_080F16EC: .4byte 0x00008764
-_080F16F0:
- ldr r0, _080F1704
- ldr r1, [r0]
- ldr r2, _080F1708
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1700:
- pop {r1}
- bx r1
- .align 2, 0
-_080F1704: .4byte gUnknown_083DFEC4
-_080F1708: .4byte 0x00008764
- thumb_func_end sub_80F162C
-
- thumb_func_start sub_80F170C
-sub_80F170C: @ 80F170C
- push {lr}
- ldr r0, _080F1734
- ldr r0, [r0]
- ldr r2, _080F1738
- adds r1, r0, r2
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- ble _080F1726
- movs r0, 0
- strh r0, [r1]
-_080F1726:
- movs r0, 0
- ldrsh r1, [r1, r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r1}
- bx r1
- .align 2, 0
-_080F1734: .4byte gUnknown_083DFEC4
-_080F1738: .4byte 0x00008766
- thumb_func_end sub_80F170C
-
- thumb_func_start sub_80F173C
-sub_80F173C: @ 80F173C
- push {lr}
- ldr r0, _080F176C
- ldr r0, [r0]
- ldr r2, _080F1770
- adds r1, r0, r2
- ldrh r0, [r1]
- subs r0, 0x10
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x50
- negs r2, r2
- cmp r0, r2
- bge _080F175C
- ldr r0, _080F1774
- strh r0, [r1]
-_080F175C:
- movs r0, 0
- ldrsh r1, [r1, r0]
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r1}
- bx r1
- .align 2, 0
-_080F176C: .4byte gUnknown_083DFEC4
-_080F1770: .4byte 0x00008766
-_080F1774: .4byte 0x0000ffb0
- thumb_func_end sub_80F173C
-
- thumb_func_start sub_80F1778
-sub_80F1778: @ 80F1778
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080F1798
- ldr r0, [r0]
- ldr r1, _080F179C
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _080F178C
- b _080F1910
-_080F178C:
- lsls r0, 2
- ldr r1, _080F17A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F1798: .4byte gUnknown_083DFEC4
-_080F179C: .4byte 0x0000d160
-_080F17A0: .4byte _080F17A4
- .align 2, 0
-_080F17A4:
- .4byte _080F17CC
- .4byte _080F17E8
- .4byte _080F17EE
- .4byte _080F17FE
- .4byte _080F1810
- .4byte _080F1830
- .4byte _080F1858
- .4byte _080F186C
- .4byte _080F18B8
- .4byte _080F18D8
-_080F17CC:
- bl sub_80EEDE8
- ldr r0, _080F17E0
- ldr r0, [r0]
- ldr r2, _080F17E4
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- b _080F1914
- .align 2, 0
-_080F17E0: .4byte gUnknown_083DFEC4
-_080F17E4: .4byte 0x0000d162
-_080F17E8:
- bl sub_80F1614
- b _080F1914
-_080F17EE:
- movs r0, 0
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- bne _080F17FC
- b _080F1914
-_080F17FC:
- b _080F1922
-_080F17FE:
- ldr r0, _080F1808
- ldr r1, _080F180C
- bl LZ77UnCompVram
- b _080F1914
- .align 2, 0
-_080F1808: .4byte gPokenavConditionView_Gfx
-_080F180C: .4byte 0x06005000
-_080F1810:
- ldr r0, _080F1824
- ldr r1, _080F1828
- bl LZ77UnCompVram
- ldr r0, _080F182C
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _080F1914
- .align 2, 0
-_080F1824: .4byte gUnknown_08E9AC4C
-_080F1828: .4byte 0x0600f000
-_080F182C: .4byte gPokenavConditionMenu2_Pal
-_080F1830:
- ldr r0, _080F1850
- ldr r3, _080F1854
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0xC
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0xD
- bl sub_8095C8C
- b _080F1914
- .align 2, 0
-_080F1850: .4byte 0x0600f000
-_080F1854: .4byte gUnknown_083E01F4
-_080F1858:
- ldr r0, _080F1864
- ldr r1, _080F1868
- bl LZ77UnCompVram
- b _080F1914
- .align 2, 0
-_080F1864: .4byte gUnknown_08E9FEB4
-_080F1868: .4byte 0x0600b800
-_080F186C:
- ldr r0, _080F18AC
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F18B0
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F18B4
- adds r0, r4, 0
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0x1C
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- bl sub_80F01A4
- b _080F1914
- .align 2, 0
-_080F18AC: .4byte gUnknown_083E0254
-_080F18B0: .4byte gUnknownPalette_81E6692
-_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2
-_080F18B8:
- ldr r0, _080F18D0
- ldr r0, [r0]
- ldr r1, _080F18D4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F1914
- .align 2, 0
-_080F18D0: .4byte gUnknown_083DFEC4
-_080F18D4: .4byte 0x00008fe9
-_080F18D8:
- ldr r1, _080F18FC
- ldr r2, _080F1900
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080F1904
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- ldr r2, _080F1908
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F190C
- adds r0, r2, 0
- strh r0, [r1]
- b _080F1914
- .align 2, 0
-_080F18FC: .4byte REG_BG3CNT
-_080F1900: .4byte 0x00001e03
-_080F1904: .4byte 0x00001702
-_080F1908: .4byte 0x00000844
-_080F190C: .4byte 0x0000040b
-_080F1910:
- movs r0, 0
- b _080F1924
-_080F1914:
- ldr r0, _080F192C
- ldr r1, [r0]
- ldr r0, _080F1930
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1922:
- movs r0, 0x1
-_080F1924:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F192C: .4byte gUnknown_083DFEC4
-_080F1930: .4byte 0x0000d160
- thumb_func_end sub_80F1778
-
- thumb_func_start sub_80F1934
-sub_80F1934: @ 80F1934
- push {r4,r5,lr}
- ldr r0, _080F1990
- ldr r1, [r0]
- ldr r0, _080F1994
- adds r5, r1, r0
- ldr r3, _080F1998
- adds r2, r1, r3
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r1, r0
- ldr r0, _080F199C
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _080F19AC
- ldrb r0, [r2]
- bl sub_8137124
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080F19A0
- adds r0, r1
- bl GetNature
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F19A4
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- ldr r0, _080F19A8
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x57
- movs r3, 0
- bl sub_8072C74
- b _080F19B8
- .align 2, 0
-_080F1990: .4byte gUnknown_083DFEC4
-_080F1994: .4byte 0x00008788
-_080F1998: .4byte 0x000087dc
-_080F199C: .4byte 0x0000893f
-_080F19A0: .4byte gPlayerParty
-_080F19A4: .4byte gOtherText_Nature2
-_080F19A8: .4byte gNatureNames
-_080F19AC:
- ldr r1, _080F19D0
- adds r0, r5, 0
- movs r2, 0x57
- movs r3, 0
- bl sub_8072C74
-_080F19B8:
- ldr r0, _080F19D4
- ldr r0, [r0]
- ldr r1, _080F19D8
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x70
- movs r3, 0x1
- bl sub_80729D8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F19D0: .4byte gEmptyString_81E72B0
-_080F19D4: .4byte gUnknown_083DFEC4
-_080F19D8: .4byte 0x00008788
- thumb_func_end sub_80F1934
-
- thumb_func_start sub_80F19DC
-sub_80F19DC: @ 80F19DC
- push {lr}
- adds r1, r0, 0
- b _080F19E4
-_080F19E2:
- adds r1, 0x1
-_080F19E4:
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F19F8
- cmp r0, 0xFC
- bne _080F19E2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080F19E2
- movs r0, 0xFF
- strb r0, [r1]
-_080F19F8:
- pop {r0}
- bx r0
- thumb_func_end sub_80F19DC
-
- thumb_func_start sub_80F19FC
-sub_80F19FC: @ 80F19FC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080F1A68
- ldrb r4, [r5]
- cmp r4, 0x1
- bne _080F1A60
- ldr r0, _080F1A6C
- ldr r1, [r0]
- ldr r2, _080F1A70
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r1, [r1]
- ldrb r2, [r5, 0x1]
- bl sub_811A8CC
- cmp r0, 0
- beq _080F1A46
- ldrb r2, [r5, 0x1]
- lsls r2, 20
- movs r1, 0xC0
- lsls r1, 14
- adds r2, r1
- lsrs r2, 16
- str r4, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080F1A60
-_080F1A46:
- ldrb r1, [r5, 0x1]
- lsls r1, 25
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0
- strb r0, [r5]
-_080F1A60:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1A68: .4byte gUnknown_020388B0
-_080F1A6C: .4byte gUnknown_083DFEC4
-_080F1A70: .4byte 0x00006e2c
- thumb_func_end sub_80F19FC
-
- thumb_func_start sub_80F1A74
-sub_80F1A74: @ 80F1A74
- ldr r1, _080F1A7C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080F1A7C: .4byte gUnknown_020388B0
- thumb_func_end sub_80F1A74
-
- thumb_func_start sub_80F1A80
-sub_80F1A80: @ 80F1A80
- ldr r0, _080F1A8C
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F1A8C: .4byte gUnknown_020388B0
- thumb_func_end sub_80F1A80
-
- thumb_func_start sub_80F1A90
-sub_80F1A90: @ 80F1A90
- push {lr}
- ldr r0, _080F1AB8
- ldr r0, [r0]
- ldr r1, _080F1ABC
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F1AC0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F1AB2
-_080F1AA8:
- bl sub_80F1AC4
- lsls r0, 24
- cmp r0, 0
- bne _080F1AA8
-_080F1AB2:
- pop {r0}
- bx r0
- .align 2, 0
-_080F1AB8: .4byte gUnknown_083DFEC4
-_080F1ABC: .4byte 0x00000306
-_080F1AC0: .4byte 0x00006dac
- thumb_func_end sub_80F1A90
-
- thumb_func_start sub_80F1AC4
-sub_80F1AC4: @ 80F1AC4
- push {r4,r5,lr}
- ldr r0, _080F1AE0
- ldr r1, [r0]
- ldr r2, _080F1AE4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F1B34
- cmp r0, 0x1
- bgt _080F1AE8
- cmp r0, 0
- beq _080F1AF2
- b _080F1B6C
- .align 2, 0
-_080F1AE0: .4byte gUnknown_083DFEC4
-_080F1AE4: .4byte 0x00000306
-_080F1AE8:
- cmp r0, 0x2
- beq _080F1B40
- cmp r0, 0x3
- beq _080F1B54
- b _080F1B6C
-_080F1AF2:
- movs r0, 0
- movs r2, 0xC8
- lsls r2, 2
- adds r4, r1, r2
- movs r5, 0
-_080F1AFC:
- movs r2, 0
- adds r1, r0, 0x1
- lsls r3, r0, 4
-_080F1B02:
- lsls r0, r2, 2
- adds r0, r3
- adds r0, r4, r0
- str r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F1B02
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _080F1AFC
- ldr r0, _080F1B2C
- ldr r0, [r0]
- ldr r1, _080F1B30
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _080F1B6C
- .align 2, 0
-_080F1B2C: .4byte gUnknown_083DFEC4
-_080F1B30: .4byte 0x00000311
-_080F1B34:
- ldr r0, _080F1B3C
- movs r2, 0xE2
- lsls r2, 2
- b _080F1B44
- .align 2, 0
-_080F1B3C: .4byte gPokenavMenuOptions_Gfx
-_080F1B40:
- ldr r0, _080F1B4C
- ldr r2, _080F1B50
-_080F1B44:
- adds r1, r2
- bl LZ77UnCompWram
- b _080F1B6C
- .align 2, 0
-_080F1B4C: .4byte gPokenavConditionMenu_Gfx
-_080F1B50: .4byte 0x00001788
-_080F1B54:
- ldr r0, _080F1B64
- ldr r2, _080F1B68
- adds r1, r2
- bl LZ77UnCompWram
- movs r0, 0
- b _080F1B7C
- .align 2, 0
-_080F1B64: .4byte gPokenavConditionSearch_Gfx
-_080F1B68: .4byte 0x00002388
-_080F1B6C:
- ldr r0, _080F1B84
- ldr r1, [r0]
- ldr r0, _080F1B88
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1B7C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1B84: .4byte gUnknown_083DFEC4
-_080F1B88: .4byte 0x00000306
- thumb_func_end sub_80F1AC4
-
- thumb_func_start sub_80F1B8C
-sub_80F1B8C: @ 80F1B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F1BBC
- ldr r0, [r0]
- ldr r1, _080F1BC0
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F1BC4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F1BB4
-_080F1BA8:
- adds r0, r4, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080F1BA8
-_080F1BB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1BBC: .4byte gUnknown_083DFEC4
-_080F1BC0: .4byte 0x00000306
-_080F1BC4: .4byte 0x00006dac
- thumb_func_end sub_80F1B8C
-
- thumb_func_start sub_80F1BC8
-sub_80F1BC8: @ 80F1BC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080F1BF4
- ldr r2, [r1]
- ldr r3, _080F1BF8
- adds r0, r2, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- beq _080F1C0A
- cmp r0, 0x1
- bgt _080F1BFC
- cmp r0, 0
- beq _080F1C02
- b _080F1DC4
- .align 2, 0
-_080F1BF4: .4byte gUnknown_083DFEC4
-_080F1BF8: .4byte 0x00000306
-_080F1BFC:
- cmp r0, 0x2
- beq _080F1C12
- b _080F1DC4
-_080F1C02:
- mov r0, r9
- bl sub_80F2458
- b _080F1DC8
-_080F1C0A:
- mov r0, r9
- bl sub_80F2514
- b _080F1DC8
-_080F1C12:
- mov r4, r9
- cmp r4, 0x1
- beq _080F1C40
- cmp r4, 0x1
- bgt _080F1C22
- cmp r4, 0
- beq _080F1C2A
- b _080F1DC4
-_080F1C22:
- mov r5, r9
- cmp r5, 0x2
- beq _080F1C54
- b _080F1DC4
-_080F1C2A:
- movs r0, 0x2A
- str r0, [sp, 0x4]
- movs r1, 0x14
- str r1, [sp, 0x8]
- ldr r4, _080F1C3C
- adds r1, r2, r4
- movs r0, 0x5
- b _080F1C62
- .align 2, 0
-_080F1C3C: .4byte 0x0000030e
-_080F1C40:
- movs r5, 0x38
- str r5, [sp, 0x4]
- movs r0, 0x14
- str r0, [sp, 0x8]
- ldr r4, _080F1C50
- adds r1, r2, r4
- movs r0, 0x3
- b _080F1C62
- .align 2, 0
-_080F1C50: .4byte 0x0000030e
-_080F1C54:
- movs r5, 0x28
- str r5, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- ldr r4, _080F1CDC
- adds r1, r2, r4
- movs r0, 0x6
-_080F1C62:
- strb r0, [r1]
- movs r5, 0
- str r5, [sp]
- mov r8, r5
- adds r1, r3, 0
- ldr r0, [r1]
- ldr r2, _080F1CDC
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- blt _080F1C7E
- b _080F1DC8
-_080F1C7E:
- ldr r4, [sp, 0x8]
- mov r3, r8
- muls r3, r4
- ldr r5, [sp, 0x4]
- adds r0, r5, r3
- subs r0, 0x8
- lsls r0, 16
- lsrs r0, 16
- ldr r4, [r1]
- mov r2, r8
- lsls r1, r2, 1
- movs r5, 0xC5
- lsls r5, 2
- adds r2, r4, r5
- adds r2, r1
- lsls r1, r0, 8
- adds r0, 0x11
- orrs r1, r0
- strh r1, [r2]
- mov r0, r9
- cmp r0, 0
- bne _080F1CF2
- ldr r1, _080F1CE0
- adds r0, r4, r1
- mov r2, r8
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F1CE8
- movs r5, 0
- ldr r0, _080F1CE4
- ldr r0, [r0]
- lsls r2, 4
- movs r3, 0xC8
- lsls r3, 2
- adds r1, r0, r3
- movs r3, 0
-_080F1CC8:
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r1, r0
- str r3, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F1CC8
- b _080F1D92
- .align 2, 0
-_080F1CDC: .4byte 0x0000030e
-_080F1CE0: .4byte 0x00006db2
-_080F1CE4: .4byte gUnknown_083DFEC4
-_080F1CE8:
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 18
- lsrs r0, 16
- str r0, [sp]
-_080F1CF2:
- movs r5, 0
- ldr r4, [sp, 0x4]
- adds r0, r4, r3
- lsls r0, 16
- mov r10, r0
-_080F1CFC:
- lsls r6, r5, 5
- movs r0, 0x80
- lsls r0, 1
- adds r7, r6, r0
- lsls r1, r7, 16
- asrs r1, 16
- ldr r0, _080F1DB4
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F1DC4
- ldr r0, _080F1DB8
- ldr r2, [r0]
- lsls r1, r5, 2
- mov r4, r8
- lsls r0, r4, 4
- adds r1, r0
- movs r0, 0xC8
- lsls r0, 2
- adds r2, r0
- adds r4, r2, r1
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, _080F1DBC
- adds r0, r1
- str r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldr r0, [r4]
- strh r5, [r0, 0x30]
- ldr r1, [r4]
- adds r0, r6, 0
- adds r0, 0x98
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- strh r7, [r0, 0x34]
- ldr r0, [r4]
- ldr r1, [sp]
- adds r2, r1, 0x1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- mov r2, r9
- cmp r2, 0x2
- beq _080F1D6E
- cmp r2, 0
- bne _080F1D88
-_080F1D6E:
- mov r3, r8
- cmp r3, 0x2
- bls _080F1D88
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r3, [r4]
- lsls r0, 4
- ldrb r2, [r3, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x5]
-_080F1D88:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F1CFC
-_080F1D92:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080F1DB8
- ldr r0, [r1]
- ldr r4, _080F1DC0
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080F1DB0
- b _080F1C7E
-_080F1DB0:
- b _080F1DC8
- .align 2, 0
-_080F1DB4: .4byte gSpriteTemplate_83E4454
-_080F1DB8: .4byte gUnknown_083DFEC4
-_080F1DBC: .4byte gSprites
-_080F1DC0: .4byte 0x0000030e
-_080F1DC4:
- movs r0, 0
- b _080F1DD8
-_080F1DC8:
- ldr r0, _080F1DE8
- ldr r1, [r0]
- ldr r5, _080F1DEC
- adds r1, r5
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1DD8:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1DE8: .4byte gUnknown_083DFEC4
-_080F1DEC: .4byte 0x00000306
- thumb_func_end sub_80F1BC8
-
- thumb_func_start sub_80F1DF0
-sub_80F1DF0: @ 80F1DF0
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _080F1E44
- ldr r3, [r0]
- ldr r0, _080F1E48
- adds r1, r3, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bge _080F1E38
- movs r0, 0xC8
- lsls r0, 2
- adds r4, r3, r0
- adds r6, r1, 0
- ldr r5, _080F1E4C
-_080F1E0E:
- movs r1, 0
- adds r3, r2, 0x1
- lsls r2, 4
-_080F1E14:
- lsls r0, r1, 2
- adds r0, r2
- adds r0, r4, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F1E22
- str r5, [r0, 0x1C]
-_080F1E22:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F1E14
- lsls r0, r3, 16
- lsrs r2, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080F1E0E
-_080F1E38:
- movs r0, 0x6
- bl PlaySE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1E44: .4byte gUnknown_083DFEC4
-_080F1E48: .4byte 0x0000030e
-_080F1E4C: .4byte sub_80F2218
- thumb_func_end sub_80F1DF0
-
- thumb_func_start sub_80F1E50
-sub_80F1E50: @ 80F1E50
- push {lr}
- bl sub_80F22F8
- lsls r0, 24
- cmp r0, 0
- bne _080F1E60
- movs r0, 0x1
- b _080F1E66
-_080F1E60:
- bl sub_80F2108
- movs r0, 0
-_080F1E66:
- pop {r1}
- bx r1
- thumb_func_end sub_80F1E50
-
- thumb_func_start sub_80F1E6C
-sub_80F1E6C: @ 80F1E6C
- push {lr}
- bl sub_80F22F8
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080F1E7C
- movs r1, 0x1
-_080F1E7C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80F1E6C
-
- thumb_func_start sub_80F1E84
-sub_80F1E84: @ 80F1E84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _080F1EFC
- ldr r4, [r5]
- ldr r1, _080F1F00
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- bl sub_80F2148
- movs r2, 0
- ldr r3, _080F1F04
- adds r1, r4, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bge _080F1EF2
- ldr r0, _080F1F08
- adds r7, r4, r0
- adds r6, r1, 0
- mov r8, r5
- ldr r1, _080F1F0C
- mov r12, r1
-_080F1EB4:
- movs r0, 0
- ldrsb r0, [r7, r0]
- adds r5, r2, 0x1
- cmp r2, r0
- beq _080F1EE6
- movs r1, 0
- mov r3, r8
- ldr r0, [r3]
- lsls r3, r2, 4
- movs r4, 0xC8
- lsls r4, 2
- adds r2, r0, r4
- mov r4, r12
-_080F1ECE:
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F1EDC
- str r4, [r0, 0x1C]
-_080F1EDC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F1ECE
-_080F1EE6:
- lsls r0, r5, 16
- lsrs r2, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080F1EB4
-_080F1EF2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1EFC: .4byte gUnknown_083DFEC4
-_080F1F00: .4byte 0x0000030f
-_080F1F04: .4byte 0x0000030e
-_080F1F08: .4byte 0x00006dad
-_080F1F0C: .4byte sub_80F2240
- thumb_func_end sub_80F1E84
-
- thumb_func_start sub_80F1F10
-sub_80F1F10: @ 80F1F10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080F1F2C
- ldr r4, [r0]
- ldr r1, _080F1F30
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F1F34
- cmp r0, 0x1
- beq _080F1FC0
- b _080F1FE4
- .align 2, 0
-_080F1F2C: .4byte gUnknown_083DFEC4
-_080F1F30: .4byte 0x0000030f
-_080F1F34:
- bl sub_80F2360
- lsls r0, 24
- cmp r0, 0
- beq _080F1FE4
- movs r6, 0
- adds r7, r4, 0
- movs r0, 0xC8
- lsls r0, 2
- adds r0, r7
- mov r8, r0
-_080F1F4A:
- lsls r5, r6, 2
- ldr r1, _080F1FAC
- adds r0, r7, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- adds r0, r5, r0
- add r0, r8
- ldr r4, [r0]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080F1FB0
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- subs r5, 0x6
- strh r5, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- lsls r0, 3
- strh r0, [r4, 0x38]
- ldr r0, _080F1FB4
- str r0, [r4, 0x1C]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _080F1F4A
- bl sub_80F2170
- ldr r0, _080F1FB8
- ldr r1, [r0]
- ldr r0, _080F1FBC
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F1FE4
- .align 2, 0
-_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
-_080F1FB4: .4byte sub_80F2240
-_080F1FB8: .4byte gUnknown_083DFEC4
-_080F1FBC: .4byte 0x0000030f
-_080F1FC0:
- bl sub_80F23C8
- lsls r0, 24
- cmp r0, 0
- beq _080F1FE4
- bl sub_80F21F8
- movs r0, 0
- bl FreeSpriteTilesByTag
- movs r0, 0
- bl FreeSpritePaletteByTag
- movs r0, 0x1
- bl FreeSpritePaletteByTag
- movs r0, 0
- b _080F1FE6
-_080F1FE4:
- movs r0, 0x1
-_080F1FE6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F1F10
-
- thumb_func_start sub_80F1FF0
-sub_80F1FF0: @ 80F1FF0
- push {r4,lr}
- ldr r0, _080F203C
- ldr r4, [r0]
- ldr r1, _080F2040
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F2058
- ldr r2, _080F2044
- ldr r3, _080F2048
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- movs r3, 0xC5
- lsls r3, 2
- adds r0, r4, r3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _080F204C
- ldr r1, _080F2050
- ldr r0, _080F2054
- adds r2, r4, r0
- ldrh r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r3]
- ldrh r0, [r2]
- adds r0, 0x3
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r2]
- b _080F2078
- .align 2, 0
-_080F203C: .4byte gUnknown_083DFEC4
-_080F2040: .4byte 0x00000311
-_080F2044: .4byte REG_WIN0V
-_080F2048: .4byte 0x00006dad
-_080F204C: .4byte REG_BLDY
-_080F2050: .4byte gSineTable
-_080F2054: .4byte 0x00000312
-_080F2058:
- cmp r0, 0x2
- bne _080F2078
- ldr r2, _080F2080
- ldr r1, _080F2084
- ldr r0, _080F2088
- adds r3, r4, r0
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r3]
- cmp r0, 0xE
- bhi _080F2078
- adds r0, 0x1
- strh r0, [r3]
-_080F2078:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2080: .4byte REG_BLDALPHA
-_080F2084: .4byte gUnknown_083E42F8
-_080F2088: .4byte 0x00000312
- thumb_func_end sub_80F1FF0
-
- thumb_func_start sub_80F208C
-sub_80F208C: @ 80F208C
- push {lr}
- bl sub_80F2148
- pop {r0}
- bx r0
- thumb_func_end sub_80F208C
-
- thumb_func_start sub_80F2098
-sub_80F2098: @ 80F2098
- ldr r1, _080F20DC
- ldr r2, _080F20E0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080F20E4
- ldr r0, _080F20E8
- ldr r1, [r0]
- ldr r3, _080F20EC
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- movs r3, 0xC5
- lsls r3, 2
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- ldr r1, _080F20F0
- movs r0, 0x3F
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1F
- strh r0, [r1]
- subs r2, 0x44
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080F20DC: .4byte REG_WIN0H
-_080F20E0: .4byte 0x000077f0
-_080F20E4: .4byte REG_WIN0V
-_080F20E8: .4byte gUnknown_083DFEC4
-_080F20EC: .4byte 0x00006dad
-_080F20F0: .4byte REG_WININ
- thumb_func_end sub_80F2098
-
- thumb_func_start sub_80F20F4
-sub_80F20F4: @ 80F20F4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F2104
- ands r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080F2104: .4byte 0x0000dfff
- thumb_func_end sub_80F20F4
-
- thumb_func_start sub_80F2108
-sub_80F2108: @ 80F2108
- push {lr}
- ldr r0, _080F2134
- ldr r3, [r0]
- ldr r0, _080F2138
- adds r1, r3, r0
- ldrb r2, [r1]
- cmp r2, 0
- bne _080F2130
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080F213C
- adds r0, r3, r1
- strh r2, [r0]
- ldr r1, _080F2140
- movs r0, 0x90
- strh r0, [r1]
- ldr r0, _080F2144
- strh r2, [r0]
- bl sub_80F2098
-_080F2130:
- pop {r0}
- bx r0
- .align 2, 0
-_080F2134: .4byte gUnknown_083DFEC4
-_080F2138: .4byte 0x00000311
-_080F213C: .4byte 0x00000312
-_080F2140: .4byte REG_BLDCNT
-_080F2144: .4byte REG_BLDY
- thumb_func_end sub_80F2108
-
- thumb_func_start sub_80F2148
-sub_80F2148: @ 80F2148
- push {lr}
- ldr r0, _080F2164
- ldr r0, [r0]
- ldr r1, _080F2168
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080F216C
- strh r1, [r0]
- bl sub_80F20F4
- pop {r0}
- bx r0
- .align 2, 0
-_080F2164: .4byte gUnknown_083DFEC4
-_080F2168: .4byte 0x00000311
-_080F216C: .4byte REG_BLDCNT
- thumb_func_end sub_80F2148
-
- thumb_func_start sub_80F2170
-sub_80F2170: @ 80F2170
- push {r4-r7,lr}
- ldr r7, _080F21E4
- ldr r4, [r7]
- ldr r1, _080F21E8
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F21DC
- bl sub_80F20F4
- movs r3, 0
- ldr r2, _080F21EC
- adds r5, r4, r2
- movs r0, 0xC8
- lsls r0, 2
- adds r4, r0
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r6, 0x4
-_080F2198:
- lsls r1, r3, 2
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 4
- adds r1, r0
- adds r1, r4, r1
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- mov r0, r12
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F2198
- ldr r1, [r7]
- ldr r0, _080F21E8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x2
- strb r0, [r2]
- ldr r2, _080F21F0
- adds r1, r2
- strh r3, [r1]
- ldr r1, _080F21F4
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
-_080F21DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F21E4: .4byte gUnknown_083DFEC4
-_080F21E8: .4byte 0x00000311
-_080F21EC: .4byte 0x00006dad
-_080F21F0: .4byte 0x00000312
-_080F21F4: .4byte REG_BLDCNT
- thumb_func_end sub_80F2170
-
- thumb_func_start sub_80F21F8
-sub_80F21F8: @ 80F21F8
- ldr r0, _080F220C
- ldr r0, [r0]
- ldr r1, _080F2210
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080F2214
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F220C: .4byte gUnknown_083DFEC4
-_080F2210: .4byte 0x00000311
-_080F2214: .4byte REG_BLDCNT
- thumb_func_end sub_80F21F8
-
- thumb_func_start sub_80F2218
-sub_80F2218: @ 80F2218
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r0, 0x8
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x32]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bgt _080F2236
- strh r3, [r2, 0x20]
- ldr r0, _080F223C
- str r0, [r2, 0x1C]
-_080F2236:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F223C: .4byte sub_80F22B0
- thumb_func_end sub_80F2218
-
- thumb_func_start sub_80F2240
-sub_80F2240: @ 80F2240
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _080F2288
- ldr r0, [r0]
- ldr r1, _080F228C
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080F2290
- ldrh r3, [r2, 0x38]
- movs r4, 0x38
- ldrsh r0, [r2, r4]
- cmp r0, 0
- beq _080F2270
- ldrh r0, [r2, 0x36]
- ldrh r4, [r2, 0x20]
- adds r1, r0, r4
- strh r1, [r2, 0x20]
- subs r0, r3, r0
- strh r0, [r2, 0x38]
-_080F2270:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F22A8
- adds r0, r2, 0
- bl sub_80F240C
- b _080F22A8
- .align 2, 0
-_080F2288: .4byte gUnknown_083DFEC4
-_080F228C: .4byte 0x00006dad
-_080F2290:
- ldrh r0, [r2, 0x20]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080F22A8
- adds r0, r2, 0
- bl sub_80F240C
-_080F22A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2240
-
- thumb_func_start sub_80F22B0
-sub_80F22B0: @ 80F22B0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F22DC
- ldr r0, [r0]
- ldr r1, _080F22E0
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080F22E4
- ldrh r3, [r2, 0x24]
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _080F22F2
- subs r0, r3, 0x4
- b _080F22F0
- .align 2, 0
-_080F22DC: .4byte gUnknown_083DFEC4
-_080F22E0: .4byte 0x00006dad
-_080F22E4:
- ldrh r1, [r2, 0x24]
- movs r3, 0x24
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _080F22F2
- adds r0, r1, 0x4
-_080F22F0:
- strh r0, [r2, 0x24]
-_080F22F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80F22B0
-
- thumb_func_start sub_80F22F8
-sub_80F22F8: @ 80F22F8
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _080F233C
- ldr r1, [r0]
- ldr r2, _080F2340
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080F2358
- movs r7, 0xC8
- lsls r7, 2
- adds r4, r1, r7
- movs r5, 0x10
- negs r5, r5
- adds r6, r0, 0
-_080F231A:
- movs r1, 0
- lsls r2, r3, 4
-_080F231E:
- lsls r0, r1, 2
- adds r0, r2
- adds r0, r4, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F2358
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- cmp r0, 0
- beq _080F2344
- cmp r0, r5
- beq _080F2344
- movs r0, 0
- b _080F235A
- .align 2, 0
-_080F233C: .4byte gUnknown_083DFEC4
-_080F2340: .4byte 0x00006dae
-_080F2344:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F231E
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r6
- blt _080F231A
-_080F2358:
- movs r0, 0x1
-_080F235A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F22F8
-
- thumb_func_start sub_80F2360
-sub_80F2360: @ 80F2360
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _080F23A0
- ldr r2, [r0]
- ldr r1, _080F23A4
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r4, r1
- bge _080F23C0
- ldr r3, _080F23A8
- adds r0, r2, r3
- movs r6, 0
- ldrsb r6, [r0, r6]
- adds r5, r1, 0
-_080F237E:
- cmp r4, r6
- beq _080F23B6
- movs r1, 0
- ldr r0, _080F23A0
- ldr r0, [r0]
- lsls r3, r4, 4
- movs r7, 0xC8
- lsls r7, 2
- adds r2, r0, r7
-_080F2390:
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F23AC
- movs r0, 0
- b _080F23C2
- .align 2, 0
-_080F23A0: .4byte gUnknown_083DFEC4
-_080F23A4: .4byte 0x0000030e
-_080F23A8: .4byte 0x00006dad
-_080F23AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F2390
-_080F23B6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- blt _080F237E
-_080F23C0:
- movs r0, 0x1
-_080F23C2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F2360
-
- thumb_func_start sub_80F23C8
-sub_80F23C8: @ 80F23C8
- push {lr}
- movs r2, 0
- ldr r0, _080F23F4
- ldr r1, [r0]
- ldr r3, _080F23F8
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r3, r0, 4
- movs r0, 0xC8
- lsls r0, 2
- adds r1, r0
-_080F23E2:
- lsls r0, r2, 2
- adds r0, r3
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F23FC
- movs r0, 0
- b _080F2408
- .align 2, 0
-_080F23F4: .4byte gUnknown_083DFEC4
-_080F23F8: .4byte 0x00006dad
-_080F23FC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F23E2
- movs r0, 0x1
-_080F2408:
- pop {r1}
- bx r1
- thumb_func_end sub_80F23C8
-
- thumb_func_start sub_80F240C
-sub_80F240C: @ 80F240C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080F2454
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 2
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- lsls r0, 4
- adds r1, r0
- movs r0, 0xC8
- lsls r0, 2
- adds r2, r0
- adds r2, r1
- movs r0, 0
- str r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F2446
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080F2446:
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2454: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F240C
-
- thumb_func_start sub_80F2458
-sub_80F2458: @ 80F2458
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- beq _080F24A0
- cmp r4, 0x1
- bgt _080F246C
- cmp r4, 0
- beq _080F2472
- b _080F2502
-_080F246C:
- cmp r4, 0x2
- beq _080F24D0
- b _080F2502
-_080F2472:
- ldr r2, _080F2498
- ldr r3, [r2]
- movs r0, 0xE0
- lsls r0, 2
- adds r1, r3, r0
- movs r5, 0xE2
- lsls r5, 2
- adds r0, r3, r5
- str r0, [r1]
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r3, r0
- movs r0, 0xA0
- lsls r0, 5
- strh r0, [r1]
- ldr r1, _080F249C
- adds r0, r3, r1
- strh r4, [r0]
- b _080F24F6
- .align 2, 0
-_080F2498: .4byte gUnknown_083DFEC4
-_080F249C: .4byte 0x00000386
-_080F24A0:
- ldr r4, _080F24C4
- ldr r1, [r4]
- movs r3, 0xE0
- lsls r3, 2
- adds r2, r1, r3
- ldr r5, _080F24C8
- adds r0, r1, r5
- str r0, [r2]
- movs r0, 0xE1
- lsls r0, 2
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xC0
- lsls r0, 4
- strh r0, [r2]
- ldr r5, _080F24CC
- adds r1, r5
- b _080F24F2
- .align 2, 0
-_080F24C4: .4byte gUnknown_083DFEC4
-_080F24C8: .4byte 0x00001788
-_080F24CC: .4byte 0x00000386
-_080F24D0:
- ldr r4, _080F2508
- ldr r1, [r4]
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r1, r0
- ldr r3, _080F250C
- adds r0, r1, r3
- str r0, [r2]
- movs r5, 0xE1
- lsls r5, 2
- adds r2, r1, r5
- movs r3, 0
- movs r0, 0xC0
- lsls r0, 5
- strh r0, [r2]
- ldr r0, _080F2510
- adds r1, r0
-_080F24F2:
- strh r3, [r1]
- adds r2, r4, 0
-_080F24F6:
- ldr r0, [r2]
- movs r1, 0xE0
- lsls r1, 2
- adds r0, r1
- bl LoadSpriteSheet
-_080F2502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2508: .4byte gUnknown_083DFEC4
-_080F250C: .4byte 0x00002388
-_080F2510: .4byte 0x00000386
- thumb_func_end sub_80F2458
-
- thumb_func_start sub_80F2514
-sub_80F2514: @ 80F2514
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080F2558
- cmp r0, 0x1
- bgt _080F252C
- cmp r0, 0
- beq _080F2532
- b _080F2586
-_080F252C:
- cmp r1, 0x2
- beq _080F2568
- b _080F2586
-_080F2532:
- ldr r0, _080F254C
- str r0, [sp]
- ldr r1, _080F2550
- mov r4, sp
- ldr r0, [sp, 0x4]
- ands r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- ldr r0, _080F2554
- b _080F257A
- .align 2, 0
-_080F254C: .4byte gPokenavMenuOptions1_Pal
-_080F2550: .4byte 0xffff0000
-_080F2554: .4byte gPokenavMenuOptions2_Pal
-_080F2558:
- ldr r0, _080F2564
- str r0, [sp]
- mov r1, sp
- movs r0, 0
- strh r0, [r1, 0x4]
- b _080F2580
- .align 2, 0
-_080F2564: .4byte gPokenavConditionMenu_Pal
-_080F2568:
- ldr r0, _080F2590
- str r0, [sp]
- mov r4, sp
- movs r0, 0
- strh r0, [r4, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- ldr r0, _080F2594
-_080F257A:
- str r0, [sp]
- movs r0, 0x1
- strh r0, [r4, 0x4]
-_080F2580:
- mov r0, sp
- bl LoadSpritePalette
-_080F2586:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2590: .4byte gPokenavCondition6_Pal
-_080F2594: .4byte gPokenavCondition7_Pal
- thumb_func_end sub_80F2514
-
- thumb_func_start sub_80F2598
-sub_80F2598: @ 80F2598
- push {r4,lr}
- ldr r0, _080F25F0
- ldr r0, [r0]
- ldr r1, _080F25F4
- adds r4, r0, r1
- movs r0, 0
- str r0, [r4]
- ldr r1, _080F25F8
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082C0C
- cmp r0, 0x1
- bne _080F2618
- ldr r0, _080F25FC
- bl LoadSpriteSheet
- ldr r0, _080F2600
- bl LoadSpritePalette
- ldr r0, _080F2604
- movs r1, 0xC
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F260C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F2608
- adds r0, r1
- str r0, [r4]
- b _080F2618
- .align 2, 0
-_080F25F0: .4byte gUnknown_083DFEC4
-_080F25F4: .4byte 0x00006d9c
-_080F25F8: .4byte gSaveBlock1
-_080F25FC: .4byte gSpriteSheet_PokenavBlueLight
-_080F2600: .4byte gSpritePalette_PokenavBlueLight
-_080F2604: .4byte gSpriteTemplate_83E4484
-_080F2608: .4byte gSprites
-_080F260C:
- movs r0, 0x19
- bl FreeSpriteTilesByTag
- movs r0, 0x11
- bl FreeSpritePaletteByTag
-_080F2618:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2598
-
- thumb_func_start sub_80F2620
-sub_80F2620: @ 80F2620
- push {r4,lr}
- ldr r0, _080F264C
- ldr r0, [r0]
- ldr r1, _080F2650
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2644
- bl DestroySprite
- movs r0, 0x19
- bl FreeSpriteTilesByTag
- movs r0, 0x11
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F2644:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F264C: .4byte gUnknown_083DFEC4
-_080F2650: .4byte 0x00006d9c
- thumb_func_end sub_80F2620
-
- thumb_func_start sub_80F2654
-sub_80F2654: @ 80F2654
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080F2682
- movs r0, 0
- strh r0, [r3, 0x2E]
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080F2682:
- pop {r0}
- bx r0
- thumb_func_end sub_80F2654
-
- thumb_func_start sub_80F2688
-sub_80F2688: @ 80F2688
- push {lr}
- ldr r0, _080F26B0
- ldr r0, [r0]
- ldr r1, _080F26B4
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F26B8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F26AA
-_080F26A0:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- bne _080F26A0
-_080F26AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F26B0: .4byte gUnknown_083DFEC4
-_080F26B4: .4byte 0x00000306
-_080F26B8: .4byte 0x00006dac
- thumb_func_end sub_80F2688
-
- thumb_func_start sub_80F26BC
-sub_80F26BC: @ 80F26BC
- push {lr}
- ldr r0, _080F26D8
- ldr r0, [r0]
- ldr r1, _080F26DC
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _080F26CE
- b _080F27BC
-_080F26CE:
- lsls r0, 2
- ldr r1, _080F26E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F26D8: .4byte gUnknown_083DFEC4
-_080F26DC: .4byte 0x00000306
-_080F26E0: .4byte _080F26E4
- .align 2, 0
-_080F26E4:
- .4byte _080F2704
- .4byte _080F271C
- .4byte _080F2734
- .4byte _080F274C
- .4byte _080F2764
- .4byte _080F277C
- .4byte _080F2794
- .4byte _080F27B0
-_080F2704:
- ldr r0, _080F2710
- ldr r1, _080F2714
- ldr r1, [r1]
- ldr r2, _080F2718
- b _080F279C
- .align 2, 0
-_080F2710: .4byte gPokenavMainMenu_Gfx
-_080F2714: .4byte gUnknown_083DFEC4
-_080F2718: .4byte 0x00003b98
-_080F271C:
- ldr r0, _080F2728
- ldr r1, _080F272C
- ldr r1, [r1]
- ldr r2, _080F2730
- b _080F279C
- .align 2, 0
-_080F2728: .4byte gPokenavConditionMenuHeader_Gfx
-_080F272C: .4byte gUnknown_083DFEC4
-_080F2730: .4byte 0x00004198
-_080F2734:
- ldr r0, _080F2740
- ldr r1, _080F2744
- ldr r1, [r1]
- ldr r2, _080F2748
- b _080F279C
- .align 2, 0
-_080F2740: .4byte gPokenavRibbonsHeader_Gfx
-_080F2744: .4byte gUnknown_083DFEC4
-_080F2748: .4byte 0x00004d98
-_080F274C:
- ldr r0, _080F2758
- ldr r1, _080F275C
- ldr r1, [r1]
- ldr r2, _080F2760
- b _080F279C
- .align 2, 0
-_080F2758: .4byte gPokenavHoennMapHeader_Gfx
-_080F275C: .4byte gUnknown_083DFEC4
-_080F2760: .4byte 0x00005398
-_080F2764:
- ldr r0, _080F2770
- ldr r1, _080F2774
- ldr r1, [r1]
- ldr r2, _080F2778
- b _080F279C
- .align 2, 0
-_080F2770: .4byte gPokenavConditionMenuOptions_Gfx
-_080F2774: .4byte gUnknown_083DFEC4
-_080F2778: .4byte 0x00005f98
-_080F277C:
- ldr r0, _080F2788
- ldr r1, _080F278C
- ldr r1, [r1]
- ldr r2, _080F2790
- b _080F279C
- .align 2, 0
-_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx
-_080F278C: .4byte gUnknown_083DFEC4
-_080F2790: .4byte 0x00006798
-_080F2794:
- ldr r0, _080F27A4
- ldr r1, _080F27A8
- ldr r1, [r1]
- ldr r2, _080F27AC
-_080F279C:
- adds r1, r2
- bl LZ77UnCompWram
- b _080F27C0
- .align 2, 0
-_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx
-_080F27A8: .4byte gUnknown_083DFEC4
-_080F27AC: .4byte 0x00004798
-_080F27B0:
- ldr r0, _080F27B8
- bl LoadSpritePalettes
- b _080F27C0
- .align 2, 0
-_080F27B8: .4byte gUnknown_083E449C
-_080F27BC:
- movs r0, 0
- b _080F27D0
-_080F27C0:
- ldr r0, _080F27D4
- ldr r1, [r0]
- ldr r0, _080F27D8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F27D0:
- pop {r1}
- bx r1
- .align 2, 0
-_080F27D4: .4byte gUnknown_083DFEC4
-_080F27D8: .4byte 0x00000306
- thumb_func_end sub_80F26BC
-
- thumb_func_start sub_80F27DC
-sub_80F27DC: @ 80F27DC
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _080F27EA
- b _080F29A0
-_080F27EA:
- lsls r0, 2
- ldr r1, _080F27F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F27F4: .4byte _080F27F8
- .align 2, 0
-_080F27F8:
- .4byte _080F2828
- .4byte _080F2858
- .4byte _080F28B8
- .4byte _080F2888
- .4byte _080F28E8
- .4byte _080F2918
- .4byte _080F2928
- .4byte _080F2978
- .4byte _080F2938
- .4byte _080F2948
- .4byte _080F2968
- .4byte _080F2958
-_080F2828:
- ldr r0, _080F2848
- ldr r0, [r0]
- ldr r1, _080F284C
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2850
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F2854
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2848: .4byte gUnknown_083DFEC4
-_080F284C: .4byte 0x00003b98
-_080F2850: .4byte 0xffff0000
-_080F2854: .4byte 0x0000ffff
-_080F2858:
- ldr r0, _080F2878
- ldr r0, [r0]
- ldr r1, _080F287C
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2880
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F2884
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2878: .4byte gUnknown_083DFEC4
-_080F287C: .4byte 0x00004198
-_080F2880: .4byte 0xffff0000
-_080F2884: .4byte 0x0000ffff
-_080F2888:
- ldr r0, _080F28A8
- ldr r0, [r0]
- ldr r1, _080F28AC
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F28B0
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F28B4
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F28A8: .4byte gUnknown_083DFEC4
-_080F28AC: .4byte 0x00004798
-_080F28B0: .4byte 0xffff0000
-_080F28B4: .4byte 0x0000ffff
-_080F28B8:
- ldr r0, _080F28D8
- ldr r0, [r0]
- ldr r1, _080F28DC
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F28E0
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F28E4
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F28D8: .4byte gUnknown_083DFEC4
-_080F28DC: .4byte 0x00004d98
-_080F28E0: .4byte 0xffff0000
-_080F28E4: .4byte 0x0000ffff
-_080F28E8:
- ldr r0, _080F2908
- ldr r0, [r0]
- ldr r1, _080F290C
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2910
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- ldr r1, _080F2914
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2908: .4byte gUnknown_083DFEC4
-_080F290C: .4byte 0x00005398
-_080F2910: .4byte 0xffff0000
-_080F2914: .4byte 0x0000ffff
-_080F2918:
- ldr r0, _080F2920
- ldr r0, [r0]
- ldr r1, _080F2924
- b _080F297E
- .align 2, 0
-_080F2920: .4byte gUnknown_083DFEC4
-_080F2924: .4byte 0x00005f98
-_080F2928:
- ldr r0, _080F2930
- ldr r0, [r0]
- ldr r1, _080F2934
- b _080F297E
- .align 2, 0
-_080F2930: .4byte gUnknown_083DFEC4
-_080F2934: .4byte 0x00006198
-_080F2938:
- ldr r0, _080F2940
- ldr r0, [r0]
- ldr r1, _080F2944
- b _080F297E
- .align 2, 0
-_080F2940: .4byte gUnknown_083DFEC4
-_080F2944: .4byte 0x00006398
-_080F2948:
- ldr r0, _080F2950
- ldr r0, [r0]
- ldr r1, _080F2954
- b _080F297E
- .align 2, 0
-_080F2950: .4byte gUnknown_083DFEC4
-_080F2954: .4byte 0x00006598
-_080F2958:
- ldr r0, _080F2960
- ldr r0, [r0]
- ldr r1, _080F2964
- b _080F297E
- .align 2, 0
-_080F2960: .4byte gUnknown_083DFEC4
-_080F2964: .4byte 0x00006998
-_080F2968:
- ldr r0, _080F2970
- ldr r0, [r0]
- ldr r1, _080F2974
- b _080F297E
- .align 2, 0
-_080F2970: .4byte gUnknown_083DFEC4
-_080F2974: .4byte 0x00006798
-_080F2978:
- ldr r0, _080F29A8
- ldr r0, [r0]
- ldr r1, _080F29AC
-_080F297E:
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F29B0
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _080F29B4
- ands r0, r1
- movs r1, 0x80
- lsls r1, 10
-_080F2996:
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
-_080F29A0:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080F29A8: .4byte gUnknown_083DFEC4
-_080F29AC: .4byte 0x00006b98
-_080F29B0: .4byte 0xffff0000
-_080F29B4: .4byte 0x0000ffff
- thumb_func_end sub_80F27DC
-
- thumb_func_start sub_80F29B8
-sub_80F29B8: @ 80F29B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- cmp r7, 0xB
- bls _080F29D2
- b _080F2BA6
-_080F29D2:
- lsls r0, r7, 2
- ldr r1, _080F29DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F29DC: .4byte _080F29E0
- .align 2, 0
-_080F29E0:
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A58
- .4byte _080F2A94
- .4byte _080F2A94
- .4byte _080F2A98
- .4byte _080F2A94
- .4byte _080F2A94
- .4byte _080F2A98
- .4byte _080F2A98
-_080F2A10:
- ldr r3, _080F2A44
- ldr r0, _080F2A48
- ldr r2, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r2, r1
- ldrh r1, [r0]
- movs r0, 0x31
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x8
- str r4, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x40
- ldr r4, _080F2A4C
- adds r4, r2
- mov r9, r4
- ldr r2, _080F2A50
- mov r8, r2
- cmp r7, 0x3
- beq _080F2AC8
- ldr r4, _080F2A54
- mov r8, r4
- b _080F2AC8
- .align 2, 0
-_080F2A44: .4byte 0x0000ffa0
-_080F2A48: .4byte gUnknown_083DFEC4
-_080F2A4C: .4byte 0x00003b88
-_080F2A50: .4byte gSpriteTemplate_83E44F8
-_080F2A54: .4byte gSpriteTemplate_83E44E0
-_080F2A58:
- movs r3, 0x88
- lsls r3, 1
- ldr r0, _080F2A84
- ldr r2, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r2, r1
- ldrh r1, [r0]
- movs r0, 0x31
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080F2A88
- str r4, [sp]
- movs r1, 0x98
- str r1, [sp, 0x4]
- movs r1, 0x40
- ldr r4, _080F2A8C
- mov r8, r4
- ldr r4, _080F2A90
- b _080F2AC4
- .align 2, 0
-_080F2A84: .4byte gUnknown_083DFEC4
-_080F2A88: .4byte 0x0000fff8
-_080F2A8C: .4byte gSpriteTemplate_83E44E0
-_080F2A90: .4byte 0x00003b88
-_080F2A94:
- ldr r0, _080F2B40
- mov r8, r0
-_080F2A98:
- mov r1, r8
- cmp r1, 0
- bne _080F2AA2
- ldr r2, _080F2B44
- mov r8, r2
-_080F2AA2:
- ldr r3, _080F2B48
- ldr r0, _080F2B4C
- ldr r2, [r0]
- movs r4, 0xC3
- lsls r4, 2
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x44
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x8
- str r1, [sp]
- movs r4, 0x10
- str r4, [sp, 0x4]
- movs r1, 0x20
- ldr r4, _080F2B50
-_080F2AC4:
- adds r4, r2
- mov r9, r4
-_080F2AC8:
- movs r6, 0
- lsls r1, 16
- str r1, [sp, 0x10]
- lsls r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- str r0, [sp, 0xC]
- ldr r0, _080F2B54
- mov r10, r0
-_080F2ADA:
- ldr r1, [sp, 0x10]
- asrs r0, r1, 16
- adds r5, r6, 0
- muls r5, r0
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- ldr r3, [sp, 0xC]
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _080F2B9C
- lsls r0, r4, 4
- adds r1, r0, r4
- lsls r1, 2
- mov r2, r10
- adds r3, r1, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r3, 0x2E]
- ldr r2, [sp, 0x4]
- adds r1, r2, r5
- strh r1, [r3, 0x30]
- strh r6, [r3, 0x32]
- strh r7, [r3, 0x34]
- adds r5, r0, 0
- cmp r7, 0x4
- bne _080F2B5C
- cmp r6, 0x1
- bne _080F2B5C
- ldr r0, _080F2B4C
- ldr r0, [r0]
- ldr r1, _080F2B58
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- cmp r0, 0
- bne _080F2B36
- movs r1, 0x1
-_080F2B36:
- adds r0, r3, 0
- bl StartSpriteAnim
- b _080F2B6A
- .align 2, 0
-_080F2B40: .4byte gSpriteTemplate_83E4530
-_080F2B44: .4byte gSpriteTemplate_83E4548
-_080F2B48: .4byte 0x0000ffa0
-_080F2B4C: .4byte gUnknown_083DFEC4
-_080F2B50: .4byte 0x00003b90
-_080F2B54: .4byte gSprites
-_080F2B58: .4byte 0x00006e90
-_080F2B5C:
- adds r0, r5, r4
- lsls r0, 2
- add r0, r10
- lsls r1, r6, 24
- lsrs r1, 24
- bl StartSpriteAnim
-_080F2B6A:
- ldr r2, _080F2BB8
- mov r12, r2
- cmp r7, 0x3
- bhi _080F2B90
- cmp r6, 0x1
- bne _080F2B90
- adds r2, r5, r4
- lsls r2, 2
- add r2, r10
- ldrb r3, [r2, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r3
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2, 0x3]
-_080F2B90:
- lsls r1, r6, 2
- add r1, r9
- adds r0, r5, r4
- lsls r0, 2
- add r0, r12
- str r0, [r1]
-_080F2B9C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _080F2ADA
-_080F2BA6:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2BB8: .4byte gSprites
- thumb_func_end sub_80F29B8
-
- thumb_func_start sub_80F2BBC
-sub_80F2BBC: @ 80F2BBC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r2, 0x2E]
- adds r3, r0, r1
- strh r3, [r2, 0x20]
- lsls r0, 16
- asrs r4, r0, 16
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r4, r1
- bgt _080F2BE0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bge _080F2BE8
- cmp r4, r1
- blt _080F2C08
-_080F2BE0:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bgt _080F2C08
-_080F2BE8:
- ldrh r0, [r2, 0x30]
- strh r0, [r2, 0x20]
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bne _080F2C04
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F2C04
- ldr r0, _080F2C00
- b _080F2C06
- .align 2, 0
-_080F2C00: .4byte sub_80F2C58
-_080F2C04:
- ldr r0, _080F2C10
-_080F2C06:
- str r0, [r2, 0x1C]
-_080F2C08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2C10: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F2BBC
-
- thumb_func_start sub_80F2C14
-sub_80F2C14: @ 80F2C14
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x20]
- adds r0, 0x20
- lsls r0, 16
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bls _080F2C50
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080F2C4A
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _080F2C44
- movs r0, 0x1
- bl FreeSpriteTilesByTag
- b _080F2C4A
-_080F2C44:
- movs r0, 0x2
- bl FreeSpriteTilesByTag
-_080F2C4A:
- adds r0, r4, 0
- bl DestroySprite
-_080F2C50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2C14
-
- thumb_func_start sub_80F2C58
-sub_80F2C58: @ 80F2C58
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F2C78
- ldr r0, [r0]
- ldr r1, _080F2C7C
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- cmp r0, 0
- bne _080F2C6E
- movs r1, 0x1
-_080F2C6E:
- adds r0, r2, 0
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080F2C78: .4byte gUnknown_083DFEC4
-_080F2C7C: .4byte 0x00006e90
- thumb_func_end sub_80F2C58
-
- thumb_func_start sub_80F2C80
-sub_80F2C80: @ 80F2C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F2CB0
- ldr r0, [r0]
- ldr r1, _080F2CB4
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F2CB8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F2CA8
-_080F2C9C:
- adds r0, r4, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080F2C9C
-_080F2CA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2CB0: .4byte gUnknown_083DFEC4
-_080F2CB4: .4byte 0x00000306
-_080F2CB8: .4byte 0x00006dac
- thumb_func_end sub_80F2C80
-
- thumb_func_start sub_80F2CBC
-sub_80F2CBC: @ 80F2CBC
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F2CD8
- ldr r0, [r0]
- ldr r2, _080F2CDC
- adds r4, r0, r2
- ldrh r0, [r4]
- cmp r0, 0
- beq _080F2CE0
- cmp r0, 0x1
- beq _080F2CF0
- b _080F2CFC
- .align 2, 0
-_080F2CD8: .4byte gUnknown_083DFEC4
-_080F2CDC: .4byte 0x00000306
-_080F2CE0:
- adds r0, r1, 0
- bl sub_80F27DC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0x1
- b _080F2CFE
-_080F2CF0:
- adds r0, r1, 0
- bl sub_80F29B8
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F2CFC:
- movs r0, 0
-_080F2CFE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F2CBC
-
- thumb_func_start sub_80F2D04
-sub_80F2D04: @ 80F2D04
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F2D3C
- movs r1, 0
- ldr r0, _080F2D30
- ldr r0, [r0]
- ldr r3, _080F2D34
- adds r2, r0, r3
- ldr r3, _080F2D38
-_080F2D1A:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- str r3, [r0, 0x1C]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F2D1A
- b _080F2D5A
- .align 2, 0
-_080F2D30: .4byte gUnknown_083DFEC4
-_080F2D34: .4byte 0x00003b88
-_080F2D38: .4byte sub_80F2C14
-_080F2D3C:
- movs r1, 0
- ldr r0, _080F2D60
- ldr r0, [r0]
- ldr r3, _080F2D64
- adds r2, r0, r3
- ldr r3, _080F2D68
-_080F2D48:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- str r3, [r0, 0x1C]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F2D48
-_080F2D5A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F2D60: .4byte gUnknown_083DFEC4
-_080F2D64: .4byte 0x00003b90
-_080F2D68: .4byte sub_80F2C14
- thumb_func_end sub_80F2D04
-
- thumb_func_start sub_80F2D6C
-sub_80F2D6C: @ 80F2D6C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F2DA4
- movs r0, 0x1
- bl FreeSpriteTilesByTag
- movs r4, 0
- ldr r0, _080F2D9C
- ldr r0, [r0]
- ldr r1, _080F2DA0
- adds r5, r0, r1
-_080F2D86:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F2D86
- b _080F2DC8
- .align 2, 0
-_080F2D9C: .4byte gUnknown_083DFEC4
-_080F2DA0: .4byte 0x00003b88
-_080F2DA4:
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- movs r4, 0
- ldr r0, _080F2DD0
- ldr r0, [r0]
- ldr r1, _080F2DD4
- adds r5, r0, r1
-_080F2DB4:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F2DB4
-_080F2DC8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2DD0: .4byte gUnknown_083DFEC4
-_080F2DD4: .4byte 0x00003b90
- thumb_func_end sub_80F2D6C
-
- thumb_func_start sub_80F2DD8
-sub_80F2DD8: @ 80F2DD8
- push {lr}
- movs r0, 0x7
- movs r1, 0x7
- bl sub_80FBB3C
- movs r0, 0x8
- movs r1, 0x8
- bl sub_80FBCF0
- bl sub_80FBF94
- pop {r0}
- bx r0
- thumb_func_end sub_80F2DD8
-
- thumb_func_start sub_80F2DF4
-sub_80F2DF4: @ 80F2DF4
- push {lr}
- bl sub_80FAB10
- pop {r0}
- bx r0
- thumb_func_end sub_80F2DF4
-
- thumb_func_start sub_80F2E00
-sub_80F2E00: @ 80F2E00
- ldr r1, _080F2E10
- ldr r1, [r1]
- ldr r2, _080F2E14
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x26
- strh r1, [r0, 0x20]
- bx lr
- .align 2, 0
-_080F2E10: .4byte gUnknown_083DFEC4
-_080F2E14: .4byte 0x00008766
- thumb_func_end sub_80F2E00
-
- thumb_func_start sub_80F2E18
-sub_80F2E18: @ 80F2E18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080F2EA8
- ldr r4, [r0]
- ldr r0, _080F2EAC
- adds r7, r4, r0
- ldr r1, [r7]
- mov r8, r1
- cmp r1, 0
- bne _080F2EFC
- ldr r0, _080F2EB0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080F2EB4
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, _080F2EB8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- lsls r0, r3, 13
- ldr r1, _080F2EBC
- adds r0, r1
- adds r0, r4, r0
- str r0, [sp, 0x20]
- lsls r0, r3, 7
- adds r0, r4, r0
- str r0, [sp, 0x18]
- add r0, sp, 0x18
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F2EC0
- adds r5, r4, r2
- strh r0, [r5]
- add r0, sp, 0x20
- bl LoadSpriteSheet
- ldr r1, _080F2EC4
- adds r6, r4, r1
- strh r0, [r6]
- mov r0, sp
- movs r1, 0x26
- movs r2, 0x68
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F2EC8
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- mov r2, r8
- str r2, [r7]
- b _080F2F26
- .align 2, 0
-_080F2EA8: .4byte gUnknown_083DFEC4
-_080F2EAC: .4byte 0x00008768
-_080F2EB0: .4byte gUnknown_083E4568
-_080F2EB4: .4byte gSpriteTemplate_83E4570
-_080F2EB8: .4byte gUnknown_083E4588
-_080F2EBC: .4byte 0x0000d1e4
-_080F2EC0: .4byte 0x0000d1dc
-_080F2EC4: .4byte 0x0000d1de
-_080F2EC8:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F2EF0
- adds r0, r1
- str r0, [r7]
- ldr r0, _080F2EF4
- adds r1, r4, r0
- ldrh r0, [r6]
- lsls r0, 5
- ldr r2, _080F2EF8
- adds r0, r2
- str r0, [r1]
- ldrh r0, [r5]
- lsls r0, 4
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6
- strh r0, [r5]
- b _080F2F26
- .align 2, 0
-_080F2EF0: .4byte gSprites
-_080F2EF4: .4byte 0x0000d1e0
-_080F2EF8: .4byte 0x06010000
-_080F2EFC:
- lsls r0, r3, 13
- ldr r1, _080F2F34
- adds r0, r1
- adds r0, r4, r0
- ldr r2, _080F2F38
- adds r1, r4, r2
- ldr r2, [r1]
- ldr r1, _080F2F3C
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080F2F40
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- lsls r0, r3, 7
- adds r0, r4, r0
- ldr r5, _080F2F44
- adds r1, r4, r5
- ldrh r1, [r1]
- movs r2, 0x20
- bl LoadPalette
-_080F2F26:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2F34: .4byte 0x0000d1e4
-_080F2F38: .4byte 0x0000d1e0
-_080F2F3C: .4byte 0x040000d4
-_080F2F40: .4byte 0x80000400
-_080F2F44: .4byte 0x0000d1dc
- thumb_func_end sub_80F2E18
-
- thumb_func_start sub_80F2F48
-sub_80F2F48: @ 80F2F48
- push {r4,lr}
- ldr r0, _080F2F74
- ldr r0, [r0]
- ldr r1, _080F2F78
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2F6C
- bl DestroySprite
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F2F6C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2F74: .4byte gUnknown_083DFEC4
-_080F2F78: .4byte 0x00008768
- thumb_func_end sub_80F2F48
-
- thumb_func_start sub_80F2F7C
-sub_80F2F7C: @ 80F2F7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2E18
- ldr r0, _080F2FA0
- ldr r0, [r0]
- ldr r1, _080F2FA4
- adds r2, r0, r1
- ldr r1, _080F2FA8
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- ldr r0, _080F2FAC
- str r0, [r1, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080F2FA0: .4byte gUnknown_083DFEC4
-_080F2FA4: .4byte 0x0000ced0
-_080F2FA8: .4byte 0x00008768
-_080F2FAC: .4byte sub_80F2FEC
- thumb_func_end sub_80F2F7C
-
- thumb_func_start sub_80F2FB0
-sub_80F2FB0: @ 80F2FB0
- push {r4,r5,lr}
- ldr r0, _080F2FE0
- ldr r5, [r0]
- ldr r0, _080F2FE4
- adds r4, r5, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2FDA
- bl DestroySprite
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- movs r1, 0
- str r1, [r4]
- ldr r2, _080F2FE8
- adds r0, r5, r2
- str r1, [r0]
-_080F2FDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2FE0: .4byte gUnknown_083DFEC4
-_080F2FE4: .4byte 0x0000ced0
-_080F2FE8: .4byte 0x00008768
- thumb_func_end sub_80F2FB0
-
- thumb_func_start sub_80F2FEC
-sub_80F2FEC: @ 80F2FEC
- ldr r1, _080F3000
- ldr r1, [r1]
- ldr r2, _080F3004
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x28
- strh r1, [r0, 0x20]
- movs r1, 0x68
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F3000: .4byte gUnknown_083DFEC4
-_080F3004: .4byte 0x0000d15a
- thumb_func_end sub_80F2FEC
-
- thumb_func_start sub_80F3008
-sub_80F3008: @ 80F3008
- push {r4,r5,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r2, r0, 24
- mov r1, sp
- ldr r0, _080F3060
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, _080F3064
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- cmp r2, 0x2
- bgt _080F3032
- cmp r2, 0x1
- blt _080F3032
- ldr r0, _080F3068
- str r0, [sp, 0x18]
-_080F3032:
- mov r0, sp
- bl LoadSpriteSheets
- add r0, sp, 0x18
- bl LoadSpritePalette
- ldr r0, _080F306C
- movs r1, 0x5F
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F3078
- ldr r0, _080F3070
- ldr r0, [r0]
- ldr r1, _080F3074
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _080F3120
- .align 2, 0
-_080F3060: .4byte gUnknown_083E4590
-_080F3064: .4byte gUnknown_083E45A8
-_080F3068: .4byte gUnknown_08E9F988
-_080F306C: .4byte gSpriteTemplate_83E45B8
-_080F3070: .4byte gUnknown_083DFEC4
-_080F3074: .4byte 0x000087cc
-_080F3078:
- ldr r0, _080F30F4
- ldr r2, [r0]
- ldr r3, _080F30F8
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F30FC
- adds r0, r1
- str r0, [r2]
- movs r4, 0
- movs r5, 0
-_080F3090:
- lsls r2, r4, 7
- adds r2, 0x8
- lsls r2, 16
- asrs r2, 16
- ldr r0, _080F3100
- movs r1, 0xA8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F3108
- ldr r0, _080F30F4
- ldr r2, [r0]
- lsls r0, r4, 2
- ldr r3, _080F3104
- adds r2, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F30FC
- adds r3, r0, r1
- str r3, [r2]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r3, 0x2E]
- strh r5, [r3, 0x30]
- movs r0, 0x1
- cmp r4, 0
- bne _080F30DE
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_080F30DE:
- strh r0, [r3, 0x32]
- strh r4, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r1, r4, 24
- lsrs r1, 24
- adds r0, r3, 0
- bl StartSpriteAnim
- b _080F3116
- .align 2, 0
-_080F30F4: .4byte gUnknown_083DFEC4
-_080F30F8: .4byte 0x000087cc
-_080F30FC: .4byte gSprites
-_080F3100: .4byte gSpriteTemplate_83E45F0
-_080F3104: .4byte 0x000087d0
-_080F3108:
- ldr r0, _080F3128
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _080F312C
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080F3116:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F3090
-_080F3120:
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3128: .4byte gUnknown_083DFEC4
-_080F312C: .4byte 0x000087d0
- thumb_func_end sub_80F3008
-
- thumb_func_start sub_80F3130
-sub_80F3130: @ 80F3130
- push {r4-r6,lr}
- ldr r0, _080F3184
- ldr r6, [r0]
- ldr r0, _080F3188
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3154
- bl DestroySprite
- movs r0, 0x9
- bl FreeSpriteTilesByTag
- movs r0, 0x9
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F3154:
- movs r5, 0
- ldr r0, _080F318C
- adds r6, r0
-_080F315A:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F316C
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F316C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080F315A
- movs r0, 0xA
- bl FreeSpriteTilesByTag
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3184: .4byte gUnknown_083DFEC4
-_080F3188: .4byte 0x000087cc
-_080F318C: .4byte 0x000087d0
- thumb_func_end sub_80F3130
-
- thumb_func_start sub_80F3190
-sub_80F3190: @ 80F3190
- ldr r1, _080F31A4
- ldr r1, [r1]
- ldr r2, _080F31A8
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 4
- adds r1, 0x10
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F31A4: .4byte gUnknown_083DFEC4
-_080F31A8: .4byte 0x0000876c
- thumb_func_end sub_80F3190
-
- thumb_func_start sub_80F31AC
-sub_80F31AC: @ 80F31AC
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _080F31E8
- ldr r1, [r0]
- ldr r2, _080F31EC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F325C
- movs r4, 0x36
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _080F3226
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r0, 0
- bne _080F31F4
- movs r2, 0
- ldr r4, _080F31F0
- adds r0, r1, r4
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0
- bne _080F31DE
- movs r2, 0x1
-_080F31DE:
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r2, 2
- b _080F3214
- .align 2, 0
-_080F31E8: .4byte gUnknown_083DFEC4
-_080F31EC: .4byte 0x000087c9
-_080F31F0: .4byte 0x00008770
-_080F31F4:
- movs r4, 0
- ldr r2, _080F3250
- adds r0, r1, r2
- ldr r5, _080F3254
- adds r1, r5
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bne _080F320C
- movs r4, 0x1
-_080F320C:
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r2, r4, 2
-_080F3214:
- ldrb r1, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- strh r0, [r3, 0x36]
-_080F3226:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080F325C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080F3258
- ldrh r0, [r3, 0x32]
- ldrh r2, [r3, 0x26]
- adds r0, r2
- strh r0, [r3, 0x26]
- b _080F325C
- .align 2, 0
-_080F3250: .4byte 0x00008772
-_080F3254: .4byte 0x00008774
-_080F3258:
- strh r1, [r3, 0x30]
- strh r1, [r3, 0x26]
-_080F325C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F31AC
-
- thumb_func_start sub_80F3264
-sub_80F3264: @ 80F3264
- push {lr}
- movs r1, 0
- ldr r0, _080F328C
- ldr r0, [r0]
- ldr r3, _080F3290
- adds r2, r0, r3
- movs r3, 0x1
-_080F3272:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F327E
- strh r3, [r0, 0x36]
-_080F327E:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F3272
- pop {r0}
- bx r0
- .align 2, 0
-_080F328C: .4byte gUnknown_083DFEC4
-_080F3290: .4byte 0x000087d0
- thumb_func_end sub_80F3264
-
- thumb_func_start sub_80F3294
-sub_80F3294: @ 80F3294
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080F32F4
- ldr r4, [r0]
- ldr r1, _080F32F8
- adds r0, r4, r1
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r5, 0x5
- negs r5, r5
- adds r0, r5, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080F32FC
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F331A
- cmp r6, 0x1
- bne _080F3308
- ldr r1, _080F3300
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, _080F3304
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
- b _080F331A
- .align 2, 0
-_080F32F4: .4byte gUnknown_083DFEC4
-_080F32F8: .4byte 0x000087cc
-_080F32FC: .4byte 0x000087c9
-_080F3300: .4byte 0x000087d0
-_080F3304: .4byte 0x000087d4
-_080F3308:
- ldr r1, _080F3320
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r2, _080F3324
- adds r0, r4, r2
- ldr r0, [r0]
- strh r1, [r0, 0x36]
-_080F331A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3320: .4byte 0x000087d0
-_080F3324: .4byte 0x000087d4
- thumb_func_end sub_80F3294
-
- thumb_func_start sub_80F3328
-sub_80F3328: @ 80F3328
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F334C
- ldr r0, [r0]
- ldr r1, _080F3350
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _080F3354
- adds r0, r2, 0
- movs r1, 0
- bl StartSpriteAnim
- b _080F335C
- .align 2, 0
-_080F334C: .4byte gUnknown_083DFEC4
-_080F3350: .4byte 0x000087dc
-_080F3354:
- adds r0, r2, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080F335C:
- pop {r0}
- bx r0
- thumb_func_end sub_80F3328
-
- thumb_func_start sub_80F3360
-sub_80F3360: @ 80F3360
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080F3384
- ldr r0, [r0]
- ldr r2, _080F3388
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _080F338C
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _080F3390
- movs r0, 0x4
- b _080F3392
- .align 2, 0
-_080F3384: .4byte gUnknown_083DFEC4
-_080F3388: .4byte 0x000087dc
-_080F338C: .4byte 0x000087da
-_080F3390:
- movs r0, 0x5
-_080F3392:
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F3360
-
- thumb_func_start sub_80F33A8
-sub_80F33A8: @ 80F33A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x50
- mov r1, sp
- ldr r0, _080F3440
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r3,r4}
- stm r1!, {r3,r4}
- add r4, sp, 0x20
- adds r1, r4, 0
- ldr r0, _080F3444
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- add r5, sp, 0x38
- adds r1, r5, 0
- ldr r0, _080F3448
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- movs r6, 0
- ldr r2, _080F344C
- ldr r1, [r2]
- ldr r3, _080F3450
- adds r0, r1, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- subs r0, 0x1
- adds r7, r5, 0
- cmp r6, r0
- bge _080F347A
- adds r5, r2, 0
- adds r0, r3, 0
- adds r0, r1
- mov r8, r0
-_080F3406:
- lsls r4, r6, 2
- adds r2, r4, r6
- lsls r2, 18
- movs r1, 0x80
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xE2
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F345C
- ldr r0, [r5]
- ldr r2, _080F3454
- adds r0, r2
- adds r0, r4
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r2, _080F3458
- adds r1, r2
- str r1, [r0]
- strh r6, [r1, 0x2E]
- b _080F3468
- .align 2, 0
-_080F3440: .4byte gUnknown_083E4628
-_080F3444: .4byte gUnknown_083E4648
-_080F3448: .4byte gSpriteTemplate_83E4660
-_080F344C: .4byte gUnknown_083DFEC4
-_080F3450: .4byte 0x000087da
-_080F3454: .4byte 0x000087e4
-_080F3458: .4byte gSprites
-_080F345C:
- ldr r0, [r5]
- ldr r3, _080F34C8
- adds r0, r3
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080F3468:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r4, r8
- movs r1, 0
- ldrsh r0, [r4, r1]
- subs r0, 0x1
- cmp r6, r0
- blt _080F3406
-_080F347A:
- movs r0, 0x4
- strh r0, [r7]
- ldr r0, _080F34CC
- str r0, [r7, 0x14]
- cmp r6, 0x5
- bhi _080F34EE
- ldr r5, _080F34D0
-_080F3488:
- lsls r4, r6, 2
- adds r2, r4, r6
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xE6
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F34D8
- ldr r2, [r5]
- ldr r0, _080F34C8
- adds r2, r0
- adds r2, r4
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r0, _080F34D4
- adds r1, r0
- str r1, [r2]
- ldrb r2, [r1, 0x3]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1, 0x3]
- b _080F34E4
- .align 2, 0
-_080F34C8: .4byte 0x000087e4
-_080F34CC: .4byte SpriteCallbackDummy
-_080F34D0: .4byte gUnknown_083DFEC4
-_080F34D4: .4byte gSprites
-_080F34D8:
- ldr r0, [r5]
- ldr r1, _080F3548
- adds r0, r1
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080F34E4:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080F3488
-_080F34EE:
- movs r0, 0x5
- strh r0, [r7]
- ldr r0, _080F354C
- str r0, [r7, 0x14]
- lsls r5, r6, 2
- adds r2, r5, r6
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xDE
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F3558
- ldr r0, _080F3550
- ldr r4, [r0]
- ldr r6, _080F3548
- adds r4, r6
- adds r4, r5
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r0, _080F3554
- adds r1, r0
- str r1, [r4]
- ldrb r3, [r1, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x40
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldr r1, [r4]
- ldrb r0, [r1, 0x3]
- ands r2, r0
- movs r0, 0x80
- orrs r2, r0
- strb r2, [r1, 0x3]
- b _080F3566
- .align 2, 0
-_080F3548: .4byte 0x000087e4
-_080F354C: .4byte sub_80F3360
-_080F3550: .4byte gUnknown_083DFEC4
-_080F3554: .4byte gSprites
-_080F3558:
- ldr r0, _080F3574
- ldr r0, [r0]
- ldr r1, _080F3578
- adds r0, r1
- adds r0, r5
- movs r1, 0
- str r1, [r0]
-_080F3566:
- add sp, 0x50
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3574: .4byte gUnknown_083DFEC4
-_080F3578: .4byte 0x000087e4
- thumb_func_end sub_80F33A8
-
- thumb_func_start sub_80F357C
-sub_80F357C: @ 80F357C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _080F35AC
- ldr r0, [r0]
- ldr r1, _080F35B0
- adds r6, r0, r1
-_080F3588:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F359A
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F359A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080F3588
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F35AC: .4byte gUnknown_083DFEC4
-_080F35B0: .4byte 0x000087e4
- thumb_func_end sub_80F357C
-
- thumb_func_start sub_80F35B4
-sub_80F35B4: @ 80F35B4
- push {r4,lr}
- ldr r0, _080F35FC
- ldr r4, [r0]
- ldr r1, _080F3600
- adds r0, r4, r1
- movs r1, 0x1C
- strh r1, [r0]
- ldr r1, _080F3604
- adds r2, r4, r1
- movs r1, 0x13
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- ldr r2, _080F3608
- movs r0, 0x1B
- movs r1, 0x15
- bl sub_80F7920
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xC0
- strh r1, [r0, 0x20]
- movs r1, 0x20
- strh r1, [r0, 0x22]
- ldr r1, _080F360C
- str r1, [r0, 0x1C]
- ldr r1, _080F3610
- adds r4, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F35FC: .4byte gUnknown_083DFEC4
-_080F3600: .4byte 0x000076b0
-_080F3604: .4byte 0x000076b2
-_080F3608: .4byte gUnknown_083E4678
-_080F360C: .4byte sub_80F363C
-_080F3610: .4byte 0x000076ac
- thumb_func_end sub_80F35B4
-
- thumb_func_start sub_80F3614
-sub_80F3614: @ 80F3614
- push {lr}
- ldr r0, _080F3634
- ldr r0, [r0]
- ldr r1, _080F3638
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- movs r0, 0x1B
- bl FreeSpriteTilesByTag
- movs r0, 0x15
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_080F3634: .4byte gUnknown_083DFEC4
-_080F3638: .4byte 0x000076ac
- thumb_func_end sub_80F3614
-
- thumb_func_start sub_80F363C
-sub_80F363C: @ 80F363C
- push {lr}
- ldr r1, _080F365C
- ldr r1, [r1]
- ldr r3, _080F3660
- adds r2, r1, r3
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- ldr r3, _080F3664
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080F365C: .4byte gUnknown_083DFEC4
-_080F3660: .4byte 0x00008fe9
-_080F3664: .4byte 0x00008934
- thumb_func_end sub_80F363C
-
- thumb_func_start sub_80F3668
-sub_80F3668: @ 80F3668
- push {lr}
- ldr r0, _080F368C
- ldr r0, [r0]
- ldr r2, _080F3690
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, _080F3694
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0xB0
- movs r2, 0x20
- bl sub_80F7418
- pop {r0}
- bx r0
- .align 2, 0
-_080F368C: .4byte gUnknown_083DFEC4
-_080F3690: .4byte 0x00008fe9
-_080F3694: .4byte 0x00008934
- thumb_func_end sub_80F3668
-
- thumb_func_start sub_80F3698
-sub_80F3698: @ 80F3698
- push {r4,lr}
- ldr r0, _080F36DC
- ldr r3, [r0]
- ldr r1, _080F36E0
- adds r0, r3, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r1, 2
- ldr r4, _080F36E4
- adds r1, r4
- adds r1, r3, r1
- ldr r2, _080F36E8
- adds r0, r3, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r4, 0x8
- adds r0, r3, r4
- adds r0, r2
- ldr r2, _080F36EC
- adds r3, r2
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r1, 0x1]
- ldr r1, [r1]
- lsls r1, 11
- lsrs r1, 27
- ldrb r2, [r3]
- bl sub_80F4548
- bl sub_80F7470
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F36DC: .4byte gUnknown_083DFEC4
-_080F36E0: .4byte 0x000087dc
-_080F36E4: .4byte 0x0000893c
-_080F36E8: .4byte 0x00008fe9
-_080F36EC: .4byte 0x000076b4
- thumb_func_end sub_80F3698
-
- thumb_func_start sub_80F36F0
-sub_80F36F0: @ 80F36F0
- push {lr}
- ldr r0, _080F3718
- ldr r0, [r0]
- ldr r1, _080F371C
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F3720
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F3712
-_080F3708:
- bl sub_80F3724
- lsls r0, 24
- cmp r0, 0
- bne _080F3708
-_080F3712:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3718: .4byte gUnknown_083DFEC4
-_080F371C: .4byte 0x00000306
-_080F3720: .4byte 0x00006dac
- thumb_func_end sub_80F36F0
-
- thumb_func_start sub_80F3724
-sub_80F3724: @ 80F3724
- push {r4,lr}
- ldr r0, _080F3740
- ldr r1, [r0]
- ldr r0, _080F3744
- adds r4, r1, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080F3764
- cmp r0, 0x1
- bgt _080F3748
- cmp r0, 0
- beq _080F374E
- b _080F377A
- .align 2, 0
-_080F3740: .4byte gUnknown_083DFEC4
-_080F3744: .4byte 0x00000306
-_080F3748:
- cmp r0, 0x2
- beq _080F376E
- b _080F377A
-_080F374E:
- ldr r0, _080F375C
- ldr r2, _080F3760
- adds r1, r2
- bl LZ77UnCompWram
- b _080F377E
- .align 2, 0
-_080F375C: .4byte gUnknown_083E3D00
-_080F3760: .4byte 0x0000984c
-_080F3764:
- bl sub_80F379C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F376E:
- bl sub_80F37D0
- lsls r0, 24
- cmp r0, 0
- beq _080F377E
- b _080F378C
-_080F377A:
- movs r0, 0
- b _080F378E
-_080F377E:
- ldr r0, _080F3794
- ldr r1, [r0]
- ldr r0, _080F3798
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F378C:
- movs r0, 0x1
-_080F378E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3794: .4byte gUnknown_083DFEC4
-_080F3798: .4byte 0x00000306
- thumb_func_end sub_80F3724
-
- thumb_func_start sub_80F379C
-sub_80F379C: @ 80F379C
- push {lr}
- ldr r0, _080F37C4
- ldr r0, [r0]
- ldr r1, _080F37C8
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r1, _080F37CC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F37BE
-_080F37B4:
- bl sub_80F37D0
- lsls r0, 24
- cmp r0, 0
- bne _080F37B4
-_080F37BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080F37C4: .4byte gUnknown_083DFEC4
-_080F37C8: .4byte 0x0000bc93
-_080F37CC: .4byte 0x00006dac
- thumb_func_end sub_80F379C
-
- thumb_func_start sub_80F37D0
-sub_80F37D0: @ 80F37D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F3898
- ldr r1, [r0]
- ldr r2, _080F389C
- adds r1, r2
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0xB
- bhi _080F38A8
- movs r3, 0
- mov r8, r3
- movs r7, 0xF
- mov r9, r7
-_080F37F0:
- ldr r2, [r2]
- ldr r1, _080F389C
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 8
- ldr r3, _080F38A0
- adds r0, r3
- adds r4, r2, r0
- lsls r1, 9
- ldr r7, _080F38A4
- adds r1, r7
- adds r5, r2, r1
- movs r6, 0
-_080F380A:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x10
- bl CpuFastSet
- adds r5, 0x40
- adds r4, 0x20
- movs r1, 0
- adds r6, 0x1
- mov r12, r6
-_080F381E:
- movs r0, 0
- adds r6, r1, 0x1
-_080F3822:
- adds r4, 0x4
- movs r2, 0
- adds r3, r0, 0x1
-_080F3828:
- subs r4, 0x1
- ldrb r0, [r4]
- lsls r1, r0, 4
- lsrs r0, 4
- mov r7, r9
- ands r0, r7
- orrs r1, r0
- strb r1, [r5]
- adds r5, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080F3828
- adds r4, 0x4
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x7
- bls _080F3822
- subs r4, 0x40
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bls _080F381E
- adds r4, 0x60
- mov r1, r12
- lsls r0, r1, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _080F380A
- ldr r2, _080F3898
- ldr r3, [r2]
- ldr r7, _080F389C
- adds r1, r3, r7
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bhi _080F38A8
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x1
- bls _080F37F0
- adds r1, r7, 0
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0xB
- bhi _080F38A8
- movs r0, 0x1
- b _080F38AA
- .align 2, 0
-_080F3898: .4byte gUnknown_083DFEC4
-_080F389C: .4byte 0x0000bc93
-_080F38A0: .4byte 0x0000984c
-_080F38A4: .4byte 0x0000a44c
-_080F38A8:
- movs r0, 0
-_080F38AA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F37D0
-
- thumb_func_start sub_80F38B8
-sub_80F38B8: @ 80F38B8
- push {lr}
- ldr r0, _080F38E0
- ldr r0, [r0]
- ldr r1, _080F38E4
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F38E8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F38DA
-_080F38D0:
- bl sub_80F38EC
- lsls r0, 24
- cmp r0, 0
- bne _080F38D0
-_080F38DA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F38E0: .4byte gUnknown_083DFEC4
-_080F38E4: .4byte 0x00000306
-_080F38E8: .4byte 0x00006dac
- thumb_func_end sub_80F38B8
-
- thumb_func_start sub_80F38EC
-sub_80F38EC: @ 80F38EC
- push {r4,lr}
- ldr r0, _080F3908
- ldr r2, [r0]
- ldr r0, _080F390C
- adds r4, r2, r0
- ldrh r1, [r4]
- cmp r1, 0x1
- beq _080F3930
- cmp r1, 0x1
- bgt _080F3910
- cmp r1, 0
- beq _080F391A
- b _080F394E
- .align 2, 0
-_080F3908: .4byte gUnknown_083DFEC4
-_080F390C: .4byte 0x00000306
-_080F3910:
- cmp r1, 0x2
- beq _080F3938
- cmp r1, 0x3
- beq _080F3942
- b _080F394E
-_080F391A:
- ldr r3, _080F3928
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080F392C
- adds r0, r2, r3
- strb r1, [r0]
- b _080F3952
- .align 2, 0
-_080F3928: .4byte 0x00009348
-_080F392C: .4byte 0x0000bc92
-_080F3930:
- movs r0, 0
- bl sub_80F2E18
- b _080F3952
-_080F3938:
- bl sub_80F3970
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F3942:
- bl sub_80F39A4
- lsls r0, 24
- cmp r0, 0
- beq _080F3952
- b _080F3960
-_080F394E:
- movs r0, 0
- b _080F3962
-_080F3952:
- ldr r0, _080F3968
- ldr r1, [r0]
- ldr r0, _080F396C
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F3960:
- movs r0, 0x1
-_080F3962:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3968: .4byte gUnknown_083DFEC4
-_080F396C: .4byte 0x00000306
- thumb_func_end sub_80F38EC
-
- thumb_func_start sub_80F3970
-sub_80F3970: @ 80F3970
- push {lr}
- ldr r0, _080F3998
- ldr r0, [r0]
- ldr r1, _080F399C
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r1, _080F39A0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F3992
-_080F3988:
- bl sub_80F39A4
- lsls r0, 24
- cmp r0, 0
- bne _080F3988
-_080F3992:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3998: .4byte gUnknown_083DFEC4
-_080F399C: .4byte 0x0000bc93
-_080F39A0: .4byte 0x00006dac
- thumb_func_end sub_80F3970
-
- thumb_func_start sub_80F39A4
-sub_80F39A4: @ 80F39A4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r0, _080F3A18
- ldr r1, [r0]
- ldr r0, _080F3A1C
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xB
- bhi _080F3A30
- ldrb r0, [r4]
- lsls r0, 9
- ldr r2, _080F3A20
- adds r0, r2
- adds r0, r1, r0
- str r0, [sp]
- ldr r5, _080F3A24
- ldr r2, [sp, 0x4]
- ands r2, r5
- movs r0, 0x80
- lsls r0, 2
- orrs r2, r0
- str r2, [sp, 0x4]
- ldrb r1, [r4]
- adds r1, 0xB
- lsls r1, 16
- ldr r0, _080F3A28
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldrb r0, [r4]
- cmp r0, 0x4
- bhi _080F3A04
- lsls r0, 5
- ldr r1, _080F3A2C
- adds r0, r1
- str r0, [sp, 0x8]
- ldrb r2, [r4]
- adds r2, 0xA
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_080F3A04:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bhi _080F3A30
- movs r0, 0x1
- b _080F3A32
- .align 2, 0
-_080F3A18: .4byte gUnknown_083DFEC4
-_080F3A1C: .4byte 0x0000bc93
-_080F3A20: .4byte 0x0000a44c
-_080F3A24: .4byte 0xffff0000
-_080F3A28: .4byte 0x0000ffff
-_080F3A2C: .4byte gUnknown_083E3C60
-_080F3A30:
- movs r0, 0
-_080F3A32:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F39A4
-
- thumb_func_start sub_80F3A3C
-sub_80F3A3C: @ 80F3A3C
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r4, 0x2
- bhi _080F3A60
- lsls r0, r4, 3
- adds r0, r4
- adds r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080F3A5C
- b _080F3A78
- .align 2, 0
-_080F3A5C: .4byte gUnknown_083DFEC4
-_080F3A60:
- ldr r2, _080F3AD0
- ldr r1, [r2]
- ldr r3, _080F3AD4
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r6, _080F3AD8
- adds r1, r6
- ldrb r1, [r1]
- subs r0, r1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080F3A78:
- ldr r0, [r2]
- ldr r7, _080F3ADC
- adds r0, r7
- adds r0, r1
- ldrb r2, [r0]
- mov r1, sp
- ldr r0, _080F3AE0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- mov r3, sp
- ldr r1, _080F3AE4
- lsls r2, 2
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r0, 0xB
- strh r0, [r3]
- adds r1, 0x2
- adds r2, r1
- ldrh r0, [r2]
- adds r0, 0xA
- strh r0, [r3, 0x2]
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, r4, 20
- movs r3, 0xA0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- mov r0, sp
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F3AE8
- movs r0, 0
- b _080F3AF2
- .align 2, 0
-_080F3AD0: .4byte gUnknown_083DFEC4
-_080F3AD4: .4byte 0x0000bc8e
-_080F3AD8: .4byte 0x0000bc8f
-_080F3ADC: .4byte 0x0000bc4c
-_080F3AE0: .4byte gSpriteTemplate_83E476C
-_080F3AE4: .4byte gUnknown_083E4698
-_080F3AE8:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F3AFC
- adds r0, r1
-_080F3AF2:
- add sp, 0x18
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3AFC: .4byte gSprites
- thumb_func_end sub_80F3A3C
-
- thumb_func_start sub_80F3B00
-sub_80F3B00: @ 80F3B00
- push {r4,lr}
- ldr r0, _080F3B34
- ldr r4, [r0]
- ldr r1, _080F3B38
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F3B3C
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F3A3C
- adds r2, r0, 0
- ldr r1, _080F3B40
- adds r0, r4, r1
- str r2, [r0]
- cmp r2, 0
- beq _080F3B48
- adds r0, r2, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r2, _080F3B44
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- b _080F3B4E
- .align 2, 0
-_080F3B34: .4byte gUnknown_083DFEC4
-_080F3B38: .4byte 0x0000bc90
-_080F3B3C: .4byte 0x0000bc91
-_080F3B40: .4byte 0x00009348
-_080F3B44: .4byte 0x0000bc92
-_080F3B48:
- ldr r1, _080F3B54
- adds r0, r4, r1
- strb r2, [r0]
-_080F3B4E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3B54: .4byte 0x0000bc92
- thumb_func_end sub_80F3B00
-
- thumb_func_start sub_80F3B58
-sub_80F3B58: @ 80F3B58
- push {lr}
- ldr r0, _080F3B6C
- ldr r1, [r0]
- ldr r0, _080F3B70
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _080F3B74
- movs r0, 0
- b _080F3B8A
- .align 2, 0
-_080F3B6C: .4byte gUnknown_083DFEC4
-_080F3B70: .4byte 0x0000bc92
-_080F3B74:
- ldr r3, _080F3B90
- adds r0, r1, r3
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- eors r0, r1
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r2]
-_080F3B8A:
- pop {r1}
- bx r1
- .align 2, 0
-_080F3B90: .4byte 0x00009348
- thumb_func_end sub_80F3B58
-
- thumb_func_start sub_80F3B94
-sub_80F3B94: @ 80F3B94
- push {r4,lr}
- ldr r0, _080F3BB8
- ldr r4, [r0]
- ldr r1, _080F3BBC
- adds r0, r4, r1
- ldr r2, [r0]
- cmp r2, 0
- beq _080F3BC4
- adds r0, r2, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080F3BC0
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080F3BCA
- .align 2, 0
-_080F3BB8: .4byte gUnknown_083DFEC4
-_080F3BBC: .4byte 0x00009348
-_080F3BC0: .4byte 0x0000bc92
-_080F3BC4:
- ldr r1, _080F3BD0
- adds r0, r4, r1
- strb r2, [r0]
-_080F3BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3BD0: .4byte 0x0000bc92
- thumb_func_end sub_80F3B94
-
- thumb_func_start sub_80F3BD4
-sub_80F3BD4: @ 80F3BD4
- push {r4-r6,lr}
- ldr r0, _080F3C18
- ldr r1, [r0]
- ldr r0, _080F3C1C
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080F3C24
- ldr r0, _080F3C20
- adds r4, r1, r0
- ldr r0, [r4]
- adds r0, 0x3F
- ldrb r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- eors r0, r1
- ands r0, r1
- strb r0, [r5]
- adds r6, r0, 0
- cmp r6, 0
- bne _080F3C12
- ldr r0, [r4]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- bl DestroySprite
- str r6, [r4]
-_080F3C12:
- ldrb r0, [r5]
- b _080F3C26
- .align 2, 0
-_080F3C18: .4byte gUnknown_083DFEC4
-_080F3C1C: .4byte 0x0000bc92
-_080F3C20: .4byte 0x00009348
-_080F3C24:
- movs r0, 0
-_080F3C26:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F3BD4
-
- thumb_func_start sub_80F3C2C
-sub_80F3C2C: @ 80F3C2C
- push {r4,lr}
- ldr r0, _080F3C8C
- ldr r0, [r0]
- ldr r1, _080F3C90
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3C50
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F3C50:
- movs r4, 0
-_080F3C52:
- adds r0, r4, 0
- adds r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xB
- bls _080F3C52
- movs r4, 0
-_080F3C6A:
- adds r0, r4, 0
- adds r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F3C6A
- bl sub_80F2F48
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3C8C: .4byte gUnknown_083DFEC4
-_080F3C90: .4byte 0x00009348
- thumb_func_end sub_80F3C2C
-
- thumb_func_start sub_80F3C94
-sub_80F3C94: @ 80F3C94
- push {lr}
- sub sp, 0x10
- ldr r0, _080F3CDC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _080F3CE0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- mov r0, sp
- bl LoadSpriteSheet
- add r0, sp, 0x8
- bl LoadSpritePalette
- movs r1, 0
- ldr r0, _080F3CE4
- ldr r0, [r0]
- movs r3, 0x88
- lsls r3, 8
- adds r2, r0, r3
- movs r3, 0
-_080F3CC6:
- lsls r0, r1, 2
- adds r0, r2, r0
- str r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9
- bls _080F3CC6
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080F3CDC: .4byte gUnknown_083E4784
-_080F3CE0: .4byte gUnknown_083E478C
-_080F3CE4: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F3C94
-
- thumb_func_start sub_80F3CE8
-sub_80F3CE8: @ 80F3CE8
- push {lr}
- bl move_anim_execute
- movs r0, 0x17
- bl FreeSpriteTilesByTag
- movs r0, 0xF
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_80F3CE8
-
- thumb_func_start sub_80F3D00
-sub_80F3D00: @ 80F3D00
- push {r4,r5,lr}
- ldr r0, _080F3D34
- ldr r2, [r0]
- ldr r1, _080F3D38
- adds r0, r2, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- ldr r1, _080F3D3C
- adds r0, r1
- adds r0, r2, r0
- ldrb r1, [r0, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F3D94
- ldr r3, _080F3D40
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldr r3, _080F3D44
- adds r0, r2, r3
- adds r0, r1
- ldrb r5, [r0]
- movs r4, 0
- b _080F3D86
- .align 2, 0
-_080F3D34: .4byte gUnknown_083DFEC4
-_080F3D38: .4byte 0x000087dc
-_080F3D3C: .4byte 0x0000893c
-_080F3D40: .4byte 0x00008fe9
-_080F3D44: .4byte 0x00008931
-_080F3D48:
- ldr r0, _080F3D9C
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F3D8C
- ldr r0, _080F3DA0
- ldr r2, [r0]
- lsls r0, r4, 2
- movs r3, 0x88
- lsls r3, 8
- adds r2, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F3DA4
- adds r0, r1
- str r0, [r2]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080F3D86:
- adds r0, r5, 0x1
- cmp r4, r0
- blt _080F3D48
-_080F3D8C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80F3F20
-_080F3D94:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3D9C: .4byte gSpriteTemplate_83E4800
-_080F3DA0: .4byte gUnknown_083DFEC4
-_080F3DA4: .4byte gSprites
- thumb_func_end sub_80F3D00
-
- thumb_func_start move_anim_execute
-move_anim_execute: @ 80F3DA8
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _080F3DD8
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r6, r0, r1
-_080F3DB6:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3DD2
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3DB6
-_080F3DD2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3DD8: .4byte gUnknown_083DFEC4
- thumb_func_end move_anim_execute
-
- thumb_func_start sub_80F3DDC
-sub_80F3DDC: @ 80F3DDC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080F3DFE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80F3F20
-_080F3DFE:
- pop {r0}
- bx r0
- thumb_func_end sub_80F3DDC
-
- thumb_func_start sub_80F3E04
-sub_80F3E04: @ 80F3E04
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F3E1C
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r0, _080F3E20
- str r0, [r2, 0x1C]
-_080F3E1C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3E20: .4byte sub_80F3DDC
- thumb_func_end sub_80F3E04
-
- thumb_func_start sub_80F3E24
-sub_80F3E24: @ 80F3E24
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _080F3E64
- ldr r0, [r0]
- ldr r1, _080F3E68
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3E70
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- ldr r2, _080F3E6C
- movs r5, 0x2E
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- adds r0, r1
- strh r0, [r3, 0x20]
- ldr r0, [r4]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 2
- adds r2, 0x2
- adds r0, r2
- ldrh r0, [r0]
- adds r0, r1
- b _080F3E8E
- .align 2, 0
-_080F3E64: .4byte gUnknown_083DFEC4
-_080F3E68: .4byte 0x00008768
-_080F3E6C: .4byte gUnknown_083E4794
-_080F3E70:
- ldr r1, _080F3E98
- movs r5, 0x2E
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x28
- strh r0, [r3, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x68
-_080F3E8E:
- strh r0, [r3, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3E98: .4byte gUnknown_083E4794
- thumb_func_end sub_80F3E24
-
- thumb_func_start sub_80F3E9C
-sub_80F3E9C: @ 80F3E9C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080F3ECA
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080F3F14
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080F3ECA:
- adds r0, r4, 0
- bl sub_80F3E24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F3F14
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080F3F10
- cmp r1, 0x9
- bne _080F3F08
- bl sub_80F3FAC
- ldr r0, _080F3F04
- b _080F3F12
- .align 2, 0
-_080F3F04: .4byte sub_80F3E04
-_080F3F08:
- ldr r0, _080F3F0C
- b _080F3F12
- .align 2, 0
-_080F3F0C: .4byte sub_80F3DDC
-_080F3F10:
- ldr r0, _080F3F1C
-_080F3F12:
- str r0, [r4, 0x1C]
-_080F3F14:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3F1C: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F3E9C
-
- thumb_func_start sub_80F3F20
-sub_80F3F20: @ 80F3F20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r5, 0
- ldr r0, _080F3F6C
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r7, r0, r1
-_080F3F3C:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3F92
- strh r5, [r0, 0x2E]
- ldr r1, [r4]
- lsls r0, r5, 4
- adds r0, 0x1
- strh r0, [r1, 0x30]
- ldr r0, [r4]
- strh r6, [r0, 0x32]
- ldr r0, [r4]
- strh r5, [r0, 0x34]
- mov r3, r8
- cmp r3, 0
- beq _080F3F62
- cmp r6, 0x9
- beq _080F3F74
-_080F3F62:
- ldr r1, [r4]
- ldr r0, _080F3F70
- str r0, [r1, 0x1C]
- b _080F3F92
- .align 2, 0
-_080F3F6C: .4byte gUnknown_083DFEC4
-_080F3F70: .4byte sub_80F3E9C
-_080F3F74:
- ldr r0, [r4]
- bl sub_80F3E24
- bl sub_80F3FAC
- ldr r2, [r4]
- ldr r0, _080F3FA8
- str r0, [r2, 0x1C]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x5
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- strb r0, [r2]
-_080F3F92:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3F3C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3FA8: .4byte sub_80F3E04
- thumb_func_end sub_80F3F20
-
- thumb_func_start sub_80F3FAC
-sub_80F3FAC: @ 80F3FAC
- push {r4-r7,lr}
- movs r5, 0
- ldr r0, _080F3FEC
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r6, r0, r1
- movs r0, 0x5
- negs r0, r0
- adds r7, r0, 0
-_080F3FC0:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3FDA
- movs r1, 0
- bl SeekSpriteAnim
- ldr r1, [r4]
- adds r1, 0x3E
- ldrb r0, [r1]
- ands r0, r7
- strb r0, [r1]
-_080F3FDA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3FC0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3FEC: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F3FAC
-
- thumb_func_start sub_80F3FF0
-sub_80F3FF0: @ 80F3FF0
- push {lr}
- ldr r0, _080F4018
- ldr r0, [r0]
- ldr r1, _080F401C
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F4020
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F4012
-_080F4008:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- bne _080F4008
-_080F4012:
- pop {r0}
- bx r0
- .align 2, 0
-_080F4018: .4byte gUnknown_083DFEC4
-_080F401C: .4byte 0x00000306
-_080F4020: .4byte 0x00006dac
- thumb_func_end sub_80F3FF0
-
- thumb_func_start sub_80F4024
-sub_80F4024: @ 80F4024
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _080F4040
- ldr r4, [r0]
- ldr r1, _080F4044
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F4068
- cmp r0, 0x1
- bgt _080F4048
- cmp r0, 0
- beq _080F4052
- b _080F4106
- .align 2, 0
-_080F4040: .4byte gUnknown_083DFEC4
-_080F4044: .4byte 0x00000306
-_080F4048:
- cmp r0, 0x2
- beq _080F4084
- cmp r0, 0x3
- beq _080F40B8
- b _080F4106
-_080F4052:
- ldr r0, _080F4060
- ldr r2, _080F4064
- adds r1, r4, r2
- bl LZ77UnCompWram
- b _080F4118
- .align 2, 0
-_080F4060: .4byte gUnknown_083E329C
-_080F4064: .4byte 0x000131e4
-_080F4068:
- ldr r1, _080F407C
- adds r0, r4, r1
- str r0, [sp]
- ldr r0, _080F4080
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- b _080F4118
- .align 2, 0
-_080F407C: .4byte 0x000131e4
-_080F4080: .4byte 0x00181000
-_080F4084:
- ldr r0, _080F40B4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- add r0, sp, 0x8
- bl LoadSpritePalette
- movs r0, 0x10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC2
- lsls r1, 2
- adds r2, r4, r1
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- movs r0, 0x3
- negs r0, r0
- bics r0, r1
- str r0, [r2]
- b _080F4118
- .align 2, 0
-_080F40B4: .4byte gUnknown_083E4818
-_080F40B8:
- ldr r0, _080F40E4
- movs r1, 0xDA
- movs r2, 0xE
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F40F0
- ldr r0, _080F40E8
- adds r2, r4, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F40EC
- adds r0, r1
- str r0, [r2]
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _080F40F8
- .align 2, 0
-_080F40E4: .4byte gSpriteTemplate_83E4850
-_080F40E8: .4byte 0x00006d98
-_080F40EC: .4byte gSprites
-_080F40F0:
- ldr r2, _080F410C
- adds r1, r4, r2
- movs r0, 0
- str r0, [r1]
-_080F40F8:
- ldr r0, _080F4110
- ldr r1, [r0]
- ldr r0, _080F4114
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F4106:
- movs r0, 0
- b _080F4128
- .align 2, 0
-_080F410C: .4byte 0x00006d98
-_080F4110: .4byte gUnknown_083DFEC4
-_080F4114: .4byte 0x00000306
-_080F4118:
- ldr r0, _080F4130
- ldr r1, [r0]
- ldr r2, _080F4134
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F4128:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4130: .4byte gUnknown_083DFEC4
-_080F4134: .4byte 0x00000306
- thumb_func_end sub_80F4024
-
- thumb_func_start sub_80F4138
-sub_80F4138: @ 80F4138
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F4170
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bgt _080F4174
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F418E
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x1
- b _080F418C
- .align 2, 0
-_080F4170: .4byte gUnknown_083DFEC4
-_080F4174:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F418E
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- movs r0, 0
-_080F418C:
- strh r0, [r2, 0x2E]
-_080F418E:
- pop {r0}
- bx r0
- thumb_func_end sub_80F4138
-
- thumb_func_start sub_80F4194
-sub_80F4194: @ 80F4194
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- adds r2, r1, 0
- ldr r0, _080F42A4
- ldr r6, [r0]
- mov r0, sp
- ldr r1, _080F42A8
- adds r5, r1, 0
- strh r5, [r0]
- ldr r4, _080F42AC
- str r0, [r4]
- str r6, [r4, 0x4]
- ldr r3, _080F42B0
- str r3, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0x80
- lsls r0, 3
- adds r1, r6, r0
- mov r0, sp
- strh r5, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r3, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080F42B4
- adds r1, r6, 0
- bl sub_8004E3C
- movs r3, 0x88
- lsls r3, 2
- adds r1, r6, r3
- mov r0, sp
- movs r3, 0
- strh r3, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r2, _080F42B8
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC4
- lsls r0, 3
- adds r1, r6, r0
- mov r0, sp
- strh r3, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r1, 0x80
- lsls r1, 2
- adds r2, r6, r1
- ldr r0, [r2]
- ldr r1, _080F42BC
- ands r0, r1
- str r0, [r2]
- ldr r0, [r2, 0x4]
- ands r0, r1
- str r0, [r2, 0x4]
- ldr r0, [r2, 0x8]
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0xC]
- ands r0, r1
- str r0, [r2, 0xC]
- ldr r0, [r2, 0x10]
- ands r0, r1
- str r0, [r2, 0x10]
- ldr r0, [r2, 0x14]
- ands r0, r1
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- ands r0, r1
- str r0, [r2, 0x18]
- ldr r0, [r2, 0x1C]
- ands r0, r1
- str r0, [r2, 0x1C]
- movs r3, 0xC0
- lsls r3, 3
- adds r2, r6, r3
- ldr r0, [r2]
- ands r0, r1
- str r0, [r2]
- ldr r0, [r2, 0x4]
- ands r0, r1
- str r0, [r2, 0x4]
- ldr r0, [r2, 0x8]
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0xC]
- ands r0, r1
- str r0, [r2, 0xC]
- ldr r0, [r2, 0x10]
- ands r0, r1
- str r0, [r2, 0x10]
- ldr r0, [r2, 0x14]
- ands r0, r1
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- ands r0, r1
- str r0, [r2, 0x18]
- ldr r0, [r2, 0x1C]
- ands r0, r1
- str r0, [r2, 0x1C]
- movs r1, 0
- ldr r2, _080F42C0
-_080F4268:
- lsls r0, r1, 7
- adds r0, r6, r0
- str r0, [r4]
- lsls r0, r1, 8
- adds r0, r7, r0
- str r0, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- lsls r0, r1, 7
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3
- adds r0, r6, r0
- str r0, [r4]
- lsls r0, r1, 3
- adds r0, 0x4
- lsls r0, 5
- adds r0, r7, r0
- str r0, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080F4268
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F42A4: .4byte gUnknown_083DFEC8
-_080F42A8: .4byte 0x00001111
-_080F42AC: .4byte 0x040000d4
-_080F42B0: .4byte 0x81000140
-_080F42B4: .4byte gWindowConfig_81E70F0
-_080F42B8: .4byte 0x81000030
-_080F42BC: .4byte 0x0fffffff
-_080F42C0: .4byte 0x80000040
- thumb_func_end sub_80F4194
-
- thumb_func_start sub_80F42C4
-sub_80F42C4: @ 80F42C4
- push {r4-r7,lr}
- sub sp, 0x8
- adds r1, r0, 0
- ldr r0, _080F433C
- ldr r0, [r0]
- ldr r2, _080F4340
- adds r0, r2
- str r0, [sp]
- ldr r2, _080F4344
- str r2, [sp, 0x4]
- bl sub_80F4194
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _080F4348
- bl LoadSpritePalette
- movs r5, 0
- movs r4, 0
- ldr r6, _080F434C
-_080F42EE:
- lsls r1, r4, 21
- movs r7, 0xE2
- lsls r7, 15
- adds r1, r7
- asrs r1, 16
- ldr r0, _080F4350
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080F4360
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r6
- ldrh r2, [r3, 0x4]
- lsls r0, r2, 22
- lsrs r0, 22
- adds r0, r5, r0
- ldr r7, _080F4354
- adds r1, r7, 0
- ands r0, r1
- ldr r7, _080F4358
- adds r1, r7, 0
- ands r2, r1
- orrs r2, r0
- strh r2, [r3, 0x4]
- ldr r0, _080F433C
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _080F435C
- adds r0, r2
- adds r0, r1
- str r3, [r0]
- b _080F4370
- .align 2, 0
-_080F433C: .4byte gUnknown_083DFEC4
-_080F4340: .4byte 0x0000d1e4
-_080F4344: .4byte 0x001a0500
-_080F4348: .4byte gUnknown_083E4868
-_080F434C: .4byte gSprites
-_080F4350: .4byte gSpriteTemplate_83E4878
-_080F4354: .4byte 0x000003ff
-_080F4358: .4byte 0xfffffc00
-_080F435C: .4byte 0x0000ced4
-_080F4360:
- ldr r0, _080F438C
- ldr r1, [r0]
- lsls r0, r4, 2
- ldr r7, _080F4390
- adds r1, r7
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080F4370:
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F42EE
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F438C: .4byte gUnknown_083DFEC4
-_080F4390: .4byte 0x0000ced4
- thumb_func_end sub_80F42C4
-
- thumb_func_start sub_80F4394
-sub_80F4394: @ 80F4394
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080F43CC
- ldr r0, [r0]
- ldr r1, _080F43D0
- adds r5, r0, r1
-_080F43A0:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F43AE
- bl DestroySprite
-_080F43AE:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F43A0
- movs r0, 0x1A
- bl FreeSpriteTilesByTag
- movs r0, 0x12
- bl FreeSpritePaletteByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F43CC: .4byte gUnknown_083DFEC4
-_080F43D0: .4byte 0x0000ced4
- thumb_func_end sub_80F4394
-
- thumb_func_start sub_80F43D4
-sub_80F43D4: @ 80F43D4
- push {r4,lr}
- adds r1, r0, 0
- ldr r0, _080F4410
- ldr r0, [r0]
- ldr r2, _080F4414
- adds r4, r0, r2
- adds r0, r4, 0
- bl sub_80F4194
- movs r0, 0x1A
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080F4418
- cmp r1, r0
- beq _080F4408
- lsls r0, r1, 5
- ldr r1, _080F441C
- adds r0, r1
- ldr r1, _080F4420
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080F4424
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_080F4408:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4410: .4byte gUnknown_083DFEC4
-_080F4414: .4byte 0x0000d1e4
-_080F4418: .4byte 0x0000ffff
-_080F441C: .4byte 0x06010000
-_080F4420: .4byte 0x040000d4
-_080F4424: .4byte 0x84000140
- thumb_func_end sub_80F43D4
-
- thumb_func_start sub_80F4428
-sub_80F4428: @ 80F4428
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- bl sub_80F6514
- pop {r1}
- bx r1
- thumb_func_end sub_80F4428
-
- thumb_func_start sub_80F443C
-sub_80F443C: @ 80F443C
- push {r4,lr}
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r1, _080F4458
- bl StringCopy
- adds r1, r4, 0
- movs r2, 0x38
- movs r3, 0x1
- bl sub_8072C14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4458: .4byte gOtherText_Number
- thumb_func_end sub_80F443C
-
- thumb_func_start sub_80F445C
-sub_80F445C: @ 80F445C
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x17
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r3, 0xFC
- strb r3, [r4]
- movs r2, 0x11
- strb r2, [r4, 0x1]
- movs r1, 0x1
- strb r1, [r4, 0x2]
- adds r4, 0x3
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- strb r3, [r4]
- strb r2, [r4, 0x1]
- strb r1, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _080F44A8
- ldr r0, [r0]
- ldr r1, _080F44AC
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r1, 0x1
- adds r0, r4, 0
- movs r2, 0x32
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F44A8: .4byte gUnknown_083DFEC4
-_080F44AC: .4byte 0x00008774
- thumb_func_end sub_80F445C
-
- thumb_func_start sub_80F44B0
-sub_80F44B0: @ 80F44B0
- push {r4,lr}
- adds r4, r2, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r0, 0xE
- bne _080F44F4
- cmp r4, 0x2
- beq _080F44C8
- cmp r4, 0x7
- bne _080F44E0
-_080F44C8:
- movs r0, 0x64
- muls r0, r2
- ldr r1, _080F44DC
- adds r0, r1
- adds r1, r4, 0
- adds r2, r3, 0
- bl GetMonData
- b _080F453C
- .align 2, 0
-_080F44DC: .4byte gPlayerParty
-_080F44E0:
- movs r0, 0x64
- muls r0, r2
- ldr r1, _080F44F0
- adds r0, r1
- adds r1, r4, 0
- bl GetMonData
- b _080F453C
- .align 2, 0
-_080F44F0: .4byte gPlayerParty
-_080F44F4:
- cmp r4, 0x2
- beq _080F44FC
- cmp r4, 0x7
- bne _080F4520
-_080F44FC:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F451C
- adds r1, r2
- adds r0, r1
- adds r1, r4, 0
- adds r2, r3, 0
- bl GetBoxMonData
- b _080F453C
- .align 2, 0
-_080F451C: .4byte gUnknown_020300A4
-_080F4520:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F4544
- adds r1, r2
- adds r0, r1
- adds r1, r4, 0
- bl GetBoxMonData
-_080F453C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4544: .4byte gUnknown_020300A4
- thumb_func_end sub_80F44B0
-
- thumb_func_start sub_80F4548
-sub_80F4548: @ 80F4548
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- mov r0, sp
- strb r2, [r0]
- cmp r3, 0xE
- bne _080F4574
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F4570
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _080F4592
- .align 2, 0
-_080F4570: .4byte gPlayerParty
-_080F4574:
- lsls r1, r3, 2
- adds r1, r3
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 4
- ldr r2, _080F459C
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_080F4592:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F459C: .4byte gUnknown_020300A4
- thumb_func_end sub_80F4548
-
- thumb_func_start sub_80F45A0
-sub_80F45A0: @ 80F45A0
- push {r4-r7,lr}
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080F45F0
- ldr r5, [r1]
- lsls r1, r0, 16
- asrs r0, r1, 14
- adds r4, r5, r0
- ldr r2, _080F45F4
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r7, r0, 31
- cmp r7, 0
- beq _080F4644
- lsls r0, r6, 6
- ldr r2, _080F45F8
- adds r0, r2
- adds r0, r5, r0
- lsrs r1, 16
- movs r2, 0
- bl sub_80F4428
- ldr r1, _080F45FC
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0xE
- bne _080F4608
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r2, _080F4600
- adds r0, r2
- adds r0, r5, r0
- ldr r1, _080F4604
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
- b _080F4624
- .align 2, 0
-_080F45F0: .4byte gUnknown_083DFEC4
-_080F45F4: .4byte 0x0000893f
-_080F45F8: .4byte 0x00008829
-_080F45FC: .4byte 0x0000893d
-_080F4600: .4byte 0x000088e9
-_080F4604: .4byte gOtherText_InParty
-_080F4608:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F4634
- adds r0, r1
- adds r0, r5, r0
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _080F4638
- adds r1, r2
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
-_080F4624:
- ldr r0, _080F463C
- ldr r0, [r0]
- ldr r2, _080F4640
- adds r0, r2
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
- b _080F4676
- .align 2, 0
-_080F4634: .4byte 0x000088e9
-_080F4638: .4byte gUnknown_020383E4
-_080F463C: .4byte gUnknown_083DFEC4
-_080F4640: .4byte 0x00008937
-_080F4644:
- lsls r0, r6, 6
- ldr r1, _080F467C
- adds r0, r1
- adds r0, r5, r0
- ldr r4, _080F4680
- adds r1, r4, 0
- movs r2, 0x68
- movs r3, 0
- bl sub_8072C74
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r2, _080F4684
- adds r0, r2
- adds r0, r5, r0
- adds r1, r4, 0
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
- ldr r1, _080F4688
- adds r0, r5, r1
- adds r0, r6
- strb r7, [r0]
-_080F4676:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F467C: .4byte 0x00008829
-_080F4680: .4byte gEmptyString_81E72B0
-_080F4684: .4byte 0x000088e9
-_080F4688: .4byte 0x00008937
- thumb_func_end sub_80F45A0
-
- thumb_func_start sub_80F468C
-sub_80F468C: @ 80F468C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, _080F475C
- ldr r7, [r1]
- lsls r0, 16
- asrs r0, 14
- adds r1, r7, r0
- ldr r2, _080F4760
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _080F46B2
- b _080F47C4
-_080F46B2:
- ldr r3, _080F4764
- adds r0, r1, r3
- ldrb r5, [r0]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r6, r0, 27
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x16
- movs r3, 0
- bl sub_80F44B0
- mov r3, r9
- lsls r3, 2
- mov r8, r3
- mov r4, r8
- add r4, r9
- ldr r2, _080F4768
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x2F
- movs r3, 0
- bl sub_80F44B0
- ldr r3, _080F476C
- adds r1, r7, r3
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x21
- movs r3, 0
- bl sub_80F44B0
- ldr r2, _080F4770
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x18
- movs r3, 0
- bl sub_80F44B0
- ldr r3, _080F4774
- adds r1, r7, r3
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_80F44B0
- ldr r2, _080F4778
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- ldr r3, _080F477C
- adds r0, r7, r3
- mov r7, r9
- adds r4, r0, r7
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x30
- movs r3, 0
- bl sub_80F44B0
- cmp r0, 0xFF
- beq _080F4780
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x30
- movs r3, 0
- bl sub_80F44B0
- movs r1, 0x1D
- bl __udivsi3
- b _080F4782
- .align 2, 0
-_080F475C: .4byte gUnknown_083DFEC4
-_080F4760: .4byte 0x0000893f
-_080F4764: .4byte 0x0000893d
-_080F4768: .4byte 0x00008ff0
-_080F476C: .4byte 0x00008ff1
-_080F4770: .4byte 0x00008ff2
-_080F4774: .4byte 0x00008ff3
-_080F4778: .4byte 0x00008ff4
-_080F477C: .4byte 0x00008931
-_080F4780:
- movs r0, 0x9
-_080F4782:
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_80F44B0
- ldr r1, _080F47B4
- ldr r1, [r1]
- ldr r3, _080F47B8
- adds r2, r1, r3
- add r2, r9
- strb r0, [r2]
- mov r2, r8
- add r2, r9
- ldr r7, _080F47BC
- adds r0, r2, r7
- adds r0, r1, r0
- lsls r2, 2
- ldr r3, _080F47C0
- adds r2, r3
- adds r1, r2
- bl sub_80F55AC
- b _080F480A
- .align 2, 0
-_080F47B4: .4byte gUnknown_083DFEC4
-_080F47B8: .4byte 0x00008934
-_080F47BC: .4byte 0x00008ff0
-_080F47C0: .4byte 0x00009004
-_080F47C4:
- movs r3, 0
- mov r0, r9
- lsls r0, 2
- mov r8, r0
- adds r4, r7, 0
- mov r2, r8
- add r2, r9
- ldr r1, _080F4818
- adds r6, r4, r1
- lsls r5, r2, 2
- mov r9, r3
- ldr r7, _080F481C
- mov r8, r7
- movs r0, 0x9B
- mov r12, r0
-_080F47E2:
- adds r0, r3, r2
- adds r0, r6, r0
- mov r1, r9
- strb r1, [r0]
- lsls r0, r3, 2
- adds r0, r5
- adds r0, r4, r0
- mov r7, r8
- adds r1, r0, r7
- mov r7, r12
- strh r7, [r1]
- ldr r1, _080F4820
- adds r0, r1
- movs r1, 0x5B
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080F47E2
-_080F480A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4818: .4byte 0x00008ff0
-_080F481C: .4byte 0x00009004
-_080F4820: .4byte 0x00009006
- thumb_func_end sub_80F468C
-
- thumb_func_start sub_80F4824
-sub_80F4824: @ 80F4824
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, _080F48E0
- ldr r7, [r1]
- lsls r0, 16
- asrs r0, 14
- adds r1, r7, r0
- ldr r2, _080F48E4
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080F48D0
- ldr r6, _080F48E8
- adds r0, r1, r6
- ldrb r6, [r0]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r4, [r0]
- lsls r4, 27
- lsrs r4, 27
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x41
- movs r3, 0
- bl sub_80F44B0
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_80F44B0
- mov r8, r0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_80F44B0
- adds r4, r0, 0
- lsls r0, r5, 3
- ldr r1, _080F48EC
- adds r0, r1
- ldr r2, _080F48F0
- lsls r1, r5, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r6, _080F48F4
- adds r3, r7, r6
- mov r6, r9
- lsls r2, r6, 13
- ldr r6, _080F48F8
- adds r2, r6
- adds r2, r7, r2
- str r2, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0x1
- bl sub_800D334
- adds r0, r5, 0
- mov r1, r8
- adds r2, r4, 0
- bl species_and_otid_get_pal
- mov r2, r9
- lsls r1, r2, 7
- adds r1, r7, r1
- bl LZ77UnCompWram
- mov r6, r9
- lsls r1, r6, 1
- ldr r2, _080F48FC
- adds r0, r7, r2
- adds r0, r1
- strh r5, [r0]
-_080F48D0:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F48E0: .4byte gUnknown_083DFEC4
-_080F48E4: .4byte 0x0000893f
-_080F48E8: .4byte 0x0000893d
-_080F48EC: .4byte gMonFrontPicTable
-_080F48F0: .4byte gMonFrontPicCoords
-_080F48F4: .4byte 0x000131e4
-_080F48F8: .4byte 0x0000d1e4
-_080F48FC: .4byte 0x0000d1d6
- thumb_func_end sub_80F4824
-
- thumb_func_start sub_80F4900
-sub_80F4900: @ 80F4900
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F45A0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F468C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F4824
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F4900
-
- thumb_func_start sub_80F492C
-sub_80F492C: @ 80F492C
- ldr r0, _080F493C
- ldr r0, [r0]
- ldr r1, _080F4940
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F493C: .4byte gUnknown_083DFEC4
-_080F4940: .4byte 0x00008fe4
- thumb_func_end sub_80F492C
-
- thumb_func_start sub_80F4944
-sub_80F4944: @ 80F4944
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- movs r2, 0
- ldr r1, _080F4978
- ldr r5, [r1]
- ldr r3, _080F497C
- adds r0, r5, r3
- ldrh r4, [r0]
- lsrs r3, r4, 1
- mov r8, r1
- cmp r4, r3
- beq _080F499C
- adds r6, r5, 0
- mov r0, r12
- ldrb r5, [r0]
- ldr r7, _080F4980
-_080F4968:
- lsls r0, r3, 2
- adds r0, r6, r0
- adds r0, r7
- ldrb r0, [r0]
- cmp r5, r0
- bls _080F4984
- adds r4, r3, 0
- b _080F498A
- .align 2, 0
-_080F4978: .4byte gUnknown_083DFEC4
-_080F497C: .4byte 0x00008fe4
-_080F4980: .4byte 0x0000893c
-_080F4984:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F498A:
- subs r0, r4, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, r3
- bne _080F4968
-_080F499C:
- mov r1, r8
- ldr r2, [r1]
- ldr r1, _080F49EC
- adds r0, r2, r1
- ldrh r4, [r0]
- lsls r6, r3, 2
- cmp r4, r3
- bls _080F49C6
- ldr r0, _080F49F0
- adds r5, r2, r0
-_080F49B0:
- lsls r2, r4, 2
- adds r2, r5, r2
- subs r1, r4, 0x1
- lsls r0, r1, 2
- adds r0, r5, r0
- ldr r0, [r0]
- str r0, [r2]
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r4, r3
- bhi _080F49B0
-_080F49C6:
- mov r1, r8
- ldr r2, [r1]
- ldr r3, _080F49F0
- adds r0, r2, r3
- adds r0, r6
- mov r3, r12
- ldr r1, [r3]
- str r1, [r0]
- ldr r0, _080F49EC
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F49EC: .4byte 0x00008fe4
-_080F49F0: .4byte 0x0000893c
- thumb_func_end sub_80F4944
-
- thumb_func_start sub_80F49F4
-sub_80F49F4: @ 80F49F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, _080F4A64
- ldr r4, [r3]
- ldr r7, _080F4A68
- adds r2, r4, r7
- ldrh r1, [r2]
- ldr r0, _080F4A6C
- mov r12, r0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strh r0, [r2]
- movs r5, 0x1
- ldr r1, _080F4A70
- adds r0, r4, r1
- ldrh r3, [r0]
- cmp r5, r3
- bcs _080F4A9E
- adds r6, r4, 0
- ldr r1, _080F4A74
- mov r8, r1
- ldr r3, _080F4A78
- mov r10, r3
- mov r9, r0
-_080F4A2C:
- lsls r0, r5, 2
- adds r3, r6, r0
- mov r0, r8
- adds r2, r3, r0
- subs r0, r5, 0x1
- lsls r0, 2
- adds r4, r6, r0
- mov r0, r8
- adds r1, r4, r0
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080F4A7C
- adds r0, r4, r7
- ldrh r0, [r0]
- lsls r0, 18
- lsrs r0, 23
- adds r3, r7
- ldr r1, _080F4A78
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3]
- adds r4, r5, 0x1
- b _080F4A92
- .align 2, 0
-_080F4A64: .4byte gUnknown_083DFEC4
-_080F4A68: .4byte 0x0000893e
-_080F4A6C: .4byte 0xffffc01f
-_080F4A70: .4byte 0x00008fe4
-_080F4A74: .4byte 0x0000893c
-_080F4A78: .4byte 0x000001ff
-_080F4A7C:
- adds r4, r5, 0x1
- adds r3, r7
- adds r1, r4, 0
- mov r0, r10
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3]
-_080F4A92:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- mov r1, r9
- ldrh r1, [r1]
- cmp r5, r1
- bcc _080F4A2C
-_080F4A9E:
- ldr r3, _080F4AC4
- ldr r2, [r3]
- ldr r1, _080F4AC8
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- ldr r3, _080F4ACC
- adds r0, r2, r3
- strh r1, [r0]
- subs r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _080F4AD0
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080F4AD4
- subs r1, r0, 0x1
- b _080F4AD6
- .align 2, 0
-_080F4AC4: .4byte gUnknown_083DFEC4
-_080F4AC8: .4byte 0x0000876c
-_080F4ACC: .4byte 0x00008770
-_080F4AD0: .4byte 0x00008fe4
-_080F4AD4:
- movs r1, 0x7
-_080F4AD6:
- ldr r3, _080F4B10
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _080F4B14
- ldr r2, [r0]
- ldr r1, _080F4B18
- adds r0, r2, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, 0x2
- adds r1, r2, r3
- strh r0, [r1]
- movs r1, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080F4AFA
- movs r1, 0x1
-_080F4AFA:
- ldr r3, _080F4B1C
- adds r0, r2, r3
- strb r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4B10: .4byte 0x00008772
-_080F4B14: .4byte gUnknown_083DFEC4
-_080F4B18: .4byte 0x00008fe4
-_080F4B1C: .4byte 0x000087c9
- thumb_func_end sub_80F49F4
-
- thumb_func_start sub_80F4B20
-sub_80F4B20: @ 80F4B20
- push {r4-r6,lr}
- ldr r0, _080F4B5C
- ldr r4, [r0]
- ldr r0, _080F4B60
- adds r5, r4, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0
- bl sub_80F4900
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _080F4B64
- adds r2, r4, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F4B6C
- ldr r2, _080F4B68
- adds r0, r4, r2
- movs r1, 0
- strb r1, [r0]
- adds r2, 0x1
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x1
- adds r0, r4, r2
- strb r1, [r0]
- b _080F4BBE
- .align 2, 0
-_080F4B5C: .4byte gUnknown_083DFEC4
-_080F4B60: .4byte 0x000087dc
-_080F4B64: .4byte 0x000087da
-_080F4B68: .4byte 0x00008fe9
-_080F4B6C:
- ldr r0, _080F4BC4
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080F4BC8
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080F4BCC
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldrh r3, [r5]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- ldrh r6, [r2]
- movs r4, 0
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080F4B9A
- movs r5, 0
-_080F4B9A:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r0, 0
- bge _080F4BAA
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080F4BAA:
- lsls r0, r5, 16
- asrs r0, 16
- movs r1, 0x1
- bl sub_80F4900
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x2
- bl sub_80F4900
-_080F4BBE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4BC4: .4byte 0x00008fe9
-_080F4BC8: .4byte 0x00008fea
-_080F4BCC: .4byte 0x00008feb
- thumb_func_end sub_80F4B20
-
- thumb_func_start sub_80F4BD0
-sub_80F4BD0: @ 80F4BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r7, 0
- ldr r0, _080F4CC4
- ldr r2, [r0]
- ldr r3, _080F4CC8
- adds r1, r2, r3
- mov r9, r0
- ldrb r1, [r1]
- cmp r7, r1
- bcs _080F4C66
- mov r10, r9
- adds r4, r3, 0
- adds r4, r2
- mov r8, r4
-_080F4BF6:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F4CCC
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080F4C58
- mov r0, r10
- ldr r3, [r0]
- lsls r0, r7, 2
- adds r3, r0
- ldr r2, _080F4CD0
- adds r1, r3, r2
- movs r0, 0xE
- strb r0, [r1]
- ldr r4, _080F4CD4
- adds r5, r3, r4
- movs r0, 0x1F
- adds r2, r6, 0
- ands r2, r0
- ldrb r0, [r5]
- movs r4, 0x20
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5]
- adds r4, r7, 0x1
- ldr r7, _080F4CD8
- adds r0, r7, 0
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 5
- ldrh r0, [r5]
- ldr r7, _080F4CDC
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r5]
- ldr r0, _080F4CE0
- adds r3, r0
- ldrb r0, [r3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3]
- lsls r4, 16
- lsrs r7, r4, 16
-_080F4C58:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r8
- ldrb r1, [r1]
- cmp r6, r1
- bcc _080F4BF6
-_080F4C66:
- mov r2, r9
- ldr r4, [r2]
- lsls r1, r7, 2
- adds r1, r4, r1
- ldr r3, _080F4CD0
- adds r0, r1, r3
- movs r5, 0
- strb r5, [r0]
- ldr r0, _080F4CD4
- adds r2, r1, r0
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- strb r0, [r2]
- ldrh r3, [r2]
- ldr r0, _080F4CDC
- ands r0, r3
- strh r0, [r2]
- ldr r2, _080F4CE0
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, _080F4CE4
- adds r0, r4, r3
- strh r5, [r0]
- adds r1, r7, 0x1
- ldr r7, _080F4CE8
- adds r0, r4, r7
- strh r1, [r0]
- bl sub_80F4B20
- ldr r0, _080F4CEC
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4CC4: .4byte gUnknown_083DFEC4
-_080F4CC8: .4byte 0x00008828
-_080F4CCC: .4byte gPlayerParty
-_080F4CD0: .4byte 0x0000893d
-_080F4CD4: .4byte 0x0000893e
-_080F4CD8: .4byte 0x000001ff
-_080F4CDC: .4byte 0xffffc01f
-_080F4CE0: .4byte 0x0000893f
-_080F4CE4: .4byte 0x000087dc
-_080F4CE8: .4byte 0x000087da
-_080F4CEC: .4byte 0x000087cb
- thumb_func_end sub_80F4BD0
-
- thumb_func_start sub_80F4CF0
-sub_80F4CF0: @ 80F4CF0
- push {r4,lr}
- ldr r0, _080F4D1C
- ldr r4, [r0]
- ldr r1, _080F4D20
- adds r0, r4, r1
- ldrh r1, [r0]
- ldr r2, _080F4D24
- adds r0, r4, r2
- strh r1, [r0]
- bl sub_80F4B20
- ldr r1, _080F4D28
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080F4D30
- ldr r0, _080F4D2C
- adds r1, r4, r0
- movs r0, 0
- b _080F4D36
- .align 2, 0
-_080F4D1C: .4byte gUnknown_083DFEC4
-_080F4D20: .4byte 0x0000876e
-_080F4D24: .4byte 0x000087dc
-_080F4D28: .4byte 0x00008774
-_080F4D2C: .4byte 0x000087cb
-_080F4D30:
- ldr r2, _080F4D40
- adds r1, r4, r2
- movs r0, 0x1
-_080F4D36:
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4D40: .4byte 0x000087cb
- thumb_func_end sub_80F4CF0
-
- thumb_func_start sub_80F4D44
-sub_80F4D44: @ 80F4D44
- push {r4,lr}
- ldr r0, _080F4D78
- ldr r4, [r0]
- ldr r1, _080F4D7C
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080F4D80
- adds r0, r4, r2
- strb r1, [r0]
- bl sub_80F492C
- ldr r0, _080F4D84
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F4D70
-_080F4D66:
- bl sub_80F4D88
- lsls r0, 24
- cmp r0, 0
- bne _080F4D66
-_080F4D70:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4D78: .4byte gUnknown_083DFEC4
-_080F4D7C: .4byte 0x00008fe6
-_080F4D80: .4byte 0x00008fe7
-_080F4D84: .4byte 0x00006dac
- thumb_func_end sub_80F4D44
-
- thumb_func_start sub_80F4D88
-sub_80F4D88: @ 80F4D88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r6, _080F4E98
- ldr r4, [r6]
- ldr r1, _080F4E9C
- adds r0, r4, r1
- ldrb r3, [r0]
- cmp r3, 0xE
- bne _080F4DA4
- b _080F4EB8
-_080F4DA4:
- cmp r3, 0xF
- bne _080F4DAA
- b _080F4F60
-_080F4DAA:
- movs r1, 0x80
- lsls r1, 23
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- movs r7, 0
- mov r10, r6
- ldr r2, _080F4E9C
- adds r6, r4, r2
- ldr r3, _080F4EA0
- adds r5, r4, r3
- ldr r0, _080F4EA4
- adds r0, r4
- mov r9, r0
- ldr r1, _080F4EA8
- mov r8, r1
-_080F4DCA:
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080F4E60
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- bne _080F4E60
- ldrb r1, [r6]
- lsls r1, 8
- ldr r2, _080F4EAC
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldrb r2, [r5]
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 16
- ldr r1, _080F4EB0
- ands r0, r1
- orrs r0, r2
- str r0, [sp]
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- mov r2, r9
- ldrb r1, [r2]
- bl GetBoxMonData
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F4EB4
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl sub_80F4944
-_080F4E60:
- mov r3, r10
- ldr r1, [r3]
- ldr r0, _080F4EA0
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r2]
- movs r3, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bne _080F4E8C
- strb r4, [r2]
- ldr r2, _080F4E9C
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ands r0, r3
- cmp r0, 0xE
- beq _080F4F64
-_080F4E8C:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xE
- bls _080F4DCA
- b _080F4F64
- .align 2, 0
-_080F4E98: .4byte gUnknown_083DFEC4
-_080F4E9C: .4byte 0x00008fe6
-_080F4EA0: .4byte 0x00008fe7
-_080F4EA4: .4byte 0x000087d8
-_080F4EA8: .4byte gUnknown_020300A4
-_080F4EAC: .4byte 0xffff00ff
-_080F4EB0: .4byte 0xffe0ffff
-_080F4EB4: .4byte 0xffffff00
-_080F4EB8:
- mov r2, sp
- ldrb r0, [r2, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x3]
- strb r3, [r2, 0x1]
- movs r7, 0
- ldr r3, _080F4F44
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r7, r0
- bcs _080F4F24
- mov r5, sp
- mov r8, r6
- adds r6, r4, r3
-_080F4ED6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080F4F48
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080F4F18
- movs r0, 0x1F
- adds r2, r7, 0
- ands r2, r0
- ldrb r0, [r5, 0x2]
- movs r3, 0x20
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x2]
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _080F4F4C
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- mov r0, sp
- bl sub_80F4944
-_080F4F18:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldrb r3, [r6]
- cmp r7, r3
- bcc _080F4ED6
-_080F4F24:
- bl sub_80F49F4
- ldr r0, _080F4F50
- ldr r1, [r0]
- ldr r2, _080F4F54
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r3, _080F4F58
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _080F4F5C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F4F64
- .align 2, 0
-_080F4F44: .4byte 0x00008828
-_080F4F48: .4byte gPlayerParty
-_080F4F4C: .4byte 0x000087d8
-_080F4F50: .4byte gUnknown_083DFEC4
-_080F4F54: .4byte 0x00008fe4
-_080F4F58: .4byte 0x000087da
-_080F4F5C: .4byte 0x00008fe6
-_080F4F60:
- movs r0, 0
- b _080F4F66
-_080F4F64:
- movs r0, 0x1
-_080F4F66:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F4D88
-
- thumb_func_start sub_80F4F78
-sub_80F4F78: @ 80F4F78
- push {lr}
- ldr r0, _080F4FA4
- ldr r1, [r0]
- ldr r2, _080F4FA8
- adds r0, r1, r2
- ldr r3, _080F4FAC
- adds r2, r1, r3
- movs r3, 0
- ldrsb r3, [r2, r3]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 2
- ldr r3, _080F4FB0
- adds r2, r3
- adds r1, r2
- bl sub_80F53EC
- bl sub_80F5504
- pop {r0}
- bx r0
- .align 2, 0
-_080F4FA4: .4byte gUnknown_083DFEC4
-_080F4FA8: .4byte 0x00009040
-_080F4FAC: .4byte 0x00008fe9
-_080F4FB0: .4byte 0x00009004
- thumb_func_end sub_80F4F78
-
- thumb_func_start sub_80F4FB4
-sub_80F4FB4: @ 80F4FB4
- push {r4,lr}
- bl sub_80F5504
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F170C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0
- bne _080F4FD2
- cmp r0, 0
- beq _080F4FD4
-_080F4FD2:
- movs r1, 0x1
-_080F4FD4:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F4FB4
-
- thumb_func_start sub_80F4FDC
-sub_80F4FDC: @ 80F4FDC
- push {lr}
- ldr r0, _080F5020
- ldr r2, [r0]
- ldr r1, _080F5024
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F4FFE
- ldr r3, _080F5028
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r3, _080F502C
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- beq _080F501A
-_080F4FFE:
- ldr r1, _080F5030
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r3, _080F5034
- adds r0, r3
- adds r0, r2, r0
- adds r3, 0x3C
- adds r1, r2, r3
- bl sub_80F53EC
-_080F501A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F5020: .4byte gUnknown_083DFEC4
-_080F5024: .4byte 0x000076aa
-_080F5028: .4byte 0x000087dc
-_080F502C: .4byte 0x00008828
-_080F5030: .4byte 0x00008fe9
-_080F5034: .4byte 0x00009004
- thumb_func_end sub_80F4FDC
-
- thumb_func_start sub_80F5038
-sub_80F5038: @ 80F5038
- push {r4,lr}
- bl sub_80F5504
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F173C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0
- bne _080F5056
- cmp r0, 0
- beq _080F5058
-_080F5056:
- movs r1, 0x1
-_080F5058:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5038
-
- thumb_func_start sub_80F5060
-sub_80F5060: @ 80F5060
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- beq _080F507C
- ldr r0, _080F5074
- ldr r0, [r0]
- ldr r1, _080F5078
- adds r0, r1
- b _080F5084
- .align 2, 0
-_080F5074: .4byte gUnknown_083DFEC4
-_080F5078: .4byte 0x00008feb
-_080F507C:
- ldr r0, _080F50FC
- ldr r0, [r0]
- ldr r2, _080F5100
- adds r0, r2
-_080F5084:
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F50FC
- ldr r4, [r0]
- ldr r3, _080F5104
- adds r5, r4, r3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r2, _080F5108
- adds r0, r2
- adds r0, r4, r0
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r1, r2
- adds r1, r4, r1
- bl sub_80F53EC
- ldr r0, _080F510C
- adds r3, r4, r0
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 2
- adds r0, r4, r0
- ldr r2, _080F5110
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 31
- mov r12, r0
- cmp r7, 0
- beq _080F5158
- ldr r7, _080F5100
- adds r1, r4, r7
- ldrb r0, [r1]
- adds r7, 0x1
- adds r2, r4, r7
- strb r0, [r2]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r6, [r5]
- ldrb r1, [r2]
- ldr r2, _080F5114
- adds r0, r4, r2
- strb r1, [r0]
- adds r5, r4, 0
- ldrh r1, [r3]
- movs r7, 0
- ldrsh r0, [r3, r7]
- cmp r0, 0
- beq _080F5118
- subs r2, r1, 0x1
- b _080F5120
- .align 2, 0
-_080F50FC: .4byte gUnknown_083DFEC4
-_080F5100: .4byte 0x00008fea
-_080F5104: .4byte 0x00008fe9
-_080F5108: .4byte 0x00009004
-_080F510C: .4byte 0x000087dc
-_080F5110: .4byte 0x0000893f
-_080F5114: .4byte 0x00008fec
-_080F5118:
- ldr r1, _080F513C
- adds r0, r4, r1
- ldrh r0, [r0]
- subs r2, r0, 0x1
-_080F5120:
- ldr r1, _080F5140
- adds r0, r5, r1
- strh r2, [r0]
- ldr r2, _080F5144
- ldr r3, [r2]
- adds r1, r3, r1
- ldrh r4, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _080F5148
- subs r1, r4, 0x1
- b _080F51CE
- .align 2, 0
-_080F513C: .4byte 0x000087da
-_080F5140: .4byte 0x000087dc
-_080F5144: .4byte gUnknown_083DFEC4
-_080F5148:
- ldr r7, _080F5154
- adds r0, r3, r7
- ldrh r0, [r0]
- subs r1, r0, 0x1
- b _080F51CE
- .align 2, 0
-_080F5154: .4byte 0x000087da
-_080F5158:
- ldr r7, _080F518C
- adds r1, r4, r7
- ldrb r0, [r1]
- subs r7, 0x1
- adds r2, r4, r7
- strb r0, [r2]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r6, [r5]
- ldrb r1, [r2]
- ldr r2, _080F5190
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, r4, 0
- movs r4, 0
- ldrsh r1, [r3, r4]
- ldr r5, _080F5194
- adds r0, r2, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- subs r0, 0x1
- cmp r1, r0
- bge _080F5198
- ldrh r0, [r3]
- adds r3, r0, 0x1
- b _080F519A
- .align 2, 0
-_080F518C: .4byte 0x00008feb
-_080F5190: .4byte 0x00008fec
-_080F5194: .4byte 0x000087da
-_080F5198:
- movs r3, 0
-_080F519A:
- ldr r1, _080F51C0
- adds r0, r2, r1
- strh r3, [r0]
- ldr r2, _080F51C4
- ldr r3, [r2]
- adds r4, r3, r1
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r5, _080F51C8
- adds r0, r3, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- subs r0, 0x1
- cmp r1, r0
- bge _080F51CC
- ldrh r0, [r4]
- adds r1, r0, 0x1
- b _080F51CE
- .align 2, 0
-_080F51C0: .4byte 0x000087dc
-_080F51C4: .4byte gUnknown_083DFEC4
-_080F51C8: .4byte 0x000087da
-_080F51CC:
- movs r1, 0
-_080F51CE:
- ldr r4, _080F51FC
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, [r2]
- ldr r5, _080F5200
- adds r0, r1, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r0, 2
- adds r0, r1, r0
- ldr r3, _080F5204
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 31
- mov r4, r12
- cmp r4, 0
- bne _080F520C
- adds r5, 0x4
- adds r1, r5
- ldr r0, _080F5208
- b _080F5226
- .align 2, 0
-_080F51FC: .4byte 0x00008fee
-_080F5200: .4byte 0x000087dc
-_080F5204: .4byte 0x0000893f
-_080F5208: .4byte sub_80F5264
-_080F520C:
- cmp r0, 0
- bne _080F5220
- ldr r7, _080F5218
- adds r1, r7
- ldr r0, _080F521C
- b _080F5226
- .align 2, 0
-_080F5218: .4byte 0x000087e0
-_080F521C: .4byte sub_80F52F8
-_080F5220:
- ldr r0, _080F5238
- adds r1, r0
- ldr r0, _080F523C
-_080F5226:
- str r0, [r1]
- ldr r0, [r2]
- ldr r1, _080F5240
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5238: .4byte 0x000087e0
-_080F523C: .4byte sub_80F5364
-_080F5240: .4byte 0x000087de
- thumb_func_end sub_80F5060
-
- thumb_func_start gpu_sync_bg_show
-gpu_sync_bg_show: @ 80F5244
- push {lr}
- ldr r0, _080F525C
- ldr r0, [r0]
- ldr r1, _080F5260
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080F525C: .4byte gUnknown_083DFEC4
-_080F5260: .4byte 0x000087e0
- thumb_func_end gpu_sync_bg_show
-
- thumb_func_start sub_80F5264
-sub_80F5264: @ 80F5264
- push {r4,r5,lr}
- ldr r0, _080F5280
- ldr r0, [r0]
- ldr r1, _080F5284
- adds r5, r0, r1
- ldrb r1, [r5]
- cmp r1, 0x1
- beq _080F52AA
- cmp r1, 0x1
- bgt _080F5288
- cmp r1, 0
- beq _080F528E
- b _080F52F0
- .align 2, 0
-_080F5280: .4byte gUnknown_083DFEC4
-_080F5284: .4byte 0x000087de
-_080F5288:
- cmp r1, 0x2
- beq _080F52EC
- b _080F52F0
-_080F528E:
- ldr r2, _080F52D8
- adds r4, r0, r2
- ldrb r0, [r4]
- bl sub_80F2E18
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_080F52AA:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- bne _080F52F0
- ldr r0, _080F52DC
- ldr r4, [r0]
- ldr r1, _080F52E0
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- ldr r2, _080F52E4
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- ldr r0, _080F52E8
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F52F0
- .align 2, 0
-_080F52D8: .4byte 0x00008fe9
-_080F52DC: .4byte gUnknown_083DFEC4
-_080F52E0: .4byte 0x00008fee
-_080F52E4: .4byte 0x00008fec
-_080F52E8: .4byte 0x000087de
-_080F52EC:
- movs r0, 0
- b _080F52F2
-_080F52F0:
- movs r0, 0x1
-_080F52F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5264
-
- thumb_func_start sub_80F52F8
-sub_80F52F8: @ 80F52F8
- push {r4,r5,lr}
- ldr r0, _080F5310
- ldr r4, [r0]
- ldr r0, _080F5314
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080F5318
- cmp r0, 0x1
- beq _080F5358
- b _080F535C
- .align 2, 0
-_080F5310: .4byte gUnknown_083DFEC4
-_080F5314: .4byte 0x000087de
-_080F5318:
- bl sub_80F5038
- lsls r0, 24
- cmp r0, 0
- bne _080F535C
- ldr r1, _080F5350
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- ldr r2, _080F5354
- adds r0, r4, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r2, 0x2
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _080F535C
- .align 2, 0
-_080F5350: .4byte 0x00008fe9
-_080F5354: .4byte 0x00008fee
-_080F5358:
- movs r0, 0
- b _080F535E
-_080F535C:
- movs r0, 0x1
-_080F535E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F52F8
-
- thumb_func_start sub_80F5364
-sub_80F5364: @ 80F5364
- push {r4,r5,lr}
- ldr r0, _080F5380
- ldr r4, [r0]
- ldr r0, _080F5384
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _080F53B8
- cmp r0, 0x1
- bgt _080F5388
- cmp r0, 0
- beq _080F538E
- b _080F53E4
- .align 2, 0
-_080F5380: .4byte gUnknown_083DFEC4
-_080F5384: .4byte 0x000087de
-_080F5388:
- cmp r0, 0x2
- beq _080F53CA
- b _080F53E4
-_080F538E:
- bl sub_80F5504
- bl sub_80F173C
- lsls r0, 24
- cmp r0, 0
- bne _080F53E4
- ldr r1, _080F53B4
- adds r4, r1
- ldrb r0, [r4]
- bl sub_80F2E18
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F53C2
- .align 2, 0
-_080F53B4: .4byte 0x00008fe9
-_080F53B8:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- bne _080F53E4
-_080F53C2:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _080F53E4
-_080F53CA:
- ldr r2, _080F53E0
- adds r0, r4, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r2, 0x2
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- movs r0, 0
- b _080F53E6
- .align 2, 0
-_080F53E0: .4byte 0x00008fee
-_080F53E4:
- movs r0, 0x1
-_080F53E6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5364
-
- thumb_func_start sub_80F53EC
-sub_80F53EC: @ 80F53EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- mov r9, r1
- movs r7, 0
- ldr r0, _080F54F4
- ldr r0, [r0]
- str r0, [sp, 0x4]
-_080F5404:
- lsls r4, r7, 2
- ldr r1, [sp]
- adds r0, r4, r1
- ldrh r1, [r0]
- lsls r5, r1, 8
- mov r2, r9
- adds r0, r4, r2
- ldrh r0, [r0]
- subs r0, r1
- lsls r0, 8
- movs r1, 0xA
- bl __divsi3
- adds r6, r0, 0
- movs r3, 0
- adds r7, 0x1
- mov r10, r7
- mov r8, r4
-_080F5428:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- add r0, r8
- ldr r7, [sp, 0x4]
- adds r0, r7, r0
- asrs r2, r5, 8
- asrs r1, r5, 7
- movs r7, 0x1
- ands r1, r7
- adds r2, r1
- ldr r1, _080F54F8
- adds r0, r1
- strh r2, [r0]
- adds r5, r6
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x8
- bls _080F5428
- ldr r2, _080F54F4
- ldr r1, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4, r0
- adds r1, r0
- mov r3, r9
- adds r2, r4, r3
- ldrh r0, [r2]
- ldr r7, _080F54F8
- adds r1, r7
- strh r0, [r1]
- ldr r1, [sp]
- adds r0, r4, r1
- ldrh r1, [r0, 0x2]
- lsls r5, r1, 8
- ldrh r0, [r2, 0x2]
- subs r0, r1
- lsls r0, 8
- movs r1, 0xA
- bl __divsi3
- adds r6, r0, 0
- movs r3, 0
- ldr r0, _080F54F4
- ldr r0, [r0]
- mov r12, r0
- str r4, [sp, 0x8]
- movs r2, 0x1
- mov r8, r2
-_080F548E:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- ldr r7, [sp, 0x8]
- adds r0, r7, r0
- add r0, r12
- asrs r2, r5, 8
- asrs r1, r5, 7
- mov r7, r8
- ands r1, r7
- adds r2, r1
- ldr r1, _080F54FC
- adds r0, r1
- strh r2, [r0]
- adds r5, r6
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x8
- bls _080F548E
- ldr r7, _080F54F4
- ldr r2, [r7]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4, r0
- adds r0, r2, r0
- mov r3, r9
- adds r1, r4, r3
- ldrh r1, [r1, 0x2]
- ldr r7, _080F54FC
- adds r0, r7
- strh r1, [r0]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _080F5404
- ldr r3, _080F5500
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F54F4: .4byte gUnknown_083DFEC4
-_080F54F8: .4byte 0x00009054
-_080F54FC: .4byte 0x00009056
-_080F5500: .4byte 0x00009342
- thumb_func_end sub_80F53EC
-
- thumb_func_start sub_80F5504
-sub_80F5504: @ 80F5504
- push {r4,lr}
- ldr r0, _080F551C
- ldr r2, [r0]
- ldr r0, _080F5520
- adds r4, r2, r0
- ldrh r0, [r4]
- adds r1, r0, 0
- cmp r1, 0x9
- bls _080F5524
- movs r0, 0
- b _080F5544
- .align 2, 0
-_080F551C: .4byte gUnknown_083DFEC4
-_080F5520: .4byte 0x00009342
-_080F5524:
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F554C
- adds r0, r1
- adds r0, r2, r0
- bl sub_80F556C
- ldrh r1, [r4]
- movs r0, 0xA
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_080F5544:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F554C: .4byte 0x00009054
- thumb_func_end sub_80F5504
-
- thumb_func_start sub_80F5550
-sub_80F5550: @ 80F5550
- push {lr}
- bl sub_80F53EC
- pop {r0}
- bx r0
- thumb_func_end sub_80F5550
-
- thumb_func_start sub_80F555C
-sub_80F555C: @ 80F555C
- push {lr}
- bl sub_80F5504
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F555C
-
- thumb_func_start sub_80F556C
-sub_80F556C: @ 80F556C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _080F55A0
- ldr r0, [r5]
- ldr r1, _080F55A4
- adds r3, r0, r1
-_080F557A:
- lsls r0, r2, 2
- adds r1, r3, r0
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _080F557A
- ldr r0, [r5]
- ldr r1, _080F55A8
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F55A0: .4byte gUnknown_083DFEC4
-_080F55A4: .4byte 0x0000911c
-_080F55A8: .4byte 0x00009344
- thumb_func_end sub_80F556C
-
- thumb_func_start sub_80F55AC
-sub_80F55AC: @ 80F55AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- mov r8, r1
- ldr r1, _080F5674
- ldrb r0, [r6]
- adds r0, r1
- ldrb r2, [r0]
- adds r6, 0x1
- movs r0, 0x9B
- mov r3, r8
- strh r0, [r3]
- movs r0, 0x5B
- subs r0, r2
- strh r0, [r3, 0x2]
- movs r7, 0x40
- movs r0, 0
- mov r12, r0
- movs r2, 0x1
- mov r9, r2
- ldr r3, _080F5678
- mov r10, r3
-_080F55DE:
- adds r0, r7, 0
- adds r0, 0x33
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r3, r0, 24
- mov r12, r3
- cmp r0, 0
- bge _080F55FC
- movs r0, 0x4
- mov r12, r0
-_080F55FC:
- mov r1, r12
- lsls r0, r1, 24
- asrs r4, r0, 24
- cmp r4, 0x2
- bne _080F560C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080F560C:
- ldrb r0, [r6]
- ldr r2, _080F5674
- adds r0, r2
- ldrb r2, [r0]
- adds r6, 0x1
- lsls r0, r4, 2
- mov r1, r8
- adds r3, r0, r1
- adds r0, r7, 0
- adds r0, 0x40
- lsls r0, 1
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r5, r0, 8
- adds r0, r5, 0
- adds r0, 0x9B
- strh r0, [r3]
- lsls r0, r7, 1
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r1, r2, 0
- muls r1, r0
- asrs r1, 8
- movs r0, 0x5B
- subs r0, r1
- strh r0, [r3, 0x2]
- cmp r4, 0x2
- bgt _080F5658
- cmp r2, 0x20
- bne _080F5652
- cmp r4, 0x2
- beq _080F5658
-_080F5652:
- adds r0, r5, 0
- adds r0, 0x9C
- strh r0, [r3]
-_080F5658:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _080F55DE
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5674: .4byte gUnknown_083E4890
-_080F5678: .4byte gSineTable
- thumb_func_end sub_80F55AC
-
- thumb_func_start sub_80F567C
-sub_80F567C: @ 80F567C
- push {lr}
- bl sub_80F55AC
- pop {r0}
- bx r0
- thumb_func_end sub_80F567C
-
- thumb_func_start sub_80F5688
-sub_80F5688: @ 80F5688
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- str r2, [sp]
- ldr r7, [sp, 0x34]
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- movs r0, 0
- str r0, [sp, 0x8]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r2, 0x2]
- cmp r0, r1
- bcs _080F56D0
- adds r2, r0, 0
- str r2, [sp, 0x4]
- ldr r3, [sp]
- ldrh r0, [r3, 0x2]
- ldrh r1, [r5]
- lsls r4, r1, 10
- ldrh r2, [r3]
- mov r10, r2
- ldr r3, [sp, 0x4]
- subs r0, r3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _080F56FC
- subs r0, r2, r1
- b _080F56F2
-_080F56D0:
- ldrh r0, [r5, 0x2]
- ldr r1, [sp]
- ldrh r1, [r1, 0x2]
- str r1, [sp, 0x4]
- ldr r2, [sp]
- ldrh r1, [r2]
- lsls r4, r1, 10
- ldrh r3, [r5]
- mov r10, r3
- ldr r2, [sp, 0x4]
- subs r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _080F56FC
- subs r0, r3, r1
-_080F56F2:
- lsls r0, 10
- mov r1, r8
- bl __divsi3
- str r0, [sp, 0x8]
-_080F56FC:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r7, 0
- bne _080F5746
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- movs r5, 0
- mov r3, r9
- lsls r3, 1
- mov r12, r3
- mov r0, r10
- add r0, r9
- str r0, [sp, 0xC]
- cmp r7, r8
- bcs _080F57D4
- movs r7, 0x1
-_080F5726:
- adds r2, r3, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r7
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r1, [sp, 0x8]
- adds r4, r1
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F5726
- b _080F57D4
-_080F5746:
- ldr r2, [sp, 0x8]
- cmp r2, 0
- ble _080F57E4
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r7, r0
- movs r5, 0
- mov r3, r9
- lsls r3, 1
- mov r12, r3
- mov r0, r10
- add r0, r9
- str r0, [sp, 0xC]
- cmp r5, r8
- bcs _080F5798
- ldr r0, _080F57D8
- cmp r4, r0
- bgt _080F5798
- mov r1, r12
- str r1, [sp, 0x10]
- mov r10, r0
-_080F5772:
- ldr r3, [sp, 0x10]
- adds r2, r3, r7
- asrs r1, r4, 10
- asrs r0, r4, 9
- movs r3, 0x1
- ands r0, r3
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r7, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcs _080F5798
- cmp r4, r10
- ble _080F5772
-_080F5798:
- ldr r1, _080F57DC
- ldr r0, [r1]
- ldr r2, [sp, 0x4]
- adds r1, r2, r5
- ldr r3, _080F57E0
- adds r0, r3
- strh r1, [r0]
- ldrh r0, [r0]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- cmp r5, r8
- bcs _080F57D4
- mov r3, r12
- movs r7, 0x1
-_080F57B6:
- adds r2, r3, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r7
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F57B6
-_080F57D4:
- subs r0, r6, 0x4
- b _080F58C4
- .align 2, 0
-_080F57D8: .4byte 0x00026bff
-_080F57DC: .4byte gUnknown_083DFEC4
-_080F57E0: .4byte 0x00009340
-_080F57E4:
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bge _080F5890
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- movs r5, 0
- mov r2, r9
- lsls r2, 1
- mov r12, r2
- mov r3, r10
- add r3, r9
- str r3, [sp, 0xC]
- cmp r5, r8
- bcs _080F5842
- adds r3, r2, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- movs r2, 0x1
- ands r0, r2
- adds r1, r0
- add r1, r9
- strh r1, [r3]
- b _080F5838
-_080F5816:
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcs _080F5842
- mov r1, r12
- adds r3, r1, r6
- asrs r2, r4, 10
- asrs r0, r4, 9
- movs r1, 0x1
- ands r0, r1
- adds r2, r0
- add r2, r9
- strh r2, [r3]
-_080F5838:
- ldr r0, _080F5884
- cmp r4, r0
- bgt _080F5816
- movs r0, 0x9B
- strh r0, [r3]
-_080F5842:
- ldr r2, _080F5888
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- adds r1, r3, r5
- ldr r2, _080F588C
- adds r0, r2
- strh r1, [r0]
- ldrh r0, [r0]
- subs r0, 0x38
- lsls r0, 2
- adds r7, r0
- cmp r5, r8
- bcs _080F587E
- mov r3, r12
- movs r6, 0x1
-_080F5860:
- adds r2, r3, r7
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r6
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r7, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F5860
-_080F587E:
- subs r0, r7, 0x4
- b _080F58C4
- .align 2, 0
-_080F5884: .4byte 0x00026bff
-_080F5888: .4byte gUnknown_083DFEC4
-_080F588C: .4byte 0x00009340
-_080F5890:
- ldr r0, _080F58BC
- ldr r0, [r0]
- ldr r1, _080F58C0
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x4]
- strh r2, [r0]
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- adds r7, r0
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- ldr r3, [sp]
- ldrh r0, [r3]
- strh r0, [r7]
- movs r0, 0x9B
- strh r0, [r7, 0x2]
- b _080F58CC
- .align 2, 0
-_080F58BC: .4byte gUnknown_083DFEC4
-_080F58C0: .4byte 0x00009340
-_080F58C4:
- add r0, r12
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r0]
-_080F58CC:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F5688
-
- thumb_func_start sub_80F58DC
-sub_80F58DC: @ 80F58DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2]
- ldrh r1, [r5, 0x6]
- cmp r0, r1
- bcs _080F5914
- adds r4, r0, 0
- mov r8, r4
- ldr r0, _080F590C
- ldr r0, [r0]
- ldr r1, _080F5910
- adds r0, r1
- adds r4, r5, 0x4
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_80F5688
- b _080F5930
- .align 2, 0
-_080F590C: .4byte gUnknown_083DFEC4
-_080F5910: .4byte 0x00009130
-_080F5914:
- ldrh r4, [r5, 0x6]
- mov r8, r4
- ldr r0, _080F5A08
- ldr r0, [r0]
- ldr r1, _080F5A0C
- adds r0, r1
- adds r4, r5, 0x4
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_80F5688
-_080F5930:
- adds r1, r4, 0
- ldr r0, _080F5A08
- ldr r6, [r0]
- ldr r0, _080F5A0C
- adds r4, r6, r0
- adds r7, r5, 0
- adds r7, 0x8
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r7, 0
- movs r3, 0x1
- bl sub_80F5688
- movs r3, 0
- ldrh r0, [r5, 0xA]
- ldrh r1, [r5, 0xE]
- cmp r0, r1
- bhi _080F5958
- movs r3, 0x1
-_080F5958:
- adds r2, r5, 0
- adds r2, 0xC
- ldr r1, _080F5A10
- adds r0, r6, r1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80F5688
- movs r2, 0x38
- cmp r2, r8
- bcs _080F5990
- adds r7, r4, 0
- movs r3, 0
- ldr r0, _080F5A14
- adds r4, r6, r0
-_080F5978:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r7, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r8
- bcc _080F5978
-_080F5990:
- ldrh r2, [r5, 0x2]
- ldr r0, _080F5A08
- ldr r3, [r0]
- ldr r4, _080F5A18
- adds r1, r3, r4
- adds r6, r0, 0
- ldrh r0, [r1]
- cmp r2, r0
- bhi _080F59BE
- ldr r4, _080F5A0C
- adds r3, r4
- movs r4, 0x9B
-_080F59A8:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1]
- cmp r2, r0
- bls _080F59A8
-_080F59BE:
- ldr r4, [r6]
- ldr r1, _080F5A18
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r1, [r5, 0xA]
- cmp r0, r1
- bcs _080F59CE
- adds r0, r1, 0
-_080F59CE:
- adds r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bhi _080F59FA
- ldr r0, _080F5A0C
- adds r5, r4, r0
- movs r3, 0
- ldr r1, _080F5A14
- adds r4, r1
-_080F59E2:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r5, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bls _080F59E2
-_080F59FA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5A08: .4byte gUnknown_083DFEC4
-_080F5A0C: .4byte 0x00009130
-_080F5A10: .4byte 0x00009238
-_080F5A14: .4byte 0x00009132
-_080F5A18: .4byte 0x00009340
- thumb_func_end sub_80F58DC
-
- thumb_func_start sub_80F5A1C
-sub_80F5A1C: @ 80F5A1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2]
- ldrh r1, [r5, 0x12]
- cmp r0, r1
- bcs _080F5A54
- adds r7, r0, 0
- ldr r0, _080F5A4C
- ldr r0, [r0]
- ldr r2, _080F5A50
- adds r0, r2
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_80F5688
- b _080F5A70
- .align 2, 0
-_080F5A4C: .4byte gUnknown_083DFEC4
-_080F5A50: .4byte 0x00009238
-_080F5A54:
- ldrh r7, [r5, 0x12]
- ldr r0, _080F5B28
- ldr r0, [r0]
- ldr r4, _080F5B2C
- adds r0, r4
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80F5688
-_080F5A70:
- adds r1, r4, 0
- ldr r0, _080F5B28
- ldr r0, [r0]
- mov r8, r0
- ldr r4, _080F5B2C
- add r4, r8
- adds r2, r5, 0
- adds r2, 0xC
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0
- bl sub_80F5688
- movs r2, 0x38
- cmp r2, r7
- bcs _080F5AB2
- adds r6, r4, 0
- movs r3, 0
- ldr r4, _080F5B30
- add r4, r8
-_080F5A9A:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r6, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080F5A9A
-_080F5AB2:
- ldrh r2, [r5, 0x2]
- ldr r0, _080F5B28
- ldr r3, [r0]
- ldr r4, _080F5B34
- adds r1, r3, r4
- adds r6, r0, 0
- ldrh r0, [r1]
- cmp r2, r0
- bhi _080F5AE0
- ldr r4, _080F5B30
- adds r3, r4
- movs r4, 0x9B
-_080F5ACA:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1]
- cmp r2, r0
- bls _080F5ACA
-_080F5AE0:
- ldrh r0, [r5, 0xE]
- adds r1, r0, 0x1
- ldr r3, [r6]
- ldr r2, _080F5B34
- adds r0, r3, r2
- ldrh r0, [r0]
- cmp r0, r1
- bge _080F5AF2
- adds r0, r1, 0
-_080F5AF2:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bhi _080F5B1C
- ldr r4, _080F5B2C
- adds r5, r3, r4
- movs r4, 0
- ldr r0, _080F5B30
- adds r3, r0
-_080F5B04:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bls _080F5B04
-_080F5B1C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5B28: .4byte gUnknown_083DFEC4
-_080F5B2C: .4byte 0x00009238
-_080F5B30: .4byte 0x0000923a
-_080F5B34: .4byte 0x00009340
- thumb_func_end sub_80F5A1C
-
- thumb_func_start sub_80F5B38
-sub_80F5B38: @ 80F5B38
- ldr r0, _080F5B48
- ldr r0, [r0]
- ldr r1, _080F5B4C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F5B48: .4byte gUnknown_083DFEC4
-_080F5B4C: .4byte 0x00009345
- thumb_func_end sub_80F5B38
-
- thumb_func_start sub_80F5B50
-sub_80F5B50: @ 80F5B50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _080F5B68
- ldr r0, [r0]
- ldr r1, _080F5B6C
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080F5B70
- cmp r0, 0x1
- beq _080F5BB4
- b _080F5BCC
- .align 2, 0
-_080F5B68: .4byte gUnknown_083DFEC4
-_080F5B6C: .4byte 0x00009345
-_080F5B70:
- bl dp12_8087EA4
- ldr r0, _080F5BA8
- movs r2, 0xEF
- movs r3, 0xF4
- lsls r3, 3
- adds r1, r0, r3
- adds r0, 0x20
- movs r3, 0xF
-_080F5B82:
- strh r2, [r0]
- strh r2, [r0, 0x2]
- strh r2, [r1]
- strh r2, [r1, 0x2]
- adds r1, 0x4
- adds r0, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _080F5B82
- ldr r0, _080F5BAC
- ldr r1, [r0]
- ldr r5, _080F5BB0
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- b _080F5BCE
- .align 2, 0
-_080F5BA8: .4byte gUnknown_03004DE0
-_080F5BAC: .4byte gUnknown_083DFEC4
-_080F5BB0: .4byte 0x00009345
-_080F5BB4:
- mov r0, sp
- ldr r1, _080F5BD8
- ldm r1!, {r2,r3,r5}
- stm r0!, {r2,r3,r5}
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080F5BCC:
- movs r0, 0
-_080F5BCE:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5BD8: .4byte gUnknown_083E4990
- thumb_func_end sub_80F5B50
-
- thumb_func_start sub_80F5BDC
-sub_80F5BDC: @ 80F5BDC
- push {lr}
- ldr r1, _080F5BEC
- movs r0, 0x3
- strb r0, [r1, 0x15]
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080F5BEC: .4byte gUnknown_03004DC0
- thumb_func_end sub_80F5BDC
-
- thumb_func_start sub_80F5BF0
-sub_80F5BF0: @ 80F5BF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, _080F5CB8
- ldr r5, [r0]
- ldr r1, _080F5CBC
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5CA6
- ldr r0, _080F5CC0
- adds r4, r5, r0
- adds r0, r4, 0
- bl sub_80F58DC
- adds r0, r4, 0
- bl sub_80F5A1C
- movs r6, 0
- ldr r1, _080F5CC4
- mov r12, r1
- movs r0, 0xF0
- lsls r0, 3
- add r0, r12
- mov r9, r0
- adds r7, r5, 0
- ldr r1, _080F5CC8
- mov r8, r1
- ldr r5, _080F5CCC
- adds r5, r7, r5
- str r5, [sp]
- ldr r0, _080F5CD0
- adds r0, r7, r0
- str r0, [sp, 0x4]
- ldr r1, _080F5CD4
- adds r1, r7
- mov r10, r1
-_080F5C40:
- adds r2, r6, 0
- adds r2, 0x37
- lsls r3, r2, 2
- mov r5, r9
- adds r5, r3, r5
- str r5, [sp, 0x8]
- add r3, r12
- lsls r4, r6, 2
- ldr r1, [sp]
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 8
- ldr r5, [sp, 0x4]
- adds r1, r5, r4
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r3]
- mov r1, r8
- ands r0, r1
- ldr r5, [sp, 0x8]
- strh r0, [r5]
- lsls r2, 1
- adds r2, 0x1
- lsls r2, 1
- mov r0, r9
- adds r3, r2, r0
- add r2, r12
- mov r1, r10
- adds r0, r1, r4
- ldrh r1, [r0]
- lsls r1, 8
- ldr r5, _080F5CD8
- adds r0, r7, r5
- adds r0, r4
- ldrh r0, [r0]
- orrs r1, r0
- strh r1, [r2]
- mov r0, r8
- ands r1, r0
- strh r1, [r3]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F5CB8
- cmp r6, 0x41
- bls _080F5C40
- ldr r0, [r0]
- ldr r1, _080F5CBC
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080F5CA6:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5CB8: .4byte gUnknown_083DFEC4
-_080F5CBC: .4byte 0x00009344
-_080F5CC0: .4byte 0x0000911c
-_080F5CC4: .4byte gUnknown_03004DE0
-_080F5CC8: .4byte 0x0000ffff
-_080F5CCC: .4byte 0x00009130
-_080F5CD0: .4byte 0x00009132
-_080F5CD4: .4byte 0x00009238
-_080F5CD8: .4byte 0x0000923a
- thumb_func_end sub_80F5BF0
-
- thumb_func_start sub_80F5CDC
-sub_80F5CDC: @ 80F5CDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F5DB0
- ldr r6, [r0]
- ldr r1, _080F5DB4
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5DA0
- ldr r0, _080F5DB8
- adds r4, r6, r0
- adds r0, r4, 0
- bl sub_80F58DC
- adds r0, r4, 0
- bl sub_80F5A1C
- movs r0, 0x37
- subs r0, r5
- lsls r0, 17
- lsrs r5, r0, 16
- movs r7, 0
- ldr r1, _080F5DBC
- mov r12, r1
- movs r4, 0xF0
- lsls r4, 3
- add r4, r12
- mov r9, r4
- ldr r0, _080F5DC0
- mov r8, r0
- ldr r1, _080F5DC4
- adds r1, r6, r1
- str r1, [sp]
- ldr r4, _080F5DC8
- adds r4, r6, r4
- str r4, [sp, 0x4]
- ldr r0, _080F5DCC
- adds r0, r6
- mov r10, r0
-_080F5D36:
- lsls r2, r5, 1
- mov r1, r9
- adds r1, r2, r1
- str r1, [sp, 0x8]
- add r2, r12
- lsls r3, r7, 2
- ldr r4, [sp]
- adds r0, r4, r3
- ldrh r0, [r0]
- lsls r0, 8
- ldr r4, [sp, 0x4]
- adds r1, r4, r3
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2]
- mov r1, r8
- ands r0, r1
- ldr r4, [sp, 0x8]
- strh r0, [r4]
- adds r2, r5, 0x1
- lsls r2, 1
- mov r0, r9
- adds r0, r2, r0
- str r0, [sp, 0x8]
- add r2, r12
- mov r1, r10
- adds r0, r1, r3
- ldrh r1, [r0]
- lsls r1, 8
- ldr r4, _080F5DD0
- adds r0, r6, r4
- adds r0, r3
- ldrh r0, [r0]
- orrs r1, r0
- strh r1, [r2]
- mov r0, r8
- ands r1, r0
- ldr r4, [sp, 0x8]
- strh r1, [r4]
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080F5DB0
- cmp r7, 0x41
- bls _080F5D36
- ldr r0, [r0]
- ldr r1, _080F5DB4
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080F5DA0:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5DB0: .4byte gUnknown_083DFEC4
-_080F5DB4: .4byte 0x00009344
-_080F5DB8: .4byte 0x0000911c
-_080F5DBC: .4byte gUnknown_03004DE0
-_080F5DC0: .4byte 0x0000ffff
-_080F5DC4: .4byte 0x00009130
-_080F5DC8: .4byte 0x00009132
-_080F5DCC: .4byte 0x00009238
-_080F5DD0: .4byte 0x0000923a
- thumb_func_end sub_80F5CDC
-
- thumb_func_start sub_80F5DD4
-sub_80F5DD4: @ 80F5DD4
- push {lr}
- ldr r0, _080F5DE8
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F5DEC
- bl sub_80F5E20
- b _080F5E18
- .align 2, 0
-_080F5DE8: .4byte gMain
-_080F5DEC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F5DFA
- bl sub_80F5EE4
- b _080F5E18
-_080F5DFA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F5E08
- bl sub_80F5FB4
- b _080F5E18
-_080F5E08:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080F5E14
- movs r0, 0
- b _080F5E1C
-_080F5E14:
- bl sub_80F6010
-_080F5E18:
- lsls r0, 24
- lsrs r0, 24
-_080F5E1C:
- pop {r1}
- bx r1
- thumb_func_end sub_80F5DD4
-
- thumb_func_start sub_80F5E20
-sub_80F5E20: @ 80F5E20
- push {r4,r5,lr}
- ldr r0, _080F5E38
- ldr r2, [r0]
- ldr r3, _080F5E3C
- adds r1, r2, r3
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r4, r0, 0
- cmp r1, 0
- bne _080F5E40
- movs r0, 0
- b _080F5EC8
- .align 2, 0
-_080F5E38: .4byte gUnknown_083DFEC4
-_080F5E3C: .4byte 0x0000876e
-_080F5E40:
- ldr r1, _080F5E6C
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5E74
- ldr r3, _080F5E70
- adds r0, r2, r3
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0
- bne _080F5E74
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
- b _080F5EC8
- .align 2, 0
-_080F5E6C: .4byte 0x000087c9
-_080F5E70: .4byte 0x0000876c
-_080F5E74:
- ldr r1, [r4]
- ldr r0, _080F5ED0
- adds r2, r1, r0
- ldrh r0, [r2]
- subs r3, r0, 0x1
- strh r3, [r2]
- ldr r5, _080F5ED4
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F5E98
- lsls r0, r3, 16
- cmp r0, 0
- bge _080F5E98
- ldr r3, _080F5ED8
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
-_080F5E98:
- ldr r0, [r4]
- ldr r5, _080F5EDC
- adds r2, r0, r5
- ldr r3, _080F5ED0
- adds r1, r0, r3
- ldrh r1, [r1]
- ldrh r2, [r2]
- adds r2, r1, r2
- subs r5, 0x2
- adds r4, r0, r5
- strh r2, [r4]
- ldr r1, _080F5EE0
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r3, [r0]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F5EC6
- subs r0, r2, 0x1
- subs r0, r3
- strh r0, [r4]
-_080F5EC6:
- movs r0, 0x1
-_080F5EC8:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5ED0: .4byte 0x0000876c
-_080F5ED4: .4byte 0x000087c9
-_080F5ED8: .4byte 0x00008772
-_080F5EDC: .4byte 0x00008770
-_080F5EE0: .4byte 0x00008774
- thumb_func_end sub_80F5E20
-
- thumb_func_start sub_80F5EE4
-sub_80F5EE4: @ 80F5EE4
- push {r4-r6,lr}
- ldr r3, _080F5F04
- ldr r4, [r3]
- ldr r1, _080F5F08
- adds r0, r4, r1
- ldr r2, _080F5F0C
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r6, 0
- ldrsh r0, [r1, r6]
- adds r5, r3, 0
- cmp r2, r0
- bne _080F5F10
- movs r0, 0
- b _080F5F98
- .align 2, 0
-_080F5F04: .4byte gUnknown_083DFEC4
-_080F5F08: .4byte 0x0000876e
-_080F5F0C: .4byte 0x00008774
-_080F5F10:
- ldr r1, _080F5F38
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5F40
- ldr r2, _080F5F3C
- adds r0, r4, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x7
- bne _080F5F40
- movs r0, 0x1
- bl sub_80F063C
- movs r0, 0x1
- bl sub_80F6074
- movs r0, 0x2
- b _080F5F98
- .align 2, 0
-_080F5F38: .4byte 0x000087c9
-_080F5F3C: .4byte 0x0000876c
-_080F5F40:
- ldr r2, [r5]
- ldr r6, _080F5FA0
- adds r4, r2, r6
- ldrh r0, [r4]
- adds r1, r0, 0x1
- strh r1, [r4]
- ldr r3, _080F5FA4
- adds r0, r2, r3
- ldrb r3, [r0]
- cmp r3, 0
- bne _080F5F68
- adds r6, 0x6
- adds r0, r2, r6
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _080F5F68
- strh r3, [r4]
-_080F5F68:
- ldr r0, [r5]
- ldr r3, _080F5FA8
- adds r2, r0, r3
- ldr r5, _080F5FA0
- adds r1, r0, r5
- ldrh r1, [r1]
- ldrh r2, [r2]
- adds r2, r1, r2
- ldr r6, _080F5FAC
- adds r4, r0, r6
- strh r2, [r4]
- ldr r1, _080F5FB0
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r3, [r0]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F5F96
- subs r0, r2, 0x1
- subs r0, r3
- strh r0, [r4]
-_080F5F96:
- movs r0, 0x1
-_080F5F98:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5FA0: .4byte 0x0000876c
-_080F5FA4: .4byte 0x000087c9
-_080F5FA8: .4byte 0x00008770
-_080F5FAC: .4byte 0x0000876e
-_080F5FB0: .4byte 0x00008774
- thumb_func_end sub_80F5EE4
-
- thumb_func_start sub_80F5FB4
-sub_80F5FB4: @ 80F5FB4
- push {r4,lr}
- ldr r0, _080F5FD8
- ldr r1, [r0]
- ldr r2, _080F5FDC
- adds r0, r1, r2
- ldrh r3, [r0]
- movs r4, 0
- ldrsh r2, [r0, r4]
- cmp r2, 0
- beq _080F5FD2
- ldr r4, _080F5FE0
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F5FE4
-_080F5FD2:
- movs r0, 0
- b _080F6004
- .align 2, 0
-_080F5FD8: .4byte gUnknown_083DFEC4
-_080F5FDC: .4byte 0x00008770
-_080F5FE0: .4byte 0x000087c9
-_080F5FE4:
- cmp r2, 0x7
- bgt _080F5FF0
- negs r0, r3
- lsls r0, 16
- lsrs r0, 16
- b _080F5FF2
-_080F5FF0:
- ldr r0, _080F600C
-_080F5FF2:
- lsls r4, r0, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
-_080F6004:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F600C: .4byte 0x0000fff8
- thumb_func_end sub_80F5FB4
-
- thumb_func_start sub_80F6010
-sub_80F6010: @ 80F6010
- push {r4-r6,lr}
- ldr r0, _080F603C
- ldr r3, [r0]
- ldr r1, _080F6040
- adds r0, r3, r1
- ldr r2, _080F6044
- adds r1, r3, r2
- ldrh r5, [r0]
- movs r4, 0
- ldrsh r2, [r0, r4]
- ldrh r4, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r2, r0
- beq _080F6038
- ldr r1, _080F6048
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F604C
-_080F6038:
- movs r0, 0
- b _080F606C
- .align 2, 0
-_080F603C: .4byte gUnknown_083DFEC4
-_080F6040: .4byte 0x00008772
-_080F6044: .4byte 0x00008774
-_080F6048: .4byte 0x000087c9
-_080F604C:
- subs r0, r4, r5
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080F605A
- movs r4, 0x8
-_080F605A:
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
-_080F606C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6010
-
- thumb_func_start sub_80F6074
-sub_80F6074: @ 80F6074
- push {r4-r7,lr}
- ldr r1, _080F6120
- ldr r6, [r1]
- ldr r1, _080F6124
- adds r3, r6, r1
- ldrh r1, [r3]
- lsls r0, 16
- asrs r7, r0, 16
- adds r2, r7, r1
- strh r2, [r3]
- ldr r5, _080F6128
- adds r4, r6, r5
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4]
- mov r12, r1
- movs r5, 0
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080F60A4
- subs r0, r2, 0x1
- mov r1, r12
- subs r0, r1
- strh r0, [r3]
-_080F60A4:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F60B6
- adds r0, r1, 0x1
- ldrh r5, [r4]
- adds r0, r5
- strh r0, [r3]
-_080F60B6:
- ldr r0, _080F612C
- adds r3, r6, r0
- ldrh r0, [r3]
- adds r2, r7, r0
- strh r2, [r3]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4]
- mov r12, r1
- movs r5, 0
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080F60D8
- subs r0, r2, 0x1
- mov r1, r12
- subs r0, r1
- strh r0, [r3]
-_080F60D8:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F60EA
- adds r0, r1, 0x1
- ldrh r5, [r4]
- adds r0, r5
- strh r0, [r3]
-_080F60EA:
- ldr r0, _080F6130
- adds r3, r6, r0
- ldrh r0, [r3]
- adds r2, r7, r0
- strh r2, [r3]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r4]
- movs r6, 0
- ldrsh r1, [r4, r6]
- cmp r0, r1
- ble _080F6108
- subs r0, r2, 0x1
- subs r0, r5
- strh r0, [r3]
-_080F6108:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F611A
- adds r0, r1, 0x1
- ldrh r4, [r4]
- adds r0, r4
- strh r0, [r3]
-_080F611A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6120: .4byte gUnknown_083DFEC4
-_080F6124: .4byte 0x00008770
-_080F6128: .4byte 0x00008774
-_080F612C: .4byte 0x00008772
-_080F6130: .4byte 0x0000876e
- thumb_func_end sub_80F6074
-
- thumb_func_start sub_80F6134
-sub_80F6134: @ 80F6134
- push {r4-r6,lr}
- ldr r0, _080F6194
- ldr r3, [r0]
- ldr r1, _080F6198
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F61E0
- ldr r2, _080F619C
- adds r5, r3, r2
- movs r4, 0
- ldrsh r1, [r5, r4]
- ldr r6, _080F61A0
- adds r4, r3, r6
- movs r2, 0
- ldrsh r0, [r4, r2]
- subs r0, 0x7
- cmp r1, r0
- bge _080F61AC
- subs r6, 0x8
- adds r1, r3, r6
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r5]
- ldr r1, _080F61A4
- adds r2, r3, r1
- strh r0, [r2]
- ldrh r1, [r5]
- ldr r5, _080F61A8
- adds r0, r3, r5
- strh r1, [r0]
- ldrh r5, [r2]
- adds r0, r5, 0x7
- adds r6, 0x6
- adds r2, r3, r6
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r4]
- movs r6, 0
- ldrsh r1, [r4, r6]
- cmp r0, r1
- ble _080F61F4
- adds r0, r5, 0x6
- subs r0, r3
- strh r0, [r2]
- b _080F61F4
- .align 2, 0
-_080F6194: .4byte gUnknown_083DFEC4
-_080F6198: .4byte 0x000087c9
-_080F619C: .4byte 0x000087dc
-_080F61A0: .4byte 0x00008774
-_080F61A4: .4byte 0x00008770
-_080F61A8: .4byte 0x0000876e
-_080F61AC:
- ldrh r0, [r4]
- subs r0, 0x7
- ldr r2, _080F61D4
- adds r1, r3, r2
- strh r0, [r1]
- ldrh r1, [r4]
- ldr r6, _080F61D8
- adds r0, r3, r6
- strh r1, [r0]
- ldrh r1, [r5]
- subs r2, 0x2
- adds r0, r3, r2
- strh r1, [r0]
- ldrh r0, [r4]
- subs r0, r1
- movs r1, 0x7
- subs r1, r0
- ldr r4, _080F61DC
- adds r0, r3, r4
- b _080F61F2
- .align 2, 0
-_080F61D4: .4byte 0x00008770
-_080F61D8: .4byte 0x00008772
-_080F61DC: .4byte 0x0000876c
-_080F61E0:
- ldr r5, _080F61FC
- adds r2, r3, r5
- ldrh r1, [r2]
- ldr r6, _080F6200
- adds r0, r3, r6
- strh r1, [r0]
- ldrh r1, [r2]
- ldr r2, _080F6204
- adds r0, r3, r2
-_080F61F2:
- strh r1, [r0]
-_080F61F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F61FC: .4byte 0x000087dc
-_080F6200: .4byte 0x0000876c
-_080F6204: .4byte 0x0000876e
- thumb_func_end sub_80F6134
-
- thumb_func_start sub_80F6208
-sub_80F6208: @ 80F6208
- push {lr}
- ldr r0, _080F623C
- ldr r1, [r0]
- ldr r2, _080F6240
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _080F6244
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080F6248
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r2, _080F624C
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F6238
-_080F622E:
- bl sub_80F6250
- lsls r0, 24
- cmp r0, 0
- bne _080F622E
-_080F6238:
- pop {r0}
- bx r0
- .align 2, 0
-_080F623C: .4byte gUnknown_083DFEC4
-_080F6240: .4byte 0x00008fe6
-_080F6244: .4byte 0x00008fe7
-_080F6248: .4byte 0x00008fe8
-_080F624C: .4byte 0x00006dac
- thumb_func_end sub_80F6208
-
- thumb_func_start sub_80F6250
-sub_80F6250: @ 80F6250
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F6270
- ldr r2, [r0]
- ldr r0, _080F6274
- adds r3, r2, r0
- movs r1, 0
- ldrsb r1, [r3, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080F6278
-_080F626C:
- movs r0, 0
- b _080F637E
- .align 2, 0
-_080F6270: .4byte gUnknown_083DFEC4
-_080F6274: .4byte 0x00008fe8
-_080F6278:
- ldr r1, _080F630C
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080F631C
- cmp r0, 0x8
- beq _080F626C
- movs r6, 0
- adds r7, r2, 0
- adds r5, r7, r1
- ldr r0, _080F6310
- adds r4, r7, r0
- ldr r1, _080F6314
- mov r8, r1
- ldr r0, _080F6318
- add r0, r8
- mov r9, r0
-_080F629A:
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- cmp r0, 0
- bne _080F636C
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r9
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _080F636C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r2, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bls _080F62FE
- strb r1, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ands r0, r2
- cmp r0, 0x6
- bhi _080F637C
-_080F62FE:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _080F629A
- b _080F637C
- .align 2, 0
-_080F630C: .4byte 0x00008fe6
-_080F6310: .4byte 0x00008fe7
-_080F6314: .4byte gUnknown_020300A4
-_080F6318: .4byte 0x000041a0
-_080F631C:
- movs r0, 0
- strb r0, [r3]
- movs r6, 0
- b _080F632A
-_080F6324:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080F632A:
- cmp r6, 0x5
- bhi _080F634C
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F635C
- adds r0, r1
- movs r1, 0x51
- bl GetMonData
- cmp r0, 0
- beq _080F6324
- ldr r0, _080F6360
- ldr r0, [r0]
- ldr r1, _080F6364
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080F634C:
- ldr r0, _080F6360
- ldr r1, [r0]
- ldr r0, _080F6368
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _080F6372
- .align 2, 0
-_080F635C: .4byte gPlayerParty
-_080F6360: .4byte gUnknown_083DFEC4
-_080F6364: .4byte 0x00008fe8
-_080F6368: .4byte 0x00008fe6
-_080F636C:
- ldr r0, _080F6378
- adds r1, r7, r0
- movs r0, 0x1
-_080F6372:
- strb r0, [r1]
- b _080F626C
- .align 2, 0
-_080F6378: .4byte 0x00008fe8
-_080F637C:
- movs r0, 0x1
-_080F637E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6250
-
- thumb_func_start sub_80F638C
-sub_80F638C: @ 80F638C
- push {r4,lr}
- ldr r0, _080F63C0
- ldr r4, [r0]
- ldr r1, _080F63C4
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080F63C8
- adds r0, r4, r2
- strb r1, [r0]
- bl sub_80F492C
- ldr r0, _080F63CC
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F63B8
-_080F63AE:
- bl sub_80F63D0
- lsls r0, 24
- cmp r0, 0
- bne _080F63AE
-_080F63B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F63C0: .4byte gUnknown_083DFEC4
-_080F63C4: .4byte 0x00008fe6
-_080F63C8: .4byte 0x00008fe7
-_080F63CC: .4byte 0x00006dac
- thumb_func_end sub_80F638C
-
- thumb_func_start sub_80F63D0
-sub_80F63D0: @ 80F63D0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080F647C
- ldr r2, [r0]
- ldr r1, _080F6480
- adds r0, r2, r1
- ldrb r3, [r0]
- cmp r3, 0xE
- beq _080F6498
- cmp r3, 0xF
- bne _080F63E8
- b _080F64F6
-_080F63E8:
- movs r1, 0x80
- lsls r1, 23
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- movs r6, 0
- ldr r0, _080F6480
- adds r5, r2, r0
- ldr r1, _080F6484
- adds r4, r2, r1
-_080F63FC:
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F6488
- adds r1, r2
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080F644E
- ldrb r1, [r5]
- lsls r1, 8
- ldr r2, _080F648C
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldrb r2, [r4]
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 16
- ldr r1, _080F6490
- ands r0, r1
- orrs r0, r2
- ldr r1, _080F6494
- ands r0, r1
- orrs r0, r3
- str r0, [sp]
- mov r0, sp
- bl sub_80F4944
-_080F644E:
- ldrb r0, [r4]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r4]
- movs r1, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bne _080F646E
- strb r2, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ands r0, r1
- cmp r0, 0xE
- beq _080F6508
-_080F646E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0xE
- bls _080F63FC
- b _080F6508
- .align 2, 0
-_080F647C: .4byte gUnknown_083DFEC4
-_080F6480: .4byte 0x00008fe6
-_080F6484: .4byte 0x00008fe7
-_080F6488: .4byte gUnknown_020300A4
-_080F648C: .4byte 0xffff00ff
-_080F6490: .4byte 0xffe0ffff
-_080F6494: .4byte 0xffffff00
-_080F6498:
- mov r0, sp
- ldrb r1, [r0, 0x3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x3]
- strb r3, [r0, 0x1]
- movs r6, 0
- mov r4, sp
-_080F64A8:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F64FC
- adds r0, r1
- movs r1, 0x51
- bl GetMonData
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080F64DA
- movs r0, 0x1F
- adds r2, r6, 0
- ands r2, r0
- ldrb r0, [r4, 0x2]
- movs r5, 0x20
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x2]
- strb r3, [r4]
- mov r0, sp
- bl sub_80F4944
-_080F64DA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080F64A8
- bl sub_80F49F4
- ldr r0, _080F6500
- ldr r1, [r0]
- ldr r0, _080F6504
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F64F6:
- movs r0, 0
- b _080F650A
- .align 2, 0
-_080F64FC: .4byte gPlayerParty
-_080F6500: .4byte gUnknown_083DFEC4
-_080F6504: .4byte 0x00008fe6
-_080F6508:
- movs r0, 0x1
-_080F650A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F63D0
-
- thumb_func_start sub_80F6514
-sub_80F6514: @ 80F6514
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- mov r5, r10
- ldr r0, _080F65A4
- ldr r0, [r0]
- lsls r1, 2
- adds r0, r1
- ldr r2, _080F65A8
- adds r1, r0, r2
- ldrb r6, [r1]
- mov r8, r6
- ldr r1, _080F65AC
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r4, r0, 27
- adds r7, r4, 0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x2D
- movs r3, 0
- bl sub_80F44B0
- cmp r0, 0
- beq _080F655E
- b _080F66CA
-_080F655E:
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x2
- adds r3, r5, 0
- bl sub_80F44B0
- adds r0, r5, 0
- bl StringGetEnd10
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_80F44B0
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0xE
- bne _080F65B4
- movs r0, 0x64
- muls r4, r0
- ldr r0, _080F65B0
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r4, 0
- bl GetMonGender
- b _080F65EA
- .align 2, 0
-_080F65A4: .4byte gUnknown_083DFEC4
-_080F65A8: .4byte 0x0000893d
-_080F65AC: .4byte 0x0000893e
-_080F65B0: .4byte gPlayerParty
-_080F65B4:
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 4
- ldr r2, _080F6620
- adds r1, r2
- adds r0, r1
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0
- bl sub_80F44B0
- adds r1, r0, 0
- mov r0, r9
- bl GetGenderFromSpeciesAndPersonality
-_080F65EA:
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r9
- mov r1, r10
- bl sub_8040D8C
- cmp r0, 0
- beq _080F65FC
- movs r4, 0xFF
-_080F65FC:
- adds r0, r5, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
- movs r1, 0xFC
- strb r1, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x3F
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _080F6624
- cmp r4, 0xFE
- beq _080F663C
- b _080F6656
- .align 2, 0
-_080F6620: .4byte gUnknown_020300A4
-_080F6624:
- strb r1, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0xC
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0xD
- strb r0, [r5, 0x5]
- movs r0, 0xB5
- b _080F6652
-_080F663C:
- strb r1, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0xA
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0xB
- strb r0, [r5, 0x5]
- movs r0, 0xB6
-_080F6652:
- strb r0, [r5, 0x6]
- adds r5, 0x7
-_080F6656:
- movs r4, 0xFC
- strb r4, [r5]
- movs r1, 0x1
- strb r1, [r5, 0x1]
- strb r1, [r5, 0x2]
- strb r4, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0x5
- strb r0, [r5, 0x5]
- adds r5, 0x6
- strb r4, [r5]
- movs r6, 0x13
- strb r6, [r5, 0x1]
- movs r0, 0x46
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xBA
- strb r0, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0x11
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x34
- strb r0, [r5, 0x4]
- adds r5, 0x5
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl ConvertIntToDecimalString
- adds r5, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0x1
- bne _080F66C0
- ldr r0, _080F66B8
- ldr r0, [r0]
- ldr r2, [sp]
- lsls r1, r2, 2
- adds r0, r1
- ldr r1, _080F66BC
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- movs r2, 0x80
- movs r3, 0x1
- bl sub_8072C14
- adds r5, r0, 0
- b _080F66CE
- .align 2, 0
-_080F66B8: .4byte gUnknown_083DFEC4
-_080F66BC: .4byte 0x0000893c
-_080F66C0:
- strb r4, [r5]
- strb r6, [r5, 0x1]
- movs r0, 0x67
- strb r0, [r5, 0x2]
- adds r5, 0x3
-_080F66CA:
- movs r0, 0xFF
- strb r0, [r5]
-_080F66CE:
- adds r0, r5, 0
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6514
-
- thumb_func_start sub_80F66E0
-sub_80F66E0: @ 80F66E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080F676C
- mov r8, r0
- ldr r4, [r0]
- ldr r1, _080F6770
- adds r0, r4, r1
- ldr r2, _080F6774
- adds r5, r4, r2
- ldrh r1, [r5]
- movs r2, 0
- bl sub_80F6514
- movs r3, 0
- ldrsh r0, [r5, r3]
- movs r1, 0
- bl sub_80F4824
- ldrh r1, [r5]
- ldr r6, _080F6778
- adds r0, r4, r6
- movs r6, 0
- strh r1, [r0]
- ldr r1, _080F677C
- adds r0, r4, r1
- strb r6, [r0]
- movs r2, 0
- mov r9, r2
- movs r3, 0
- ldrsh r1, [r5, r3]
- lsls r1, 2
- adds r1, r4, r1
- ldr r5, _080F6780
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _080F6784
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x52
- movs r3, 0
- bl sub_80F44B0
- adds r7, r0, 0
- ldr r3, _080F6788
- adds r4, r3
- strb r6, [r4]
- movs r5, 0
- mov r12, r5
- mov r10, r8
-_080F674E:
- ldr r1, _080F678C
- mov r6, r12
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x36
- bgt _080F6790
- cmp r0, 0x32
- blt _080F6790
- movs r0, 0x7
- adds r2, r7, 0
- ands r2, r0
- lsrs r7, 3
- movs r0, 0x4
- b _080F679A
- .align 2, 0
-_080F676C: .4byte gUnknown_083DFEC4
-_080F6770: .4byte 0x00008829
-_080F6774: .4byte 0x0000876e
-_080F6778: .4byte 0x000087dc
-_080F677C: .4byte 0x0000bc8e
-_080F6780: .4byte 0x0000893d
-_080F6784: .4byte 0x0000893e
-_080F6788: .4byte 0x0000bc8f
-_080F678C: .4byte gUnknown_083E499C
-_080F6790:
- movs r0, 0x1
- adds r2, r7, 0
- ands r2, r0
- lsrs r7, 1
- movs r0, 0x1
-_080F679A:
- movs r4, 0
- adds r1, r2, 0
- add r0, r9
- mov r8, r0
- cmp r4, r1
- bcs _080F67D4
- mov r3, r10
- ldr r0, [r3]
- ldr r5, _080F6828
- adds r3, r0, r5
- ldr r6, _080F682C
- adds r6, r0, r6
- str r6, [sp]
- adds r5, r1, 0
-_080F67B6:
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- adds r0, r1, r0
- mov r6, r9
- adds r1, r6, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080F67B6
-_080F67D4:
- cmp r2, 0
- beq _080F67EC
- mov r0, r9
- cmp r0, 0x18
- bls _080F67EC
- mov r2, r10
- ldr r1, [r2]
- ldr r3, _080F6830
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F67EC:
- mov r5, r8
- lsls r0, r5, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x10
- bls _080F674E
- ldr r6, _080F6834
- ldr r2, [r6]
- ldr r1, _080F6828
- adds r0, r2, r1
- ldr r3, _080F6830
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080F6840
- ldr r5, _080F6838
- adds r0, r2, r5
- movs r1, 0
- strb r1, [r0]
- ldr r6, _080F683C
- adds r0, r2, r6
- strb r1, [r0]
- b _080F6850
- .align 2, 0
-_080F6828: .4byte 0x0000bc8e
-_080F682C: .4byte 0x0000bc4c
-_080F6830: .4byte 0x0000bc8f
-_080F6834: .4byte gUnknown_083DFEC4
-_080F6838: .4byte 0x0000bc90
-_080F683C: .4byte 0x0000bc91
-_080F6840:
- ldr r0, _080F6888
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080F688C
- adds r1, r2, r3
- movs r0, 0x3
- strb r0, [r1]
-_080F6850:
- ldr r5, _080F6890
- ldr r1, [r5]
- ldr r6, _080F6894
- adds r0, r1, r6
- ldr r2, _080F6898
- adds r1, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0
- mov r12, r3
- adds r3, r5, 0
- ldr r1, _080F689C
- movs r4, 0x9
-_080F6870:
- cmp r2, 0x8
- bls _080F68A0
- ldr r0, [r3]
- adds r0, r1
- add r0, r12
- strb r4, [r0]
- adds r0, r2, 0
- subs r0, 0x9
- lsls r0, 24
- lsrs r2, r0, 24
- b _080F68AA
- .align 2, 0
-_080F6888: .4byte 0x0000bc90
-_080F688C: .4byte 0x0000bc91
-_080F6890: .4byte gUnknown_083DFEC4
-_080F6894: .4byte 0x0000bc8e
-_080F6898: .4byte 0x0000bc8f
-_080F689C: .4byte 0x0000bc96
-_080F68A0:
- ldr r0, [r3]
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- movs r2, 0
-_080F68AA:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x2
- bls _080F6870
- ldr r5, _080F68DC
- ldr r0, [r5]
- ldr r6, _080F68E0
- adds r1, r0, r6
- add r1, r12
- ldr r2, _080F68E4
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F68DC: .4byte gUnknown_083DFEC4
-_080F68E0: .4byte 0x0000bc96
-_080F68E4: .4byte 0x0000bc8f
- thumb_func_end sub_80F66E0
-
- thumb_func_start sub_80F68E8
-sub_80F68E8: @ 80F68E8
- push {r4-r7,lr}
- ldr r3, _080F6918
- ldr r0, [r3]
- ldr r2, _080F691C
- adds r1, r0, r2
- ldrb r5, [r1]
- ldr r6, _080F6920
- adds r0, r6
- ldrb r4, [r0]
- movs r0, 0x1
- mov r12, r0
- ldr r2, _080F6924
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r6, r3, 0
- adds r7, r2, 0
- cmp r0, 0
- beq _080F692E
- lsls r0, r4, 24
- cmp r0, 0
- ble _080F692E
- b _080F69BC
- .align 2, 0
-_080F6918: .4byte gUnknown_083DFEC4
-_080F691C: .4byte 0x0000bc90
-_080F6920: .4byte 0x0000bc91
-_080F6924: .4byte gMain
-_080F6928:
- ldr r1, _080F69B0
- adds r0, r2, r1
- ldrb r4, [r0]
-_080F692E:
- ldrh r1, [r7, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F6978
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x2
- bgt _080F6978
- ldr r3, _080F69B4
- ldr r2, _080F69B8
-_080F6944:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x2
- bgt _080F6960
- adds r0, 0x1
- lsls r0, 24
- ldr r1, [r3]
- lsrs r4, r0, 24
- asrs r0, 24
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F6944
-_080F6960:
- ldr r2, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F69B8
- adds r1, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F69EC
- ldr r1, _080F69B0
- adds r0, r2, r1
- ldrb r4, [r0]
-_080F6978:
- ldrh r2, [r7, 0x30]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080F698A
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- bgt _080F6A3C
-_080F698A:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080F69AA
- lsls r0, r5, 24
- asrs r2, r0, 24
- ldr r1, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F69B8
- adds r1, r3
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r2, r0
- blt _080F6A38
-_080F69AA:
- movs r0, 0
- mov r12, r0
- b _080F69FC
- .align 2, 0
-_080F69B0: .4byte 0x0000bc91
-_080F69B4: .4byte gUnknown_083DFEC4
-_080F69B8: .4byte 0x0000bc96
-_080F69BC:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0
- ble _080F69DA
- subs r0, 0x1
- lsls r0, 24
- ldr r1, [r6]
- lsrs r4, r0, 24
- asrs r0, 24
- ldr r2, _080F6A2C
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F69BC
-_080F69DA:
- ldr r2, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F6A2C
- adds r1, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F6928
-_080F69EC:
- lsls r0, r5, 24
- asrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- blt _080F69FC
- subs r0, r1, 0x1
-_080F69F8:
- lsls r0, 24
- lsrs r5, r0, 24
-_080F69FC:
- mov r0, r12
- cmp r0, 0
- beq _080F6A44
- lsls r0, r5, 24
- asrs r0, 24
- ldr r3, [r6]
- ldr r1, _080F6A30
- adds r2, r3, r1
- ldrb r6, [r2]
- cmp r0, r6
- bne _080F6A20
- lsls r0, r4, 24
- asrs r0, 24
- ldr r6, _080F6A34
- adds r1, r3, r6
- ldrb r1, [r1]
- cmp r0, r1
- beq _080F6A40
-_080F6A20:
- strb r5, [r2]
- ldr r1, _080F6A34
- adds r0, r3, r1
- strb r4, [r0]
- b _080F6A44
- .align 2, 0
-_080F6A2C: .4byte 0x0000bc96
-_080F6A30: .4byte 0x0000bc90
-_080F6A34: .4byte 0x0000bc91
-_080F6A38:
- adds r0, r2, 0x1
- b _080F69F8
-_080F6A3C:
- subs r0, 0x1
- b _080F69F8
-_080F6A40:
- movs r2, 0
- mov r12, r2
-_080F6A44:
- mov r0, r12
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F68E8
-
- thumb_func_start sub_80F6A4C
-sub_80F6A4C: @ 80F6A4C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080F6AC4
- ldr r3, [r0]
- ldr r0, _080F6AC8
- adds r2, r3, r0
- lsls r0, r4, 24
- asrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bge _080F6A74
- ldr r5, _080F6ACC
- adds r0, r3, r5
- ldrh r0, [r0]
- strh r0, [r2]
-_080F6A74:
- ldr r1, _080F6ACC
- adds r0, r3, r1
- movs r5, 0
- ldrsh r1, [r2, r5]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F6A88
- movs r0, 0
- strh r0, [r2]
-_080F6A88:
- ldr r1, _080F6AD0
- adds r0, r3, r1
- strb r4, [r0]
- ldrh r1, [r2]
- ldr r2, _080F6AD4
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F6AD8
- ldr r5, _080F6ADC
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F6AE0
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- ldr r5, _080F6AE4
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6AE8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r5, _080F6AEC
- adds r1, r3, r5
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6AC4: .4byte gUnknown_083DFEC4
-_080F6AC8: .4byte 0x0000876e
-_080F6ACC: .4byte 0x00008774
-_080F6AD0: .4byte 0x0000bc94
-_080F6AD4: .4byte 0x000087dc
-_080F6AD8: .4byte REG_WININ
-_080F6ADC: .4byte 0x00003f37
-_080F6AE0: .4byte 0x00003f3f
-_080F6AE4: .4byte 0x000058f0
-_080F6AE8: .4byte 0x00002060
-_080F6AEC: .4byte 0x000087de
- thumb_func_end sub_80F6A4C
-
- thumb_func_start sub_80F6AF0
-sub_80F6AF0: @ 80F6AF0
- push {r4,lr}
- ldr r1, _080F6B10
- ldr r0, [r1]
- ldr r2, _080F6B14
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _080F6B04
- b _080F6C08
-_080F6B04:
- lsls r0, 2
- ldr r1, _080F6B18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F6B10: .4byte gUnknown_083DFEC4
-_080F6B14: .4byte 0x000087de
-_080F6B18: .4byte _080F6B1C
- .align 2, 0
-_080F6B1C:
- .4byte _080F6B38
- .4byte _080F6B54
- .4byte _080F6B6E
- .4byte _080F6B84
- .4byte _080F6B9C
- .4byte _080F6BC0
- .4byte _080F6BE0
-_080F6B38:
- bl sub_80F173C
- lsls r0, 24
- cmp r0, 0
- bne _080F6C18
- ldr r0, _080F6B4C
- ldr r1, [r0]
- ldr r3, _080F6B50
- adds r1, r3
- b _080F6BCE
- .align 2, 0
-_080F6B4C: .4byte gUnknown_083DFEC4
-_080F6B50: .4byte 0x000087de
-_080F6B54:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bl sub_80F1480
- bl sub_80F66E0
- b _080F6BC6
-_080F6B6E:
- bl sub_80F1238
- ldr r0, _080F6B7C
- ldr r1, [r0]
- ldr r2, _080F6B80
- adds r1, r2
- b _080F6BCE
- .align 2, 0
-_080F6B7C: .4byte gUnknown_083DFEC4
-_080F6B80: .4byte 0x000087de
-_080F6B84:
- bl sub_80F13FC
- ldr r0, _080F6B94
- ldr r1, [r0]
- ldr r3, _080F6B98
- adds r1, r3
- b _080F6BCE
- .align 2, 0
-_080F6B94: .4byte gUnknown_083DFEC4
-_080F6B98: .4byte 0x000087de
-_080F6B9C:
- ldr r4, [r4]
- ldr r1, _080F6BB8
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0
- bl sub_80F4824
- ldr r3, _080F6BBC
- adds r4, r3
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F6C18
- .align 2, 0
-_080F6BB8: .4byte 0x0000876e
-_080F6BBC: .4byte 0x000087de
-_080F6BC0:
- movs r0, 0
- bl sub_80F2E18
-_080F6BC6:
- ldr r0, _080F6BD8
- ldr r1, [r0]
- ldr r0, _080F6BDC
- adds r1, r0
-_080F6BCE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F6C18
- .align 2, 0
-_080F6BD8: .4byte gUnknown_083DFEC4
-_080F6BDC: .4byte 0x000087de
-_080F6BE0:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _080F6C18
- bl sub_80F1438
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F6C0C
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080F6C10
- ldr r1, [r0]
- ldr r2, _080F6C14
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F6C08:
- movs r0, 0
- b _080F6C1A
- .align 2, 0
-_080F6C0C: .4byte 0x0000dfff
-_080F6C10: .4byte gUnknown_083DFEC4
-_080F6C14: .4byte 0x000087de
-_080F6C18:
- movs r0, 0x1
-_080F6C1A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6AF0
-
- thumb_func_start sub_80F6C20
-sub_80F6C20: @ 80F6C20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F6D44
- ldr r0, [r0]
- ldr r1, _080F6D48
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- mov r8, r1
- ldr r2, _080F6D4C
- mov r9, r2
-_080F6C3A:
- ldr r1, _080F6D50
- mov r4, r8
- lsls r0, r4, 4
- adds r6, r0, r1
- ldrh r7, [r6]
- adds r0, r7, 0
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _080F6CA0
- ldr r0, _080F6D44
- ldr r4, [r0]
- ldr r0, _080F6D48
- adds r5, r4, r0
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- ldr r1, _080F6D54
- adds r0, r1
- strh r7, [r0]
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- ldr r2, _080F6D58
- adds r0, r2
- mov r1, r8
- strb r1, [r0]
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- mov r1, r8
- add r1, r9
- ldrb r1, [r1]
- adds r2, 0x1
- adds r0, r2
- strb r1, [r0]
- ldrh r0, [r6, 0xA]
- ldrh r1, [r6, 0xC]
- bl get_mapheader_by_bank_and_number
- ldrh r1, [r5]
- lsls r1, 3
- adds r4, r1
- ldrb r0, [r0, 0x14]
- ldr r1, _080F6D5C
- adds r4, r1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F6CA0:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x37
- bls _080F6C3A
- movs r2, 0
- mov r8, r2
- movs r6, 0
-_080F6CB4:
- ldr r1, _080F6D60
- mov r4, r8
- lsls r0, r4, 2
- adds r5, r0, r1
- ldrh r4, [r5]
- adds r0, r4, 0
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _080F6D0E
- ldr r0, _080F6D44
- ldr r2, [r0]
- ldr r0, _080F6D48
- adds r3, r2, r0
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldr r1, _080F6D54
- adds r0, r1
- strh r4, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldrh r1, [r5, 0x2]
- ldr r4, _080F6D5C
- adds r0, r4
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldr r1, _080F6D64
- adds r0, r1
- strb r6, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r2, r0
- mov r0, r8
- adds r0, 0x38
- adds r4, 0x2
- adds r2, r4
- strb r0, [r2]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080F6D0E:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0xC
- bls _080F6CB4
- ldr r3, _080F6D44
- ldr r2, [r3]
- ldr r1, _080F6D68
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080F6D6C
- adds r0, r2, r4
- strh r1, [r0]
- subs r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r1, _080F6D48
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080F6D70
- subs r4, r0, 0x1
- b _080F6D72
- .align 2, 0
-_080F6D44: .4byte gUnknown_083DFEC4
-_080F6D48: .4byte 0x0000d158
-_080F6D4C: .4byte gSaveBlock1 + 0x97A
-_080F6D50: .4byte gTrainerEyeTrainers
-_080F6D54: .4byte 0x0000cee8
-_080F6D58: .4byte 0x0000ceec
-_080F6D5C: .4byte 0x0000ceea
-_080F6D60: .4byte gUnknown_083E49C0
-_080F6D64: .4byte 0x0000ceed
-_080F6D68: .4byte 0x0000876c
-_080F6D6C: .4byte 0x00008770
-_080F6D70:
- movs r4, 0x7
-_080F6D72:
- ldr r1, _080F6DA8
- adds r0, r2, r1
- strh r4, [r0]
- ldr r3, [r3]
- ldr r2, _080F6DAC
- adds r0, r3, r2
- ldrh r0, [r0]
- subs r0, 0x1
- ldr r4, _080F6DB0
- adds r1, r3, r4
- strh r0, [r1]
- movs r1, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080F6D94
- movs r1, 0x1
-_080F6D94:
- ldr r2, _080F6DB4
- adds r0, r3, r2
- strb r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6DA8: .4byte 0x00008772
-_080F6DAC: .4byte 0x0000d158
-_080F6DB0: .4byte 0x00008774
-_080F6DB4: .4byte 0x000087c9
- thumb_func_end sub_80F6C20
-
- thumb_func_start sub_80F6DB8
-sub_80F6DB8: @ 80F6DB8
- push {r4,lr}
- movs r1, 0
- ldr r0, _080F6DEC
- ldr r4, [r0]
- ldr r2, _080F6DF0
- adds r0, r4, r2
- strb r1, [r0]
- movs r0, 0
- bl sub_80F6E04
- ldr r0, _080F6DF4
- adds r1, r4, r0
- ldr r0, _080F6DF8
- strh r0, [r1]
- movs r0, 0
- bl sub_80F2F7C
- ldr r1, _080F6DFC
- adds r0, r4, r1
- ldrh r0, [r0]
- ldr r2, _080F6E00
- adds r4, r2
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6DEC: .4byte gUnknown_083DFEC4
-_080F6DF0: .4byte 0x00008fe9
-_080F6DF4: .4byte 0x0000d15a
-_080F6DF8: .4byte 0x0000ffb8
-_080F6DFC: .4byte 0x0000876e
-_080F6E00: .4byte 0x000087dc
- thumb_func_end sub_80F6DB8
-
- thumb_func_start sub_80F6E04
-sub_80F6E04: @ 80F6E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F6E78
- ldr r5, [r0]
- ldr r1, _080F6E7C
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r0, r5, r0
- ldr r7, _080F6E80
- adds r0, r7
- ldrh r1, [r0]
- ldr r2, _080F6E84
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r6, [r0, 0x3]
- lsls r0, r6, 3
- mov r8, r0
- ldr r0, _080F6E88
- add r0, r8
- ldr r2, _080F6E8C
- lsls r1, r6, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _080F6E90
- adds r3, r5, r2
- lsls r2, r4, 13
- ldr r7, _080F6E94
- adds r2, r7
- adds r2, r5, r2
- str r2, [sp]
- str r6, [sp, 0x4]
- movs r2, 0x1
- bl DecompressPicFromTable_2
- ldr r0, _080F6E98
- add r8, r0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 7
- adds r5, r4
- adds r1, r5, 0
- bl LZ77UnCompWram
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E78: .4byte gUnknown_083DFEC4
-_080F6E7C: .4byte 0x0000876e
-_080F6E80: .4byte 0x0000cee8
-_080F6E84: .4byte gTrainers
-_080F6E88: .4byte gTrainerFrontPicTable
-_080F6E8C: .4byte gTrainerFrontPicCoords
-_080F6E90: .4byte 0x000131e4
-_080F6E94: .4byte 0x0000d1e4
-_080F6E98: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_80F6E04
-
- thumb_func_start sub_80F6E9C
-sub_80F6E9C: @ 80F6E9C
- push {lr}
- ldr r0, _080F6EB4
- ldr r0, [r0]
- ldr r2, _080F6EB8
- adds r1, r0, r2
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080F6EBC
- movs r0, 0
- b _080F6ED0
- .align 2, 0
-_080F6EB4: .4byte gUnknown_083DFEC4
-_080F6EB8: .4byte 0x0000d15a
-_080F6EBC:
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080F6ECC
- movs r0, 0x1
- b _080F6ED0
-_080F6ECC:
- movs r0, 0
- strh r0, [r1]
-_080F6ED0:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6E9C
-
- thumb_func_start sub_80F6ED4
-sub_80F6ED4: @ 80F6ED4
- push {lr}
- ldr r0, _080F6F00
- ldr r0, [r0]
- ldr r2, _080F6F04
- adds r1, r0, r2
- ldrh r3, [r1]
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x48
- negs r2, r2
- cmp r0, r2
- beq _080F6F0A
- adds r0, r3, 0
- subs r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r2
- ble _080F6F08
- movs r0, 0x1
- b _080F6F0C
- .align 2, 0
-_080F6F00: .4byte gUnknown_083DFEC4
-_080F6F04: .4byte 0x0000d15a
-_080F6F08:
- strh r2, [r1]
-_080F6F0A:
- movs r0, 0
-_080F6F0C:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6ED4
-
- thumb_func_start sub_80F6F10
-sub_80F6F10: @ 80F6F10
- push {lr}
- ldr r0, _080F6F48
- ldr r0, [r0]
- ldr r2, _080F6F4C
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080F6F50
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080F6F54
- movs r0, 0xC8
- strh r0, [r1]
- ldr r0, _080F6F58
- strh r2, [r0]
- subs r1, 0x8
- ldr r2, _080F6F5C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F6F60
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl sub_80F6FB8
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F48: .4byte gUnknown_083DFEC4
-_080F6F4C: .4byte 0x0000d15e
-_080F6F50: .4byte 0x0000d15f
-_080F6F54: .4byte REG_BLDCNT
-_080F6F58: .4byte REG_BLDY
-_080F6F5C: .4byte 0x00003f3f
-_080F6F60: .4byte 0x00001f1f
- thumb_func_end sub_80F6F10
-
- thumb_func_start sub_80F6F64
-sub_80F6F64: @ 80F6F64
- push {lr}
- ldr r0, _080F6F9C
- ldr r1, [r0]
- ldr r0, _080F6FA0
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _080F6FB0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080F6FA4
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080F6FAC
- ldr r1, _080F6FA8
- movs r0, 0x6
- strh r0, [r1]
- b _080F6FB0
- .align 2, 0
-_080F6F9C: .4byte gUnknown_083DFEC4
-_080F6FA0: .4byte 0x0000d15e
-_080F6FA4: .4byte 0x0000d15f
-_080F6FA8: .4byte REG_BLDY
-_080F6FAC:
- ldr r0, _080F6FB4
- strh r1, [r0]
-_080F6FB0:
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FB4: .4byte REG_BLDY
- thumb_func_end sub_80F6F64
-
- thumb_func_start sub_80F6FB8
-sub_80F6FB8: @ 80F6FB8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _080F6FDC
- ldr r1, _080F6FD0
- ldr r2, _080F6FD4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FD8
- b _080F6FE8
- .align 2, 0
-_080F6FD0: .4byte REG_WIN0H
-_080F6FD4: .4byte 0x0000e8f0
-_080F6FD8: .4byte 0x00000888
-_080F6FDC:
- ldr r1, _080F6FF0
- ldr r2, _080F6FF4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FF8
-_080F6FE8:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FF0: .4byte REG_WIN0H
-_080F6FF4: .4byte 0x0000e8f0
-_080F6FF8: .4byte 0x00000818
- thumb_func_end sub_80F6FB8
-
- thumb_func_start sub_80F6FFC
-sub_80F6FFC: @ 80F6FFC
- ldr r0, _080F7008
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7008: .4byte REG_BLDCNT
- thumb_func_end sub_80F6FFC
-
- thumb_func_start sub_80F700C
-sub_80F700C: @ 80F700C
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080F7078
- ldr r4, [r2]
- lsls r2, r1, 3
- adds r2, r4, r2
- ldr r3, _080F707C
- adds r2, r3
- ldrh r3, [r2]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 3
- ldr r3, _080F7080
- adds r5, r2, r3
- adds r3, r0, 0
- ldr r0, _080F7084
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcs _080F7060
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080F7088
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x4B
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r1, r5, 0x4
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
-_080F7060:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x80
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7078: .4byte gUnknown_083DFEC4
-_080F707C: .4byte 0x0000cee8
-_080F7080: .4byte gTrainers
-_080F7084: .4byte 0x0000d158
-_080F7088: .4byte gTrainerClassNames
- thumb_func_end sub_80F700C
-
- thumb_func_start sub_80F708C
-sub_80F708C: @ 80F708C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080F70E4
- ldr r3, [r0]
- ldr r0, _080F70E8
- adds r2, r3, r0
- lsls r0, r4, 24
- asrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bge _080F70B4
- ldr r5, _080F70EC
- adds r0, r3, r5
- ldrh r0, [r0]
- strh r0, [r2]
-_080F70B4:
- ldr r1, _080F70EC
- adds r0, r3, r1
- movs r5, 0
- ldrsh r1, [r2, r5]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F70C8
- movs r0, 0
- strh r0, [r2]
-_080F70C8:
- ldr r1, _080F70F0
- adds r0, r3, r1
- strb r4, [r0]
- ldrh r1, [r2]
- ldr r2, _080F70F4
- adds r0, r3, r2
- strh r1, [r0]
- ldr r5, _080F70F8
- adds r1, r3, r5
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F70E4: .4byte gUnknown_083DFEC4
-_080F70E8: .4byte 0x0000876e
-_080F70EC: .4byte 0x00008774
-_080F70F0: .4byte 0x0000bc94
-_080F70F4: .4byte 0x000087dc
-_080F70F8: .4byte 0x000087de
- thumb_func_end sub_80F708C
-
- thumb_func_start sub_80F70FC
-sub_80F70FC: @ 80F70FC
- push {r4-r6,lr}
- ldr r1, _080F711C
- ldr r0, [r1]
- ldr r2, _080F7120
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _080F7110
- b _080F7218
-_080F7110:
- lsls r0, 2
- ldr r1, _080F7124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F711C: .4byte gUnknown_083DFEC4
-_080F7120: .4byte 0x000087de
-_080F7124: .4byte _080F7128
- .align 2, 0
-_080F7128:
- .4byte _080F7144
- .4byte _080F714A
- .4byte _080F7164
- .4byte _080F716C
- .4byte _080F71A0
- .4byte _080F71BA
- .4byte _080F71EA
-_080F7144:
- bl sub_80F6ED4
- b _080F71F8
-_080F714A:
- movs r0, 0
- bl sub_80F6E04
- ldr r0, _080F715C
- ldr r1, [r0]
- ldr r2, _080F7160
- adds r1, r2
- b _080F7206
- .align 2, 0
-_080F715C: .4byte gUnknown_083DFEC4
-_080F7160: .4byte 0x000087de
-_080F7164:
- movs r0, 0
- bl sub_80F2F7C
- b _080F71FE
-_080F716C:
- ldr r4, [r4]
- ldr r2, _080F7194
- adds r5, r4, r2
- ldr r0, _080F7198
- adds r6, r4, r0
- ldrh r1, [r6]
- adds r0, r5, 0
- bl sub_80F700C
- adds r0, r5, 0
- bl sub_80F43D4
- bl sub_80F105C
- ldrb r0, [r6]
- bl sub_80F0FFC
- ldr r2, _080F719C
- adds r4, r2
- b _080F71CC
- .align 2, 0
-_080F7194: .4byte 0x00008788
-_080F7198: .4byte 0x0000876e
-_080F719C: .4byte 0x000087de
-_080F71A0:
- bl sub_80F0CD8
- ldr r0, _080F71D4
- ldr r1, [r0]
- ldr r0, _080F71D8
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r2, _080F71DC
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71BA:
- ldr r0, _080F71D4
- ldr r1, [r0]
- ldr r0, _080F71D8
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bhi _080F71E0
- bl sub_80F0D5C
-_080F71CC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F721C
- .align 2, 0
-_080F71D4: .4byte gUnknown_083DFEC4
-_080F71D8: .4byte 0x0000bc95
-_080F71DC: .4byte 0x000087de
-_080F71E0:
- ldr r2, _080F7210
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71EA:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
- bl sub_80F0D5C
-_080F71F8:
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
-_080F71FE:
- ldr r0, _080F7214
- ldr r1, [r0]
- ldr r0, _080F7210
- adds r1, r0
-_080F7206:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F721C
- .align 2, 0
-_080F7210: .4byte 0x000087de
-_080F7214: .4byte gUnknown_083DFEC4
-_080F7218:
- movs r0, 0
- b _080F721E
-_080F721C:
- movs r0, 0x1
-_080F721E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F70FC
-
- thumb_func_start sub_80F7224
-sub_80F7224: @ 80F7224
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080F7260
- adds r0, r1
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F7264
- ldr r0, [r0]
- ldr r3, _080F7268
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r3, _080F726C
- adds r0, r3
- adds r4, r0, r1
- cmp r2, 0xFF
- beq _080F7270
- adds r0, r2, 0
- movs r1, 0x1D
- bl __udivsi3
- b _080F7272
- .align 2, 0
-_080F7260: .4byte gPlayerParty
-_080F7264: .4byte gUnknown_083DFEC4
-_080F7268: .4byte 0x00008fe9
-_080F726C: .4byte 0x00008931
-_080F7270:
- movs r0, 0x9
-_080F7272:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7224
-
- thumb_func_start sub_80F727C
-sub_80F727C: @ 80F727C
- ldr r1, _080F7288
- str r0, [r1]
- movs r1, 0
- strb r1, [r0, 0xB]
- bx lr
- .align 2, 0
-_080F7288: .4byte gUnknown_020388B8
- thumb_func_end sub_80F727C
-
- thumb_func_start sub_80F728C
-sub_80F728C: @ 80F728C
- push {lr}
- sub sp, 0x4
- ldr r0, _080F72C4
- ldrb r0, [r0, 0x14]
- lsrs r0, 3
- bl GetTextWindowFrameGraphics
- ldr r3, _080F72C8
- ldr r2, [r3]
- ldr r1, [r0]
- str r1, [r2, 0x28]
- ldr r0, [r0, 0x4]
- str r0, [r2, 0x2C]
- ldr r0, _080F72CC
- adds r2, r0
- movs r1, 0
- strb r1, [r2]
- mov r0, sp
- strh r1, [r0]
- ldr r1, [r3]
- adds r1, 0x30
- ldr r2, _080F72D0
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F72C4: .4byte gSaveBlock2
-_080F72C8: .4byte gUnknown_020388B8
-_080F72CC: .4byte 0x000010b0
-_080F72D0: .4byte 0x01000800
- thumb_func_end sub_80F728C
-
- thumb_func_start sub_80F72D4
-sub_80F72D4: @ 80F72D4
- push {r4-r7,lr}
- ldr r0, _080F72F4
- ldr r1, [r0]
- ldr r2, _080F72F8
- adds r0, r1, r2
- ldrb r2, [r0]
- lsls r0, r2, 8
- adds r0, 0x30
- adds r5, r1, r0
- cmp r2, 0xD
- beq _080F73A4
- cmp r2, 0xD
- bgt _080F72FC
- cmp r2, 0
- beq _080F7302
- b _080F734C
- .align 2, 0
-_080F72F4: .4byte gUnknown_020388B8
-_080F72F8: .4byte 0x000010b0
-_080F72FC:
- cmp r2, 0xE
- beq _080F73F0
- b _080F734C
-_080F7302:
- ldr r0, [r1, 0x28]
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F7312:
- ldr r6, _080F7344
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x20
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F7312
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x40
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r0, _080F7348
- adds r1, r0
- b _080F7392
- .align 2, 0
-_080F7344: .4byte gUnknown_020388B8
-_080F7348: .4byte 0x000010b0
-_080F734C:
- ldr r0, _080F739C
- ldr r0, [r0]
- ldr r0, [r0, 0x28]
- adds r0, 0x60
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F7362:
- ldr r6, _080F739C
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x80
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F7362
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0xA0
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r2, _080F73A0
- adds r1, r2
-_080F7392:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F73FC
- .align 2, 0
-_080F739C: .4byte gUnknown_020388B8
-_080F73A0: .4byte 0x000010b0
-_080F73A4:
- ldr r0, [r1, 0x28]
- adds r0, 0xC0
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F73B6:
- ldr r6, _080F73F4
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0xE0
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F73B6
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r2, _080F73F8
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F73F0:
- movs r0, 0
- b _080F73FE
- .align 2, 0
-_080F73F4: .4byte gUnknown_020388B8
-_080F73F8: .4byte 0x000010b0
-_080F73FC:
- movs r0, 0x1
-_080F73FE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F72D4
-
- thumb_func_start sub_80F7404
-sub_80F7404: @ 80F7404
- push {lr}
- bl sub_80F728C
-_080F740A:
- bl sub_80F72D4
- lsls r0, 24
- cmp r0, 0
- bne _080F740A
- pop {r0}
- bx r0
- thumb_func_end sub_80F7404
-
- thumb_func_start sub_80F7418
-sub_80F7418: @ 80F7418
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r2, _080F746C
- ldr r3, [r2]
- movs r1, 0
- strb r1, [r3, 0x5]
- ldr r1, [r2]
- strb r0, [r1, 0x4]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0x1
-_080F7434:
- ldr r0, [r4]
- adds r1, r0, 0x6
- adds r1, r3
- ldrb r0, [r0, 0x4]
- asrs r0, r3
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F7434
- bl sub_814A7FC
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- ldr r2, _080F746C
- ldr r3, [r2]
- ldrh r2, [r3]
- ldrh r3, [r3, 0x2]
- bl sub_80F761C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F746C: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7418
-
- thumb_func_start sub_80F7470
-sub_80F7470: @ 80F7470
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080F74FC
-_080F7476:
- ldr r0, [r5]
- ldrh r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080F7476
- ldr r4, _080F74FC
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- movs r4, 0
-_080F74A8:
- ldr r0, _080F74FC
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F74A8
- movs r4, 0
-_080F74C8:
- ldr r5, _080F74FC
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x14
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080F74C8
- bl sub_814A7FC
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
-_080F74F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F74FC: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7470
-
- thumb_func_start sub_80F7500
-sub_80F7500: @ 80F7500
- push {r4,r5,lr}
- sub sp, 0x30
- ldr r4, _080F7580
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x30
- str r0, [sp, 0x18]
- add r1, sp, 0x1C
- movs r5, 0
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r1]
- ldrh r1, [r2]
- mov r0, sp
- adds r0, 0x1E
- strh r1, [r0]
- add r1, sp, 0x20
- ldr r0, _080F7584
- str r0, [sp, 0x20]
- movs r0, 0xA4
- lsls r0, 3
- strh r0, [r1, 0x4]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- add r0, sp, 0x28
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r0, [r4]
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- beq _080F7558
- mov r0, sp
- bl LoadTilesForSpriteSheets
- ldr r0, [r4]
- strb r5, [r0, 0xB]
-_080F7558:
- ldr r0, _080F7588
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F758C
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x5]
- subs r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- cmp r0, 0
- bge _080F75FE
- ldr r1, [r4]
- movs r0, 0x5
- strb r0, [r1, 0x5]
- b _080F75FE
- .align 2, 0
-_080F7580: .4byte gUnknown_020388B8
-_080F7584: .4byte gPokenavConditionMenuMisc_Gfx
-_080F7588: .4byte gMain
-_080F758C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F75B0
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- ble _080F75FE
- ldr r0, [r4]
- strb r5, [r0, 0x5]
- b _080F75FE
-_080F75B0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F7602
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r4]
- movs r1, 0x5
- ldrsb r1, [r0, r1]
- cmp r1, 0x4
- beq _080F75DC
- cmp r1, 0x5
- beq _080F7610
- adds r0, 0x6
- adds r1, r0, r1
- movs r2, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F75FC
- movs r2, 0x1
- b _080F75FC
-_080F75DC:
- strb r5, [r0, 0x4]
- movs r3, 0
-_080F75E0:
- ldr r2, [r4]
- adds r0, r2, 0x6
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, r3
- ldrb r1, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F75E0
- b _080F7610
-_080F75FC:
- strb r2, [r1]
-_080F75FE:
- movs r0, 0x1
- b _080F7612
-_080F7602:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080F75FE
- movs r0, 0x5
- bl PlaySE
-_080F7610:
- movs r0, 0
-_080F7612:
- add sp, 0x30
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F7500
-
- thumb_func_start sub_80F761C
-sub_80F761C: @ 80F761C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x5C
- adds r5, r2, 0
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x50]
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x54]
- ldr r0, _080F7820
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0x30
- str r0, [sp, 0x1C]
- add r1, sp, 0x20
- movs r2, 0
- mov r9, r2
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r1]
- mov r0, sp
- adds r0, 0x22
- strh r5, [r0]
- add r1, sp, 0x24
- ldr r0, _080F7824
- str r0, [sp, 0x24]
- movs r0, 0xA4
- lsls r0, 3
- strh r0, [r1, 0x4]
- adds r0, r5, 0x1
- strh r0, [r1, 0x6]
- add r0, sp, 0x2C
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r6, sp, 0x1C
- add r0, sp, 0x4
- adds r1, r6, 0
- movs r2, 0x18
- bl memcpy
- mov r3, r8
- ldr r0, [r3]
- ldr r0, [r0, 0x2C]
- str r0, [sp, 0x34]
- add r0, sp, 0x38
- add r1, sp, 0x54
- ldrh r1, [r1]
- strh r1, [r0]
- add r1, sp, 0x3C
- ldr r0, _080F7828
- str r0, [sp, 0x3C]
- ldr r0, [sp, 0x54]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- add r0, sp, 0x44
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r4, sp, 0x34
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x18
- bl memcpy
- strh r5, [r4]
- add r2, sp, 0x54
- ldrh r2, [r2]
- strh r2, [r4, 0x2]
- ldr r0, _080F782C
- str r0, [r4, 0x4]
- ldr r0, _080F7830
- str r0, [r4, 0x8]
- mov r3, r9
- str r3, [r4, 0xC]
- ldr r0, _080F7834
- str r0, [r4, 0x10]
- ldr r0, _080F7838
- str r0, [r4, 0x14]
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xB]
- add r0, sp, 0x4
- bl AllocTilesForSpriteSheets
- adds r0, r6, 0
- bl LoadSpritePalettes
- movs r5, 0
- ldr r1, [sp, 0x4C]
- lsls r0, r1, 16
- movs r2, 0x80
- lsls r2, 14
- adds r2, r0
- mov r8, r2
- str r0, [sp, 0x58]
- ldr r3, [sp, 0x50]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r7, r0, r1
- mov r9, r0
-_080F7700:
- adds r0, r4, 0
- mov r2, r8
- asrs r1, r2, 16
- asrs r2, r7, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080F7718
- b _080F7850
-_080F7718:
- ldr r6, _080F7820
- ldr r2, [r6]
- lsls r0, r5, 2
- adds r2, 0xC
- adds r2, r0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, _080F783C
- adds r0, r1
- str r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080F7700
- ldr r0, [r6]
- ldr r1, [r0, 0x10]
- mov r3, r9
- asrs r0, r3, 16
- adds r0, 0x60
- strh r0, [r1, 0x22]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- ldr r0, _080F7840
- str r0, [r4, 0x8]
- ldr r0, _080F7844
- str r0, [r4, 0x14]
- ldr r0, _080F7848
- str r0, [r4, 0x4]
- movs r5, 0
- ldr r0, [sp, 0x58]
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- mov r10, r0
-_080F7770:
- lsls r2, r5, 4
- adds r2, 0x10
- mov r3, r9
- asrs r3, 16
- mov r8, r3
- add r2, r8
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- mov r3, r10
- asrs r1, r3, 16
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F7860
- ldr r6, _080F7820
- ldr r1, [r6]
- lsls r0, r5, 2
- adds r1, 0x14
- adds r1, r0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r7, _080F783C
- adds r0, r7
- str r0, [r1]
- strh r5, [r0, 0x2E]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F7770
- ldr r0, _080F784C
- str r0, [r4, 0x14]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F7874
- ldr r1, [r6]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r7
- str r0, [r1, 0x24]
- ldrb r2, [r0, 0x1]
- movs r1, 0x3F
- ands r1, r2
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, [r6]
- ldr r2, [r0, 0x24]
- ldrb r0, [r2, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r6]
- ldr r0, [r0, 0x24]
- movs r1, 0x9
- bl StartSpriteAnim
- ldr r1, [r6]
- ldr r2, [r1, 0x24]
- ldr r3, [sp, 0x58]
- asrs r0, r3, 16
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r2, [r1, 0x24]
- mov r0, r8
- adds r0, 0x50
- strh r0, [r2, 0x22]
- ldr r0, [r1, 0x24]
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0
- bl CalcCenterToCornerVec
- b _080F787A
- .align 2, 0
-_080F7820: .4byte gUnknown_020388B8
-_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
-_080F7828: .4byte gUnknown_08E966B8
-_080F782C: .4byte gUnknown_083E5214
-_080F7830: .4byte gSpriteAnimTable_83E52AC
-_080F7834: .4byte gDummySpriteAffineAnimTable
-_080F7838: .4byte nullsub_65
-_080F783C: .4byte gSprites
-_080F7840: .4byte gSpriteAnimTable_83E5274
-_080F7844: .4byte sub_80F78CC
-_080F7848: .4byte gUnknown_083E521C
-_080F784C: .4byte SpriteCallbackDummy
-_080F7850:
- ldr r0, _080F785C
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0xC
- b _080F7868
- .align 2, 0
-_080F785C: .4byte gUnknown_020388B8
-_080F7860:
- ldr r0, _080F7870
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x14
-_080F7868:
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _080F78B0
- .align 2, 0
-_080F7870: .4byte gUnknown_020388B8
-_080F7874:
- ldr r1, [r6]
- movs r0, 0
- str r0, [r1, 0x24]
-_080F787A:
- ldr r4, _080F78C0
- ldr r1, [r4]
- ldr r0, [sp, 0x50]
- adds r0, 0x8
- strb r0, [r1, 0xA]
- ldr r1, [sp, 0x54]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0
- movs r2, 0xF
- movs r3, 0
- bl sub_814A5C0
- ldr r0, [sp, 0x4C]
- adds r0, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- ldrb r1, [r1, 0xA]
- bl sub_814A880
- ldr r0, _080F78C4
- bl sub_814AABC
-_080F78B0:
- add sp, 0x5C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F78C0: .4byte gUnknown_020388B8
-_080F78C4: .4byte sub_80F7908
- thumb_func_end sub_80F761C
-
- thumb_func_start nullsub_65
-nullsub_65: @ 80F78C8
- bx lr
- thumb_func_end nullsub_65
-
- thumb_func_start sub_80F78CC
-sub_80F78CC: @ 80F78CC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F78F4
- ldr r0, [r0]
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- adds r0, 0x6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F78F8
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080F7902
- .align 2, 0
-_080F78F4: .4byte gUnknown_020388B8
-_080F78F8:
- lsls r1, 25
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_080F7902:
- pop {r0}
- bx r0
- thumb_func_end sub_80F78CC
-
- thumb_func_start sub_80F7908
-sub_80F7908: @ 80F7908
- ldr r1, _080F791C
- ldr r2, [r1]
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- lsls r1, 4
- ldrb r2, [r2, 0xA]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F791C: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7908
-
- thumb_func_start sub_80F7920
-sub_80F7920: @ 80F7920
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- bne _080F7930
- ldr r2, _080F793C
-_080F7930:
- movs r3, 0x10
- bl sub_80F7960
- pop {r1}
- bx r1
- .align 2, 0
-_080F793C: .4byte gUnknown_083E49F4
- thumb_func_end sub_80F7920
-
- thumb_func_start sub_80F7940
-sub_80F7940: @ 80F7940
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- bne _080F7950
- ldr r2, _080F795C
-_080F7950:
- movs r3, 0x1
- bl sub_80F7960
- pop {r1}
- bx r1
- .align 2, 0
-_080F795C: .4byte gUnknown_083E49F4
- thumb_func_end sub_80F7940
-
- thumb_func_start sub_80F7960
-sub_80F7960: @ 80F7960
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _080F79DC
- str r4, [sp, 0x18]
- movs r4, 0x80
- add r5, sp, 0x18
- lsrs r6, r0, 16
- orrs r0, r4
- str r0, [r5, 0x4]
- str r2, [sp, 0x20]
- ldr r0, _080F79E0
- mov r8, r0
- add r4, sp, 0x20
- ldr r0, [r4, 0x4]
- mov r2, r8
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- movs r2, 0
- strh r6, [r0]
- strh r1, [r0, 0x2]
- ldr r0, _080F79E4
- str r0, [sp, 0x4]
- ldr r0, _080F79E8
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _080F79EC
- str r0, [sp, 0x10]
- ldr r0, _080F79F0
- str r0, [sp, 0x14]
- lsls r3, 23
- lsrs r3, 16
- ldr r0, [r5, 0x4]
- mov r1, r8
- ands r0, r1
- orrs r0, r3
- str r0, [r5, 0x4]
- adds r0, r5, 0
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F79F4
- movs r0, 0
- b _080F79FE
- .align 2, 0
-_080F79DC: .4byte gUnknown_083E4A14
-_080F79E0: .4byte 0xffff0000
-_080F79E4: .4byte gUnknown_083E52B4
-_080F79E8: .4byte gSpriteAnimTable_83E533C
-_080F79EC: .4byte gDummySpriteAffineAnimTable
-_080F79F0: .4byte nullsub_65
-_080F79F4:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F7A0C
- adds r0, r1
-_080F79FE:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F7A0C: .4byte gSprites
- thumb_func_end sub_80F7960
-
- thumb_func_start sub_80F7A10
-sub_80F7A10: @ 80F7A10
- lsls r0, 24
- lsrs r0, 17
- ldr r2, _080F7A28
- adds r0, r2
- ldr r2, _080F7A2C
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080F7A30
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080F7A28: .4byte gUnknown_083E4A14
-_080F7A2C: .4byte 0x040000d4
-_080F7A30: .4byte 0x80000040
- thumb_func_end sub_80F7A10
-
- thumb_func_start sub_80F7A34
-sub_80F7A34: @ 80F7A34
- push {r4,lr}
- ldr r0, _080F7A64
- movs r1, 0
- strb r1, [r0]
- adds r2, r0, 0
- adds r2, 0x29
- strb r1, [r2]
- movs r2, 0
- adds r4, r0, 0x2
- ldr r3, _080F7A68
-_080F7A48:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7A48
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7A64: .4byte gSaveBlock1 + 0x2D94
-_080F7A68: .4byte gUnknown_083E537C
- thumb_func_end sub_80F7A34
-
- thumb_func_start sub_80F7A6C
-sub_80F7A6C: @ 80F7A6C
- ldr r0, _080F7A78
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A78: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A6C
-
- thumb_func_start sub_80F7A7C
-sub_80F7A7C: @ 80F7A7C
- push {lr}
- bl sub_80F83F8
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A7C
-
- thumb_func_start sub_80F7A88
-sub_80F7A88: @ 80F7A88
- ldr r0, _080F7A94
- movs r2, 0
- movs r1, 0x4
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A94: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A88
-
- thumb_func_start sub_80F7A98
-sub_80F7A98: @ 80F7A98
- push {lr}
- bl sub_81099CC
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A98
-
- thumb_func_start sub_80F7AA4
-sub_80F7AA4: @ 80F7AA4
- push {lr}
- ldr r0, _080F7AC8
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 17
- cmp r0, 0x4
- bhi _080F7B00
- lsls r0, 2
- ldr r1, _080F7ACC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7AC8: .4byte gSaveBlock2
-_080F7ACC: .4byte _080F7AD0
- .align 2, 0
-_080F7AD0:
- .4byte _080F7AE4
- .4byte _080F7AEA
- .4byte _080F7AF0
- .4byte _080F7AF6
- .4byte _080F7AFC
-_080F7AE4:
- bl sub_80F7A34
- b _080F7B00
-_080F7AEA:
- bl sub_80F7A6C
- b _080F7B00
-_080F7AF0:
- bl sub_80F7A98
- b _080F7B00
-_080F7AF6:
- bl sub_80F7A7C
- b _080F7B00
-_080F7AFC:
- bl sub_80F7A88
-_080F7B00:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7AA4
-
- thumb_func_start GetCurrentMauvilleOldMan
-GetCurrentMauvilleOldMan: @ 80F7B08
- ldr r0, _080F7B10
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080F7B10: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end GetCurrentMauvilleOldMan
-
- thumb_func_start sub_80F7B14
-sub_80F7B14: @ 80F7B14
- push {r4,lr}
- ldr r4, _080F7B28
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B28: .4byte gScriptResult
- thumb_func_end sub_80F7B14
-
- thumb_func_start sub_80F7B2C
-sub_80F7B2C: @ 80F7B2C
- ldr r0, _080F7B38
- ldr r1, _080F7B3C
- adds r1, 0x29
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7B38: .4byte gScriptResult
-_080F7B3C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7B2C
-
- thumb_func_start sub_80F7B40
-sub_80F7B40: @ 80F7B40
- push {r4,r5,lr}
- ldr r5, _080F7B98
- adds r0, r5, 0
- adds r0, 0x1A
- ldr r4, _080F7B9C
- adds r1, r4, 0
- bl StringCopy
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x25
- adds r4, 0xA
-_080F7B58:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F7B58
- movs r2, 0
- movs r0, 0x29
- adds r0, r5
- mov r12, r0
- adds r4, r5, 0x2
- adds r3, r5, 0
- adds r3, 0xE
-_080F7B78:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7B78
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B98: .4byte gSaveBlock1 + 0x2D94
-_080F7B9C: .4byte gSaveBlock2
- thumb_func_end sub_80F7B40
-
- thumb_func_start sub_80F7BA0
-sub_80F7BA0: @ 80F7BA0
- push {r4-r7,lr}
- ldr r1, _080F7C48
- ldr r0, _080F7C4C
- ldrh r0, [r0]
- adds r5, r1, 0
- adds r5, 0xE
- cmp r0, 0
- bne _080F7BB2
- adds r5, r1, 0x2
-_080F7BB2:
- ldr r2, _080F7C50
- adds r4, r2, 0
- movs r6, 0
-_080F7BB8:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- adds r7, r6, 0x1
- cmp r2, r4
- beq _080F7BDA
- movs r1, 0x37
-_080F7BCC:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BD4
- strb r1, [r4]
-_080F7BD4:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BCC
-_080F7BDA:
- adds r4, 0x1
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C02
- movs r1, 0x37
-_080F7BF4:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BFC
- strb r1, [r4]
-_080F7BFC:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BF4
-_080F7C02:
- adds r4, 0x1
- movs r0, 0xFE
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C2A
- movs r1, 0x37
-_080F7C1C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7C24
- strb r1, [r4]
-_080F7C24:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7C1C
-_080F7C2A:
- cmp r6, 0
- bne _080F7C3A
- movs r0, 0xFC
- strb r0, [r2]
- adds r2, 0x1
- movs r0, 0xF
- strb r0, [r2]
- adds r2, 0x1
-_080F7C3A:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _080F7BB8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C48: .4byte gSaveBlock1 + 0x2D94
-_080F7C4C: .4byte gUnknown_0202E8CC
-_080F7C50: .4byte gStringVar4
- thumb_func_end sub_80F7BA0
-
- thumb_func_start sub_80F7C54
-sub_80F7C54: @ 80F7C54
- push {lr}
- ldr r0, _080F7C6C
- ldrb r0, [r0]
- bl sub_80F7F80
- bl MenuDisplayMessageBox
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C6C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F7C54
-
- thumb_func_start sub_80F7C70
-sub_80F7C70: @ 80F7C70
- ldr r0, _080F7C7C
- ldr r1, _080F7C80
- ldrb r1, [r1, 0x1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7C7C: .4byte gScriptResult
-_080F7C80: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C70
-
- thumb_func_start sub_80F7C84
-sub_80F7C84: @ 80F7C84
- ldr r1, _080F7C8C
- movs r0, 0x1
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7C8C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C84
-
- thumb_func_start sub_80F7C90
-sub_80F7C90: @ 80F7C90
- push {lr}
- bl sub_80EB8EC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080F7CA8
- cmp r1, r0
- bne _080F7CB0
- ldr r1, _080F7CAC
- movs r0, 0
- b _080F7CBA
- .align 2, 0
-_080F7CA8: .4byte 0x0000ffff
-_080F7CAC: .4byte gScriptResult
-_080F7CB0:
- ldr r0, _080F7CC0
- bl sub_80EB3FC
- ldr r1, _080F7CC4
- movs r0, 0x1
-_080F7CBA:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CC0: .4byte gStringVar1
-_080F7CC4: .4byte gScriptResult
- thumb_func_end sub_80F7C90
-
- thumb_func_start sub_80F7CC8
-sub_80F7CC8: @ 80F7CC8
- push {lr}
- ldr r2, _080F7CDC
- ldrb r0, [r2, 0x1]
- cmp r0, 0xA
- bne _080F7CE4
- ldr r1, _080F7CE0
- movs r0, 0
- strh r0, [r1]
- strb r0, [r2, 0x1]
- b _080F7CEA
- .align 2, 0
-_080F7CDC: .4byte gSaveBlock1 + 0x2D94
-_080F7CE0: .4byte gScriptResult
-_080F7CE4:
- ldr r1, _080F7CF0
- movs r0, 0x1
- strh r0, [r1]
-_080F7CEA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CF0: .4byte gScriptResult
- thumb_func_end sub_80F7CC8
-
- thumb_func_start sub_80F7CF4
-sub_80F7CF4: @ 80F7CF4
- push {r4-r6,lr}
- ldr r5, _080F7D50
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- bne _080F7D02
- bl sub_80F7DC0
-_080F7D02:
- ldrb r0, [r5, 0x1]
- lsls r0, 1
- adds r6, r5, 0x4
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _080F7D54
- cmp r1, r0
- beq _080F7D68
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- ands r4, r0
- ldr r0, _080F7D58
- ldrb r1, [r5, 0x1]
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r2, r0, 0
- ldr r1, _080F7D5C
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080F7D60
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _080F7D64
- bl StringCopy
- b _080F7D88
- .align 2, 0
-_080F7D50: .4byte gSaveBlock1 + 0x2D94
-_080F7D54: .4byte 0x0000ffff
-_080F7D58: .4byte gStringVar4
-_080F7D5C: .4byte gOtherText_Is
-_080F7D60: .4byte gUnknown_083E5388
-_080F7D64: .4byte gOtherText_DontYouAgree
-_080F7D68:
- ldr r0, _080F7DA0
- ldr r3, _080F7DA4
- ldrb r1, [r5, 0x2]
- adds r2, r1, 0x1
- strb r2, [r5, 0x2]
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0
- adds r2, 0x18
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
-_080F7D88:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080F7DA8
- movs r0, 0xA
- b _080F7DAC
- .align 2, 0
-_080F7DA0: .4byte gStringVar4
-_080F7DA4: .4byte gUnknown_083E53A8
-_080F7DA8:
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
-_080F7DAC:
- strb r0, [r5, 0x1]
- ldr r1, _080F7DBC
- movs r0, 0x1
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7DBC: .4byte gScriptResult
- thumb_func_end sub_80F7CF4
-
- thumb_func_start sub_80F7DC0
-sub_80F7DC0: @ 80F7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r1, _080F7E84
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r5, 0
- movs r0, 0x2
- add r0, sp
- mov r8, r0
- ldr r1, _080F7E88
- adds r1, 0x18
- adds r3, r1, 0
-_080F7DE4:
- adds r0, r3, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _080F7DE4
- movs r5, 0
- ldr r2, _080F7E88
- adds r2, 0x4
- mov r9, r2
- adds r6, r1, 0
-_080F7DFC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r4, r5, 0x1
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r6, r5
- ldrb r7, [r2]
- adds r1, r6, r1
- ldrb r0, [r1]
- strb r0, [r2]
- strb r7, [r1]
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0x7
- bls _080F7DFC
- movs r3, 0
- mov r10, r3
- movs r5, 0
-_080F7E2A:
- lsls r4, r5, 2
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl sub_80EAE88
- add r4, r8
- strh r0, [r4]
- add r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _080F7E2A
- movs r0, 0
- ldr r2, _080F7E88
- strb r0, [r2, 0x2]
- movs r7, 0
- movs r5, 0
-_080F7E56:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bhi _080F7E90
- cmp r7, 0x7
- bhi _080F7E90
- lsls r0, r5, 1
- add r0, r9
- ldr r1, _080F7E8C
- strh r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, r5, 0x1
- b _080F7EE2
- .align 2, 0
-_080F7E84: .4byte gUnknown_083E53C8
-_080F7E88: .4byte gSaveBlock1 + 0x2D94
-_080F7E8C: .4byte 0x0000ffff
-_080F7E90:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- adds r4, r5, 0x1
- lsls r6, r5, 1
- cmp r5, 0x5
- bhi _080F7ECC
- mov r3, r8
- ldrh r0, [r3]
- b _080F7EC2
-_080F7EB2:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r5, 0x5
- bhi _080F7ECC
- lsls r0, r1, 2
- adds r0, r3, r0
- ldrh r0, [r0]
-_080F7EC2:
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bgt _080F7EB2
-_080F7ECC:
- cmp r1, 0x6
- bne _080F7ED2
- movs r1, 0
-_080F7ED2:
- lsls r0, r1, 2
- add r0, sp
- ldrh r0, [r0]
- bl sub_80EB784
- mov r2, r9
- adds r1, r2, r6
- strh r0, [r1]
-_080F7EE2:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F7E56
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7DC0
-
- thumb_func_start sub_80F7EFC
-sub_80F7EFC: @ 80F7EFC
- ldr r0, _080F7F08
- adds r0, 0x29
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F7F08: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7EFC
-
- thumb_func_start sub_80F7F0C
-sub_80F7F0C: @ 80F7F0C
- ldr r1, _080F7F14
- movs r0, 0
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7F14: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7F0C
-
- thumb_func_start sub_80F7F18
-sub_80F7F18: @ 80F7F18
- push {lr}
- bl sub_8109A20
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F18
-
- thumb_func_start sub_80F7F24
-sub_80F7F24: @ 80F7F24
- push {lr}
- bl sub_80F8428
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F24
-
- thumb_func_start sub_80F7F30
-sub_80F7F30: @ 80F7F30
- push {lr}
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F7F76
- lsls r0, 2
- ldr r1, _080F7F48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7F48: .4byte _080F7F4C
- .align 2, 0
-_080F7F4C:
- .4byte _080F7F60
- .4byte _080F7F66
- .4byte _080F7F72
- .4byte _080F7F6C
- .4byte _080F7F76
-_080F7F60:
- bl sub_80F7EFC
- b _080F7F76
-_080F7F66:
- bl sub_80F7F0C
- b _080F7F76
-_080F7F6C:
- bl sub_80F7F24
- b _080F7F76
-_080F7F72:
- bl sub_80F7F18
-_080F7F76:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F30
-
- thumb_func_start sub_80F7F80
-sub_80F7F80: @ 80F7F80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F7FA8
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F7FAC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7FA8: .4byte sub_80F8184
-_080F7FAC: .4byte gTasks
- thumb_func_end sub_80F7F80
-
- thumb_func_start sub_80F7FB0
-sub_80F7FB0: @ 80F7FB0
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x5
- bls _080F7FBE
- b _080F817A
-_080F7FBE:
- lsls r0, 2
- ldr r1, _080F7FC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7FC8: .4byte _080F7FCC
- .align 2, 0
-_080F7FCC:
- .4byte _080F7FE4
- .4byte _080F817A
- .4byte _080F8040
- .4byte _080F8074
- .4byte _080F8074
- .4byte _080F817A
-_080F7FE4:
- ldr r2, _080F8034
- ldr r0, _080F8038
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0xE
- cmp r0, 0
- bne _080F7FF4
- adds r1, r2, 0x2
-_080F7FF4:
- adds r2, r1, 0
- adds r1, r6, 0
- adds r1, 0xC
- movs r3, 0x5
-_080F7FFC:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080F7FFC
- ldr r2, _080F803C
- adds r4, r2, 0
- movs r2, 0
- adds r1, r6, 0
- adds r1, 0x18
- movs r3, 0x5
-_080F8016:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- strh r2, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r2, [r1, 0x6]
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080F8016
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x4]
- b _080F817A
- .align 2, 0
-_080F8034: .4byte gSaveBlock1 + 0x2D94
-_080F8038: .4byte gUnknown_0202E8CC
-_080F803C: .4byte 0x0000ffff
-_080F8040:
- ldrb r1, [r6]
- lsls r1, 1
- adds r0, r6, 0
- adds r0, 0xC
- adds r0, r1
- ldrh r4, [r0]
- lsrs r0, r4, 9
- ldr r1, _080F8070
- ands r1, r4
- bl sub_814A2D0
- adds r1, r0, 0
- movs r0, 0
- strh r0, [r6, 0x4]
- movs r2, 0x3
- ands r2, r4
- lsrs r4, 3
- movs r0, 0x1
- ands r4, r0
- adds r2, r4
- adds r0, r6, 0
- bl sub_814A2EC
- b _080F817A
- .align 2, 0
-_080F8070: .4byte 0x000001ff
-_080F8074:
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 3
- adds r0, 0x18
- adds r7, r6, r0
- ldrb r0, [r6, 0x3]
- cmp r0, 0x1
- beq _080F8124
- cmp r0, 0x1
- bgt _080F808C
- cmp r0, 0
- beq _080F8092
- b _080F817A
-_080F808C:
- cmp r0, 0xFE
- beq _080F8170
- b _080F817A
-_080F8092:
- ldrb r0, [r6, 0x2]
- cmp r0, 0
- bne _080F80D0
- cmp r1, 0x6
- beq _080F80A2
- ldrh r0, [r7]
- cmp r0, 0xFF
- bne _080F80A6
-_080F80A2:
- movs r0, 0xFE
- b _080F8178
-_080F80A6:
- ldrh r0, [r7, 0x2]
- strb r0, [r6, 0x2]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F80CA
- movs r1, 0x3
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0xF9
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStart
-_080F80CA:
- movs r0, 0x1
- strb r0, [r6, 0x3]
- b _080F8114
-_080F80D0:
- ldrh r1, [r6, 0xA]
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r0, 0xA
- ble _080F80E0
- ldrh r0, [r6, 0x6]
- subs r0, 0x2
- strh r0, [r6, 0x6]
-_080F80E0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F80EE
- ldrh r0, [r6, 0x8]
- adds r0, 0x40
- b _080F80F2
-_080F80EE:
- ldrh r0, [r6, 0x8]
- subs r0, 0x40
-_080F80F2:
- strh r0, [r6, 0x8]
- ldr r4, _080F811C
- ldr r5, _080F8120
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
-_080F8114:
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
- b _080F817A
- .align 2, 0
-_080F811C: .4byte gMPlay_SE2
-_080F8120: .4byte 0x0000ffff
-_080F8124:
- adds r0, r1, 0x1
- movs r1, 0
- strb r0, [r6, 0x1]
- strb r1, [r6, 0x3]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F817A
- ldrh r0, [r7, 0x6]
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x6]
- ldr r4, _080F8168
- ldr r5, _080F816C
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r7, [r7, 0x4]
- adds r0, r7
- strh r0, [r6, 0x8]
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- b _080F817A
- .align 2, 0
-_080F8168: .4byte gMPlay_SE2
-_080F816C: .4byte 0x0000ffff
-_080F8170:
- ldr r0, _080F8180
- bl m4aMPlayStop
- movs r0, 0xFF
-_080F8178:
- strb r0, [r6, 0x3]
-_080F817A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8180: .4byte gMPlay_SE2
- thumb_func_end sub_80F7FB0
-
- thumb_func_start sub_80F8184
-sub_80F8184: @ 80F8184
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F81B4
- adds r5, r0, r1
- ldr r1, _080F81B8
- adds r0, r5, 0
- bl sub_80F7FB0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bls _080F81A8
- b _080F83C8
-_080F81A8:
- lsls r0, 2
- ldr r1, _080F81BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F81B4: .4byte gTasks
-_080F81B8: .4byte gUnknown_03005DA0
-_080F81BC: .4byte _080F81C0
- .align 2, 0
-_080F81C0:
- .4byte _080F81D8
- .4byte _080F8218
- .4byte _080F8228
- .4byte _080F82D8
- .4byte _080F83B8
- .4byte _080F82C6
-_080F81D8:
- bl sub_80F7BA0
- ldr r4, _080F820C
- ldr r0, [r4]
- ldr r1, _080F8210
- bl InitWindowFromConfig
- ldr r0, [r4]
- ldr r1, _080F8214
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x2
- movs r3, 0x4
- bl sub_8002EB0
- movs r0, 0
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strh r0, [r5, 0x10]
- movs r0, 0x4
- bl FadeOutBGMTemporarily
- movs r0, 0x1
- b _080F83C6
- .align 2, 0
-_080F820C: .4byte gMenuWindowPtr
-_080F8210: .4byte gWindowConfig_81E6CE4
-_080F8214: .4byte gStringVar4
-_080F8218:
- bl IsBGMPausedOrStopped
- lsls r0, 24
- cmp r0, 0
- bne _080F8224
- b _080F83C8
-_080F8224:
- movs r0, 0x2
- b _080F83C6
-_080F8228:
- ldr r4, _080F8240
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- ldr r0, _080F8244
- adds r1, r0
- movs r3, 0
- ldrb r0, [r1]
- ldr r7, _080F8248
- ldrh r2, [r5, 0x12]
- ldr r6, _080F824C
- b _080F825A
- .align 2, 0
-_080F8240: .4byte gSaveBlock1 + 0x2D94
-_080F8244: .4byte gStringVar4
-_080F8248: .4byte gUnknown_03005DA0
-_080F824C: .4byte gUnknown_020388BC
-_080F8250:
- adds r1, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrb r0, [r1]
-_080F825A:
- cmp r0, 0
- beq _080F826A
- cmp r0, 0xFE
- beq _080F826A
- cmp r0, 0xFC
- beq _080F826A
- cmp r0, 0xFF
- bne _080F8250
-_080F826A:
- cmp r2, 0
- bne _080F8278
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0x2
- b _080F8282
-_080F8278:
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0xE
-_080F8282:
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- lsrs r0, 3
- movs r2, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r6]
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- adds r1, r3, 0
- bl __divsi3
- movs r1, 0
- strh r0, [r7, 0x4]
- lsls r0, 16
- cmp r0, 0
- bgt _080F82AC
- movs r0, 0x1
- strh r0, [r7, 0x4]
-_080F82AC:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82BE
- movs r0, 0x3
- b _080F82C0
-_080F82BE:
- movs r0, 0x5
-_080F82C0:
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xA]
- b _080F83C8
-_080F82C6:
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82D2
- b _080F83C4
-_080F82D2:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F82D8:
- ldr r1, _080F8304
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- adds r0, r1
- ldrb r4, [r0]
- cmp r4, 0xFF
- bne _080F830C
- movs r0, 0xC8
- lsls r0, 1
- movs r1, 0x6
- bl FadeInNewBGM
- ldr r0, _080F8308
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
- b _080F83C8
- .align 2, 0
-_080F8304: .4byte gStringVar4
-_080F8308: .4byte gMPlay_SE2
-_080F830C:
- cmp r4, 0
- bne _080F832C
- ldr r0, _080F8328
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8328: .4byte gMenuWindowPtr
-_080F832C:
- cmp r4, 0xFE
- bne _080F8340
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- b _080F83C8
-_080F8340:
- cmp r4, 0xFC
- bne _080F8354
- ldrh r0, [r5, 0xE]
- adds r0, 0x2
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- movs r0, 0x8
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F8354:
- cmp r4, 0x37
- bne _080F8374
- movs r4, 0
- strb r4, [r0]
- ldr r0, _080F8370
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8370: .4byte gMenuWindowPtr
-_080F8374:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080F8394
- cmp r0, 0x1
- bgt _080F8386
- cmp r0, 0
- beq _080F838C
- b _080F83C8
-_080F8386:
- cmp r0, 0x2
- beq _080F83A0
- b _080F83C8
-_080F838C:
- ldr r0, _080F839C
- ldr r0, [r0]
- bl sub_8003418
-_080F8394:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _080F83C8
- .align 2, 0
-_080F839C: .4byte gMenuWindowPtr
-_080F83A0:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- strh r1, [r5, 0xA]
- ldr r0, _080F83B4
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0xC]
- movs r0, 0x4
- b _080F83C6
- .align 2, 0
-_080F83B4: .4byte gUnknown_03005DA0
-_080F83B8:
- ldrh r0, [r5, 0xC]
- subs r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080F83C8
-_080F83C4:
- movs r0, 0x3
-_080F83C6:
- strh r0, [r5, 0x8]
-_080F83C8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F8184
-
- thumb_func_start sub_80F83D0
-sub_80F83D0: @ 80F83D0
- push {r4,lr}
- ldr r4, _080F83F4
- bl GetCurrentMauvilleOldMan
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x8A
- lsls r0, 15
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F83F4: .4byte 0x00004010
- thumb_func_end sub_80F83D0
-
- thumb_func_start sub_80F83F8
-sub_80F83F8: @ 80F83F8
- push {r4,lr}
- ldr r0, _080F8424
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- movs r4, 0
- movs r3, 0xFF
- adds r1, r0, 0x4
- movs r2, 0x3
-_080F840C:
- strb r4, [r1]
- ldrb r0, [r1, 0x4]
- orrs r0, r3
- strb r0, [r1, 0x4]
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080F840C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8424: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F83F8
-
- thumb_func_start sub_80F8428
-sub_80F8428: @ 80F8428
- ldr r0, _080F8434
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F8434: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F8428
-
- thumb_func_start sub_80F8438
-sub_80F8438: @ 80F8438
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x32
- bne _080F8444
- movs r0, 0
-_080F8444:
- bl sub_8053108
- pop {r1}
- bx r1
- thumb_func_end sub_80F8438
-
- thumb_func_start sub_80F844C
-sub_80F844C: @ 80F844C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080F8460
-_080F8454:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080F8464
- adds r0, r1, 0
- b _080F846E
- .align 2, 0
-_080F8460: .4byte gUnknown_083E53E0
-_080F8464:
- adds r1, 0x10
- adds r2, 0x1
- cmp r2, 0x23
- ble _080F8454
- ldr r0, _080F8474
-_080F846E:
- pop {r1}
- bx r1
- .align 2, 0
-_080F8474: .4byte gUnknown_083E5610
- thumb_func_end sub_80F844C
-
- thumb_func_start sub_80F8478
-sub_80F8478: @ 80F8478
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x4]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8478
-
- thumb_func_start sub_80F8484
-sub_80F8484: @ 80F8484
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0xC]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8484
-
- thumb_func_start sub_80F8490
-sub_80F8490: @ 80F8490
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x8]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8490
-
- thumb_func_start sub_80F849C
-sub_80F849C: @ 80F849C
- push {lr}
- movs r1, 0
- ldr r2, _080F84C4
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _080F84BC
- adds r2, 0x4
-_080F84AA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080F84BC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F84AA
-_080F84BC:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080F84C4: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F849C
-
- thumb_func_start sub_80F84C8
-sub_80F84C8: @ 80F84C8
- lsls r0, 2
- ldr r1, _080F84E8
- adds r0, r1
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r0, 0x2]
- lsls r1, 16
- orrs r2, r1
- ldrb r0, [r0, 0x3]
- lsls r0, 24
- orrs r2, r0
- adds r0, r2, 0
- bx lr
- .align 2, 0
-_080F84E8: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84C8
-
- thumb_func_start sub_80F84EC
-sub_80F84EC: @ 80F84EC
- lsls r0, 2
- ldr r2, _080F8504
- adds r0, r2
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- .align 2, 0
-_080F8504: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84EC
-
- thumb_func_start sub_80F8508
-sub_80F8508: @ 80F8508
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080F8528
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r0, [r0]
- bl sub_80F8438
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80F84C8
- cmp r4, r0
- bhi _080F852C
- movs r0, 0
- b _080F852E
- .align 2, 0
-_080F8528: .4byte gSaveBlock1 + 0x2D94
-_080F852C:
- movs r0, 0x1
-_080F852E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8508
-
- thumb_func_start sub_80F8534
-sub_80F8534: @ 80F8534
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r4, r0, 3
- subs r4, r0
- ldr r0, _080F855C
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl memcpy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F855C: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8534
-
- thumb_func_start sub_80F8560
-sub_80F8560: @ 80F8560
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r5, r0, 3
- subs r5, r0
- ldr r0, _080F8594
- adds r5, r0
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8594: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8560
-
- thumb_func_start sub_80F8598
-sub_80F8598: @ 80F8598
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r0, _080F85EC
- adds r0, 0x4
- adds r0, r5, r0
- strb r6, [r0]
- ldr r1, _080F85F0
- adds r0, r5, 0
- bl sub_80F8560
- lsls r4, r6, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_80F84EC
- ldr r5, _080F85F4
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F85F8
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F85EC: .4byte gSaveBlock1 + 0x2D94
-_080F85F0: .4byte gSaveBlock2
-_080F85F4: .4byte gStringVar1
-_080F85F8: .4byte gStringVar2
- thumb_func_end sub_80F8598
-
- thumb_func_start sub_80F85FC
-sub_80F85FC: @ 80F85FC
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0
- cmp r5, r6
- bge _080F8612
-_080F8608:
- adds r0, r7, r5
- strb r5, [r0]
- adds r5, 0x1
- cmp r5, r6
- blt _080F8608
-_080F8612:
- cmp r6, 0
- ble _080F8648
- adds r5, r6, 0
-_080F8618:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r7, r4
- ldrb r2, [r4]
- adds r0, r7, r0
- ldrb r1, [r0]
- strb r1, [r4]
- strb r2, [r0]
- subs r5, 0x1
- cmp r5, 0
- bne _080F8618
-_080F8648:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F85FC
-
- thumb_func_start sub_80F8650
-sub_80F8650: @ 80F8650
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r7, sp
- mov r10, sp
- ldr r0, _080F86D4
- ldr r0, [r0]
- lsls r0, 3
- lsrs r0, 3
- adds r0, 0x3
- lsrs r0, 2
- lsls r0, 2
- mov r1, sp
- subs r1, r0
- mov sp, r1
- mov r8, sp
- mov r0, sp
- movs r1, 0x24
- bl sub_80F85FC
- movs r5, 0
- ldr r0, _080F86D8
- mov r9, r0
- ldr r3, _080F86DC
-_080F8686:
- mov r1, r8
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 4
- add r0, r9
- ldrb r4, [r0]
- ldrb r6, [r0, 0x1]
- movs r1, 0
- ldrb r0, [r3, 0x4]
- cmp r0, r4
- beq _080F86AC
- ldr r2, _080F86E0
-_080F869E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080F86AC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- bne _080F869E
-_080F86AC:
- cmp r1, 0x4
- bne _080F86E4
- adds r0, r4, 0
- str r3, [r7]
- bl sub_80F8438
- ldr r3, [r7]
- cmp r0, r6
- bcc _080F86E4
- movs r0, 0x1
- strb r0, [r3, 0x1]
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
- b _080F86EC
- .align 2, 0
-_080F86D4: .4byte gUnknown_083E5620
-_080F86D8: .4byte gUnknown_083E53E0
-_080F86DC: .4byte gSaveBlock1 + 0x2D94
-_080F86E0: .4byte gSaveBlock1 + 0x2D98
-_080F86E4:
- adds r5, 0x1
- cmp r5, 0x23
- ble _080F8686
- movs r0, 0
-_080F86EC:
- mov sp, r10
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8650
-
- thumb_func_start sub_80F8700
-sub_80F8700: @ 80F8700
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080F8748
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r6, [r0]
- ldr r4, _080F874C
- adds r0, r5, 0
- bl sub_80F84C8
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F8750
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _080F8754
- adds r0, r5, 0
- bl sub_80F8534
- adds r0, r6, 0
- bl sub_80F8484
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8748: .4byte gSaveBlock1 + 0x2D94
-_080F874C: .4byte gStringVar1
-_080F8750: .4byte gStringVar2
-_080F8754: .4byte gStringVar3
- thumb_func_end sub_80F8700
-
- thumb_func_start sub_80F8758
-sub_80F8758: @ 80F8758
- push {r4-r6,lr}
- bl sub_80F849C
- adds r3, r0, 0
- lsls r3, 25
- movs r0, 0x80
- lsls r0, 19
- adds r3, r0
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- bl MenuDrawTextWindow
- movs r4, 0
- ldr r1, _080F87BC
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _080F87A4
- adds r6, r1, 0x4
- movs r5, 0x80
- lsls r5, 18
-_080F8784:
- bl sub_80F8478
- lsrs r2, r5, 24
- movs r1, 0x1
- bl MenuPrint
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080F87A4
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8784
-_080F87A4:
- ldr r0, _080F87C0
- lsls r2, r4, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F87BC: .4byte gSaveBlock1 + 0x2D94
-_080F87C0: .4byte gPCText_Cancel
- thumb_func_end sub_80F8758
-
- thumb_func_start sub_80F87C4
-sub_80F87C4: @ 80F87C4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F87E4
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080F87E8
- cmp r5, 0x1
- beq _080F8810
- b _080F8862
- .align 2, 0
-_080F87E4: .4byte gTasks
-_080F87E8:
- bl sub_80F8758
- bl sub_80F849C
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r5, [sp]
- movs r0, 0x18
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080F8862
-_080F8810:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _080F8862
- adds r0, 0x1
- cmp r4, r0
- beq _080F8832
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080F8840
-_080F8832:
- ldr r1, _080F883C
- movs r0, 0
- strh r0, [r1]
- b _080F8848
- .align 2, 0
-_080F883C: .4byte gScriptResult
-_080F8840:
- ldr r0, _080F886C
- strh r5, [r0]
- ldr r0, _080F8870
- strb r4, [r0]
-_080F8848:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080F8862:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F886C: .4byte gScriptResult
-_080F8870: .4byte gUnknown_03000748
- thumb_func_end sub_80F87C4
-
- thumb_func_start sub_80F8874
-sub_80F8874: @ 80F8874
- push {lr}
- ldr r0, _080F8884
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F8884: .4byte sub_80F87C4
- thumb_func_end sub_80F8874
-
- thumb_func_start sub_80F8888
-sub_80F8888: @ 80F8888
- push {lr}
- ldr r0, _080F8898
- ldrb r0, [r0]
- bl sub_80F8700
- pop {r0}
- bx r0
- .align 2, 0
-_080F8898: .4byte gUnknown_03000748
- thumb_func_end sub_80F8888
-
- thumb_func_start sub_80F889C
-sub_80F889C: @ 80F889C
- push {lr}
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F889C
-
- thumb_func_start sub_80F88AC
-sub_80F88AC: @ 80F88AC
- push {r4,r5,lr}
- ldr r1, _080F88C8
- ldr r5, _080F88CC
- ldrb r0, [r5]
- adds r1, 0x4
- adds r1, r0, r1
- ldrb r4, [r1]
- bl sub_80F8508
- cmp r0, 0x1
- beq _080F88D0
- movs r0, 0
- b _080F88DA
- .align 2, 0
-_080F88C8: .4byte gSaveBlock1 + 0x2D94
-_080F88CC: .4byte gUnknown_03000748
-_080F88D0:
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
-_080F88DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F88AC
-
- thumb_func_start sub_80F88E0
-sub_80F88E0: @ 80F88E0
- push {lr}
- ldr r0, _080F88F0
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080F88F4
- movs r0, 0x1
- b _080F88F6
- .align 2, 0
-_080F88F0: .4byte gSaveBlock1 + 0x2D94
-_080F88F4:
- movs r0, 0
-_080F88F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80F88E0
-
- thumb_func_start sub_80F88FC
-sub_80F88FC: @ 80F88FC
- push {lr}
- bl sub_80F8650
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F88FC
-
- thumb_func_start sub_80F890C
-sub_80F890C: @ 80F890C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r2, _080F8958
- adds r1, r2, 0
- adds r1, 0xFF
- movs r0, 0x2
- strb r0, [r1]
- adds r0, 0xFE
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x82
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F895C
- str r0, [r1]
- movs r0, 0x84
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F8960
- str r0, [r1]
- ldrh r1, [r4, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _080F8964
- subs r1, 0x79
- adds r0, r2, 0
- adds r0, 0xFA
- strb r1, [r0]
- b _080F896E
- .align 2, 0
-_080F8958: .4byte 0x02000000
-_080F895C: .4byte sub_80EB3FC
-_080F8960: .4byte ConvertEasyChatWordsToString
-_080F8964:
- adds r1, r2, 0
- adds r1, 0xFA
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
-_080F896E:
- ldr r1, _080F8994
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8980
- cmp r0, 0x1
- beq _080F899C
-_080F8980:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F8998
- b _080F89AC
- .align 2, 0
-_080F8994: .4byte 0x02000000
-_080F8998: .4byte gUnknown_083E5730
-_080F899C:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F89DC
-_080F89AC:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- ldr r1, _080F89E0
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _080F89F8
- ldr r0, _080F89E4
- adds r1, r0, 0
- adds r1, 0xFA
- ldrb r2, [r1]
- adds r1, r0, 0
- cmp r2, 0x6
- beq _080F89E8
- cmp r2, 0x9
- beq _080F89F0
- b _080F89FA
- .align 2, 0
-_080F89DC: .4byte gUnknown_083E57A4
-_080F89E0: .4byte 0xffff0000
-_080F89E4: .4byte 0x02000000
-_080F89E8:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x1
- b _080F8A00
-_080F89F0:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x2
- b _080F8A00
-_080F89F8:
- ldr r1, _080F8A20
-_080F89FA:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0
-_080F8A00:
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xF4
- str r4, [r0]
- subs r0, 0x8
- str r6, [r0]
- adds r0, 0xC
- strb r5, [r0]
- ldr r0, _080F8A24
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8A20: .4byte 0x02000000
-_080F8A24: .4byte sub_80F8D50
- thumb_func_end sub_80F890C
-
- thumb_func_start sub_80F8A28
-sub_80F8A28: @ 80F8A28
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080F8A44
- ldr r1, _080F8A48
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _080F8A3A
- b _080F8D3C
-_080F8A3A:
- lsls r0, 2
- ldr r1, _080F8A4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F8A44: .4byte gMain
-_080F8A48: .4byte 0x0000043c
-_080F8A4C: .4byte _080F8A50
- .align 2, 0
-_080F8A50:
- .4byte _080F8A9C
- .4byte _080F8AB0
- .4byte _080F8AC8
- .4byte _080F8ACE
- .4byte _080F8AD4
- .4byte _080F8ADA
- .4byte _080F8B10
- .4byte _080F8B1C
- .4byte _080F8B28
- .4byte _080F8B34
- .4byte _080F8B3A
- .4byte _080F8B54
- .4byte _080F8B78
- .4byte _080F8BA0
- .4byte _080F8C14
- .4byte _080F8C2C
- .4byte _080F8C58
- .4byte _080F8CBC
- .4byte _080F8CC6
-_080F8A9C:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- b _080F8D30
-_080F8AB0:
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080F8AC4
- add r0, sp, 0x4
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8AC4: .4byte 0x01000200
-_080F8AC8:
- bl ResetPaletteFade
- b _080F8D30
-_080F8ACE:
- bl ResetTasks
- b _080F8D30
-_080F8AD4:
- bl ResetSpriteData
- b _080F8D30
-_080F8ADA:
- bl FreeAllSpritePalettes
- ldr r0, _080F8B0C
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x32
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _080F8D30
- .align 2, 0
-_080F8B0C: .4byte REG_BG0HOFS
-_080F8B10:
- ldr r0, _080F8B18
- bl SetUpWindowConfig
- b _080F8D30
- .align 2, 0
-_080F8B18: .4byte gWindowConfig_81E6DFC
-_080F8B1C:
- ldr r0, _080F8B24
- bl MultistepInitMenuWindowBegin
- b _080F8D30
- .align 2, 0
-_080F8B24: .4byte gWindowConfig_81E6DFC
-_080F8B28:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F8B32
- b _080F8D30
-_080F8B32:
- b _080F8D3C
-_080F8B34:
- bl MenuZeroFillScreen
- b _080F8D30
-_080F8B3A:
- mov r0, sp
- adds r0, 0x6
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _080F8B4C
- ldr r2, _080F8B50
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8B4C: .4byte 0x06004800
-_080F8B50: .4byte 0x01000400
-_080F8B54:
- ldr r2, _080F8B70
- ldr r0, _080F8B74
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _080F8D30
- .align 2, 0
-_080F8B70: .4byte gMailGraphicsTable
-_080F8B74: .4byte 0x02000000
-_080F8B78:
- ldr r2, _080F8B94
- ldr r0, _080F8B98
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _080F8B9C
- bl LZ77UnCompVram
- b _080F8D30
- .align 2, 0
-_080F8B94: .4byte gMailGraphicsTable
-_080F8B98: .4byte 0x02000000
-_080F8B9C: .4byte 0x06004000
-_080F8BA0:
- ldr r5, _080F8C00
- ldr r4, _080F8C04
- adds r4, 0xFA
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r3, _080F8C08
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x10]
- movs r2, 0xF1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x12]
- adds r2, 0xE
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F8C0C
- ldr r2, _080F8C10
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x16]
- b _080F8D30
- .align 2, 0
-_080F8C00: .4byte gMailGraphicsTable
-_080F8C04: .4byte 0x02000000
-_080F8C08: .4byte gPlttBufferUnfaded
-_080F8C0C: .4byte gUnknown_083E562C
-_080F8C10: .4byte gSaveBlock2
-_080F8C14:
- ldr r0, _080F8C28
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8C20
- b _080F8D30
-_080F8C20:
- bl sub_80F8DA0
- b _080F8D30
- .align 2, 0
-_080F8C28: .4byte 0x02000000
-_080F8C2C:
- ldr r0, _080F8C4C
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8C3A
- bl sub_80F8E80
-_080F8C3A:
- ldr r0, _080F8C50
- bl SetVBlankCallback
- ldr r2, _080F8C54
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _080F8D30
- .align 2, 0
-_080F8C4C: .4byte 0x02000000
-_080F8C50: .4byte sub_80F8F18
-_080F8C54: .4byte gPaletteFade
-_080F8C58:
- ldr r5, _080F8C7C
- adds r0, r5, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080F8C80
- cmp r0, 0x2
- beq _080F8C98
- b _080F8D30
- .align 2, 0
-_080F8C7C: .4byte 0x02000000
-_080F8C80:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8C94
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x60
- b _080F8CA8
- .align 2, 0
-_080F8C94: .4byte SpriteCallbackDummy
-_080F8C98:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8CB8
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x28
-_080F8CA8:
- movs r3, 0x80
- bl sub_809D3A4
- adds r1, r5, 0
- adds r1, 0xFC
- strb r0, [r1]
- b _080F8D30
- .align 2, 0
-_080F8CB8: .4byte SpriteCallbackDummy
-_080F8CBC:
- bl sub_8055870
- cmp r0, 0x1
- bne _080F8D30
- b _080F8D3C
-_080F8CC6:
- ldr r1, _080F8D14
- ldr r2, _080F8D18
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D1C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D20
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080F8D24
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080F8D28
- adds r0, 0xF0
- ldr r1, _080F8D2C
- str r1, [r0]
- movs r0, 0x1
- b _080F8D3E
- .align 2, 0
-_080F8D14: .4byte REG_BG0CNT
-_080F8D18: .4byte 0x00009f08
-_080F8D1C: .4byte 0x00000801
-_080F8D20: .4byte 0x00000902
-_080F8D24: .4byte gPaletteFade
-_080F8D28: .4byte 0x02000000
-_080F8D2C: .4byte sub_80F8F58
-_080F8D30:
- ldr r1, _080F8D48
- ldr r0, _080F8D4C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F8D3C:
- movs r0, 0
-_080F8D3E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F8D48: .4byte gMain
-_080F8D4C: .4byte 0x0000043c
- thumb_func_end sub_80F8A28
-
- thumb_func_start sub_80F8D50
-sub_80F8D50: @ 80F8D50
- push {lr}
-_080F8D52:
- bl sub_80F8A28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D6C
- ldr r0, _080F8D68
- bl SetMainCallback2
- b _080F8D78
- .align 2, 0
-_080F8D68: .4byte sub_80F8F2C
-_080F8D6C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D52
-_080F8D78:
- pop {r0}
- bx r0
- thumb_func_end sub_80F8D50
-
- thumb_func_start sub_80F8D7C
-sub_80F8D7C: @ 80F8D7C
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8D7C
-
- thumb_func_start sub_80F8DA0
-sub_80F8DA0: @ 80F8DA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r2, _080F8E3C
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080F8E04
- mov r8, r2
- adds r7, r1, 0
-_080F8DBE:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- subs r0, r5
- add r0, r8
- mov r1, r8
- adds r1, 0xF4
- lsls r2, r6, 1
- ldr r1, [r1]
- adds r1, r2
- ldr r2, [r7]
- ldr r2, [r2, 0x4]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 28
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- ldr r1, [r7]
- ldr r0, [r1, 0x4]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 28
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _080F8DBE
-_080F8E04:
- ldr r2, _080F8E40
- adds r4, r2, 0
- subs r4, 0xD8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8E48
- ldr r1, [r2, 0x1C]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- adds r2, r0, 0
- ldr r1, _080F8E44
- bl StringCopy
- ldr r0, _080F8E40
- bl StringLength
- movs r2, 0x86
- lsls r2, 1
- adds r1, r4, r2
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- subs r1, r0
- b _080F8E6A
- .align 2, 0
-_080F8E3C: .4byte 0x02000000
-_080F8E40: .4byte 0x020000d8
-_080F8E44: .4byte gOtherText_From
-_080F8E48:
- ldr r1, _080F8E7C
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r1, [r0]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- movs r1, 0x86
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
-_080F8E6A:
- adds r0, r4, 0
- adds r0, 0xF9
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8E7C: .4byte gOtherText_From
- thumb_func_end sub_80F8DA0
-
- thumb_func_start sub_80F8E80
-sub_80F8E80: @ 80F8E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r4, 0
- ldr r1, _080F8F10
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080F8EF6
- mov r8, r1
- adds r7, r2, 0
-_080F8E9E:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r0, r4
- mov r1, r8
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F8EE8
- cmp r0, 0
- beq _080F8EE8
- ldr r2, [r7]
- ldr r1, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r3, r0, 24
- lsrs r3, 28
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0x3]
- lsrs r1, r2, 4
- adds r1, r3
- lsls r2, 28
- lsrs r2, 28
- adds r2, r6, r2
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
-_080F8EE8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r7]
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F8E9E
-_080F8EF6:
- ldr r0, _080F8F14
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- ldr r2, [r0, 0x34]
- ldrb r2, [r2, 0x1]
- bl MenuPrint
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F10: .4byte 0x02000000
-_080F8F14: .4byte 0x020000d8
- thumb_func_end sub_80F8E80
-
- thumb_func_start sub_80F8F18
-sub_80F8F18: @ 80F8F18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80F8F18
-
- thumb_func_start sub_80F8F2C
-sub_80F8F2C: @ 80F8F2C
- push {r4,lr}
- ldr r4, _080F8F54
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8F42
- bl AnimateSprites
- bl BuildOamBuffer
-_080F8F42:
- adds r0, r4, 0
- adds r0, 0xF0
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F54: .4byte 0x02000000
- thumb_func_end sub_80F8F2C
-
- thumb_func_start sub_80F8F58
-sub_80F8F58: @ 80F8F58
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F8F6C
- ldr r0, _080F8F70
- adds r0, 0xF0
- ldr r1, _080F8F74
- str r1, [r0]
-_080F8F6C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F70: .4byte 0x02000000
-_080F8F74: .4byte sub_80F8F78
- thumb_func_end sub_80F8F58
-
- thumb_func_start sub_80F8F78
-sub_80F8F78: @ 80F8F78
- push {lr}
- sub sp, 0x4
- ldr r0, _080F8FA8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080F8FA0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080F8FAC
- adds r0, 0xF0
- ldr r1, _080F8FB0
- str r1, [r0]
-_080F8FA0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F8FA8: .4byte gMain
-_080F8FAC: .4byte 0x02000000
-_080F8FB0: .4byte sub_80F8FB4
- thumb_func_end sub_80F8F78
-
- thumb_func_start sub_80F8FB4
-sub_80F8FB4: @ 80F8FB4
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F9012
- ldr r4, _080F9018
- adds r0, r4, 0
- adds r0, 0xEC
- ldr r0, [r0]
- bl SetMainCallback2
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _080F9002
- cmp r0, 0x1
- blt _080F9002
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r0, 16
- bl sub_809D608
- adds r0, r4, 0
- adds r0, 0xFC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F901C
- adds r0, r1
- bl sub_809D510
-_080F9002:
- ldr r0, _080F9018
- movs r2, 0x88
- lsls r2, 1
- movs r1, 0
- bl memset
- bl ResetPaletteFade
-_080F9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9018: .4byte 0x02000000
-_080F901C: .4byte gSprites
- thumb_func_end sub_80F8FB4
-
- thumb_func_start sub_80F9020
-sub_80F9020: @ 80F9020
- push {r4,r5,lr}
- ldr r4, _080F9054
- movs r5, 0x80
- lsls r5, 4
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- adds r0, r4, r5
- movs r1, 0
- adds r2, r5, 0
- bl memset
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9054: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80F9020
-
- thumb_func_start sav2_get_text_speed
-sav2_get_text_speed: @ 80F9058
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- bl MenuDisplayMessageBox
- cmp r4, 0
- beq _080F907C
- ldr r0, _080F908C
- movs r1, 0x4
- str r1, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x1A
- bl sub_80A3FA0
-_080F907C:
- adds r0, r5, 0
- bl sub_8072044
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F908C: .4byte gBG1TilemapBuffer
- thumb_func_end sav2_get_text_speed
-
- thumb_func_start sub_80F9090
-sub_80F9090: @ 80F9090
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F90AC
- ldr r0, _080F90B4
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080F90AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F90B4: .4byte gUnknown_0300074C
- thumb_func_end sub_80F9090
-
- thumb_func_start DisplayItemMessageOnField
-DisplayItemMessageOnField: @ 80F90B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- adds r1, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- bl sav2_get_text_speed
- ldr r0, _080F90E8
- str r5, [r0]
- ldr r1, _080F90EC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080F90F0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F90E8: .4byte gUnknown_0300074C
-_080F90EC: .4byte gTasks
-_080F90F0: .4byte sub_80F9090
- thumb_func_end DisplayItemMessageOnField
-
- thumb_func_start Task_CallYesOrNoCallback
-Task_CallYesOrNoCallback: @ 80F90F4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080F911A
- cmp r1, 0
- bgt _080F9114
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080F9130
- b _080F9140
-_080F9114:
- cmp r1, 0x1
- beq _080F9130
- b _080F9140
-_080F911A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080F912C
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080F9140
- .align 2, 0
-_080F912C: .4byte gUnknown_020388C4
-_080F9130:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080F9148
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080F9140:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9148: .4byte gUnknown_020388C4
- thumb_func_end Task_CallYesOrNoCallback
-
- thumb_func_start sub_80F914C
-sub_80F914C: @ 80F914C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F916C
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r3]
- str r2, [r3, 0x4]
- ldr r2, _080F9170
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080F9174
- str r0, [r1]
- bx lr
- .align 2, 0
-_080F916C: .4byte gUnknown_020388C4
-_080F9170: .4byte gTasks
-_080F9174: .4byte Task_CallYesOrNoCallback
- thumb_func_end sub_80F914C
-
- thumb_func_start brm_trade_1
-brm_trade_1: @ 80F9178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- ldr r1, _080F91C0
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- cmp r4, 0xFF
- beq _080F91CC
- mov r0, sp
- strb r4, [r0, 0x2]
- ldr r4, _080F91C4
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringAppend
- mov r1, sp
- ldr r0, _080F91C8
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x2]
- adds r0, r4, 0
- bl StringAppend
- b _080F91D4
- .align 2, 0
-_080F91C0: .4byte gUnknown_083E5A18
-_080F91C4: .4byte gStringVar4
-_080F91C8: .4byte gMenuWindowPtr
-_080F91CC:
- ldr r0, _080F91E8
- adds r1, r5, 0
- bl StringCopy
-_080F91D4:
- ldr r0, _080F91E8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F91E8: .4byte gStringVar4
- thumb_func_end brm_trade_1
-
- thumb_func_start unref_sub_80F91EC
-unref_sub_80F91EC: @ 80F91EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r0, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r6, _080F9234
- adds r0, r6, 0
- mov r1, r12
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- mov r0, r8
- cmp r0, 0xFF
- beq _080F9238
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- adds r3, r5, 0
- bl brm_trade_1
- b _080F9242
- .align 2, 0
-_080F9234: .4byte gStringVar1
-_080F9238:
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl MenuPrint
-_080F9242:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80F91EC
-
- thumb_func_start unref_sub_80F924C
-unref_sub_80F924C: @ 80F924C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F9280
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl brm_trade_1
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9280: .4byte gUnknown_083E5A1C
- thumb_func_end unref_sub_80F924C
-
- thumb_func_start sub_80F9284
-sub_80F9284: @ 80F9284
- push {lr}
- ldr r0, _080F92A0
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080F92B6
- ldr r0, _080F92A4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080F92A8
- movs r0, 0x1
- b _080F92B8
- .align 2, 0
-_080F92A0: .4byte gSaveBlock2
-_080F92A4: .4byte gMain
-_080F92A8:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080F92B6
- movs r0, 0x2
- b _080F92B8
-_080F92B6:
- movs r0, 0
-_080F92B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9284
-
- thumb_func_start sub_80F92BC
-sub_80F92BC: @ 80F92BC
- push {lr}
- ldr r0, _080F92D8
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080F92EE
- ldr r0, _080F92DC
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080F92E0
- movs r0, 0x1
- b _080F92F0
- .align 2, 0
-_080F92D8: .4byte gSaveBlock2
-_080F92DC: .4byte gMain
-_080F92E0:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080F92EE
- movs r0, 0x2
- b _080F92F0
-_080F92EE:
- movs r0, 0
-_080F92F0:
- pop {r1}
- bx r1
- thumb_func_end sub_80F92BC
-
- thumb_func_start sub_80F92F4
-sub_80F92F4: @ 80F92F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080F9314
- ldr r0, _080F930C
- ldrh r1, [r0, 0x4]
- ldr r0, _080F9310
- cmp r1, r0
- bne _080F9314
- movs r0, 0
- b _080F9316
- .align 2, 0
-_080F930C: .4byte gSaveBlock1
-_080F9310: .4byte 0x00001919
-_080F9314:
- movs r0, 0x1
-_080F9316:
- pop {r1}
- bx r1
- thumb_func_end sub_80F92F4
-
- thumb_func_start sub_80F931C
-sub_80F931C: @ 80F931C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _080F933C
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F933C
- movs r0, 0
- b _080F933E
-_080F933C:
- movs r0, 0x1
-_080F933E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F931C
-
- thumb_func_start sub_80F9344
-sub_80F9344: @ 80F9344
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080F9356
- ldr r0, _080F935C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F9360
-_080F9356:
- movs r0, 0x1
- b _080F9362
- .align 2, 0
-_080F935C: .4byte gReceivedRemoteLinkPlayers
-_080F9360:
- movs r0, 0
-_080F9362:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9344
-
- thumb_func_start sub_80F9368
-sub_80F9368: @ 80F9368
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x14
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- mov r2, sp
- movs r6, 0
- ldr r1, _080F9430
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080F9434
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080F93C6:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _080F93C6
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _080F9430
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9430: .4byte 0x040000d4
-_080F9434: .4byte 0x81000800
- thumb_func_end sub_80F9368
-
- thumb_func_start sub_80F9438
-sub_80F9438: @ 80F9438
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end sub_80F9438
-
- thumb_func_start sub_80F944C
-sub_80F944C: @ 80F944C
- push {r4,lr}
- movs r2, 0
- ldr r4, _080F9478
- movs r3, 0xFF
-_080F9454:
- adds r0, r2, r4
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080F9454
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080F947C
- bl LoadSpritePalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9478: .4byte gUnknown_020388C0
-_080F947C: .4byte gUnknown_083E5968
- thumb_func_end sub_80F944C
-
- thumb_func_start sub_80F9480
-sub_80F9480: @ 80F9480
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- cmp r2, r1
- bcs _080F949E
- movs r4, 0xFF
-_080F9490:
- adds r0, r3, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080F9490
-_080F949E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F9480
-
- thumb_func_start sub_80F94A4
-sub_80F94A4: @ 80F94A4
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r3, 16
- lsrs r2, r3, 16
- cmp r4, 0x5
- bhi _080F94E8
- ldrb r0, [r5]
- cmp r0, 0xFF
- bne _080F94D0
- ldr r0, _080F94F0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5]
-_080F94D0:
- subs r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F94F4
- adds r0, r1
- adds r1, r4, 0
- bl StartSpriteAnim
-_080F94E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F94F0: .4byte gSpriteTemplate_83E5A00
-_080F94F4: .4byte gSprites
- thumb_func_end sub_80F94A4
-
- thumb_func_start sub_80F94F8
-sub_80F94F8: @ 80F94F8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F9516
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F951C
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080F9516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F951C: .4byte gSprites
- thumb_func_end sub_80F94F8
-
- thumb_func_start sub_80F9520
-sub_80F9520: @ 80F9520
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080F9526:
- adds r0, r5, r4
- bl sub_80F94F8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080F9526
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F9520
-
- thumb_func_start sub_80F953C
-sub_80F953C: @ 80F953C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r4, 0x3
- bls _080F9550
- b _080F9790
-_080F9550:
- cmp r4, 0x1
- beq _080F95F6
- cmp r4, 0x1
- bgt _080F9564
- cmp r4, 0
- beq _080F9578
- ldr r5, _080F9560
- b _080F977A
- .align 2, 0
-_080F9560: .4byte gUnknown_020388C0
-_080F9564:
- cmp r4, 0x2
- bne _080F956A
- b _080F967C
-_080F956A:
- cmp r4, 0x3
- bne _080F9570
- b _080F96F8
-_080F9570:
- ldr r5, _080F9574
- b _080F977A
- .align 2, 0
-_080F9574: .4byte gUnknown_020388C0
-_080F9578:
- ldr r0, _080F95D8
- ldrb r1, [r0]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080F9584
- b _080F977A
-_080F9584:
- ldr r0, _080F95DC
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5]
- ldr r3, _080F95E0
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080F95E4
- strh r1, [r0, 0x32]
- ldrb r0, [r5, 0x1]
- cmp r0, 0xFF
- beq _080F95E8
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x1]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x26]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x1]
- b _080F9650
- .align 2, 0
-_080F95D8: .4byte gUnknown_020388C0
-_080F95DC: .4byte gSpriteTemplate_83E59D0
-_080F95E0: .4byte gSprites
-_080F95E4: .4byte 0x0000ffff
-_080F95E8:
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x34]
- b _080F977A
-_080F95F6:
- ldr r0, _080F9660
- ldrb r1, [r0, 0x1]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080F9602
- b _080F977A
-_080F9602:
- ldr r0, _080F9664
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x1]
- ldr r3, _080F9668
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x32]
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F966C
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x26]
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5]
-_080F9650:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x34]
- strh r0, [r1, 0x34]
- b _080F977A
- .align 2, 0
-_080F9660: .4byte gUnknown_020388C0
-_080F9664: .4byte gSpriteTemplate_83E59D0
-_080F9668: .4byte gSprites
-_080F966C:
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strh r0, [r1, 0x34]
- b _080F977A
-_080F967C:
- ldr r0, _080F96E4
- ldrb r1, [r0, 0x2]
- adds r5, r0, 0
- cmp r1, 0xFF
- bne _080F977A
- ldr r0, _080F96E8
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x2]
- ldr r3, _080F96EC
- ldrb r1, [r5, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080F96F0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5, 0x3]
- cmp r0, 0xFF
- beq _080F96F4
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x30]
- b _080F9778
- .align 2, 0
-_080F96E4: .4byte gUnknown_020388C0
-_080F96E8: .4byte gSpriteTemplate_83E59E8
-_080F96EC: .4byte gSprites
-_080F96F0: .4byte 0x0000ffff
-_080F96F4:
- ldrb r0, [r5, 0x2]
- b _080F976E
-_080F96F8:
- ldr r0, _080F9760
- ldrb r1, [r0, 0x3]
- adds r5, r0, 0
- cmp r1, 0xFF
- bne _080F977A
- ldr r0, _080F9764
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x3]
- ldr r3, _080F9768
- ldrb r1, [r5, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- beq _080F976C
- ldrb r0, [r5, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x2]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r5, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x2]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x30]
- b _080F9778
- .align 2, 0
-_080F9760: .4byte gUnknown_020388C0
-_080F9764: .4byte gSpriteTemplate_83E59E8
-_080F9768: .4byte gSprites
-_080F976C:
- ldrb r0, [r5, 0x3]
-_080F976E:
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
-_080F9778:
- strh r0, [r1, 0x30]
-_080F977A:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F9798
- adds r0, r1
- movs r1, 0x1
- ands r1, r4
- bl StartSpriteAnim
-_080F9790:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9798: .4byte gSprites
- thumb_func_end sub_80F953C
-
- thumb_func_start sub_80F979C
-sub_80F979C: @ 80F979C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r2, 0x3
- bhi _080F97D4
- ldr r0, _080F97D8
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F97D4
- ldr r2, _080F97DC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- movs r0, 0x1
- adds r2, r3, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
-_080F97D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080F97D8: .4byte gUnknown_020388C0
-_080F97DC: .4byte gSprites
- thumb_func_end sub_80F979C
-
- thumb_func_start SetBgTilemapBuffer
-SetBgTilemapBuffer: @ 80F97E0
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080F9808
- ldr r0, _080F9810
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F9808
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F9814
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080F9808:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9810: .4byte gUnknown_020388C0
-_080F9814: .4byte gSprites
- thumb_func_end SetBgTilemapBuffer
-
- thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818
- push {lr}
- ldr r0, _080F9824
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F9824: .4byte gUnknown_083E5968
- thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-
- thumb_func_start BuyMenuFreeMemory
-BuyMenuFreeMemory: @ 80F9828
- push {lr}
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end BuyMenuFreeMemory
-
- thumb_func_start sub_80F9834
-sub_80F9834: @ 80F9834
- push {lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F9848
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
-_080F9848:
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F9858
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_080F9858:
- ldrh r1, [r2, 0x30]
- adds r1, 0x1
- movs r3, 0
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x2
- ble _080F9870
- strh r3, [r2, 0x30]
-_080F9870:
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x2
- ble _080F987A
- strh r3, [r2, 0x34]
-_080F987A:
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- cmp r1, 0x8
- beq _080F988A
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bne _080F988C
-_080F988A:
- strh r3, [r2, 0x24]
-_080F988C:
- movs r0, 0x26
- ldrsh r1, [r2, r0]
- cmp r1, 0x8
- beq _080F989C
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bne _080F98A0
-_080F989C:
- movs r0, 0
- strh r0, [r2, 0x26]
-_080F98A0:
- pop {r0}
- bx r0
- thumb_func_end sub_80F9834
-
- thumb_func_start sub_80F98A4
-sub_80F98A4: @ 80F98A4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F98D0
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080F98CA
- cmp r1, 0x3
- bhi _080F98CA
- ldr r2, _080F98D4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080F98D8
- str r1, [r0]
-_080F98CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F98D0: .4byte gUnknown_020388C0
-_080F98D4: .4byte gSprites
-_080F98D8: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F98A4
-
- thumb_func_start sub_80F98DC
-sub_80F98DC: @ 80F98DC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F9908
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080F9902
- cmp r1, 0x3
- bhi _080F9902
- ldr r2, _080F990C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080F9910
- str r1, [r0]
-_080F9902:
- pop {r0}
- bx r0
- .align 2, 0
-_080F9908: .4byte gUnknown_020388C0
-_080F990C: .4byte gSprites
-_080F9910: .4byte sub_80F9834
- thumb_func_end sub_80F98DC
-
- thumb_func_start sub_80F9914
-sub_80F9914: @ 80F9914
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F9964
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F995C
- cmp r1, 0x3
- bhi _080F995C
- ldr r3, _080F9968
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x26]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x34]
-_080F995C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9964: .4byte gUnknown_020388C0
-_080F9968: .4byte gSprites
- thumb_func_end sub_80F9914
-
- thumb_func_start sub_80F996C
-sub_80F996C: @ 80F996C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80F98A4
- adds r0, r4, 0
- bl sub_80F9914
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F996C
-
- thumb_func_start sub_80F9988
-sub_80F9988: @ 80F9988
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, _080F99C4
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F99BE
- cmp r2, 0x3
- bhi _080F99BE
- ldr r2, _080F99C8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r3, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080F99BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080F99C4: .4byte gUnknown_020388C0
-_080F99C8: .4byte gSprites
- thumb_func_end sub_80F9988
-
- thumb_func_start sub_80F99CC
-sub_80F99CC: @ 80F99CC
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A04
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A08
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- subs r0, 0x3
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A04: .4byte sub_80F9A8C
-_080F9A08: .4byte gTasks
- thumb_func_end sub_80F99CC
-
- thumb_func_start sub_80F9A0C
-sub_80F9A0C: @ 80F9A0C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A44
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A48
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x3
- strh r0, [r1, 0x8]
- subs r0, 0x4
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A44: .4byte sub_80F9A8C
-_080F9A48: .4byte gTasks
- thumb_func_end sub_80F9A0C
-
- thumb_func_start sub_80F9A4C
-sub_80F9A4C: @ 80F9A4C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A84
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A88
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x7
- strh r0, [r1, 0x8]
- subs r0, 0x8
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A84: .4byte sub_80F9A8C
-_080F9A88: .4byte gTasks
- thumb_func_end sub_80F9A4C
-
- thumb_func_start sub_80F9A8C
-sub_80F9A8C: @ 80F9A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080F9AC4
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9ABE
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080F9AC8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0
- bl sub_806AFAC
- adds r0, r4, 0
- bl DestroyTask
-_080F9ABE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9AC4: .4byte gPaletteFade
-_080F9AC8: .4byte gTasks
- thumb_func_end sub_80F9A8C
-
- thumb_func_start sub_80F9ACC
-sub_80F9ACC: @ 80F9ACC
- push {r4,r5,lr}
- ldr r1, _080F9AEC
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9AE2
- b _080F9BF6
-_080F9AE2:
- lsls r0, 2
- ldr r1, _080F9AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9AEC: .4byte 0x0201b000
-_080F9AF0: .4byte _080F9AF4
- .align 2, 0
-_080F9AF4:
- .4byte _080F9B14
- .4byte _080F9B54
- .4byte _080F9B5A
- .4byte _080F9B6E
- .4byte _080F9B98
- .4byte _080F9B9E
- .4byte _080F9BB0
- .4byte _080F9BC8
-_080F9B14:
- ldr r0, _080F9B3C
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9B40
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9B48
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9B44
- adds r2, r3
- bl sub_806D90C
- b _080F9BF0
- .align 2, 0
-_080F9B3C: .4byte 0x00000266
-_080F9B40: .4byte gPlayerPartyCount
-_080F9B44: .4byte gPlayerParty
-_080F9B48:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
-_080F9B54:
- bl sub_806DA98
- b _080F9BB4
-_080F9B5A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9BBC
-_080F9B6E:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9B94
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
- .align 2, 0
-_080F9B94: .4byte 0x00000266
-_080F9B98:
- bl sub_806E334
- b _080F9BB4
-_080F9B9E:
- bl sub_806E0C4
- ldr r1, _080F9BAC
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9BBC
- .align 2, 0
-_080F9BAC: .4byte 0x0201b000
-_080F9BB0:
- bl sub_80F9C00
-_080F9BB4:
- ldr r1, _080F9BC4
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9BBC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9BF6
- .align 2, 0
-_080F9BC4: .4byte 0x0201b000
-_080F9BC8:
- ldr r0, _080F9BEC
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9BF8
- .align 2, 0
-_080F9BEC: .4byte 0x00000266
-_080F9BF0:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9BF6:
- movs r0, 0
-_080F9BF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9ACC
-
- thumb_func_start sub_80F9C00
-sub_80F9C00: @ 80F9C00
- push {r4,lr}
- movs r4, 0
- b _080F9C58
-_080F9C06:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9C24
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F9C52
- lsls r0, 2
- ldr r1, _080F9C28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9C24: .4byte gPlayerParty
-_080F9C28: .4byte _080F9C2C
- .align 2, 0
-_080F9C2C:
- .4byte _080F9C40
- .4byte _080F9C4A
- .4byte _080F9C4A
- .4byte _080F9C40
- .4byte _080F9C40
-_080F9C40:
- adds r0, r4, 0
- movs r1, 0x7E
- bl sub_806BC3C
- b _080F9C52
-_080F9C4A:
- adds r0, r4, 0
- movs r1, 0x70
- bl sub_806BC3C
-_080F9C52:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9C58:
- ldr r0, _080F9C68
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9C06
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9C68: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9C00
-
- thumb_func_start sub_80F9C6C
-sub_80F9C6C: @ 80F9C6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F9C94
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9CD8
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9C98
- cmp r0, 0x2
- beq _080F9CC0
- b _080F9CD8
- .align 2, 0
-_080F9C94: .4byte gPaletteFade
-_080F9C98:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _080F9CB8
- strb r0, [r1]
- ldr r2, _080F9CBC
- ldrb r0, [r1]
- strh r0, [r2]
- adds r0, r4, 0
- bl sub_8123138
- b _080F9CD8
- .align 2, 0
-_080F9CB8: .4byte gUnknown_02038694
-_080F9CBC: .4byte gUnknown_0202E8CC
-_080F9CC0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9CE0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080F9CE4
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_080F9CD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9CE0: .4byte gUnknown_02038694
-_080F9CE4: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F9C6C
-
- thumb_func_start sub_80F9CE8
-sub_80F9CE8: @ 80F9CE8
- push {r4,r5,lr}
- ldr r1, _080F9D08
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9CFE
- b _080F9E12
-_080F9CFE:
- lsls r0, 2
- ldr r1, _080F9D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9D08: .4byte 0x0201b000
-_080F9D0C: .4byte _080F9D10
- .align 2, 0
-_080F9D10:
- .4byte _080F9D30
- .4byte _080F9D70
- .4byte _080F9D76
- .4byte _080F9D8A
- .4byte _080F9DB4
- .4byte _080F9DBA
- .4byte _080F9DCC
- .4byte _080F9DE4
-_080F9D30:
- ldr r0, _080F9D58
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9D5C
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9D64
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9D60
- adds r2, r3
- bl sub_806D90C
- b _080F9E0C
- .align 2, 0
-_080F9D58: .4byte 0x00000266
-_080F9D5C: .4byte gPlayerPartyCount
-_080F9D60: .4byte gPlayerParty
-_080F9D64:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
-_080F9D70:
- bl sub_806DA98
- b _080F9DD0
-_080F9D76:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9DD8
-_080F9D8A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9DB0
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
- .align 2, 0
-_080F9DB0: .4byte 0x00000266
-_080F9DB4:
- bl sub_806E334
- b _080F9DD0
-_080F9DBA:
- bl sub_806E0C4
- ldr r1, _080F9DC8
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9DD8
- .align 2, 0
-_080F9DC8: .4byte 0x0201b000
-_080F9DCC:
- bl sub_80F9E1C
-_080F9DD0:
- ldr r1, _080F9DE0
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9DD8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9E12
- .align 2, 0
-_080F9DE0: .4byte 0x0201b000
-_080F9DE4:
- ldr r0, _080F9E08
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9E14
- .align 2, 0
-_080F9E08: .4byte 0x00000266
-_080F9E0C:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9E12:
- movs r0, 0
-_080F9E14:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9CE8
-
- thumb_func_start sub_80F9E1C
-sub_80F9E1C: @ 80F9E1C
- push {r4,lr}
- movs r4, 0
- b _080F9E52
-_080F9E22:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9E40
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- cmp r0, 0
- bne _080F9E44
- adds r0, r4, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _080F9E4C
- .align 2, 0
-_080F9E40: .4byte gPlayerParty
-_080F9E44:
- adds r0, r4, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_080F9E4C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9E52:
- ldr r0, _080F9E60
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9E22
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9E60: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9E1C
-
- thumb_func_start sub_80F9E64
-sub_80F9E64: @ 80F9E64
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080F9E8C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9EE2
- adds r0, r6, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9E90
- cmp r0, 0x2
- beq _080F9ED0
- b _080F9EE2
- .align 2, 0
-_080F9E8C: .4byte gPaletteFade
-_080F9E90:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080F9EC4
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r5, _080F9EC8
- ldrh r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9ECC
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_8123138
- b _080F9EE2
- .align 2, 0
-_080F9EC4: .4byte gUnknown_0202E8CC
-_080F9EC8: .4byte gUnknown_0202E8CE
-_080F9ECC: .4byte gPlayerParty
-_080F9ED0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9EE8
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_8123138
-_080F9EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9EE8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F9E64
-
- thumb_func_start sub_80F9EEC
-sub_80F9EEC: @ 80F9EEC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080F9F20
- ldr r1, _080F9F24
- ldrb r1, [r1]
- ldr r2, _080F9F28
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080F9F2C
- movs r4, 0
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, _080F9F30
- movs r0, 0x3
- strb r0, [r1, 0x8]
- ldr r1, _080F9F34
- ldr r0, _080F9F38
- str r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F20: .4byte gPlayerParty
-_080F9F24: .4byte gUnknown_0202E8CC
-_080F9F28: .4byte gPlayerPartyCount
-_080F9F2C: .4byte c2_exit_to_overworld_2_switch
-_080F9F30: .4byte 0x02018000
-_080F9F34: .4byte gUnknown_0300485C
-_080F9F38: .4byte sub_8080990
- thumb_func_end sub_80F9EEC
-
- thumb_func_start sub_80F9F3C
-sub_80F9F3C: @ 80F9F3C
- push {r4,r5,lr}
- ldr r1, _080F9F78
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r5, r1, 0
-_080F9F48:
- ldr r0, _080F9F7C
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9F80
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0xD
- bl GetMonData
- cmp r0, 0
- beq _080F9F66
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9F66:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080F9F48
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F78: .4byte gScriptResult
-_080F9F7C: .4byte gUnknown_0202E8CC
-_080F9F80: .4byte gPlayerParty
- thumb_func_end sub_80F9F3C
-
- thumb_func_start sub_80F9F84
-sub_80F9F84: @ 80F9F84
- push {r4,r5,lr}
- ldr r0, _080F9FC4
- ldrh r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _080F9FC8
- adds r5, r0
- ldr r0, _080F9FCC
- ldrh r1, [r0]
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _080F9FD0
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, _080F9FD4
- movs r1, 0xD
- muls r1, r4
- ldr r2, _080F9FD8
- adds r1, r2
- bl StringCopy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9FC4: .4byte gUnknown_0202E8CC
-_080F9FC8: .4byte gPlayerParty
-_080F9FCC: .4byte gUnknown_0202E8CE
-_080F9FD0: .4byte gStringVar1
-_080F9FD4: .4byte gStringVar2
-_080F9FD8: .4byte gMoveNames
- thumb_func_end sub_80F9F84
-
- thumb_func_start sub_80F9FDC
-sub_80F9FDC: @ 80F9FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r0, 0xD
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r3, r4, 0
- adds r3, 0xD
- str r3, [sp, 0xC]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r7, r5, 0
- adds r7, 0x11
- str r7, [sp, 0x10]
- mov r0, r8
- adds r1, r7, 0
- bl GetMonData
- mov r1, sp
- adds r1, 0x5
- str r1, [sp, 0x18]
- strb r0, [r1]
- adds r3, r4, 0
- adds r3, 0x11
- str r3, [sp, 0x1C]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- add r7, sp, 0x4
- mov r10, r7
- strb r0, [r7]
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- mov r6, sp
- adds r6, 0x6
- strb r0, [r6]
- ldr r1, _080FA0D8
- adds r0, r5, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r6]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- lsls r5, 1
- asrs r2, r5
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r4, 1
- asrs r1, r4
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r6]
- ldrb r0, [r6]
- bics r0, r3
- strb r0, [r6]
- lsls r2, r4
- lsls r1, r5
- adds r2, r1
- ldrb r0, [r6]
- orrs r0, r2
- strb r0, [r6]
- mov r0, r8
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- mov r0, r8
- movs r1, 0x15
- adds r2, r6, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA0D8: .4byte gUnknown_08208238
- thumb_func_end sub_80F9FDC
-
- thumb_func_start sub_80FA0DC
-sub_80FA0DC: @ 80FA0DC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080FA13C
- mov r8, r0
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080FA140
- adds r0, r5
- ldr r4, _080FA144
- ldrb r2, [r4]
- movs r1, 0
- bl SetMonMoveSlot
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r6
- adds r0, r5
- ldrb r1, [r4]
- bl RemoveMonPPBonus
- ldrh r4, [r4]
- cmp r4, 0x2
- bhi _080FA130
-_080FA10E:
- ldr r0, _080FA13C
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA140
- adds r0, r1
- lsls r1, r4, 24
- lsrs r1, 24
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_80F9FDC
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x2
- bls _080FA10E
-_080FA130:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA13C: .4byte gUnknown_0202E8CC
-_080FA140: .4byte gPlayerParty
-_080FA144: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80FA0DC
-
- thumb_func_start sub_80FA148
-sub_80FA148: @ 80FA148
- push {r4,lr}
- ldr r0, _080FA170
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA174
- adds r0, r1
- ldr r4, _080FA178
- movs r1, 0
- strh r1, [r4]
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _080FA16A
- movs r0, 0x1
- strh r0, [r4]
-_080FA16A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA170: .4byte gUnknown_0202E8CC
-_080FA174: .4byte gPlayerParty
-_080FA178: .4byte gScriptResult
- thumb_func_end sub_80FA148
-
- thumb_func_start sub_80FA17C
-sub_80FA17C: @ 80FA17C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- ldr r7, _080FA1B4
- ldr r0, _080FA1B8
- adds r0, r7
- mov r9, r0
- movs r1, 0x1
- mov r8, r1
-_080FA192:
- movs r0, 0xA
- bl sub_80EB72C
- lsls r4, r6, 3
- adds r5, r4, r7
- ldr r2, _080FA1BC
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- mov r1, r8
- ands r1, r0
- cmp r1, 0
- beq _080FA1C0
- movs r0, 0xC
- b _080FA1C2
- .align 2, 0
-_080FA1B4: .4byte gSaveBlock1
-_080FA1B8: .4byte 0x00002dd4
-_080FA1BC: .4byte 0x00002dd8
-_080FA1C0:
- movs r0, 0xD
-_080FA1C2:
- bl sub_80EB72C
- ldr r2, _080FA214
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- adds r3, r4, r7
- mov r2, r8
- ands r2, r0
- ldr r5, _080FA218
- adds r3, r5
- lsls r2, 6
- ldrb r0, [r3]
- movs r5, 0x41
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- mov r1, r9
- adds r0, r4, r1
- bl sub_80FA740
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA192
- ldr r0, _080FA21C
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA214: .4byte 0x00002dda
-_080FA218: .4byte 0x00002dd5
-_080FA21C: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA17C
-
- thumb_func_start sub_80FA220
-sub_80FA220: @ 80FA220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FA236
- b _080FA34E
-_080FA236:
- lsls r0, r1, 2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- mov r10, r0
- movs r1, 0x7F
- mov r9, r1
- movs r2, 0x80
- negs r2, r2
- mov r8, r2
-_080FA24A:
- ldr r2, [sp]
- mov r4, r10
- lsls r0, r4, 3
- ldr r1, _080FA28C
- adds r5, r0, r1
- ldrb r6, [r5, 0x1]
- movs r0, 0x40
- ands r0, r6
- cmp r0, 0
- bne _080FA2A0
- ldrb r4, [r5]
- lsls r3, r4, 25
- lsrs r1, r3, 25
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bcc _080FA290
- adds r0, r1, 0
- subs r0, r2
- mov r2, r9
- ands r0, r2
- mov r1, r8
- ands r1, r4
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x7F
- ands r1, r0
- cmp r1, 0
- bne _080FA336
- movs r0, 0x40
- orrs r0, r6
- b _080FA334
- .align 2, 0
-_080FA28C: .4byte gSaveBlock1 + 0x2DD4
-_080FA290:
- lsrs r0, r3, 25
- subs r2, r0
- mov r0, r8
- ands r0, r4
- strb r0, [r5]
- movs r0, 0x40
- orrs r0, r6
- strb r0, [r5, 0x1]
-_080FA2A0:
- ldrb r7, [r5]
- lsls r0, r7, 25
- lsrs r0, 25
- adds r4, r0, r2
- ldrh r0, [r5]
- lsls r6, r0, 18
- lsls r0, r4, 16
- lsrs r0, 16
- lsrs r1, r6, 25
- cmp r0, r1
- bls _080FA310
- adds r0, r4, 0
- bl __umodsi3
- adds r3, r0, 0
- lsrs r1, r6, 25
- adds r0, r4, 0
- str r3, [sp, 0x4]
- bl __udivsi3
- adds r4, r0, 0
- movs r0, 0x1
- eors r4, r0
- ands r4, r0
- lsls r2, r4, 6
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x1]
- movs r1, 0x40
- ands r0, r1
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080FA2FA
- adds r1, r3, 0
- mov r0, r9
- ands r1, r0
- mov r0, r8
- ands r0, r7
- orrs r0, r1
- strb r0, [r5]
- b _080FA336
-_080FA2FA:
- ldrh r0, [r5]
- lsls r0, 18
- lsrs r0, 25
- subs r0, r3
- mov r1, r9
- ands r0, r1
- mov r1, r8
- ands r1, r7
- orrs r1, r0
- strb r1, [r5]
- b _080FA336
-_080FA310:
- mov r2, r9
- ands r4, r2
- mov r0, r8
- ands r0, r7
- orrs r0, r4
- strb r0, [r5]
- lsls r0, 25
- ldrh r1, [r5]
- lsls r1, 18
- lsrs r0, 25
- lsrs r1, 25
- cmp r0, r1
- bne _080FA336
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
-_080FA334:
- strb r0, [r5, 0x1]
-_080FA336:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- cmp r0, 0x4
- bls _080FA24A
- ldr r0, _080FA360
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
-_080FA34E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA360: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA220
-
- thumb_func_start sub_80FA364
-sub_80FA364: @ 80FA364
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl sub_80FA7C8
- lsls r0, 24
- cmp r0, 0
- bne _080FA462
- ldr r5, _080FA3B4
- adds r0, r5, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- adds r0, r5, 0
- bl FlagSet
- ldr r0, _080FA3B8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- ldr r1, _080FA3BC
- ldrh r2, [r4]
- ldr r3, _080FA3C0
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, 0x2]
- ldr r2, _080FA3C4
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA3B4: .4byte 0x00000833
-_080FA3B8: .4byte 0x00000834
-_080FA3BC: .4byte gSaveBlock1
-_080FA3C0: .4byte 0x00002dd8
-_080FA3C4: .4byte 0x00002dda
-_080FA3C8:
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- ldrh r0, [r4]
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r1, 0x80
- lsls r1, 7
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- mov r0, sp
- bl sub_80FA740
- movs r6, 0
-_080FA3E4:
- lsls r4, r6, 3
- ldr r5, _080FA444
- adds r1, r4, r5
- mov r0, sp
- movs r2, 0
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- adds r7, r4, 0
- cmp r0, 0
- beq _080FA450
- movs r3, 0x4
- ldr r0, _080FA448
- adds r0, r5
- mov r12, r0
- cmp r3, r6
- bls _080FA428
- mov r5, r12
- ldr r4, _080FA44C
-_080FA40A:
- lsls r2, r3, 3
- adds r2, r5
- adds r2, r4
- subs r3, 0x1
- lsls r0, r3, 3
- adds r0, r5
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsls r3, 16
- lsrs r3, 16
- cmp r3, r6
- bhi _080FA40A
-_080FA428:
- mov r3, r12
- adds r2, r7, r3
- ldr r0, _080FA44C
- adds r2, r0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0
- cmp r6, 0
- bne _080FA464
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA444: .4byte gSaveBlock1 + 0x2DD4
-_080FA448: .4byte 0xffffd22c
-_080FA44C: .4byte 0x00002dd4
-_080FA450:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA3E4
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r5, 0x20]
- str r1, [r5, 0x24]
-_080FA462:
- movs r0, 0
-_080FA464:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA364
-
- thumb_func_start sub_80FA46C
-sub_80FA46C: @ 80FA46C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r2, 0
- cmp r2, r7
- bcs _080FA4D4
-_080FA488:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, r7
- bcs _080FA4CA
- lsls r0, r2, 3
- mov r1, r9
- adds r6, r1, r0
-_080FA49A:
- lsls r0, r5, 3
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r10
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- cmp r0, 0
- beq _080FA4C0
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r2, [r6]
- str r3, [r6, 0x4]
-_080FA4C0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- bcc _080FA49A
-_080FA4CA:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080FA488
-_080FA4D4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FA46C
-
- thumb_func_start sub_80FA4E4
-sub_80FA4E4: @ 80FA4E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r4, 0
- cmp r4, r8
- bcs _080FA520
-_080FA500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080FA554
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- adds r1, r6, r1
- movs r2, 0x28
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA500
-_080FA520:
- ldr r5, _080FA554
- movs r0, 0x80
- lsls r0, 1
- adds r3, r5, r0
- movs r7, 0
- movs r4, 0
- cmp r4, r8
- bcs _080FA588
-_080FA530:
- movs r6, 0
-_080FA532:
- adds r0, r5, 0
- adds r1, r7, 0
- str r3, [sp]
- bl sub_80FA828
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp]
- cmp r0, 0
- bge _080FA558
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r3!, {r0,r1}
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080FA572
- .align 2, 0
-_080FA554: .4byte 0x02007800
-_080FA558:
- lsls r1, r0, 3
- ldr r0, _080FA5B4
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r1, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bcs _080FA572
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
-_080FA572:
- adds r5, 0x8
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA532
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA530
-_080FA588:
- ldr r4, _080FA5B4
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x2
- bl sub_80FA46C
- adds r5, r4, 0
- ldr r3, _080FA5B8
- movs r4, 0
-_080FA59A:
- ldm r5!, {r0,r1}
- stm r3!, {r0,r1}
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA59A
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5B4: .4byte 0x02007900
-_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA4E4
-
- thumb_func_start sub_80FA5BC
-sub_80FA5BC: @ 80FA5BC
- push {lr}
- ldr r0, _080FA5D8
- ldrh r1, [r0]
- lsls r1, 3
- ldr r0, _080FA5DC
- adds r1, r0
- ldr r0, _080FA5E0
- adds r1, 0x4
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5D8: .4byte gUnknown_0202E8CC
-_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
-_080FA5E0: .4byte gStringVar1
- thumb_func_end sub_80FA5BC
-
- thumb_func_start sub_80FA5E4
-sub_80FA5E4: @ 80FA5E4
- push {r4,lr}
- movs r4, 0
- ldr r3, _080FA630
- ldr r1, _080FA634
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 25
- lsrs r1, 25
- ldr r2, _080FA638
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 25
- subs r1, r0
- cmp r1, 0x1
- bgt _080FA626
- ldr r1, _080FA63C
- adds r0, r3, r1
- ldrb r1, [r0]
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FA626
- ldr r1, _080FA640
- adds r0, r3, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r4, r0, 31
-_080FA626:
- ldr r0, _080FA644
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA630: .4byte gSaveBlock1
-_080FA634: .4byte 0x00002dd4
-_080FA638: .4byte 0x00002ddc
-_080FA63C: .4byte 0x00002dd5
-_080FA640: .4byte 0x00002ddd
-_080FA644: .4byte gScriptResult
- thumb_func_end sub_80FA5E4
-
- thumb_func_start sub_80FA648
-sub_80FA648: @ 80FA648
- ldr r2, _080FA664
- ldr r0, _080FA668
- ldr r3, _080FA66C
- adds r1, r0, r3
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080FA664: .4byte gScriptResult
-_080FA668: .4byte gSaveBlock1
-_080FA66C: .4byte 0x00002dd8
- thumb_func_end sub_80FA648
-
- thumb_func_start atk90_changetypestoenemyattacktype
-atk90_changetypestoenemyattacktype: @ 80FA670
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r2, 0
- cmp r2, 0x1
- beq _080FA6B6
- cmp r2, 0x1
- bgt _080FA68A
- cmp r2, 0
- beq _080FA690
- b _080FA732
-_080FA68A:
- cmp r0, 0x2
- beq _080FA6E2
- b _080FA732
-_080FA690:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r3, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- b _080FA6DA
-_080FA6B6:
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
-_080FA6DA:
- cmp r1, r0
- bcs _080FA732
-_080FA6DE:
- movs r0, 0
- b _080FA73A
-_080FA6E2:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x2]
- ldrh r0, [r5, 0x2]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x4]
- ldrh r0, [r5, 0x4]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x6]
- ldrh r0, [r5, 0x6]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
-_080FA72E:
- movs r0, 0x1
- b _080FA73A
-_080FA732:
- bl Random
- movs r1, 0x1
- ands r0, r1
-_080FA73A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end atk90_changetypestoenemyattacktype
-
- thumb_func_start sub_80FA740
-sub_80FA740: @ 80FA740
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x32
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x50
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_080FA782:
- adds r1, r4, 0
- adds r1, 0x1E
- movs r0, 0x7F
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5]
- ldr r0, _080FA7C4
- ands r0, r2
- orrs r0, r1
- strh r0, [r5]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0x1
- bl __modsi3
- adds r0, 0x1E
- movs r1, 0x7F
- ands r0, r1
- ldrb r2, [r5]
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- bl Random
- strh r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA7C4: .4byte 0xffffc07f
- thumb_func_end sub_80FA740
-
- thumb_func_start sub_80FA7C8
-sub_80FA7C8: @ 80FA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080FA7CE:
- lsls r1, r4, 3
- ldr r0, _080FA7E4
- adds r1, r0
- adds r0, r5, 0
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA7E8
- movs r0, 0x1
- b _080FA7F4
- .align 2, 0
-_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
-_080FA7E8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA7CE
- movs r0, 0
-_080FA7F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7C8
-
- thumb_func_start sub_80FA7FC
-sub_80FA7FC: @ 80FA7FC
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- movs r4, 0
-_080FA804:
- ldrh r1, [r3]
- ldrh r0, [r2]
- adds r2, 0x2
- adds r3, 0x2
- cmp r1, r0
- beq _080FA814
- movs r0, 0
- b _080FA820
-_080FA814:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080FA804
- movs r0, 0x1
-_080FA820:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7FC
-
- thumb_func_start sub_80FA828
-sub_80FA828: @ 80FA828
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r6, _080FA84C
- movs r4, 0
- cmp r4, r5
- bge _080FA862
-_080FA838:
- adds r1, r6, 0x4
- adds r0, r7, 0x4
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA850
- lsls r0, r4, 16
- asrs r0, 16
- b _080FA866
- .align 2, 0
-_080FA84C: .4byte 0x02007900
-_080FA850:
- adds r6, 0x8
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _080FA838
-_080FA862:
- movs r0, 0x1
- negs r0, r0
-_080FA866:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA828
-
- thumb_func_start sub_80FA86C
-sub_80FA86C: @ 80FA86C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r2, _080FA890
-_080FA87A:
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _080FA894
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r0, r1
- bne _080FA894
- adds r0, r3, 0x1
- b _080FA89E
- .align 2, 0
-_080FA890: .4byte gUnknown_083E5A20
-_080FA894:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x15
- bls _080FA87A
- movs r0, 0
-_080FA89E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA86C
-
- thumb_func_start unref_sub_80FA8A4
-unref_sub_80FA8A4: @ 80FA8A4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl sub_80FA86C
- cmp r0, 0
- beq _080FA8C4
- lsls r0, 3
- ldr r1, _080FA8C0
- adds r0, r1
- b _080FA8C6
- .align 2, 0
-_080FA8C0: .4byte gUnknown_083E5A18
-_080FA8C4:
- movs r0, 0
-_080FA8C6:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80FA8A4
-
- thumb_func_start sub_80FA8CC
-sub_80FA8CC: @ 80FA8CC
- push {lr}
- cmp r0, 0
- beq _080FA8E4
- cmp r0, 0x16
- bhi _080FA8E4
- lsls r0, 3
- ldr r1, _080FA8E0
- adds r0, r1
- b _080FA8E6
- .align 2, 0
-_080FA8E0: .4byte gUnknown_083E5A18
-_080FA8E4:
- movs r0, 0
-_080FA8E6:
- pop {r1}
- bx r1
- thumb_func_end sub_80FA8CC
-
- thumb_func_start sub_80FA8EC
-sub_80FA8EC: @ 80FA8EC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl sub_80FA904
-_080FA8F6:
- bl sub_80FA940
- lsls r0, 24
- cmp r0, 0
- bne _080FA8F6
- pop {r0}
- bx r0
- thumb_func_end sub_80FA8EC
-
- thumb_func_start sub_80FA904
-sub_80FA904: @ 80FA904
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080FA928
- str r0, [r3]
- movs r2, 0x79
- adds r2, r0
- mov r12, r2
- movs r2, 0
- mov r4, r12
- strb r2, [r4]
- adds r0, 0x78
- strb r1, [r0]
- ldr r3, [r3]
- cmp r1, 0
- bne _080FA930
- ldr r0, _080FA92C
- b _080FA932
- .align 2, 0
-_080FA928: .4byte gUnknown_020388CC
-_080FA92C: .4byte sub_80FAB78
-_080FA930:
- ldr r0, _080FA93C
-_080FA932:
- str r0, [r3, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA93C: .4byte sub_80FAD04
- thumb_func_end sub_80FA904
-
- thumb_func_start sub_80FA940
-sub_80FA940: @ 80FA940
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _080FA95C
- ldr r0, [r0]
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _080FA952
- b _080FAAE2
-_080FA952:
- lsls r0, 2
- ldr r1, _080FA960
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FA95C: .4byte gUnknown_020388CC
-_080FA960: .4byte _080FA964
- .align 2, 0
-_080FA964:
- .4byte _080FA984
- .4byte _080FA998
- .4byte _080FA9AC
- .4byte _080FA9BC
- .4byte _080FA9D8
- .4byte _080FA9F4
- .4byte _080FAA38
- .4byte _080FAAB4
-_080FA984:
- ldr r0, _080FA990
- ldr r1, _080FA994
- bl LZ77UnCompVram
- b _080FAAF4
- .align 2, 0
-_080FA990: .4byte gUnknown_083E5DA0
-_080FA994: .4byte 0x06008000
-_080FA998:
- ldr r0, _080FA9A4
- ldr r1, _080FA9A8
- bl LZ77UnCompVram
- b _080FAAF4
- .align 2, 0
-_080FA9A4: .4byte gUnknown_083E6B04
-_080FA9A8: .4byte 0x0600e000
-_080FA9AC:
- ldr r0, _080FA9B8
- movs r1, 0x70
- movs r2, 0x60
- bl LoadPalette
- b _080FAAF4
- .align 2, 0
-_080FA9B8: .4byte gUnknown_083E5D60
-_080FA9BC:
- ldr r0, _080FA9D0
- ldr r1, _080FA9D4
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 1
- adds r1, r2
- bl LZ77UnCompWram
- b _080FAAF4
- .align 2, 0
-_080FA9D0: .4byte gUnknown_083E5AF0
-_080FA9D4: .4byte gUnknown_020388CC
-_080FA9D8:
- ldr r0, _080FA9EC
- ldr r1, _080FA9F0
- ldr r1, [r1]
- movs r3, 0xA0
- lsls r3, 2
- adds r1, r3
- bl LZ77UnCompWram
- b _080FAAF4
- .align 2, 0
-_080FA9EC: .4byte gUnknown_083E5B34
-_080FA9F0: .4byte gUnknown_020388CC
-_080FA9F4:
- bl sub_80FB32C
- ldr r4, _080FAA34
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x54
- ldrh r1, [r0]
- adds r0, 0x20
- strh r1, [r0]
- subs r0, 0x1E
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x76
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- bl sub_80FB758
- ldr r1, [r4]
- strb r0, [r1, 0x16]
- ldr r0, [r4]
- ldrh r0, [r0, 0x14]
- bl sub_80FB9C0
- adds r1, r0, 0
- ldr r0, [r4]
- strh r1, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
- b _080FAAF4
- .align 2, 0
-_080FAA34: .4byte gUnknown_020388CC
-_080FAA38:
- ldr r0, _080FAA60
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x78
- ldrb r1, [r0]
- cmp r1, 0
- bne _080FAA64
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80FB170
- b _080FAAF4
- .align 2, 0
-_080FAA60: .4byte gUnknown_020388CC
-_080FAA64:
- adds r1, r4, 0
- adds r1, 0x54
- ldrh r0, [r1]
- lsls r0, 3
- subs r0, 0x34
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0
- strh r0, [r2]
- movs r5, 0x56
- adds r5, r4
- mov r12, r5
- ldrh r0, [r5]
- lsls r0, 3
- subs r0, 0x44
- adds r5, r4, 0
- adds r5, 0x5E
- strh r0, [r5]
- ldrh r1, [r1]
- adds r0, r4, 0
- adds r0, 0x64
- strh r1, [r0]
- mov r0, r12
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x66
- strh r1, [r0]
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x80
- str r2, [sp]
- str r2, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- b _080FAAF4
-_080FAAB4:
- bl sub_80FBA18
- bl sub_80FB260
- ldr r2, _080FAAE8
- ldr r0, [r2]
- movs r1, 0
- str r1, [r0, 0x1C]
- str r1, [r0, 0x20]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x7E
- strb r1, [r0]
- ldr r1, _080FAAEC
- ldr r3, _080FAAF0
- adds r0, r3, 0
- strh r0, [r1]
- ldr r1, [r2]
- adds r1, 0x79
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080FAAE2:
- movs r0, 0
- b _080FAB02
- .align 2, 0
-_080FAAE8: .4byte gUnknown_020388CC
-_080FAAEC: .4byte REG_BG2CNT
-_080FAAF0: .4byte 0x0000bc8a
-_080FAAF4:
- ldr r0, _080FAB0C
- ldr r1, [r0]
- adds r1, 0x79
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_080FAB02:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAB0C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FA940
-
- thumb_func_start sub_80FAB10
-sub_80FAB10: @ 80FAB10
- push {r4,lr}
- ldr r4, _080FAB5C
- ldr r0, [r4]
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080FAB34
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x58
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x5A
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FAB34:
- ldr r0, [r4]
- ldr r0, [r0, 0x20]
- cmp r0, 0
- beq _080FAB54
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x70
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x72
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FAB54:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FAB5C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAB10
-
- thumb_func_start sub_80FAB60
-sub_80FAB60: @ 80FAB60
- push {lr}
- ldr r0, _080FAB74
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080FAB74: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAB60
-
- thumb_func_start sub_80FAB78
-sub_80FAB78: @ 80FAB78
- push {r4,lr}
- movs r4, 0
- ldr r2, _080FAC14
- ldr r0, [r2]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r2]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r3, _080FAC18
- ldrh r1, [r3, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FABAA
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- cmp r0, 0x2
- bls _080FABAA
- adds r1, 0x7C
- movs r0, 0xFF
- strb r0, [r1]
- movs r4, 0x1
-_080FABAA:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FABC8
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- cmp r0, 0xF
- bhi _080FABC8
- adds r1, 0x7C
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0x1
-_080FABC8:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FABE6
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _080FABE6
- adds r1, 0x7B
- movs r0, 0xFF
- strb r0, [r1]
- movs r4, 0x1
-_080FABE6:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080FAC04
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- cmp r0, 0x1B
- bhi _080FAC04
- adds r1, 0x7B
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0x1
-_080FAC04:
- ldrh r3, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _080FAC1C
- movs r4, 0x4
- b _080FAC26
- .align 2, 0
-_080FAC14: .4byte gUnknown_020388CC
-_080FAC18: .4byte gMain
-_080FAC1C:
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _080FAC26
- movs r4, 0x5
-_080FAC26:
- cmp r4, 0x1
- bne _080FAC38
- ldr r0, [r2]
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r1, [r2]
- ldr r0, _080FAC40
- str r0, [r1, 0x18]
-_080FAC38:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAC40: .4byte _swiopen
- thumb_func_end sub_80FAB78
-
- thumb_func_start _swiopen
-_swiopen: @ 80FAC44
- push {r4,r5,lr}
- ldr r5, _080FAC5C
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FAC60
- movs r0, 0x2
- b _080FACFA
- .align 2, 0
-_080FAC5C: .4byte gUnknown_020388CC
-_080FAC60:
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080FAC76
- adds r1, 0x54
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080FAC76:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080FAC8E
- adds r1, 0x54
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080FAC8E:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080FACA6
- adds r1, 0x56
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080FACA6:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080FACBE
- adds r1, 0x56
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080FACBE:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- adds r1, 0x56
- ldrh r1, [r1]
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80FB758
- ldr r1, [r5]
- strb r0, [r1, 0x16]
- ldr r0, [r5]
- ldrh r1, [r0, 0x14]
- cmp r4, r1
- beq _080FACEE
- strh r4, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
-_080FACEE:
- bl sub_80FBA18
- ldr r1, [r5]
- ldr r0, _080FAD00
- str r0, [r1, 0x18]
- movs r0, 0x3
-_080FACFA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAD00: .4byte sub_80FAB78
- thumb_func_end _swiopen
-
- thumb_func_start sub_80FAD04
-sub_80FAD04: @ 80FAD04
- push {r4-r6,lr}
- movs r4, 0
- ldr r3, _080FADD4
- ldr r0, [r3]
- mov r12, r0
- adds r0, 0x6A
- strh r4, [r0]
- mov r5, r12
- adds r5, 0x68
- strh r4, [r5]
- ldr r2, _080FADD8
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0
- beq _080FAD3E
- mov r0, r12
- adds r0, 0x5E
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x34
- negs r0, r0
- cmp r1, r0
- ble _080FAD3E
- ldr r0, _080FADDC
- strh r0, [r5]
- movs r4, 0x1
-_080FAD3E:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FAD5E
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x5E
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0x3B
- bgt _080FAD5E
- adds r1, 0x68
- movs r0, 0x1
- strh r0, [r1]
- movs r4, 0x1
-_080FAD5E:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FAD84
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x5C
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r0, 0x2C
- negs r0, r0
- cmp r1, r0
- ble _080FAD84
- adds r1, r2, 0
- adds r1, 0x6A
- ldr r0, _080FADDC
- strh r0, [r1]
- movs r4, 0x1
-_080FAD84:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080FADA4
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x5C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0xAB
- bgt _080FADA4
- adds r1, 0x6A
- movs r0, 0x1
- strh r0, [r1]
- movs r4, 0x1
-_080FADA4:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080FADB0
- movs r4, 0x4
-_080FADB0:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080FADBA
- movs r4, 0x5
-_080FADBA:
- cmp r4, 0x1
- bne _080FADCA
- ldr r0, [r6]
- ldr r1, _080FADE0
- str r1, [r0, 0x18]
- adds r0, 0x6C
- movs r1, 0
- strh r1, [r0]
-_080FADCA:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080FADD4: .4byte gUnknown_020388CC
-_080FADD8: .4byte gMain
-_080FADDC: .4byte 0x0000ffff
-_080FADE0: .4byte sub_80FADE4
- thumb_func_end sub_80FAD04
-
- thumb_func_start sub_80FADE4
-sub_80FADE4: @ 80FADE4
- push {r4,r5,lr}
- ldr r5, _080FAEB4
- ldr r2, [r5]
- adds r3, r2, 0
- adds r3, 0x5E
- adds r0, r2, 0
- adds r0, 0x68
- ldrh r0, [r0]
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x5C
- adds r0, r2, 0
- adds r0, 0x6A
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- movs r4, 0
- ldrsh r0, [r1, r4]
- movs r2, 0
- ldrsh r1, [r3, r2]
- bl sub_80FB238
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x6C
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080FAEBC
- adds r0, r2, 0
- adds r0, 0x5C
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r0, r1, 0
- adds r0, 0x2C
- cmp r0, 0
- bge _080FAE3C
- adds r0, 0x7
-_080FAE3C:
- asrs r0, 3
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r2, 0
- adds r0, 0x5E
- movs r4, 0
- ldrsh r1, [r0, r4]
- adds r0, r1, 0
- adds r0, 0x34
- cmp r0, 0
- bge _080FAE56
- adds r0, 0x7
-_080FAE56:
- asrs r0, 3
- adds r0, 0x2
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, r2, 0
- adds r4, 0x64
- adds r0, r2, 0
- adds r0, 0x66
- ldrh r2, [r4]
- cmp r3, r2
- bne _080FAE72
- ldrh r2, [r0]
- cmp r1, r2
- beq _080FAEA0
-_080FAE72:
- strh r3, [r4]
- strh r1, [r0]
- adds r0, r3, 0
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80FB758
- ldr r1, [r5]
- strb r0, [r1, 0x16]
- ldr r0, [r5]
- ldrh r3, [r0, 0x14]
- cmp r4, r3
- beq _080FAE9C
- strh r4, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
-_080FAE9C:
- bl sub_80FBA18
-_080FAEA0:
- ldr r0, _080FAEB4
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x6C
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080FAEB8
- str r0, [r2, 0x18]
- movs r0, 0x3
- b _080FAEBE
- .align 2, 0
-_080FAEB4: .4byte gUnknown_020388CC
-_080FAEB8: .4byte sub_80FAD04
-_080FAEBC:
- movs r0, 0x2
-_080FAEBE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FADE4
-
- thumb_func_start sub_80FAEC4
-sub_80FAEC4: @ 80FAEC4
- push {r4-r6,lr}
- ldr r1, _080FAF40
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r3, [r0]
- adds r5, r1, 0
- cmp r3, 0
- bne _080FAF48
- subs r0, 0x1A
- strh r3, [r0]
- subs r0, 0x2
- strh r3, [r0]
- str r3, [r2, 0x40]
- str r3, [r2, 0x3C]
- adds r4, r2, 0
- adds r4, 0x54
- ldrh r0, [r4]
- lsls r0, 3
- subs r0, 0x34
- adds r1, r2, 0
- adds r1, 0x60
- strh r0, [r1]
- movs r0, 0x56
- adds r0, r2
- mov r12, r0
- ldrh r0, [r0]
- lsls r0, 3
- subs r0, 0x44
- adds r3, r2, 0
- adds r3, 0x62
- strh r0, [r3]
- movs r6, 0
- ldrsh r0, [r1, r6]
- lsls r0, 8
- cmp r0, 0
- bge _080FAF10
- adds r0, 0xF
-_080FAF10:
- asrs r0, 4
- str r0, [r2, 0x44]
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 8
- cmp r0, 0
- bge _080FAF20
- adds r0, 0xF
-_080FAF20:
- asrs r0, 4
- str r0, [r2, 0x48]
- ldrh r1, [r4]
- adds r0, r2, 0
- adds r0, 0x64
- strh r1, [r0]
- mov r3, r12
- ldrh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x66
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 9
- str r0, [r2, 0x4C]
- ldr r0, _080FAF44
- b _080FAFA6
- .align 2, 0
-_080FAF40: .4byte gUnknown_020388CC
-_080FAF44: .4byte 0xfffff800
-_080FAF48:
- adds r0, r2, 0
- adds r0, 0x5C
- movs r6, 0
- ldrsh r0, [r0, r6]
- lsls r0, 8
- str r0, [r2, 0x3C]
- adds r0, r2, 0
- adds r0, 0x5E
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r2, 0x40]
- adds r0, r2, 0
- adds r0, 0x60
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, [r2, 0x3C]
- cmp r0, 0
- bge _080FAF74
- adds r0, 0xF
-_080FAF74:
- asrs r0, 4
- negs r0, r0
- str r0, [r2, 0x44]
- ldr r0, [r2, 0x40]
- cmp r0, 0
- bge _080FAF82
- adds r0, 0xF
-_080FAF82:
- asrs r0, 4
- negs r0, r0
- str r0, [r2, 0x48]
- adds r0, r2, 0
- adds r0, 0x64
- ldrh r1, [r0]
- subs r0, 0x10
- strh r1, [r0]
- adds r0, 0x12
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x56
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 8
- str r0, [r2, 0x4C]
- movs r0, 0x80
- lsls r0, 4
-_080FAFA6:
- str r0, [r2, 0x50]
- ldr r0, [r5]
- adds r0, 0x6E
- movs r1, 0
- strh r1, [r0]
- bl sub_80FBCA0
- bl sub_80FBDF8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80FAEC4
-
- thumb_func_start sub_80FAFC0
-sub_80FAFC0: @ 80FAFC0
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, _080FAFD8
- ldr r3, [r0]
- adds r2, r3, 0
- adds r2, 0x6E
- ldrh r1, [r2]
- adds r5, r0, 0
- cmp r1, 0xF
- bls _080FAFDC
- movs r0, 0
- b _080FB164
- .align 2, 0
-_080FAFD8: .4byte gUnknown_020388CC
-_080FAFDC:
- adds r0, r1, 0x1
- movs r1, 0
- strh r0, [r2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bne _080FB050
- str r1, [r3, 0x44]
- str r1, [r3, 0x48]
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r1, [r0]
- subs r0, 0x4
- strh r1, [r0]
- adds r0, 0x6
- ldrh r0, [r0]
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- adds r1, 0x1A
- ldrb r0, [r1]
- movs r2, 0x80
- lsls r2, 9
- cmp r0, 0
- bne _080FB012
- movs r2, 0x80
- lsls r2, 8
-_080FB012:
- str r2, [r3, 0x4C]
- movs r2, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080FB01E
- movs r2, 0x1
-_080FB01E:
- strb r2, [r1]
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x78
- ldrb r0, [r0]
- ldr r2, _080FB048
- cmp r0, 0
- bne _080FB030
- ldr r2, _080FB04C
-_080FB030:
- str r2, [r1, 0x18]
- adds r0, r1, 0
- adds r0, 0x58
- ldrh r0, [r0]
- adds r1, 0x5A
- ldrh r1, [r1]
- bl sub_80FBB3C
- bl sub_80FBE24
- movs r4, 0
- b _080FB132
- .align 2, 0
-_080FB048: .4byte sub_80FAD04
-_080FB04C: .4byte sub_80FAB78
-_080FB050:
- ldr r2, [r3, 0x3C]
- ldr r0, [r3, 0x44]
- adds r2, r0
- str r2, [r3, 0x3C]
- ldr r0, [r3, 0x40]
- ldr r1, [r3, 0x48]
- adds r0, r1
- str r0, [r3, 0x40]
- asrs r2, 8
- adds r4, r3, 0
- adds r4, 0x5C
- strh r2, [r4]
- ldr r0, [r3, 0x40]
- asrs r0, 8
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- ldr r0, [r3, 0x4C]
- ldr r1, [r3, 0x50]
- adds r0, r1
- str r0, [r3, 0x4C]
- ldr r2, [r3, 0x44]
- cmp r2, 0
- bge _080FB090
- adds r0, r3, 0
- adds r0, 0x60
- movs r6, 0
- ldrsh r1, [r4, r6]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- blt _080FB0A4
-_080FB090:
- cmp r2, 0
- ble _080FB0B4
- adds r0, r3, 0
- adds r0, 0x60
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- ble _080FB0B4
-_080FB0A4:
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r2, [r0]
- subs r0, 0x4
- movs r1, 0
- strh r2, [r0]
- str r1, [r3, 0x44]
-_080FB0B4:
- ldr r2, [r5]
- ldr r4, [r2, 0x48]
- cmp r4, 0
- bge _080FB0D0
- adds r0, r2, 0
- adds r0, 0x5E
- adds r3, r2, 0
- adds r3, 0x62
- movs r6, 0
- ldrsh r1, [r0, r6]
- movs r6, 0
- ldrsh r0, [r3, r6]
- cmp r1, r0
- blt _080FB0E8
-_080FB0D0:
- cmp r4, 0
- ble _080FB0FA
- adds r1, r2, 0
- adds r1, 0x5E
- adds r0, r2, 0
- adds r0, 0x62
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- ble _080FB0FA
-_080FB0E8:
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x62
- ldrh r1, [r0]
- adds r3, r2, 0
- adds r3, 0x5E
- movs r0, 0
- strh r1, [r3]
- str r0, [r2, 0x48]
-_080FB0FA:
- ldr r0, _080FB118
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r3, [r0]
- cmp r3, 0
- bne _080FB120
- ldr r1, [r2, 0x4C]
- ldr r0, _080FB11C
- cmp r1, r0
- bgt _080FB130
- adds r0, 0x1
- str r0, [r2, 0x4C]
- str r3, [r2, 0x50]
- b _080FB130
- .align 2, 0
-_080FB118: .4byte gUnknown_020388CC
-_080FB11C: .4byte 0x00007fff
-_080FB120:
- ldr r0, [r2, 0x4C]
- movs r1, 0x80
- lsls r1, 9
- cmp r0, r1
- ble _080FB130
- str r1, [r2, 0x4C]
- movs r0, 0
- str r0, [r2, 0x50]
-_080FB130:
- movs r4, 0x1
-_080FB132:
- ldr r0, _080FB16C
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5C
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r1, r3, 0
- adds r1, 0x5E
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, [r3, 0x4C]
- lsls r2, 8
- lsrs r2, 16
- str r2, [sp]
- ldr r2, [r3, 0x4C]
- lsls r2, 8
- lsrs r2, 16
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- adds r0, r4, 0
-_080FB164:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080FB16C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAFC0
-
- thumb_func_start sub_80FB170
-sub_80FB170: @ 80FB170
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r7, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r4, 16
- lsrs r4, 16
- mov r8, r4
- lsls r7, 16
- adds r4, r7, 0
- lsrs r4, 16
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080FB230
- ldr r6, [r4]
- ldr r7, _080FB234
- mov r12, r7
- adds r4, r5, 0
- adds r4, 0x40
- lsls r4, 1
- add r4, r12
- movs r7, 0
- ldrsh r4, [r4, r7]
- str r4, [sp]
- mov r7, r8
- muls r7, r4
- adds r4, r7, 0
- asrs r4, 8
- mov r10, r4
- str r4, [r6, 0x2C]
- lsls r5, 1
- add r5, r12
- movs r7, 0
- ldrsh r5, [r5, r7]
- negs r4, r5
- mov r7, r8
- muls r7, r4
- adds r4, r7, 0
- asrs r4, 8
- mov r12, r4
- str r4, [r6, 0x30]
- mov r7, r9
- muls r7, r5
- adds r5, r7, 0
- asrs r5, 8
- str r5, [r6, 0x34]
- ldr r7, [sp]
- mov r4, r9
- muls r4, r7
- asrs r4, 8
- mov r8, r4
- str r4, [r6, 0x38]
- lsls r0, 16
- asrs r0, 8
- lsls r2, 16
- asrs r2, 16
- lsls r4, r2, 8
- adds r0, r4
- lsls r3, 16
- asrs r3, 16
- adds r4, r3, 0
- muls r4, r5
- mov r5, r10
- muls r5, r2
- adds r4, r5
- subs r0, r4
- str r0, [r6, 0x24]
- lsls r1, 16
- asrs r1, 8
- lsls r0, r3, 8
- adds r1, r0
- mov r0, r8
- muls r0, r3
- mov r3, r12
- muls r3, r2
- adds r2, r3, 0
- adds r0, r2
- subs r1, r0
- str r1, [r6, 0x28]
- adds r6, 0x7D
- movs r0, 0x1
- strb r0, [r6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB230: .4byte gUnknown_020388CC
-_080FB234: .4byte gSineTable
- thumb_func_end sub_80FB170
-
- thumb_func_start sub_80FB238
-sub_80FB238: @ 80FB238
- ldr r2, _080FB25C
- ldr r2, [r2]
- lsls r0, 16
- asrs r0, 8
- movs r3, 0xE0
- lsls r3, 5
- adds r0, r3
- str r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 8
- movs r0, 0x90
- lsls r0, 6
- adds r1, r0
- str r1, [r2, 0x28]
- adds r2, 0x7D
- movs r0, 0x1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080FB25C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FB238
-
- thumb_func_start sub_80FB260
-sub_80FB260: @ 80FB260
- push {lr}
- ldr r0, _080FB29C
- ldr r2, [r0]
- adds r3, r2, 0
- adds r3, 0x7D
- ldrb r0, [r3]
- cmp r0, 0
- beq _080FB298
- ldr r1, _080FB2A0
- ldr r0, [r2, 0x2C]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x34]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x30]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x38]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x24]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x28]
- str r0, [r1]
- movs r0, 0
- strb r0, [r3]
-_080FB298:
- pop {r0}
- bx r0
- .align 2, 0
-_080FB29C: .4byte gUnknown_020388CC
-_080FB2A0: .4byte REG_BG2PA
- thumb_func_end sub_80FB260
-
- thumb_func_start sub_80FB2A4
-sub_80FB2A4: @ 80FB2A4
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- bl sub_80FB260
- ldr r0, _080FB2E8
- ldr r2, [r0]
- ldr r1, [r2, 0x20]
- cmp r1, 0
- beq _080FB2E0
- negs r0, r4
- strh r0, [r1, 0x24]
- ldr r1, [r2, 0x20]
- negs r0, r5
- strh r0, [r1, 0x26]
-_080FB2E0:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB2E8: .4byte gUnknown_020388CC
- thumb_func_end sub_80FB2A4
-
- thumb_func_start sub_80FB2EC
-sub_80FB2EC: @ 80FB2EC
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- ldr r0, _080FB30C
- adds r1, r0
- lsrs r2, r1, 16
- cmp r2, 0xE
- bhi _080FB306
- cmp r3, 0
- beq _080FB306
- cmp r3, 0x1C
- bls _080FB310
-_080FB306:
- movs r0, 0x58
- b _080FB324
- .align 2, 0
-_080FB30C: .4byte 0xfffe0000
-_080FB310:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _080FB328
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r1
- ldrb r0, [r0]
-_080FB324:
- pop {r1}
- bx r1
- .align 2, 0
-_080FB328: .4byte gRegionMapSections
- thumb_func_end sub_80FB2EC
-
- thumb_func_start sub_80FB32C
-sub_80FB32C: @ 80FB32C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080FB358
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- adds r2, r0, 0
- cmp r1, 0x19
- bne _080FB35C
- ldrb r0, [r2, 0x5]
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080FB35C
- bl sub_80FB600
- b _080FB5E8
- .align 2, 0
-_080FB358: .4byte gSaveBlock1
-_080FB35C:
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- bl get_map_light_level_by_bank_and_number
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x8
- bhi _080FB3A4
- lsls r0, 2
- ldr r1, _080FB37C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB37C: .4byte _080FB380
- .align 2, 0
-_080FB380:
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3E0
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3E0
- .4byte _080FB464
- .4byte _080FB428
-_080FB3A4:
- ldr r4, _080FB3D4
- ldr r0, [r4]
- ldr r3, _080FB3D8
- ldrb r1, [r3, 0x14]
- movs r2, 0
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- strb r2, [r0]
- ldr r0, [r3]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldr r0, _080FB3DC
- ldrh r6, [r0]
- ldrh r3, [r0, 0x2]
- ldr r1, [r4]
- ldrh r0, [r1, 0x14]
- cmp r0, 0x45
- beq _080FB3CC
- b _080FB4CC
-_080FB3CC:
- adds r1, 0x7F
- movs r0, 0x1
- strb r0, [r1]
- b _080FB4CC
- .align 2, 0
-_080FB3D4: .4byte gUnknown_020388CC
-_080FB3D8: .4byte gMapHeader
-_080FB3DC: .4byte gSaveBlock1
-_080FB3E0:
- ldr r4, _080FB420
- adds r0, r4, 0
- adds r0, 0x24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r1, 0x25
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r0, _080FB424
- ldr r0, [r0]
- ldrb r1, [r2, 0x14]
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x28]
- ldrh r3, [r4, 0x2A]
- b _080FB4CC
- .align 2, 0
-_080FB420: .4byte gSaveBlock1
-_080FB424: .4byte gUnknown_020388CC
-_080FB428:
- ldr r4, _080FB45C
- movs r0, 0x14
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x15
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r0, _080FB460
- ldr r0, [r0]
- ldrb r1, [r2, 0x14]
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x18]
- ldrh r3, [r4, 0x1A]
- b _080FB4CC
- .align 2, 0
-_080FB45C: .4byte gSaveBlock1
-_080FB460: .4byte gUnknown_020388CC
-_080FB464:
- ldr r5, _080FB48C
- ldr r0, [r5]
- ldr r1, _080FB490
- ldrb r1, [r1, 0x14]
- strh r1, [r0, 0x14]
- cmp r1, 0x57
- beq _080FB498
- ldr r4, _080FB494
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- b _080FB4B6
- .align 2, 0
-_080FB48C: .4byte gUnknown_020388CC
-_080FB490: .4byte gMapHeader
-_080FB494: .4byte gSaveBlock1 + 0x24
-_080FB498:
- ldr r4, _080FB548
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r1, [r5]
- ldrb r0, [r2, 0x14]
- strh r0, [r1, 0x14]
-_080FB4B6:
- ldr r0, _080FB54C
- ldr r0, [r0]
- adds r0, 0x7F
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x4]
- ldrh r3, [r4, 0x6]
-_080FB4CC:
- mov r9, r6
- ldr r4, _080FB54C
- ldr r0, [r4]
- ldrh r5, [r0, 0x14]
- lsls r0, r5, 3
- ldr r1, _080FB550
- adds r0, r1
- mov r10, r0
- ldrb r7, [r0, 0x2]
- adds r0, r2, 0
- adds r1, r7, 0
- str r3, [sp]
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r3, [sp]
- cmp r1, 0
- bne _080FB4F4
- movs r1, 0x1
-_080FB4F4:
- adds r0, r6, 0
- str r3, [sp]
- bl __udivsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- cmp r6, r7
- bcc _080FB50C
- subs r0, r7, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB50C:
- mov r2, r10
- ldrb r4, [r2, 0x3]
- mov r0, r8
- adds r1, r4, 0
- str r3, [sp]
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r3, [sp]
- cmp r1, 0
- bne _080FB526
- movs r1, 0x1
-_080FB526:
- adds r0, r3, 0
- bl __udivsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _080FB53A
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_080FB53A:
- cmp r5, 0x24
- beq _080FB59C
- cmp r5, 0x24
- bgt _080FB554
- cmp r5, 0x1D
- beq _080FB55E
- b _080FB5BE
- .align 2, 0
-_080FB548: .4byte gSaveBlock1 + 0x14
-_080FB54C: .4byte gUnknown_020388CC
-_080FB550: .4byte gRegionMapLocations
-_080FB554:
- cmp r5, 0x29
- beq _080FB566
- cmp r5, 0x33
- beq _080FB566
- b _080FB5BE
-_080FB55E:
- cmp r3, 0
- beq _080FB5BE
- movs r6, 0
- b _080FB5BE
-_080FB566:
- movs r6, 0
- ldr r1, _080FB598
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _080FB574
- movs r6, 0x1
-_080FB574:
- cmp r0, 0x33
- ble _080FB57E
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB57E:
- movs r3, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x25
- ble _080FB58A
- movs r3, 0x1
-_080FB58A:
- cmp r0, 0x38
- ble _080FB5BE
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- b _080FB5BE
- .align 2, 0
-_080FB598: .4byte gSaveBlock1
-_080FB59C:
- movs r6, 0
- mov r0, r9
- cmp r0, 0xE
- bls _080FB5A6
- movs r6, 0x1
-_080FB5A6:
- mov r1, r9
- cmp r1, 0x1C
- bls _080FB5B2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB5B2:
- mov r2, r9
- cmp r2, 0x36
- bls _080FB5BE
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB5BE:
- ldr r0, _080FB5F8
- ldr r2, [r0]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- ldr r1, _080FB5FC
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r6, r0
- adds r0, 0x1
- adds r1, r2, 0
- adds r1, 0x54
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- ldr r1, _080FB5FC
- adds r0, r1
- ldrb r0, [r0, 0x1]
- adds r0, r3, r0
- adds r0, 0x2
- adds r2, 0x56
- strh r0, [r2]
-_080FB5E8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB5F8: .4byte gUnknown_020388CC
-_080FB5FC: .4byte gRegionMapLocations
- thumb_func_end sub_80FB32C
-
- thumb_func_start sub_80FB600
-sub_80FB600: @ 80FB600
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r7, 0
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x1
- mov r5, sp
- adds r5, 0x2
- add r6, sp, 0x4
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r5
- cmp r0, 0x4
- bhi _080FB694
- lsls r0, 2
- ldr r1, _080FB63C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB63C: .4byte _080FB640
- .align 2, 0
-_080FB640:
- .4byte _080FB694
- .4byte _080FB654
- .4byte _080FB664
- .4byte _080FB674
- .4byte _080FB684
-_080FB654:
- ldr r2, _080FB660
- ldr r1, [r2]
- movs r0, 0x8
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB660: .4byte gUnknown_020388CC
-_080FB664:
- ldr r2, _080FB670
- ldr r1, [r2]
- movs r0, 0xC
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB670: .4byte gUnknown_020388CC
-_080FB674:
- ldr r2, _080FB680
- ldr r1, [r2]
- movs r0, 0x27
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB680: .4byte gUnknown_020388CC
-_080FB684:
- ldr r2, _080FB690
- ldr r1, [r2]
- movs r0, 0x2E
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB690: .4byte gUnknown_020388CC
-_080FB694:
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl get_mapheader_by_bank_and_number
- ldr r1, _080FB750
- mov r9, r1
- ldr r2, [r1]
- ldrb r1, [r0, 0x14]
- strh r1, [r2, 0x14]
- ldr r6, [r0]
- ldr r1, _080FB754
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x2]
- ldr r0, [r6]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FB6C6
- movs r1, 0x1
-_080FB6C6:
- mov r2, r10
- movs r3, 0
- ldrsh r0, [r2, r3]
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r8, r4
- bcc _080FB6E2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080FB6E2:
- ldrb r4, [r5, 0x3]
- ldr r0, [r6, 0x4]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FB6F6
- movs r1, 0x1
-_080FB6F6:
- mov r2, sp
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r2, r9
- cmp r7, r4
- bcc _080FB710
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080FB710:
- ldr r0, [r2]
- adds r0, 0x7F
- movs r1, 0
- strb r1, [r0]
- ldr r2, [r2]
- ldr r3, _080FB754
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0]
- add r0, r8
- adds r0, 0x1
- adds r1, r2, 0
- adds r1, 0x54
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- adds r0, r7, r0
- adds r0, 0x2
- adds r2, 0x56
- strh r0, [r2]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB750: .4byte gUnknown_020388CC
-_080FB754: .4byte gRegionMapLocations
- thumb_func_end sub_80FB600
-
- thumb_func_start sub_80FB758
-sub_80FB758: @ 80FB758
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x58
- bls _080FB764
- b _080FB9A0
-_080FB764:
- lsls r0, 2
- ldr r1, _080FB770
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB770: .4byte _080FB774
- .align 2, 0
-_080FB774:
- .4byte _080FB8DC
- .4byte _080FB8E4
- .4byte _080FB8EA
- .4byte _080FB8F4
- .4byte _080FB8FC
- .4byte _080FB904
- .4byte _080FB90C
- .4byte _080FB914
- .4byte _080FB91C
- .4byte _080FB924
- .4byte _080FB92C
- .4byte _080FB934
- .4byte _080FB93C
- .4byte _080FB944
- .4byte _080FB94C
- .4byte _080FB954
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB96C
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB988
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB8D8
-_080FB8D8:
- movs r0, 0
- b _080FB9A2
-_080FB8DC:
- ldr r0, _080FB8E0
- b _080FB956
- .align 2, 0
-_080FB8E0: .4byte 0x0000080f
-_080FB8E4:
- movs r0, 0x81
- lsls r0, 4
- b _080FB956
-_080FB8EA:
- ldr r0, _080FB8F0
- b _080FB956
- .align 2, 0
-_080FB8F0: .4byte 0x00000811
-_080FB8F4:
- ldr r0, _080FB8F8
- b _080FB956
- .align 2, 0
-_080FB8F8: .4byte 0x00000812
-_080FB8FC:
- ldr r0, _080FB900
- b _080FB956
- .align 2, 0
-_080FB900: .4byte 0x00000813
-_080FB904:
- ldr r0, _080FB908
- b _080FB956
- .align 2, 0
-_080FB908: .4byte 0x00000814
-_080FB90C:
- ldr r0, _080FB910
- b _080FB956
- .align 2, 0
-_080FB910: .4byte 0x00000815
-_080FB914:
- ldr r0, _080FB918
- b _080FB956
- .align 2, 0
-_080FB918: .4byte 0x00000816
-_080FB91C:
- ldr r0, _080FB920
- b _080FB956
- .align 2, 0
-_080FB920: .4byte 0x00000817
-_080FB924:
- ldr r0, _080FB928
- b _080FB956
- .align 2, 0
-_080FB928: .4byte 0x00000818
-_080FB92C:
- ldr r0, _080FB930
- b _080FB956
- .align 2, 0
-_080FB930: .4byte 0x00000819
-_080FB934:
- ldr r0, _080FB938
- b _080FB956
- .align 2, 0
-_080FB938: .4byte 0x0000081a
-_080FB93C:
- ldr r0, _080FB940
- b _080FB956
- .align 2, 0
-_080FB940: .4byte 0x0000081b
-_080FB944:
- ldr r0, _080FB948
- b _080FB956
- .align 2, 0
-_080FB948: .4byte 0x0000081c
-_080FB94C:
- ldr r0, _080FB950
- b _080FB956
- .align 2, 0
-_080FB950: .4byte 0x0000081d
-_080FB954:
- ldr r0, _080FB968
-_080FB956:
- bl FlagGet
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080FB964
- movs r1, 0x2
-_080FB964:
- adds r0, r1, 0
- b _080FB9A2
- .align 2, 0
-_080FB968: .4byte 0x0000081e
-_080FB96C:
- ldr r0, _080FB984
- bl FlagGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- negs r0, r1
- orrs r0, r1
- asrs r0, 31
- movs r1, 0x4
- ands r0, r1
- b _080FB9A2
- .align 2, 0
-_080FB984: .4byte 0x00000848
-_080FB988:
- ldr r0, _080FB99C
- bl FlagGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- b _080FB9A2
- .align 2, 0
-_080FB99C: .4byte 0x00000849
-_080FB9A0:
- movs r0, 0x1
-_080FB9A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80FB758
-
- thumb_func_start sub_80FB9A8
-sub_80FB9A8: @ 80FB9A8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FB9A8
-
- thumb_func_start sub_80FB9C0
-sub_80FB9C0: @ 80FB9C0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, _080FB9E8
- ldrh r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x58
- beq _080FB9FC
- adds r5, r4, 0
- adds r6, r4, 0x2
-_080FB9D6:
- lsls r1, r2, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, r3
- bne _080FB9EC
- adds r0, r1, r6
- ldrh r0, [r0]
- b _080FB9FE
- .align 2, 0
-_080FB9E8: .4byte gUnknown_083E7684
-_080FB9EC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _080FB9D6
-_080FB9FC:
- adds r0, r3, 0
-_080FB9FE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FB9C0
-
- thumb_func_start sub_80FBA04
-sub_80FBA04: @ 80FBA04
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_80FB9C0
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FBA04
-
- thumb_func_start sub_80FBA18
-sub_80FBA18: @ 80FBA18
- push {r4-r6,lr}
- ldr r0, _080FBA2C
- ldr r1, [r0]
- ldrh r0, [r1, 0x14]
- cmp r0, 0x58
- bne _080FBA30
- movs r0, 0
- strb r0, [r1, 0x17]
- b _080FBA96
- .align 2, 0
-_080FBA2C: .4byte gUnknown_020388CC
-_080FBA30:
- adds r0, r1, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FBA40
- adds r0, r1, 0
- adds r0, 0x54
- b _080FBA44
-_080FBA40:
- adds r0, r1, 0
- adds r0, 0x64
-_080FBA44:
- ldrh r4, [r0]
- adds r0, 0x2
- ldrh r5, [r0]
- movs r6, 0
- b _080FBA70
-_080FBA4E:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FB2EC
- ldr r1, _080FBA8C
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x14]
- cmp r0, r1
- bne _080FBA70
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FBA70:
- cmp r4, 0x1
- bhi _080FBA4E
- adds r0, r5, 0
- bl sub_80FBAA0
- lsls r0, 24
- cmp r0, 0
- beq _080FBA90
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1D
- b _080FBA70
- .align 2, 0
-_080FBA8C: .4byte gUnknown_020388CC
-_080FBA90:
- ldr r0, _080FBA9C
- ldr r0, [r0]
- strb r6, [r0, 0x17]
-_080FBA96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBA9C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBA18
-
- thumb_func_start sub_80FBAA0
-sub_80FBAA0: @ 80FBAA0
- push {r4,r5,lr}
- lsls r0, 16
- ldr r1, _080FBAB4
- adds r0, r1
- lsrs r5, r0, 16
- ldr r0, _080FBAB8
- cmp r5, r0
- bne _080FBAC0
- b _080FBAE2
- .align 2, 0
-_080FBAB4: .4byte 0xffff0000
-_080FBAB8: .4byte 0x0000ffff
-_080FBABC:
- movs r0, 0x1
- b _080FBAE4
-_080FBAC0:
- movs r4, 0x1
-_080FBAC2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FB2EC
- ldr r1, _080FBAEC
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x14]
- cmp r0, r1
- beq _080FBABC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1C
- bls _080FBAC2
-_080FBAE2:
- movs r0, 0
-_080FBAE4:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FBAEC: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBAA0
-
- thumb_func_start sub_80FBAF0
-sub_80FBAF0: @ 80FBAF0
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _080FBB34
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0x7A
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r0, 0
- beq _080FBB2E
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r4, [r2, 0x20]
- adds r0, r4
- strh r0, [r2, 0x20]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r1, [r2, 0x22]
- adds r0, r1
- strh r0, [r2, 0x22]
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
-_080FBB2E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBB34: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBAF0
-
- thumb_func_start nullsub_66
-nullsub_66: @ 80FBB38
- bx lr
- thumb_func_end nullsub_66
-
- thumb_func_start sub_80FBB3C
-sub_80FBB3C: @ 80FBB3C
- push {r4-r7,lr}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _080FBBAC
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [sp, 0x20]
- str r2, [sp, 0x24]
- mov r2, sp
- ldr r1, _080FBBB0
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- lsrs r3, r0, 16
- add r2, sp, 0x18
- ldrh r1, [r2, 0x4]
- orrs r1, r0
- str r1, [r2, 0x4]
- mov r0, sp
- strh r3, [r0]
- ldr r0, _080FBBB4
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x58
- strh r3, [r0]
- ldr r5, _080FBBB8
- add r1, sp, 0x20
- ldr r0, [r1, 0x4]
- ands r0, r5
- orrs r0, r6
- str r0, [r1, 0x4]
- mov r0, sp
- strh r6, [r0, 0x2]
- adds r3, r4, 0
- adds r0, r3, 0
- adds r0, 0x5A
- strh r6, [r0]
- adds r0, 0x1E
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- bne _080FBBC0
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r3, r1
- str r0, [sp, 0x18]
- ldr r0, [r2, 0x4]
- ands r0, r5
- subs r1, 0x80
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r0, _080FBBBC
- b _080FBBD6
- .align 2, 0
-_080FBBAC: .4byte gUnknown_083E76E8
-_080FBBB0: .4byte gSpriteTemplate_83E76F0
-_080FBBB4: .4byte gUnknown_020388CC
-_080FBBB8: .4byte 0xffff0000
-_080FBBBC: .4byte sub_80FBAF0
-_080FBBC0:
- movs r3, 0xA0
- lsls r3, 2
- adds r0, r4, r3
- str r0, [sp, 0x18]
- ldr r0, [r2, 0x4]
- ands r0, r5
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r0, _080FBC38
-_080FBBD6:
- str r0, [sp, 0x14]
- adds r0, r2, 0
- bl LoadSpriteSheet
- adds r0, r7, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0x38
- movs r2, 0x48
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080FBC90
- ldr r4, _080FBC3C
- ldr r2, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080FBC40
- adds r3, r0, r1
- str r3, [r2, 0x1C]
- adds r2, 0x78
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080FBC44
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x3]
- ldr r2, [r4]
- ldr r1, [r2, 0x1C]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x1C]
- ldrh r0, [r1, 0x22]
- subs r0, 0x8
- strh r0, [r1, 0x22]
- ldr r0, [r2, 0x1C]
- movs r1, 0x1
- bl StartSpriteAnim
- b _080FBC6C
- .align 2, 0
-_080FBC38: .4byte nullsub_66
-_080FBC3C: .4byte gUnknown_020388CC
-_080FBC40: .4byte gSprites
-_080FBC44:
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3, 0x3]
- ldr r1, [r4]
- ldr r2, [r1, 0x1C]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldr r2, [r1, 0x1C]
- adds r1, 0x56
- ldrh r0, [r1]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x22]
-_080FBC6C:
- ldr r4, _080FBC98
- ldr r0, [r4]
- ldr r1, [r0, 0x1C]
- movs r0, 0x2
- strh r0, [r1, 0x30]
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- ldr r1, [r4]
- ldr r2, [r1, 0x1C]
- lsls r0, 24
- lsrs r0, 20
- ldr r4, _080FBC9C
- adds r0, r4
- strh r0, [r2, 0x32]
- ldr r1, [r1, 0x1C]
- movs r0, 0x1
- strh r0, [r1, 0x34]
-_080FBC90:
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBC98: .4byte gUnknown_020388CC
-_080FBC9C: .4byte 0x00000101
- thumb_func_end sub_80FBB3C
-
- thumb_func_start sub_80FBCA0
-sub_80FBCA0: @ 80FBCA0
- push {r4,lr}
- ldr r4, _080FBCCC
- ldr r0, [r4]
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080FBCC4
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x58
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x5A
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FBCC4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBCCC: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBCA0
-
- thumb_func_start unref_sub_80FBCD0
-unref_sub_80FBCD0: @ 80FBCD0
- ldr r0, _080FBCDC
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- movs r0, 0x1
- strh r0, [r1, 0x34]
- bx lr
- .align 2, 0
-_080FBCDC: .4byte gUnknown_020388CC
- thumb_func_end unref_sub_80FBCD0
-
- thumb_func_start unref_sub_80FBCE0
-unref_sub_80FBCE0: @ 80FBCE0
- ldr r0, _080FBCEC
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x34]
- bx lr
- .align 2, 0
-_080FBCEC: .4byte gUnknown_020388CC
- thumb_func_end unref_sub_80FBCE0
-
- thumb_func_start sub_80FBCF0
-sub_80FBCF0: @ 80FBCF0
- push {r4,r5,lr}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080FBD98
- str r2, [sp, 0x18]
- movs r2, 0x80
- add r5, sp, 0x18
- lsrs r3, r0, 16
- orrs r0, r2
- str r0, [r5, 0x4]
- ldr r0, _080FBD9C
- str r0, [sp, 0x20]
- ldr r2, _080FBDA0
- add r4, sp, 0x20
- ldr r0, [r4, 0x4]
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- movs r2, 0
- strh r3, [r0]
- strh r1, [r0, 0x2]
- ldr r0, _080FBDA4
- str r0, [sp, 0x4]
- ldr r0, _080FBDA8
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _080FBDAC
- str r0, [sp, 0x10]
- ldr r0, _080FBDB0
- str r0, [sp, 0x14]
- ldr r0, _080FBDB4
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _080FBD42
- ldr r0, _080FBDB8
- str r0, [sp, 0x18]
- ldr r0, _080FBDBC
- str r0, [sp, 0x20]
-_080FBD42:
- adds r0, r5, 0
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080FBDC0
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080FBDC4
- adds r1, r0
- str r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FBDCC
- adds r0, r2, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x22]
- ldr r1, [r2, 0x20]
- ldr r0, _080FBDC8
- b _080FBDEA
- .align 2, 0
-_080FBD98: .4byte gUnknown_083E5C40
-_080FBD9C: .4byte gUnknown_083E5C20
-_080FBDA0: .4byte 0xffff0000
-_080FBDA4: .4byte gUnknown_083E7708
-_080FBDA8: .4byte gUnknown_083E7718
-_080FBDAC: .4byte gDummySpriteAffineAnimTable
-_080FBDB0: .4byte SpriteCallbackDummy
-_080FBDB4: .4byte gSaveBlock2
-_080FBDB8: .4byte gUnknown_083E5CE0
-_080FBDBC: .4byte gUnknown_083E5CC0
-_080FBDC0: .4byte gUnknown_020388CC
-_080FBDC4: .4byte gSprites
-_080FBDC8: .4byte sub_80FBF34
-_080FBDCC:
- adds r0, r2, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x30
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x42
- strh r0, [r1, 0x22]
- ldr r1, [r2, 0x20]
- ldr r0, _080FBDF4
-_080FBDEA:
- str r0, [r1, 0x1C]
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBDF4: .4byte sub_80FBEA4
- thumb_func_end sub_80FBCF0
-
- thumb_func_start sub_80FBDF8
-sub_80FBDF8: @ 80FBDF8
- push {lr}
- ldr r3, _080FBE1C
- ldr r0, [r3]
- ldr r2, [r0, 0x20]
- cmp r2, 0
- beq _080FBE16
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r1, [r0, 0x20]
- ldr r0, _080FBE20
- str r0, [r1, 0x1C]
-_080FBE16:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBE1C: .4byte gUnknown_020388CC
-_080FBE20: .4byte SpriteCallbackDummy
- thumb_func_end sub_80FBDF8
-
- thumb_func_start sub_80FBE24
-sub_80FBE24: @ 80FBE24
- push {lr}
- ldr r0, _080FBE5C
- ldr r3, [r0]
- ldr r1, [r3, 0x20]
- cmp r1, 0
- beq _080FBE9A
- adds r0, r3, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080FBE64
- adds r0, r3, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x30
- strh r0, [r1, 0x20]
- ldr r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x42
- strh r0, [r1, 0x22]
- ldr r1, [r3, 0x20]
- ldr r0, _080FBE60
- b _080FBE8C
- .align 2, 0
-_080FBE5C: .4byte gUnknown_020388CC
-_080FBE60: .4byte sub_80FBEA4
-_080FBE64:
- adds r0, r3, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- movs r2, 0
- strh r0, [r1, 0x20]
- ldr r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x22]
- ldr r0, [r3, 0x20]
- strh r2, [r0, 0x24]
- ldr r0, [r3, 0x20]
- strh r2, [r0, 0x26]
- ldr r1, [r3, 0x20]
- ldr r0, _080FBEA0
-_080FBE8C:
- str r0, [r1, 0x1C]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_080FBE9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBEA0: .4byte sub_80FBF34
- thumb_func_end sub_80FBE24
-
- thumb_func_start sub_80FBEA4
-sub_80FBEA4: @ 80FBEA4
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080FBF08
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x5C
- movs r4, 0
- ldrsh r2, [r0, r4]
- lsls r2, 1
- negs r2, r2
- strh r2, [r3, 0x24]
- adds r1, 0x5E
- movs r4, 0
- ldrsh r0, [r1, r4]
- lsls r0, 1
- negs r0, r0
- strh r0, [r3, 0x26]
- ldrh r1, [r3, 0x22]
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x20]
- adds r1, r2
- adds r2, r3, 0
- adds r2, 0x28
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- adds r2, r1
- strh r2, [r3, 0x30]
- adds r0, 0x8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB0
- bhi _080FBF04
- lsls r0, r2, 16
- asrs r2, r0, 16
- movs r0, 0x8
- negs r0, r0
- cmp r2, r0
- blt _080FBF04
- cmp r2, 0xF8
- ble _080FBF0C
-_080FBF04:
- movs r0, 0
- b _080FBF0E
- .align 2, 0
-_080FBF08: .4byte gUnknown_020388CC
-_080FBF0C:
- movs r0, 0x1
-_080FBF0E:
- strh r0, [r3, 0x32]
- movs r1, 0x32
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080FBF20
- adds r0, r3, 0
- bl sub_80FBF40
- b _080FBF2C
-_080FBF20:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080FBF2C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FBEA4
-
- thumb_func_start sub_80FBF34
-sub_80FBF34: @ 80FBF34
- push {lr}
- bl sub_80FBF40
- pop {r0}
- bx r0
- thumb_func_end sub_80FBF34
-
- thumb_func_start sub_80FBF40
-sub_80FBF40: @ 80FBF40
- push {lr}
- adds r2, r0, 0
- ldr r0, _080FBF80
- ldr r0, [r0]
- adds r0, 0x7E
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FBF84
- ldrh r0, [r2, 0x3C]
- adds r0, 0x1
- strh r0, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080FBF90
- movs r0, 0
- strh r0, [r2, 0x3C]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080FBF90
- .align 2, 0
-_080FBF80: .4byte gUnknown_020388CC
-_080FBF84:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080FBF90:
- pop {r0}
- bx r0
- thumb_func_end sub_80FBF40
-
- thumb_func_start sub_80FBF94
-sub_80FBF94: @ 80FBF94
- push {lr}
- ldr r0, _080FBFB0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FBFAA
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
-_080FBFAA:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBFB0: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBF94
-
- thumb_func_start sub_80FBFB4
-sub_80FBFB4: @ 80FBFB4
- push {lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r1, 0x56
- bne _080FBFCA
- bl GetSecretBaseMapName
- b _080FBFF2
-_080FBFCA:
- cmp r1, 0x57
- bhi _080FBFE4
- ldr r0, _080FBFE0
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r3, 0
- bl StringCopy
- b _080FBFF2
- .align 2, 0
-_080FBFE0: .4byte gRegionMapLocations
-_080FBFE4:
- cmp r2, 0
- bne _080FBFEA
- movs r2, 0x12
-_080FBFEA:
- adds r0, r3, 0
- movs r1, 0
- bl StringFill
-_080FBFF2:
- pop {r1}
- bx r1
- thumb_func_end sub_80FBFB4
-
- thumb_func_start sub_80FBFF8
-sub_80FBFF8: @ 80FBFF8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x56
- beq _080FC014
- cmp r1, 0x57
- bne _080FC020
- ldr r1, _080FC010
- bl StringCopy
- b _080FC026
- .align 2, 0
-_080FC010: .4byte gOtherText_Ferry
-_080FC014:
- ldr r1, _080FC01C
- bl StringCopy
- b _080FC026
- .align 2, 0
-_080FC01C: .4byte gOtherText_SecretBase
-_080FC020:
- movs r2, 0
- bl sub_80FBFB4
-_080FC026:
- pop {r1}
- bx r1
- thumb_func_end sub_80FBFF8
-
- thumb_func_start sub_80FC02C
-sub_80FC02C: @ 80FC02C
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x42
- beq _080FC03C
- bl sub_80FBFF8
- b _080FC042
-_080FC03C:
- ldr r1, _080FC048
- bl StringCopy
-_080FC042:
- pop {r1}
- bx r1
- .align 2, 0
-_080FC048: .4byte gOtherText_Hideout
- thumb_func_end sub_80FC02C
-
- thumb_func_start sub_80FC04C
-sub_80FC04C: @ 80FC04C
- push {r4,r5,lr}
- ldr r5, [sp, 0xC]
- lsls r0, 16
- ldr r4, _080FC070
- lsrs r0, 13
- adds r0, r4
- ldrb r4, [r0]
- strh r4, [r1]
- ldrb r1, [r0, 0x1]
- strh r1, [r2]
- ldrb r1, [r0, 0x2]
- strh r1, [r3]
- ldrb r0, [r0, 0x3]
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC070: .4byte gRegionMapLocations
- thumb_func_end sub_80FC04C
-
- thumb_func_start sub_80FC074
-sub_80FC074: @ 80FC074
- push {r4,lr}
- ldr r0, _080FC090
- ldr r1, _080FC094
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _080FC084
- b _080FC1F2
-_080FC084:
- lsls r0, 2
- ldr r1, _080FC098
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC090: .4byte gMain
-_080FC094: .4byte 0x0000043c
-_080FC098: .4byte _080FC09C
- .align 2, 0
-_080FC09C:
- .4byte _080FC0C4
- .4byte _080FC104
- .4byte _080FC110
- .4byte _080FC120
- .4byte _080FC15C
- .4byte _080FC170
- .4byte _080FC184
- .4byte _080FC1A4
- .4byte _080FC1AA
- .4byte _080FC1C4
-_080FC0C4:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080FC1E6
-_080FC104:
- ldr r0, _080FC10C
- bl SetUpWindowConfig
- b _080FC1E6
- .align 2, 0
-_080FC10C: .4byte gWindowConfig_81E7224
-_080FC110:
- ldr r0, _080FC11C
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080FC1E6
- .align 2, 0
-_080FC11C: .4byte gWindowConfig_81E7224
-_080FC120:
- ldr r4, _080FC158
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBB3C
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- adds r1, r4, 0
- subs r1, 0x8
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x6]
- movs r2, 0xA4
- lsls r2, 4
- adds r4, r2
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xC
- bl StringFill
- bl sub_80FC254
- b _080FC1E6
- .align 2, 0
-_080FC158: .4byte 0x02000008
-_080FC15C:
- ldr r0, _080FC168
- ldr r1, _080FC16C
- bl LZ77UnCompVram
- b _080FC1E6
- .align 2, 0
-_080FC168: .4byte gUnknown_083E773C
-_080FC16C: .4byte 0x0600c000
-_080FC170:
- ldr r0, _080FC17C
- ldr r1, _080FC180
- bl LZ77UnCompVram
- b _080FC1E6
- .align 2, 0
-_080FC17C: .4byte gUnknown_083E7774
-_080FC180: .4byte 0x0600f000
-_080FC184:
- ldr r0, _080FC19C
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080FC1A0
- movs r1, 0x1
- movs r2, 0x90
- movs r3, 0x1
- bl sub_80729D8
- b _080FC1E6
- .align 2, 0
-_080FC19C: .4byte gUnknown_083E771C
-_080FC1A0: .4byte gOtherText_FlyToWhere
-_080FC1A4:
- bl sub_80FC31C
- b _080FC1E6
-_080FC1AA:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _080FC1C0
- bl SetVBlankCallback
- b _080FC1E6
- .align 2, 0
-_080FC1C0: .4byte sub_80FC214
-_080FC1C4:
- ldr r1, _080FC1F8
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x46
- ldr r2, _080FC1FC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- ldr r2, _080FC200
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080FC204
- bl sub_80FC244
- ldr r0, _080FC208
- bl SetMainCallback2
-_080FC1E6:
- ldr r1, _080FC20C
- ldr r0, _080FC210
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080FC1F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC1F8: .4byte REG_BLDCNT
-_080FC1FC: .4byte 0x00001e0d
-_080FC200: .4byte 0x00001741
-_080FC204: .4byte sub_80FC5B4
-_080FC208: .4byte sub_80FC228
-_080FC20C: .4byte gMain
-_080FC210: .4byte 0x0000043c
- thumb_func_end sub_80FC074
-
- thumb_func_start sub_80FC214
-sub_80FC214: @ 80FC214
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80FC214
-
- thumb_func_start sub_80FC228
-sub_80FC228: @ 80FC228
- push {lr}
- ldr r0, _080FC240
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_080FC240: .4byte 0x02000000
- thumb_func_end sub_80FC228
-
- thumb_func_start sub_80FC244
-sub_80FC244: @ 80FC244
- ldr r1, _080FC250
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_080FC250: .4byte 0x02000000
- thumb_func_end sub_80FC244
-
- thumb_func_start sub_80FC254
-sub_80FC254: @ 80FC254
- push {r4,r5,lr}
- ldr r4, _080FC2AC
- ldrb r0, [r4, 0x1E]
- cmp r0, 0x2
- beq _080FC262
- cmp r0, 0x4
- bne _080FC2EC
-_080FC262:
- movs r1, 0
- ldr r2, _080FC2B0
- adds r5, r4, 0
-_080FC268:
- lsls r0, r1, 3
- adds r4, r0, r2
- ldrh r0, [r5, 0x1C]
- ldrh r3, [r4, 0x4]
- cmp r0, r3
- bne _080FC2B4
- ldrh r0, [r4, 0x6]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC2BE
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0xF
- bl MenuPrint
- ldrb r0, [r5, 0x1F]
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1D
- movs r2, 0x11
- bl sub_8072B4C
- b _080FC310
- .align 2, 0
-_080FC2AC: .4byte 0x02000000
-_080FC2B0: .4byte gUnknown_083E79C0
-_080FC2B4:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080FC268
-_080FC2BE:
- movs r0, 0
- cmp r0, 0
- bne _080FC310
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _080FC2E8
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- b _080FC310
- .align 2, 0
-_080FC2E8: .4byte 0x02000008
-_080FC2EC:
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080FC318
- adds r0, r4, r1
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_080FC310:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC318: .4byte 0x00000a48
- thumb_func_end sub_80FC254
-
- thumb_func_start sub_80FC31C
-sub_80FC31C: @ 80FC31C
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _080FC360
- ldr r4, _080FC364
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldr r1, _080FC368
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xE0
- lsls r1, 1
- orrs r0, r1
- ldr r1, _080FC36C
- ands r0, r1
- movs r1, 0x80
- lsls r1, 10
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _080FC370
- bl LoadSpritePalette
- bl sub_80FC374
- bl sub_80FC484
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC360: .4byte gUnknown_083E784C
-_080FC364: .4byte 0x02000888
-_080FC368: .4byte 0xffff0000
-_080FC36C: .4byte 0x0000ffff
-_080FC370: .4byte gUnknown_083E79CC
- thumb_func_end sub_80FC31C
-
- thumb_func_start sub_80FC374
-sub_80FC374: @ 80FC374
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _080FC3D4
- str r0, [sp, 0xC]
- movs r1, 0
- mov r9, r1
- mov r2, sp
- adds r2, 0x6
- str r2, [sp, 0x14]
- mov r3, sp
- adds r3, 0xA
- str r3, [sp, 0x18]
- mov r0, sp
- adds r0, 0x8
- str r0, [sp, 0x10]
- add r1, sp, 0x4
- mov r10, r1
-_080FC39E:
- ldr r2, [sp, 0x18]
- str r2, [sp]
- mov r0, r9
- add r1, sp, 0x4
- mov r2, sp
- adds r2, 0x6
- ldr r3, [sp, 0x10]
- bl sub_80FC04C
- mov r3, r10
- ldrh r0, [r3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3]
- mov r1, sp
- ldrh r0, [r1, 0x6]
- adds r0, 0x2
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x6]
- ldr r2, [sp, 0x10]
- ldrh r0, [r2]
- cmp r0, 0x2
- bne _080FC3D8
- movs r7, 0x1
- b _080FC3E4
- .align 2, 0
-_080FC3D4: .4byte 0x0000080f
-_080FC3D8:
- ldr r3, [sp, 0x18]
- ldrh r0, [r3]
- movs r7, 0
- cmp r0, 0x2
- bne _080FC3E4
- movs r7, 0x2
-_080FC3E4:
- mov r0, r10
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, [sp, 0x14]
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, _080FC430
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080FC458
- ldr r1, _080FC434
- mov r8, r1
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r6, r0, 2
- adds r2, r6, r1
- lsls r3, r7, 6
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x1]
- ldr r0, [sp, 0xC]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC43C
- mov r0, r8
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _080FC438
- str r1, [r0]
- b _080FC442
- .align 2, 0
-_080FC430: .4byte gSpriteTemplate_83E7A38
-_080FC434: .4byte gSprites
-_080FC438: .4byte sub_80FC55C
-_080FC43C:
- adds r0, r7, 0x3
- lsls r0, 16
- lsrs r7, r0, 16
-_080FC442:
- adds r4, r5
- lsls r4, 2
- ldr r0, _080FC480
- adds r4, r0
- lsls r1, r7, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- mov r2, r9
- strh r2, [r4, 0x2E]
-_080FC458:
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0xF
- bls _080FC39E
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC480: .4byte gSprites
- thumb_func_end sub_80FC374
-
- thumb_func_start sub_80FC484
-sub_80FC484: @ 80FC484
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r8, r0
- ldr r6, _080FC54C
- ldrh r0, [r6, 0x2]
- cmp r0, 0x58
- beq _080FC53C
- mov r5, sp
- adds r5, 0x6
- add r7, sp, 0x4
- ldr r1, _080FC550
- mov r9, r1
- movs r0, 0x1C
- add r0, r9
- mov r10, r0
-_080FC4AC:
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r6
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC524
- adds r0, r6, 0x2
- adds r0, r4, r0
- ldrh r6, [r0]
- mov r0, sp
- adds r0, 0xA
- str r0, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- add r3, sp, 0x8
- bl sub_80FC04C
- ldrh r0, [r7]
- adds r0, 0x1
- lsls r0, 3
- strh r0, [r7]
- ldrh r0, [r5]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r5]
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r0, 0
- ldrsh r2, [r5, r0]
- ldr r0, _080FC554
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080FC524
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- mov r1, r9
- adds r4, r2, r1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
- add r2, r10
- ldr r0, _080FC558
- str r0, [r2]
- adds r0, r4, 0
- movs r1, 0x6
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
-_080FC524:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r6, _080FC54C
- lsls r0, 2
- adds r1, r6, 0x2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _080FC4AC
-_080FC53C:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC54C: .4byte gUnknown_083E79D4
-_080FC550: .4byte gSprites
-_080FC554: .4byte gSpriteTemplate_83E7A38
-_080FC558: .4byte sub_80FC55C
- thumb_func_end sub_80FC484
-
- thumb_func_start sub_80FC55C
-sub_80FC55C: @ 80FC55C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080FC59C
- ldrh r1, [r0, 0x1C]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080FC5A0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080FC5AE
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080FC5AE
- .align 2, 0
-_080FC59C: .4byte 0x02000000
-_080FC5A0:
- movs r0, 0x10
- strh r0, [r2, 0x30]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x15
- ands r0, r1
- strb r0, [r2]
-_080FC5AE:
- pop {r0}
- bx r0
- thumb_func_end sub_80FC55C
-
- thumb_func_start sub_80FC5B4
-sub_80FC5B4: @ 80FC5B4
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080FC5C8
- ldrh r1, [r4, 0x4]
- cmp r1, 0
- beq _080FC5CC
- cmp r1, 0x1
- beq _080FC5E4
- b _080FC5F4
- .align 2, 0
-_080FC5C8: .4byte 0x02000000
-_080FC5CC:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _080FC5F4
-_080FC5E4:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080FC5F4
- ldr r0, _080FC5FC
- bl sub_80FC244
-_080FC5F4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC5FC: .4byte sub_80FC600
- thumb_func_end sub_80FC5B4
-
- thumb_func_start sub_80FC600
-sub_80FC600: @ 80FC600
- push {r4,lr}
- ldr r0, _080FC620
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _080FC68A
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080FC68A
- lsls r0, 2
- ldr r1, _080FC624
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC620: .4byte 0x02000000
-_080FC624: .4byte _080FC628
- .align 2, 0
-_080FC628:
- .4byte _080FC68A
- .4byte _080FC68A
- .4byte _080FC68A
- .4byte _080FC640
- .4byte _080FC646
- .4byte _080FC674
-_080FC640:
- bl sub_80FC254
- b _080FC68A
-_080FC646:
- ldr r4, _080FC668
- ldrb r0, [r4, 0x1E]
- cmp r0, 0x2
- beq _080FC652
- cmp r0, 0x4
- bne _080FC68A
-_080FC652:
- movs r0, 0x5
- bl m4aSongNumStart
- ldr r1, _080FC66C
- adds r0, r4, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _080FC670
- bl sub_80FC244
- b _080FC68A
- .align 2, 0
-_080FC668: .4byte 0x02000000
-_080FC66C: .4byte 0x00000a6e
-_080FC670: .4byte sub_80FC69C
-_080FC674:
- movs r0, 0x5
- bl m4aSongNumStart
- ldr r0, _080FC690
- ldr r1, _080FC694
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FC698
- bl sub_80FC244
-_080FC68A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC690: .4byte 0x02000000
-_080FC694: .4byte 0x00000a6e
-_080FC698: .4byte sub_80FC69C
- thumb_func_end sub_80FC600
-
- thumb_func_start sub_80FC69C
-sub_80FC69C: @ 80FC69C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080FC6B0
- ldrh r1, [r4, 0x4]
- cmp r1, 0
- beq _080FC6B4
- cmp r1, 0x1
- beq _080FC6CC
- b _080FC792
- .align 2, 0
-_080FC6B0: .4byte 0x02000000
-_080FC6B4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _080FC792
-_080FC6CC:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080FC792
- bl sub_80FAB10
- ldr r1, _080FC6F4
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FC78C
- ldrh r0, [r4, 0x1C]
- cmp r0, 0xF
- beq _080FC724
- cmp r0, 0xF
- bgt _080FC6F8
- cmp r0, 0
- beq _080FC710
- b _080FC748
- .align 2, 0
-_080FC6F4: .4byte 0x00000a6e
-_080FC6F8:
- cmp r0, 0x3A
- beq _080FC708
- cmp r0, 0x49
- bne _080FC748
- movs r0, 0x16
- bl sub_8053538
- b _080FC786
-_080FC708:
- movs r0, 0x15
- bl sub_8053538
- b _080FC786
-_080FC710:
- ldr r0, _080FC720
- ldrb r0, [r0, 0x8]
- movs r1, 0xD
- cmp r0, 0
- bne _080FC73A
- movs r1, 0xC
- b _080FC73A
- .align 2, 0
-_080FC720: .4byte gSaveBlock2
-_080FC724:
- ldr r0, _080FC744
- bl FlagGet
- lsls r0, 24
- movs r1, 0xB
- cmp r0, 0
- beq _080FC73A
- ldrb r0, [r4, 0x1F]
- cmp r0, 0
- bne _080FC73A
- movs r1, 0x14
-_080FC73A:
- adds r0, r1, 0
- bl sub_8053538
- b _080FC786
- .align 2, 0
-_080FC744: .4byte 0x00000854
-_080FC748:
- ldr r3, _080FC764
- ldr r0, _080FC768
- ldrh r1, [r0, 0x1C]
- lsls r0, r1, 1
- adds r2, r0, r1
- adds r0, r3, 0x2
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FC76C
- bl sub_8053538
- b _080FC786
- .align 2, 0
-_080FC764: .4byte gUnknown_083E7920
-_080FC768: .4byte 0x02000000
-_080FC76C:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- bl warp1_set_2
-_080FC786:
- bl sub_80865BC
- b _080FC792
-_080FC78C:
- ldr r0, _080FC79C
- bl SetMainCallback2
-_080FC792:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC79C: .4byte sub_808AD58
- thumb_func_end sub_80FC69C
-
- thumb_func_start sub_80FC7A0
-sub_80FC7A0: @ 80FC7A0
- push {lr}
- ldr r2, _080FC7E8
- ldr r1, [r0, 0x4]
- str r1, [r2]
- ldr r2, _080FC7EC
- ldrb r1, [r0, 0x1F]
- strb r1, [r2]
- ldr r2, _080FC7F0
- ldrb r1, [r0, 0x19]
- strb r1, [r2]
- ldr r2, _080FC7F4
- ldrb r1, [r0, 0x1A]
- strb r1, [r2]
- ldr r2, _080FC7F8
- ldrb r1, [r0, 0x1B]
- strb r1, [r2]
- ldr r2, _080FC7FC
- ldrb r1, [r0, 0x1C]
- strb r1, [r2]
- ldr r2, _080FC800
- ldrb r1, [r0, 0x1D]
- strb r1, [r2]
- ldr r2, _080FC804
- ldrb r1, [r0, 0x1E]
- strb r1, [r2]
- ldrb r0, [r0]
- subs r0, 0x2
- cmp r0, 0x22
- bls _080FC7DC
- b _080FC928
-_080FC7DC:
- lsls r0, 2
- ldr r1, _080FC808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC7E8: .4byte gUnknown_03005DEC
-_080FC7EC: .4byte gUnknown_03005E00
-_080FC7F0: .4byte gUnknown_03005DE8
-_080FC7F4: .4byte gUnknown_03005DFC
-_080FC7F8: .4byte gUnknown_03005DF8
-_080FC7FC: .4byte gUnknown_03005DF0
-_080FC800: .4byte gUnknown_03005E04
-_080FC804: .4byte gUnknown_03005DF4
-_080FC808: .4byte _080FC80C
- .align 2, 0
-_080FC80C:
- .4byte _080FC898
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8F8
- .4byte _080FC928
- .4byte _080FC89E
- .4byte _080FC8A4
- .4byte _080FC8B8
- .4byte _080FC8CA
- .4byte _080FC928
- .4byte _080FC8E0
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8E6
- .4byte _080FC8C4
- .4byte _080FC8EC
- .4byte _080FC8F2
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC904
-_080FC898:
- bl sub_80FCAA4
- b _080FC928
-_080FC89E:
- bl sub_80FCB5C
- b _080FC928
-_080FC8A4:
- bl sub_80FCD54
- ldr r0, _080FC8B4
- ldrb r0, [r0]
- bl sub_80FCC18
- b _080FC928
- .align 2, 0
-_080FC8B4: .4byte gUnknown_03005E00
-_080FC8B8:
- bl sub_80FCD54
- bl sub_80FCEA4
- bl sub_80FCCBC
-_080FC8C4:
- bl sub_80FCEA4
- b _080FC928
-_080FC8CA:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- b _080FC928
-_080FC8E0:
- bl sub_80FCF3C
- b _080FC928
-_080FC8E6:
- bl sub_80FCD54
- b _080FC928
-_080FC8EC:
- bl sub_80FD06C
- b _080FC928
-_080FC8F2:
- bl sub_80FD114
- b _080FC928
-_080FC8F8:
- bl sub_80FCAC4
- movs r0, 0x3
- bl sub_80FC92C
- b _080FC928
-_080FC904:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- bl sub_80FCB5C
- bl sub_80FCB5C
- movs r0, 0x2
- bl sub_80FC92C
- movs r0, 0x4
- bl sub_80FC9E4
-_080FC928:
- pop {r0}
- bx r0
- thumb_func_end sub_80FC7A0
-
- thumb_func_start sub_80FC92C
-sub_80FC92C: @ 80FC92C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0
- ldr r0, _080FC9CC
- mov r8, r0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FC9BE
- ldr r1, _080FC9D0
- mov r12, r1
- ldr r3, _080FC9D4
- mov r10, r3
- ldr r0, _080FC9D8
- mov r9, r0
-_080FC952:
- ldr r1, _080FC9DC
- ldrb r0, [r1]
- adds r0, r2
- mov r3, r10
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FC9E0
- ldr r1, [r3]
- adds r1, r0
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r4, 0
- adds r5, r2, 0x1
- mov r0, r12
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080FC9B2
- movs r6, 0x80
- lsls r6, 8
-_080FC97E:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080FC9A2
- movs r0, 0x1F
- ands r0, r1
- adds r0, r7
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080FC998
- movs r2, 0x1F
-_080FC998:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FC9A2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, 0x2
- mov r1, r12
- ldrb r1, [r1]
- cmp r4, r1
- bcc _080FC97E
-_080FC9B2:
- lsls r0, r5, 24
- lsrs r2, r0, 24
- mov r3, r8
- ldrb r3, [r3]
- cmp r2, r3
- bcc _080FC952
-_080FC9BE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC9CC: .4byte gUnknown_03005DF0
-_080FC9D0: .4byte gUnknown_03005DF8
-_080FC9D4: .4byte gUnknown_03005E04
-_080FC9D8: .4byte gUnknown_03005DE8
-_080FC9DC: .4byte gUnknown_03005DFC
-_080FC9E0: .4byte gUnknown_03005DEC
- thumb_func_end sub_80FC92C
-
- thumb_func_start sub_80FC9E4
-sub_80FC9E4: @ 80FC9E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080FCA8C
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCA7C
- ldr r1, _080FCA90
- mov r10, r1
-_080FCA02:
- ldr r3, _080FCA94
- ldrb r0, [r3]
- adds r0, r2
- ldr r3, _080FCA98
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FCA9C
- ldr r1, [r3]
- adds r1, r0
- ldr r3, _080FCAA0
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r5, 0
- adds r7, r2, 0x1
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FCA70
- movs r1, 0x80
- lsls r1, 8
- mov r9, r1
- movs r0, 0x1F
- mov r12, r0
- mov r1, r8
- subs r6, r0, r1
-_080FCA38:
- ldrh r1, [r3]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080FCA60
- movs r4, 0x1F
- mov r2, r12
- ands r2, r1
- cmp r2, r6
- ble _080FCA56
- mov r1, r8
- lsrs r0, r1, 1
- subs r0, r4, r0
- lsls r0, 24
- lsrs r2, r0, 24
-_080FCA56:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FCA60:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, 0x2
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FCA38
-_080FCA70:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r1, _080FCA8C
- ldrb r1, [r1]
- cmp r2, r1
- bcc _080FCA02
-_080FCA7C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCA8C: .4byte gUnknown_03005DF0
-_080FCA90: .4byte gUnknown_03005DF8
-_080FCA94: .4byte gUnknown_03005DFC
-_080FCA98: .4byte gUnknown_03005E04
-_080FCA9C: .4byte gUnknown_03005DEC
-_080FCAA0: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FC9E4
-
- thumb_func_start sub_80FCAA4
-sub_80FCAA4: @ 80FCAA4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080FCAC0
-_080FCAAA:
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_80FD1C8
- adds r4, 0x1
- cmp r4, r5
- bls _080FCAAA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCAC0: .4byte 0x00000c7f
- thumb_func_end sub_80FCAA4
-
- thumb_func_start sub_80FCAC4
-sub_80FCAC4: @ 80FCAC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCB44
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCB36
- ldr r0, _080FCB48
- mov r8, r0
- ldr r3, _080FCB4C
-_080FCADC:
- ldr r0, _080FCB50
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCB54
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCB58
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCB2A
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCB08:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCB1C
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD39C
- strh r0, [r4]
- ldr r3, [sp]
-_080FCB1C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCB08
-_080FCB2A:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCB44
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCADC
-_080FCB36:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCB44: .4byte gUnknown_03005DF0
-_080FCB48: .4byte gUnknown_03005DEC
-_080FCB4C: .4byte gUnknown_03005DF8
-_080FCB50: .4byte gUnknown_03005DFC
-_080FCB54: .4byte gUnknown_03005E04
-_080FCB58: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCAC4
-
- thumb_func_start sub_80FCB5C
-sub_80FCB5C: @ 80FCB5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r2, 0
- ldr r0, _080FCC00
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCBF2
- ldr r0, _080FCC04
- mov r8, r0
- ldr r3, _080FCC08
-_080FCB74:
- ldr r0, _080FCC0C
- ldrb r1, [r0]
- ldrb r0, [r3]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCC10
- ldrb r0, [r0]
- adds r0, r2
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- ldrb r0, [r3]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FCC14
- ldrb r0, [r0]
- subs r0, 0x1
- adds r7, r2, 0x1
- cmp r5, r0
- bge _080FCBE6
- ldr r6, _080FCC08
-_080FCBAA:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FCBD0
- ldrb r2, [r6]
- lsls r2, 1
- adds r2, r4, r2
- mov r0, sp
- adds r1, r4, 0
- str r3, [sp, 0x4]
- bl sub_80FD68C
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
- ldr r3, [sp, 0x4]
-_080FCBD0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FCC14
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FCBAA
-_080FCBE6:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FCC00
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCB74
-_080FCBF2:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCC00: .4byte gUnknown_03005DF8
-_080FCC04: .4byte gUnknown_03005DEC
-_080FCC08: .4byte gUnknown_03005E04
-_080FCC0C: .4byte gUnknown_03005DFC
-_080FCC10: .4byte gUnknown_03005DE8
-_080FCC14: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FCB5C
-
- thumb_func_start sub_80FCC18
-sub_80FCC18: @ 80FCC18
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080FCCA4
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCC94
- ldr r0, _080FCCA8
- mov r9, r0
- ldr r3, _080FCCAC
-_080FCC38:
- ldr r0, _080FCCB0
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCCB4
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r9
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCCB8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCC88
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCC64:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCC7A
- adds r0, r4, 0
- mov r1, r8
- str r3, [sp]
- bl sub_80FD3D0
- strh r0, [r4]
- ldr r3, [sp]
-_080FCC7A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCC64
-_080FCC88:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCCA4
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCC38
-_080FCC94:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCCA4: .4byte gUnknown_03005DF0
-_080FCCA8: .4byte gUnknown_03005DEC
-_080FCCAC: .4byte gUnknown_03005DF8
-_080FCCB0: .4byte gUnknown_03005DFC
-_080FCCB4: .4byte gUnknown_03005E04
-_080FCCB8: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCC18
-
- thumb_func_start sub_80FCCBC
-sub_80FCCBC: @ 80FCCBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCD3C
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCD2E
- ldr r0, _080FCD40
- mov r8, r0
- ldr r3, _080FCD44
-_080FCCD4:
- ldr r0, _080FCD48
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCD4C
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCD50
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCD22
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCD00:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCD14
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD4DC
- strh r0, [r4]
- ldr r3, [sp]
-_080FCD14:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCD00
-_080FCD22:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCD3C
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCCD4
-_080FCD2E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCD3C: .4byte gUnknown_03005DF0
-_080FCD40: .4byte gUnknown_03005DEC
-_080FCD44: .4byte gUnknown_03005DF8
-_080FCD48: .4byte gUnknown_03005DFC
-_080FCD4C: .4byte gUnknown_03005E04
-_080FCD50: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCCBC
-
- thumb_func_start sub_80FCD54
-sub_80FCD54: @ 80FCD54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _080FCE8C
- ldrb r0, [r0]
- cmp r7, r0
- bcs _080FCDE0
- ldr r0, _080FCE90
- mov r8, r0
-_080FCD6A:
- ldr r0, _080FCE94
- ldrb r1, [r0]
- adds r1, r7
- ldr r0, _080FCE98
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r2, r8
- ldr r1, [r2]
- adds r1, r0
- ldr r0, _080FCE9C
- ldrb r0, [r0]
- lsls r0, 1
- adds r5, r1, r0
- adds r4, r5, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80FD50C
- strh r0, [r5]
- movs r6, 0x1
- adds r5, r4, 0
- ldr r0, _080FCEA0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r7, 0x1
- cmp r6, r0
- bge _080FCDCA
-_080FCDA2:
- adds r4, r5, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80FD50C
- strh r0, [r5]
- subs r1, r5, 0x2
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, r4, 0
- ldr r0, _080FCEA0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- blt _080FCDA2
-_080FCDCA:
- subs r1, r5, 0x2
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- lsls r0, r7, 24
- lsrs r7, r0, 24
- ldr r0, _080FCE8C
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080FCD6A
-_080FCDE0:
- movs r6, 0
- ldr r0, _080FCEA0
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080FCE80
- ldr r3, _080FCE90
- mov r9, r3
- ldr r0, _080FCE98
- mov r8, r0
-_080FCDF2:
- ldr r0, _080FCE94
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- muls r0, r1
- lsls r0, 1
- mov r3, r9
- ldr r2, [r3]
- adds r2, r0
- ldr r0, _080FCE9C
- ldrb r0, [r0]
- adds r0, r6
- lsls r0, 1
- adds r5, r2, r0
- lsls r1, 1
- adds r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- movs r7, 0x1
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- adds r5, r0
- ldr r0, _080FCE8C
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, 0x1
- cmp r7, r0
- bge _080FCE64
- ldr r4, _080FCE98
-_080FCE32:
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- ldrb r1, [r4]
- lsls r1, 1
- subs r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
- lsls r0, 1
- adds r5, r0
- ldr r0, _080FCE8C
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r7, r0
- blt _080FCE32
-_080FCE64:
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 1
- subs r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- lsls r0, r6, 24
- lsrs r6, r0, 24
- ldr r0, _080FCEA0
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080FCDF2
-_080FCE80:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCE8C: .4byte gUnknown_03005DF0
-_080FCE90: .4byte gUnknown_03005DEC
-_080FCE94: .4byte gUnknown_03005DFC
-_080FCE98: .4byte gUnknown_03005E04
-_080FCE9C: .4byte gUnknown_03005DE8
-_080FCEA0: .4byte gUnknown_03005DF8
- thumb_func_end sub_80FCD54
-
- thumb_func_start sub_80FCEA4
-sub_80FCEA4: @ 80FCEA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCF24
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCF16
- ldr r0, _080FCF28
- mov r8, r0
- ldr r3, _080FCF2C
-_080FCEBC:
- ldr r0, _080FCF30
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCF34
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCF38
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCF0A
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCEE8:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCEFC
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD53C
- strh r0, [r4]
- ldr r3, [sp]
-_080FCEFC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCEE8
-_080FCF0A:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCF24
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCEBC
-_080FCF16:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCF24: .4byte gUnknown_03005DF0
-_080FCF28: .4byte gUnknown_03005DEC
-_080FCF2C: .4byte gUnknown_03005DF8
-_080FCF30: .4byte gUnknown_03005DFC
-_080FCF34: .4byte gUnknown_03005E04
-_080FCF38: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCEA4
-
- thumb_func_start sub_80FCF3C
-sub_80FCF3C: @ 80FCF3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _080FD068
- ldr r4, [r0]
- movs r6, 0
- movs r0, 0x80
- lsls r0, 8
- adds r5, r0, 0
-_080FCF54:
- movs r7, 0
-_080FCF56:
- ldrh r0, [r4]
- ands r0, r5
- cmp r0, 0
- bne _080FCF66
- adds r0, r4, 0
- bl sub_80FD53C
- strh r0, [r4]
-_080FCF66:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, 0x2
- cmp r7, 0x3F
- bls _080FCF56
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3F
- bls _080FCF54
- movs r7, 0
- ldr r1, _080FD068
- mov r10, r1
- mov r3, sp
- movs r2, 0x80
- lsls r2, 8
- mov r9, r2
-_080FCF8A:
- lsls r0, r7, 1
- mov r2, r10
- ldr r1, [r2]
- adds r4, r1, r0
- ldrh r1, [r4]
- strh r1, [r3]
- mov r1, r9
- strh r1, [r4]
- movs r6, 0x1
- adds r4, 0x80
- adds r5, r0, 0
-_080FCFA0:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- ands r0, r2
- cmp r0, 0
- bne _080FCFC0
- adds r2, r4, 0
- adds r2, 0x80
- mov r0, sp
- adds r1, r4, 0
- str r3, [sp, 0x4]
- bl sub_80FD7AC
- strh r0, [r4]
- ldr r3, [sp, 0x4]
- strh r0, [r3]
-_080FCFC0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, 0x80
- cmp r6, 0x3E
- bls _080FCFA0
- mov r0, r9
- strh r0, [r4]
- mov r1, r10
- ldr r0, [r1]
- adds r4, r0, r5
- ldrh r0, [r4]
- strh r0, [r3]
- mov r2, r9
- strh r2, [r4]
- movs r6, 0x1
- adds r4, 0x80
- movs r0, 0x80
- lsls r0, 8
- mov r8, r0
-_080FCFE8:
- ldrh r0, [r4]
- mov r1, r8
- ands r0, r1
- adds r5, r4, 0
- adds r5, 0x80
- cmp r0, 0
- bne _080FD008
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- str r3, [sp, 0x4]
- bl sub_80FD7AC
- strh r0, [r4]
- ldr r3, [sp, 0x4]
- strh r0, [r3]
-_080FD008:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r5, 0
- cmp r6, 0x3E
- bls _080FCFE8
- mov r2, r9
- strh r2, [r4]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3F
- bls _080FCF8A
- ldr r0, _080FD068
- ldr r4, [r0]
- movs r6, 0
- movs r0, 0x80
- lsls r0, 8
- mov r8, r0
-_080FD02E:
- movs r7, 0
- adds r5, r6, 0x1
-_080FD032:
- ldrh r0, [r4]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080FD044
- adds r0, r4, 0
- bl sub_80FD53C
- strh r0, [r4]
-_080FD044:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, 0x2
- cmp r7, 0x3F
- bls _080FD032
- lsls r0, r5, 24
- lsrs r6, r0, 24
- cmp r6, 0x3F
- bls _080FD02E
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD068: .4byte gUnknown_03005DEC
- thumb_func_end sub_80FCF3C
-
- thumb_func_start sub_80FD06C
-sub_80FD06C: @ 80FD06C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FD0FC
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FD0EE
- ldr r0, _080FD100
- mov r8, r0
-_080FD082:
- ldr r0, _080FD104
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FD108
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FD10C
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- adds r4, 0x2
- ldr r0, _080FD110
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r2, 0x1
- cmp r5, r0
- bge _080FD0E2
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FD0BA:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FD0D0
- mov r0, sp
- adds r1, r4, 0
- bl sub_80FD568
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
-_080FD0D0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FD110
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FD0BA
-_080FD0E2:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FD0FC
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FD082
-_080FD0EE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD0FC: .4byte gUnknown_03005DF0
-_080FD100: .4byte gUnknown_03005DEC
-_080FD104: .4byte gUnknown_03005DFC
-_080FD108: .4byte gUnknown_03005E04
-_080FD10C: .4byte gUnknown_03005DE8
-_080FD110: .4byte gUnknown_03005DF8
- thumb_func_end sub_80FD06C
-
- thumb_func_start sub_80FD114
-sub_80FD114: @ 80FD114
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r2, 0
- ldr r0, _080FD1B0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FD1A2
- ldr r0, _080FD1B4
- mov r8, r0
- ldr r7, _080FD1B8
-_080FD12C:
- ldr r0, _080FD1BC
- ldrb r1, [r0]
- ldrb r0, [r7]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FD1C0
- ldrb r0, [r0]
- adds r0, r2
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- ldrb r0, [r7]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FD1C4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r2, 0x1
- cmp r5, r0
- bge _080FD196
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FD166:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- bne _080FD180
- mov r0, sp
- adds r1, r4, 0
- str r2, [sp, 0x4]
- bl sub_80FD568
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
- ldr r2, [sp, 0x4]
-_080FD180:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r7]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FD1C4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FD166
-_080FD196:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FD1B0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FD12C
-_080FD1A2:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD1B0: .4byte gUnknown_03005DF8
-_080FD1B4: .4byte gUnknown_03005DEC
-_080FD1B8: .4byte gUnknown_03005E04
-_080FD1BC: .4byte gUnknown_03005DFC
-_080FD1C0: .4byte gUnknown_03005DE8
-_080FD1C4: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FD114
-
- thumb_func_start sub_80FD1C8
-sub_80FD1C8: @ 80FD1C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r2, sp
- ldr r3, _080FD234
- lsls r1, r0, 1
- add r1, r10
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- mov r5, sp
- adds r0, r3, 0x2
- adds r1, r0
- ldrb r4, [r1]
- lsls r2, r4, 24
- lsrs r1, r2, 27
- movs r0, 0x7
- ands r1, r0
- strh r1, [r5, 0x2]
- lsrs r2, 25
- mov r9, r2
- movs r0, 0x3
- ands r2, r0
- mov r9, r2
- movs r5, 0x1
- ands r5, r4
- movs r4, 0x1
- mov r8, r4
- cmp r8, r1
- bcs _080FD27A
- mov r3, sp
-_080FD21A:
- cmp r5, 0
- bne _080FD238
- mov r0, r8
- lsls r2, r0, 2
- mov r4, sp
- adds r1, r4, r2
- ldrb r0, [r3]
- mov r4, r8
- subs r0, r4
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- add r0, r8
- b _080FD24A
- .align 2, 0
-_080FD234: .4byte gUnknown_083E7A50
-_080FD238:
- mov r0, r8
- lsls r2, r0, 2
- mov r4, sp
- adds r1, r4, r2
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
-_080FD24A:
- strb r0, [r1, 0x1]
- add r2, sp
- ldrb r0, [r2]
- cmp r0, 0x3F
- bhi _080FD25A
- ldrb r0, [r2, 0x1]
- cmp r0, 0x3F
- bls _080FD262
-_080FD25A:
- mov r0, r8
- subs r0, 0x1
- strh r0, [r3, 0x2]
- b _080FD27A
-_080FD262:
- ldrh r0, [r3, 0x2]
- mov r1, r8
- subs r0, r1
- strh r0, [r2, 0x2]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r3, 0x2]
- cmp r8, r0
- bcc _080FD21A
-_080FD27A:
- movs r2, 0
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r8, r0
- bcc _080FD288
- b _080FD38A
-_080FD288:
- movs r3, 0x1F
-_080FD28A:
- ldr r1, _080FD2E8
- mov r4, r8
- lsls r0, r4, 2
- mov r2, sp
- adds r6, r2, r0
- ldrb r0, [r6, 0x1]
- lsls r0, 7
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r6]
- lsls r0, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080FD376
- movs r7, 0x1F
- ands r7, r1
- lsls r0, r1, 16
- lsrs r5, r0, 21
- ands r5, r3
- lsrs r4, r0, 26
- ands r4, r3
- mov r0, r9
- cmp r0, 0
- blt _080FD36C
- cmp r0, 0x1
- ble _080FD2EC
- cmp r0, 0x3
- bgt _080FD36C
- ldrh r0, [r6, 0x2]
- adds r1, r7, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r1, r5, r0
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r7, 0x1F
- bls _080FD360
- movs r7, 0x1F
- b _080FD360
- .align 2, 0
-_080FD2E8: .4byte gUnknown_03005DEC
-_080FD2EC:
- mov r1, r10
- lsls r0, r1, 1
- add r0, r10
- ldr r1, _080FD320
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsrs r0, 3
- movs r1, 0x7
- ands r0, r1
- movs r1, 0x3
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- cmp r0, 0x1
- beq _080FD33C
- cmp r0, 0x1
- bgt _080FD324
- cmp r0, 0
- beq _080FD32A
- b _080FD36C
- .align 2, 0
-_080FD320: .4byte gUnknown_083E7A50
-_080FD324:
- cmp r0, 0x2
- beq _080FD34E
- b _080FD36C
-_080FD32A:
- ldrh r0, [r6, 0x2]
- cmp r7, r0
- bcc _080FD338
- subs r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- b _080FD36C
-_080FD338:
- movs r7, 0
- b _080FD36C
-_080FD33C:
- ldrh r0, [r6, 0x2]
- cmp r5, r0
- bcc _080FD34A
- subs r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- b _080FD36C
-_080FD34A:
- movs r5, 0
- b _080FD36C
-_080FD34E:
- ldrh r0, [r6, 0x2]
- cmp r4, r0
- bcc _080FD35C
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080FD36C
-_080FD35C:
- movs r4, 0
- b _080FD36C
-_080FD360:
- cmp r5, 0x1F
- bls _080FD366
- movs r5, 0x1F
-_080FD366:
- cmp r4, 0x1F
- bls _080FD36C
- movs r4, 0x1F
-_080FD36C:
- lsls r0, r4, 10
- lsls r1, r5, 5
- orrs r0, r1
- orrs r7, r0
- strh r7, [r2]
-_080FD376:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r8, r0
- bcs _080FD38A
- b _080FD28A
-_080FD38A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD1C8
-
- thumb_func_start sub_80FD39C
-sub_80FD39C: @ 80FD39C
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 10
- lsls r2, r1, 5
- orrs r0, r2
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FD39C
-
- thumb_func_start sub_80FD3D0
-sub_80FD3D0: @ 80FD3D0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrh r0, [r0]
- movs r2, 0x1F
- movs r1, 0x1F
- ands r1, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r2
- lsrs r0, 26
- ands r0, r2
- cmp r1, 0x10
- bhi _080FD400
- cmp r3, 0x10
- bhi _080FD400
- cmp r0, 0x10
- bhi _080FD400
- adds r0, r4, 0
- bl sub_80FD40C
- lsls r0, 16
- lsrs r0, 16
- b _080FD402
-_080FD400:
- ldr r0, _080FD408
-_080FD402:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080FD408: .4byte 0x00007fff
- thumb_func_end sub_80FD3D0
-
- thumb_func_start sub_80FD40C
-sub_80FD40C: @ 80FD40C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- mov r8, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080FD4C4
- lsls r0, 2
- ldr r1, _080FD450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FD450: .4byte _080FD454
- .align 2, 0
-_080FD454:
- .4byte _080FD46C
- .4byte _080FD47C
- .4byte _080FD48C
- .4byte _080FD49A
- .4byte _080FD4A8
- .4byte _080FD4B6
-_080FD46C:
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r6, 0
- movs r1, 0
- mov r8, r1
- b _080FD4C4
-_080FD47C:
- movs r7, 0
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r6, r8
- b _080FD4C4
-_080FD48C:
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- mov r8, r7
- b _080FD4C4
-_080FD49A:
- movs r7, 0
- movs r6, 0
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- b _080FD4C2
-_080FD4A8:
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- mov r8, r6
- b _080FD4C4
-_080FD4B6:
- movs r7, 0
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
-_080FD4C2:
- mov r8, r0
-_080FD4C4:
- lsls r0, r7, 10
- lsls r1, r6, 5
- orrs r0, r1
- mov r1, r8
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r0, 16
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD40C
-
- thumb_func_start sub_80FD4DC
-sub_80FD4DC: @ 80FD4DC
- push {lr}
- ldrh r0, [r0]
- movs r2, 0x1F
- movs r1, 0x1F
- ands r1, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r2
- lsrs r0, 26
- ands r0, r2
- cmp r1, 0x10
- bhi _080FD500
- cmp r3, 0x10
- bhi _080FD500
- cmp r0, 0x10
- bhi _080FD500
- movs r0, 0
- b _080FD502
-_080FD500:
- ldr r0, _080FD508
-_080FD502:
- pop {r1}
- bx r1
- .align 2, 0
-_080FD508: .4byte 0x00007fff
- thumb_func_end sub_80FD4DC
-
- thumb_func_start sub_80FD50C
-sub_80FD50C: @ 80FD50C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r3, [r4]
- cmp r3, 0
- beq _080FD534
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _080FD526
- adds r0, r2, 0
- b _080FD536
-_080FD526:
- ldrh r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FD534
- ldrh r0, [r4]
- b _080FD536
-_080FD534:
- movs r0, 0
-_080FD536:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD50C
-
- thumb_func_start sub_80FD53C
-sub_80FD53C: @ 80FD53C
- push {r4,lr}
- ldrh r1, [r0]
- movs r0, 0x1F
- movs r3, 0x1F
- ands r3, r1
- lsls r1, 16
- lsrs r2, r1, 21
- lsrs r1, 26
- subs r3, r0, r3
- adds r4, r0, 0
- bics r4, r2
- adds r2, r4, 0
- bics r0, r1
- lsls r0, 10
- lsls r2, 5
- orrs r0, r2
- orrs r0, r3
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD53C
-
- thumb_func_start sub_80FD568
-sub_80FD568: @ 80FD568
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r1, 0
- ldrh r4, [r0]
- ldrh r5, [r7]
- lsls r6, r4, 16
- lsls r0, r5, 16
- mov r12, r0
- cmp r4, r5
- beq _080FD5DA
- mov r2, sp
- movs r3, 0x1F
- movs r1, 0x1F
- adds r0, r1, 0
- ands r0, r4
- strh r0, [r2]
- lsrs r0, r6, 21
- ands r0, r3
- strh r0, [r2, 0x2]
- lsrs r0, r6, 26
- ands r0, r3
- strh r0, [r2, 0x4]
- mov r0, sp
- ands r1, r5
- strh r1, [r0, 0x6]
- mov r1, sp
- mov r2, r12
- lsrs r0, r2, 21
- ands r0, r3
- strh r0, [r1, 0x8]
- lsrs r0, r2, 26
- ands r0, r3
- strh r0, [r1, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x19
- bls _080FD5C2
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r0, 0x19
- bls _080FD5C2
- mov r0, sp
- ldrh r0, [r0, 0x4]
- cmp r0, 0x19
- bhi _080FD5DA
-_080FD5C2:
- mov r0, sp
- ldrh r0, [r0, 0x6]
- cmp r0, 0x19
- bls _080FD5DE
- mov r0, sp
- ldrh r0, [r0, 0x8]
- cmp r0, 0x19
- bls _080FD5DE
- mov r0, sp
- ldrh r0, [r0, 0xA]
- cmp r0, 0x19
- bls _080FD5DE
-_080FD5DA:
- ldrh r0, [r7]
- b _080FD684
-_080FD5DE:
- movs r4, 0
- add r6, sp, 0xC
- mov r7, sp
- adds r7, 0x6
- adds r5, r6, 0
-_080FD5E8:
- lsls r2, r4, 1
- mov r1, sp
- adds r0, r1, r2
- adds r1, r7, r2
- ldrh r3, [r0]
- ldrh r0, [r1]
- cmp r3, r0
- bls _080FD5FE
- adds r1, r5, r2
- subs r0, r3, r0
- b _080FD602
-_080FD5FE:
- adds r1, r5, r2
- subs r0, r3
-_080FD602:
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080FD5E8
- adds r1, r6, 0
- ldrh r0, [r1, 0x2]
- ldrh r3, [r1]
- cmp r3, r0
- bcc _080FD628
- ldrh r2, [r1, 0x4]
- cmp r3, r2
- bcc _080FD622
- adds r2, r3, 0
- b _080FD63C
-_080FD622:
- cmp r0, r2
- bcs _080FD62E
- b _080FD636
-_080FD628:
- ldrh r2, [r1, 0x4]
- cmp r0, r2
- bcc _080FD632
-_080FD62E:
- ldrh r2, [r1, 0x2]
- b _080FD63C
-_080FD632:
- cmp r2, r3
- bcc _080FD63A
-_080FD636:
- ldrh r2, [r1, 0x4]
- b _080FD63C
-_080FD63A:
- ldrh r2, [r6]
-_080FD63C:
- mov r0, sp
- ldrh r1, [r0, 0x6]
- lsrs r0, r2, 1
- movs r6, 0x1F
- subs r6, r0
- adds r0, r1, 0
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, sp
- ldrh r0, [r0, 0x8]
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- ldrh r0, [r0, 0xA]
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- lsls r4, 5
- orrs r0, r4
- orrs r5, r0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r5, 0
-_080FD684:
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD568
-
- thumb_func_start sub_80FD68C
-sub_80FD68C: @ 80FD68C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- mov r10, r1
- str r2, [sp]
- ldrh r1, [r3]
- mov r0, r10
- ldrh r0, [r0]
- cmp r1, r0
- bne _080FD6B4
- ldrh r0, [r2]
- cmp r0, r1
- bne _080FD6B4
- mov r1, r10
- ldrh r0, [r1]
- b _080FD79C
-_080FD6B4:
- mov r2, r10
- ldrh r0, [r2]
- movs r1, 0x1F
- mov r9, r1
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- lsls r0, 16
- lsrs r2, r0, 21
- mov r1, r9
- ands r1, r2
- mov r8, r1
- lsrs r0, 26
- mov r2, r9
- ands r2, r0
- str r2, [sp, 0x4]
- ldrh r2, [r3]
- adds r0, r4, 0
- ands r0, r2
- lsls r2, 16
- lsrs r1, r2, 21
- mov r3, r9
- ands r1, r3
- adds r0, r1
- lsrs r2, 26
- ands r2, r3
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- adds r0, r5, r1
- ldr r2, [sp, 0x4]
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- ldrh r1, [r3]
- ands r4, r1
- lsls r1, 16
- lsrs r0, r1, 21
- mov r2, r9
- ands r0, r2
- adds r4, r0
- lsrs r1, 26
- ands r1, r2
- adds r4, r1
- adds r0, r4, 0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r7, r6
- bne _080FD736
- cmp r1, r6
- bne _080FD736
- mov r3, r10
- ldrh r0, [r3]
- b _080FD79C
-_080FD736:
- cmp r7, r6
- bls _080FD73E
- subs r0, r7, r6
- b _080FD740
-_080FD73E:
- subs r0, r6, r7
-_080FD740:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r1, r6
- bls _080FD74C
- subs r0, r1, r6
- b _080FD74E
-_080FD74C:
- subs r0, r6, r1
-_080FD74E:
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- bcc _080FD758
- adds r0, r2, 0
-_080FD758:
- lsrs r0, 1
- movs r4, 0x1F
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r8
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, [sp, 0x4]
- adds r0, r1, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- mov r2, r8
- lsls r1, r2, 5
- orrs r0, r1
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r0, 16
-_080FD79C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD68C
-
- thumb_func_start sub_80FD7AC
-sub_80FD7AC: @ 80FD7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- mov r10, r1
- str r2, [sp]
- ldrh r1, [r3]
- mov r0, r10
- ldrh r0, [r0]
- cmp r1, r0
- bne _080FD7D4
- ldrh r0, [r2]
- cmp r0, r1
- bne _080FD7D4
- mov r1, r10
- ldrh r0, [r1]
- b _080FD8BA
-_080FD7D4:
- mov r2, r10
- ldrh r0, [r2]
- movs r1, 0x1F
- mov r9, r1
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- lsls r0, 16
- lsrs r2, r0, 21
- mov r1, r9
- ands r1, r2
- mov r8, r1
- lsrs r0, 26
- mov r2, r9
- ands r2, r0
- str r2, [sp, 0x4]
- ldrh r2, [r3]
- adds r0, r4, 0
- ands r0, r2
- lsls r2, 16
- lsrs r1, r2, 21
- mov r3, r9
- ands r1, r3
- adds r0, r1
- lsrs r2, 26
- ands r2, r3
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- adds r0, r5, r1
- ldr r2, [sp, 0x4]
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- ldrh r1, [r3]
- ands r4, r1
- lsls r1, 16
- lsrs r0, r1, 21
- mov r2, r9
- ands r0, r2
- adds r4, r0
- lsrs r1, 26
- ands r1, r2
- adds r4, r1
- adds r0, r4, 0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r7, r6
- bne _080FD856
- cmp r1, r6
- bne _080FD856
- mov r3, r10
- ldrh r0, [r3]
- b _080FD8BA
-_080FD856:
- cmp r7, r6
- bls _080FD85E
- subs r0, r7, r6
- b _080FD860
-_080FD85E:
- subs r0, r6, r7
-_080FD860:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r1, r6
- bls _080FD86C
- subs r0, r1, r6
- b _080FD86E
-_080FD86C:
- subs r0, r6, r1
-_080FD86E:
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- bcc _080FD878
- adds r0, r2, 0
-_080FD878:
- movs r4, 0x1F
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r8
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, [sp, 0x4]
- adds r0, r1, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- mov r2, r8
- lsls r1, r2, 5
- orrs r0, r1
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r0, 16
-_080FD8BA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD7AC
-
- thumb_func_start sub_80FD8CC
-sub_80FD8CC: @ 80FD8CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldrb r1, [r0, 0x1D]
- lsrs r5, r1, 3
- ldrb r1, [r0, 0x1E]
- lsrs r1, 3
- str r1, [sp, 0x8]
- ldr r1, [r0, 0x4]
- str r1, [sp]
- ldr r2, [r0, 0x10]
- str r2, [sp, 0x4]
- ldrh r0, [r0, 0x16]
- cmp r0, 0x2
- bne _080FD97C
- movs r1, 0
- ldr r0, [sp, 0x8]
- cmp r1, r0
- bcc _080FD8FA
- b _080FDA08
-_080FD8FA:
- movs r0, 0
- adds r2, r1, 0x1
- mov r10, r2
- cmp r0, r5
- bcs _080FD96E
- adds r2, r1, 0
- muls r2, r5
- mov r9, r2
- lsls r1, 3
- mov r8, r1
-_080FD90E:
- movs r4, 0
- lsls r6, r0, 4
- adds r7, r0, 0x1
- add r0, r9
- lsls r0, 6
- ldr r1, [sp, 0x4]
- adds r1, r0
- mov r12, r1
-_080FD91E:
- lsls r0, r4, 3
- mov r2, r12
- adds r3, r2, r0
- mov r1, r8
- adds r0, r1, r4
- lsls r0, 3
- muls r0, r5
- lsls r0, 1
- ldr r2, [sp]
- adds r0, r2, r0
- adds r2, r0, r6
- ldrh r0, [r2, 0x2]
- lsls r0, 8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0x6]
- lsls r0, 8
- ldrh r1, [r2, 0x4]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r2, 0xE]
- lsls r0, 8
- ldrh r1, [r2, 0xC]
- orrs r0, r1
- strh r0, [r3, 0x6]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080FD91E
- lsls r0, r7, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080FD90E
-_080FD96E:
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bcc _080FD8FA
- b _080FDA08
-_080FD97C:
- movs r1, 0
- ldr r0, [sp, 0x8]
- cmp r1, r0
- bcs _080FDA08
-_080FD984:
- movs r0, 0
- adds r2, r1, 0x1
- mov r10, r2
- cmp r0, r5
- bcs _080FD9FC
- adds r2, r1, 0
- muls r2, r5
- mov r9, r2
- lsls r1, 3
- mov r8, r1
-_080FD998:
- movs r4, 0
- lsls r6, r0, 4
- adds r7, r0, 0x1
- add r0, r9
- lsls r0, 5
- ldr r1, [sp, 0x4]
- adds r1, r0
- mov r12, r1
-_080FD9A8:
- lsls r0, r4, 2
- mov r2, r12
- adds r3, r2, r0
- mov r1, r8
- adds r0, r1, r4
- lsls r0, 3
- muls r0, r5
- lsls r0, 1
- ldr r2, [sp]
- adds r0, r2, r0
- adds r2, r0, r6
- ldrh r1, [r2, 0x2]
- lsls r1, 4
- ldrh r0, [r2]
- orrs r1, r0
- ldrh r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2, 0x6]
- lsls r0, 12
- orrs r1, r0
- strh r1, [r3]
- ldrh r1, [r2, 0xA]
- lsls r1, 4
- ldrh r0, [r2, 0x8]
- orrs r1, r0
- ldrh r0, [r2, 0xC]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2, 0xE]
- lsls r0, 12
- orrs r1, r0
- strh r1, [r3, 0x2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080FD9A8
- lsls r0, r7, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080FD998
-_080FD9FC:
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bcc _080FD984
-_080FDA08:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD8CC
-
- thumb_func_start sub_80FDA18
-sub_80FDA18: @ 80FDA18
- push {lr}
- ldr r2, _080FDA68
- ldrb r1, [r0, 0x18]
- lsls r1, 4
- strh r1, [r2]
- ldr r3, _080FDA6C
- ldrh r2, [r2]
- lsls r2, 1
- ldr r1, [r0, 0x8]
- adds r1, r2
- str r1, [r3]
- ldr r2, _080FDA70
- ldr r1, [r0, 0x4]
- str r1, [r2]
- ldr r2, _080FDA74
- ldrb r1, [r0, 0x19]
- strb r1, [r2]
- ldr r2, _080FDA78
- ldrb r1, [r0, 0x1A]
- strb r1, [r2]
- ldr r2, _080FDA7C
- ldrb r1, [r0, 0x1B]
- strb r1, [r2]
- ldr r2, _080FDA80
- ldrb r1, [r0, 0x1C]
- strb r1, [r2]
- ldr r2, _080FDA84
- ldrb r1, [r0, 0x1D]
- strb r1, [r2]
- ldr r2, _080FDA88
- ldrb r1, [r0, 0x1E]
- strb r1, [r2]
- ldrh r0, [r0, 0x14]
- cmp r0, 0x5
- bhi _080FDADE
- lsls r0, 2
- ldr r1, _080FDA8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FDA68: .4byte gUnknown_03005E0C
-_080FDA6C: .4byte gUnknown_03005E08
-_080FDA70: .4byte gUnknown_03005DEC
-_080FDA74: .4byte gUnknown_03005DE8
-_080FDA78: .4byte gUnknown_03005DFC
-_080FDA7C: .4byte gUnknown_03005DF8
-_080FDA80: .4byte gUnknown_03005DF0
-_080FDA84: .4byte gUnknown_03005E04
-_080FDA88: .4byte gUnknown_03005DF4
-_080FDA8C: .4byte _080FDA90
- .align 2, 0
-_080FDA90:
- .4byte _080FDAA8
- .4byte _080FDAB0
- .4byte _080FDAB8
- .4byte _080FDAC2
- .4byte _080FDACC
- .4byte _080FDAD6
-_080FDAA8:
- movs r0, 0
- bl sub_80FDC18
- b _080FDADE
-_080FDAB0:
- movs r0, 0x1
- bl sub_80FDC18
- b _080FDADE
-_080FDAB8:
- bl sub_80FDAE4
- bl sub_80FDF88
- b _080FDADE
-_080FDAC2:
- bl sub_80FDBE4
- bl sub_80FDED8
- b _080FDADE
-_080FDACC:
- bl sub_80FDBA8
- bl sub_80FDE28
- b _080FDADE
-_080FDAD6:
- bl sub_80FDB8C
- bl sub_80FDD70
-_080FDADE:
- pop {r0}
- bx r0
- thumb_func_end sub_80FDA18
-
- thumb_func_start sub_80FDAE4
-sub_80FDAE4: @ 80FDAE4
- ldr r2, _080FDB4C
- ldr r1, [r2]
- movs r0, 0
- strh r0, [r1]
- ldr r0, [r2]
- ldr r2, _080FDB50
- adds r1, r2, 0
- strh r1, [r0, 0x2]
- ldr r2, _080FDB54
- adds r1, r2, 0
- strh r1, [r0, 0x4]
- ldr r2, _080FDB58
- adds r1, r2, 0
- strh r1, [r0, 0x6]
- ldr r2, _080FDB5C
- adds r1, r2, 0
- strh r1, [r0, 0x8]
- ldr r2, _080FDB60
- adds r1, r2, 0
- strh r1, [r0, 0xA]
- ldr r2, _080FDB64
- adds r1, r2, 0
- strh r1, [r0, 0xC]
- ldr r2, _080FDB68
- adds r1, r2, 0
- strh r1, [r0, 0xE]
- ldr r2, _080FDB6C
- adds r1, r2, 0
- strh r1, [r0, 0x10]
- ldr r2, _080FDB70
- adds r1, r2, 0
- strh r1, [r0, 0x12]
- ldr r2, _080FDB74
- adds r1, r2, 0
- strh r1, [r0, 0x14]
- ldr r2, _080FDB78
- adds r1, r2, 0
- strh r1, [r0, 0x16]
- ldr r2, _080FDB7C
- adds r1, r2, 0
- strh r1, [r0, 0x18]
- ldr r2, _080FDB80
- adds r1, r2, 0
- strh r1, [r0, 0x1A]
- ldr r2, _080FDB84
- adds r1, r2, 0
- strh r1, [r0, 0x1C]
- ldr r2, _080FDB88
- adds r1, r2, 0
- strh r1, [r0, 0x1E]
- bx lr
- .align 2, 0
-_080FDB4C: .4byte gUnknown_03005E08
-_080FDB50: .4byte 0x000018c6
-_080FDB54: .4byte 0x000077bd
-_080FDB58: .4byte 0x00002d6b
-_080FDB5C: .4byte 0x000018dd
-_080FDB60: .4byte 0x00001ba6
-_080FDB64: .4byte 0x000074c6
-_080FDB68: .4byte 0x00001bbd
-_080FDB6C: .4byte 0x000074dd
-_080FDB70: .4byte 0x000077a6
-_080FDB74: .4byte 0x0000197d
-_080FDB78: .4byte 0x00001bab
-_080FDB7C: .4byte 0x00007566
-_080FDB80: .4byte 0x00002cdd
-_080FDB84: .4byte 0x00002fa6
-_080FDB88: .4byte 0x000074cb
- thumb_func_end sub_80FDAE4
-
- thumb_func_start sub_80FDB8C
-sub_80FDB8C: @ 80FDB8C
- ldr r2, _080FDBA0
- ldr r0, [r2]
- movs r1, 0
- strh r1, [r0]
- ldr r2, [r2]
- strh r1, [r2, 0x2]
- ldr r1, _080FDBA4
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_080FDBA0: .4byte gUnknown_03005E08
-_080FDBA4: .4byte 0x00007fff
- thumb_func_end sub_80FDB8C
-
- thumb_func_start sub_80FDBA8
-sub_80FDBA8: @ 80FDBA8
- push {r4,r5,lr}
- ldr r1, _080FDBE0
- ldr r0, [r1]
- movs r2, 0
- strh r2, [r0]
- ldr r0, [r1]
- strh r2, [r0, 0x2]
- movs r4, 0
- adds r5, r1, 0
-_080FDBBA:
- ldr r0, [r5]
- lsls r2, r4, 1
- adds r2, r0
- adds r0, r4, 0x2
- lsls r3, r0, 1
- lsls r1, r0, 11
- lsls r0, 6
- orrs r1, r0
- orrs r1, r3
- strh r1, [r2, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xD
- bls _080FDBBA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDBE0: .4byte gUnknown_03005E08
- thumb_func_end sub_80FDBA8
-
- thumb_func_start sub_80FDBE4
-sub_80FDBE4: @ 80FDBE4
- push {r4,lr}
- ldr r2, _080FDC14
- ldr r1, [r2]
- movs r0, 0
- strh r0, [r1]
- movs r3, 0
- adds r4, r2, 0
-_080FDBF2:
- ldr r0, [r4]
- lsls r2, r3, 1
- adds r2, r0
- lsls r0, r3, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r3
- strh r0, [r2, 0x2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _080FDBF2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDC14: .4byte gUnknown_03005E08
- thumb_func_end sub_80FDBE4
-
- thumb_func_start sub_80FDC18
-sub_80FDC18: @ 80FDC18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- movs r1, 0xDF
- mov r9, r1
- cmp r0, 0
- bne _080FDC30
- movs r2, 0xFF
- mov r9, r2
-_080FDC30:
- movs r6, 0
- ldr r3, _080FDCB4
- mov r12, r3
- mov r0, r9
- lsls r4, r0, 1
- ldr r5, _080FDCB8
- cmp r6, r9
- bcs _080FDC54
- movs r2, 0
-_080FDC42:
- ldr r0, [r3]
- lsls r1, r6, 1
- adds r1, r0
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r9
- bcc _080FDC42
-_080FDC54:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4, r0
- ldr r2, _080FDCBC
- adds r1, r2, 0
- strh r1, [r0]
- movs r3, 0
- ldrb r5, [r5]
- cmp r3, r5
- bcs _080FDD58
-_080FDC68:
- ldr r2, _080FDCC0
- ldr r0, _080FDCC4
- ldrb r1, [r0]
- adds r1, r3
- ldr r0, _080FDCC8
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- ldr r1, [r2]
- adds r1, r0
- ldr r0, _080FDCCC
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r6, 0
- ldr r0, _080FDCD0
- adds r2, r0, 0
- adds r3, 0x1
- mov r10, r3
- ldrb r3, [r2]
- cmp r6, r3
- bcs _080FDD4A
- ldr r0, _080FDCD4
- mov r8, r0
-_080FDC98:
- ldrh r0, [r4]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FDCD8
- mov r1, r8
- ldrh r0, [r1]
- strh r0, [r4]
- adds r6, 0x1
- adds r7, r4, 0x2
- b _080FDD3E
- .align 2, 0
-_080FDCB4: .4byte gUnknown_03005E08
-_080FDCB8: .4byte gUnknown_03005DF0
-_080FDCBC: .4byte 0x00003def
-_080FDCC0: .4byte gUnknown_03005DEC
-_080FDCC4: .4byte gUnknown_03005DFC
-_080FDCC8: .4byte gUnknown_03005E04
-_080FDCCC: .4byte gUnknown_03005DE8
-_080FDCD0: .4byte gUnknown_03005DF8
-_080FDCD4: .4byte gUnknown_03005E0C
-_080FDCD8:
- adds r0, r4, 0
- bl sub_80FE038
- lsls r0, 16
- lsrs r5, r0, 16
- movs r3, 0x1
- adds r6, 0x1
- adds r7, r4, 0x2
- cmp r3, r9
- bcs _080FDD34
- ldr r0, _080FDD04
- ldr r2, [r0]
- ldrh r1, [r2, 0x2]
- mov r12, r0
- cmp r1, 0
- bne _080FDD08
- strh r5, [r2, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- adds r0, 0x1
- b _080FDD32
- .align 2, 0
-_080FDD04: .4byte gUnknown_03005E08
-_080FDD08:
- mov r2, r12
- ldr r1, [r2]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _080FDD2C
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r9
- bcs _080FDD34
- lsls r0, r3, 1
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- bne _080FDD08
- strh r5, [r1]
-_080FDD2C:
- mov r1, r8
- ldrh r0, [r1]
- adds r0, r3
-_080FDD32:
- strh r0, [r4]
-_080FDD34:
- ldr r2, _080FDD68
- cmp r3, r9
- bne _080FDD3E
- mov r3, r9
- strh r3, [r4]
-_080FDD3E:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r4, r7, 0
- ldrb r0, [r2]
- cmp r6, r0
- bcc _080FDC98
-_080FDD4A:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r3, r0, 24
- ldr r0, _080FDD6C
- ldrb r0, [r0]
- cmp r3, r0
- bcc _080FDC68
-_080FDD58:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDD68: .4byte gUnknown_03005DF8
-_080FDD6C: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDC18
-
- thumb_func_start sub_80FDD70
-sub_80FDD70: @ 80FDD70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r2, 0
- ldr r0, _080FDDC4
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDE14
- ldr r0, _080FDDC8
- mov r8, r0
-_080FDD84:
- ldr r0, _080FDDCC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDDD0
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDDD4
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r6, 0
- ldr r0, _080FDDD8
- adds r3, r0, 0
- adds r7, r2, 0x1
- ldrb r0, [r3]
- cmp r6, r0
- bcs _080FDE08
- ldr r5, _080FDDDC
-_080FDDB0:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080FDDE0
- ldrh r0, [r5]
- strh r0, [r4]
- b _080FDDFA
- .align 2, 0
-_080FDDC4: .4byte gUnknown_03005DF0
-_080FDDC8: .4byte gUnknown_03005DEC
-_080FDDCC: .4byte gUnknown_03005DFC
-_080FDDD0: .4byte gUnknown_03005E04
-_080FDDD4: .4byte gUnknown_03005DE8
-_080FDDD8: .4byte gUnknown_03005DF8
-_080FDDDC: .4byte gUnknown_03005E0C
-_080FDDE0:
- adds r0, r4, 0
- bl sub_80FD4DC
- lsls r0, 16
- cmp r0, 0
- bne _080FDDF2
- ldrh r0, [r5]
- adds r0, 0x1
- b _080FDDF6
-_080FDDF2:
- ldrh r0, [r5]
- adds r0, 0x2
-_080FDDF6:
- strh r0, [r4]
- ldr r3, _080FDE20
-_080FDDFA:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r6, r0
- bcc _080FDDB0
-_080FDE08:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDE24
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDD84
-_080FDE14:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDE20: .4byte gUnknown_03005DF8
-_080FDE24: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDD70
-
- thumb_func_start sub_80FDE28
-sub_80FDE28: @ 80FDE28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDE7C
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDEC4
- ldr r0, _080FDE80
- mov r8, r0
-_080FDE3E:
- ldr r0, _080FDE84
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDE88
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDE8C
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDE90
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FDEB8
- ldr r6, _080FDE94
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDE6E:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDE98
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FDEA8
- .align 2, 0
-_080FDE7C: .4byte gUnknown_03005DF0
-_080FDE80: .4byte gUnknown_03005DEC
-_080FDE84: .4byte gUnknown_03005DFC
-_080FDE88: .4byte gUnknown_03005E04
-_080FDE8C: .4byte gUnknown_03005DE8
-_080FDE90: .4byte gUnknown_03005DF8
-_080FDE94: .4byte gUnknown_03005E0C
-_080FDE98:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE17C
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FDEA8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FDED0
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDE6E
-_080FDEB8:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDED4
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDE3E
-_080FDEC4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDED0: .4byte gUnknown_03005DF8
-_080FDED4: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDE28
-
- thumb_func_start sub_80FDED8
-sub_80FDED8: @ 80FDED8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDF2C
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDF74
- ldr r0, _080FDF30
- mov r8, r0
-_080FDEEE:
- ldr r0, _080FDF34
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDF38
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDF3C
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDF40
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FDF68
- ldr r6, _080FDF44
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDF1E:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDF48
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FDF58
- .align 2, 0
-_080FDF2C: .4byte gUnknown_03005DF0
-_080FDF30: .4byte gUnknown_03005DEC
-_080FDF34: .4byte gUnknown_03005DFC
-_080FDF38: .4byte gUnknown_03005E04
-_080FDF3C: .4byte gUnknown_03005DE8
-_080FDF40: .4byte gUnknown_03005DF8
-_080FDF44: .4byte gUnknown_03005E0C
-_080FDF48:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE1B0
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FDF58:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FDF80
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDF1E
-_080FDF68:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDF84
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDEEE
-_080FDF74:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDF80: .4byte gUnknown_03005DF8
-_080FDF84: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDED8
-
- thumb_func_start sub_80FDF88
-sub_80FDF88: @ 80FDF88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDFDC
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FE024
- ldr r0, _080FDFE0
- mov r8, r0
-_080FDF9E:
- ldr r0, _080FDFE4
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDFE8
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDFEC
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDFF0
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FE018
- ldr r6, _080FDFF4
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDFCE:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDFF8
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FE008
- .align 2, 0
-_080FDFDC: .4byte gUnknown_03005DF0
-_080FDFE0: .4byte gUnknown_03005DEC
-_080FDFE4: .4byte gUnknown_03005DFC
-_080FDFE8: .4byte gUnknown_03005E04
-_080FDFEC: .4byte gUnknown_03005DE8
-_080FDFF0: .4byte gUnknown_03005DF8
-_080FDFF4: .4byte gUnknown_03005E0C
-_080FDFF8:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE0AC
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FE008:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FE030
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDFCE
-_080FE018:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FE034
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDF9E
-_080FE024:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE030: .4byte gUnknown_03005DF8
-_080FE034: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDF88
-
- thumb_func_start sub_80FE038
-sub_80FE038: @ 80FE038
- push {r4,lr}
- ldrh r0, [r0]
- movs r1, 0x1F
- movs r4, 0x1F
- ands r4, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r1
- lsrs r2, r0, 26
- ands r2, r1
- movs r1, 0x3
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE05C
- movs r0, 0x1C
- ands r0, r4
- adds r4, r0, 0x4
-_080FE05C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE06A
- movs r0, 0x1C
- ands r0, r3
- adds r3, r0, 0x4
-_080FE06A:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE078
- movs r0, 0x1C
- ands r0, r2
- adds r2, r0, 0x4
-_080FE078:
- cmp r4, 0x5
- bhi _080FE07E
- movs r4, 0x6
-_080FE07E:
- cmp r4, 0x1E
- bls _080FE084
- movs r4, 0x1E
-_080FE084:
- cmp r3, 0x5
- bhi _080FE08A
- movs r3, 0x6
-_080FE08A:
- cmp r3, 0x1E
- bls _080FE090
- movs r3, 0x1E
-_080FE090:
- cmp r2, 0x5
- bhi _080FE096
- movs r2, 0x6
-_080FE096:
- cmp r2, 0x1E
- bls _080FE09C
- movs r2, 0x1E
-_080FE09C:
- lsls r0, r2, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FE038
-
- thumb_func_start sub_80FE0AC
-sub_80FE0AC: @ 80FE0AC
- push {lr}
- ldrh r0, [r0]
- movs r1, 0x1F
- movs r3, 0x1F
- ands r3, r0
- lsls r0, 16
- lsrs r2, r0, 21
- ands r2, r1
- lsrs r0, 26
- ands r0, r1
- cmp r3, 0xB
- bhi _080FE0D0
- cmp r2, 0xA
- bhi _080FE0D0
- cmp r0, 0xA
- bhi _080FE0D0
- movs r0, 0x1
- b _080FE176
-_080FE0D0:
- cmp r3, 0x13
- bls _080FE0F4
- cmp r2, 0x13
- bls _080FE0DC
- cmp r0, 0x13
- bhi _080FE100
-_080FE0DC:
- cmp r3, 0x13
- bls _080FE0F4
- cmp r2, 0x13
- bls _080FE0EA
- cmp r0, 0xE
- bhi _080FE100
- b _080FE138
-_080FE0EA:
- cmp r0, 0x13
- bls _080FE0F4
- cmp r2, 0xE
- bhi _080FE100
- b _080FE114
-_080FE0F4:
- cmp r2, 0x13
- bls _080FE104
- cmp r0, 0x13
- bls _080FE104
- cmp r3, 0xE
- bls _080FE15C
-_080FE100:
- movs r0, 0x2
- b _080FE176
-_080FE104:
- cmp r3, 0x13
- bls _080FE128
- cmp r2, 0xB
- bls _080FE11C
- cmp r0, 0xB
- bls _080FE118
- cmp r2, r0
- bcs _080FE138
-_080FE114:
- movs r0, 0x8
- b _080FE176
-_080FE118:
- movs r0, 0xA
- b _080FE176
-_080FE11C:
- cmp r0, 0xB
- bls _080FE124
- movs r0, 0xD
- b _080FE176
-_080FE124:
- movs r0, 0x4
- b _080FE176
-_080FE128:
- cmp r2, 0x13
- bls _080FE14C
- cmp r3, 0xB
- bls _080FE140
- cmp r0, 0xB
- bls _080FE13C
- cmp r3, r0
- bcc _080FE15C
-_080FE138:
- movs r0, 0x7
- b _080FE176
-_080FE13C:
- movs r0, 0xB
- b _080FE176
-_080FE140:
- cmp r0, 0xB
- bls _080FE148
- movs r0, 0xE
- b _080FE176
-_080FE148:
- movs r0, 0x5
- b _080FE176
-_080FE14C:
- cmp r0, 0x13
- bls _080FE174
- cmp r3, 0xB
- bls _080FE160
- cmp r2, 0xB
- bls _080FE168
- cmp r3, r2
- bcs _080FE114
-_080FE15C:
- movs r0, 0x9
- b _080FE176
-_080FE160:
- cmp r2, 0xB
- bls _080FE168
- movs r0, 0xC
- b _080FE176
-_080FE168:
- cmp r0, 0xB
- bls _080FE170
- movs r0, 0xF
- b _080FE176
-_080FE170:
- movs r0, 0x6
- b _080FE176
-_080FE174:
- movs r0, 0x3
-_080FE176:
- pop {r1}
- bx r1
- thumb_func_end sub_80FE0AC
-
- thumb_func_start sub_80FE17C
-sub_80FE17C: @ 80FE17C
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x1E
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080FE1A8
- lsrs r0, 17
- b _080FE1AA
-_080FE1A8:
- movs r0, 0x1
-_080FE1AA:
- pop {r1}
- bx r1
- thumb_func_end sub_80FE17C
-
- thumb_func_start sub_80FE1B0
-sub_80FE1B0: @ 80FE1B0
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FE1B0
-
- thumb_func_start sub_80FE1DC
-sub_80FE1DC: @ 80FE1DC
- push {lr}
- sub sp, 0x8
- bl sub_80FE2B4
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080FE218
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- ldr r0, _080FE21C
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE218: .4byte gUnknown_083EC604
-_080FE21C: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE1DC
-
- thumb_func_start sub_80FE220
-sub_80FE220: @ 80FE220
- push {lr}
- ldr r1, _080FE238
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- bl sub_80FE1DC
- bl sub_80FE394
- pop {r0}
- bx r0
- .align 2, 0
-_080FE238: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE220
-
- thumb_func_start sub_80FE23C
-sub_80FE23C: @ 80FE23C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80FE220
- ldr r1, _080FE25C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE260
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE25C: .4byte gTasks
-_080FE260: .4byte sub_80FE2EC
- thumb_func_end sub_80FE23C
-
- thumb_func_start sub_80FE264
-sub_80FE264: @ 80FE264
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE23C
- ldr r1, _080FE284
- ldr r0, _080FE288
- str r0, [r1]
- adds r0, 0x10
- str r0, [r1, 0x4]
- movs r2, 0
- movs r0, 0x10
- strb r0, [r1, 0x8]
- strb r2, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE284: .4byte 0x0201f000
-_080FE288: .4byte gSaveBlock1 + 0x1A1A
- thumb_func_end sub_80FE264
-
- thumb_func_start sub_80FE28C
-sub_80FE28C: @ 80FE28C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE23C
- ldr r1, _080FE2AC
- ldr r0, _080FE2B0
- str r0, [r1]
- adds r0, 0xC
- str r0, [r1, 0x4]
- movs r0, 0xC
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2AC: .4byte 0x0201f000
-_080FE2B0: .4byte gSaveBlock1 + 0x2688
- thumb_func_end sub_80FE28C
-
- thumb_func_start sub_80FE2B4
-sub_80FE2B4: @ 80FE2B4
- push {lr}
- sub sp, 0x8
- ldr r1, _080FE2E8
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2E8: .4byte gUnknown_083EC654
- thumb_func_end sub_80FE2B4
-
- thumb_func_start sub_80FE2EC
-sub_80FE2EC: @ 80FE2EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r0, _080FE368
- ldrb r1, [r0, 0x7]
- movs r5, 0x80
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _080FE38C
- ldr r4, _080FE36C
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE324
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _080FE370
- strb r0, [r1]
- bl sub_80FE394
-_080FE324:
- ldrh r1, [r4, 0x2E]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE342
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _080FE370
- strb r0, [r1]
- bl sub_80FE394
-_080FE342:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE378
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FE374
- ldr r0, _080FE370
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _080FE38C
- .align 2, 0
-_080FE368: .4byte gPaletteFade
-_080FE36C: .4byte gMain
-_080FE370: .4byte gUnknown_020388D4
-_080FE374: .4byte gUnknown_083EC604
-_080FE378:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE38C
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl gpu_pal_decompress_alloc_tag_and_upload
-_080FE38C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE2EC
-
- thumb_func_start sub_80FE394
-sub_80FE394: @ 80FE394
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _080FE3BC
- ldr r0, _080FE3C0
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080FE3BC: .4byte gUnknown_083EC624
-_080FE3C0: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE394
-
- thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
-gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080FE404
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _080FE40C
- ldr r0, _080FE408
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- b _080FE412
- .align 2, 0
-_080FE404: .4byte 0x0201f000
-_080FE408: .4byte gUnknown_0815F399
-_080FE40C:
- adds r0, r4, 0
- bl sub_8139E24
-_080FE412:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
-
- thumb_func_start sub_80FE418
-sub_80FE418: @ 80FE418
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE5AC
- pop {r0}
- bx r0
- thumb_func_end sub_80FE418
-
- thumb_func_start sub_80FE428
-sub_80FE428: @ 80FE428
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FE464
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- bl sub_80FE394
- ldr r1, _080FE468
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE46C
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE464: .4byte gUnknown_020388D4
-_080FE468: .4byte gTasks
-_080FE46C: .4byte sub_80FE2EC
- thumb_func_end sub_80FE428
-
- thumb_func_start sub_80FE470
-sub_80FE470: @ 80FE470
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- mov r8, r1
- mov r9, r2
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072CBC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080FE51C
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x5
- mov r10, r0
- strb r0, [r7, 0x1]
- strb r5, [r7, 0x2]
- adds r7, 0x3
- ldr r1, _080FE520
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- bl sub_8134194
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- movs r2, 0x56
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- ldr r0, _080FE524
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x4]
- adds r0, r7, 0
- movs r2, 0x68
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xFC
- strb r0, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r0, _080FE51C
- mov r1, r8
- mov r2, r9
- bl MenuPrint
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE51C: .4byte gStringVar4
-_080FE520: .4byte gUnknown_083EC5E4
-_080FE524: .4byte gUnknown_08402E40
- thumb_func_end sub_80FE470
-
- thumb_func_start sub_80FE528
-sub_80FE528: @ 80FE528
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- ldr r1, _080FE574
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
-_080FE548:
- ldr r0, _080FE578
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FE57C
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FE57C
- cmp r5, 0x6
- beq _080FE57C
- cmp r5, 0x7
- beq _080FE57C
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xD
- bl sub_80FE470
- b _080FE58E
- .align 2, 0
-_080FE574: .4byte gTasks
-_080FE578: .4byte 0x0201f000
-_080FE57C:
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xFF
- bl sub_80FE470
-_080FE58E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _080FE548
- ldr r0, _080FE5A8
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5A8: .4byte gUnknownText_Exit
- thumb_func_end sub_80FE528
-
- thumb_func_start sub_80FE5AC
-sub_80FE5AC: @ 80FE5AC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE528
- ldr r0, _080FE5F8
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _080FE5FC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE600
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5F8: .4byte gUnknown_020388F6
-_080FE5FC: .4byte gTasks
-_080FE600: .4byte sub_80FE604
- thumb_func_end sub_80FE5AC
-
- thumb_func_start sub_80FE604
-sub_80FE604: @ 80FE604
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _080FE638
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE61C
- b _080FE720
-_080FE61C:
- ldr r2, _080FE63C
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE640
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080FE720
- .align 2, 0
-_080FE638: .4byte gPaletteFade
-_080FE63C: .4byte gMain
-_080FE640:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE656
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080FE720
-_080FE656:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE70C
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- ldr r4, _080FE6C0
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _080FE704
- ldrb r0, [r4]
- bl sub_8134194
- ldr r1, _080FE6C4
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080FE6DC
- ldrb r0, [r4]
- bl sub_8134104
- ldr r2, _080FE6C8
- ldr r1, _080FE6CC
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_80FEF50
- bl sub_80F944C
- ldr r0, _080FE6D0
- movs r1, 0x8
- bl sub_80F9480
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, _080FE6D4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE6D8
- str r1, [r0]
- b _080FE720
- .align 2, 0
-_080FE6C0: .4byte gUnknown_020388F6
-_080FE6C4: .4byte gUnknown_020388D5
-_080FE6C8: .4byte gUnknown_020388D0
-_080FE6CC: .4byte gUnknown_08402E40
-_080FE6D0: .4byte gUnknown_020388F7
-_080FE6D4: .4byte gTasks
-_080FE6D8: .4byte sub_80FE868
-_080FE6DC:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE6FC
- ldr r2, _080FE700
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FE720
- .align 2, 0
-_080FE6FC: .4byte gSecretBaseText_NoDecors
-_080FE700: .4byte sub_80FE418
-_080FE704:
- adds r0, r5, 0
- bl sub_80FE728
- b _080FE720
-_080FE70C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE720
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80FE728
-_080FE720:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE604
-
- thumb_func_start sub_80FE728
-sub_80FE728: @ 80FE728
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080FE748
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- beq _080FE74C
- adds r0, r2, 0
- bl sub_80FE758
- b _080FE752
- .align 2, 0
-_080FE748: .4byte gTasks
-_080FE74C:
- adds r0, r2, 0
- bl sub_8109DAC
-_080FE752:
- pop {r0}
- bx r0
- thumb_func_end sub_80FE728
-
- thumb_func_start sub_80FE758
-sub_80FE758: @ 80FE758
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE794
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- beq _080FE79C
- bl sub_80FE1DC
- bl MenuDisplayMessageBox
- bl sub_80FE394
- ldr r0, _080FE798
- str r0, [r5]
- b _080FE7A2
- .align 2, 0
-_080FE794: .4byte gTasks
-_080FE798: .4byte sub_80FE2EC
-_080FE79C:
- adds r0, r4, 0
- bl sub_80B3068
-_080FE7A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE758
-
- thumb_func_start sub_80FE7A8
-sub_80FE7A8: @ 80FE7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FE7CC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x1E]
- ldr r1, _080FE7D0
- strb r3, [r1]
- bl sub_80FE5AC
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7CC: .4byte gTasks
-_080FE7D0: .4byte gUnknown_020388F6
- thumb_func_end sub_80FE7A8
-
- thumb_func_start sub_80FE7D4
-sub_80FE7D4: @ 80FE7D4
- push {lr}
- lsls r1, 24
- ldr r2, _080FE7E8
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7E8: .4byte gUnknown_083EC5E4
- thumb_func_end sub_80FE7D4
-
- thumb_func_start sub_80FE7EC
-sub_80FE7EC: @ 80FE7EC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FEC94
- ldr r0, _080FE858
- ldrb r0, [r0]
- bl sub_80FECB8
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r4, _080FE85C
- ldr r0, _080FE860
- ldrb r0, [r0]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- ldr r0, _080FE864
- ldrb r3, [r0]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE858: .4byte gUnknown_020388F6
-_080FE85C: .4byte gUnknown_020388F2
-_080FE860: .4byte gUnknown_020388F4
-_080FE864: .4byte gUnknown_020388F3
- thumb_func_end sub_80FE7EC
-
- thumb_func_start sub_80FE868
-sub_80FE868: @ 80FE868
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80FE7EC
- ldr r1, _080FE88C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE890
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE88C: .4byte gTasks
-_080FE890: .4byte sub_80FE948
- thumb_func_end sub_80FE868
-
- thumb_func_start sub_80FE894
-sub_80FE894: @ 80FE894
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0
- mov r10, r0
- ldr r6, _080FE920
- ldrb r1, [r6]
- ldr r4, _080FE924
- ldrb r0, [r4]
- adds r1, r0
- ldr r2, _080FE928
- mov r9, r2
- ldrb r0, [r2]
- cmp r1, r0
- bne _080FE8C8
- movs r1, 0x1
- mov r10, r1
-_080FE8C8:
- movs r0, 0x5
- bl PlaySE
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FE8DC
- bl MoveMenuCursor
- strb r0, [r6]
-_080FE8DC:
- cmp r7, 0
- beq _080FE8EE
- ldrb r0, [r4]
- adds r0, r7
- strb r0, [r4]
- mov r0, r8
- movs r1, 0x1
- bl sub_80FEABC
-_080FE8EE:
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r0, r1
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- beq _080FE92C
- mov r0, r10
- cmp r0, 0
- beq _080FE90E
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080FE90E:
- ldrb r0, [r4]
- ldrb r6, [r6]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- b _080FE938
- .align 2, 0
-_080FE920: .4byte gUnknown_020388F2
-_080FE924: .4byte gUnknown_020388F4
-_080FE928: .4byte gUnknown_020388D5
-_080FE92C:
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080FE938:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE894
-
- thumb_func_start sub_80FE948
-sub_80FE948: @ 80FE948
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FE980
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FE95C
- b _080FEAAC
-_080FE95C:
- ldr r0, _080FE984
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x40
- bne _080FE9A0
- ldr r0, _080FE988
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE98C
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FE894
- b _080FE9A0
- .align 2, 0
-_080FE980: .4byte gPaletteFade
-_080FE984: .4byte gMain
-_080FE988: .4byte gUnknown_020388F2
-_080FE98C:
- ldr r0, _080FE9C4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE9A0
- movs r2, 0x1
- negs r2, r2
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FE894
-_080FE9A0:
- ldr r0, _080FE9C8
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x80
- bne _080FE9EE
- ldr r2, _080FE9CC
- ldr r1, _080FE9D0
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9D4
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80FE894
- b _080FE9EE
- .align 2, 0
-_080FE9C4: .4byte gUnknown_020388F4
-_080FE9C8: .4byte gMain
-_080FE9CC: .4byte gUnknown_020388F2
-_080FE9D0: .4byte gUnknown_020388F3
-_080FE9D4:
- ldr r0, _080FEA38
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- ldr r1, _080FEA3C
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9EE
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80FE894
-_080FE9EE:
- ldr r0, _080FEA40
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FEA7C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080FEA44
- ldr r1, _080FEA48
- ldr r0, _080FEA38
- ldrb r0, [r0]
- ldrb r1, [r1]
- adds r0, r1
- strb r0, [r2]
- ldr r1, _080FEA3C
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEA54
- ldr r1, _080FEA4C
- ldr r2, _080FEA50
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- b _080FEA68
- .align 2, 0
-_080FEA38: .4byte gUnknown_020388F4
-_080FEA3C: .4byte gUnknown_020388D5
-_080FEA40: .4byte gMain
-_080FEA44: .4byte gUnknown_020388F5
-_080FEA48: .4byte gUnknown_020388F2
-_080FEA4C: .4byte gUnknown_083EC634
-_080FEA50: .4byte gTasks
-_080FEA54:
- ldr r2, _080FEA74
- ldr r1, _080FEA78
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- lsls r0, 3
- adds r0, r2
-_080FEA68:
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080FEAAC
- .align 2, 0
-_080FEA74: .4byte gUnknown_083EC634
-_080FEA78: .4byte gTasks
-_080FEA7C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FEAAC
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FEAB4
- ldr r2, _080FEAB8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080FEAAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEAB4: .4byte gUnknown_083EC634
-_080FEAB8: .4byte gTasks
- thumb_func_end sub_80FE948
-
- thumb_func_start sub_80FEABC
-sub_80FEABC: @ 80FEABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080FEB58
- ldrb r0, [r4]
- cmp r0, 0
- bne _080FEADE
- movs r0, 0
- bl SetBgTilemapBuffer
- ldrb r0, [r4]
- cmp r0, 0
- beq _080FEAE8
-_080FEADE:
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x8
- bl sub_80F953C
-_080FEAE8:
- ldr r5, _080FEB58
- ldrb r0, [r5]
- adds r0, 0x7
- ldr r4, _080FEB5C
- ldrb r1, [r4]
- cmp r0, r1
- bne _080FEAFC
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_080FEAFC:
- ldrb r0, [r5]
- adds r0, 0x7
- ldrb r4, [r4]
- cmp r0, r4
- bge _080FEB10
- movs r0, 0x1
- movs r1, 0x3C
- movs r2, 0x98
- bl sub_80F953C
-_080FEB10:
- ldrb r4, [r5]
- adds r0, r4, 0
- adds r0, 0x8
- cmp r4, r0
- blt _080FEB1C
- b _080FEC7E
-_080FEB1C:
- adds r7, r5, 0
-_080FEB1E:
- ldrb r1, [r7]
- subs r1, r4, r1
- lsls r0, r1, 25
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r6, r0, 24
- ldr r0, _080FEB60
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FEB3C
- adds r0, r1, 0
- bl sub_80F94F8
-_080FEB3C:
- ldr r0, _080FEB5C
- ldrb r0, [r0]
- cmp r4, r0
- bne _080FEB68
- lsls r2, r6, 3
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _080FEB64
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEC7E
- .align 2, 0
-_080FEB58: .4byte gUnknown_020388F4
-_080FEB5C: .4byte gUnknown_020388D5
-_080FEB60: .4byte gUnknown_020388F7
-_080FEB64: .4byte gUnknownText_Exit
-_080FEB68:
- ldr r0, _080FEBC0
- ldr r1, [r0]
- adds r2, r1, r4
- ldrb r1, [r2]
- mov r12, r0
- adds r5, r4, 0x1
- cmp r1, 0
- bne _080FEB7A
- b _080FEC70
-_080FEB7A:
- ldr r0, _080FEBC4
- ldrb r5, [r0, 0x9]
- cmp r5, 0x1
- bne _080FEBDC
- ldr r0, _080FEBC8
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FEBDC
- cmp r0, 0x7
- beq _080FEBDC
- ldr r0, _080FEBCC
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r3, 0x1E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080FEBDC
- ldrb r1, [r2]
- lsls r1, 5
- ldr r0, _080FEBD0
- adds r1, r0
- ldr r0, _080FEBD4
- bl StringCopy
- lsls r2, r6, 3
- str r5, [sp]
- ldr r0, _080FEBD8
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEBF8
- .align 2, 0
-_080FEBC0: .4byte gUnknown_020388D0
-_080FEBC4: .4byte 0x0201f000
-_080FEBC8: .4byte gUnknown_020388F6
-_080FEBCC: .4byte gTasks
-_080FEBD0: .4byte gDecorations + 0x1
-_080FEBD4: .4byte gStringVar1
-_080FEBD8: .4byte gUnknown_083EC65A
-_080FEBDC:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080FEC00
- adds r0, r1
- lsls r2, r6, 3
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
-_080FEBF8:
- movs r1, 0
- adds r5, r4, 0x1
- b _080FEC0A
- .align 2, 0
-_080FEC00: .4byte gDecorations + 0x1
-_080FEC04:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC0A:
- cmp r1, 0xF
- bhi _080FEC34
- ldr r0, _080FEC38
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC04
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC3C
- adds r1, r3, r1
- lsls r3, 20
- movs r2, 0xC0
- lsls r2, 13
- adds r3, r2
- asrs r3, 16
- movs r0, 0x4
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC34:
- movs r1, 0
- b _080FEC46
- .align 2, 0
-_080FEC38: .4byte gUnknown_020388D6
-_080FEC3C: .4byte gUnknown_020388F7
-_080FEC40:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC46:
- cmp r1, 0xB
- bhi _080FEC70
- ldr r0, _080FEC8C
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC40
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC90
- adds r1, r3, r1
- lsls r3, 20
- movs r0, 0xC0
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x5
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC70:
- lsls r0, r5, 16
- lsrs r4, r0, 16
- ldrb r0, [r7]
- adds r0, 0x8
- cmp r4, r0
- bge _080FEC7E
- b _080FEB1E
-_080FEC7E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEC8C: .4byte gUnknown_020388E6
-_080FEC90: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEABC
-
- thumb_func_start sub_80FEC94
-sub_80FEC94: @ 80FEC94
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FEABC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEC94
-
- thumb_func_start sub_80FECB8
-sub_80FECB8: @ 80FECB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80FE470
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FECB8
-
- thumb_func_start sub_80FECE0
-sub_80FECE0: @ 80FECE0
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FED14
- ldr r1, _080FED18
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 5
- adds r2, 0x18
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x80
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FED14: .4byte gDecorations
-_080FED18: .4byte gUnknown_020388D0
- thumb_func_end sub_80FECE0
-
- thumb_func_start sub_80FED1C
-sub_80FED1C: @ 80FED1C
- push {lr}
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80FED1C
-
- thumb_func_start sub_80FED3C
-sub_80FED3C: @ 80FED3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, _080FED5C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FED60
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FED5C: .4byte gTasks
-_080FED60: .4byte sub_80FE868
- thumb_func_end sub_80FED3C
-
- thumb_func_start sub_80FED64
-sub_80FED64: @ 80FED64
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080FED7C
-_080FED6E:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FED80
- movs r0, 0x1
- b _080FED8C
- .align 2, 0
-_080FED7C: .4byte gUnknown_020388D6
-_080FED80:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080FED6E
- movs r0, 0
-_080FED8C:
- pop {r1}
- bx r1
- thumb_func_end sub_80FED64
-
- thumb_func_start sub_80FED90
-sub_80FED90: @ 80FED90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r3, 0
- ldr r4, _080FEE30
- movs r1, 0
- ldr r2, _080FEE34
-_080FEDA4:
- adds r0, r3, r4
- strb r1, [r0]
- cmp r3, 0xB
- bhi _080FEDB0
- adds r0, r3, r2
- strb r1, [r0]
-_080FEDB0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDA4
- movs r3, 0
- ldr r0, _080FEE38
- mov r10, r0
- ldr r1, _080FEE3C
- mov r9, r1
- ldr r2, _080FEE40
- mov r8, r2
-_080FEDC8:
- mov r1, r10
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FEE5A
- movs r1, 0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEE5A
- ldr r0, _080FEE38
- adds r0, r3
- mov r12, r0
- ldr r7, _080FEE30
-_080FEDEA:
- ldr r0, _080FEE44
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEE48
- movs r1, 0
- cmp r1, r6
- bcs _080FEE1E
- ldrb r0, [r7]
- cmp r0, r4
- beq _080FEE1E
- ldr r5, _080FEE30
- adds r2, r4, 0
-_080FEE0C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEE1E
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEE0C
-_080FEE1E:
- cmp r1, r6
- bne _080FEE48
- adds r0, r6, r7
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEE5A
- .align 2, 0
-_080FEE30: .4byte gUnknown_020388D6
-_080FEE34: .4byte gUnknown_020388E6
-_080FEE38: .4byte gSaveBlock1 + 0x1A1A
-_080FEE3C: .4byte gUnknown_08402E40
-_080FEE40: .4byte gUnknown_020388F6
-_080FEE44: .4byte gUnknown_020388D0
-_080FEE48:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEDEA
-_080FEE5A:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDC8
- movs r6, 0
- movs r3, 0
- ldr r0, _080FEEE4
- mov r8, r0
-_080FEE6C:
- ldr r0, _080FEEE8
- ldr r1, _080FEEEC
- adds r0, r1
- adds r2, r3, r0
- ldrb r0, [r2]
- adds r7, r3, 0x1
- cmp r0, 0
- beq _080FEF0E
- movs r1, 0
- ldr r0, _080FEEF0
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEF0E
- adds r5, r2, 0
-_080FEE8E:
- ldr r0, _080FEEF4
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- ldrb r2, [r5]
- cmp r0, r2
- bne _080FEEFC
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80FED64
- lsls r0, 24
- cmp r0, 0
- bne _080FEEFC
- movs r1, 0
- cmp r1, r6
- bcs _080FEED0
- ldr r2, _080FEEF8
- ldrb r0, [r2]
- cmp r0, r4
- beq _080FEED0
- adds r3, r2, 0
- adds r2, r4, 0
-_080FEEBE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEED0
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEEBE
-_080FEED0:
- cmp r1, r6
- bne _080FEEFC
- ldr r0, _080FEEF8
- adds r0, r6, r0
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEF0E
- .align 2, 0
-_080FEEE4: .4byte gUnknown_08402E40
-_080FEEE8: .4byte gSaveBlock1
-_080FEEEC: .4byte 0x00002688
-_080FEEF0: .4byte gUnknown_020388F6
-_080FEEF4: .4byte gUnknown_020388D0
-_080FEEF8: .4byte gUnknown_020388E6
-_080FEEFC:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- ldr r0, _080FEF24
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEE8E
-_080FEF0E:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bls _080FEE6C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF24: .4byte gUnknown_020388F6
- thumb_func_end sub_80FED90
-
- thumb_func_start sub_80FEF28
-sub_80FEF28: @ 80FEF28
- push {lr}
- ldr r0, _080FEF38
- ldrb r1, [r0]
- cmp r1, 0x7
- bhi _080FEF40
- ldr r0, _080FEF3C
- strb r1, [r0]
- b _080FEF46
- .align 2, 0
-_080FEF38: .4byte gUnknown_020388D5
-_080FEF3C: .4byte gUnknown_020388F3
-_080FEF40:
- ldr r1, _080FEF4C
- movs r0, 0x7
- strb r0, [r1]
-_080FEF46:
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF4C: .4byte gUnknown_020388F3
- thumb_func_end sub_80FEF28
-
- thumb_func_start sub_80FEF50
-sub_80FEF50: @ 80FEF50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FED90
- bl sub_80FEF28
- ldr r0, _080FEF6C
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FEF70
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF6C: .4byte gUnknown_020388F2
-_080FEF70: .4byte gUnknown_020388F4
- thumb_func_end sub_80FEF50
-
- thumb_func_start sub_80FEF74
-sub_80FEF74: @ 80FEF74
- push {lr}
- ldr r0, _080FEFA0
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080FEFA0: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEF74
-
- thumb_func_start sub_80FEFA4
-sub_80FEFA4: @ 80FEFA4
- push {r4,lr}
- movs r2, 0
- ldr r0, _080FEFD0
- ldrb r0, [r0]
- ldr r1, _080FEFD4
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r0, 0x1
- ldr r4, _080FEFD8
- ldr r3, _080FEFDC
-_080FEFB8:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, r1
- beq _080FEFCC
- cmp r2, 0xB
- bhi _080FEFE0
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080FEFE0
-_080FEFCC:
- movs r0, 0
- b _080FEFEC
- .align 2, 0
-_080FEFD0: .4byte gUnknown_020388F4
-_080FEFD4: .4byte gUnknown_020388F2
-_080FEFD8: .4byte gUnknown_020388D6
-_080FEFDC: .4byte gUnknown_020388E6
-_080FEFE0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080FEFB8
- movs r0, 0x1
-_080FEFEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FEFA4
-
- thumb_func_start sub_80FEFF4
-sub_80FEFF4: @ 80FEFF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FF028
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080FF00E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FF020
-_080FF00E:
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r0, _080FF02C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080FF030
- str r0, [r1]
-_080FF020:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF028: .4byte gMain
-_080FF02C: .4byte gTasks
-_080FF030: .4byte sub_80FE868
- thumb_func_end sub_80FEFF4
-
- thumb_func_start sub_80FF034
-sub_80FF034: @ 80FF034
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE5AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF034
-
- thumb_func_start sub_80FF058
-sub_80FF058: @ 80FF058
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FF08C
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl BuyMenuFreeMemory
- ldr r1, _080FF090
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FF094
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF08C: .4byte gUnknown_020388F7
-_080FF090: .4byte gTasks
-_080FF094: .4byte sub_80FF034
- thumb_func_end sub_80FF058
-
- thumb_func_start sub_80FF098
-sub_80FF098: @ 80FF098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080FF0D4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r3, _080FF0D8
- ldrb r2, [r3]
- adds r0, r2, 0x7
- ldrb r1, [r1]
- cmp r0, r1
- ble _080FF0BA
- cmp r2, 0
- beq _080FF0BA
- subs r0, r2, 0x1
- strb r0, [r3]
-_080FF0BA:
- ldr r0, _080FF0DC
- ldrb r0, [r0]
- bl sub_8134104
- adds r0, r4, 0
- bl sub_80FED90
- bl sub_80FEF28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF0D4: .4byte gUnknown_020388D5
-_080FF0D8: .4byte gUnknown_020388F4
-_080FF0DC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF098
-
- thumb_func_start sub_80FF0E0
-sub_80FF0E0: @ 80FF0E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF10C
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r4, r2, r3
- ldr r1, _080FF110
- ldrh r0, [r1]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x10]
- adds r3, 0x8
- adds r2, r3
- adds r1, r2, 0x2
- adds r0, r2, 0
- bl PlayerGetDestCoords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF10C: .4byte gTasks
-_080FF110: .4byte gSaveBlock1
- thumb_func_end sub_80FF0E0
-
- thumb_func_start sub_80FF114
-sub_80FF114: @ 80FF114
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl DrawWholeMapView
- ldr r1, _080FF158
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r3, _080FF15C
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r3
- movs r3, 0xE
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x10]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl warp1_set
- bl warp_in
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF158: .4byte gSaveBlock1
-_080FF15C: .4byte gTasks
- thumb_func_end sub_80FF114
-
- thumb_func_start sub_80FF160
-sub_80FF160: @ 80FF160
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _080FF188
- ldr r1, _080FF180
- ldr r2, _080FF184
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF1A2
- .align 2, 0
-_080FF180: .4byte gSecretBaseText_NoDecors
-_080FF184: .4byte sub_80FE428
-_080FF188:
- ldr r1, _080FF1A8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x1E]
- ldr r0, _080FF1AC
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_080FF1A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF1A8: .4byte gTasks
-_080FF1AC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF160
-
- thumb_func_start sub_80FF1B0
-sub_80FF1B0: @ 80FF1B0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080FF1D0
- cmp r2, 0x22
- beq _080FF1D8
- cmp r2, 0x26
- bne _080FF1E2
- ldr r0, _080FF1D4
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
- b _080FF1E2
- .align 2, 0
-_080FF1D0: .4byte 0x0000ffff
-_080FF1D4: .4byte gUnknown_083EC97C
-_080FF1D8:
- ldr r0, _080FF1E8
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
-_080FF1E2:
- pop {r1}
- bx r1
- .align 2, 0
-_080FF1E8: .4byte gUnknown_083EC984
- thumb_func_end sub_80FF1B0
-
- thumb_func_start sub_80FF1EC
-sub_80FF1EC: @ 80FF1EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, [sp, 0x54]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- movs r2, 0
- lsls r0, r3, 16
- cmp r2, r3
- bcc _080FF222
- b _080FF384
-_080FF222:
- ldr r1, [sp, 0x8]
- str r1, [sp, 0x28]
- str r0, [sp, 0x2C]
-_080FF228:
- ldr r3, [sp, 0x4]
- ldr r4, [sp, 0xC]
- subs r1, r3, r4
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, 0x1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r10, r0
- adds r1, r2, 0x1
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x28]
- cmp r10, r3
- bcc _080FF24C
- b _080FF374
-_080FF24C:
- ldr r4, [sp, 0x10]
- lsls r4, 5
- str r4, [sp, 0x18]
- ldr r0, _080FF2B4
- adds r0, r4, r0
- str r0, [sp, 0x1C]
- ldr r0, _080FF2B8
- adds r0, r4, r0
- str r0, [sp, 0x24]
- ldr r3, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r3
- str r1, [sp, 0x20]
-_080FF266:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, [sp, 0x20]
- add r1, r10
- ldr r4, [sp, 0x1C]
- ldr r0, [r4]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- lsls r4, r0, 16
- lsls r0, r4, 8
- lsrs r0, 24
- bl sub_8057288
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FF2AC
- ldr r3, [sp, 0x24]
- ldrb r0, [r3, 0x11]
- cmp r0, 0x1
- beq _080FF2BC
- lsrs r0, r4, 28
- cmp r0, 0
- beq _080FF2BC
-_080FF2AC:
- movs r4, 0xC0
- lsls r4, 4
- mov r8, r4
- b _080FF2C0
- .align 2, 0
-_080FF2B4: .4byte gDecorations + 0x1C
-_080FF2B8: .4byte gDecorations
-_080FF2BC:
- movs r0, 0
- mov r8, r0
-_080FF2C0:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1, 0x11]
- lsls r7, r5, 16
- ldr r2, [sp, 0x14]
- lsls r2, 16
- mov r9, r2
- cmp r0, 0x3
- beq _080FF2EA
- asrs r0, r7, 16
- asrs r1, r2, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1
- cmp r0, 0x1
- beq _080FF2EC
-_080FF2EA:
- movs r6, 0
-_080FF2EC:
- ldr r3, [sp, 0x18]
- ldr r4, _080FF334
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r4, [sp, 0x20]
- add r4, r10
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_80FF1B0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080FF338
- cmp r5, r0
- beq _080FF33C
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- orrs r3, r5
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileEntryAt
- b _080FF362
- .align 2, 0
-_080FF334: .4byte gDecorations
-_080FF338: .4byte 0x0000ffff
-_080FF33C:
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
-_080FF362:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r4, [sp, 0x28]
- cmp r10, r4
- bcs _080FF374
- b _080FF266
-_080FF374:
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- cmp r2, r0
- bcs _080FF384
- b _080FF228
-_080FF384:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF1EC
-
- thumb_func_start sub_80FF394
-sub_80FF394: @ 80FF394
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _080FF3BC
- lsls r0, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bhi _080FF46C
- lsls r0, 2
- ldr r1, _080FF3C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF3BC: .4byte gDecorations
-_080FF3C0: .4byte _080FF3C4
- .align 2, 0
-_080FF3C4:
- .4byte _080FF3EC
- .4byte _080FF3F6
- .4byte _080FF400
- .4byte _080FF410
- .4byte _080FF41A
- .4byte _080FF424
- .4byte _080FF434
- .4byte _080FF43E
- .4byte _080FF44E
- .4byte _080FF45E
-_080FF3EC:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF408
-_080FF3F6:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF408
-_080FF400:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF408:
- movs r3, 0x1
- bl sub_80FF1EC
- b _080FF46C
-_080FF410:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x4
- b _080FF42C
-_080FF41A:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF42C
-_080FF424:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
-_080FF42C:
- movs r3, 0x2
- bl sub_80FF1EC
- b _080FF46C
-_080FF434:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF456
-_080FF43E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80FF1EC
- b _080FF46C
-_080FF44E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF456:
- movs r3, 0x3
- bl sub_80FF1EC
- b _080FF46C
-_080FF45E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80FF1EC
-_080FF46C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF394
-
- thumb_func_start sub_80FF474
-sub_80FF474: @ 80FF474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r0, _080FF54C
- mov r8, r0
- ldr r1, _080FF550
- mov r9, r1
- ldr r2, _080FF554
- mov r10, r2
- ldr r7, _080FF558
-_080FF490:
- adds r5, r6, 0
- adds r5, 0xAE
- adds r4, r5, 0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF570
- adds r0, r4, 0
- bl FlagReset
- movs r2, 0
- mov r4, r8
- ldr r0, [r4, 0x4]
- ldrb r6, [r0]
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r0, 0x4]
- ldrh r0, [r0, 0x14]
- cmp r0, r5
- beq _080FF4E0
- ldr r0, _080FF54C
- ldr r3, [r0, 0x4]
- ldrb r6, [r3]
- adds r4, r5, 0
-_080FF4C6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r3, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _080FF4C6
-_080FF4E0:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r2, 1
- adds r4, r2
- lsls r4, 3
- adds r1, r4, r1
- ldr r2, _080FF55C
- adds r0, r2, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080FF560
- ldr r1, [r1]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- mov r6, r9
- strh r0, [r6]
- ldr r1, _080FF564
- ldrh r1, [r1]
- mov r2, r10
- strh r1, [r2]
- ldr r1, _080FF568
- ldrh r1, [r1]
- ldr r4, _080FF56C
- strh r1, [r4]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl show_sprite
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- mov r5, r10
- movs r6, 0
- ldrsh r3, [r5, r6]
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- bl sub_805C0F8
- mov r6, r9
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl sub_805C78C
- b _080FF57A
- .align 2, 0
-_080FF54C: .4byte gMapHeader
-_080FF550: .4byte gUnknown_0202E8CE
-_080FF554: .4byte gUnknown_0202E8D0
-_080FF558: .4byte gSaveBlock1
-_080FF55C: .4byte 0x00003f20
-_080FF560: .4byte gUnknown_02038900
-_080FF564: .4byte gUnknown_020391A4
-_080FF568: .4byte gUnknown_020391A6
-_080FF56C: .4byte gUnknown_0202E8D2
-_080FF570:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xD
- bls _080FF490
-_080FF57A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF474
-
- thumb_func_start sub_80FF58C
-sub_80FF58C: @ 80FF58C
- push {lr}
- movs r1, 0
- ldr r0, _080FF5A8
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _080FF5B6
- ldr r3, [r0]
-_080FF59A:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FF5AC
- movs r0, 0x1
- b _080FF5B8
- .align 2, 0
-_080FF5A8: .4byte 0x0201f000
-_080FF5AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080FF59A
-_080FF5B6:
- movs r0, 0
-_080FF5B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80FF58C
-
- thumb_func_start sub_80FF5BC
-sub_80FF5BC: @ 80FF5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080FF5E4
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FF5F0
- ldr r0, _080FF5E8
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FF5F0
- cmp r0, 0x7
- beq _080FF5F0
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF5EC
- b _080FF66E
- .align 2, 0
-_080FF5E4: .4byte 0x0201f000
-_080FF5E8: .4byte gUnknown_020388F6
-_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
-_080FF5F0:
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF688
- bl sub_80FF58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF62C
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _080FF624
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _080FF628
- str r1, [r0]
- b _080FF69C
- .align 2, 0
-_080FF624: .4byte gTasks
-_080FF628: .4byte sub_80FF6AC
-_080FF62C:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r0, _080FF654
- ldr r4, _080FF658
- ldrb r1, [r4, 0x8]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080FF664
- ldr r0, _080FF65C
- ldr r1, _080FF660
- bl StringExpandPlaceholders
- b _080FF66C
- .align 2, 0
-_080FF654: .4byte gStringVar1
-_080FF658: .4byte 0x0201f000
-_080FF65C: .4byte gStringVar4
-_080FF660: .4byte gSecretBaseText_NoMoreDecor
-_080FF664:
- ldr r0, _080FF67C
- ldr r1, _080FF680
- bl StringExpandPlaceholders
-_080FF66C:
- ldr r1, _080FF67C
-_080FF66E:
- ldr r2, _080FF684
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF69C
- .align 2, 0
-_080FF67C: .4byte gStringVar4
-_080FF680: .4byte gSecretBaseText_NoMoreDecor2
-_080FF684: .4byte sub_80FEFF4
-_080FF688:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF6A4
- ldr r2, _080FF6A8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080FF69C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF6A4: .4byte gSecretBaseText_InUseAlready
-_080FF6A8: .4byte sub_80FEFF4
- thumb_func_end sub_80FF5BC
-
- thumb_func_start sub_80FF6AC
-sub_80FF6AC: @ 80FF6AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080FF6D0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- beq _080FF714
- cmp r0, 0x1
- bgt _080FF6D4
- cmp r0, 0
- beq _080FF6DA
- b _080FF77A
- .align 2, 0
-_080FF6D0: .4byte gTasks
-_080FF6D4:
- cmp r0, 0x2
- beq _080FF764
- b _080FF77A
-_080FF6DA:
- ldr r0, _080FF70C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080FF77A
- adds r0, r6, 0
- bl sub_80FF0E0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r0, _080FF710
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- movs r0, 0x1
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF70C: .4byte gPaletteFade
-_080FF710: .4byte gUnknown_020388F7
-_080FF714:
- ldr r4, _080FF754
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- ldr r5, _080FF758
- ldr r0, _080FF75C
- ldrb r1, [r0]
- ldr r0, _080FF760
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl AddDecorationIconObjectFromFieldObject
- adds r0, r6, 0
- bl sub_80FF960
- adds r0, r6, 0
- adds r1, r5, 0
- bl SetUpPlacingDecorationPlayerAvatar
- bl pal_fill_black
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF754: .4byte gPaletteFade
-_080FF758: .4byte gUnknown_02038900
-_080FF75C: .4byte gUnknown_020388F5
-_080FF760: .4byte gUnknown_020388D0
-_080FF764:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF77A
- movs r0, 0
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- bl sub_810065C
-_080FF77A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF6AC
-
- thumb_func_start AddDecorationIconObjectFromFieldObject
-AddDecorationIconObjectFromFieldObject: @ 80FF780
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_80FEF74
- bl sub_80FED1C
- adds r0, r5, 0
- bl sub_81006D0
- lsls r4, 5
- ldr r0, _080FF810
- adds r4, r0
- str r4, [r5]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _080FF834
- adds r0, r5, 0
- bl sub_81008BC
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl sub_8100930
- adds r0, r5, 0
- bl sub_8100874
- ldr r1, _080FF814
- adds r0, r5, r1
- ldr r1, _080FF818
- ldr r1, [r1]
- ldr r2, [r1, 0x14]
- ldr r1, [r5]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- ldr r2, [r2, 0xC]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1, 0xE]
- lsrs r1, 12
- bl sub_810070C
- ldr r0, _080FF81C
- bl LoadSpritePalette
- ldr r3, _080FF820
- ldr r2, _080FF824
- ldr r4, _080FF828
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- ldr r0, _080FF82C
- ldr r3, _080FF830
- ldr r1, [r5]
- ldrb r2, [r1, 0x12]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- b _080FF87E
- .align 2, 0
-_080FF810: .4byte gDecorations
-_080FF814: .4byte 0x00000884
-_080FF818: .4byte gMapHeader
-_080FF81C: .4byte gUnknown_083EC954
-_080FF820: .4byte gUnknown_020391A8
-_080FF824: .4byte gSprites
-_080FF828: .4byte gUnknown_03004880
-_080FF82C: .4byte gSpriteTemplate_83EC93C
-_080FF830: .4byte gUnknown_083EC900
-_080FF834:
- ldr r2, _080FF888
- ldr r6, _080FF88C
- ldr r5, _080FF890
- ldr r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0, 0x2E]
- strb r0, [r2]
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, _080FF894
- ldr r2, _080FF898
- ldrb r3, [r4, 0x12]
- lsls r3, 2
- adds r3, r2
- ldrb r2, [r3, 0x2]
- ldrb r3, [r3, 0x3]
- movs r4, 0x1
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080FF87E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF888: .4byte gUnknown_020391A8
-_080FF88C: .4byte gSprites
-_080FF890: .4byte gUnknown_03004880
-_080FF894: .4byte sub_81009A8
-_080FF898: .4byte gUnknown_083EC900
- thumb_func_end AddDecorationIconObjectFromFieldObject
-
- thumb_func_start SetUpPlacingDecorationPlayerAvatar
-SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF8F0
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x12]
- ldr r3, _080FF8F4
- ldr r0, [r1]
- ldrb r4, [r0, 0x12]
- lsls r1, r4, 2
- adds r1, r3
- lsls r0, r2, 4
- ldrb r1, [r1, 0x2]
- adds r0, r1
- subs r2, 0x1
- lsls r2, 3
- subs r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0x2
- beq _080FF8D6
- cmp r4, 0x8
- beq _080FF8D6
- cmp r4, 0x9
- bne _080FF8DE
-_080FF8D6:
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
-_080FF8DE:
- ldr r0, _080FF8F8
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080FF900
- ldr r1, _080FF8FC
- str r0, [sp]
- movs r0, 0xC1
- b _080FF908
- .align 2, 0
-_080FF8F0: .4byte gTasks
-_080FF8F4: .4byte gUnknown_083EC900
-_080FF8F8: .4byte gSaveBlock2
-_080FF8FC: .4byte SpriteCallbackDummy
-_080FF900:
- ldr r1, _080FF94C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_080FF908:
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _080FF950
- strb r0, [r1]
- ldr r3, _080FF954
- ldr r0, _080FF950
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r4, _080FF958
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl DestroySprite
- ldr r0, _080FF95C
- ldr r0, [r0, 0x4]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF94C: .4byte SpriteCallbackDummy
-_080FF950: .4byte gUnknown_020391A9
-_080FF954: .4byte gSprites
-_080FF958: .4byte gUnknown_020391A8
-_080FF95C: .4byte gUnknown_03004880
- thumb_func_end SetUpPlacingDecorationPlayerAvatar
-
- thumb_func_start sub_80FF960
-sub_80FF960: @ 80FF960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080FF98C
- ldr r0, _080FF990
- ldrb r1, [r0]
- ldr r0, _080FF994
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r2
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bls _080FF980
- b _080FFAA6
-_080FF980:
- lsls r0, 2
- ldr r1, _080FF998
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF98C: .4byte gDecorations
-_080FF990: .4byte gUnknown_020388F5
-_080FF994: .4byte gUnknown_020388D0
-_080FF998: .4byte _080FF99C
- .align 2, 0
-_080FF99C:
- .4byte _080FF9C4
- .4byte _080FF9D8
- .4byte _080FF9F0
- .4byte _080FFA08
- .4byte _080FFA1C
- .4byte _080FFA30
- .4byte _080FFA44
- .4byte _080FFA64
- .4byte _080FFA7C
- .4byte _080FFA94
-_080FF9C4:
- ldr r0, _080FF9D4
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _080FFA88
- .align 2, 0
-_080FF9D4: .4byte gTasks
-_080FF9D8:
- ldr r1, _080FF9EC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FF9EC: .4byte gTasks
-_080FF9F0:
- ldr r1, _080FFA04
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FFA04: .4byte gTasks
-_080FFA08:
- ldr r1, _080FFA18
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- b _080FFAA0
- .align 2, 0
-_080FFA18: .4byte gTasks
-_080FFA1C:
- ldr r0, _080FFA2C
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- b _080FFA88
- .align 2, 0
-_080FFA2C: .4byte gTasks
-_080FFA30:
- ldr r1, _080FFA40
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- b _080FFAA0
- .align 2, 0
-_080FFA40: .4byte gTasks
-_080FFA44:
- ldr r0, _080FFA60
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x12]
- movs r0, 0x3
- strh r0, [r1, 0x14]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _080FFAA6
- .align 2, 0
-_080FFA60: .4byte gTasks
-_080FFA64:
- ldr r1, _080FFA78
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x4
- b _080FFAA4
- .align 2, 0
-_080FFA78: .4byte gTasks
-_080FFA7C:
- ldr r0, _080FFA90
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
-_080FFA88:
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- b _080FFAA6
- .align 2, 0
-_080FFA90: .4byte gTasks
-_080FFA94:
- ldr r1, _080FFAAC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
-_080FFAA0:
- strh r1, [r0, 0x12]
- movs r1, 0x2
-_080FFAA4:
- strh r1, [r0, 0x14]
-_080FFAA6:
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAAC: .4byte gTasks
- thumb_func_end sub_80FF960
-
- thumb_func_start sub_80FFAB0
-sub_80FFAB0: @ 80FFAB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFAF8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFAFC
- ldr r0, _080FFB00
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB04
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8100038
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAF8: .4byte gTasks
-_080FFAFC: .4byte gSprites
-_080FFB00: .4byte gUnknown_020391A8
-_080FFB04: .4byte gUnknown_020391A9
- thumb_func_end sub_80FFAB0
-
- thumb_func_start sub_80FFB08
-sub_80FFB08: @ 80FFB08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFB54
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFB58
- ldr r0, _080FFB5C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB60
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- ldr r1, _080FFB64
- ldr r2, _080FFB68
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFB54: .4byte gTasks
-_080FFB58: .4byte gSprites
-_080FFB5C: .4byte gUnknown_020391A8
-_080FFB60: .4byte gUnknown_020391A9
-_080FFB64: .4byte gSecretBaseText_CancelDecorating
-_080FFB68: .4byte sub_8100248
- thumb_func_end sub_80FFB08
-
- thumb_func_start sub_80FFB6C
-sub_80FFB6C: @ 80FFB6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FFB86
- cmp r4, 0
- beq _080FFB8A
-_080FFB86:
- movs r0, 0
- b _080FFB8C
-_080FFB8A:
- movs r0, 0x1
-_080FFB8C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB6C
-
- thumb_func_start sub_80FFB94
-sub_80FFB94: @ 80FFB94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r1, 16
- asrs r1, 16
- ldr r3, _080FFBD0
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- lsls r1, r4, 16
- asrs r1, 16
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- cmp r5, 0
- beq _080FFBD4
- movs r0, 0
- b _080FFBD6
- .align 2, 0
-_080FFBD0: .4byte gTasks
-_080FFBD4:
- movs r0, 0x1
-_080FFBD6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB94
-
- thumb_func_start sub_80FFBDC
-sub_80FFBDC: @ 80FFBDC
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC1C
- ldrb r0, [r5]
- cmp r0, 0x21
- bne _080FFC0A
- adds r0, r4, 0
- bl sub_8057300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC18
-_080FFC0A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- beq _080FFC1C
-_080FFC18:
- movs r0, 0x1
- b _080FFC1E
-_080FFC1C:
- movs r0, 0
-_080FFC1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFBDC
-
- thumb_func_start sub_80FFC24
-sub_80FFC24: @ 80FFC24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080FFC60
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- str r0, [sp, 0x8]
- ldr r3, [sp]
- ldrb r0, [r3, 0x11]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080FFC56
- b _08100024
-_080FFC56:
- lsls r0, 2
- ldr r1, _080FFC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FFC60: .4byte gTasks
-_080FFC64: .4byte _080FFC68
- .align 2, 0
-_080FFC68:
- .4byte _080FFC7C
- .4byte _080FFC7C
- .4byte _080FFD68
- .4byte _080FFF1C
- .4byte _080FFFA0
-_080FFC7C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFC86
- b _08100024
-_080FFC86:
- mov r1, r10
- lsls r1, 2
- str r1, [sp, 0x1C]
-_080FFC8C:
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- ldr r3, _080FFD64
- adds r0, r3
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _080FFD56
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0xC]
- asrs r1, 16
- mov r9, r1
-_080FFCB8:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r2, _080FFD64
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r9
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- ldr r1, [sp]
- bl sub_80FFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080FFD1A
- b _080FFFF4
-_080FFD1A:
- mov r0, r10
- adds r1, r6, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFD2E
- b _080FFFF4
-_080FFD2E:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0xC]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFD4A
- cmp r4, 0x10
- beq _080FFD4A
- b _080FFFF4
-_080FFD4A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFCB8
-_080FFD56:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r2
- bcc _080FFC8C
- b _08100024
- .align 2, 0
-_080FFD64: .4byte gTasks
-_080FFD68:
- movs r6, 0
- mov r3, r10
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x18]
- cmp r6, r0
- bge _080FFE54
- adds r0, r3, 0
- add r0, r10
- lsls r0, 3
- str r0, [sp, 0x10]
-_080FFD82:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFE48
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFDA0:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FFB6C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- b _080FFFF4
-_080FFE0C:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFE22
- b _080FFFF4
-_080FFE22:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080FFE3A
- b _080FFFF4
-_080FFE3A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080FFF18
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFDA0
-_080FFE48:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- cmp r6, r3
- blt _080FFD82
-_080FFE54:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- ldr r1, [sp, 0x4]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE74
- b _08100024
-_080FFE74:
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFE78:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r1, _080FFF18
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, r7, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- adds r0, r4, 0
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- b _080FFFF4
-_080FFEDA:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFEF0
- b _080FFFF4
-_080FFEF0:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFF0A
- cmp r4, 0x10
- bne _080FFFF4
-_080FFF0A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE78
- b _08100024
- .align 2, 0
-_080FFF18: .4byte gTasks
-_080FFF1C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
-_080FFF26:
- mov r1, r10
- lsls r0, r1, 2
- add r0, r10
- lsls r1, r0, 3
- ldr r2, _080FFF9C
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFF8C
- adds r0, r2, 0
- adds r1, r0
- mov r8, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r5, r0, 16
-_080FFF50:
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, r7
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- beq _080FFFF4
- adds r0, r4, 0
- adds r1, r5, 0x1
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- beq _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFF50
-_080FFF8C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
- .align 2, 0
-_080FFF9C: .4byte gTasks
-_080FFFA0:
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- mov r9, r0
- movs r7, 0
- str r1, [sp, 0x1C]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _08100024
- adds r6, r2, 0
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x20]
-_080FFFC0:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldrb r0, [r3, 0x12]
- cmp r0, 0x5
- bne _080FFFF8
-_080FFFE8:
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- cmp r0, 0
- bne _08100004
-_080FFFF4:
- movs r0, 0
- b _08100026
-_080FFFF8:
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- cmp r0, 0
- beq _080FFFE8
-_08100004:
- adds r0, r5, 0
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFFC0
-_08100024:
- movs r0, 0x1
-_08100026:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFC24
-
- thumb_func_start sub_8100038
-sub_8100038: @ 8100038
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810006C
- ldrb r1, [r0]
- ldr r0, _08100070
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 5
- ldr r0, _08100074
- adds r1, r0
- adds r0, r4, 0
- bl sub_80FFC24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100080
- ldr r1, _08100078
- ldr r2, _0810007C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08100092
- .align 2, 0
-_0810006C: .4byte gUnknown_020388F5
-_08100070: .4byte gUnknown_020388D0
-_08100074: .4byte gDecorations
-_08100078: .4byte gSecretBaseText_PlaceItHere
-_0810007C: .4byte sub_81000A0
-_08100080:
- movs r0, 0x20
- bl PlaySE
- ldr r1, _08100098
- ldr r2, _0810009C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100092:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100098: .4byte gSecretBaseText_CantBePlacedHere
-_0810009C: .4byte sub_81006A8
- thumb_func_end sub_8100038
-
- thumb_func_start sub_81000A0
-sub_81000A0: @ 81000A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _081000C0
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081000C0: .4byte gUnknown_083EC95C
- thumb_func_end sub_81000A0
-
- thumb_func_start sub_81000C4
-sub_81000C4: @ 81000C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8100174
- ldr r2, _0810010C
- ldr r0, _08100110
- ldrb r1, [r0]
- ldr r0, _08100114
- ldr r0, [r0]
- adds r0, r1
- ldrb r3, [r0]
- lsls r0, r3, 5
- adds r0, r2
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _0810011C
- ldr r0, _08100118
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- ldrh r1, [r1, 0xA]
- adds r2, r3, 0
- bl sub_80FF394
- b _0810013C
- .align 2, 0
-_0810010C: .4byte gDecorations
-_08100110: .4byte gUnknown_020388F5
-_08100114: .4byte gUnknown_020388D0
-_08100118: .4byte gTasks
-_0810011C:
- ldr r2, _0810015C
- ldr r0, _08100160
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x7
- strh r0, [r2]
- ldr r2, _08100164
- ldrh r0, [r1, 0xA]
- subs r0, 0x7
- strh r0, [r2]
- ldr r0, _08100168
- bl ScriptContext1_SetupScript
-_0810013C:
- ldr r2, _0810016C
- ldr r0, _08100170
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x2
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810015C: .4byte gUnknown_020391A4
-_08100160: .4byte gTasks
-_08100164: .4byte gUnknown_020391A6
-_08100168: .4byte gUnknown_081A2F7B
-_0810016C: .4byte gSprites
-_08100170: .4byte gUnknown_020391A8
- thumb_func_end sub_81000C4
-
- thumb_func_start sub_8100174
-sub_8100174: @ 8100174
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- ldr r0, _081001B0
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r3, r1
- bcs _0810019A
- ldr r4, [r5]
-_08100188:
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _081001B8
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08100188
-_0810019A:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- bne _08100204
- movs r3, 0
- ldr r0, _081001B4
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _081001F0
- b _08100210
- .align 2, 0
-_081001B0: .4byte 0x0201f000
-_081001B4: .4byte gUnknown_020388D6
-_081001B8:
- ldr r0, _081001E4
- ldrb r1, [r0]
- ldr r0, _081001E8
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r5, 0x4]
- adds r2, r3
- ldr r0, _081001EC
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- subs r0, 0x7
- lsls r0, 4
- ldrb r1, [r1, 0xA]
- subs r1, 0x7
- adds r0, r1
- strb r0, [r2]
- b _0810019A
- .align 2, 0
-_081001E4: .4byte gUnknown_020388F5
-_081001E8: .4byte gUnknown_020388D0
-_081001EC: .4byte gTasks
-_081001F0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _081001F0
- b _08100236
-_08100204:
- movs r3, 0
- ldr r0, _0810021C
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08100224
-_08100210:
- ldr r0, _08100220
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r2]
- b _0810023E
- .align 2, 0
-_0810021C: .4byte gUnknown_020388E6
-_08100220: .4byte gUnknown_020388F5
-_08100224:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08100224
-_08100236:
- ldr r0, _08100244
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
-_0810023E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100244: .4byte gUnknown_020388F5
- thumb_func_end sub_8100174
-
- thumb_func_start sub_8100248
-sub_8100248: @ 8100248
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08100268
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100268: .4byte gUnknown_083EC964
- thumb_func_end sub_8100248
-
- thumb_func_start sub_810026C
-sub_810026C: @ 810026C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810026C
-
- thumb_func_start sub_810028C
-sub_810028C: @ 810028C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081002B4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081002B8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081002B4: .4byte gTasks
-_081002B8: .4byte c1_overworld_prev_quest
- thumb_func_end sub_810028C
-
- thumb_func_start c1_overworld_prev_quest
-c1_overworld_prev_quest: @ 81002BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081002DC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081002E0
- cmp r0, 0x1
- beq _08100300
- b _0810031C
- .align 2, 0
-_081002DC: .4byte gTasks
-_081002E0:
- bl ScriptContext2_Enable
- ldr r0, _081002FC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810031C
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _0810031C
- .align 2, 0
-_081002FC: .4byte gPaletteFade
-_08100300:
- bl sub_81016F4
- ldr r0, _08100324
- bl FreeSpritePaletteByTag
- ldr r1, _08100328
- ldr r0, _0810032C
- str r0, [r1]
- ldr r0, _08100330
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0810031C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100324: .4byte 0x00000bb8
-_08100328: .4byte gUnknown_0300485C
-_0810032C: .4byte sub_8100364
-_08100330: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end c1_overworld_prev_quest
-
- thumb_func_start sub_8100334
-sub_8100334: @ 8100334
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100354
- ldr r0, _0810035C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08100360
- str r0, [r1]
-_08100354:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810035C: .4byte gTasks
-_08100360: .4byte sub_80FE948
- thumb_func_end sub_8100334
-
- thumb_func_start sub_8100364
-sub_8100364: @ 8100364
- push {lr}
- bl ScriptContext2_Enable
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl pal_fill_black
- ldr r0, _08100388
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE7EC
- pop {r0}
- bx r0
- .align 2, 0
-_08100388: .4byte sub_8100334
- thumb_func_end sub_8100364
-
- thumb_func_start sub_810038C
-sub_810038C: @ 810038C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081003BC
- adds r2, r1, r0
- ldr r0, _081003C0
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081003C4
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- subs r0, r1
- subs r0, 0x6
- cmp r0, 0
- bge _081003C4
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- b _081003DE
- .align 2, 0
-_081003BC: .4byte gUnknown_03004B28
-_081003C0: .4byte gUnknown_020391AA
-_081003C4:
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _081003E8
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- subs r1, 0x7
- ldr r0, _081003E4
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- blt _081003E8
- ldrh r0, [r2, 0x2]
- subs r0, 0x1
-_081003DE:
- strh r0, [r2, 0x2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_081003E4: .4byte gMapHeader
-_081003E8:
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _081003FE
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, 0x7
- cmp r0, 0
- bge _081003FE
- ldrh r0, [r2]
- adds r0, 0x1
- b _0810041E
-_081003FE:
- ldrb r0, [r3]
- cmp r0, 0x4
- bne _08100428
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- adds r1, r0
- subs r1, 0x8
- ldr r0, _08100424
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r1, r0
- blt _08100428
- ldrh r0, [r2]
- subs r0, 0x1
-_0810041E:
- strh r0, [r2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_08100424: .4byte gMapHeader
-_08100428:
- movs r0, 0x1
-_0810042A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810038C
-
- thumb_func_start sub_8100430
-sub_8100430: @ 8100430
- push {lr}
- ldr r0, _08100450
- ldrh r0, [r0, 0x2C]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- beq _08100454
- cmp r1, 0x80
- beq _08100454
- cmp r1, 0x20
- beq _08100454
- cmp r1, 0x10
- beq _08100454
- movs r0, 0
- b _08100456
- .align 2, 0
-_08100450: .4byte gMain
-_08100454:
- movs r0, 0x1
-_08100456:
- pop {r1}
- bx r1
- thumb_func_end sub_8100430
-
- thumb_func_start sub_810045C
-sub_810045C: @ 810045C
- push {r4,lr}
- ldr r1, _08100488
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0810048C
- ldr r3, _08100490
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100488: .4byte gUnknown_020391AA
-_0810048C: .4byte gSprites
-_08100490: .4byte gUnknown_020391A8
- thumb_func_end sub_810045C
-
- thumb_func_start sub_8100494
-sub_8100494: @ 8100494
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _081004D0
- ldr r3, _081004D4
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x36
- ldrsh r6, [r0, r1]
- cmp r6, 0
- beq _081004B2
- b _081005DE
-_081004B2:
- ldr r1, _081004D8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _081004E0
- ldr r0, _081004DC
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- b _081004EE
- .align 2, 0
-_081004D0: .4byte gSprites
-_081004D4: .4byte gUnknown_020391A8
-_081004D8: .4byte gTasks
-_081004DC: .4byte gUnknown_083EC96C
-_081004E0:
- cmp r0, 0x2
- bne _08100500
- ldr r0, _081004FC
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- adds r0, 0x4
-_081004EE:
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- b _0810063C
- .align 2, 0
-_081004FC: .4byte gUnknown_083EC96C
-_08100500:
- ldr r7, _08100644
- ldrh r1, [r7, 0x2C]
- movs r0, 0xF0
- mov r12, r0
- ands r0, r1
- cmp r0, 0x40
- bne _08100534
- ldr r1, _08100648
- movs r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
-_08100534:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x80
- bne _08100564
- ldr r1, _08100648
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
-_08100564:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x20
- bne _08100594
- ldr r1, _08100648
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- subs r0, 0x1
- strh r0, [r2, 0x8]
-_08100594:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x10
- bne _081005C4
- ldr r1, _08100648
- movs r0, 0x4
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_081005C4:
- bl sub_8100430
- lsls r0, 24
- cmp r0, 0
- beq _081005DA
- adds r0, r4, 0
- bl sub_810038C
- lsls r0, 24
- cmp r0, 0
- bne _081005DE
-_081005DA:
- bl sub_810045C
-_081005DE:
- ldr r0, _08100648
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810060C
- ldr r3, _08100650
- ldr r2, _08100654
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x36]
- adds r1, 0x1
- strh r1, [r0, 0x36]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x36]
- movs r0, 0x7
- ands r0, r2
- strh r0, [r1, 0x36]
-_0810060C:
- ldr r0, _08100658
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0810063C
- ldr r4, _08100644
- ldrh r1, [r4, 0x2E]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810062E
- strh r3, [r2, 0x1C]
-_0810062E:
- ldrh r1, [r4, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810063C
- strh r3, [r2, 0x1C]
-_0810063C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100644: .4byte gMain
-_08100648: .4byte gUnknown_020391AA
-_0810064C: .4byte 0x0000fffe
-_08100650: .4byte gSprites
-_08100654: .4byte gUnknown_020391A8
-_08100658: .4byte gTasks
- thumb_func_end sub_8100494
-
- thumb_func_start sub_810065C
-sub_810065C: @ 810065C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08100698
- ldr r0, _0810069C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- strh r2, [r0, 0x3C]
- ldr r1, _081006A0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _081006A4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100698: .4byte gSprites
-_0810069C: .4byte gUnknown_020391A8
-_081006A0: .4byte gTasks
-_081006A4: .4byte sub_8100494
- thumb_func_end sub_810065C
-
- thumb_func_start sub_81006A8
-sub_81006A8: @ 81006A8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081006CC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081006C2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081006C8
-_081006C2:
- adds r0, r2, 0
- bl sub_810065C
-_081006C8:
- pop {r0}
- bx r0
- .align 2, 0
-_081006CC: .4byte gMain
- thumb_func_end sub_81006A8
-
- thumb_func_start sub_81006D0
-sub_81006D0: @ 81006D0
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x84
- movs r5, 0
- ldr r4, _08100708
-_081006DE:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _081006DE
- movs r1, 0
- adds r2, r3, 0x4
- movs r3, 0
-_081006F2:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081006F2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100708: .4byte 0x000007ff
- thumb_func_end sub_81006D0
-
- thumb_func_start sub_810070C
-sub_810070C: @ 810070C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- movs r2, 0
- ldr r0, _0810073C
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- lsrs r4, r1, 12
- ldr r3, [r0, 0x8]
-_0810071E:
- lsls r1, r2, 1
- adds r1, r5
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0810071E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810073C: .4byte gMapHeader
- thumb_func_end sub_810070C
-
- thumb_func_start sub_8100740
-sub_8100740: @ 8100740
- push {r4-r7,lr}
- sub sp, 0x20
- adds r7, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- lsrs r3, r1, 26
- cmp r2, 0
- beq _08100754
- ldr r0, _08100784
- ands r2, r0
-_08100754:
- movs r5, 0
- ldr r0, _08100788
- ldr r6, [r0]
- lsls r4, r2, 5
-_0810075C:
- mov r0, sp
- adds r2, r0, r5
- ldr r0, [r6, 0x10]
- ldr r0, [r0, 0x4]
- adds r1, r4, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810075C
- cmp r3, 0x1
- beq _081007AE
- cmp r3, 0x1
- bgt _0810078C
- cmp r3, 0
- beq _08100796
- b _0810086A
- .align 2, 0
-_08100784: .4byte 0x000003ff
-_08100788: .4byte gMapHeader
-_0810078C:
- cmp r3, 0x2
- beq _0810080E
- cmp r3, 0x3
- beq _08100846
- b _0810086A
-_08100796:
- movs r5, 0
-_08100798:
- adds r1, r7, r5
- mov r2, sp
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _08100798
- b _0810086A
-_081007AE:
- movs r5, 0
- movs r6, 0xF
-_081007B2:
- lsls r4, r5, 2
- adds r4, r7
- adds r5, 0x1
- lsls r3, r5, 2
- subs r0, r3, 0x1
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4]
- subs r0, r3, 0x2
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x1]
- subs r0, r3, 0x3
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x2]
- subs r3, 0x4
- mov r1, sp
- adds r0, r1, r3
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x3]
- lsls r5, 16
- lsrs r5, 16
- cmp r5, 0x7
- bls _081007B2
- b _0810086A
-_0810080E:
- movs r5, 0
- movs r3, 0x7
-_08100812:
- lsls r2, r5, 2
- adds r2, r7
- subs r1, r3, r5
- lsls r1, 2
- mov r4, sp
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r1, 0x1
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- adds r0, r1, 0x2
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- adds r1, 0x3
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08100812
- b _0810086A
-_08100846:
- movs r5, 0
- movs r4, 0x1F
- movs r6, 0xF
-_0810084C:
- adds r3, r7, r5
- subs r0, r4, r5
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810084C
-_0810086A:
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8100740
-
- thumb_func_start sub_8100874
-sub_8100874: @ 8100874
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0810087A:
- lsls r0, r4, 5
- adds r0, 0x84
- adds r0, r5, r0
- lsls r2, r4, 1
- adds r1, r5, 0x4
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8100740
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _0810087A
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100874
-
- thumb_func_start sub_810089C
-sub_810089C: @ 810089C
- lsls r0, 16
- ldr r1, _081008B4
- ldr r1, [r1]
- ldr r1, [r1, 0x14]
- ldr r1, [r1, 0xC]
- lsrs r0, 15
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _081008B8
- ands r0, r1
- bx lr
- .align 2, 0
-_081008B4: .4byte gMapHeader
-_081008B8: .4byte 0x00000fff
- thumb_func_end sub_810089C
-
- thumb_func_start sub_81008BC
-sub_81008BC: @ 81008BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- movs r6, 0
- ldr r1, _0810092C
- lsls r5, r0, 4
- adds r0, r5, r1
- ldrb r0, [r0, 0xC]
- cmp r6, r0
- bcs _08100920
- adds r7, r1, 0
-_081008D8:
- mov r4, r8
- ldm r4!, {r1}
- adds r0, r7, 0x4
- adds r0, r5, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- ldr r1, [r1, 0x1C]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r5, r1
- ldr r1, [r1]
- adds r1, r6
- lsls r0, 3
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_810089C
- adds r2, r5, r7
- ldr r1, [r2]
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0xC]
- cmp r6, r2
- bcc _081008D8
-_08100920:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810092C: .4byte gUnknown_083EC860
- thumb_func_end sub_81008BC
-
- thumb_func_start sub_8100930
-sub_8100930: @ 8100930
- push {r4,r5,lr}
- lsls r0, 24
- ldr r3, _08100998
- movs r1, 0
- strb r1, [r3]
- ldrb r2, [r3, 0x1]
- subs r1, 0x4
- ands r1, r2
- movs r4, 0xD
- negs r4, r4
- ands r1, r4
- movs r2, 0x11
- negs r2, r2
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r3, 0x1]
- ldr r1, _0810099C
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x3F
- lsls r1, 6
- strb r1, [r3, 0x1]
- ldrh r2, [r3, 0x2]
- ldr r1, _081009A0
- ands r1, r2
- strh r1, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x3]
- ldrb r0, [r0, 0x1]
- lsls r0, 6
- ands r5, r1
- orrs r5, r0
- strb r5, [r3, 0x3]
- ldrh r1, [r3, 0x4]
- ldr r0, _081009A4
- ands r0, r1
- strh r0, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- ands r4, r0
- movs r0, 0x4
- orrs r4, r0
- movs r0, 0xF
- ands r4, r0
- strb r4, [r3, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100998: .4byte gUnknown_020391AC
-_0810099C: .4byte gUnknown_083EC900
-_081009A0: .4byte 0xfffffe00
-_081009A4: .4byte 0xfffffc00
- thumb_func_end sub_8100930
-
- thumb_func_start sub_81009A8
-sub_81009A8: @ 81009A8
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- ldr r1, _081009BC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_081009BC: .4byte sub_81009C0
- thumb_func_end sub_81009A8
-
- thumb_func_start sub_81009C0
-sub_81009C0: @ 81009C0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081009FA
- movs r1, 0x3A
- ldrsh r0, [r2, r1]
- cmp r0, 0xE
- bgt _081009E2
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _081009EC
-_081009E2:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
-_081009EC:
- strb r0, [r3]
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x3A]
- b _08100A06
-_081009FA:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08100A06:
- pop {r0}
- bx r0
- thumb_func_end sub_81009C0
-
- thumb_func_start sub_8100A0C
-sub_8100A0C: @ 8100A0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8100D38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100A44
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08100A3C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08100A40
- str r1, [r0]
- b _08100A50
- .align 2, 0
-_08100A3C: .4byte gTasks
-_08100A40: .4byte sub_8100E70
-_08100A44:
- ldr r1, _08100A58
- ldr r2, _08100A5C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100A50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100A58: .4byte gSecretBaseText_NoDecorInUse
-_08100A5C: .4byte sub_80FE428
- thumb_func_end sub_8100A0C
-
- thumb_func_start sub_8100A60
-sub_8100A60: @ 8100A60
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08100A78
- ldr r1, [r3]
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3, 0x4]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08100A78: .4byte 0x0201f000
- thumb_func_end sub_8100A60
-
- thumb_func_start sub_8100A7C
-sub_8100A7C: @ 8100A7C
- push {r4-r6,lr}
- ldr r6, _08100A9C
- movs r0, 0
- strh r0, [r6]
- ldr r2, _08100AA0
- strh r0, [r2]
- ldr r4, _08100AA4
- ldr r1, _08100AA8
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08100AB8
- movs r0, 0x1
- strh r0, [r2]
- b _08100B0A
- .align 2, 0
-_08100A9C: .4byte gUnknown_0202E8CE
-_08100AA0: .4byte gScriptResult
-_08100AA4: .4byte gUnknown_0202E8CC
-_08100AA8: .4byte gUnknown_02039234
-_08100AAC:
- ldr r1, _08100AB4
- ldrb r0, [r2]
- strh r0, [r1]
- b _08100B0A
- .align 2, 0
-_08100AB4: .4byte gUnknown_0202E8D0
-_08100AB8:
- ldr r3, _08100B10
- ldr r2, _08100B14
- ldr r1, _08100B18
- ldrh r0, [r4]
- lsls r0, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- bne _08100B0A
- ldrh r0, [r4, 0x4]
- strh r0, [r6]
- ldrb r0, [r4]
- bl sub_8100A60
- movs r1, 0
- ldr r0, _08100B1C
- ldr r0, [r0, 0x4]
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08100B0A
- ldr r5, [r0, 0x4]
- ldrh r4, [r6]
- adds r3, r2, 0
-_08100AF2:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r5
- ldrh r0, [r2, 0x14]
- cmp r0, r4
- beq _08100AAC
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bcc _08100AF2
-_08100B0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100B10: .4byte gDecorations
-_08100B14: .4byte 0x0201f000
-_08100B18: .4byte gUnknown_020391B4
-_08100B1C: .4byte gMapHeader
- thumb_func_end sub_8100A7C
-
- thumb_func_start sub_8100B20
-sub_8100B20: @ 8100B20
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _08100B4C
- ldr r0, [r0, 0x4]
- ldrb r1, [r0]
- cmp r2, r1
- bcs _08100B64
- adds r3, r0, 0
- ldr r5, [r3, 0x4]
- ldr r0, _08100B50
- ldrh r4, [r0]
- ldr r6, _08100B54
-_08100B38:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r5
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _08100B58
- ldrb r0, [r1]
- strh r0, [r6]
- b _08100B64
- .align 2, 0
-_08100B4C: .4byte gMapHeader
-_08100B50: .4byte gUnknown_0202E8CC
-_08100B54: .4byte gUnknown_0202E8CE
-_08100B58:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3]
- cmp r2, r0
- bcc _08100B38
-_08100B64:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8100B20
-
- thumb_func_start sub_8100B6C
-sub_8100B6C: @ 8100B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r7, 0
- b _08100C64
-_08100B7C:
- lsls r3, r7, 3
- ldr r0, _08100BE0
- adds r4, r3, r0
- ldrb r1, [r4]
- ldr r2, _08100BE4
- ldr r0, [r2]
- adds r0, r1
- ldrb r6, [r0]
- lsls r0, r6, 5
- ldr r5, _08100BE8
- adds r0, r5
- ldrb r2, [r0, 0x11]
- ldr r5, _08100BE4
- ldr r0, [r5, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r9, r1
- movs r5, 0xF
- mov r10, r5
- mov r1, r10
- ands r1, r0
- mov r10, r1
- adds r5, r3, 0
- adds r3, r7, 0x1
- str r3, [sp]
- cmp r2, 0x4
- beq _08100C5E
- cmp r6, 0x29
- bne _08100BD0
- mov r0, r9
- adds r0, 0x7
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _08100BD0
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
- strb r0, [r4, 0x2]
-_08100BD0:
- movs r6, 0
- ldr r1, _08100BE0
- adds r2, r5, 0
- adds r0, r5, r1
- adds r3, r7, 0x1
- str r3, [sp]
- b _08100C4E
- .align 2, 0
-_08100BE0: .4byte gUnknown_020391B4
-_08100BE4: .4byte 0x0201f000
-_08100BE8: .4byte gDecorations
-_08100BEC:
- movs r4, 0
- adds r0, r2, r1
- adds r7, r6, 0x1
- str r7, [sp, 0x4]
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- bcs _08100C42
- ldr r0, _08100C7C
- adds r0, r5
- mov r8, r0
- subs r1, r6, 0x7
- str r1, [sp, 0x8]
-_08100C04:
- adds r0, r4, 0x7
- add r0, r9
- ldr r1, _08100C80
- ldr r3, [r1]
- mov r7, r10
- subs r2, r7, r6
- ldr r1, [r3]
- muls r2, r1
- mov r7, r9
- adds r1, r7, r4
- adds r1, r2
- ldr r2, [r3, 0xC]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xC0
- lsls r3, 6
- adds r2, r3, 0
- orrs r2, r1
- mov r7, r10
- ldr r3, [sp, 0x8]
- subs r1, r7, r3
- bl MapGridSetMetatileEntryAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r7, r8
- ldrb r7, [r7, 0x1]
- cmp r4, r7
- bcc _08100C04
-_08100C42:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r1, _08100C7C
- adds r2, r5, 0
- adds r0, r5, r1
-_08100C4E:
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bcc _08100BEC
- ldr r2, _08100C7C
- adds r0, r5, r2
- ldrb r0, [r0]
- bl sub_8100A60
-_08100C5E:
- ldr r3, [sp]
- lsls r0, r3, 24
- lsrs r7, r0, 24
-_08100C64:
- ldr r0, _08100C84
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08100B7C
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100C7C: .4byte gUnknown_020391B4
-_08100C80: .4byte gMapHeader
-_08100C84: .4byte gUnknown_02039234
- thumb_func_end sub_8100B6C
-
- thumb_func_start sub_8100C88
-sub_8100C88: @ 8100C88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08100CAC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08100CC4
- cmp r0, 0x1
- bgt _08100CB0
- cmp r0, 0
- beq _08100CBA
- b _08100D24
- .align 2, 0
-_08100CAC: .4byte gTasks
-_08100CB0:
- cmp r0, 0x2
- beq _08100CF4
- cmp r0, 0x3
- beq _08100D08
- b _08100D24
-_08100CBA:
- bl sub_8100B6C
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08100D24
-_08100CC4:
- ldr r0, _08100CEC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100D24
- bl DrawWholeMapView
- ldr r0, _08100CF0
- bl ScriptContext1_SetupScript
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r5, 0xC]
- b _08100D24
- .align 2, 0
-_08100CEC: .4byte gPaletteFade
-_08100CF0: .4byte gUnknown_081A2F8A
-_08100CF4:
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_80FED90
- bl pal_fill_black
- movs r0, 0x3
- strh r0, [r5, 0xC]
- b _08100D24
-_08100D08:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100D24
- ldr r0, _08100D2C
- strh r0, [r5, 0x22]
- ldr r1, _08100D30
- ldr r2, _08100D34
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100D24:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100D2C: .4byte 0x0000ffff
-_08100D30: .4byte gSecretBaseText_DecorReturned
-_08100D34: .4byte sub_81010F0
- thumb_func_end sub_8100C88
-
- thumb_func_start sub_8100D38
-sub_8100D38: @ 8100D38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08100D68
- adds r4, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcs _08100D7C
- adds r5, r4, 0
- ldr r1, _08100D6C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
-_08100D56:
- ldr r0, [r5]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08100D70
- strh r2, [r1, 0x22]
- movs r0, 0x1
- b _08100D7E
- .align 2, 0
-_08100D68: .4byte 0x0201f000
-_08100D6C: .4byte gTasks
-_08100D70:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcc _08100D56
-_08100D7C:
- movs r0, 0
-_08100D7E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8100D38
-
- thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
-SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- bl player_get_direction_lower_nybble
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r3, _08100DD8
- ldr r2, _08100DDC
- ldr r4, _08100DE0
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- bl sub_81016C8
- ldr r0, _08100DE4
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _08100DE8
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08100DF0
- ldr r1, _08100DEC
- str r0, [sp]
- movs r0, 0xC1
- b _08100DF8
- .align 2, 0
-_08100DD8: .4byte gUnknown_020391A8
-_08100DDC: .4byte gSprites
-_08100DE0: .4byte gUnknown_03004880
-_08100DE4: .4byte gSpriteTemplate_83ECA88
-_08100DE8: .4byte gSaveBlock2
-_08100DEC: .4byte SpriteCallbackDummy
-_08100DF0:
- ldr r1, _08100E5C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08100DF8:
- movs r2, 0x88
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _08100E60
- strb r0, [r1]
- ldr r6, _08100E64
- ldr r0, _08100E60
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, _08100E68
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, _08100E6C
- ldr r0, [r0, 0x4]
- strb r0, [r5]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r0, 0x5]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100E5C: .4byte SpriteCallbackDummy
-_08100E60: .4byte gUnknown_020391A9
-_08100E64: .4byte gSprites
-_08100E68: .4byte gUnknown_020391A8
-_08100E6C: .4byte gUnknown_03004880
- thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
-
- thumb_func_start sub_8100E70
-sub_8100E70: @ 8100E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08100E94
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08100EC4
- cmp r0, 0x1
- bgt _08100E98
- cmp r0, 0
- beq _08100E9E
- b _08100EE6
- .align 2, 0
-_08100E94: .4byte gUnknown_03004B28
-_08100E98:
- cmp r0, 0x2
- beq _08100ED2
- b _08100EE6
-_08100E9E:
- ldr r0, _08100EC0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100EE6
- adds r0, r5, 0
- bl sub_80FF0E0
- movs r0, 0x1
- strh r0, [r4, 0x4]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- bl sub_8072DEC
- b _08100EE6
- .align 2, 0
-_08100EC0: .4byte gPaletteFade
-_08100EC4:
- bl SetUpPuttingAwayDecorationPlayerAvatar
- bl pal_fill_black
- movs r0, 0x2
- strh r0, [r4, 0x4]
- b _08100EE6
-_08100ED2:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100EE6
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl sub_8100EEC
-_08100EE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100E70
-
- thumb_func_start sub_8100EEC
-sub_8100EEC: @ 8100EEC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _08100F70
- ldr r3, _08100F74
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- strh r6, [r0, 0x3C]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08100F78
- str r1, [r0]
- ldr r2, _08100F7C
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x88
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x48
- strh r1, [r0, 0x22]
- ldr r1, _08100F80
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x1C]
- ldr r1, _08100F84
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100F70: .4byte gSprites
-_08100F74: .4byte gUnknown_020391A8
-_08100F78: .4byte sub_8101698
-_08100F7C: .4byte gUnknown_020391A9
-_08100F80: .4byte gTasks
-_08100F84: .4byte sub_8100494
- thumb_func_end sub_8100EEC
-
- thumb_func_start sub_8100F88
-sub_8100F88: @ 8100F88
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08100FB0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8101024
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100FB0: .4byte gTasks
- thumb_func_end sub_8100F88
-
- thumb_func_start sub_8100FB4
-sub_8100FB4: @ 8100FB4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810100C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- ldr r3, _08101010
- ldr r5, _08101014
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _08101018
- str r1, [r0]
- ldr r1, _0810101C
- ldr r2, _08101020
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810100C: .4byte gTasks
-_08101010: .4byte gSprites
-_08101014: .4byte gUnknown_020391A8
-_08101018: .4byte SpriteCallbackDummy
-_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
-_08101020: .4byte sub_810156C
- thumb_func_end sub_8100FB4
-
- thumb_func_start sub_8101024
-sub_8101024: @ 8101024
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8101460
- ldr r0, _08101040
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810104C
- ldr r1, _08101044
- ldr r2, _08101048
- b _081010B0
- .align 2, 0
-_08101040: .4byte gUnknown_02039234
-_08101044: .4byte gSecretBaseText_ReturnDecor
-_08101048: .4byte sub_8101518
-_0810104C:
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, _081010BC
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057238
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101082
- adds r0, r4, 0
- bl sub_805738C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081010D4
-_08101082:
- ldr r3, _081010C0
- ldr r4, _081010C4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _081010C8
- str r1, [r0]
- ldr r1, _081010CC
- ldr r2, _081010D0
-_081010B0:
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _081010E0
- .align 2, 0
-_081010BC: .4byte gUnknown_03004B28
-_081010C0: .4byte gSprites
-_081010C4: .4byte gUnknown_020391A8
-_081010C8: .4byte SpriteCallbackDummy
-_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
-_081010D0: .4byte sub_810156C
-_081010D4:
- ldr r1, _081010E8
- ldr r2, _081010EC
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_081010E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081010E8: .4byte gSecretBaseText_NoDecor
-_081010EC: .4byte sub_81010F0
- thumb_func_end sub_8101024
-
- thumb_func_start sub_81010F0
-sub_81010F0: @ 81010F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08101114
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810110A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101110
-_0810110A:
- adds r0, r2, 0
- bl sub_8100EEC
-_08101110:
- pop {r0}
- bx r0
- .align 2, 0
-_08101114: .4byte gMain
- thumb_func_end sub_81010F0
-
- thumb_func_start sub_8101118
-sub_8101118: @ 8101118
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- ldr r1, _08101130
- lsrs r0, 19
- adds r0, r1
- ldrb r1, [r0, 0x12]
- cmp r1, 0
- bne _08101134
- movs r0, 0x1
- strb r0, [r2, 0x1]
- b _08101192
- .align 2, 0
-_08101130: .4byte gDecorations
-_08101134:
- cmp r1, 0x1
- bne _08101140
- movs r0, 0x2
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- b _08101194
-_08101140:
- cmp r1, 0x2
- bne _0810114C
- movs r0, 0x3
- strb r0, [r2, 0x1]
- movs r0, 0x1
- b _08101192
-_0810114C:
- cmp r1, 0x3
- bne _08101154
- movs r0, 0x4
- b _0810118E
-_08101154:
- cmp r1, 0x4
- bne _0810115E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08101192
-_0810115E:
- cmp r1, 0x5
- bne _08101166
- movs r0, 0x1
- b _0810118E
-_08101166:
- cmp r1, 0x6
- bne _08101172
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x3
- b _08101192
-_08101172:
- cmp r1, 0x7
- bne _0810117E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- movs r0, 0x4
- b _08101192
-_0810117E:
- cmp r1, 0x8
- bne _08101188
- movs r0, 0x3
- strb r0, [r2, 0x1]
- b _08101192
-_08101188:
- cmp r1, 0x9
- bne _08101194
- movs r0, 0x3
-_0810118E:
- strb r0, [r2, 0x1]
- movs r0, 0x2
-_08101192:
- strb r0, [r2, 0x2]
-_08101194:
- pop {r0}
- bx r0
- thumb_func_end sub_8101118
-
- thumb_func_start sub_8101198
-sub_8101198: @ 8101198
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- ldr r5, _081011F0
- ldr r6, _081011F4
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- adds r2, 0x3E
- ldrb r3, [r2]
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r2]
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r3, r5, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r3, _081011F8
- str r3, [r2]
- ldr r4, _081011FC
- ldrb r3, [r4]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- lsrs r0, 20
- adds r0, 0x88
- strh r0, [r2, 0x20]
- ldrb r2, [r4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- lsrs r1, 20
- adds r1, 0x48
- strh r1, [r0, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081011F0: .4byte gSprites
-_081011F4: .4byte gUnknown_020391A8
-_081011F8: .4byte SpriteCallbackDummy
-_081011FC: .4byte gUnknown_020391A9
- thumb_func_end sub_8101198
-
- thumb_func_start sub_8101200
-sub_8101200: @ 8101200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810128C
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0x8]
- subs r0, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r2, 0xA]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08101290
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r4, r0, 4
- movs r5, 0xF
- ands r5, r0
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0810125A
- adds r0, r4, 0x7
- adds r1, r5, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _0810125A
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
-_0810125A:
- cmp r7, r4
- bcc _08101294
- ldrb r1, [r6, 0x1]
- adds r0, r4, r1
- cmp r7, r0
- bge _08101294
- ldrb r0, [r6, 0x2]
- subs r0, r5, r0
- cmp r8, r0
- ble _08101294
- cmp r8, r5
- bhi _08101294
- subs r0, r7, r4
- adds r0, 0x1
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- subs r1, r5, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_8101198
- movs r0, 0x1
- b _08101296
- .align 2, 0
-_0810128C: .4byte gTasks
-_08101290: .4byte 0x0201f000
-_08101294:
- movs r0, 0
-_08101296:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8101200
-
- thumb_func_start sub_81012A0
-sub_81012A0: @ 81012A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0810130C
- ldr r3, _08101310
- ldr r0, _08101314
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r3
- ldrb r1, [r0]
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r7, r0, 4
- movs r6, 0xF
- ands r6, r0
- movs r5, 0
- ldr r0, _08101318
- mov r8, r0
- mov r9, r3
-_081012CA:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldr r2, _0810131C
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r7
- bne _08101328
- ldr r2, _08101320
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r6
- bne _08101328
- ldr r0, _08101324
- adds r4, r1, r0
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08101328
- ldr r0, _08101314
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r9
- ldrh r1, [r4]
- strh r1, [r0, 0x4]
- b _08101332
- .align 2, 0
-_0810130C: .4byte 0x0201f000
-_08101310: .4byte gUnknown_020391B4
-_08101314: .4byte gUnknown_02039234
-_08101318: .4byte gSaveBlock1
-_0810131C: .4byte 0x00000c24
-_08101320: .4byte 0x00000c26
-_08101324: .4byte 0x00000c34
-_08101328:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _081012CA
-_08101332:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81012A0
-
- thumb_func_start sub_8101340
-sub_8101340: @ 8101340
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- b _081013A2
-_0810134A:
- ldr r0, [r0]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810139C
- ldr r0, _08101390
- ldrb r2, [r1]
- lsls r1, r2, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0810139C
- ldr r5, _08101394
- adds r0, r2, 0
- adds r1, r5, 0
- bl sub_8101118
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r5, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810139C
- strb r6, [r5]
- bl sub_81012A0
- ldr r0, _08101398
- strb r4, [r0]
- movs r0, 0x1
- b _081013AC
- .align 2, 0
-_08101390: .4byte gDecorations
-_08101394: .4byte gUnknown_020391B4
-_08101398: .4byte gUnknown_02039234
-_0810139C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081013A2:
- ldr r0, _081013B4
- ldrb r1, [r0, 0x8]
- cmp r6, r1
- bcc _0810134A
- movs r0, 0
-_081013AC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081013B4: .4byte 0x0201f000
- thumb_func_end sub_8101340
-
- thumb_func_start sub_81013B8
-sub_81013B8: @ 81013B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- ldr r7, _08101450
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcs _0810143E
- adds r6, r7, 0
- ldr r5, _08101454
-_081013EA:
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldrb r0, [r0]
- lsrs r3, r0, 4
- movs r2, 0xF
- ands r2, r0
- cmp r1, 0
- beq _08101432
- ldr r0, _08101458
- lsls r1, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _08101432
- ldr r0, [sp]
- cmp r0, r3
- bhi _08101432
- cmp r10, r2
- bhi _08101432
- cmp r9, r3
- bcc _08101432
- cmp r8, r2
- bcc _08101432
- ldr r0, _0810145C
- ldrb r1, [r5]
- lsls r1, 3
- adds r1, r0
- strb r4, [r1]
- bl sub_81012A0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08101432:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcc _081013EA
-_0810143E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101450: .4byte 0x0201f000
-_08101454: .4byte gUnknown_02039234
-_08101458: .4byte gDecorations
-_0810145C: .4byte gUnknown_020391B4
- thumb_func_end sub_81013B8
-
- thumb_func_start sub_8101460
-sub_8101460: @ 8101460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _081014B8
- movs r0, 0
- strb r0, [r4]
- adds r0, r6, 0
- bl sub_8101340
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101504
- movs r5, 0
- ldr r0, _081014BC
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcs _081014D2
- adds r7, r4, 0
-_08101486:
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- cmp r1, 0
- beq _081014C4
- ldr r4, _081014C0
- adds r0, r1, 0
- adds r1, r4, 0
- bl sub_8101118
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081014C4
- strb r5, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _081014D2
- .align 2, 0
-_081014B8: .4byte gUnknown_02039234
-_081014BC: .4byte 0x0201f000
-_081014C0: .4byte gUnknown_020391B4
-_081014C4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810150C
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcc _08101486
-_081014D2:
- ldr r0, _08101510
- ldrb r0, [r0]
- cmp r0, 0
- beq _08101504
- ldr r0, _0810150C
- ldr r2, _08101514
- ldrb r1, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 4
- movs r3, 0xF
- ands r3, r1
- ldrb r1, [r2, 0x2]
- subs r1, r3, r1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r2, 0x1]
- adds r2, r0
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- bl sub_81013B8
-_08101504:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810150C: .4byte 0x0201f000
-_08101510: .4byte gUnknown_02039234
-_08101514: .4byte gUnknown_020391B4
- thumb_func_end sub_8101460
-
- thumb_func_start sub_8101518
-sub_8101518: @ 8101518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101538
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101538: .4byte gUnknown_083EC9CC
- thumb_func_end sub_8101518
-
- thumb_func_start sub_810153C
-sub_810153C: @ 810153C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08101564
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08101568
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101564: .4byte gTasks
-_08101568: .4byte sub_8100C88
- thumb_func_end sub_810153C
-
- thumb_func_start sub_810156C
-sub_810156C: @ 810156C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810158C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810158C: .4byte gUnknown_083EC9D4
- thumb_func_end sub_810156C
-
- thumb_func_start sub_8101590
-sub_8101590: @ 8101590
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_81015B0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101590
-
- thumb_func_start sub_81015B0
-sub_81015B0: @ 81015B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081015D8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081015DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081015D8: .4byte gTasks
-_081015DC: .4byte sub_81015E0
- thumb_func_end sub_81015B0
-
- thumb_func_start sub_81015E0
-sub_81015E0: @ 81015E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08101600
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08101604
- cmp r0, 0x1
- beq _08101620
- b _08101636
- .align 2, 0
-_08101600: .4byte gTasks
-_08101604:
- ldr r0, _0810161C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101636
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08101636
- .align 2, 0
-_0810161C: .4byte gPaletteFade
-_08101620:
- bl sub_81016F4
- ldr r0, _0810163C
- ldr r1, _08101640
- str r1, [r0]
- ldr r0, _08101644
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08101636:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810163C: .4byte gUnknown_0300485C
-_08101640: .4byte sub_8101678
-_08101644: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_81015E0
-
- thumb_func_start sub_8101648
-sub_8101648: @ 8101648
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101668
- ldr r0, _08101670
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08101674
- str r0, [r1]
-_08101668:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101670: .4byte gTasks
-_08101674: .4byte sub_80FE2EC
- thumb_func_end sub_8101648
-
- thumb_func_start sub_8101678
-sub_8101678: @ 8101678
- push {lr}
- bl pal_fill_black
- bl MenuDisplayMessageBox
- bl sub_80FE220
- ldr r0, _08101694
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08101694: .4byte sub_8101648
- thumb_func_end sub_8101678
-
- thumb_func_start sub_8101698
-sub_8101698: @ 8101698
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0xF
- ble _081016B8
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081016C4
-_081016B8:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_081016C4:
- pop {r0}
- bx r0
- thumb_func_end sub_8101698
-
- thumb_func_start sub_81016C8
-sub_81016C8: @ 81016C8
- push {lr}
- ldr r0, _081016DC
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081016E4
- ldr r0, _081016E0
- bl LoadSpritePalette
- b _081016EA
- .align 2, 0
-_081016DC: .4byte gSaveBlock2
-_081016E0: .4byte gUnknown_083ECA5C
-_081016E4:
- ldr r0, _081016F0
- bl LoadSpritePalette
-_081016EA:
- pop {r0}
- bx r0
- .align 2, 0
-_081016F0: .4byte gUnknown_083ECA64
- thumb_func_end sub_81016C8
-
- thumb_func_start sub_81016F4
-sub_81016F4: @ 81016F4
- push {lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_81016F4
-
- thumb_func_start sub_8101700
-sub_8101700: @ 8101700
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101728
- ldr r1, _08101720
- ldr r2, _08101724
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101742
- .align 2, 0
-_08101720: .4byte gSecretBaseText_NoDecors
-_08101724: .4byte sub_80FE428
-_08101728:
- ldr r1, _08101748
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- ldr r0, _0810174C
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101748: .4byte gTasks
-_0810174C: .4byte gUnknown_020388F6
- thumb_func_end sub_8101700
-
- thumb_func_start unref_sub_8101750
-unref_sub_8101750: @ 8101750
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101778
- ldr r1, _08101770
- ldr r2, _08101774
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101792
- .align 2, 0
-_08101770: .4byte gSecretBaseText_NoDecors
-_08101774: .4byte sub_80FE428
-_08101778:
- ldr r1, _08101798
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strh r1, [r0, 0x1E]
- ldr r0, _0810179C
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101792:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101798: .4byte gTasks
-_0810179C: .4byte gUnknown_020388F6
- thumb_func_end unref_sub_8101750
-
- thumb_func_start sub_81017A0
-sub_81017A0: @ 81017A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80FEF74
- bl sub_80FED1C
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101808
- ldr r0, _081017EC
- ldr r1, _081017F0
- ldrb r2, [r1]
- ldr r1, _081017F4
- ldr r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 5
- ldr r2, _081017F8
- adds r1, r2
- bl StringCopy
- ldr r4, _081017FC
- ldr r1, _08101800
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _08101804
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101814
- .align 2, 0
-_081017EC: .4byte gStringVar1
-_081017F0: .4byte gUnknown_020388F5
-_081017F4: .4byte gUnknown_020388D0
-_081017F8: .4byte gDecorations + 0x1
-_081017FC: .4byte gStringVar4
-_08101800: .4byte gSecretBaseText_WillBeDiscarded
-_08101804: .4byte sub_8101824
-_08101808:
- ldr r1, _0810181C
- ldr r2, _08101820
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08101814:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810181C: .4byte gSecretBaseText_DecorInUse
-_08101820: .4byte sub_80FEFF4
- thumb_func_end sub_81017A0
-
- thumb_func_start sub_8101824
-sub_8101824: @ 8101824
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101844
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101844: .4byte gUnknown_083ECAA0
- thumb_func_end sub_8101824
-
- thumb_func_start sub_8101848
-sub_8101848: @ 8101848
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xE
- bl MenuZeroFillWindowRect
- ldr r6, _08101890
- ldrb r1, [r6]
- ldr r5, _08101894
- ldr r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8109A30
- ldrb r1, [r6]
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80FF098
- ldr r1, _08101898
- ldr r2, _0810189C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08101890: .4byte gUnknown_020388F5
-_08101894: .4byte gUnknown_020388D0
-_08101898: .4byte gSecretBaseText_DecorThrownAway
-_0810189C: .4byte sub_80FEFF4
- thumb_func_end sub_8101848
-
- thumb_func_start sub_81018A0
-sub_81018A0: @ 81018A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81019B0
- ldr r0, _081018B4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081018B4: .4byte sub_81018B8
- thumb_func_end sub_81018A0
-
- thumb_func_start sub_81018B8
-sub_81018B8: @ 81018B8
- push {lr}
- ldr r0, _081018D0
- ldr r1, _081018D4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _0810194A
- lsls r0, 2
- ldr r1, _081018D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081018D0: .4byte gMain
-_081018D4: .4byte 0x0000043c
-_081018D8: .4byte _081018DC
- .align 2, 0
-_081018DC:
- .4byte _081018F8
- .4byte _08101902
- .4byte _08101908
- .4byte _08101912
- .4byte _08101918
- .4byte _0810191E
- .4byte _08101938
-_081018F8:
- bl sub_8101A28
- bl sub_8101BA4
- b _08101922
-_08101902:
- bl sub_8101A8C
- b _08101922
-_08101908:
- bl sub_8101AE0
- bl sub_8101B04
- b _08101922
-_08101912:
- bl sub_8101C84
- b _08101922
-_08101918:
- bl sub_8101CA0
- b _08101922
-_0810191E:
- bl sub_8101CC0
-_08101922:
- ldr r1, _08101930
- ldr r0, _08101934
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810194A
- .align 2, 0
-_08101930: .4byte gMain
-_08101934: .4byte 0x0000043c
-_08101938:
- bl sub_8101CD4
- bl sub_8101CEC
- bl sub_8101A44
- ldr r0, _08101950
- bl SetMainCallback2
-_0810194A:
- pop {r0}
- bx r0
- .align 2, 0
-_08101950: .4byte sub_8101954
- thumb_func_end sub_81018B8
-
- thumb_func_start sub_8101954
-sub_8101954: @ 8101954
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8101954
-
- thumb_func_start sub_810196C
-sub_810196C: @ 810196C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _081019A8
- ldr r2, _081019AC
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r0, r2, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081019A8: .4byte REG_WIN0H
-_081019AC: .4byte 0x02000000
- thumb_func_end sub_810196C
-
- thumb_func_start sub_81019B0
-sub_81019B0: @ 81019B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081019E4
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _081019E8
- adds r0, r1
- strh r4, [r0, 0x8]
- adds r0, 0xA
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081019E4: .4byte nullsub_67
-_081019E8: .4byte gTasks
- thumb_func_end sub_81019B0
-
- thumb_func_start sub_81019EC
-sub_81019EC: @ 81019EC
- push {lr}
- ldr r0, _08101A18
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r0, _08101A1C
- adds r2, r0
- ldr r1, _08101A20
- ldrh r0, [r2, 0x8]
- strb r0, [r1, 0x1]
- adds r2, 0xA
- adds r1, 0x64
- adds r0, r2, 0
- bl LoadWordFromTwoHalfwords
- pop {r0}
- bx r0
- .align 2, 0
-_08101A18: .4byte nullsub_67
-_08101A1C: .4byte gTasks
-_08101A20: .4byte 0x02000000
- thumb_func_end sub_81019EC
-
- thumb_func_start nullsub_67
-nullsub_67: @ 8101A24
- bx lr
- thumb_func_end nullsub_67
-
- thumb_func_start sub_8101A28
-sub_8101A28: @ 8101A28
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8101A28
-
- thumb_func_start sub_8101A44
-sub_8101A44: @ 8101A44
- push {r4,lr}
- ldr r0, _08101A7C
- bl SetVBlankCallback
- ldr r3, _08101A80
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08101A84
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08101A88
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101A7C: .4byte sub_810196C
-_08101A80: .4byte 0x04000208
-_08101A84: .4byte 0x04000200
-_08101A88: .4byte REG_DISPSTAT
- thumb_func_end sub_8101A44
-
- thumb_func_start sub_8101A8C
-sub_8101A8C: @ 8101A8C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _08101AD8
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08101ADC
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08101AAA:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _08101AAA
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101AD8: .4byte 0x040000d4
-_08101ADC: .4byte 0x81000800
- thumb_func_end sub_8101A8C
-
- thumb_func_start sub_8101AE0
-sub_8101AE0: @ 8101AE0
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08101AFC
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08101B00
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08101AFC: .4byte 0x040000d4
-_08101B00: .4byte 0x81000200
- thumb_func_end sub_8101AE0
-
- thumb_func_start sub_8101B04
-sub_8101B04: @ 8101B04
- push {r4,r5,lr}
- ldr r5, _08101B70
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08101B74
- strh r1, [r2]
- ldr r3, _08101B78
- strh r1, [r3]
- ldr r4, _08101B7C
- strh r1, [r4]
- ldr r0, _08101B80
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B84
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _08101B88
- adds r0, r1, 0
- strh r0, [r2]
- ldr r2, _08101B8C
- adds r0, r2, 0
- strh r0, [r3]
- ldr r1, _08101B90
- adds r0, r1, 0
- strh r0, [r4]
- ldr r0, _08101B94
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B98
- ldr r2, _08101B9C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08101BA0
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08101B70: .4byte REG_BG0CNT
-_08101B74: .4byte REG_BG1CNT
-_08101B78: .4byte REG_BG2CNT
-_08101B7C: .4byte REG_BG3CNT
-_08101B80: .4byte REG_BG0HOFS
-_08101B84: .4byte 0x00001f08
-_08101B88: .4byte 0x00001c01
-_08101B8C: .4byte 0x00001d02
-_08101B90: .4byte 0x00001e02
-_08101B94: .4byte REG_WININ
-_08101B98: .4byte REG_BLDCNT
-_08101B9C: .4byte 0x00001048
-_08101BA0: .4byte 0x00000809
- thumb_func_end sub_8101B04
-
- thumb_func_start sub_8101BA4
-sub_8101BA4: @ 8101BA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_81019EC
- ldr r5, _08101C74
- movs r4, 0
- strb r4, [r5]
- strb r4, [r5, 0x2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- strb r1, [r5, 0x3]
- strb r4, [r5, 0x4]
- movs r0, 0
- strh r4, [r5, 0x8]
- strb r0, [r5, 0xA]
- strb r0, [r5, 0xB]
- ldr r0, _08101C78
- ldr r1, _08101C7C
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0xC]
- strh r4, [r5, 0xE]
- strh r4, [r5, 0x10]
- strh r4, [r5, 0x12]
- strh r4, [r5, 0x18]
- movs r0, 0x8
- strh r0, [r5, 0x1A]
- adds r1, r5, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl GetCurrentMapMusic
- adds r1, r5, 0
- adds r1, 0x60
- strh r0, [r1]
- movs r7, 0
- adds r6, r5, 0
- ldr r2, _08101C80
- mov r9, r2
- movs r0, 0x1C
- adds r0, r6
- mov r8, r0
-_08101C14:
- lsls r5, r7, 1
- adds r0, r6, 0
- adds r0, 0x22
- adds r0, r5, r0
- movs r1, 0
- strh r1, [r0]
- adds r4, r6, 0
- adds r4, 0x28
- adds r4, r5, r4
- ldrb r0, [r6, 0x3]
- lsls r0, 1
- lsls r1, r7, 2
- adds r0, r1
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x15
- bl __modsi3
- strh r0, [r4]
- add r5, r8
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- movs r2, 0xFC
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r5]
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r1, r2, 0
- bl __modsi3
- strh r0, [r5]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08101C14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C74: .4byte 0x02000000
-_08101C78: .4byte gSaveBlock1
-_08101C7C: .4byte 0x00000494
-_08101C80: .4byte gUnknown_083ECCF8
- thumb_func_end sub_8101BA4
-
- thumb_func_start sub_8101C84
-sub_8101C84: @ 8101C84
- push {r4,lr}
- ldr r4, _08101C9C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C9C: .4byte gWindowConfig_81E7128
- thumb_func_end sub_8101C84
-
- thumb_func_start sub_8101CA0
-sub_8101CA0: @ 8101CA0
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- ldr r1, _08101CBC
- movs r0, 0x80
- strb r0, [r1]
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- .align 2, 0
-_08101CBC: .4byte gOamLimit
- thumb_func_end sub_8101CA0
-
- thumb_func_start sub_8101CC0
-sub_8101CC0: @ 8101CC0
- push {lr}
- bl sub_8106448
- bl sub_81064B8
- bl sub_81063C0
- pop {r0}
- bx r0
- thumb_func_end sub_8101CC0
-
- thumb_func_start sub_8101CD4
-sub_8101CD4: @ 8101CD4
- push {lr}
- bl sub_8104EA8
- bl sub_8104F8C
- bl sub_8103DC8
- bl sub_81050C4
- pop {r0}
- bx r0
- thumb_func_end sub_8101CD4
-
- thumb_func_start sub_8101CEC
-sub_8101CEC: @ 8101CEC
- push {lr}
- bl sub_8104048
- bl sub_8102DA8
- bl sub_8104C5C
- bl sub_8101D04
- pop {r0}
- bx r0
- thumb_func_end sub_8101CEC
-
- thumb_func_start sub_8101D04
-sub_8101D04: @ 8101D04
- push {r4,lr}
- ldr r4, _08101D20
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D20: .4byte sub_8101D24
- thumb_func_end sub_8101D04
-
- thumb_func_start sub_8101D24
-sub_8101D24: @ 8101D24
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08101D50
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _08101D54
- ldr r5, _08101D58
-_08101D36:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08101D36
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D50: .4byte gUnknown_083ECAAC
-_08101D54: .4byte 0x02000000
-_08101D58: .4byte gTasks
- thumb_func_end sub_8101D24
-
- thumb_func_start sub_8101D5C
-sub_8101D5C: @ 8101D5C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r4, _08101D88
- ldrb r0, [r4, 0x2]
- bl sub_810423C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101D88: .4byte 0x02000000
- thumb_func_end sub_8101D5C
-
- thumb_func_start sub_8101D8C
-sub_8101D8C: @ 8101D8C
- push {lr}
- ldr r0, _08101DA8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101DA2
- ldr r1, _08101DAC
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08101DA2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101DA8: .4byte gPaletteFade
-_08101DAC: .4byte 0x02000000
- thumb_func_end sub_8101D8C
-
- thumb_func_start sub_8101DB0
-sub_8101DB0: @ 8101DB0
- push {lr}
- ldr r2, _08101DD8
- movs r0, 0
- strh r0, [r2, 0xE]
- strh r0, [r2, 0x12]
- strh r0, [r2, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r2, 0x4]
- movs r0, 0x4
- strb r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _08101DDC
- movs r0, 0x19
- strb r0, [r2]
- b _08101DEC
- .align 2, 0
-_08101DD8: .4byte 0x02000000
-_08101DDC:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _08101DEC
- movs r0, 0x3
- strb r0, [r2]
- movs r0, 0x4
- bl sub_8104CAC
-_08101DEC:
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8101DB0
-
- thumb_func_start sub_8101DF4
-sub_8101DF4: @ 8101DF4
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _08101E06
- ldr r1, _08101E0C
- movs r0, 0x4
- strb r0, [r1]
-_08101E06:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101E0C: .4byte 0x02000000
- thumb_func_end sub_8101DF4
-
- thumb_func_start sub_8101E10
-sub_8101E10: @ 8101E10
- push {lr}
- movs r0, 0
- bl sub_8104CAC
- ldr r2, _08101E34
- movs r0, 0x5
- strb r0, [r2]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08101E38
- cmp r1, r0
- ble _08101E2C
- movs r0, 0x17
- strb r0, [r2]
-_08101E2C:
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08101E34: .4byte 0x02000000
-_08101E38: .4byte 0x0000270e
- thumb_func_end sub_8101E10
-
- thumb_func_start sub_8101E3C
-sub_8101E3C: @ 8101E3C
- push {r4,lr}
- ldr r0, _08101E58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08101E60
- movs r0, 0
- bl sub_8104AB8
- ldr r1, _08101E5C
- movs r0, 0x8
- strb r0, [r1]
- b _08101F1A
- .align 2, 0
-_08101E58: .4byte gMain
-_08101E5C: .4byte 0x02000000
-_08101E60:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08101EC2
- ldr r2, _08101EB8
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- subs r0, 0x3
- movs r3, 0x12
- ldrsh r1, [r2, r3]
- adds r0, r1
- cmp r0, 0
- blt _08101EBC
- ldrh r4, [r2, 0x12]
- adds r0, r1, 0
- cmp r0, 0x2
- bgt _08101E9C
-_08101E84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8103D50
- lsls r0, r4, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08101E84
-_08101E9C:
- ldr r1, _08101EB8
- ldrh r0, [r1, 0xC]
- subs r0, 0x3
- ldrh r3, [r1, 0x12]
- adds r0, r3
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0x9
- strb r0, [r1]
- movs r0, 0x5F
- bl PlaySE
- b _08101F1A
- .align 2, 0
-_08101EB8: .4byte 0x02000000
-_08101EBC:
- movs r0, 0x6
- strb r0, [r2]
- b _08101F1A
-_08101EC2:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08101EEC
- ldr r4, _08101F24
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08101EEC
- movs r0, 0x5F
- bl PlaySE
- ldrb r0, [r4, 0x12]
- bl sub_8103D50
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_08101EEC:
- ldr r0, _08101F24
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- ldr r2, _08101F28
- adds r3, r0, 0
- cmp r1, 0x2
- bgt _08101F08
- cmp r1, 0
- beq _08101F0C
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08101F0C
-_08101F08:
- movs r0, 0x9
- strb r0, [r3]
-_08101F0C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101F1A
- movs r0, 0x15
- strb r0, [r3]
-_08101F1A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101F24: .4byte 0x02000000
-_08101F28: .4byte gMain
- thumb_func_end sub_8101E3C
-
- thumb_func_start sub_8101F2C
-sub_8101F2C: @ 8101F2C
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101F2C
-
- thumb_func_start sub_8101F44
-sub_8101F44: @ 8101F44
- push {lr}
- ldr r0, _08101F58
- bl sub_8101F2C
- ldr r1, _08101F5C
- movs r0, 0x7
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F58: .4byte gOtherText_DontHaveThreeCoins
-_08101F5C: .4byte 0x02000000
- thumb_func_end sub_8101F44
-
- thumb_func_start sub_8101F60
-sub_8101F60: @ 8101F60
- push {lr}
- ldr r0, _08101F80
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08101F78
- bl MenuZeroFillScreen
- ldr r1, _08101F84
- movs r0, 0x5
- strb r0, [r1]
-_08101F78:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F80: .4byte gMain
-_08101F84: .4byte 0x02000000
- thumb_func_end sub_8101F60
-
- thumb_func_start sub_8101F88
-sub_8101F88: @ 8101F88
- push {lr}
- bl sub_8104AEC
- lsls r0, 24
- cmp r0, 0
- beq _08101F9A
- ldr r1, _08101FA0
- movs r0, 0x5
- strb r0, [r1]
-_08101F9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101FA0: .4byte 0x02000000
- thumb_func_end sub_8101F88
-
- thumb_func_start sub_8101FA4
-sub_8101FA4: @ 8101FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8102484
- bl sub_8104DA4
- movs r0, 0
- bl sub_8102DEC
- movs r0, 0x1
- bl sub_8102DEC
- movs r0, 0x2
- bl sub_8102DEC
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r4, _08101FDC
- ldrb r1, [r4, 0x4]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08101FE0
- bl sub_810430C
- movs r0, 0xA
- b _08101FE8
- .align 2, 0
-_08101FDC: .4byte 0x02000000
-_08101FE0:
- movs r0, 0x1
- bl sub_8104CAC
- movs r0, 0xB
-_08101FE8:
- strb r0, [r4]
- ldr r4, _08102004
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08101FFC
- bl dp15_jump_random_unknown
- strh r0, [r4, 0x1A]
-_08101FFC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102004: .4byte 0x02000000
- thumb_func_end sub_8101FA4
-
- thumb_func_start sub_8102008
-sub_8102008: @ 8102008
- push {lr}
- bl sub_810432C
- lsls r0, 24
- cmp r0, 0
- beq _08102028
- movs r0, 0x1
- bl sub_8104CAC
- ldr r1, _08102030
- ldrb r2, [r1, 0x4]
- movs r0, 0xDF
- ands r0, r2
- strb r0, [r1, 0x4]
- movs r0, 0xB
- strb r0, [r1]
-_08102028:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102030: .4byte 0x02000000
- thumb_func_end sub_8102008
-
- thumb_func_start sub_8102034
-sub_8102034: @ 8102034
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _0810204E
- bl sub_81024F0
- ldr r1, _08102054
- movs r0, 0xC
- strb r0, [r1]
-_0810204E:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102054: .4byte 0x02000000
- thumb_func_end sub_8102034
-
- thumb_func_start sub_8102058
-sub_8102058: @ 8102058
- push {r4,lr}
- ldr r0, _08102088
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810207E
- movs r0, 0x18
- bl PlaySE
- ldr r4, _0810208C
- ldrb r0, [r4, 0x18]
- bl sub_8102E1C
- ldrb r0, [r4, 0x18]
- bl sub_8103C14
- movs r0, 0xD
- strb r0, [r4]
-_0810207E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102088: .4byte gMain
-_0810208C: .4byte 0x02000000
- thumb_func_end sub_8102058
-
- thumb_func_start sub_8102090
-sub_8102090: @ 8102090
- push {r4,lr}
- ldr r4, _081020BC
- ldrb r0, [r4, 0x18]
- bl sub_8102E40
- lsls r0, 24
- cmp r0, 0
- bne _081020C0
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r1, 0xC
- strb r1, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081020B6
- movs r0, 0xE
- strb r0, [r4]
-_081020B6:
- movs r0, 0x1
- b _081020C2
- .align 2, 0
-_081020BC: .4byte 0x02000000
-_081020C0:
- movs r0, 0
-_081020C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102090
-
- thumb_func_start sub_81020C8
-sub_81020C8: @ 81020C8
- push {r4,lr}
- ldr r4, _08102128
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r4, 0x4]
- bl sub_81027A0
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _081020E8
- subs r0, 0x1
- strb r0, [r4, 0xA]
- ldrb r0, [r4, 0xB]
- adds r0, 0x1
- strb r0, [r4, 0xB]
-_081020E8:
- ldrh r0, [r4, 0x8]
- cmp r0, 0
- beq _081021B4
- movs r0, 0xF
- strb r0, [r4]
- bl sub_8102A24
- bl sub_8103F70
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0810210C
- movs r0, 0
- strh r0, [r4, 0x10]
-_0810210C:
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102130
- ldr r0, _0810212C
- bl PlayFanfare
- movs r0, 0x6
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102128: .4byte 0x02000000
-_0810212C: .4byte 0x00000185
-_08102130:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810214C
- ldr r0, _08102148
- bl PlayFanfare
- movs r0, 0x5
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102148: .4byte 0x00000185
-_0810214C:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0x2
- bl sub_8104CAC
-_0810215A:
- ldr r1, _081021B0
- ldrh r3, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 1
- ands r0, r3
- adds r2, r1, 0
- cmp r0, 0
- beq _08102192
- ldrb r1, [r2, 0x4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0
- strb r0, [r2, 0x4]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- strb r1, [r2, 0xA]
- strb r1, [r2, 0xB]
- strb r1, [r2, 0x3]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- movs r0, 0x1
- strb r0, [r2, 0x3]
-_08102192:
- ldrh r1, [r2, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081021D2
- ldrb r0, [r2, 0x2]
- cmp r0, 0xF
- bhi _081021D2
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r2, 0x2]
- bl sub_8104064
- b _081021D2
- .align 2, 0
-_081021B0: .4byte 0x02000000
-_081021B4:
- movs r0, 0x3
- bl sub_8104CAC
- movs r0, 0x14
- strb r0, [r4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _081021DC
- cmp r0, r1
- ble _081021D2
- strh r1, [r4, 0x10]
-_081021D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081021DC: .4byte 0x0000270f
- thumb_func_end sub_81020C8
-
- thumb_func_start sub_81021E0
-sub_81021E0: @ 81021E0
- push {lr}
- bl sub_8102A44
- lsls r0, 24
- cmp r0, 0
- beq _081021F2
- ldr r1, _081021F8
- movs r0, 0x10
- strb r0, [r1]
-_081021F2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081021F8: .4byte 0x02000000
- thumb_func_end sub_81021E0
-
- thumb_func_start sub_81021FC
-sub_81021FC: @ 81021FC
- push {r4,lr}
- bl sub_8103FA0
- lsls r0, 24
- cmp r0, 0
- beq _08102256
- ldr r4, _08102260
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102220
- movs r0, 0x1C
- bl sav12_xor_increment
-_08102220:
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08102236
- movs r0, 0
- strh r0, [r4, 0x18]
- movs r0, 0x9
- strb r0, [r4]
-_08102236:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08102242
- movs r0, 0x11
- strb r0, [r4]
-_08102242:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102256
- cmp r2, 0
- beq _08102256
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102256:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102260: .4byte 0x02000000
- thumb_func_end sub_81021FC
-
- thumb_func_start sub_8102264
-sub_8102264: @ 8102264
- push {r4,lr}
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _08102294
- ldr r4, _0810229C
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08102294
- movs r0, 0x9
- strb r0, [r4]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102294
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102294:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810229C: .4byte 0x02000000
- thumb_func_end sub_8102264
-
- thumb_func_start sub_81022A0
-sub_81022A0: @ 81022A0
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081022C0
- ldr r2, _081022C8
- movs r0, 0x13
- strb r0, [r2]
- ldrh r1, [r2, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081022C0
- movs r0, 0x9
- strb r0, [r2]
-_081022C0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022C8: .4byte 0x02000000
- thumb_func_end sub_81022A0
-
- thumb_func_start sub_81022CC
-sub_81022CC: @ 81022CC
- push {lr}
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r1, _081022EC
- movs r0, 0x2
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022EC: .4byte 0x02000000
- thumb_func_end sub_81022CC
-
- thumb_func_start sub_81022F0
-sub_81022F0: @ 81022F0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0810230C
- movs r0, 0
- strh r0, [r1, 0xA]
- ldr r1, _08102314
- movs r0, 0x13
- strb r0, [r1]
-_0810230C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102314: .4byte 0x02000000
- thumb_func_end sub_81022F0
-
- thumb_func_start sub_8102318
-sub_8102318: @ 8102318
- push {lr}
- ldr r0, _0810233C
- bl sub_8101F2C
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- bl sub_814AB84
- ldr r1, _08102340
- movs r0, 0x16
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810233C: .4byte gOtherText_QuitGamePrompt
-_08102340: .4byte 0x02000000
- thumb_func_end sub_8102318
-
- thumb_func_start sub_8102344
-sub_8102344: @ 8102344
- push {lr}
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0810237C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r0, _08102378
- ldrh r1, [r0, 0x12]
- ldrh r2, [r0, 0xC]
- adds r1, r2
- strh r1, [r0, 0xC]
- movs r1, 0x1B
- strb r1, [r0]
- b _08102392
- .align 2, 0
-_08102378: .4byte 0x02000000
-_0810237C:
- cmp r1, 0x1
- beq _08102388
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08102392
-_08102388:
- bl MenuZeroFillScreen
- ldr r1, _08102398
- movs r0, 0x5
- strb r0, [r1]
-_08102392:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102398: .4byte 0x02000000
- thumb_func_end sub_8102344
-
- thumb_func_start sub_810239C
-sub_810239C: @ 810239C
- push {lr}
- ldr r0, _081023B0
- bl sub_8101F2C
- ldr r1, _081023B4
- movs r0, 0x18
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023B0: .4byte gOtherText_MaxCoins
-_081023B4: .4byte 0x02000000
- thumb_func_end sub_810239C
-
- thumb_func_start sub_81023B8
-sub_81023B8: @ 81023B8
- push {lr}
- ldr r0, _081023D8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081023D0
- bl MenuZeroFillScreen
- ldr r1, _081023DC
- movs r0, 0x5
- strb r0, [r1]
-_081023D0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023D8: .4byte gMain
-_081023DC: .4byte 0x02000000
- thumb_func_end sub_81023B8
-
- thumb_func_start sub_81023E0
-sub_81023E0: @ 81023E0
- push {lr}
- ldr r0, _081023F4
- bl sub_8101F2C
- ldr r1, _081023F8
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023F4: .4byte gOtherText_OutOfCoins
-_081023F8: .4byte 0x02000000
- thumb_func_end sub_81023E0
-
- thumb_func_start sub_81023FC
-sub_81023FC: @ 81023FC
- push {lr}
- ldr r0, _0810241C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08102414
- bl MenuZeroFillScreen
- ldr r1, _08102420
- movs r0, 0x1B
- strb r0, [r1]
-_08102414:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810241C: .4byte gMain
-_08102420: .4byte 0x02000000
- thumb_func_end sub_81023FC
-
- thumb_func_start sub_8102424
-sub_8102424: @ 8102424
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08102454
- ldr r4, _08102458
- ldrh r1, [r4, 0xC]
- ldr r2, _0810245C
- adds r0, r2
- movs r2, 0
- strh r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102454: .4byte gSaveBlock1
-_08102458: .4byte 0x02000000
-_0810245C: .4byte 0x00000494
- thumb_func_end sub_8102424
-
- thumb_func_start sub_8102460
-sub_8102460: @ 8102460
- push {lr}
- ldr r0, _0810247C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08102476
- ldr r0, _08102480
- ldr r0, [r0, 0x64]
- bl SetMainCallback2
-_08102476:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810247C: .4byte gPaletteFade
-_08102480: .4byte 0x02000000
- thumb_func_end sub_8102460
-
- thumb_func_start sub_8102484
-sub_8102484: @ 8102484
- push {r4,lr}
- ldr r4, _081024E4
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _081024DC
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- bne _081024DC
- bl sub_8102540
- lsls r0, 24
- cmp r0, 0
- beq _081024C0
- bl sub_8102578
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- beq _081024C0
- ldr r1, _081024E8
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- orrs r0, r1
- strb r0, [r4, 0x4]
- cmp r3, 0x1
- bne _081024DC
-_081024C0:
- bl sub_81025BC
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- beq _081024DC
- ldr r2, _081024E4
- ldr r1, _081024EC
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
-_081024DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081024E4: .4byte 0x02000000
-_081024E8: .4byte gUnknown_083ECE42
-_081024EC: .4byte gUnknown_083ECE48
- thumb_func_end sub_8102484
-
- thumb_func_start sub_81024F0
-sub_81024F0: @ 81024F0
- push {lr}
- ldr r1, _08102508
- movs r0, 0
- strb r0, [r1, 0x6]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08102502
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_08102502:
- pop {r0}
- bx r0
- .align 2, 0
-_08102508: .4byte 0x02000000
- thumb_func_end sub_81024F0
-
- thumb_func_start sub_810250C
-sub_810250C: @ 810250C
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- movs r3, 0x1
- ldr r4, _08102528
-_08102518:
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0810252C
- adds r0, r2, r4
- ldrb r0, [r0]
- b _0810253A
- .align 2, 0
-_08102528: .4byte gUnknown_083ECE3A
-_0810252C:
- lsrs r1, 1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08102518
- movs r0, 0
-_0810253A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810250C
-
- thumb_func_start sub_8102540
-sub_8102540: @ 8102540
- push {r4,lr}
- bl Random
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08102568
- ldr r1, _0810256C
- movs r3, 0x12
- ldrsh r2, [r1, r3]
- ldrb r3, [r1, 0x1]
- lsls r1, r3, 1
- adds r1, r3
- subs r1, 0x1
- adds r2, r1
- adds r2, r4
- ldrb r1, [r2]
- cmp r1, r0
- bhi _08102570
- movs r0, 0
- b _08102572
- .align 2, 0
-_08102568: .4byte gUnknown_083ECD04
-_0810256C: .4byte 0x02000000
-_08102570:
- movs r0, 0x1
-_08102572:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102540
-
- thumb_func_start sub_8102578
-sub_8102578: @ 8102578
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _081025B4
-_0810257E:
- bl Random
- movs r2, 0xFF
- ldr r3, _081025B8
- lsls r1, r5, 16
- asrs r4, r1, 16
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 1
- ldrb r3, [r3, 0x1]
- adds r1, r3
- adds r1, r6
- ldrb r1, [r1]
- ands r2, r0
- cmp r1, r2
- bgt _081025AA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810257E
-_081025AA:
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081025B4: .4byte gUnknown_083ECD16
-_081025B8: .4byte 0x02000000
- thumb_func_end sub_8102578
-
- thumb_func_start sub_81025BC
-sub_81025BC: @ 81025BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08102600
- mov r8, r0
- ldr r5, _08102604
- movs r7, 0x80
- lsls r7, 17
-_081025CE:
- bl Random
- movs r4, 0xFF
- ands r4, r0
- lsls r2, r6, 16
- asrs r1, r2, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldrb r3, [r5, 0x1]
- adds r0, r3
- add r0, r8
- ldrb r3, [r0]
- cmp r1, 0
- bne _08102608
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102608
- adds r3, 0xA
- asrs r0, r7, 16
- cmp r3, r0
- ble _08102622
- adds r3, r0, 0
- b _08102622
- .align 2, 0
-_08102600: .4byte gUnknown_083ECD28
-_08102604: .4byte 0x02000000
-_08102608:
- asrs r0, r2, 16
- cmp r0, 0x4
- bne _08102622
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102622
- lsls r0, r3, 16
- ldr r1, _08102648
- adds r0, r1
- lsrs r3, r0, 16
- cmp r0, 0
- bge _08102622
- movs r3, 0
-_08102622:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r4
- bgt _08102638
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081025CE
-_08102638:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08102648: .4byte 0xfff60000
- thumb_func_end sub_81025BC
-
- thumb_func_start sub_810264C
-sub_810264C: @ 810264C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _08102660
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _08102668
- ldr r0, _08102664
- b _0810266A
- .align 2, 0
-_08102660: .4byte 0x02000000
-_08102664: .4byte gUnknown_083ECDAC
-_08102668:
- ldr r0, _0810267C
-_0810266A:
- lsls r1, r2, 4
- adds r1, r2
- ldrb r3, [r3, 0x2]
- adds r1, r3
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0810267C: .4byte gUnknown_083ECD46
- thumb_func_end sub_810264C
-
- thumb_func_start sub_8102680
-sub_8102680: @ 8102680
- push {r4-r6,lr}
- ldr r1, _081026A4
- movs r0, 0
- strb r0, [r1, 0x5]
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _081026D2
- movs r6, 0x5
- b _081026AE
- .align 2, 0
-_081026A4: .4byte 0x02000000
-_081026A8:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081026AE:
- lsls r0, r6, 16
- asrs r5, r0, 16
- cmp r5, 0
- ble _081026CE
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _081026A8
-_081026CE:
- ldr r0, _081026D8
- strb r6, [r0, 0x5]
-_081026D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081026D8: .4byte 0x02000000
- thumb_func_end sub_8102680
-
- thumb_func_start sub_81026DC
-sub_81026DC: @ 81026DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r0, _081026FC
- lsls r4, 1
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcc _08102700
- movs r0, 0
- b _08102702
- .align 2, 0
-_081026FC: .4byte gUnknown_083ECE12
-_08102700:
- movs r0, 0x1
-_08102702:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81026DC
-
- thumb_func_start dp15_jump_random_unknown
-dp15_jump_random_unknown: @ 8102708
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _0810271C
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- ldr r0, _08102720
- cmp r1, r0
- ble _08102724
- movs r4, 0x4
- b _0810273A
- .align 2, 0
-_0810271C: .4byte 0x02000000
-_08102720: .4byte 0x0000012b
-_08102724:
- cmp r1, 0xF9
- ble _0810272C
- movs r4, 0x3
- b _0810273A
-_0810272C:
- cmp r1, 0xC7
- ble _08102734
- movs r4, 0x2
- b _0810273A
-_08102734:
- cmp r1, 0x95
- ble _0810273A
- movs r4, 0x1
-_0810273A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r5, _0810275C
- lsls r4, 2
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08102760
- movs r0, 0x4
- b _0810279A
- .align 2, 0
-_0810275C: .4byte gUnknown_083ECE1C
-_08102760:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- adds r2, r5, 0x2
- adds r2, r4, r2
- ldr r3, _08102790
- ldr r1, _08102794
- ldrb r1, [r1, 0xB]
- lsls r1, 1
- adds r1, r3
- ldrb r1, [r1]
- ldrb r2, [r2]
- adds r1, r2
- lsls r1, 24
- cmp r0, r1
- bcc _08102798
- movs r0, 0x8
- b _0810279A
- .align 2, 0
-_08102790: .4byte gUnknown_083ECE30
-_08102794: .4byte 0x02000000
-_08102798:
- movs r0, 0x2
-_0810279A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dp15_jump_random_unknown
-
- thumb_func_start sub_81027A0
-sub_81027A0: @ 81027A0
- push {r4,lr}
- ldr r4, _081027CC
- movs r0, 0
- strh r0, [r4, 0x8]
- bl sub_81027D0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _081027B8
- bl sub_8102840
-_081027B8:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- ble _081027C4
- bl sub_810290C
-_081027C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081027CC: .4byte 0x02000000
- thumb_func_end sub_81027A0
-
- thumb_func_start sub_81027D0
-sub_81027D0: @ 81027D0
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x2
- bl sub_8102BA4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x2
- bl sub_8102BA4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810282E
- ldr r2, _08102834
- ldr r0, _08102838
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _0810283C
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0
- bl sub_8103E04
-_0810282E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102834: .4byte 0x02000000
-_08102838: .4byte gUnknown_083ECE6C
-_0810283C: .4byte gUnknown_083ECE5A
- thumb_func_end sub_81027D0
-
- thumb_func_start sub_8102840
-sub_8102840: @ 8102840
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810289E
- cmp r1, 0
- bne _0810287C
- movs r1, 0x1
-_0810287C:
- ldr r2, _08102900
- ldr r0, _08102904
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x1
- bl sub_8103E04
-_0810289E:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081028FA
- cmp r1, 0
- bne _081028D8
- movs r1, 0x1
-_081028D8:
- ldr r2, _08102900
- ldr r0, _08102904
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x2
- bl sub_8103E04
-_081028FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102900: .4byte 0x02000000
-_08102904: .4byte gUnknown_083ECE6C
-_08102908: .4byte gUnknown_083ECE5A
- thumb_func_end sub_8102840
-
- thumb_func_start sub_810290C
-sub_810290C: @ 810290C
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _08102968
- cmp r1, 0
- beq _08102962
- ldr r2, _081029C8
- ldr r0, _081029CC
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_08102962:
- movs r0, 0x3
- bl sub_8103E04
-_08102968:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081029C2
- cmp r1, 0
- beq _081029BC
- ldr r2, _081029C8
- ldr r0, _081029CC
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_081029BC:
- movs r0, 0x4
- bl sub_8103E04
-_081029C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081029C8: .4byte 0x02000000
-_081029CC: .4byte gUnknown_083ECE6C
-_081029D0: .4byte gUnknown_083ECE5A
- thumb_func_end sub_810290C
-
- thumb_func_start sub_81029D4
-sub_81029D4: @ 81029D4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r3, r1
- bne _081029F8
- cmp r3, r2
- bne _081029F8
- ldr r0, _081029F4
- adds r0, r3, r0
- ldrb r0, [r0]
- b _08102A1E
- .align 2, 0
-_081029F4: .4byte gUnknown_083ECE52
-_081029F8:
- cmp r3, 0
- bne _08102A04
- cmp r1, 0
- bne _08102A04
- cmp r2, 0x1
- beq _08102A10
-_08102A04:
- cmp r3, 0x1
- bne _08102A14
- cmp r1, 0x1
- bne _08102A14
- cmp r2, 0
- bne _08102A14
-_08102A10:
- movs r0, 0x6
- b _08102A1E
-_08102A14:
- cmp r3, 0x4
- beq _08102A1C
- movs r0, 0x9
- b _08102A1E
-_08102A1C:
- movs r0, 0
-_08102A1E:
- pop {r1}
- bx r1
- thumb_func_end sub_81029D4
-
- thumb_func_start sub_8102A24
-sub_8102A24: @ 8102A24
- push {r4,lr}
- ldr r4, _08102A40
- adds r0, r4, 0
- movs r1, 0x4
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A40: .4byte sub_8102A64
- thumb_func_end sub_8102A24
-
- thumb_func_start sub_8102A44
-sub_8102A44: @ 8102A44
- push {lr}
- ldr r0, _08102A58
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08102A5C
- movs r0, 0
- b _08102A5E
- .align 2, 0
-_08102A58: .4byte sub_8102A64
-_08102A5C:
- movs r0, 0x1
-_08102A5E:
- pop {r1}
- bx r1
- thumb_func_end sub_8102A44
-
- thumb_func_start sub_8102A64
-sub_8102A64: @ 8102A64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102A94
- ldr r2, _08102A98
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102A76:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08102A76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A94: .4byte gUnknown_083ECB20
-_08102A98: .4byte gTasks
- thumb_func_end sub_8102A64
-
- thumb_func_start sub_8102A9C
-sub_8102A9C: @ 8102A9C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8103E38
- lsls r0, 24
- cmp r0, 0
- beq _08102AC8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _08102AC4
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08102ACA
- .align 2, 0
-_08102AC4: .4byte 0x02000000
-_08102AC8:
- movs r0, 0
-_08102ACA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102A9C
-
- thumb_func_start sub_8102AD0
-sub_8102AD0: @ 8102AD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08102B22
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102AF6
- movs r0, 0x15
- bl PlaySE
-_08102AF6:
- ldr r2, _08102B70
- ldrh r0, [r2, 0xE]
- subs r0, 0x1
- strh r0, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08102B74
- cmp r1, r0
- bgt _08102B0E
- adds r0, r3, 0x1
- strh r0, [r2, 0xC]
-_08102B0E:
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldr r0, _08102B78
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08102B22
- movs r0, 0x4
- strh r0, [r4, 0xA]
-_08102B22:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102B58
- ldr r0, _08102B78
- ldrh r1, [r0, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08102B58
- movs r0, 0x15
- bl PlaySE
- ldr r1, _08102B70
- ldrh r0, [r1, 0xE]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- ldr r2, _08102B7C
- cmp r0, r2
- ble _08102B54
- strh r2, [r1, 0xC]
-_08102B54:
- movs r0, 0
- strh r0, [r1, 0xE]
-_08102B58:
- ldr r0, _08102B70
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102B68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08102B68:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102B70: .4byte 0x02000000
-_08102B74: .4byte 0x0000270e
-_08102B78: .4byte gMain
-_08102B7C: .4byte 0x0000270f
- thumb_func_end sub_8102AD0
-
- thumb_func_start sub_8102B80
-sub_8102B80: @ 8102B80
- push {lr}
- bl sub_8103E7C
- lsls r0, 24
- cmp r0, 0
- beq _08102B9A
- ldr r0, _08102BA0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08102B9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102BA0: .4byte sub_8102A64
- thumb_func_end sub_8102B80
-
- thumb_func_start sub_8102BA4
-sub_8102BA4: @ 8102BA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _08102BF0
- lsls r2, r4, 1
- adds r0, 0x28
- adds r2, r0
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1
- movs r1, 0x15
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102BD4
- adds r0, 0x15
- lsls r0, 16
- lsrs r1, r0, 16
-_08102BD4:
- ldr r2, _08102BF4
- lsls r1, 16
- asrs r1, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r0, r4
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102BF0: .4byte 0x02000000
-_08102BF4: .4byte gUnknown_083ECCB2
- thumb_func_end sub_8102BA4
-
- thumb_func_start sub_8102BF8
-sub_8102BF8: @ 8102BF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- movs r6, 0
- ldr r0, _08102C40
- lsls r1, r5, 1
- adds r0, 0x1C
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- beq _08102C20
- ldr r6, _08102C44
-_08102C20:
- lsls r1, r4, 16
- asrs r1, 16
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102C40: .4byte 0x02000000
-_08102C44: .4byte 0x0000ffff
- thumb_func_end sub_8102BF8
-
- thumb_func_start sub_8102C48
-sub_8102C48: @ 8102C48
- push {lr}
- ldr r1, _08102C7C
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- adds r1, r0
- adds r0, r1, 0
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102C6E
- adds r0, 0x6
- lsls r0, 16
- lsrs r1, r0, 16
-_08102C6E:
- ldr r0, _08102C80
- lsls r1, 16
- asrs r1, 16
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_08102C7C: .4byte 0x02000000
-_08102C80: .4byte gUnknown_083ECCF1
- thumb_func_end sub_8102C48
-
- thumb_func_start sub_8102C84
-sub_8102C84: @ 8102C84
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- ldr r6, _08102CC8
- lsrs r5, 23
- adds r4, r6, 0
- adds r4, 0x1C
- adds r4, r5, r4
- lsls r1, 16
- asrs r1, 16
- ldrh r0, [r4]
- adds r1, r0
- strh r1, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xFC
- lsls r1, 1
- bl __modsi3
- strh r0, [r4]
- adds r6, 0x28
- adds r5, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl __divsi3
- movs r1, 0x15
- subs r1, r0
- strh r1, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08102CC8: .4byte 0x02000000
- thumb_func_end sub_8102C84
-
- thumb_func_start sub_8102CCC
-sub_8102CCC: @ 8102CCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, _08102D24
- lsls r1, r6, 1
- adds r0, 0x1C
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D18
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D00
- lsrs r4, r2, 16
-_08102D00:
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r6, 0
- bl sub_8102C84
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D18:
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102D24: .4byte 0x02000000
- thumb_func_end sub_8102CCC
-
- thumb_func_start sub_8102D28
-sub_8102D28: @ 8102D28
- push {r4,lr}
- ldr r4, _08102D58
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl __divsi3
- movs r1, 0x6
- subs r1, r0
- strh r1, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102D58: .4byte 0x02000000
- thumb_func_end sub_8102D28
-
- thumb_func_start sub_8102D5C
-sub_8102D5C: @ 8102D5C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _08102DA4
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D9A
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D84
- lsrs r4, r2, 16
-_08102D84:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D9A:
- lsls r0, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08102DA4: .4byte 0x02000000
- thumb_func_end sub_8102D5C
-
- thumb_func_start sub_8102DA8
-sub_8102DA8: @ 8102DA8
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _08102DE0
- ldr r7, _08102DE4
- ldr r6, _08102DE8
-_08102DB2:
- adds r0, r5, 0
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- strh r4, [r1, 0x26]
- adds r1, r4, r6
- strb r0, [r1]
- bl _call_via_r5
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08102DB2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08102DE0: .4byte sub_8102E68
-_08102DE4: .4byte gTasks
-_08102DE8: .4byte 0x0200003a
- thumb_func_end sub_8102DA8
-
- thumb_func_start sub_8102DEC
-sub_8102DEC: @ 8102DEC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08102E14
- ldr r1, _08102E18
- adds r1, 0x3A
- adds r0, r1
- ldrb r2, [r0]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0x1
- strh r2, [r1, 0x8]
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0x24]
- bx lr
- .align 2, 0
-_08102E14: .4byte gTasks
-_08102E18: .4byte 0x02000000
- thumb_func_end sub_8102DEC
-
- thumb_func_start sub_8102E1C
-sub_8102E1C: @ 8102E1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E38
- ldr r1, _08102E3C
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bx lr
- .align 2, 0
-_08102E38: .4byte gTasks
-_08102E3C: .4byte 0x02000000
- thumb_func_end sub_8102E1C
-
- thumb_func_start sub_8102E40
-sub_8102E40: @ 8102E40
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E60
- ldr r1, _08102E64
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08102E60: .4byte gTasks
-_08102E64: .4byte 0x02000000
- thumb_func_end sub_8102E40
-
- thumb_func_start sub_8102E68
-sub_8102E68: @ 8102E68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102E98
- ldr r2, _08102E9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102E7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08102E7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102E98: .4byte gUnknown_083ECB2C
-_08102E9C: .4byte gTasks
- thumb_func_end sub_8102E68
-
- thumb_func_start sub_8102EA0
-sub_8102EA0: @ 8102EA0
- movs r0, 0
- bx lr
- thumb_func_end sub_8102EA0
-
- thumb_func_start sub_8102EA4
-sub_8102EA4: @ 8102EA4
- push {lr}
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08102EBC
- movs r2, 0x1A
- ldrsh r1, [r1, r2]
- bl sub_8102C84
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102EBC: .4byte 0x02000000
- thumb_func_end sub_8102EA4
-
- thumb_func_start sub_8102EC0
-sub_8102EC0: @ 8102EC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x8]
- ldr r3, _08102F40
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r1
- strh r2, [r0]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x2E
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r3, 0xA]
- cmp r0, 0
- bne _08102F28
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08102F12
- ldrb r0, [r3, 0x6]
- cmp r0, 0
- beq _08102F12
- ldr r1, _08102F44
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- cmp r0, 0
- bne _08102F28
-_08102F12:
- ldr r1, _08102F40
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r1, _08102F48
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08102F28:
- ldr r0, _08102F40
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r0, 0x2E
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102F40: .4byte 0x02000000
-_08102F44: .4byte gUnknown_083ECB40
-_08102F48: .4byte gUnknown_083ECB4C
- thumb_func_end sub_8102EC0
-
- thumb_func_start sub_8102F4C
-sub_8102F4C: @ 8102F4C
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _08102F8C
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- ldr r5, _08102F90
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r6, r0, 1
- adds r7, r5, 0
- adds r7, 0x1C
- adds r0, r6, r7
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- beq _08102F94
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1A
- ldrsh r1, [r5, r6]
- bl sub_8102CCC
- b _08102FC8
- .align 2, 0
-_08102F8C: .4byte gUnknown_083ECB58
-_08102F90: .4byte 0x02000000
-_08102F94:
- adds r0, r5, 0
- adds r0, 0x2E
- adds r1, r6, r0
- ldrh r3, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08102FCC
- subs r0, r3, 0x1
- strh r0, [r1]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- bl sub_8102C84
- movs r6, 0x26
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x18
- bl __modsi3
-_08102FC8:
- lsls r0, 16
- lsrs r2, r0, 16
-_08102FCC:
- cmp r2, 0
- bne _08102FF8
- ldr r1, _08103004
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r1, 0x2E
- adds r0, r1
- movs r6, 0
- ldrsh r1, [r0, r6]
- cmp r1, 0
- bne _08102FF8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0xA]
- strh r1, [r4, 0xC]
-_08102FF8:
- movs r0, 0
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08103004: .4byte 0x02000000
- thumb_func_end sub_8102F4C
-
- thumb_func_start sub_8103008
-sub_8103008: @ 8103008
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, _08103058
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r4, r1, 0
- adds r4, 0x22
- adds r0, r4
- ldrh r1, [r2, 0xA]
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- negs r3, r0
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08103038
- lsls r0, r3, 16
- asrs r0, 17
- strh r0, [r2, 0xA]
-_08103038:
- movs r0, 0xA
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _0810304E
- strh r3, [r2, 0x8]
- strh r3, [r2, 0x24]
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
-_0810304E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103058: .4byte 0x02000000
- thumb_func_end sub_8103008
-
- thumb_func_start sub_810305C
-sub_810305C: @ 810305C
- push {r4,r5,lr}
- ldr r4, _0810309C
- ldrb r0, [r4, 0x4]
- bl sub_810250C
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _0810307A
- movs r5, 0
- movs r3, 0x1
-_0810307A:
- ldr r1, _081030A0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r3, 0
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810309C: .4byte 0x02000000
-_081030A0: .4byte gUnknown_083ECB64
- thumb_func_end sub_810305C
-
- thumb_func_start sub_81030A4
-sub_81030A4: @ 81030A4
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- asrs r3, 16
- movs r0, 0
- adds r1, r3, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, r4
- beq _081030CC
- cmp r0, r5
- bne _081030D8
-_081030CC:
- ldr r0, _081030D4
- strb r1, [r0, 0x7]
- movs r0, 0x1
- b _081030DA
- .align 2, 0
-_081030D4: .4byte 0x02000000
-_081030D8:
- movs r0, 0
-_081030DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81030A4
-
- thumb_func_start sub_81030E0
-sub_81030E0: @ 81030E0
- push {r4,lr}
- movs r1, 0x1
- lsls r0, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x2
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x3
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0810312C
-_08103128:
- movs r0, 0x1
- b _0810312E
-_0810312C:
- movs r0, 0
-_0810312E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81030E0
-
- thumb_func_start sub_8103134
-sub_8103134: @ 8103134
- push {lr}
- ldr r0, _08103148
- ldrb r1, [r0, 0x4]
- movs r0, 0xC2
- ands r0, r1
- cmp r0, 0
- bne _0810314C
- movs r0, 0
- b _0810314E
- .align 2, 0
-_08103148: .4byte 0x02000000
-_0810314C:
- movs r0, 0x1
-_0810314E:
- pop {r1}
- bx r1
- thumb_func_end sub_8103134
-
- thumb_func_start sub_8103154
-sub_8103154: @ 8103154
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r5, 0
- movs r0, 0x2
- mov r9, r0
- ldr r6, _08103194
-_0810316E:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r1, r9
- subs r0, r1, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r8
- adds r2, r7, 0
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103198
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r5, [r6, 0x2E]
- movs r0, 0x1
- b _081031A6
- .align 2, 0
-_08103194: .4byte 0x02000000
-_08103198:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810316E
- movs r0, 0
-_081031A6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8103154
-
- thumb_func_start sub_81031B4
-sub_81031B4: @ 81031B4
- 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, 24
- lsrs r1, 24
- mov r9, r1
- bl sub_8103134
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _081031E2
- movs r0, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _0810321E
-_081031E2:
- movs r0, 0x1
- mov r8, r0
- ldr r5, _0810320C
- movs r7, 0
-_081031EA:
- mov r1, r8
- lsls r0, r1, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103210
- mov r0, r8
- strh r0, [r5, 0x34]
- strh r7, [r5, 0x2E]
- movs r0, 0x1
- b _081032B2
- .align 2, 0
-_0810320C: .4byte 0x02000000
-_08103210:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x3
- ble _081031EA
-_0810321E:
- movs r0, 0x1
- mov r8, r0
- adds r7, r6, 0
- ldr r6, _0810326C
-_08103226:
- mov r1, r8
- lsls r5, r1, 16
- cmp r7, 0
- bne _0810323A
- asrs r0, r5, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081032A0
-_0810323A:
- movs r0, 0x1
- asrs r4, r5, 16
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _081032A0
- cmp r4, 0x1
- bne _08103270
- cmp r7, 0
- bne _08103266
- movs r0, 0x3
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103270
-_08103266:
- movs r0, 0x3
- strh r0, [r6, 0x34]
- b _0810329A
- .align 2, 0
-_0810326C: .4byte 0x02000000
-_08103270:
- asrs r0, r5, 16
- cmp r0, 0x3
- bgt _08103294
- adds r4, r0, 0x1
- cmp r7, 0
- bne _0810328A
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103294
-_0810328A:
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r4, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_08103294:
- movs r0, 0x1
- strh r0, [r6, 0x34]
- mov r0, r8
-_0810329A:
- strh r0, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_081032A0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r5, r1
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x4
- ble _08103226
- movs r0, 0
-_081032B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81031B4
-
- thumb_func_start sub_81032C0
-sub_81032C0: @ 81032C0
- push {lr}
- ldr r1, _081032E0
- ldr r0, _081032E4
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_081032E0: .4byte gUnknown_083ECB70
-_081032E4: .4byte 0x02000000
- thumb_func_end sub_81032C0
-
- thumb_func_start sub_81032E8
-sub_81032E8: @ 81032E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08103320
- movs r6, 0
- ldrh r1, [r0, 0x34]
- mov r8, r1
- movs r1, 0x34
- ldrsh r7, [r0, r1]
- adds r5, r0, 0
-_081032FC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5, 0x7]
- cmp r0, r1
- bne _08103324
- mov r0, r8
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- movs r0, 0x1
- b _08103332
- .align 2, 0
-_08103320: .4byte 0x02000000
-_08103324:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081032FC
- movs r0, 0
-_08103332:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81032E8
-
- thumb_func_start sub_810333C
-sub_810333C: @ 810333C
- push {r4-r7,lr}
- bl sub_81032E8
- lsls r0, 24
- cmp r0, 0
- beq _0810339A
- ldr r1, _0810338C
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _08103396
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08103396
- cmp r0, 0x4
- beq _08103396
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_08103364:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103364
- b _08103396
- .align 2, 0
-_0810338C: .4byte 0x02000000
-_08103390:
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
-_08103396:
- movs r0, 0x1
- b _081033D2
-_0810339A:
- ldr r1, _081033D8
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _081033D0
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_081033AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081033AA
-_081033D0:
- movs r0, 0
-_081033D2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081033D8: .4byte 0x02000000
- thumb_func_end sub_810333C
-
- thumb_func_start sub_81033DC
-sub_81033DC: @ 81033DC
- push {r4,lr}
- ldr r0, _08103414
- ldrb r3, [r0, 0x7]
- adds r4, r3, 0
- ldrb r2, [r0, 0x4]
- movs r1, 0x40
- ands r1, r2
- cmp r1, 0
- beq _081033F6
- movs r3, 0
- cmp r4, 0
- bne _081033F6
- movs r3, 0x1
-_081033F6:
- ldr r1, _08103418
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103414: .4byte 0x02000000
-_08103418: .4byte gUnknown_083ECB7C
- thumb_func_end sub_81033DC
-
- thumb_func_start sub_810341C
-sub_810341C: @ 810341C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0810345C
- movs r5, 0
- ldrh r1, [r0, 0x36]
- mov r8, r1
- movs r1, 0x36
- ldrsh r7, [r0, r1]
- adds r6, r0, 0
-_08103438:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r9
- bne _08103460
- mov r0, r8
- strh r0, [r6, 0x38]
- strh r5, [r6, 0x32]
- movs r0, 0x1
- b _0810346E
- .align 2, 0
-_0810345C: .4byte 0x02000000
-_08103460:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103438
- movs r0, 0
-_0810346E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810341C
-
- thumb_func_start sub_810347C
-sub_810347C: @ 810347C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _081034A0
- movs r2, 0x34
- ldrsh r1, [r0, r2]
- movs r2, 0x36
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _081034B4
- adds r0, r6, 0
- bl sub_810341C
- lsls r0, 24
- lsrs r0, 24
- b _081034EA
- .align 2, 0
-_081034A0: .4byte 0x02000000
-_081034A4:
- ldr r0, _081034B0
- strh r5, [r0, 0x32]
- mov r1, r8
- strh r1, [r0, 0x38]
- movs r0, 0x1
- b _081034EA
- .align 2, 0
-_081034B0: .4byte 0x02000000
-_081034B4:
- movs r2, 0x1
- mov r8, r2
- cmp r1, 0x1
- bne _081034C0
- movs r0, 0x3
- mov r8, r0
-_081034C0:
- movs r5, 0
- mov r7, r8
-_081034C4:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _081034A4
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081034C4
- movs r0, 0
-_081034EA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810347C
-
- thumb_func_start sub_81034F4
-sub_81034F4: @ 81034F4
- push {r4,r5,lr}
- movs r5, 0
- b _08103500
-_081034FA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103500:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081034FA
- ldr r0, _0810351C
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810351C: .4byte 0x02000000
- thumb_func_end sub_81034F4
-
- thumb_func_start sub_8103520
-sub_8103520: @ 8103520
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0810352E
- movs r0, 0x1
- b _08103538
-_0810352E:
- cmp r0, 0x1
- beq _08103536
- movs r0, 0
- b _0810353C
-_08103536:
- movs r0, 0
-_08103538:
- strb r0, [r1]
- movs r0, 0x1
-_0810353C:
- pop {r1}
- bx r1
- thumb_func_end sub_8103520
-
- thumb_func_start sub_8103540
-sub_8103540: @ 8103540
- push {lr}
- ldr r1, _0810355C
- ldr r0, _08103560
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0810355C: .4byte gUnknown_083ECB88
-_08103560: .4byte 0x02000000
- thumb_func_end sub_8103540
-
- thumb_func_start sub_8103564
-sub_8103564: @ 8103564
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _081035D0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081035E0
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081035E0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _081035E0
- movs r5, 0
- mov r7, sp
- movs r0, 0x2
- mov r8, r0
- adds r6, r4, 0
-_081035AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r0, r8
- subs r1, r0, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081035D4
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
- b _081035E0
- .align 2, 0
-_081035D0: .4byte 0x02000000
-_081035D4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081035AA
-_081035E0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103564
-
- thumb_func_start j5_08111E84
-j5_08111E84: @ 81035EC
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _08103650
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08103660
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103660
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _08103660
- movs r6, 0
- mov r7, sp
- adds r5, r4, 0
-_0810362A:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08103654
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _08103660
- .align 2, 0
-_08103650: .4byte 0x02000000
-_08103654:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810362A
-_08103660:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end j5_08111E84
-
- thumb_func_start sub_8103668
-sub_8103668: @ 8103668
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _0810368C
- ldrh r3, [r4, 0x34]
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _0810375A
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810375A
- cmp r2, 0x2
- bne _081036AE
- bl j5_08111E84
- b _0810375A
- .align 2, 0
-_0810368C: .4byte 0x02000000
-_08103690:
- ldr r0, _0810369C
- movs r1, 0
- strh r6, [r0, 0x36]
- strh r1, [r0, 0x30]
- b _0810375A
- .align 2, 0
-_0810369C: .4byte 0x02000000
-_081036A0:
- movs r0, 0x2
- strh r0, [r5, 0x36]
- adds r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_081036AA:
- movs r0, 0x3
- b _08103736
-_081036AE:
- ldrh r1, [r4, 0x2E]
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _0810375A
- movs r6, 0x2
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _081036D8
- movs r6, 0x3
-_081036D8:
- movs r5, 0
- mov r7, sp
-_081036DC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _08103690
- lsls r1, r5, 16
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x1
- ble _081036DC
- movs r6, 0x1
- mov r7, sp
- ldr r5, _0810373C
-_0810370E:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0810374E
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08103740
- cmp r4, 0x2
- ble _081036A0
-_08103736:
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _0810375A
- .align 2, 0
-_0810373C: .4byte 0x02000000
-_08103740:
- cmp r4, 0x2
- ble _081036AA
- movs r0, 0x2
- strh r0, [r5, 0x36]
- subs r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_0810374E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810370E
-_0810375A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103668
-
- thumb_func_start sub_8103764
-sub_8103764: @ 8103764
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r0, 0
- bne _08103778
- cmp r1, 0x1
- beq _08103780
-_08103778:
- cmp r0, 0x1
- bne _08103784
- cmp r2, 0
- bne _08103784
-_08103780:
- movs r0, 0x1
- b _08103786
-_08103784:
- movs r0, 0
-_08103786:
- pop {r1}
- bx r1
- thumb_func_end sub_8103764
-
- thumb_func_start sub_810378C
-sub_810378C: @ 810378C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037A6
- cmp r1, 0x1
- bne _081037A6
- cmp r2, 0
- beq _081037B2
-_081037A6:
- cmp r0, 0x1
- bne _081037B6
- cmp r1, 0
- bne _081037B6
- cmp r2, 0x1
- bne _081037B6
-_081037B2:
- movs r0, 0x1
- b _081037B8
-_081037B6:
- movs r0, 0
-_081037B8:
- pop {r1}
- bx r1
- thumb_func_end sub_810378C
-
- thumb_func_start sub_81037BC
-sub_81037BC: @ 81037BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037D6
- cmp r1, 0x1
- bne _081037D6
- cmp r2, 0
- beq _08103802
-_081037D6:
- cmp r0, 0x1
- bne _081037E2
- cmp r1, 0
- bne _081037E2
- cmp r2, 0x1
- beq _08103802
-_081037E2:
- cmp r0, 0
- bne _081037EE
- cmp r1, 0
- bne _081037EE
- cmp r2, 0x1
- beq _08103802
-_081037EE:
- cmp r0, 0x1
- bne _081037FA
- cmp r1, 0x1
- bne _081037FA
- cmp r2, 0
- beq _08103802
-_081037FA:
- cmp r0, r1
- bne _08103806
- cmp r0, r2
- bne _08103806
-_08103802:
- movs r0, 0
- b _08103808
-_08103806:
- movs r0, 0x1
-_08103808:
- pop {r1}
- bx r1
- thumb_func_end sub_81037BC
-
- thumb_func_start sub_810380C
-sub_810380C: @ 810380C
- push {lr}
- ldr r1, _08103828
- ldr r0, _0810382C
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08103828: .4byte gUnknown_083ECB94
-_0810382C: .4byte 0x02000000
- thumb_func_end sub_810380C
-
- thumb_func_start sub_8103830
-sub_8103830: @ 8103830
- push {r4-r7,lr}
- movs r6, 0
- ldr r7, _08103868
- ldrh r1, [r7, 0x2E]
- movs r4, 0x2
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x30]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, r1
- bne _081038A0
- movs r4, 0x2
- b _08103876
- .align 2, 0
-_08103868: .4byte 0x02000000
-_0810386C:
- lsls r0, r6, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r6, r0, 16
-_08103876:
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810386C
- cmp r5, 0
- bne _08103896
- cmp r0, 0x1
- beq _0810386C
-_08103896:
- cmp r5, 0x1
- bne _08103900
- cmp r0, 0
- beq _0810386C
- b _08103900
-_081038A0:
- adds r0, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103900
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081038DC
- movs r7, 0x2
-_081038B8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08103900
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081038B8
-_081038DC:
- movs r6, 0
- movs r7, 0x2
- b _081038E8
-_081038E2:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081038E8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _081038E2
-_08103900:
- ldr r0, _0810390C
- strh r6, [r0, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810390C: .4byte 0x02000000
- thumb_func_end sub_8103830
-
- thumb_func_start sub_8103910
-sub_8103910: @ 8103910
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r4, _08103978
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _081039A6
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- bne _081039A6
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081039A6
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _081039A6
- movs r5, 0
- b _08103982
- .align 2, 0
-_08103978: .4byte 0x02000000
-_0810397C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103982:
- lsls r6, r5, 16
- asrs r5, r6, 16
- cmp r5, 0x4
- bgt _081039A6
- ldr r0, _08103A34
- ldrh r1, [r0, 0x36]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, r4
- bne _0810397C
- lsrs r6, 16
- str r6, [sp]
-_081039A6:
- ldr r0, _08103A34
- mov r9, r0
-_081039AA:
- movs r5, 0x1
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
-_081039B6:
- mov r3, r9
- ldrh r1, [r3, 0x2E]
- lsls r5, 16
- asrs r4, r5, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrh r1, [r0, 0x30]
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r10
- asrs r0, r1, 16
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103A38
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103A24
- mov r2, r9
- ldrb r1, [r2, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103A38
-_08103A24:
- mov r3, r8
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r0, 16
- mov r8, r0
- b _08103A46
- .align 2, 0
-_08103A34: .4byte 0x02000000
-_08103A38:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r5, r2
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081039B6
-_08103A46:
- mov r3, r8
- cmp r3, 0
- beq _08103A5C
- ldr r1, [sp]
- lsls r0, r1, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r0, 16
- str r0, [sp]
- b _081039AA
-_08103A5C:
- ldr r0, _08103A74
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r0, 0x32]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103A74: .4byte 0x02000000
- thumb_func_end sub_8103910
-
- thumb_func_start sub_8103A78
-sub_8103A78: @ 8103A78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl sub_8103910
- ldr r4, _08103B10
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08103B20
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- beq _08103B20
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103B20
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103B20
- movs r1, 0x1
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _08103AE0
- movs r1, 0x3
-_08103AE0:
- movs r3, 0
- lsls r1, 16
- mov r8, r1
- adds r7, r4, 0
-_08103AE8:
- ldrh r2, [r7, 0x32]
- lsls r0, r3, 16
- asrs r5, r0, 16
- adds r2, r5, r2
- mov r3, r8
- asrs r1, r3, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r6, r4
- bne _08103B14
- ldrh r0, [r7, 0x32]
- adds r0, r5, r0
- strh r0, [r7, 0x32]
- b _08103B20
- .align 2, 0
-_08103B10: .4byte 0x02000000
-_08103B14:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103AE8
-_08103B20:
- ldr r7, _08103B90
-_08103B22:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103B94
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103B88
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103B94
-_08103B88:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B22
- .align 2, 0
-_08103B90: .4byte 0x02000000
-_08103B94:
- ldr r7, _08103C04
-_08103B96:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103C08
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103BFC
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103C08
-_08103BFC:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B96
- .align 2, 0
-_08103C04: .4byte 0x02000000
-_08103C08:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103A78
-
- thumb_func_start sub_8103C14
-sub_8103C14: @ 8103C14
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08103C40
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103C44
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C40: .4byte sub_8103C48
-_08103C44: .4byte gTasks
- thumb_func_end sub_8103C14
-
- thumb_func_start sub_8103C48
-sub_8103C48: @ 8103C48
- push {r4,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08103C70
- ldr r2, _08103C74
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r4, 0x8
- ldrsh r2, [r0, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C70: .4byte gUnknown_083ECBA0
-_08103C74: .4byte gTasks
- thumb_func_end sub_8103C48
-
- thumb_func_start sub_8103C78
-sub_8103C78: @ 8103C78
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08103CA8
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x73
- str r1, [sp]
- movs r1, 0x62
- movs r2, 0x63
- movs r3, 0x72
- bl sub_81065A8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CA8: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103C78
-
- thumb_func_start sub_8103CAC
-sub_8103CAC: @ 8103CAC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _08103CC4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08103CC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8103CAC
-
- thumb_func_start sub_8103CC8
-sub_8103CC8: @ 8103CC8
- push {r4,lr}
- sub sp, 0x4
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _08103CFC
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x53
- str r1, [sp]
- movs r1, 0x42
- movs r2, 0x43
- movs r3, 0x52
- bl sub_81065A8
- adds r0, r4, 0
- bl DestroyTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CFC: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103CC8
-
- thumb_func_start sub_8103D00
-sub_8103D00: @ 8103D00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D20
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D24
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D20: .4byte gUnknown_083EDD08
-_08103D24: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D00
-
- thumb_func_start sub_8103D28
-sub_8103D28: @ 8103D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D48
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D4C
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D48: .4byte gUnknown_083EDD1C
-_08103D4C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D28
-
- thumb_func_start sub_8103D50
-sub_8103D50: @ 8103D50
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103D84
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103D7C
- ldr r7, _08103D88
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103D68:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D00
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103D68
-_08103D7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103D84: .4byte gUnknown_083EDD3B
-_08103D88: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D50
-
- thumb_func_start sub_8103D8C
-sub_8103D8C: @ 8103D8C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103DC0
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103DB8
- ldr r7, _08103DC4
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103DA4:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D28
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103DA4
-_08103DB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DC0: .4byte gUnknown_083EDD3B
-_08103DC4: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D8C
-
- thumb_func_start sub_8103DC8
-sub_8103DC8: @ 8103DC8
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _08103DF8
- ldr r5, _08103DFC
-_08103DD0:
- ldr r0, _08103E00
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r4, [r1, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103DD0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DF8: .4byte gSprites
-_08103DFC: .4byte 0x02000044
-_08103E00: .4byte sub_8103EE4
- thumb_func_end sub_8103DC8
-
- thumb_func_start sub_8103E04
-sub_8103E04: @ 8103E04
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08103E30
- adds r1, 0x44
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08103E34
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x30]
- movs r1, 0x4
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x34]
- strh r2, [r0, 0x36]
- movs r1, 0x2
- strh r1, [r0, 0x38]
- strh r2, [r0, 0x3C]
- bx lr
- .align 2, 0
-_08103E30: .4byte 0x02000000
-_08103E34: .4byte gSprites
- thumb_func_end sub_8103E04
-
- thumb_func_start sub_8103E38
-sub_8103E38: @ 8103E38
- push {r4,r5,lr}
- movs r2, 0
- ldr r4, _08103E60
- ldr r3, _08103E64
-_08103E40:
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r3
- movs r5, 0x30
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r5, 0x32
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r0, 0
- b _08103E74
- .align 2, 0
-_08103E60: .4byte 0x02000044
-_08103E64: .4byte gSprites
-_08103E68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08103E40
- movs r0, 0x1
-_08103E74:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E38
-
- thumb_func_start sub_8103E7C
-sub_8103E7C: @ 8103E7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08103E94
-_08103E82:
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8103EAC
- lsls r0, 24
- cmp r0, 0
- bne _08103E98
- movs r0, 0
- b _08103EA4
- .align 2, 0
-_08103E94: .4byte 0x02000044
-_08103E98:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103E82
- movs r0, 0x1
-_08103EA4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E7C
-
- thumb_func_start sub_8103EAC
-sub_8103EAC: @ 8103EAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08103EC8
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08103ECC
- movs r0, 0x1
- b _08103EDE
- .align 2, 0
-_08103EC8: .4byte gSprites
-_08103ECC:
- ldrh r2, [r1, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08103EDA
- movs r0, 0
- strh r0, [r1, 0x30]
-_08103EDA:
- lsls r0, r2, 24
- lsrs r0, 24
-_08103EDE:
- pop {r1}
- bx r1
- thumb_func_end sub_8103EAC
-
- thumb_func_start sub_8103EE4
-sub_8103EE4: @ 8103EE4
- push {r4-r7,lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F66
- ldrh r0, [r2, 0x34]
- subs r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08103F4E
- movs r0, 0
- strh r0, [r2, 0x3C]
- movs r6, 0x1
- strh r6, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r0, r1, r3
- strh r0, [r2, 0x36]
- movs r4, 0x4
- ldrh r5, [r2, 0x32]
- movs r7, 0x32
- ldrsh r3, [r2, r7]
- cmp r3, 0
- beq _08103F20
- movs r4, 0x8
-_08103F20:
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bgt _08103F38
- strh r6, [r2, 0x3C]
- negs r0, r1
- strh r0, [r2, 0x38]
- cmp r3, 0
- beq _08103F4E
- subs r0, r5, 0x1
- strh r0, [r2, 0x32]
- b _08103F40
-_08103F38:
- cmp r0, r4
- blt _08103F40
- negs r0, r1
- strh r0, [r2, 0x38]
-_08103F40:
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F4E
- ldrh r0, [r2, 0x34]
- lsls r0, 1
- strh r0, [r2, 0x34]
-_08103F4E:
- ldr r1, _08103F6C
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- adds r0, r1
- ldrb r0, [r0]
- ldrh r3, [r2, 0x36]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r3, 0
- adds r2, r3, 0
- bl sub_8085D08
-_08103F66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F6C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103EE4
-
- thumb_func_start sub_8103F70
-sub_8103F70: @ 8103F70
- push {r4,lr}
- ldr r4, _08103F98
- adds r0, r4, 0
- movs r1, 0x6
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103F9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0xE]
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F98: .4byte sub_8103FE8
-_08103F9C: .4byte gTasks
- thumb_func_end sub_8103F70
-
- thumb_func_start sub_8103FA0
-sub_8103FA0: @ 8103FA0
- push {lr}
- ldr r0, _08103FC4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08103FC8
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08103FCC
- movs r0, 0
- b _08103FE0
- .align 2, 0
-_08103FC4: .4byte sub_8103FE8
-_08103FC8: .4byte gTasks
-_08103FCC:
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _08103FE4
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
-_08103FE0:
- pop {r1}
- bx r1
- .align 2, 0
-_08103FE4: .4byte gUnknown_083EDDAC
- thumb_func_end sub_8103FA0
-
- thumb_func_start sub_8103FE8
-sub_8103FE8: @ 8103FE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08104040
- adds r2, r1, r0
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08104026
- movs r0, 0x4
- strh r0, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- adds r0, r1, r3
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08104022
- cmp r0, 0x2
- bne _08104026
-_08104022:
- negs r0, r1
- strh r0, [r2, 0xE]
-_08104026:
- ldr r0, _08104044
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08104040: .4byte gTasks
-_08104044: .4byte gUnknown_083EDDA0
- thumb_func_end sub_8103FE8
-
- thumb_func_start sub_8104048
-sub_8104048: @ 8104048
- push {lr}
- ldr r0, _0810405C
- movs r1, 0x8
- bl CreateTask
- ldr r1, _08104060
- adds r1, 0x3E
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810405C: .4byte sub_81040E8
-_08104060: .4byte 0x02000000
- thumb_func_end sub_8104048
-
- thumb_func_start sub_8104064
-sub_8104064: @ 8104064
- push {r4,lr}
- ldr r0, _08104090
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08104094
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r1, 0x1
- strh r1, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104090: .4byte 0x02000000
-_08104094: .4byte gTasks
- thumb_func_end sub_8104064
-
- thumb_func_start sub_8104098
-sub_8104098: @ 8104098
- push {r4,lr}
- ldr r0, _081040C0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081040C4
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r0, 0x3
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081040C0: .4byte 0x02000000
-_081040C4: .4byte gTasks
- thumb_func_end sub_8104098
-
- thumb_func_start sub_81040C8
-sub_81040C8: @ 81040C8
- ldr r2, _081040E0
- ldr r0, _081040E4
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_081040E0: .4byte gTasks
-_081040E4: .4byte 0x02000000
- thumb_func_end sub_81040C8
-
- thumb_func_start sub_81040E8
-sub_81040E8: @ 81040E8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104110
- ldr r2, _08104114
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08104110: .4byte gUnknown_083ECBB4
-_08104114: .4byte gTasks
- thumb_func_end sub_81040E8
-
- thumb_func_start nullsub_68
-nullsub_68: @ 8104118
- bx lr
- thumb_func_end nullsub_68
-
- thumb_func_start sub_810411C
-sub_810411C: @ 810411C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r0, 19
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- asrs r0, 16
- movs r1, 0x14
- bl sub_8105B1C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810411C
-
- thumb_func_start sub_8104144
-sub_8104144: @ 8104144
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08104174
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0810419E
- ldrh r1, [r4, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _08104178
- movs r0, 0x1
- b _0810417E
- .align 2, 0
-_08104174: .4byte gSprites
-_08104178:
- cmp r1, 0x10
- bne _0810417E
- movs r0, 0x2
-_0810417E:
- lsls r1, r2, 16
- asrs r1, 15
- ldr r2, _081041A4
- adds r1, r2
- adds r1, 0x80
- ldr r2, _081041A8
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r4, 0xC]
- bl sub_8105B88
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0x26]
-_0810419E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081041A4: .4byte 0x0600e800
-_081041A8: .4byte gUnknown_083ECBC4
- thumb_func_end sub_8104144
-
- thumb_func_start sub_81041AC
-sub_81041AC: @ 81041AC
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _081041C6
- movs r2, 0x1
- b _081041CC
-_081041C6:
- cmp r1, 0x10
- bne _081041CC
- movs r2, 0x2
-_081041CC:
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _081041F0
- lsls r0, r4, 16
- asrs r0, 15
- ldr r1, _08104214
- adds r0, r1
- adds r0, 0x80
- ldr r1, _08104218
- lsls r2, 2
- adds r1, 0x2
- adds r2, r1
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
-_081041F0:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _08104202
- movs r0, 0
- strh r0, [r3, 0xC]
-_08104202:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0810420E
- strh r0, [r3, 0x8]
- strh r0, [r3, 0x26]
-_0810420E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104214: .4byte 0x0600e800
-_08104218: .4byte gUnknown_083ECBC4
- thumb_func_end sub_81041AC
-
- thumb_func_start sub_810421C
-sub_810421C: @ 810421C
- push {lr}
- movs r1, 0x2
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0
-_08104226:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104226
- pop {r0}
- bx r0
- thumb_func_end sub_810421C
-
- thumb_func_start sub_810423C
-sub_810423C: @ 810423C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0x3
- ldr r6, _08104268
- movs r4, 0
- ldr r0, _0810426C
- mov r8, r0
- ldr r1, _08104270
- mov r12, r1
- cmp r4, r5
- bge _081042A6
- ldr r7, _08104274
-_0810425A:
- movs r3, 0
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- bne _08104278
- movs r3, 0x1
- b _0810427E
- .align 2, 0
-_08104268: .4byte 0x0600e800
-_0810426C: .4byte gTasks
-_08104270: .4byte 0x02000000
-_08104274: .4byte gUnknown_083ECBC4
-_08104278:
- cmp r0, 0xF
- bne _0810427E
- movs r3, 0x2
-_0810427E:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _0810425A
-_081042A6:
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- bgt _081042F0
- ldr r7, _081042BC
-_081042B0:
- movs r3, 0
- asrs r0, r1, 16
- cmp r0, 0
- bne _081042C0
- movs r3, 0x1
- b _081042C6
- .align 2, 0
-_081042BC: .4byte gUnknown_083ECBC4 + 0x2
-_081042C0:
- cmp r0, 0xF
- bne _081042C6
- movs r3, 0x2
-_081042C6:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- ble _081042B0
-_081042F0:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r8
- strh r5, [r0, 0xA]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810423C
-
- thumb_func_start sub_810430C
-sub_810430C: @ 810430C
- push {r4,lr}
- ldr r4, _08104328
- adds r0, r4, 0
- movs r1, 0x7
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104328: .4byte sub_810434C
- thumb_func_end sub_810430C
-
- thumb_func_start sub_810432C
-sub_810432C: @ 810432C
- push {lr}
- ldr r0, _08104340
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104344
- movs r0, 0
- b _08104346
- .align 2, 0
-_08104340: .4byte sub_810434C
-_08104344:
- movs r0, 0x1
-_08104346:
- pop {r1}
- bx r1
- thumb_func_end sub_810432C
-
- thumb_func_start sub_810434C
-sub_810434C: @ 810434C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104374
- ldr r2, _08104378
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08104374: .4byte gUnknown_083ECBD0
-_08104378: .4byte gTasks
- thumb_func_end sub_810434C
-
- thumb_func_start sub_810437C
-sub_810437C: @ 810437C
- push {lr}
- ldr r1, _081043DC
- movs r2, 0
- strb r2, [r1, 0xA]
- strh r2, [r1, 0x14]
- strh r2, [r1, 0x16]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- movs r1, 0x1E
- strh r1, [r0, 0xC]
- movs r1, 0xA0
- lsls r1, 3
- strh r1, [r0, 0x10]
- ldr r0, _081043E0
- strh r2, [r0]
- ldr r0, _081043E4
- strh r2, [r0]
- ldr r0, _081043E8
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- movs r0, 0x1E
- movs r1, 0
- bl sub_8104A40
- bl sub_81051C0
- bl sub_8105100
- bl sub_81052EC
- bl sub_81053A0
- bl sub_810545C
- bl sub_8102680
- bl StopMapMusic
- movs r0, 0xC4
- lsls r0, 1
- bl PlayNewMapMusic
- pop {r0}
- bx r0
- .align 2, 0
-_081043DC: .4byte 0x02000000
-_081043E0: .4byte gSpriteCoordOffsetX
-_081043E4: .4byte gSpriteCoordOffsetY
-_081043E8: .4byte REG_BG1HOFS
- thumb_func_end sub_810437C
-
- thumb_func_start sub_81043EC
-sub_81043EC: @ 81043EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810445C
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r4, 0xA]
- adds r2, 0x8
- strh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xF0
- movs r1, 0xFF
- ands r0, r1
- lsrs r3, r0, 3
- ldr r1, _08104460
- ldr r0, _08104464
- ands r2, r0
- strh r2, [r1]
- adds r2, r3, 0
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r2, r0
- beq _08104438
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bgt _08104438
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- adds r0, r2, 0
- bl sub_8104A40
-_08104438:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC7
- ble _0810444A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xE]
-_0810444A:
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810445C: .4byte gSpriteCoordOffsetX
-_08104460: .4byte REG_BG1HOFS
-_08104464: .4byte 0x000001ff
- thumb_func_end sub_81043EC
-
- thumb_func_start sub_8104468
-sub_8104468: @ 8104468
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104492
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105578
- bl sub_81056F0
-_08104492:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104468
-
- thumb_func_start sub_8104498
-sub_8104498: @ 8104498
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r1, _08104534
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _08104538
- movs r2, 0x8
- bl memcpy
- add r6, sp, 0xC
- ldr r1, _0810453C
- adds r0, r6, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r7, 0x10]
- subs r0, 0x4
- strh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- movs r5, 0x4
- subs r5, r0
- lsls r4, r5, 1
- add r8, r4
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_8105688
- adds r6, r4
- movs r1, 0
- ldrsh r0, [r6, r1]
- bl sub_81057E8
- ldr r0, _08104540
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104544
- adds r0, r1
- mov r2, sp
- adds r1, r2, r5
- ldrb r1, [r1]
- bl StartSpriteAnimIfDifferent
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bgt _08104526
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- strh r1, [r7, 0x10]
- movs r0, 0
- strh r0, [r7, 0x12]
-_08104526:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104534: .4byte gUnknown_083ECC1C
-_08104538: .4byte gUnknown_083ECC20
-_0810453C: .4byte gUnknown_083ECC28
-_08104540: .4byte 0x02000000
-_08104544: .4byte gSprites
- thumb_func_end sub_8104498
-
- thumb_func_start sub_8104548
-sub_8104548: @ 8104548
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _0810458A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
- movs r0, 0x2
- bl sub_81057E8
- ldr r0, _08104590
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104594
- adds r0, r1
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
-_0810458A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104590: .4byte 0x02000000
-_08104594: .4byte gSprites
- thumb_func_end sub_8104548
-
- thumb_func_start sub_8104598
-sub_8104598: @ 8104598
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x80
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _081045C4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
-_081045C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104598
-
- thumb_func_start sub_81045CC
-sub_81045CC: @ 81045CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _08104634
- movs r0, 0
- strh r0, [r4, 0x12]
- ldr r1, _0810460C
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _08104610
- ldrb r1, [r1, 0xA]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0810462E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
- .align 2, 0
-_0810460C: .4byte 0x02000000
-_08104610:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0810461E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
-_0810461E:
- ldrh r0, [r4, 0x14]
- bl sub_81026DC
- lsls r0, 24
- cmp r0, 0
- beq _0810462E
- movs r0, 0xE
-_0810462C:
- strh r0, [r4, 0x8]
-_0810462E:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
-_08104634:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81045CC
-
- thumb_func_start sub_810463C
-sub_810463C: @ 810463C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _08104660
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r0, 0
- beq _08104664
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D5C
- b _08104688
- .align 2, 0
-_08104660: .4byte 0x02000000
-_08104664:
- movs r0, 0x1
- bl sub_8102C48
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x5]
- cmp r0, r1
- beq _08104692
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
-_08104688:
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
-_08104692:
- lsls r0, r5, 16
- asrs r5, r0, 16
- cmp r5, 0
- bne _081046B4
- movs r0, 0x1
- bl sub_8102C48
- ldr r1, _081046BC
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- bne _081046B4
- strh r5, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081046B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081046BC: .4byte 0x02000000
- thumb_func_end sub_810463C
-
- thumb_func_start sub_81046C0
-sub_81046C0: @ 81046C0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104758
- bl StopMapMusic
- bl sub_81056C0
- bl sub_8105804
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r5, _08104710
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _0810471C
- movs r0, 0xA0
- strh r0, [r4, 0x10]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104714
- adds r0, r1
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldr r0, _08104718
- bl PlayFanfare
- b _08104758
- .align 2, 0
-_08104710: .4byte 0x02000000
-_08104714: .4byte gSprites
-_08104718: .4byte 0x00000187
-_0810471C:
- movs r0, 0xC0
- strh r0, [r4, 0x10]
- adds r6, r5, 0
- adds r6, 0x3F
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08104760
- adds r0, r4
- movs r1, 0x4
- bl StartSpriteAnimIfDifferent
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2B
- strb r7, [r0]
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _08104750
- bl sub_8104098
- strb r7, [r5, 0x2]
-_08104750:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
-_08104758:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104760: .4byte gSprites
- thumb_func_end sub_81046C0
-
- thumb_func_start sub_8104764
-sub_8104764: @ 8104764
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0810477C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0810478C
-_0810477C:
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _0810478C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0810478C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104764
-
- thumb_func_start sub_8104794
-sub_8104794: @ 8104794
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _081047D4
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r3, 0xA]
- adds r2, 0x8
- strh r2, [r3, 0xA]
- ldrh r0, [r3, 0xE]
- adds r0, 0x8
- strh r0, [r3, 0xE]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- subs r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- lsrs r4, r0, 3
- ldr r1, _081047D8
- ldr r0, _081047DC
- ands r2, r0
- strh r2, [r1]
- ldrh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 19
- cmp r0, 0x19
- bgt _081047E0
- adds r0, r4, 0
- bl sub_8104A88
- b _081047E6
- .align 2, 0
-_081047D4: .4byte gSpriteCoordOffsetX
-_081047D8: .4byte REG_BG1HOFS
-_081047DC: .4byte 0x000001ff
-_081047E0:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_081047E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104794
-
- thumb_func_start sub_81047EC
-sub_81047EC: @ 81047EC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _08104834
- movs r6, 0
- strb r6, [r4, 0xB]
- ldrb r0, [r4, 0x5]
- strb r0, [r4, 0xA]
- ldr r0, _08104838
- strh r6, [r0]
- ldr r0, _0810483C
- strh r6, [r0]
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- bl sub_810514C
- bl sub_81054B8
- bl sub_8105524
- adds r0, r4, 0
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _08104844
- ldr r0, _08104840
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0810485A
- .align 2, 0
-_08104834: .4byte 0x02000000
-_08104838: .4byte gSpriteCoordOffsetX
-_0810483C: .4byte REG_BG1HOFS
-_08104840: .4byte sub_810434C
-_08104844:
- movs r0, 0x4
- bl sub_8104CAC
- bl dp15_jump_random_unknown
- strh r0, [r5, 0xA]
- strh r6, [r5, 0xC]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0810485A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81047EC
-
- thumb_func_start sub_8104860
-sub_8104860: @ 8104860
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0810487C
- ldrh r0, [r5, 0x1A]
- lsls r6, r0, 16
- asrs r1, r6, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08104880
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081048A2
- .align 2, 0
-_0810487C: .4byte 0x02000000
-_08104880:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _081048A2
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _081048A2
- asrs r0, r6, 17
- strh r0, [r5, 0x1A]
-_081048A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8104860
-
- thumb_func_start sub_81048A8
-sub_81048A8: @ 81048A8
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081048C2
- ldr r0, _081048C8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_081048C2:
- pop {r0}
- bx r0
- .align 2, 0
-_081048C8: .4byte sub_810434C
- thumb_func_end sub_81048A8
-
- thumb_func_start sub_81048CC
-sub_81048CC: @ 81048CC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_81054B8
- bl sub_81056C0
- bl sub_8105804
- bl sub_8105854
- ldr r5, _08104934
- ldr r3, _08104938
- adds r0, r3, 0
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x3F
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- bl StopMapMusic
- ldr r0, _0810493C
- bl PlayFanfare
- movs r0, 0xB2
- bl PlaySE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104934: .4byte gSprites
-_08104938: .4byte 0x02000000
-_0810493C: .4byte 0x00000187
- thumb_func_end sub_81048CC
-
- thumb_func_start sub_8104940
-sub_8104940: @ 8104940
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _081049B8
- ldrh r1, [r4, 0x10]
- strh r1, [r0]
- ldr r0, _081049BC
- strh r1, [r0]
- ldrh r1, [r4, 0x12]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810495E
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
-_0810495E:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _08104974
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 17
- strh r0, [r4, 0x10]
-_08104974:
- movs r0, 0x10
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081049B0
- bl sub_81058A0
- bl sub_81058C4
- bl sub_8105284
- bl sub_81059E8
- ldr r2, _081049C0
- ldr r0, _081049C4
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r5, [r4, 0x12]
-_081049B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081049B8: .4byte gSpriteCoordOffsetY
-_081049BC: .4byte REG_BG1VOFS
-_081049C0: .4byte gSprites
-_081049C4: .4byte 0x02000000
- thumb_func_end sub_8104940
-
- thumb_func_start sub_81049C8
-sub_81049C8: @ 81049C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081049F0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081049F4
- strh r1, [r0]
- bl sub_8105ACC
- lsls r0, 24
- cmp r0, 0
- beq _081049EA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105AEC
-_081049EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081049F0: .4byte gSpriteCoordOffsetY
-_081049F4: .4byte REG_BG1VOFS
- thumb_func_end sub_81049C8
-
- thumb_func_start sub_81049F8
-sub_81049F8: @ 81049F8
- push {lr}
- ldr r0, _08104A30
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08104A34
- strh r1, [r0]
- ldr r0, _08104A38
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- bl sub_810514C
- bl sub_8105554
- bl sub_8105524
- bl sub_81059B8
- ldr r0, _08104A3C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104A30: .4byte gSpriteCoordOffsetX
-_08104A34: .4byte REG_BG1HOFS
-_08104A38: .4byte 0x02000000
-_08104A3C: .4byte sub_810434C
- thumb_func_end sub_81049F8
-
- thumb_func_start sub_8104A40
-sub_8104A40: @ 8104A40
- push {r4-r7,lr}
- movs r3, 0x4
- ldr r7, _08104A80
- lsls r1, 16
- asrs r5, r1, 16
- lsls r0, 16
- asrs r4, r0, 16
- ldr r6, _08104A84
-_08104A50:
- lsls r2, r3, 16
- asrs r2, 16
- subs r1, r2, 0x4
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5, r0
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r0]
- lsls r0, r2, 5
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- cmp r2, 0xE
- ble _08104A50
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104A80: .4byte gReelTimeWindowTilemap
-_08104A84: .4byte 0x0600e000
- thumb_func_end sub_8104A40
-
- thumb_func_start sub_8104A88
-sub_8104A88: @ 8104A88
- push {r4,r5,lr}
- movs r2, 0x4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r5, _08104AB4
- movs r4, 0
-_08104A94:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, 0xE
- ble _08104A94
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AB4: .4byte 0x0600e000
- thumb_func_end sub_8104A88
-
- thumb_func_start sub_8104AB8
-sub_8104AB8: @ 8104AB8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08104AE4
- adds r0, r5, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08104AE8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AE4: .4byte sub_8104B0C
-_08104AE8: .4byte gTasks
- thumb_func_end sub_8104AB8
-
- thumb_func_start sub_8104AEC
-sub_8104AEC: @ 8104AEC
- push {lr}
- ldr r0, _08104B00
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104B04
- movs r0, 0
- b _08104B06
- .align 2, 0
-_08104B00: .4byte sub_8104B0C
-_08104B04:
- movs r0, 0x1
-_08104B06:
- pop {r1}
- bx r1
- thumb_func_end sub_8104AEC
-
- thumb_func_start sub_8104B0C
-sub_8104B0C: @ 8104B0C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104B34
- ldr r2, _08104B38
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08104B34: .4byte gUnknown_083ECC30
-_08104B38: .4byte gTasks
- thumb_func_end sub_8104B0C
-
- thumb_func_start sub_8104B3C
-sub_8104B3C: @ 8104B3C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104B3C
-
- thumb_func_start sub_8104B60
-sub_8104B60: @ 8104B60
- push {lr}
- adds r2, r0, 0
- ldr r0, _08104B7C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08104B76
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08104B76:
- pop {r0}
- bx r0
- .align 2, 0
-_08104B7C: .4byte gPaletteFade
- thumb_func_end sub_8104B60
-
- thumb_func_start sub_8104B80
-sub_8104B80: @ 8104B80
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8104DA4
- bl sub_81065DC
- ldr r0, _08104BC0
- bl BasicInitMenuWindow
- ldr r0, _08104BC4
- movs r1, 0xA
- movs r2, 0x20
- movs r3, 0x1
- bl sub_80729D8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BC0: .4byte gWindowConfig_81E7144
-_08104BC4: .4byte gOtherText_ReelTime
- thumb_func_end sub_8104B80
-
- thumb_func_start sub_8104BC8
-sub_8104BC8: @ 8104BC8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _08104BF8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _08104BF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08104BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BF8: .4byte gMain
- thumb_func_end sub_8104BC8
-
- thumb_func_start sub_8104BFC
-sub_8104BFC: @ 8104BFC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl MenuZeroFillScreen
- ldr r0, _08104C3C
- bl BasicInitMenuWindow
- bl sub_81064B8
- ldrb r0, [r4, 0xA]
- bl sub_8104CAC
- ldr r0, _08104C40
- ldrb r0, [r0, 0x2]
- bl sub_810423C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104C3C: .4byte gWindowConfig_81E7128
-_08104C40: .4byte 0x02000000
- thumb_func_end sub_8104BFC
-
- thumb_func_start sub_8104C44
-sub_8104C44: @ 8104C44
- push {lr}
- ldr r0, _08104C58
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104C58: .4byte sub_8104B0C
- thumb_func_end sub_8104C44
-
- thumb_func_start sub_8104C5C
-sub_8104C5C: @ 8104C5C
- push {lr}
- ldr r0, _08104C9C
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08104CA0
- adds r0, 0x3D
- strb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104CA4
- adds r0, r1
- ldr r1, _08104CA8
- strh r1, [r0, 0xA]
- movs r1, 0x4
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0x40
-_08104C86:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104C86
- pop {r0}
- bx r0
- .align 2, 0
-_08104C9C: .4byte sub_8104E74
-_08104CA0: .4byte 0x02000000
-_08104CA4: .4byte gTasks
-_08104CA8: .4byte 0x0000ffff
- thumb_func_end sub_8104C5C
-
- thumb_func_start sub_8104CAC
-sub_8104CAC: @ 8104CAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8104DA4
- ldr r0, _08104D24
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D28
- adds r7, r0, r1
- strh r4, [r7, 0xA]
- movs r6, 0
- ldr r1, _08104D2C
- lsls r5, r4, 2
- adds r0, r5, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08104D18
- mov r8, r1
-_08104CE0:
- mov r0, r8
- adds r4, r5, r0
- ldr r0, [r4]
- lsls r2, r6, 2
- adds r2, r0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- bl sub_8105BB4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, 0x4
- lsls r2, 1
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r2
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08104CE0
-_08104D18:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104D24: .4byte 0x02000000
-_08104D28: .4byte gTasks
-_08104D2C: .4byte gUnknown_083ED048
- thumb_func_end sub_8104CAC
-
- thumb_func_start sub_8104D30
-sub_8104D30: @ 8104D30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r1
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08104D84
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D88
- adds r0, r1
- mov r12, r0
- movs r5, 0x4
- lsls r4, 16
- asrs r6, r4, 16
- lsls r2, 16
- lsls r3, 16
-_08104D5C:
- lsls r0, r5, 1
- mov r1, r12
- adds r1, 0x8
- adds r4, r1, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _08104D8C
- str r6, [sp]
- adds r0, r7, 0
- mov r1, r8
- asrs r2, 16
- asrs r3, 16
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _08104D96
- .align 2, 0
-_08104D84: .4byte 0x02000000
-_08104D88: .4byte gTasks
-_08104D8C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104D5C
-_08104D96:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8104D30
-
- thumb_func_start sub_8104DA4
-sub_8104DA4: @ 8104DA4
- push {r4-r6,lr}
- ldr r0, _08104E04
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E08
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldr r0, _08104E0C
- cmp r1, r0
- beq _08104DCE
- ldr r0, _08104E10
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08104DCE:
- movs r5, 0x4
- adds r6, r4, 0
- adds r6, 0x8
-_08104DD4:
- lsls r0, r5, 1
- adds r4, r6, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08104DF4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104E14
- adds r0, r1
- bl DestroySprite
- movs r0, 0x40
- strh r0, [r4]
-_08104DF4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104E04: .4byte 0x02000000
-_08104E08: .4byte gTasks
-_08104E0C: .4byte 0x0000ffff
-_08104E10: .4byte gUnknown_083ED064
-_08104E14: .4byte gSprites
- thumb_func_end sub_8104DA4
-
- thumb_func_start sub_8104E18
-sub_8104E18: @ 8104E18
- push {r4,r5,lr}
- ldr r0, _08104E54
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E58
- adds r0, r1
- movs r2, 0x4
- adds r3, r0, 0
- adds r3, 0x8
- ldr r4, _08104E5C
-_08104E32:
- lsls r0, r2, 1
- adds r1, r3, r0
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0x40
- beq _08104E60
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r5, 0x3C
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08104E60
- movs r0, 0
- b _08104E6C
- .align 2, 0
-_08104E54: .4byte 0x02000000
-_08104E58: .4byte gTasks
-_08104E5C: .4byte gSprites
-_08104E60:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08104E32
- movs r0, 0x1
-_08104E6C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8104E18
-
- thumb_func_start sub_8104E74
-sub_8104E74: @ 8104E74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104E9C
- ldr r2, _08104EA0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08104E9C: .4byte gUnknown_083ECC54
-_08104EA0: .4byte gTasks
- thumb_func_end sub_8104E74
-
- thumb_func_start nullsub_69
-nullsub_69: @ 8104EA4
- bx lr
- thumb_func_end nullsub_69
-
- thumb_func_start sub_8104EA8
-sub_8104EA8: @ 8104EA8
- push {r4-r7,lr}
- movs r6, 0
- movs r0, 0x30
-_08104EAE:
- movs r4, 0
- lsls r5, r0, 16
- lsls r7, r6, 16
-_08104EB4:
- ldr r0, _08104F0C
- asrs r1, r5, 16
- movs r2, 0
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08104F10
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r1, 0x5]
- strh r6, [r1, 0x2E]
- strh r4, [r1, 0x30]
- ldr r0, _08104F14
- strh r0, [r1, 0x34]
- lsls r0, r4, 16
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _08104EB4
- movs r2, 0x80
- lsls r2, 9
- adds r1, r7, r2
- movs r2, 0xA0
- lsls r2, 14
- adds r0, r5, r2
- lsrs r0, 16
- lsrs r6, r1, 16
- asrs r1, 16
- cmp r1, 0x2
- ble _08104EAE
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F0C: .4byte gSpriteTemplate_83ED414
-_08104F10: .4byte gSprites
-_08104F14: .4byte 0x0000ffff
- thumb_func_end sub_8104EA8
-
- thumb_func_start sub_8104F18
-sub_8104F18: @ 8104F18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08104F88
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x1C
- adds r1, r0
- ldrh r0, [r5, 0x30]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r5, 0x32]
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r4, 0x22
- adds r1, r4
- ldrh r1, [r1]
- adds r1, 0x1C
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- bl GetSpriteTileStartByTag
- adds r1, r5, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r5, 0
- bl SetSpriteSheetFrameTileNum
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F88: .4byte 0x02000000
- thumb_func_end sub_8104F18
-
- thumb_func_start sub_8104F8C
-sub_8104F8C: @ 8104F8C
- push {r4-r6,lr}
- movs r4, 0xCB
- movs r5, 0x1
- ldr r6, _08104FF0
-_08104F94:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104F94
- movs r4, 0xEB
- movs r5, 0x1
- ldr r6, _08104FF0
-_08104FC2:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0x1
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104FC2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104FF0: .4byte 0x0000270f
- thumb_func_end sub_8104F8C
-
- thumb_func_start sub_8104FF4
-sub_8104FF4: @ 8104FF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08105060
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0xD
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08105064
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x30]
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- strh r0, [r2, 0x32]
- ldr r0, _08105068
- strh r0, [r2, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105060: .4byte gSpriteTemplate_83ED42C
-_08105064: .4byte gSprites
-_08105068: .4byte 0x0000ffff
- thumb_func_end sub_8104FF4
-
- thumb_func_start sub_810506C
-sub_810506C: @ 810506C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _081050C0
- ldrh r2, [r1, 0xC]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0810507E
- ldrh r2, [r1, 0xE]
-_0810507E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, r2
- beq _081050B8
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- adds r0, r2, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r2, 0
- bl __udivsi3
- lsls r0, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r0, r3
- lsrs r2, r0, 16
- adds r0, r2, 0
- bl GetSpriteTileStartByTag
- adds r1, r4, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r4, 0
- bl SetSpriteSheetFrameTileNum
-_081050B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081050C0: .4byte 0x02000000
- thumb_func_end sub_810506C
-
- thumb_func_start sub_81050C4
-sub_81050C4: @ 81050C4
- push {lr}
- ldr r0, _081050F4
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0xF
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081050F8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081050FC
- bl SetSubspriteTables
- pop {r0}
- bx r0
- .align 2, 0
-_081050F4: .4byte gSpriteTemplate_83ED444
-_081050F8: .4byte gSprites
-_081050FC: .4byte gUnknown_083ED704
- thumb_func_end sub_81050C4
-
- thumb_func_start sub_8105100
-sub_8105100: @ 8105100
- push {lr}
- ldr r0, _08105140
- movs r1, 0x8C
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08105144
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- ldr r1, _08105148
- adds r1, 0x3F
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105140: .4byte gSpriteTemplate_83ED45C
-_08105144: .4byte gSprites
-_08105148: .4byte 0x02000000
- thumb_func_end sub_8105100
-
- thumb_func_start sub_810514C
-sub_810514C: @ 810514C
- push {lr}
- ldr r0, _08105168
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810516C
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105168: .4byte 0x02000000
-_0810516C: .4byte gSprites
- thumb_func_end sub_810514C
-
- thumb_func_start sub_8105170
-sub_8105170: @ 8105170
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081051B6
- movs r0, 0x8
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- beq _081051A4
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B2
- b _081051B6
-_081051A4:
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B6
-_081051B2:
- ldr r0, _081051BC
- strh r0, [r2, 0x26]
-_081051B6:
- pop {r0}
- bx r0
- .align 2, 0
-_081051BC: .4byte 0x0000fff8
- thumb_func_end sub_8105170
-
- thumb_func_start sub_81051C0
-sub_81051C0: @ 81051C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810526C
- movs r7, 0xB8
- lsls r7, 1
- adds r1, r7, 0
- movs r2, 0x34
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105270
- mov r10, r1
- adds r2, r0, r1
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r3, 0x4
- mov r9, r3
- mov r1, r9
- orrs r0, r1
- strb r0, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105274
- adds r0, r2, 0
- bl SetSubspriteTables
- ldr r6, _08105278
- adds r0, r6, 0
- adds r0, 0x49
- strb r4, [r0]
- ldr r0, _0810527C
- adds r1, r7, 0
- movs r2, 0x54
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- mov r1, r10
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r3, r9
- orrs r5, r3
- strb r5, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105280
- adds r0, r2, 0
- bl SetSubspriteTables
- adds r6, 0x4A
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810526C: .4byte gSpriteTemplate_83ED474
-_08105270: .4byte gSprites
-_08105274: .4byte gUnknown_083ED73C
-_08105278: .4byte 0x02000000
-_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gUnknown_083ED75C
- thumb_func_end sub_81051C0
-
- thumb_func_start sub_8105284
-sub_8105284: @ 8105284
- push {r4,lr}
- ldr r0, _081052D8
- ldr r1, _081052DC
- ldrh r2, [r1]
- movs r1, 0xA8
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x50
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081052E0
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _081052E4
- bl SetSubspriteTables
- ldr r0, _081052E8
- adds r0, 0x42
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081052D8: .4byte gSpriteTemplate_83ED4A4
-_081052DC: .4byte gSpriteCoordOffsetX
-_081052E0: .4byte gSprites
-_081052E4: .4byte gUnknown_083ED78C
-_081052E8: .4byte 0x02000000
- thumb_func_end sub_8105284
-
- thumb_func_start sub_81052EC
-sub_81052EC: @ 81052EC
- push {r4-r7,lr}
- movs r4, 0
- movs r5, 0
- ldr r6, _08105350
-_081052F4:
- ldr r0, _08105354
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105358
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r1, r7, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- strh r5, [r3, 0x3C]
- adds r1, r4, r6
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r5, 16
- movs r7, 0xA0
- lsls r7, 13
- adds r0, r7
- lsrs r5, r0, 16
- cmp r4, 0x2
- bls _081052F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08105350: .4byte 0x0200004b
-_08105354: .4byte gSpriteTemplate_83ED4BC
-_08105358: .4byte gSprites
- thumb_func_end sub_81052EC
-
- thumb_func_start sub_810535C
-sub_810535C: @ 810535C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810539C
- ldrh r0, [r4, 0x3C]
- ldrh r1, [r1, 0x14]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x28
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- adds r1, 0x3B
- strh r1, [r4, 0x22]
- movs r1, 0x14
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- bl sub_8102C48
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810539C: .4byte 0x02000000
- thumb_func_end sub_810535C
-
- thumb_func_start sub_81053A0
-sub_81053A0: @ 81053A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r1, 0xB8
- lsls r1, 1
- ldr r0, _0810544C
- movs r2, 0x64
- movs r3, 0x9
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r7, _08105450
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r10, r3
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r2, 0x5]
- ldr r0, _08105454
- mov r9, r0
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- ldr r6, _08105458
- adds r0, r6, 0
- adds r0, 0x4E
- strb r4, [r0]
- movs r1, 0x90
- lsls r1, 1
- ldr r0, _0810544C
- movs r2, 0x68
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r2, 0x5]
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- adds r6, 0x4F
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810544C: .4byte gSpriteTemplate_83ED4D4
-_08105450: .4byte gSprites
-_08105454: .4byte gUnknown_083ED7B4
-_08105458: .4byte 0x02000000
- thumb_func_end sub_81053A0
-
- thumb_func_start sub_810545C
-sub_810545C: @ 810545C
- push {r4,lr}
- ldr r0, _081054A8
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0x4C
- movs r3, 0xB
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081054AC
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081054B0
- bl SetSubspriteTables
- ldr r0, _081054B4
- adds r0, 0x40
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081054A8: .4byte gSpriteTemplate_83ED4EC
-_081054AC: .4byte gSprites
-_081054B0: .4byte gUnknown_083ED7D4
-_081054B4: .4byte 0x02000000
- thumb_func_end sub_810545C
-
- thumb_func_start sub_81054B8
-sub_81054B8: @ 81054B8
- push {r4,r5,lr}
- ldr r4, _08105518
- adds r0, r4, 0
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C
- adds r0, r1
- bl DestroySprite
- movs r5, 0
- adds r4, 0x49
-_081054D4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _081054D4
- movs r5, 0
- ldr r4, _08105520
-_081054F4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081054F4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105518: .4byte 0x02000000
-_0810551C: .4byte gSprites
-_08105520: .4byte 0x0200004b
- thumb_func_end sub_81054B8
-
- thumb_func_start sub_8105524
-sub_8105524: @ 8105524
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810554C
-_0810552A:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105550
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0810552A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810554C: .4byte 0x0200004e
-_08105550: .4byte gSprites
- thumb_func_end sub_8105524
-
- thumb_func_start sub_8105554
-sub_8105554: @ 8105554
- push {lr}
- ldr r0, _08105570
- adds r0, 0x42
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105574
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105570: .4byte 0x02000000
-_08105574: .4byte gSprites
- thumb_func_end sub_8105554
-
- thumb_func_start sub_8105578
-sub_8105578: @ 8105578
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _0810561C
- mov r10, r0
- movs r1, 0x98
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _08105620
- mov r9, r2
- adds r3, r1, r2
- ldrb r2, [r3, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r1, r2
- strb r1, [r3, 0x5]
- adds r5, r3, 0
- adds r5, 0x3F
- ldrb r1, [r5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r5]
- ldr r5, _08105624
- adds r1, r5, 0
- adds r1, 0x50
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x2E]
- ldr r0, _08105628
- strh r0, [r3, 0x30]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r3, 0x32]
- movs r6, 0x20
- strh r6, [r3, 0x3C]
- mov r0, r10
- movs r1, 0xB8
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- mov r2, r9
- adds r3, r1, r2
- ldrb r1, [r3, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r3, 0x5]
- adds r5, 0x51
- strb r0, [r5]
- movs r0, 0x1
- strh r0, [r3, 0x30]
- subs r0, 0x2
- strh r0, [r3, 0x32]
- strh r6, [r3, 0x3C]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810561C: .4byte gSpriteTemplate_83ED504
-_08105620: .4byte gSprites
-_08105624: .4byte 0x02000000
-_08105628: .4byte 0x0000ffff
- thumb_func_end sub_8105578
-
- thumb_func_start sub_810562C
-sub_810562C: @ 810562C
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r4, [r2, r1]
- cmp r4, 0
- beq _08105650
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x24]
- strh r1, [r2, 0x26]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- b _08105682
-_08105650:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08105682
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x34]
-_08105682:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810562C
-
- thumb_func_start sub_8105688
-sub_8105688: @ 8105688
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _081056B8
- ldr r3, _081056BC
- adds r1, r3, 0
- adds r1, 0x50
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- adds r3, 0x51
- ldrb r2, [r3]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081056B8: .4byte gSprites
-_081056BC: .4byte 0x02000000
- thumb_func_end sub_8105688
-
- thumb_func_start sub_81056C0
-sub_81056C0: @ 81056C0
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081056E8
-_081056C6:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081056EC
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _081056C6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081056E8: .4byte 0x02000050
-_081056EC: .4byte gSprites
- thumb_func_end sub_81056C0
-
- thumb_func_start sub_81056F0
-sub_81056F0: @ 81056F0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08105778
- mov r8, r0
- movs r1, 0x48
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810577C
- mov r9, r1
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrb r3, [r2, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r3
- movs r6, 0x4
- orrs r1, r6
- strb r1, [r2, 0x5]
- movs r3, 0
- movs r1, 0x1
- strh r1, [r2, 0x2E]
- strh r3, [r2, 0x38]
- movs r1, 0x10
- strh r1, [r2, 0x3A]
- movs r1, 0x8
- strh r1, [r2, 0x3C]
- ldr r5, _08105780
- adds r1, r5, 0
- adds r1, 0x52
- strb r0, [r1]
- mov r0, r8
- movs r1, 0x68
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x5]
- ands r4, r2
- orrs r4, r6
- strb r4, [r1, 0x5]
- adds r1, 0x3F
- ldrb r2, [r1]
- movs r3, 0x1
- orrs r2, r3
- strb r2, [r1]
- adds r5, 0x53
- strb r0, [r5]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105778: .4byte gSpriteTemplate_83ED51C
-_0810577C: .4byte gSprites
-_08105780: .4byte 0x02000000
- thumb_func_end sub_81056F0
-
- thumb_func_start sub_8105784
-sub_8105784: @ 8105784
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _081057E0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081057D6
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bgt _081057D6
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r2, _081057E4
- adds r0, r2
- lsrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- add r1, sp
- ldrb r3, [r1]
- adds r1, r3, 0
- adds r2, r3, 0
- bl sub_8085C7C
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- strh r0, [r4, 0x3A]
-_081057D6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081057E0: .4byte gUnknown_083ECC58
-_081057E4: .4byte 0x01030000
- thumb_func_end sub_8105784
-
- thumb_func_start sub_81057E8
-sub_81057E8: @ 81057E8
- ldr r3, _081057FC
- ldr r1, _08105800
- adds r1, 0x52
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- strh r0, [r1, 0x3C]
- bx lr
- .align 2, 0
-_081057FC: .4byte gSprites
-_08105800: .4byte 0x02000000
- thumb_func_end sub_81057E8
-
- thumb_func_start sub_8105804
-sub_8105804: @ 8105804
- push {r4,r5,lr}
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _08105848
- adds r0, r1
- lsrs r0, 16
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8085C7C
- movs r4, 0
- ldr r5, _0810584C
-_08105824:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105850
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08105824
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105848: .4byte 0x01030000
-_0810584C: .4byte 0x02000052
-_08105850: .4byte gSprites
- thumb_func_end sub_8105804
-
- thumb_func_start sub_8105854
-sub_8105854: @ 8105854
- push {lr}
- ldr r0, _08105888
- movs r1, 0xA8
- movs r2, 0x50
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810588C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1, 0x5]
- ldr r1, _08105890
- adds r1, 0x41
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105888: .4byte gSpriteTemplate_83ED534
-_0810588C: .4byte gSprites
-_08105890: .4byte 0x02000000
- thumb_func_end sub_8105854
-
- thumb_func_start sub_8105894
-sub_8105894: @ 8105894
- ldr r1, _0810589C
- ldrh r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0810589C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8105894
-
- thumb_func_start sub_81058A0
-sub_81058A0: @ 81058A0
- push {lr}
- ldr r0, _081058BC
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081058C0
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_081058BC: .4byte 0x02000000
-_081058C0: .4byte gSprites
- thumb_func_end sub_81058A0
-
- thumb_func_start sub_81058C4
-sub_81058C4: @ 81058C4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08105938
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- movs r4, 0
- ldr r5, _0810593C
-_081058D6:
- ldr r0, _08105940
- ldrh r0, [r0]
- movs r1, 0x50
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08105944
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105948
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r1, r6, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- lsls r1, r4, 1
- add r1, sp
- ldrh r1, [r1]
- strh r1, [r3, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081058D6
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105938: .4byte gUnknown_083ECC5A
-_0810593C: .4byte 0x02000054
-_08105940: .4byte gSpriteCoordOffsetX
-_08105944: .4byte gSpriteTemplate_83ED54C
-_08105948: .4byte gSprites
- thumb_func_end sub_81058C4
-
- thumb_func_start sub_810594C
-sub_810594C: @ 810594C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x2
- movs r4, 0
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r1, 0x6
- bl Sin
- strh r0, [r5, 0x26]
- adds r1, r5, 0
- adds r1, 0x43
- strb r4, [r1]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x7F
- ble _08105986
- movs r0, 0x2
- strb r0, [r1]
-_08105986:
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _081059B0
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r5, 0x30]
-_081059B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810594C
-
- thumb_func_start sub_81059B8
-sub_81059B8: @ 81059B8
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081059E0
-_081059BE:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081059E4
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081059BE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081059E0: .4byte 0x02000054
-_081059E4: .4byte gSprites
- thumb_func_end sub_81059B8
-
- thumb_func_start sub_81059E8
-sub_81059E8: @ 81059E8
- push {r4,lr}
- ldr r0, _08105A2C
- movs r1, 0xA8
- movs r2, 0x3C
- movs r3, 0x8
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105A30
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- ldr r0, _08105A34
- adds r0, 0x43
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105A2C: .4byte gSpriteTemplate_83ED564
-_08105A30: .4byte gSprites
-_08105A34: .4byte 0x02000000
- thumb_func_end sub_81059E8
-
- thumb_func_start sub_8105A38
-sub_8105A38: @ 8105A38
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08105A5A
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105AB4
- adds r0, r2, 0x1
- strh r0, [r3, 0x2E]
- b _08105AB4
-_08105A5A:
- cmp r0, 0x1
- bne _08105A96
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _08105AB4
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0
- strh r0, [r3, 0x32]
- b _08105AB4
-_08105A96:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105AB4
- movs r0, 0x1
- strh r0, [r3, 0x3C]
-_08105AB4:
- ldrh r0, [r3, 0x30]
- movs r1, 0xFF
- ands r1, r0
- adds r1, 0x10
- strh r1, [r3, 0x30]
- lsrs r1, 8
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- pop {r0}
- bx r0
- thumb_func_end sub_8105A38
-
- thumb_func_start sub_8105ACC
-sub_8105ACC: @ 8105ACC
- ldr r2, _08105AE4
- ldr r0, _08105AE8
- adds r0, 0x43
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08105AE4: .4byte gSprites
-_08105AE8: .4byte 0x02000000
- thumb_func_end sub_8105ACC
-
- thumb_func_start sub_8105AEC
-sub_8105AEC: @ 8105AEC
- push {r4,lr}
- ldr r0, _08105B14
- adds r0, 0x43
- ldrb r0, [r0]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105B18
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105B14: .4byte 0x02000000
-_08105B18: .4byte gSprites
- thumb_func_end sub_8105AEC
-
- thumb_func_start sub_8105B1C
-sub_8105B1C: @ 8105B1C
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _08105B68
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0xC
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105B6C
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08105B68: .4byte gSpriteTemplate_83ED6CC
-_08105B6C: .4byte gSprites
- thumb_func_end sub_8105B1C
-
- thumb_func_start sub_8105B70
-sub_8105B70: @ 8105B70
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105B84
- movs r0, 0x1
- strh r0, [r2, 0x3C]
-_08105B84:
- pop {r0}
- bx r0
- thumb_func_end sub_8105B70
-
- thumb_func_start sub_8105B88
-sub_8105B88: @ 8105B88
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105BB0
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105BB0: .4byte gSprites
- thumb_func_end sub_8105B88
-
- thumb_func_start sub_8105BB4
-sub_8105BB4: @ 8105BB4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08105BF0
- lsrs r1, 22
- adds r3, r1, r3
- ldr r5, [r3]
- ldr r3, _08105BF4
- adds r4, r1, r3
- movs r6, 0
- ldrsh r4, [r4, r6]
- adds r3, 0x2
- adds r1, r3
- movs r6, 0
- ldrsh r3, [r1, r6]
- lsls r2, 16
- asrs r2, 16
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08105BF0: .4byte gUnknown_083ECF0C
-_08105BF4: .4byte gUnknown_083ECE7E
- thumb_func_end sub_8105BB4
-
- thumb_func_start sub_8105BF8
-sub_8105BF8: @ 8105BF8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x14]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08105C58
- lsrs r4, 22
- adds r0, r4, r0
- ldr r0, [r0]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08105C5C
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
- str r6, [r2, 0x1C]
- strh r5, [r2, 0x3A]
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- ldr r0, _08105C60
- adds r4, r0
- ldr r1, [r4]
- cmp r1, 0
- beq _08105C50
- adds r0, r2, 0
- bl SetSubspriteTables
-_08105C50:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08105C58: .4byte gUnknown_083EDB5C
-_08105C5C: .4byte gSprites
-_08105C60: .4byte gUnknown_083EDBC4
- thumb_func_end sub_8105BF8
-
- thumb_func_start sub_8105C64
-sub_8105C64: @ 8105C64
- movs r1, 0
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8105C64
-
- thumb_func_start sub_8105C6C
-sub_8105C6C: @ 8105C6C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _08105CE8
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _08105CEC
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105CB2
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r2, [r3]
- lsls r0, r2, 26
- lsrs r0, 26
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r4, 0x30]
-_08105CB2:
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x42
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- beq _08105CDE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
-_08105CDE:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105CE8: .4byte gUnknown_083ECC62
-_08105CEC: .4byte gUnknown_083ECC6A
- thumb_func_end sub_8105C6C
-
- thumb_func_start sub_8105CF0
-sub_8105CF0: @ 8105CF0
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105CF0
-
- thumb_func_start sub_8105D08
-sub_8105D08: @ 8105D08
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D08
-
- thumb_func_start sub_8105D20
-sub_8105D20: @ 8105D20
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D20
-
- thumb_func_start sub_8105D3C
-sub_8105D3C: @ 8105D3C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08105D70
- cmp r0, 0x1
- bgt _08105D52
- cmp r0, 0
- beq _08105D5C
- b _08105DA0
-_08105D52:
- cmp r0, 0x2
- beq _08105D80
- cmp r0, 0x3
- beq _08105D9C
- b _08105DA0
-_08105D5C:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105DA0
- movs r0, 0xD0
- strh r0, [r2, 0x20]
- b _08105D8E
-_08105D70:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105DA0
- b _08105D8E
-_08105D80:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- ldr r1, _08105D98
- cmp r0, r1
- ble _08105DA0
-_08105D8E:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08105DA0
- .align 2, 0
-_08105D98: .4byte 0x010f0000
-_08105D9C:
- movs r0, 0
- strh r0, [r2, 0x3C]
-_08105DA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8105D3C
-
- thumb_func_start sub_8105DA4
-sub_8105DA4: @ 8105DA4
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08105DD8
- cmp r0, 0x1
- bgt _08105DBA
- cmp r0, 0
- beq _08105DC4
- b _08105E02
-_08105DBA:
- cmp r0, 0x2
- beq _08105DE8
- cmp r0, 0x3
- beq _08105DFE
- b _08105E02
-_08105DC4:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- bgt _08105E02
- movs r0, 0xD0
- strh r0, [r1, 0x20]
- b _08105DF6
-_08105DD8:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105E02
- b _08105DF6
-_08105DE8:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x90
- bgt _08105E02
-_08105DF6:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105E02
-_08105DFE:
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105E02:
- pop {r0}
- bx r0
- thumb_func_end sub_8105DA4
-
- thumb_func_start sub_8105E08
-sub_8105E08: @ 8105E08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _08105EAE
- lsls r0, 2
- ldr r1, _08105E20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08105E20: .4byte _08105E24
- .align 2, 0
-_08105E24:
- .4byte _08105E3C
- .4byte _08105E52
- .4byte _08105E70
- .4byte _08105E84
- .4byte _08105E94
- .4byte _08105EAA
-_08105E3C:
- ldr r0, _08105E6C
- ldrb r1, [r0, 0xA]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08105E52:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08105EAE
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- b _08105EAE
- .align 2, 0
-_08105E6C: .4byte 0x02000000
-_08105E70:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105EAE
- movs r0, 0xD0
- strh r0, [r4, 0x20]
- b _08105EA2
-_08105E84:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105EAE
- b _08105EA2
-_08105E94:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF7
- ble _08105EAE
-_08105EA2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08105EAE
-_08105EAA:
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08105EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105E08
-
- thumb_func_start sub_8105EB4
-sub_8105EB4: @ 8105EB4
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _08105EE2
- cmp r0, 0x1
- bgt _08105ECA
- cmp r0, 0
- beq _08105ED0
- b _08105F50
-_08105ECA:
- cmp r0, 0x2
- beq _08105F00
- b _08105F50
-_08105ED0:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_08105EE2:
- ldrh r0, [r3, 0x22]
- adds r0, 0x8
- strh r0, [r3, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _08105F50
- movs r0, 0x70
- strh r0, [r3, 0x22]
- movs r0, 0x10
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _08105F50
-_08105F00:
- movs r0, 0x32
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _08105F46
- ldrh r0, [r3, 0x22]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x22]
- negs r1, r1
- strh r1, [r3, 0x30]
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08105F46
- lsls r0, r1, 16
- asrs r0, 18
- strh r0, [r3, 0x30]
- strh r2, [r3, 0x34]
- adds r1, r0, 0
- cmp r1, 0
- bne _08105F46
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x3C]
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08105F46:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r3, 0x32]
-_08105F50:
- pop {r0}
- bx r0
- thumb_func_end sub_8105EB4
-
- thumb_func_start sub_8105F54
-sub_8105F54: @ 8105F54
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08105F66
- cmp r0, 0x1
- beq _08105F7C
- b _08105F98
-_08105F66:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08105F98
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105F98
-_08105F7C:
- ldrh r0, [r1, 0x22]
- adds r0, 0x2
- strh r0, [r1, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _08105F98
- movs r0, 0x30
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105F98:
- pop {r0}
- bx r0
- thumb_func_end sub_8105F54
-
- thumb_func_start sub_8105F9C
-sub_8105F9C: @ 8105F9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08105FAE
- cmp r0, 0x1
- beq _08106000
- b _0810604E
-_08105FAE:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x30]
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, _08105FFC
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- b _0810604E
- .align 2, 0
-_08105FFC: .4byte REG_MOSAIC
-_08106000:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _08106016
- movs r0, 0
- strh r0, [r4, 0x30]
-_08106016:
- ldr r2, _08106054
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- adds r0, 0x80
- strh r0, [r4, 0x32]
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0810604E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106054: .4byte REG_MOSAIC
- thumb_func_end sub_8105F9C
-
- thumb_func_start sub_8106058
-sub_8106058: @ 8106058
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- bgt _081060A8
- ldr r1, _081060A4
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081060E4
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r0, 0
- strh r0, [r5, 0x32]
- b _081060E4
- .align 2, 0
-_081060A4: .4byte gUnknown_083EDE10
-_081060A8:
- ldr r1, _081060F8
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _081060E4
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
-_081060E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- movs r0, 0
- strh r0, [r5, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081060F8: .4byte gUnknown_083EDE10
- thumb_func_end sub_8106058
-
- thumb_func_start sub_81060FC
-sub_81060FC: @ 81060FC
- push {r4-r6,lr}
- sub sp, 0x30
- adds r4, r0, 0
- ldr r1, _08106138
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- add r6, sp, 0x10
- ldr r1, _0810613C
- adds r0, r6, 0
- movs r2, 0x10
- bl memcpy
- add r5, sp, 0x20
- ldr r1, _08106140
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08106174
- cmp r0, 0x1
- bgt _08106144
- cmp r0, 0
- beq _0810614A
- b _081061C0
- .align 2, 0
-_08106138: .4byte gUnknown_083ECC72
-_0810613C: .4byte gUnknown_083ECC82
-_08106140: .4byte gUnknown_083ECC92
-_08106144:
- cmp r0, 0x2
- beq _08106188
- b _081061C0
-_0810614A:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08106174:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _081061C0
- b _081061BA
-_08106188:
- ldrh r0, [r4, 0x24]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _08106196
- subs r0, 0x4
- b _0810619C
-_08106196:
- cmp r1, 0
- bge _0810619E
- adds r0, 0x4
-_0810619C:
- strh r0, [r4, 0x24]
-_0810619E:
- ldrh r0, [r4, 0x26]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _081061AC
- subs r0, 0x4
- b _081061B2
-_081061AC:
- cmp r1, 0
- bge _081061B4
- adds r0, 0x4
-_081061B2:
- strh r0, [r4, 0x26]
-_081061B4:
- ldr r0, [r4, 0x24]
- cmp r0, 0
- bne _081061C0
-_081061BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_081061C0:
- add sp, 0x30
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81060FC
-
- thumb_func_start sub_81061C8
-sub_81061C8: @ 81061C8
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _0810622C
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081061EA
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xC
- strh r0, [r4, 0x30]
-_081061EA:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08106224
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_08106224:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810622C: .4byte gUnknown_083ECCA2
- thumb_func_end sub_81061C8
-
- thumb_func_start sub_8106230
-sub_8106230: @ 8106230
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0810627A
- cmp r0, 0x1
- bgt _08106248
- cmp r0, 0
- beq _08106252
- b _0810634A
-_08106248:
- cmp r0, 0x2
- beq _081062C4
- cmp r0, 0x3
- beq _081062FC
- b _0810634A
-_08106252:
- ldr r2, _081062BC
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x2F
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3F
- strh r0, [r1]
- subs r1, 0x4
- ldr r0, _081062C0
- strh r0, [r1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0810627A:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xB2
- strh r0, [r5, 0x32]
- movs r1, 0xF0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106296
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106296:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _081062A2
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_081062A2:
- ldr r2, _081062BC
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x33
- ble _0810634A
- b _0810633C
- .align 2, 0
-_081062BC: .4byte 0x02000000
-_081062C0: .4byte 0x00002088
-_081062C4:
- ldr r6, _08106354
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0810634A
- ldr r1, _08106358
- movs r4, 0
- str r4, [sp]
- movs r0, 0x5
- movs r2, 0xD0
- movs r3, 0x74
- bl sub_8104D30
- adds r1, r6, 0
- adds r1, 0x58
- ldr r0, _0810635C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xD1
- lsls r0, 7
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2F
- strh r0, [r1]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r4, [r5, 0x30]
-_081062FC:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xC2
- strh r0, [r5, 0x32]
- movs r1, 0xE0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106318
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106318:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _08106324
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_08106324:
- ldr r2, _08106354
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- ble _0810634A
-_0810633C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x3F
- strh r0, [r1]
-_0810634A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08106354: .4byte 0x02000000
-_08106358: .4byte SpriteCallbackDummy
-_0810635C: .4byte 0x0000c0e0
- thumb_func_end sub_8106230
-
- thumb_func_start nullsub_70
-nullsub_70: @ 8106360
- bx lr
- thumb_func_end nullsub_70
-
- thumb_func_start sub_8106364
-sub_8106364: @ 8106364
- ldr r1, _0810636C
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810636C: .4byte REG_MOSAIC
- thumb_func_end sub_8106364
-
- thumb_func_start sub_8106370
-sub_8106370: @ 8106370
- push {r4,lr}
- ldr r0, _08106398
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106398: .4byte gUnknown_083EDE20
- thumb_func_end sub_8106370
-
- thumb_func_start sub_810639C
-sub_810639C: @ 810639C
- ldr r2, _081063BC
- adds r1, r2, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_081063BC: .4byte 0x02000000
- thumb_func_end sub_810639C
-
- thumb_func_start sub_81063C0
-sub_81063C0: @ 81063C0
- push {r4,lr}
- bl sub_8106404
- ldr r0, _081063F0
- ldr r4, _081063F4
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _081063F8
- movs r1, 0xC8
- lsls r1, 6
- adds r4, r1
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _081063FC
- bl LoadSpriteSheets
- ldr r0, _08106400
- bl LoadSpritePalettes
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
-_081063F4: .4byte 0x02010000
-_081063F8: .4byte gUnknown_083EDE8C
-_081063FC: .4byte gUnknown_083EDC2C
-_08106400: .4byte gSlotMachineSpritePalettes
- thumb_func_end sub_81063C0
-
- thumb_func_start sub_8106404
-sub_8106404: @ 8106404
- push {r4,r5,lr}
- ldr r3, _0810643C
- movs r2, 0
- ldr r5, _08106440
- ldr r0, _08106444
- ldr r4, [r0]
-_08106410:
- movs r1, 0
- adds r2, 0x1
-_08106414:
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r3]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, 0x1
- cmp r1, 0x1F
- bls _08106414
- lsls r0, r2, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _08106410
- adds r0, r5, 0
- bl LoadSpriteSheet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810643C: .4byte 0x02010000
-_08106440: .4byte gUnknown_083EDCDC
-_08106444: .4byte gUnknown_083EDCE4
- thumb_func_end sub_8106404
-
- thumb_func_start sub_8106448
-sub_8106448: @ 8106448
- push {r4-r7,lr}
- ldr r0, _081064A0
- ldr r4, _081064A4
- adds r1, r4, 0
- bl sub_800D238
- movs r3, 0xC0
- lsls r3, 19
- movs r5, 0xE9
- lsls r5, 5
- ldr r1, _081064A8
- ldr r6, _081064AC
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08106468:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08106468
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _081064B0
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _081064B4
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081064A0: .4byte gSlotMachine_Gfx
-_081064A4: .4byte 0x02010000
-_081064A8: .4byte 0x040000d4
-_081064AC: .4byte 0x80000800
-_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gUnknown_083EDE24
- thumb_func_end sub_8106448
-
- thumb_func_start sub_81064B8
-sub_81064B8: @ 81064B8
- push {lr}
- ldr r0, _081064D0
- ldr r1, _081064D4
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- bl sub_81064D8
- pop {r0}
- bx r0
- .align 2, 0
-_081064D0: .4byte gUnknown_08E95AB8
-_081064D4: .4byte 0x0600e800
- thumb_func_end sub_81064B8
-
- thumb_func_start sub_81064D8
-sub_81064D8: @ 81064D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, _0810658C
- movs r3, 0x4
- movs r0, 0xC0
- lsls r0, 1
- mov r12, r0
- movs r1, 0xC0
- lsls r1, 2
- mov r9, r1
- movs r2, 0xA0
- lsls r2, 1
- mov r8, r2
-_081064F6:
- movs r0, 0
- lsls r4, r3, 16
- asrs r5, r4, 16
-_081064FC:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r5, r2
- lsls r1, 1
- adds r1, r6
- mov r7, r8
- adds r3, r1, r7
- ldr r7, _08106590
- adds r0, r7, 0
- strh r0, [r3]
- movs r0, 0xD0
- lsls r0, 2
- adds r3, r1, r0
- ldr r7, _08106594
- adds r0, r7, 0
- strh r0, [r3]
- mov r0, r12
- adds r3, r1, r0
- ldr r7, _08106598
- adds r0, r7, 0
- strh r0, [r3]
- add r1, r9
- ldr r3, _0810659C
- adds r0, r3, 0
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x3
- ble _081064FC
- asrs r3, r4, 16
- lsls r1, r3, 1
- adds r1, r6
- mov r5, r12
- adds r2, r1, r5
- adds r7, 0x5D
- adds r0, r7, 0
- strh r0, [r2]
- add r1, r9
- ldr r2, _081065A0
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x7
- ldr r5, _081065A4
- adds r2, r5, 0
-_08106558:
- lsls r1, r0, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0xB
- ble _08106558
- movs r7, 0xA0
- lsls r7, 11
- adds r0, r4, r7
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _081064F6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810658C: .4byte 0x0600f000
-_08106590: .4byte 0x00002051
-_08106594: .4byte 0x00002851
-_08106598: .4byte 0x00002061
-_0810659C: .4byte 0x00002861
-_081065A0: .4byte 0x000028be
-_081065A4: .4byte 0x000020bf
- thumb_func_end sub_81064D8
-
- thumb_func_start sub_81065A8
-sub_81065A8: @ 81065A8
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- lsls r0, 16
- asrs r0, 15
- ldr r6, _081065D0
- adds r4, r0, r6
- strh r1, [r4]
- ldr r4, _081065D4
- adds r1, r0, r4
- strh r2, [r1]
- adds r6, 0x40
- adds r1, r0, r6
- strh r3, [r1]
- ldr r1, _081065D8
- adds r0, r1
- strh r5, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081065D0: .4byte 0x0600ebc0
-_081065D4: .4byte 0x0600ebc2
-_081065D8: .4byte 0x0600ec02
- thumb_func_end sub_81065A8
-
- thumb_func_start sub_81065DC
-sub_81065DC: @ 81065DC
- push {r4,r5,lr}
- ldr r0, _08106624
- ldr r1, _08106628
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- ldr r5, _0810662C
- movs r1, 0
- movs r4, 0
-_081065F0:
- movs r0, 0
- lsls r3, r1, 16
- asrs r2, r3, 11
-_081065F6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, r1
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _081065F6
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _081065F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08106624: .4byte gUnknown_08E95FB8
-_08106628: .4byte 0x0600e800
-_0810662C: .4byte 0x0600f000
- thumb_func_end sub_81065DC
-
- thumb_func_start sub_8106630
-sub_8106630: @ 8106630
- push {r4-r7,lr}
- ldr r2, _0810665C
- subs r4, r2, 0x2
- subs r5, r2, 0x1
- ldr r3, _08106660
- subs r0, 0x1
- lsls r1, r0, 5
- adds r1, r3
- ldr r3, _08106664
- adds r1, r3
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r6,r7}
- stm r2!, {r6,r7}
- strb r0, [r4]
- movs r0, 0
- strb r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810665C: .4byte 0x02015de0
-_08106660: .4byte gSaveBlock1
-_08106664: .4byte 0x00002dfc
- thumb_func_end sub_8106630
-
- thumb_func_start sub_8106668
-sub_8106668: @ 8106668
- push {lr}
- bl sub_8106674
- pop {r0}
- bx r0
- thumb_func_end sub_8106668
-
- thumb_func_start sub_8106674
-sub_8106674: @ 8106674
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08106694
- ldr r2, _08106698
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08106688
- b _081067E0
-_08106688:
- lsls r0, 2
- ldr r1, _0810669C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106694: .4byte gMain
-_08106698: .4byte 0x0000043c
-_0810669C: .4byte _081066A0
- .align 2, 0
-_081066A0:
- .4byte _081066B4
- .4byte _081066D8
- .4byte _08106734
- .4byte _0810675C
- .4byte _0810678C
-_081066B4:
- bl remove_some_task
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _081066D0
- ldr r0, _081066D4
- str r0, [r1]
- movs r0, 0x1
- bl sub_8106A10
- bl sub_81069CC
- b _0810676E
- .align 2, 0
-_081066D0: .4byte gUnknown_03005E8C
-_081066D4: .4byte 0x02015de0
-_081066D8:
- bl ResetPaletteFade
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _08106724
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08106728
- movs r7, 0x85
- lsls r7, 24
-_081066F2:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _081066F2
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- ldr r1, _0810672C
- ldr r2, _08106730
- adds r1, r2
- b _08106774
- .align 2, 0
-_08106724: .4byte 0x040000d4
-_08106728: .4byte 0x85000400
-_0810672C: .4byte gMain
-_08106730: .4byte 0x0000043c
-_08106734:
- ldrh r0, [r4, 0x20]
- bl SeedRng
- bl InitKeys
- ldr r0, _08106750
- ldr r1, _08106754
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81068FC
- ldr r2, _08106758
- adds r1, r4, r2
- b _08106774
- .align 2, 0
-_08106750: .4byte 0x02000000
-_08106754: .4byte 0x00015ddf
-_08106758: .4byte 0x0000043c
-_0810675C:
- ldr r1, _0810677C
- ldr r2, _08106780
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8107090
-_0810676E:
- ldr r1, _08106784
- ldr r0, _08106788
- adds r1, r0
-_08106774:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081067E0
- .align 2, 0
-_0810677C: .4byte 0x02000000
-_08106780: .4byte 0x00015dde
-_08106784: .4byte gMain
-_08106788: .4byte 0x0000043c
-_0810678C:
- ldr r1, _081067E8
- ldr r2, _081067EC
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8106918
- ldr r0, _081067F0
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0
- str r4, [sp]
- ldr r0, _081067F4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081067F8
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r0, _081067FC
- bl SetVBlankCallback
- ldr r0, _08106800
- strb r4, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106804
- bl SetMainCallback2
-_081067E0:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081067E8: .4byte 0x02000000
-_081067EC: .4byte 0x00015dde
-_081067F0: .4byte gUnknown_083F6140
-_081067F4: .4byte 0x040000d4
-_081067F8: .4byte 0x85000100
-_081067FC: .4byte sub_8106AAC
-_08106800: .4byte gUnknown_03000750
-_08106804: .4byte sub_8106808
- thumb_func_end sub_8106674
-
- thumb_func_start sub_8106808
-sub_8106808: @ 8106808
- push {lr}
- bl sub_810682C
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8106808
-
- thumb_func_start sub_8106818
-sub_8106818: @ 8106818
- push {lr}
- ldr r0, _08106828
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08106828: .4byte gMain
- thumb_func_end sub_8106818
-
- thumb_func_start sub_810682C
-sub_810682C: @ 810682C
- push {lr}
- sub sp, 0x4
- ldr r3, _08106844
- ldrb r1, [r3]
- cmp r1, 0x1
- beq _08106880
- cmp r1, 0x1
- bgt _08106848
- cmp r1, 0
- beq _0810684E
- b _081068E6
- .align 2, 0
-_08106844: .4byte gUnknown_03000750
-_08106848:
- cmp r1, 0x2
- beq _081068C0
- b _081068E6
-_0810684E:
- ldr r0, _08106874
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810685E
- movs r0, 0x1
- strb r0, [r3]
-_0810685E:
- ldr r0, _08106878
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _0810687C
- ldrh r0, [r1]
- cmp r0, 0
- beq _081068E6
- subs r0, 0x1
- b _081068E4
- .align 2, 0
-_08106874: .4byte gPaletteFade
-_08106878: .4byte gUnknown_03000756
-_0810687C: .4byte gUnknown_03000754
-_08106880:
- ldr r0, _081068B4
- ldrh r2, [r0, 0x2E]
- ands r1, r2
- cmp r1, 0
- bne _08106892
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _081068A4
-_08106892:
- movs r0, 0x2
- strb r0, [r3]
- subs r0, 0x3
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081068A4:
- ldr r0, _081068B8
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068BC
- movs r0, 0
- b _081068E4
- .align 2, 0
-_081068B4: .4byte gMain
-_081068B8: .4byte gUnknown_03000756
-_081068BC: .4byte gUnknown_03000754
-_081068C0:
- ldr r0, _081068EC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081068D2
- ldr r0, _081068F0
- bl SetMainCallback2
-_081068D2:
- ldr r0, _081068F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068F8
- ldrh r0, [r1]
- cmp r0, 0x1D
- bhi _081068E6
- adds r0, 0x1
-_081068E4:
- strh r0, [r1]
-_081068E6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081068EC: .4byte gPaletteFade
-_081068F0: .4byte sub_8106818
-_081068F4: .4byte gUnknown_03000756
-_081068F8: .4byte gUnknown_03000754
- thumb_func_end sub_810682C
-
- thumb_func_start sub_81068FC
-sub_81068FC: @ 81068FC
- push {r4,lr}
- ldr r4, _08106914
- adds r0, r4, 0
- bl InitMenuWindow
- adds r0, r4, 0
- bl SetUpWindowConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106914: .4byte gWindowConfig_81E7160
- thumb_func_end sub_81068FC
-
- thumb_func_start sub_8106918
-sub_8106918: @ 8106918
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081069BE
- ldr r2, _08106974
- ldr r6, _08106978
- ldr r0, [r6]
- ldrb r0, [r0, 0xA]
- cmp r3, 0x7
- bhi _08106988
- ldr r1, _0810697C
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08106980
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0x16
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x16
- strb r0, [r2, 0x1]
- adds r2, 0x2
- ldr r1, _08106984
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- movs r1, 0x6
- b _081069AE
- .align 2, 0
-_08106974: .4byte gUnknown_03005E40
-_08106978: .4byte gUnknown_03005E8C
-_0810697C: .4byte gUnknown_083F60AC
-_08106980: .4byte gContestText_ContestWinner
-_08106984: .4byte gOtherText_Unknown1
-_08106988:
- ldr r4, _081069C4
- lsls r5, r0, 3
- adds r0, r5, r4
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- adds r2, r0, 0
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- bl StringCopy
- movs r1, 0x3
-_081069AE:
- movs r2, 0xE
- ldr r0, _081069C8
- lsls r1, 3
- adds r1, 0x1
- lsls r2, 3
- movs r3, 0x1
- bl sub_80729D8
-_081069BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081069C4: .4byte gUnknown_083F60C0
-_081069C8: .4byte gUnknown_03005E40
- thumb_func_end sub_8106918
-
- thumb_func_start sub_81069CC
-sub_81069CC: @ 81069CC
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- strh r3, [r0]
- ldr r2, _081069FC
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08106A00
- ldr r2, _08106A04
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08106A08
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106A0C
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- bx lr
- .align 2, 0
-_081069FC: .4byte 0x04000200
-_08106A00: .4byte REG_BG0CNT
-_08106A04: .4byte 0x00000c42
-_08106A08: .4byte 0x00000a45
-_08106A0C: .4byte REG_BLDCNT
- thumb_func_end sub_81069CC
-
- thumb_func_start sub_8106A10
-sub_8106A10: @ 8106A10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08106A34
- ldr r0, _08106A28
- strb r1, [r0]
- ldr r0, _08106A2C
- strh r1, [r0]
- ldr r0, _08106A30
- strh r1, [r0]
- b _08106A46
- .align 2, 0
-_08106A28: .4byte gUnknown_03000756
-_08106A2C: .4byte gUnknown_03000752
-_08106A30: .4byte gUnknown_03000754
-_08106A34:
- ldr r1, _08106A4C
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08106A50
- movs r0, 0xF
- strh r0, [r1]
- ldr r1, _08106A54
- movs r0, 0x1E
- strh r0, [r1]
-_08106A46:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A4C: .4byte gUnknown_03000756
-_08106A50: .4byte gUnknown_03000752
-_08106A54: .4byte gUnknown_03000754
- thumb_func_end sub_8106A10
-
- thumb_func_start sub_8106A58
-sub_8106A58: @ 8106A58
- push {lr}
- ldr r0, _08106A68
- ldrb r1, [r0]
- cmp r1, 0
- bne _08106A70
- ldr r0, _08106A6C
- strh r1, [r0]
- b _08106A92
- .align 2, 0
-_08106A68: .4byte gUnknown_03000756
-_08106A6C: .4byte REG_MOSAIC
-_08106A70:
- ldr r1, _08106A98
- ldr r2, _08106A9C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _08106AA0
- ldr r0, _08106AA4
- ldrh r1, [r0]
- lsrs r1, 1
- strh r1, [r2]
- ldr r3, _08106AA8
- lsls r0, r1, 12
- lsls r2, r1, 8
- orrs r0, r2
- lsls r2, r1, 4
- orrs r0, r2
- orrs r0, r1
- strh r0, [r3]
-_08106A92:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A98: .4byte REG_BG1CNT
-_08106A9C: .4byte 0x00000a45
-_08106AA0: .4byte gUnknown_03000752
-_08106AA4: .4byte gUnknown_03000754
-_08106AA8: .4byte REG_MOSAIC
- thumb_func_end sub_8106A58
-
- thumb_func_start sub_8106AAC
-sub_8106AAC: @ 8106AAC
- push {lr}
- bl sub_8106A58
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8106AAC
-
- thumb_func_start sub_8106AC4
-sub_8106AC4: @ 8106AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08106B28
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- ldr r2, [r0]
- adds r0, r6, 0
- bl species_and_otid_get_pal
- ldr r1, _08106B2C
- mov r8, r1
- ldr r1, [r1]
- bl LZDecompressVram
- cmp r4, 0
- bne _08106B40
- lsls r0, r6, 3
- ldr r1, _08106B30
- adds r0, r1
- ldr r1, _08106B34
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B38
- ldr r5, [r4, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r2, r8
- ldr r1, [r2]
- ldr r0, _08106B3C
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
- b _08106B74
- .align 2, 0
-_08106B28: .4byte gUnknown_03005E8C
-_08106B2C: .4byte gUnknown_03005E90
-_08106B30: .4byte gMonFrontPicTable
-_08106B34: .4byte gMonFrontPicCoords
-_08106B38: .4byte gUnknown_081FAF4C
-_08106B3C: .4byte gUnknown_03005E10
-_08106B40:
- lsls r0, r6, 3
- ldr r1, _08106B80
- adds r0, r1
- ldr r1, _08106B84
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B88
- ldr r5, [r4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _08106B8C
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
-_08106B74:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106B80: .4byte gMonBackPicTable
-_08106B84: .4byte gMonBackPicCoords
-_08106B88: .4byte gUnknown_081FAF4C
-_08106B8C: .4byte gUnknown_03005E10
- thumb_func_end sub_8106AC4
-
- thumb_func_start sub_8106B90
-sub_8106B90: @ 8106B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- mov r9, r1
- str r2, [sp]
- movs r0, 0
-_08106BA4:
- movs r3, 0
- adds r1, r0, 0x1
- str r1, [sp, 0x4]
- lsls r0, 3
- str r0, [sp, 0x8]
-_08106BAE:
- movs r1, 0
- adds r2, r3, 0x1
- mov r8, r2
- ldr r7, [sp, 0x8]
- adds r0, r7, r3
- lsls r0, 5
- mov r12, r0
- lsls r4, r3, 3
-_08106BBE:
- movs r3, 0
- lsls r0, r1, 2
- adds r6, r1, 0x1
- mov r2, r12
- adds r5, r2, r0
- ldr r7, [sp, 0x8]
- adds r0, r7, r1
- lsls r0, 7
- ldr r1, [sp]
- adds r2, r0, r1
-_08106BD2:
- lsrs r0, r3, 1
- adds r0, r5, r0
- add r0, r10
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08106BE6
- lsrs r1, 4
- b _08106BEA
-_08106BE6:
- movs r0, 0xF
- ands r1, r0
-_08106BEA:
- cmp r1, 0
- bne _08106BFC
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- movs r7, 0x80
- lsls r7, 8
- adds r1, r7, 0
- b _08106C08
-_08106BFC:
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
-_08106C08:
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BD2
- lsls r0, r6, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08106BBE
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BAE
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _08106BA4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B90
-
- thumb_func_start sub_8106C40
-sub_8106C40: @ 8106C40
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08106C7C
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- cmp r4, 0x1
- beq _08106C5E
- b _08106DB4
-_08106C5E:
- ldr r0, _08106C80
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106D1C
- lsls r0, 2
- ldr r1, _08106C84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106C7C: .4byte gPictureFramePalettes
-_08106C80: .4byte gUnknown_03005E8C
-_08106C84: .4byte _08106C88
- .align 2, 0
-_08106C88:
- .4byte _08106C9C
- .4byte _08106CB4
- .4byte _08106CCC
- .4byte _08106CE4
- .4byte _08106D08
-_08106C9C:
- ldr r0, _08106CAC
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CB0
- b _08106CF0
- .align 2, 0
-_08106CAC: .4byte gPictureFrameTiles_0
-_08106CB0: .4byte gPictureFrameTilemap_0
-_08106CB4:
- ldr r0, _08106CC4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CC8
- b _08106CF0
- .align 2, 0
-_08106CC4: .4byte gPictureFrameTiles_1
-_08106CC8: .4byte gPictureFrameTilemap_1
-_08106CCC:
- ldr r0, _08106CDC
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CE0
- b _08106CF0
- .align 2, 0
-_08106CDC: .4byte gPictureFrameTiles_2
-_08106CE0: .4byte gPictureFrameTilemap_2
-_08106CE4:
- ldr r0, _08106CFC
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D00
-_08106CF0:
- ldr r1, _08106D04
- ldr r1, [r1]
- bl RLUnCompWram
- b _08106D1C
- .align 2, 0
-_08106CFC: .4byte gPictureFrameTiles_3
-_08106D00: .4byte gPictureFrameTilemap_3
-_08106D04: .4byte gUnknown_03005E10
-_08106D08:
- ldr r0, _08106D98
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D9C
- ldr r1, _08106DA0
- ldr r1, [r1]
- bl RLUnCompWram
-_08106D1C:
- movs r1, 0
- ldr r5, _08106DA4
- ldr r0, _08106DA8
- adds r4, r0, 0
-_08106D24:
- movs r3, 0
- lsls r2, r1, 5
-_08106D28:
- adds r0, r2, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08106D28
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _08106D24
- movs r1, 0
- ldr r0, _08106DAC
- mov r12, r0
- ldr r7, _08106DA0
-_08106D4C:
- movs r3, 0
- adds r6, r1, 0x1
- lsls r5, r1, 5
- lsls r4, r1, 6
-_08106D54:
- adds r2, r5, r3
- lsls r2, 1
- add r2, r12
- ldr r0, [r7]
- adds r0, r4, r0
- lsls r1, r3, 1
- adds r0, r1
- adds r0, 0x8C
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x11
- bls _08106D54
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- bls _08106D4C
- movs r3, 0
- ldr r4, _08106DB0
- ldr r2, _08106DA0
-_08106D80:
- lsls r1, r3, 1
- adds r1, r4
- ldr r0, [r2]
- adds r0, 0x8E
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08106D80
- b _08106E86
- .align 2, 0
-_08106D98: .4byte gPictureFrameTiles_4
-_08106D9C: .4byte gPictureFrameTilemap_4
-_08106DA0: .4byte gUnknown_03005E10
-_08106DA4: .4byte 0x06006000
-_08106DA8: .4byte 0x00001015
-_08106DAC: .4byte 0x0600608c
-_08106DB0: .4byte 0x0600608e
-_08106DB4:
- cmp r5, 0x7
- bhi _08106DD0
- ldr r0, _08106DC8
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106DCC
- b _08106E60
- .align 2, 0
-_08106DC8: .4byte gPictureFrameTiles_5
-_08106DCC: .4byte gPictureFrameTilemap_5
-_08106DD0:
- ldr r0, _08106DF0
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106E86
- lsls r0, 2
- ldr r1, _08106DF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106DF0: .4byte gUnknown_03005E8C
-_08106DF4: .4byte _08106DF8
- .align 2, 0
-_08106DF8:
- .4byte _08106E0C
- .4byte _08106E24
- .4byte _08106E3C
- .4byte _08106E54
- .4byte _08106E74
-_08106E0C:
- ldr r0, _08106E1C
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E20
- b _08106E60
- .align 2, 0
-_08106E1C: .4byte gPictureFrameTiles_0
-_08106E20: .4byte gPictureFrameTilemap_0
-_08106E24:
- ldr r0, _08106E34
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E38
- b _08106E60
- .align 2, 0
-_08106E34: .4byte gPictureFrameTiles_1
-_08106E38: .4byte gPictureFrameTilemap_1
-_08106E3C:
- ldr r0, _08106E4C
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E50
- b _08106E60
- .align 2, 0
-_08106E4C: .4byte gPictureFrameTiles_2
-_08106E50: .4byte gPictureFrameTilemap_2
-_08106E54:
- ldr r0, _08106E68
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E6C
-_08106E60:
- ldr r1, _08106E70
- bl RLUnCompVram
- b _08106E86
- .align 2, 0
-_08106E68: .4byte gPictureFrameTiles_3
-_08106E6C: .4byte gPictureFrameTilemap_3
-_08106E70: .4byte 0x06006000
-_08106E74:
- ldr r0, _08106E8C
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E90
- ldr r1, _08106E94
- bl RLUnCompVram
-_08106E86:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106E8C: .4byte gPictureFrameTiles_4
-_08106E90: .4byte gPictureFrameTilemap_4
-_08106E94: .4byte 0x06006000
- thumb_func_end sub_8106C40
-
- thumb_func_start sub_8106E98
-sub_8106E98: @ 8106E98
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08106ED0
- ldr r1, _08106ED4
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4, 0x3C]
- str r2, [r4, 0x40]
- adds r3, r4, 0
- adds r3, 0x40
- ldrh r2, [r3]
- ldr r1, _08106ED8
- ands r1, r2
- strh r1, [r3]
- ldrh r1, [r4, 0x3E]
- ldr r0, _08106EDC
- ands r0, r1
- movs r1, 0x58
- orrs r0, r1
- strh r0, [r4, 0x3E]
- adds r1, r4, 0
- adds r1, 0x3C
- movs r0, 0x18
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106ED0: .4byte gMain
-_08106ED4: .4byte gOamData_83F6138
-_08106ED8: .4byte 0xfffffc00
-_08106EDC: .4byte 0xfffffe00
- thumb_func_end sub_8106E98
-
- thumb_func_start sub_8106EE0
-sub_8106EE0: @ 8106EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08106EF8
- ldr r0, _08106EF4
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- b _08106F08
- .align 2, 0
-_08106EF4: .4byte gUnknown_03005E8C
-_08106EF8:
- ldr r0, _08106F18
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_08106F08:
- cmp r0, 0x4
- bhi _08106F46
- lsls r0, 2
- ldr r1, _08106F1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106F18: .4byte gUnknown_03005E8C
-_08106F1C: .4byte _08106F20
- .align 2, 0
-_08106F20:
- .4byte _08106F34
- .4byte _08106F38
- .4byte _08106F3C
- .4byte _08106F40
- .4byte _08106F44
-_08106F34:
- movs r0, 0x9
- b _08106F46
-_08106F38:
- movs r0, 0xD
- b _08106F46
-_08106F3C:
- movs r0, 0x2
- b _08106F46
-_08106F40:
- movs r0, 0x24
- b _08106F46
-_08106F44:
- movs r0, 0x6
-_08106F46:
- pop {r1}
- bx r1
- thumb_func_end sub_8106EE0
-
- thumb_func_start sub_8106F4C
-sub_8106F4C: @ 8106F4C
- ldr r0, _08106F5C
- ldr r1, _08106F60
- str r1, [r0]
- ldr r0, _08106F64
- ldr r2, _08106F68
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08106F5C: .4byte gUnknown_03005E90
-_08106F60: .4byte 0x02017e00
-_08106F64: .4byte gUnknown_03005E10
-_08106F68: .4byte 0xffffe000
- thumb_func_end sub_8106F4C
-
- thumb_func_start sub_8106F6C
-sub_8106F6C: @ 8106F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08106FAC
- ldr r0, _08106FB0
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r0, _08106FB4
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r2, 0
- strb r2, [r1, 0x18]
- ldr r0, _08106FB8
- ldr r0, [r0]
- ldrb r0, [r0]
- strb r0, [r1, 0x1F]
- strb r2, [r1, 0x19]
- strb r2, [r1, 0x1A]
- movs r0, 0x40
- strb r0, [r1, 0x1B]
- strb r0, [r1, 0x1C]
- strb r0, [r1, 0x1D]
- strb r0, [r1, 0x1E]
- subs r0, r3, 0x2
- adds r4, r1, 0
- cmp r0, 0x22
- bhi _08107050
- lsls r0, 2
- ldr r1, _08106FBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106FAC: .4byte gUnknown_03005E20
-_08106FB0: .4byte gUnknown_03005E10
-_08106FB4: .4byte gUnknown_03005E90
-_08106FB8: .4byte gUnknown_03005E8C
-_08106FBC: .4byte _08106FC0
- .align 2, 0
-_08106FC0:
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
-_0810704C:
- movs r0, 0x3
- b _08107052
-_08107050:
- movs r0, 0x1
-_08107052:
- strh r0, [r4, 0x14]
- movs r0, 0x2
- strh r0, [r4, 0x16]
- strb r3, [r4]
- ldr r0, _08107088
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80FC7A0
- adds r0, r4, 0
- bl sub_80FDA18
- adds r0, r4, 0
- bl sub_80FD8CC
- ldr r0, _0810708C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x80
- lsls r2, 2
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08107088: .4byte 0x06010000
-_0810708C: .4byte gUnknown_03005E90
- thumb_func_end sub_8106F6C
-
- thumb_func_start sub_8107090
-sub_8107090: @ 8107090
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- bl sub_8106F4C
- ldr r0, _081070D0
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- movs r1, 0
- bl sub_8106AC4
- adds r0, r4, 0
- bl sub_8106EE0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8106F6C
- adds r0, r4, 0
- bl sub_8106E98
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8106C40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081070D0: .4byte gUnknown_03005E8C
- thumb_func_end sub_8107090
-
- thumb_func_start sub_81070D4
-sub_81070D4: @ 81070D4
- push {r4-r7,lr}
- ldr r2, _08107144
- movs r3, 0
- ldr r4, _08107148
- movs r1, 0
-_081070DE:
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2F
- bls _081070DE
- ldrh r2, [r4]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _08107138
- ldr r5, _0810714C
- ldrh r1, [r5]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _08107138
- ldr r0, _08107150
- ands r0, r2
- cmp r0, 0
- bne _08107138
- movs r3, 0
- ldr r7, _08107154
- ldr r4, _08107158
- adds r6, r4, 0
- subs r6, 0x8
-_08107110:
- lsls r2, r3, 1
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r7
- ldrh r2, [r2]
- cmp r2, 0
- beq _08107132
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107132:
- adds r3, 0x1
- cmp r3, 0x3
- ble _08107110
-_08107138:
- bl sub_810715C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08107144: .4byte 0x02016a00
-_08107148: .4byte gUnknown_020239F8
-_0810714C: .4byte word_202FF5E
-_08107150: .4byte 0x00000982
-_08107154: .4byte gTrainers + 0x10
-_08107158: .4byte 0x02016a2c
- thumb_func_end sub_81070D4
-
- thumb_func_start sub_810715C
-sub_810715C: @ 810715C
- push {r4-r7,lr}
- ldr r2, _08107204
- movs r4, 0
- ldr r3, _08107208
- movs r1, 0
-_08107166:
- adds r0, r2, r4
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08107166
- ldr r0, _08107204
- movs r1, 0x64
- movs r4, 0x3
- adds r0, 0x7
-_08107178:
- strb r1, [r0]
- subs r0, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _08107178
- ldrb r0, [r3]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _08107204
- adds r5, r0, 0x4
- ldr r6, _0810720C
-_08107198:
- ldr r0, [r6]
- ands r0, r7
- cmp r0, 0
- beq _081071A4
- movs r0, 0
- strb r0, [r5]
-_081071A4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- strb r1, [r5, 0x14]
- adds r5, 0x1
- adds r6, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _08107198
- ldr r0, _08107210
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08107214
- ldr r0, _08107208
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _08107218
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08107224
- ldr r4, _0810721C
- bl Random
- movs r5, 0x2
- ands r0, r5
- strb r0, [r4]
- ldr r0, _08107220
- ldrb r1, [r0]
- ldr r2, _0810720C
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0810722C
- eors r3, r5
- strb r3, [r4]
- b _0810722C
- .align 2, 0
-_08107204: .4byte 0x02016800
-_08107208: .4byte gUnknown_02024A60
-_0810720C: .4byte gBitTable
-_08107210: .4byte 0x02016c00
-_08107214: .4byte gUnknown_02024C07
-_08107218: .4byte gUnknown_020239F8
-_0810721C: .4byte gUnknown_02024C08
-_08107220: .4byte gUnknown_02024C0C
-_08107224:
- ldr r0, _08107244
- movs r1, 0x1
- eors r1, r2
- strb r1, [r0]
-_0810722C:
- ldr r0, _08107248
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08107250
- ldr r1, _0810724C
- movs r0, 0x80
- lsls r0, 23
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107244: .4byte gUnknown_02024C08
-_08107248: .4byte gUnknown_020239F8
-_0810724C: .4byte 0x02016800
-_08107250:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _08107268
- ldr r1, _08107264
- movs r0, 0x80
- lsls r0, 22
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107264: .4byte 0x02016800
-_08107268:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08107280
- ldr r1, _0810727C
- movs r0, 0x80
- lsls r0, 24
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_0810727C: .4byte 0x02016800
-_08107280:
- ldr r3, _0810729C
- ldr r2, _081072A0
- ldr r0, _081072A4
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1C
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3, 0xC]
-_08107296:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810729C: .4byte 0x02016800
-_081072A0: .4byte gTrainers
-_081072A4: .4byte word_202FF5E
- thumb_func_end sub_810715C
-
- thumb_func_start sub_81072A8
-sub_81072A8: @ 81072A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- bl sub_810745C
- ldr r1, _081072F4
- ldr r0, [r1, 0xC]
- cmp r0, 0
- beq _081072E2
- adds r4, r1, 0
- movs r5, 0
-_081072C0:
- ldr r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081072D0
- strb r5, [r4]
- bl sub_8107374
-_081072D0:
- ldr r1, [r4, 0xC]
- lsrs r1, 1
- str r1, [r4, 0xC]
- ldrb r0, [r4, 0x11]
- adds r0, 0x1
- strb r0, [r4, 0x11]
- strb r5, [r4, 0x1]
- cmp r1, 0
- bne _081072C0
-_081072E2:
- ldr r7, _081072F4
- ldrb r1, [r7, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081072F8
- movs r0, 0x4
- b _08107368
- .align 2, 0
-_081072F4: .4byte 0x02016800
-_081072F8:
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08107308
- movs r0, 0x5
- b _08107368
-_08107308:
- movs r5, 0x1
- mov r0, sp
- ldrb r1, [r7, 0x4]
- strb r1, [r0]
- add r0, sp, 0x4
- strb r2, [r0]
- movs r3, 0x1
- mov r8, r0
- mov r4, sp
- mov r6, r8
- adds r2, r7, 0x5
-_0810731E:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _08107330
- movs r5, 0x1
- ldrb r0, [r2]
- strb r0, [r4]
- strb r3, [r6]
-_08107330:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _0810734E
- mov r0, sp
- adds r1, r0, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r6, r1
- strb r3, [r1]
-_0810734E:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810731E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- add r0, r8
- ldrb r0, [r0]
-_08107368:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81072A8
-
- thumb_func_start sub_8107374
-sub_8107374: @ 8107374
- push {r4-r7,lr}
- ldr r1, _081073D0
- ldrb r0, [r1]
- adds r6, r1, 0
- cmp r0, 0x2
- beq _08107456
- adds r4, r1, 0
- ldr r7, _081073D4
-_08107384:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _081073E4
- cmp r0, 0x1
- bgt _0810744E
- cmp r0, 0
- bne _0810744E
- ldr r1, _081073D8
- ldrb r0, [r4, 0x11]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r7]
- ldr r5, _081073DC
- ldrb r3, [r4, 0x1]
- ldr r0, _081073E0
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, r2
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081073C6
- lsls r0, r3, 1
- adds r0, r2
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
-_081073C6:
- strh r0, [r4, 0x2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810744E
- .align 2, 0
-_081073D0: .4byte 0x02016800
-_081073D4: .4byte gUnknown_02039238
-_081073D8: .4byte BattleAIs
-_081073DC: .4byte gBattleMons
-_081073E0: .4byte gUnknown_02024C07
-_081073E4:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08107400
- ldr r1, _081073FC
- ldr r0, [r7]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08107410
- .align 2, 0
-_081073FC: .4byte gUnknown_083F6144
-_08107400:
- adds r0, r4, 0x4
- ldrb r2, [r4, 0x1]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x10]
-_08107410:
- ldr r1, _0810743C
- ldrb r2, [r1, 0x10]
- movs r0, 0x1
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _0810744E
- ldrb r0, [r6, 0x1]
- adds r0, 0x1
- strb r0, [r6, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08107440
- movs r0, 0x8
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08107440
- strb r0, [r6]
- b _08107446
- .align 2, 0
-_0810743C: .4byte 0x02016800
-_08107440:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107446:
- ldrb r1, [r4, 0x10]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x10]
-_0810744E:
- adds r1, r6, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _08107384
-_08107456:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8107374
-
- thumb_func_start sub_810745C
-sub_810745C: @ 810745C
- push {r4-r6,lr}
- movs r2, 0
- ldr r3, _08107488
- ldr r5, _0810748C
- ldr r6, _08107490
- adds r4, r3, 0
-_08107468:
- lsls r0, r2, 1
- ldrb r1, [r4]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0
- bne _08107494
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- b _0810749A
- .align 2, 0
-_08107488: .4byte gUnknown_02024C08
-_0810748C: .4byte 0x02016a00
-_08107490: .4byte gUnknown_02024C34
-_08107494:
- adds r2, 0x1
- cmp r2, 0x7
- ble _08107468
-_0810749A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810745C
-
- thumb_func_start unref_sub_81074A0
-unref_sub_81074A0: @ 81074A0
- push {lr}
- lsls r0, 24
- ldr r1, _081074C0
- lsrs r0, 25
- movs r2, 0x7
- lsls r0, 4
- adds r0, r1
- adds r0, 0xE
- movs r1, 0
-_081074B2:
- strh r1, [r0]
- subs r0, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _081074B2
- pop {r0}
- bx r0
- .align 2, 0
-_081074C0: .4byte 0x02016a00
- thumb_func_end unref_sub_81074A0
-
- thumb_func_start sub_81074C4
-sub_81074C4: @ 81074C4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081074EC
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _081074F4
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x20
- adds r1, r2
- strb r5, [r1]
-_081074EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081074F4: .4byte 0x02016a00
- thumb_func_end sub_81074C4
-
- thumb_func_start sub_81074F8
-sub_81074F8: @ 81074F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08107520
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _08107528
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x22
- adds r1, r2
- strb r5, [r1]
-_08107520:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107528: .4byte 0x02016a00
- thumb_func_end sub_81074F8
-
- thumb_func_start sub_810752C
-sub_810752C: @ 810752C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107560
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bcs _08107564
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107568
- .align 2, 0
-_08107560: .4byte gUnknown_02039238
-_08107564:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107568:
- pop {r0}
- bx r0
- thumb_func_end sub_810752C
-
- thumb_func_start sub_810756C
-sub_810756C: @ 810756C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075A0
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bls _081075A4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075A8
- .align 2, 0
-_081075A0: .4byte gUnknown_02039238
-_081075A4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075A8:
- pop {r0}
- bx r0
- thumb_func_end sub_810756C
-
- thumb_func_start sub_81075AC
-sub_81075AC: @ 81075AC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075E0
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bne _081075E4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075E8
- .align 2, 0
-_081075E0: .4byte gUnknown_02039238
-_081075E4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81075AC
-
- thumb_func_start sub_81075EC
-sub_81075EC: @ 81075EC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107620
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- beq _08107624
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107628
- .align 2, 0
-_08107620: .4byte gUnknown_02039238
-_08107624:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107628:
- pop {r0}
- bx r0
- thumb_func_end sub_81075EC
-
- thumb_func_start sub_810762C
-sub_810762C: @ 810762C
- push {r4,r5,lr}
- ldr r2, _08107660
- ldrb r1, [r2, 0x1]
- adds r3, r2, 0x4
- adds r1, r3
- ldr r4, _08107664
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r5, [r1]
- adds r0, r5
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08107652
- movs r0, 0
- strb r0, [r1]
-_08107652:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107660: .4byte 0x02016800
-_08107664: .4byte gUnknown_02039238
- thumb_func_end sub_810762C
-
- thumb_func_start sub_8107668
-sub_8107668: @ 8107668
- push {r4,lr}
- ldr r0, _0810767C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107684
- ldr r0, _08107680
- b _08107686
- .align 2, 0
-_0810767C: .4byte gUnknown_02039238
-_08107680: .4byte gUnknown_02024C07
-_08107684:
- ldr r0, _081076BC
-_08107686:
- ldrb r1, [r0]
- ldr r2, _081076C0
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bcs _081076C4
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081076C8
- .align 2, 0
-_081076BC: .4byte gUnknown_02024C08
-_081076C0: .4byte gBattleMons
-_081076C4:
- adds r0, r2, 0x7
- str r0, [r4]
-_081076C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107668
-
- thumb_func_start sub_81076D0
-sub_81076D0: @ 81076D0
- push {r4,lr}
- ldr r0, _081076E4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081076EC
- ldr r0, _081076E8
- b _081076EE
- .align 2, 0
-_081076E4: .4byte gUnknown_02039238
-_081076E8: .4byte gUnknown_02024C07
-_081076EC:
- ldr r0, _08107724
-_081076EE:
- ldrb r1, [r0]
- ldr r2, _08107728
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bls _0810772C
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107730
- .align 2, 0
-_08107724: .4byte gUnknown_02024C08
-_08107728: .4byte gBattleMons
-_0810772C:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107730:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81076D0
-
- thumb_func_start sub_8107738
-sub_8107738: @ 8107738
- push {r4,lr}
- ldr r0, _0810774C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107754
- ldr r0, _08107750
- b _08107756
- .align 2, 0
-_0810774C: .4byte gUnknown_02039238
-_08107750: .4byte gUnknown_02024C07
-_08107754:
- ldr r0, _0810778C
-_08107756:
- ldrb r1, [r0]
- ldr r2, _08107790
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bne _08107794
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107798
- .align 2, 0
-_0810778C: .4byte gUnknown_02024C08
-_08107790: .4byte gBattleMons
-_08107794:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107798:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107738
-
- thumb_func_start sub_81077A0
-sub_81077A0: @ 81077A0
- push {r4,lr}
- ldr r0, _081077B4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081077BC
- ldr r0, _081077B8
- b _081077BE
- .align 2, 0
-_081077B4: .4byte gUnknown_02039238
-_081077B8: .4byte gUnknown_02024C07
-_081077BC:
- ldr r0, _081077F4
-_081077BE:
- ldrb r1, [r0]
- ldr r2, _081077F8
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- beq _081077FC
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107800
- .align 2, 0
-_081077F4: .4byte gUnknown_02024C08
-_081077F8: .4byte gBattleMons
-_081077FC:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107800:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81077A0
-
- thumb_func_start sub_8107808
-sub_8107808: @ 8107808
- push {r4,r5,lr}
- ldr r0, _0810781C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107824
- ldr r0, _08107820
- b _08107826
- .align 2, 0
-_0810781C: .4byte gUnknown_02039238
-_08107820: .4byte gUnknown_02024C07
-_08107824:
- ldr r0, _08107868
-_08107826:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _0810786C
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107870
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107876
- .align 2, 0
-_08107868: .4byte gUnknown_02024C08
-_0810786C: .4byte gBattleMons
-_08107870:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107876:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107808
-
- thumb_func_start sub_810787C
-sub_810787C: @ 810787C
- push {r4,r5,lr}
- ldr r0, _08107890
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107898
- ldr r0, _08107894
- b _0810789A
- .align 2, 0
-_08107890: .4byte gUnknown_02039238
-_08107894: .4byte gUnknown_02024C07
-_08107898:
- ldr r0, _081078DC
-_0810789A:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081078E0
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081078E4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081078EA
- .align 2, 0
-_081078DC: .4byte gUnknown_02024C08
-_081078E0: .4byte gBattleMons
-_081078E4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081078EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810787C
-
- thumb_func_start sub_81078F0
-sub_81078F0: @ 81078F0
- push {r4,r5,lr}
- ldr r0, _08107904
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0810790C
- ldr r0, _08107908
- b _0810790E
- .align 2, 0
-_08107904: .4byte gUnknown_02039238
-_08107908: .4byte gUnknown_02024C07
-_0810790C:
- ldr r0, _08107950
-_0810790E:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _08107954
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107958
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810795E
- .align 2, 0
-_08107950: .4byte gUnknown_02024C08
-_08107954: .4byte gBattleMons
-_08107958:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_0810795E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81078F0
-
- thumb_func_start sub_8107964
-sub_8107964: @ 8107964
- push {r4,r5,lr}
- ldr r0, _08107978
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107980
- ldr r0, _0810797C
- b _08107982
- .align 2, 0
-_08107978: .4byte gUnknown_02039238
-_0810797C: .4byte gUnknown_02024C07
-_08107980:
- ldr r0, _081079C4
-_08107982:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081079C8
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081079CC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081079D2
- .align 2, 0
-_081079C4: .4byte gUnknown_02024C08
-_081079C8: .4byte gBattleMons
-_081079CC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081079D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107964
-
- thumb_func_start sub_81079D8
-sub_81079D8: @ 81079D8
- push {r4,r5,lr}
- ldr r0, _081079EC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081079F4
- ldr r0, _081079F0
- b _081079F6
- .align 2, 0
-_081079EC: .4byte gUnknown_02039238
-_081079F0: .4byte gUnknown_02024C07
-_081079F4:
- ldr r0, _08107A34
-_081079F6:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107A38
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08107A3C
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107A42
- .align 2, 0
-_08107A34: .4byte gUnknown_02024C08
-_08107A38: .4byte gUnknown_02024C98
-_08107A3C:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107A42:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81079D8
-
- thumb_func_start sub_8107A48
-sub_8107A48: @ 8107A48
- push {r4,r5,lr}
- ldr r0, _08107A5C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107A64
- ldr r0, _08107A60
- b _08107A66
- .align 2, 0
-_08107A5C: .4byte gUnknown_02039238
-_08107A60: .4byte gUnknown_02024C07
-_08107A64:
- ldr r0, _08107AA4
-_08107A66:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107AA8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _08107AAC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107AB2
- .align 2, 0
-_08107AA4: .4byte gUnknown_02024C08
-_08107AA8: .4byte gUnknown_02024C98
-_08107AAC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107AB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107A48
-
- thumb_func_start sub_8107AB8
-sub_8107AB8: @ 8107AB8
- push {r4,lr}
- ldr r0, _08107AC8
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107AD0
- ldr r0, _08107ACC
- b _08107AD2
- .align 2, 0
-_08107AC8: .4byte gUnknown_02039238
-_08107ACC: .4byte gUnknown_02024C07
-_08107AD0:
- ldr r0, _08107B1C
-_08107AD2:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B20
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107B24
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08107B28
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107B2E
- .align 2, 0
-_08107B1C: .4byte gUnknown_02024C08
-_08107B20: .4byte gUnknown_02039238
-_08107B24: .4byte gUnknown_02024C7A
-_08107B28:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107B2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107AB8
-
- thumb_func_start sub_8107B34
-sub_8107B34: @ 8107B34
- push {r4,lr}
- ldr r0, _08107B44
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107B4C
- ldr r0, _08107B48
- b _08107B4E
- .align 2, 0
-_08107B44: .4byte gUnknown_02039238
-_08107B48: .4byte gUnknown_02024C07
-_08107B4C:
- ldr r0, _08107B98
-_08107B4E:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B9C
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107BA0
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08107BA4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107BAA
- .align 2, 0
-_08107B98: .4byte gUnknown_02024C08
-_08107B9C: .4byte gUnknown_02039238
-_08107BA0: .4byte gUnknown_02024C7A
-_08107BA4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107BAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107B34
-
- thumb_func_start sub_8107BB0
-sub_8107BB0: @ 8107BB0
- push {lr}
- ldr r0, _08107BD8
- ldr r3, _08107BDC
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bcs _08107BE0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107BE4
- .align 2, 0
-_08107BD8: .4byte 0x02016800
-_08107BDC: .4byte gUnknown_02039238
-_08107BE0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107BE4:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BB0
-
- thumb_func_start sub_8107BE8
-sub_8107BE8: @ 8107BE8
- push {lr}
- ldr r0, _08107C10
- ldr r3, _08107C14
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bls _08107C18
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C1C
- .align 2, 0
-_08107C10: .4byte 0x02016800
-_08107C14: .4byte gUnknown_02039238
-_08107C18:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C1C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BE8
-
- thumb_func_start sub_8107C20
-sub_8107C20: @ 8107C20
- push {lr}
- ldr r0, _08107C48
- ldr r3, _08107C4C
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08107C50
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C54
- .align 2, 0
-_08107C48: .4byte 0x02016800
-_08107C4C: .4byte gUnknown_02039238
-_08107C50:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C54:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C20
-
- thumb_func_start sub_8107C58
-sub_8107C58: @ 8107C58
- push {lr}
- ldr r0, _08107C80
- ldr r3, _08107C84
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08107C88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C8C
- .align 2, 0
-_08107C80: .4byte 0x02016800
-_08107C84: .4byte gUnknown_02039238
-_08107C88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C58
-
- thumb_func_start sub_8107C90
-sub_8107C90: @ 8107C90
- push {lr}
- ldr r3, _08107CCC
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107CD0
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08107CD4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107CDA
- .align 2, 0
-_08107CCC: .4byte gUnknown_02039238
-_08107CD0: .4byte 0x02016800
-_08107CD4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107CDA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C90
-
- thumb_func_start sub_8107CE0
-sub_8107CE0: @ 8107CE0
- push {lr}
- ldr r3, _08107D1C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D20
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08107D24
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D2A
- .align 2, 0
-_08107D1C: .4byte gUnknown_02039238
-_08107D20: .4byte 0x02016800
-_08107D24:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D2A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107CE0
-
- thumb_func_start sub_8107D30
-sub_8107D30: @ 8107D30
- push {lr}
- ldr r3, _08107D6C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D70
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08107D74
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D7A
- .align 2, 0
-_08107D6C: .4byte gUnknown_02039238
-_08107D70: .4byte 0x02016800
-_08107D74:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D7A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D30
-
- thumb_func_start sub_8107D80
-sub_8107D80: @ 8107D80
- push {lr}
- ldr r3, _08107DBC
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107DC0
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08107DC4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107DCA
- .align 2, 0
-_08107DBC: .4byte gUnknown_02039238
-_08107DC0: .4byte 0x02016800
-_08107DC4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D80
-
- thumb_func_start sub_8107DD0
-sub_8107DD0: @ 8107DD0
- push {lr}
- ldr r3, _08107E00
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E04
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- bne _08107E08
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E0C
- .align 2, 0
-_08107E00: .4byte gUnknown_02039238
-_08107E04: .4byte 0x02016800
-_08107E08:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107DD0
-
- thumb_func_start sub_8107E10
-sub_8107E10: @ 8107E10
- push {lr}
- ldr r3, _08107E40
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E44
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- beq _08107E48
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E4C
- .align 2, 0
-_08107E40: .4byte gUnknown_02039238
-_08107E44: .4byte 0x02016800
-_08107E48:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107E10
-
- thumb_func_start sub_8107E50
-sub_8107E50: @ 8107E50
- push {r4,lr}
- ldr r2, _08107E98
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08107EA8
- ldr r0, _08107E9C
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107E76:
- ldrb r0, [r3]
- cmp r1, r0
- bne _08107EA0
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107EAE
- .align 2, 0
-_08107E98: .4byte gUnknown_02039238
-_08107E9C: .4byte 0x02016800
-_08107EA0:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107E76
-_08107EA8:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107E50
-
- thumb_func_start sub_8107EB4
-sub_8107EB4: @ 8107EB4
- push {r4,lr}
- ldr r2, _08107EEC
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- adds r4, r2, 0
- cmp r0, 0xFF
- beq _08107EFC
- ldr r0, _08107EF0
- ldr r2, [r0, 0x8]
- adds r1, r4, 0
-_08107EDC:
- ldrb r0, [r3]
- cmp r2, r0
- bne _08107EF4
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107F14
- .align 2, 0
-_08107EEC: .4byte gUnknown_02039238
-_08107EF0: .4byte 0x02016800
-_08107EF4:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107EDC
-_08107EFC:
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08107F14:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107EB4
-
- thumb_func_start sub_8107F1C
-sub_8107F1C: @ 8107F1C
- push {r4,r5,lr}
- ldr r2, _08107F64
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r5, _08107F68
- cmp r0, r5
- beq _08107F78
- ldr r0, _08107F6C
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107F44:
- ldrh r0, [r3]
- cmp r1, r0
- bne _08107F70
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107F7E
- .align 2, 0
-_08107F64: .4byte gUnknown_02039238
-_08107F68: .4byte 0x0000ffff
-_08107F6C: .4byte 0x02016800
-_08107F70:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r5
- bne _08107F44
-_08107F78:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107F7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F1C
-
- thumb_func_start sub_8107F84
-sub_8107F84: @ 8107F84
- push {r4,r5,lr}
- ldr r2, _08107FBC
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r4, _08107FC0
- adds r5, r2, 0
- cmp r0, r4
- beq _08107FD0
- ldr r0, _08107FC4
- ldr r2, [r0, 0x8]
- adds r1, r5, 0
-_08107FAE:
- ldrh r0, [r3]
- cmp r2, r0
- bne _08107FC8
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107FE8
- .align 2, 0
-_08107FBC: .4byte gUnknown_02039238
-_08107FC0: .4byte 0x0000ffff
-_08107FC4: .4byte 0x02016800
-_08107FC8:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r4
- bne _08107FAE
-_08107FD0:
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
-_08107FE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F84
-
- thumb_func_start sub_8107FF0
-sub_8107FF0: @ 8107FF0
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _08108030
- ldr r1, _08108034
- ldr r0, _08108038
- ldrb r2, [r0]
- ldr r5, _0810803C
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108006:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810801A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108022
-_0810801A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108006
-_08108022:
- cmp r3, 0x4
- bne _08108040
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _08108058
- .align 2, 0
-_08108030: .4byte gUnknown_02039238
-_08108034: .4byte gBattleMons
-_08108038: .4byte gUnknown_02024C07
-_0810803C: .4byte gBattleMoves
-_08108040:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08108058:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107FF0
-
- thumb_func_start sub_8108060
-sub_8108060: @ 8108060
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _081080A0
- ldr r1, _081080A4
- ldr r0, _081080A8
- ldrb r2, [r0]
- ldr r5, _081080AC
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108076:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810808A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108092
-_0810808A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108076
-_08108092:
- cmp r3, 0x4
- beq _081080B0
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _081080C8
- .align 2, 0
-_081080A0: .4byte gUnknown_02039238
-_081080A4: .4byte gBattleMons
-_081080A8: .4byte gUnknown_02024C07
-_081080AC: .4byte gBattleMoves
-_081080B0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081080C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108060
-
- thumb_func_start sub_81080D0
-sub_81080D0: @ 81080D0
- ldr r1, _081080E4
- ldr r0, _081080E8
- ldrb r0, [r0, 0x13]
- str r0, [r1, 0x8]
- ldr r1, _081080EC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081080E4: .4byte 0x02016800
-_081080E8: .4byte gUnknown_030042E0
-_081080EC: .4byte gUnknown_02039238
- thumb_func_end sub_81080D0
-
- thumb_func_start sub_81080F0
-sub_81080F0: @ 81080F0
- push {r4,lr}
- ldr r1, _08108108
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081081B6
- lsls r0, 2
- ldr r1, _0810810C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08108108: .4byte gUnknown_02039238
-_0810810C: .4byte _08108110
- .align 2, 0
-_08108110:
- .4byte _08108144
- .4byte _08108124
- .4byte _08108184
- .4byte _08108164
- .4byte _081081A4
-_08108124:
- ldr r3, _08108138
- ldr r2, _0810813C
- ldr r0, _08108140
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108138: .4byte 0x02016800
-_0810813C: .4byte gBattleMons
-_08108140: .4byte gUnknown_02024C07
-_08108144:
- ldr r3, _08108158
- ldr r2, _0810815C
- ldr r0, _08108160
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108158: .4byte 0x02016800
-_0810815C: .4byte gBattleMons
-_08108160: .4byte gUnknown_02024C08
-_08108164:
- ldr r3, _08108178
- ldr r2, _0810817C
- ldr r0, _08108180
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108178: .4byte 0x02016800
-_0810817C: .4byte gBattleMons
-_08108180: .4byte gUnknown_02024C07
-_08108184:
- ldr r3, _08108198
- ldr r2, _0810819C
- ldr r0, _081081A0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108198: .4byte 0x02016800
-_0810819C: .4byte gBattleMons
-_081081A0: .4byte gUnknown_02024C08
-_081081A4:
- ldr r3, _081081C4
- ldr r2, _081081C8
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
-_081081B4:
- str r0, [r3, 0x8]
-_081081B6:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081081C4: .4byte 0x02016800
-_081081C8: .4byte gBattleMoves
- thumb_func_end sub_81080F0
-
- thumb_func_start sub_81081CC
-sub_81081CC: @ 81081CC
- ldr r3, _081081E8
- ldr r2, _081081EC
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _081081F0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081081E8: .4byte 0x02016800
-_081081EC: .4byte gBattleMoves
-_081081F0: .4byte gUnknown_02039238
- thumb_func_end sub_81081CC
-
- thumb_func_start sub_81081F4
-sub_81081F4: @ 81081F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r3, 0
- ldr r0, _08108328
- ldrh r1, [r0]
- ldr r4, _0810832C
- ldr r6, _08108330
- ldr r5, _08108334
- cmp r1, r4
- beq _0810822E
- ldrh r1, [r5, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0]
- ldr r1, _08108328
-_0810821E:
- ldrh r0, [r1]
- cmp r2, r0
- beq _0810822E
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810821E
-_0810822E:
- ldrh r0, [r5, 0x2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bhi _08108240
- b _081083B2
-_08108240:
- lsls r0, r3, 1
- ldr r1, _08108328
- adds r0, r1
- ldrh r3, [r0]
- ldr r0, _0810832C
- cmp r3, r0
- beq _08108250
- b _081083B2
-_08108250:
- ldr r0, _08108338
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810833C
- adds r0, r5, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r5, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108340
- strb r1, [r0]
- ldr r0, _08108344
- strb r2, [r0]
- movs r6, 0
- mov r9, r3
- ldr r0, _08108328
- ldrh r0, [r0]
- str r0, [sp, 0x10]
-_08108276:
- movs r3, 0
- ldr r5, _08108348
- lsls r4, r6, 1
- ldr r7, _0810834C
- lsls r1, r6, 2
- mov r8, r1
- adds r2, r6, 0x1
- mov r10, r2
- ldr r0, [sp, 0x10]
- cmp r0, r9
- beq _081082BA
- ldr r2, _08108330
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- ldr r1, _08108328
-_081082AA:
- ldrh r0, [r1]
- cmp r2, r0
- beq _081082BA
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r9
- bne _081082AA
-_081082BA:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _0810835C
- lsls r0, r3, 1
- ldr r2, _08108328
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r9
- bne _0810835C
- ldr r0, _08108330
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _0810835C
- ldr r5, _08108350
- strh r2, [r5]
- ldrb r0, [r7]
- ldr r4, _08108354
- ldrb r1, [r4]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r4]
- bl move_effectiveness_something
- mov r4, sp
- add r4, r8
- ldr r2, _08108358
- ldr r0, _08108334
- adds r0, 0x18
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r0, [r2]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108364
- movs r0, 0x1
- str r0, [r4]
- b _08108364
- .align 2, 0
-_08108328: .4byte gUnknown_083F62BC
-_0810832C: .4byte 0x0000ffff
-_08108330: .4byte gBattleMoves
-_08108334: .4byte 0x02016800
-_08108338: .4byte gUnknown_02024DEC
-_0810833C: .4byte 0xfffff81c
-_08108340: .4byte gUnknown_02024C68
-_08108344: .4byte gCritMultiplier
-_08108348: .4byte gBattleMons
-_0810834C: .4byte gUnknown_02024C07
-_08108350: .4byte gUnknown_02024BE6
-_08108354: .4byte gUnknown_02024C08
-_08108358: .4byte gUnknown_02024BEC
-_0810835C:
- mov r1, sp
- add r1, r8
- movs r0, 0
- str r0, [r1]
-_08108364:
- mov r6, r10
- cmp r6, 0x3
- ble _08108276
- movs r6, 0
- ldr r1, _081083A4
- ldrb r0, [r1, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r2, [sp]
- ldr r0, [r0]
- adds r5, r1, 0
- ldr r4, _081083A8
- cmp r2, r0
- bgt _0810839A
- adds r3, r5, 0
- mov r2, sp
-_08108384:
- adds r2, 0x4
- adds r6, 0x1
- cmp r6, 0x3
- bgt _0810839A
- ldrb r0, [r3, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- ble _08108384
-_0810839A:
- cmp r6, 0x4
- bne _081083AC
- movs r0, 0x2
- str r0, [r5, 0x8]
- b _081083B8
- .align 2, 0
-_081083A4: .4byte 0x02016800
-_081083A8: .4byte gUnknown_02039238
-_081083AC:
- movs r0, 0x1
- str r0, [r5, 0x8]
- b _081083B8
-_081083B2:
- movs r0, 0
- str r0, [r5, 0x8]
- ldr r4, _081083D0
-_081083B8:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081083D0: .4byte gUnknown_02039238
- thumb_func_end sub_81081F4
-
- thumb_func_start sub_81083D4
-sub_81083D4: @ 81083D4
- push {lr}
- ldr r0, _081083EC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081083FC
- ldr r2, _081083F0
- ldr r1, _081083F4
- ldr r0, _081083F8
- b _08108402
- .align 2, 0
-_081083EC: .4byte gUnknown_02039238
-_081083F0: .4byte 0x02016800
-_081083F4: .4byte gUnknown_02024C34
-_081083F8: .4byte gUnknown_02024C07
-_081083FC:
- ldr r2, _08108418
- ldr r1, _0810841C
- ldr r0, _08108420
-_08108402:
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2, 0x8]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08108418: .4byte 0x02016800
-_0810841C: .4byte gUnknown_02024C34
-_08108420: .4byte gUnknown_02024C08
- thumb_func_end sub_81083D4
-
- thumb_func_start sub_8108424
-sub_8108424: @ 8108424
- push {lr}
- ldr r3, _0810844C
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108450
- ldr r1, [r1, 0x8]
- cmp r0, r1
- bne _08108454
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108458
- .align 2, 0
-_0810844C: .4byte gUnknown_02039238
-_08108450: .4byte 0x02016800
-_08108454:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108458:
- pop {r0}
- bx r0
- thumb_func_end sub_8108424
-
- thumb_func_start sub_810845C
-sub_810845C: @ 810845C
- push {lr}
- ldr r3, _08108484
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108488
- ldr r1, [r1, 0x8]
- cmp r0, r1
- beq _0810848C
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108490
- .align 2, 0
-_08108484: .4byte gUnknown_02039238
-_08108488: .4byte 0x02016800
-_0810848C:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108490:
- pop {r0}
- bx r0
- thumb_func_end sub_810845C
-
- thumb_func_start tai28_unk
-tai28_unk: @ 8108494
- push {lr}
- ldr r0, _081084CC
- ldrb r0, [r0]
- ldr r1, _081084D0
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _081084D4
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _081084D8
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081084DC
- .align 2, 0
-_081084CC: .4byte gUnknown_02024C07
-_081084D0: .4byte gUnknown_02024C08
-_081084D4: .4byte gUnknown_02039238
-_081084D8:
- adds r0, r2, 0x6
- str r0, [r3]
-_081084DC:
- pop {r0}
- bx r0
- thumb_func_end tai28_unk
-
- thumb_func_start tai29_unk
-tai29_unk: @ 81084E0
- push {lr}
- ldr r0, _08108518
- ldrb r0, [r0]
- ldr r1, _0810851C
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _08108520
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108524
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108528
- .align 2, 0
-_08108518: .4byte gUnknown_02024C07
-_0810851C: .4byte gUnknown_02024C08
-_08108520: .4byte gUnknown_02039238
-_08108524:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108528:
- pop {r0}
- bx r0
- thumb_func_end tai29_unk
-
- thumb_func_start nullsub_25
-nullsub_25: @ 810852C
- bx lr
- thumb_func_end nullsub_25
-
- thumb_func_start nullsub_26
-nullsub_26: @ 8108530
- bx lr
- thumb_func_end nullsub_26
-
- thumb_func_start tai2C_unk
-tai2C_unk: @ 8108534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _08108550
- movs r0, 0
- str r0, [r1, 0x8]
- ldr r0, _08108554
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _0810855C
- ldr r0, _08108558
- b _0810855E
- .align 2, 0
-_08108550: .4byte 0x02016800
-_08108554: .4byte gUnknown_02039238
-_08108558: .4byte gUnknown_02024C07
-_0810855C:
- ldr r0, _081085A8
-_0810855E:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _081085AC
- mov r9, r1
- cmp r0, 0
- bne _08108574
- ldr r0, _081085B0
- mov r9, r0
-_08108574:
- ldr r0, _081085B4
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081085BC
- ldr r4, _081085B8
- lsls r0, r5, 1
- adds r0, r4
- ldrb r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrb r6, [r0]
- b _081085C6
- .align 2, 0
-_081085A8: .4byte gUnknown_02024C08
-_081085AC: .4byte gEnemyParty
-_081085B0: .4byte gPlayerParty
-_081085B4: .4byte gUnknown_020239F8
-_081085B8: .4byte gUnknown_02024A6A
-_081085BC:
- ldr r1, _08108624
- lsls r0, r5, 1
- adds r0, r1
- ldrb r6, [r0]
- mov r8, r6
-_081085C6:
- movs r5, 0
- ldr r7, _08108628
-_081085CA:
- cmp r5, r8
- beq _08108608
- cmp r5, r6
- beq _08108608
- movs r0, 0x64
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08108608
- ldr r0, [r7, 0x8]
- adds r0, 0x1
- str r0, [r7, 0x8]
-_08108608:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081085CA
- ldr r1, _0810862C
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108624: .4byte gUnknown_02024A6A
-_08108628: .4byte 0x02016800
-_0810862C: .4byte gUnknown_02039238
- thumb_func_end tai2C_unk
-
- thumb_func_start sub_8108630
-sub_8108630: @ 8108630
- ldr r1, _08108640
- ldrh r0, [r1, 0x2]
- str r0, [r1, 0x8]
- ldr r1, _08108644
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108640: .4byte 0x02016800
-_08108644: .4byte gUnknown_02039238
- thumb_func_end sub_8108630
-
- thumb_func_start sub_8108648
-sub_8108648: @ 8108648
- ldr r3, _08108664
- ldr r2, _08108668
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _0810866C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108664: .4byte 0x02016800
-_08108668: .4byte gBattleMoves
-_0810866C: .4byte gUnknown_02039238
- thumb_func_end sub_8108648
-
- thumb_func_start sub_8108670
-sub_8108670: @ 8108670
- push {r4-r7,lr}
- ldr r0, _08108680
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08108688
- ldr r0, _08108684
- b _0810868A
- .align 2, 0
-_08108680: .4byte gUnknown_02039238
-_08108684: .4byte gUnknown_02024C07
-_08108688:
- ldr r0, _081086BC
-_0810868A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08108774
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- ldr r6, _081086C0
- adds r0, r6, 0
- adds r0, 0x20
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0
- beq _081086C8
- ldr r0, _081086C4
- adds r1, r6, r0
- ldrb r0, [r3]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086BC: .4byte gUnknown_02024C08
-_081086C0: .4byte 0x02016a00
-_081086C4: .4byte 0xfffffe00
-_081086C8:
- ldr r1, _081086F4
- movs r0, 0x58
- muls r0, r4
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x17
- beq _081086E4
- cmp r0, 0x2A
- beq _081086E4
- cmp r0, 0x47
- bne _081086FC
-_081086E4:
- ldr r1, _081086F8
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086F4: .4byte gBattleMons
-_081086F8: .4byte 0x02016800
-_081086FC:
- ldr r4, _08108734
- ldrh r0, [r5]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r1, r4
- ldrb r0, [r3, 0x16]
- cmp r0, 0
- beq _08108764
- ldrb r0, [r3, 0x17]
- cmp r0, 0
- beq _08108754
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810873C
- ldr r0, _08108738
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x16]
- b _08108782
- .align 2, 0
-_08108734: .4byte gBaseStats
-_08108738: .4byte 0xfffffe00
-_0810873C:
- ldr r0, _08108750
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x17]
- b _08108782
- .align 2, 0
-_08108750: .4byte 0xfffffe00
-_08108754:
- ldr r0, _08108760
- adds r1, r6, r0
- ldrb r0, [r3, 0x16]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108760: .4byte 0xfffffe00
-_08108764:
- ldr r0, _08108770
- adds r1, r6, r0
- ldrb r0, [r3, 0x17]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108770: .4byte 0xfffffe00
-_08108774:
- ldr r2, _08108794
- ldr r1, _08108798
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
-_08108782:
- str r0, [r2, 0x8]
-_08108784:
- ldr r1, _0810879C
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108794: .4byte 0x02016800
-_08108798: .4byte gBattleMons
-_0810879C: .4byte gUnknown_02039238
- thumb_func_end sub_8108670
-
- thumb_func_start tai30_unk
-tai30_unk: @ 81087A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0810885C
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08108860
- ldr r3, _08108864
- adds r0, r1, r3
- movs r4, 0
- strb r2, [r0]
- adds r3, 0x3
- adds r0, r1, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r0, _08108868
- strb r2, [r0]
- ldr r0, _0810886C
- strb r3, [r0]
- movs r0, 0xB4
- lsls r0, 9
- adds r1, r0
- str r4, [r1, 0x8]
- movs r5, 0
- ldr r4, _08108870
- ldr r7, _08108874
- ldr r3, _08108878
- mov r8, r3
- ldr r6, _0810887C
-_081087DA:
- movs r0, 0x28
- str r0, [r4]
- lsls r1, r5, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- add r1, r8
- ldrh r0, [r1]
- strh r0, [r7]
- lsls r0, 16
- cmp r0, 0
- beq _08108844
- ldrh r0, [r7]
- ldrb r1, [r6]
- ldr r2, _08108880
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _0810880A
- movs r0, 0x50
- str r0, [r4]
-_0810880A:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _08108814
- movs r0, 0xA0
- str r0, [r4]
-_08108814:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _0810881E
- movs r0, 0x14
- str r0, [r4]
-_0810881E:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _08108828
- movs r0, 0xA
- str r0, [r4]
-_08108828:
- ldr r0, _08108868
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108838
- movs r0, 0
- str r0, [r4]
-_08108838:
- ldr r2, _08108884
- ldr r0, [r2, 0x8]
- ldr r1, [r4]
- cmp r0, r1
- bcs _08108844
- str r1, [r2, 0x8]
-_08108844:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081087DA
- ldr r1, _08108888
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810885C: .4byte gUnknown_02024DEC
-_08108860: .4byte 0x02000000
-_08108864: .4byte 0x0001601c
-_08108868: .4byte gUnknown_02024C68
-_0810886C: .4byte gCritMultiplier
-_08108870: .4byte gUnknown_02024BEC
-_08108874: .4byte gUnknown_02024BE6
-_08108878: .4byte gUnknown_02024A8C
-_0810887C: .4byte gUnknown_02024C07
-_08108880: .4byte gUnknown_02024C08
-_08108884: .4byte 0x02016800
-_08108888: .4byte gUnknown_02039238
- thumb_func_end tai30_unk
-
- thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
-dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
- push {r4,r5,lr}
- ldr r0, _08108928
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810892C
- ldr r3, _08108930
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r2, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r5, _08108934
- strb r1, [r5]
- ldr r0, _08108938
- strb r3, [r0]
- ldr r4, _0810893C
- movs r0, 0x28
- str r0, [r4]
- ldr r1, _08108940
- movs r0, 0xB4
- lsls r0, 9
- adds r2, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- ldrh r0, [r1]
- ldr r1, _08108944
- ldrb r1, [r1]
- ldr r2, _08108948
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _081088D6
- movs r0, 0x50
- str r0, [r4]
-_081088D6:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _081088E0
- movs r0, 0xA0
- str r0, [r4]
-_081088E0:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _081088EA
- movs r0, 0x14
- str r0, [r4]
-_081088EA:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _081088F4
- movs r0, 0xA
- str r0, [r4]
-_081088F4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108902
- movs r0, 0
- str r0, [r4]
-_08108902:
- ldrb r0, [r4]
- ldr r3, _0810894C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108950
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108954
- .align 2, 0
-_08108928: .4byte gUnknown_02024DEC
-_0810892C: .4byte 0x02000000
-_08108930: .4byte 0x0001601c
-_08108934: .4byte gUnknown_02024C68
-_08108938: .4byte gCritMultiplier
-_0810893C: .4byte gUnknown_02024BEC
-_08108940: .4byte gUnknown_02024BE6
-_08108944: .4byte gUnknown_02024C07
-_08108948: .4byte gUnknown_02024C08
-_0810894C: .4byte gUnknown_02039238
-_08108950:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108954:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
-
- thumb_func_start nullsub_71
-nullsub_71: @ 810895C
- bx lr
- thumb_func_end nullsub_71
-
- thumb_func_start nullsub_90
-nullsub_90: @ 8108960
- bx lr
- thumb_func_end nullsub_90
-
- thumb_func_start sub_8108964
-sub_8108964: @ 8108964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810897C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- cmp r1, 0x1
- bne _081089A4
- ldr r1, _08108980
- b _081089A6
- .align 2, 0
-_0810897C: .4byte gUnknown_02039238
-_08108980: .4byte gEnemyParty
-_08108984:
- ldr r3, _081089A0
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108A12
- .align 2, 0
-_081089A0: .4byte gUnknown_02039238
-_081089A4:
- ldr r1, _08108A20
-_081089A6:
- mov r9, r1
- ldr r1, [r0]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
-_081089C8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108A00
- cmp r5, r10
- beq _08108A00
- cmp r6, 0
- beq _08108A00
- cmp r0, r7
- beq _08108984
-_08108A00:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _081089C8
- ldr r1, _08108A24
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108A12:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108A20: .4byte gPlayerParty
-_08108A24: .4byte gUnknown_02039238
- thumb_func_end sub_8108964
-
- thumb_func_start sub_8108A28
-sub_8108A28: @ 8108A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08108A44
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _08108A4C
- ldr r0, _08108A48
- mov r10, r0
- b _08108A50
- .align 2, 0
-_08108A44: .4byte gUnknown_02039238
-_08108A48: .4byte gEnemyParty
-_08108A4C:
- ldr r1, _08108AE4
- mov r10, r1
-_08108A50:
- ldr r1, [r2]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- mov r9, r2
-_08108A6C:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108AB0
- movs r1, 0xCE
- lsls r1, 1
- cmp r5, r1
- beq _08108AB0
- cmp r6, 0
- beq _08108AB0
- cmp r0, r7
- bne _08108AB0
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108AB0:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08108A6C
- ldr r3, _08108AE8
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108AE4: .4byte gPlayerParty
-_08108AE8: .4byte gUnknown_02039238
- thumb_func_end sub_8108A28
-
- thumb_func_start sub_8108AEC
-sub_8108AEC: @ 8108AEC
- push {lr}
- ldr r2, _08108B3C
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08108B00
- ldr r1, _08108B40
- movs r0, 0x1
- str r0, [r1, 0x8]
-_08108B00:
- ldrh r2, [r2]
- movs r0, 0x18
- ands r0, r2
- adds r3, r2, 0
- cmp r0, 0
- beq _08108B12
- ldr r1, _08108B40
- movs r0, 0x2
- str r0, [r1, 0x8]
-_08108B12:
- movs r0, 0x60
- ands r0, r3
- cmp r0, 0
- beq _08108B20
- ldr r1, _08108B40
- movs r0, 0
- str r0, [r1, 0x8]
-_08108B20:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08108B2E
- ldr r1, _08108B40
- movs r0, 0x3
- str r0, [r1, 0x8]
-_08108B2E:
- ldr r1, _08108B44
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08108B3C: .4byte word_2024DB8
-_08108B40: .4byte 0x02016800
-_08108B44: .4byte gUnknown_02039238
- thumb_func_end sub_8108AEC
-
- thumb_func_start sub_8108B48
-sub_8108B48: @ 8108B48
- push {lr}
- ldr r2, _08108B7C
- ldr r0, _08108B80
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108B84
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108B88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108B8C
- .align 2, 0
-_08108B7C: .4byte gBattleMoves
-_08108B80: .4byte 0x02016800
-_08108B84: .4byte gUnknown_02039238
-_08108B88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108B8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8108B48
-
- thumb_func_start sub_8108B90
-sub_8108B90: @ 8108B90
- push {lr}
- ldr r2, _08108BC4
- ldr r0, _08108BC8
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108BCC
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108BD0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108BD4
- .align 2, 0
-_08108BC4: .4byte gBattleMoves
-_08108BC8: .4byte 0x02016800
-_08108BCC: .4byte gUnknown_02039238
-_08108BD0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108BD4:
- pop {r0}
- bx r0
- thumb_func_end sub_8108B90
-
- thumb_func_start sub_8108BD8
-sub_8108BD8: @ 8108BD8
- push {r4,lr}
- ldr r0, _08108BEC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108BF4
- ldr r0, _08108BF0
- b _08108BF6
- .align 2, 0
-_08108BEC: .4byte gUnknown_02039238
-_08108BF0: .4byte gUnknown_02024C07
-_08108BF4:
- ldr r0, _08108C2C
-_08108BF6:
- ldrb r3, [r0]
- ldr r1, _08108C30
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bge _08108C34
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108C3A
- .align 2, 0
-_08108C2C: .4byte gUnknown_02024C08
-_08108C30: .4byte gBattleMons
-_08108C34:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108C3A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108BD8
-
- thumb_func_start sub_8108C40
-sub_8108C40: @ 8108C40
- push {r4,lr}
- ldr r0, _08108C54
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108C5C
- ldr r0, _08108C58
- b _08108C5E
- .align 2, 0
-_08108C54: .4byte gUnknown_02039238
-_08108C58: .4byte gUnknown_02024C07
-_08108C5C:
- ldr r0, _08108C94
-_08108C5E:
- ldrb r3, [r0]
- ldr r1, _08108C98
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- ble _08108C9C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108CA2
- .align 2, 0
-_08108C94: .4byte gUnknown_02024C08
-_08108C98: .4byte gBattleMons
-_08108C9C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108CA2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C40
-
- thumb_func_start sub_8108CA8
-sub_8108CA8: @ 8108CA8
- push {r4,lr}
- ldr r0, _08108CBC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108CC4
- ldr r0, _08108CC0
- b _08108CC6
- .align 2, 0
-_08108CBC: .4byte gUnknown_02039238
-_08108CC0: .4byte gUnknown_02024C07
-_08108CC4:
- ldr r0, _08108CFC
-_08108CC6:
- ldrb r3, [r0]
- ldr r1, _08108D00
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bne _08108D04
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D0A
- .align 2, 0
-_08108CFC: .4byte gUnknown_02024C08
-_08108D00: .4byte gBattleMons
-_08108D04:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108CA8
-
- thumb_func_start sub_8108D10
-sub_8108D10: @ 8108D10
- push {r4,lr}
- ldr r0, _08108D24
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108D2C
- ldr r0, _08108D28
- b _08108D2E
- .align 2, 0
-_08108D24: .4byte gUnknown_02039238
-_08108D28: .4byte gUnknown_02024C07
-_08108D2C:
- ldr r0, _08108D64
-_08108D2E:
- ldrb r3, [r0]
- ldr r1, _08108D68
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- beq _08108D6C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D72
- .align 2, 0
-_08108D64: .4byte gUnknown_02024C08
-_08108D68: .4byte gBattleMons
-_08108D6C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D72:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108D10
-
- thumb_func_start tai3D_unk
-tai3D_unk: @ 8108D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08108E1C
- ldr r6, _08108E20
- ldrh r1, [r6, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108E4C
- ldr r0, _08108E24
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108E28
- adds r0, r6, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r6, r2
- movs r2, 0x1
- mov r8, r2
- mov r2, r8
- strb r2, [r0]
- ldr r0, _08108E2C
- strb r1, [r0]
- ldr r0, _08108E30
- strb r2, [r0]
- ldr r5, _08108E34
- ldrh r0, [r6, 0x2]
- strh r0, [r5]
- ldr r4, _08108E38
- ldrb r0, [r4]
- ldr r7, _08108E3C
- ldrb r1, [r7]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r4]
- ldrb r2, [r7]
- bl move_effectiveness_something
- ldr r4, _08108E40
- adds r0, r6, 0
- adds r0, 0x18
- ldrb r6, [r6, 0x1]
- adds r0, r6
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108DEE
- mov r0, r8
- str r0, [r4]
-_08108DEE:
- ldr r2, _08108E44
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldr r0, [r4]
- cmp r1, r0
- bgt _08108E4C
- ldr r3, _08108E48
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108E54
- .align 2, 0
-_08108E1C: .4byte gBattleMoves
-_08108E20: .4byte 0x02016800
-_08108E24: .4byte gUnknown_02024DEC
-_08108E28: .4byte 0xfffff81c
-_08108E2C: .4byte gUnknown_02024C68
-_08108E30: .4byte gCritMultiplier
-_08108E34: .4byte gUnknown_02024BE6
-_08108E38: .4byte gUnknown_02024C07
-_08108E3C: .4byte gUnknown_02024C08
-_08108E40: .4byte gUnknown_02024BEC
-_08108E44: .4byte gBattleMons
-_08108E48: .4byte gUnknown_02039238
-_08108E4C:
- ldr r1, _08108E60
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108E54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108E60: .4byte gUnknown_02039238
- thumb_func_end tai3D_unk
-
- thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
-dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
- push {r4-r7,lr}
- ldr r2, _08108EF8
- ldr r7, _08108EFC
- ldrh r1, [r7, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108F28
- ldr r0, _08108F00
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108F04
- adds r0, r7, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r7, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108F08
- strb r1, [r0]
- ldr r0, _08108F0C
- strb r2, [r0]
- ldr r6, _08108F10
- ldrh r0, [r7, 0x2]
- strh r0, [r6]
- ldr r4, _08108F14
- ldrb r0, [r4]
- ldr r5, _08108F18
- ldrb r1, [r5]
- bl sub_801CAF8
- ldrh r0, [r6]
- ldrb r1, [r4]
- ldrb r2, [r5]
- bl move_effectiveness_something
- ldr r4, _08108F1C
- adds r0, r7, 0
- adds r0, 0x18
- ldrb r7, [r7, 0x1]
- adds r0, r7
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r3, _08108F20
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1, 0x28]
- cmp r1, r0
- ble _08108F28
- ldr r3, _08108F24
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108F30
- .align 2, 0
-_08108EF8: .4byte gBattleMoves
-_08108EFC: .4byte 0x02016800
-_08108F00: .4byte gUnknown_02024DEC
-_08108F04: .4byte 0xfffff81c
-_08108F08: .4byte gUnknown_02024C68
-_08108F0C: .4byte gCritMultiplier
-_08108F10: .4byte gUnknown_02024BE6
-_08108F14: .4byte gUnknown_02024C07
-_08108F18: .4byte gUnknown_02024C08
-_08108F1C: .4byte gUnknown_02024BEC
-_08108F20: .4byte gBattleMons
-_08108F24: .4byte gUnknown_02039238
-_08108F28:
- ldr r1, _08108F38
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108F30:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108F38: .4byte gUnknown_02039238
- thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
-
- thumb_func_start tai40_unk
-tai40_unk: @ 8108F3C
- push {r4-r7,lr}
- ldr r1, _08108F58
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08108F64
- cmp r0, 0x1
- bgt _08108F5C
- cmp r0, 0
- beq _08108FA8
- b _08109008
- .align 2, 0
-_08108F58: .4byte gUnknown_02039238
-_08108F5C:
- cmp r0, 0x2
- beq _08108FA8
- cmp r0, 0x3
- bne _08109008
-_08108F64:
- movs r3, 0
- ldr r2, _08108FA0
- ldr r5, _08108FA4
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _08108F9A
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08108F84:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08108F9A
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08108F84
-_08108F9A:
- cmp r3, 0x4
- beq _08108FDE
- b _08108FF0
- .align 2, 0
-_08108FA0: .4byte gBattleMons
-_08108FA4: .4byte gUnknown_02024C07
-_08108FA8:
- movs r3, 0
- ldr r5, _08108FE8
- ldr r1, _08108FEC
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _08108FDA
- adds r6, r5, 0
- adds r5, r1, 0
-_08108FC2:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _08108FDA
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08108FC2
-_08108FDA:
- cmp r3, 0x8
- bne _08108FF0
-_08108FDE:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _08109008
- .align 2, 0
-_08108FE8: .4byte 0x02016a00
-_08108FEC: .4byte gUnknown_02024C08
-_08108FF0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08109008:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end tai40_unk
-
- thumb_func_start sub_8109010
-sub_8109010: @ 8109010
- push {r4-r7,lr}
- ldr r1, _0810902C
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109038
- cmp r0, 0x1
- bgt _08109030
- cmp r0, 0
- beq _0810907C
- b _081090DC
- .align 2, 0
-_0810902C: .4byte gUnknown_02039238
-_08109030:
- cmp r0, 0x2
- beq _0810907C
- cmp r0, 0x3
- bne _081090DC
-_08109038:
- movs r3, 0
- ldr r2, _08109074
- ldr r5, _08109078
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _0810906E
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08109058:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0810906E
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08109058
-_0810906E:
- cmp r3, 0x4
- bne _081090B2
- b _081090C4
- .align 2, 0
-_08109074: .4byte gBattleMons
-_08109078: .4byte gUnknown_02024C07
-_0810907C:
- movs r3, 0
- ldr r5, _081090BC
- ldr r1, _081090C0
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _081090AE
- adds r6, r5, 0
- adds r5, r1, 0
-_08109096:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _081090AE
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08109096
-_081090AE:
- cmp r3, 0x8
- beq _081090C4
-_081090B2:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _081090DC
- .align 2, 0
-_081090BC: .4byte 0x02016a00
-_081090C0: .4byte gUnknown_02024C08
-_081090C4:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081090DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8109010
-
- thumb_func_start sub_81090E4
-sub_81090E4: @ 81090E4
- push {r4-r7,lr}
- ldr r1, _081090FC
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109108
- cmp r0, 0x1
- bgt _08109100
- cmp r0, 0
- beq _0810915C
- b _081091B8
- .align 2, 0
-_081090FC: .4byte gUnknown_02039238
-_08109100:
- cmp r0, 0x2
- beq _0810915C
- cmp r0, 0x3
- bne _081091B8
-_08109108:
- movs r3, 0
- ldr r1, _0810914C
- ldr r0, _08109150
- ldrb r2, [r0]
- ldr r6, _08109154
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109158
-_0810911C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109136
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810913E
-_08109136:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810911C
-_0810913E:
- cmp r3, 0x4
- bne _081091A0
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _081091B8
- .align 2, 0
-_0810914C: .4byte gBattleMons
-_08109150: .4byte gUnknown_02024C07
-_08109154: .4byte gBattleMoves
-_08109158: .4byte gUnknown_02039238
-_0810915C:
- movs r3, 0
- ldr r1, _081091C0
- ldr r0, _081091C4
- ldrb r2, [r0]
- ldr r7, _081091C8
- ldr r6, _081091CC
- ldr r5, _081091D0
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08109172:
- lsls r1, r3, 1
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109198
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r1, r0
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _081091A0
-_08109198:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _08109172
-_081091A0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081091B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081091C0: .4byte gBattleMons
-_081091C4: .4byte gUnknown_02024C07
-_081091C8: .4byte gBattleMoves
-_081091CC: .4byte 0x02016a00
-_081091D0: .4byte gUnknown_02024C08
- thumb_func_end sub_81090E4
-
- thumb_func_start sub_81091D4
-sub_81091D4: @ 81091D4
- push {r4-r6,lr}
- ldr r1, _081091EC
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _081091F8
- cmp r0, 0x1
- bgt _081091F0
- cmp r0, 0
- beq _0810925C
- b _08109294
- .align 2, 0
-_081091EC: .4byte gUnknown_02039238
-_081091F0:
- cmp r0, 0x2
- beq _0810925C
- cmp r0, 0x3
- bne _08109294
-_081091F8:
- movs r3, 0
- ldr r1, _0810924C
- ldr r0, _08109250
- ldrb r2, [r0]
- ldr r6, _08109254
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109258
-_0810920C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109226
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810922E
-_08109226:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810920C
-_0810922E:
- cmp r3, 0x4
- bne _0810928E
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109294
- .align 2, 0
-_0810924C: .4byte gBattleMons
-_08109250: .4byte gUnknown_02024C07
-_08109254: .4byte gBattleMoves
-_08109258: .4byte gUnknown_02039238
-_0810925C:
- movs r3, 0
- ldr r1, _0810929C
- ldr r0, _081092A0
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 4
- adds r2, r0, r1
- ldr r5, _081092A4
-_0810926C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109286
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810928E
-_08109286:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _0810926C
-_0810928E:
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
-_08109294:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810929C: .4byte 0x02016a00
-_081092A0: .4byte gUnknown_02024C08
-_081092A4: .4byte gBattleMoves
- thumb_func_end sub_81091D4
-
- thumb_func_start tai43_unk
-tai43_unk: @ 81092A8
- push {r4,r5,lr}
- ldr r0, _081092BC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081092C4
- ldr r0, _081092C0
- b _081092C6
- .align 2, 0
-_081092BC: .4byte gUnknown_02039238
-_081092C0: .4byte gUnknown_02024C07
-_081092C4:
- ldr r0, _081092E4
-_081092C6:
- ldrb r3, [r0]
- adds r4, r5, 0
- ldr r2, [r4]
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _081092EC
- ldr r0, _081092E8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- beq _081092F0
- b _08109306
- .align 2, 0
-_081092E4: .4byte gUnknown_02024C08
-_081092E8: .4byte gUnknown_02024CA8
-_081092EC:
- cmp r0, 0x1
- beq _081092F6
-_081092F0:
- adds r0, r2, 0x7
- str r0, [r4]
- b _08109328
-_081092F6:
- ldr r0, _08109320
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- beq _08109324
-_08109306:
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109328
- .align 2, 0
-_08109320: .4byte gUnknown_02024CA8
-_08109324:
- adds r0, r2, 0x7
- str r0, [r5]
-_08109328:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end tai43_unk
-
- thumb_func_start sub_8109330
-sub_8109330: @ 8109330
- push {r4,lr}
- ldr r4, _08109344
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08109348
- cmp r0, 0x1
- beq _08109370
- b _081093AC
- .align 2, 0
-_08109344: .4byte gUnknown_02039238
-_08109348:
- ldr r2, _08109364
- ldr r0, _08109368
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0810936C
- ldrh r0, [r0, 0x4]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- beq _08109388
- b _081093AC
- .align 2, 0
-_08109364: .4byte gUnknown_02024CA8
-_08109368: .4byte gUnknown_02024A60
-_0810936C: .4byte 0x02016800
-_08109370:
- ldr r2, _081093A0
- ldr r0, _081093A4
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081093A8
- ldrh r0, [r0, 0x6]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- bne _081093AC
-_08109388:
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081093B0
- .align 2, 0
-_081093A0: .4byte gUnknown_02024CA8
-_081093A4: .4byte gUnknown_02024A60
-_081093A8: .4byte 0x02016800
-_081093AC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081093B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109330
-
- thumb_func_start sub_81093B8
-sub_81093B8: @ 81093B8
- ldr r2, _081093C4
- ldrb r1, [r2, 0x10]
- movs r0, 0xB
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_081093C4: .4byte 0x02016800
- thumb_func_end sub_81093B8
-
- thumb_func_start sub_81093C8
-sub_81093C8: @ 81093C8
- push {r4,lr}
- ldr r0, _0810940C
- ldr r1, _08109410
- adds r0, r1
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08109418
- ldr r3, _08109414
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08109420
- .align 2, 0
-_0810940C: .4byte 0x02000000
-_08109410: .4byte 0x00016088
-_08109414: .4byte gUnknown_02039238
-_08109418:
- ldr r1, _08109428
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08109420:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109428: .4byte gUnknown_02039238
- thumb_func_end sub_81093C8
-
- thumb_func_start sub_810942C
-sub_810942C: @ 810942C
- ldr r2, _08109438
- ldrb r1, [r2, 0x10]
- movs r0, 0xD
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_08109438: .4byte 0x02016800
- thumb_func_end sub_810942C
-
- thumb_func_start dp15_get_held_item_x12__8
-dp15_get_held_item_x12__8: @ 810943C
- push {r4,lr}
- ldr r0, _0810944C
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08109454
- ldr r0, _08109450
- b _08109456
- .align 2, 0
-_0810944C: .4byte gUnknown_02039238
-_08109450: .4byte gUnknown_02024C07
-_08109454:
- ldr r0, _0810947C
-_08109456:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08109488
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r2, _08109480
- ldr r3, _08109484
- adds r0, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- str r0, [r2, 0x8]
- b _0810949E
- .align 2, 0
-_0810947C: .4byte gUnknown_02024C08
-_08109480: .4byte 0x02016800
-_08109484: .4byte 0x00000222
-_08109488:
- ldr r1, _081094AC
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- bl itemid_get_x12
- ldr r1, _081094B0
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
-_0810949E:
- ldr r1, _081094B4
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081094AC: .4byte gBattleMons
-_081094B0: .4byte 0x02016800
-_081094B4: .4byte gUnknown_02039238
- thumb_func_end dp15_get_held_item_x12__8
-
- thumb_func_start tai49_unk
-tai49_unk: @ 81094B8
- push {lr}
- ldr r0, _081094C8
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _081094D0
- ldr r0, _081094CC
- b _081094D2
- .align 2, 0
-_081094C8: .4byte gUnknown_02039238
-_081094CC: .4byte gUnknown_02024C07
-_081094D0:
- ldr r0, _081094FC
-_081094D2:
- ldrb r1, [r0]
- ldr r2, _08109500
- movs r0, 0x58
- muls r1, r0
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- bl GetGenderFromSpeciesAndPersonality
- ldr r1, _08109504
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
- ldr r1, _08109508
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081094FC: .4byte gUnknown_02024C08
-_08109500: .4byte gBattleMons
-_08109504: .4byte 0x02016800
-_08109508: .4byte gUnknown_02039238
- thumb_func_end tai49_unk
-
- thumb_func_start sub_810950C
-sub_810950C: @ 810950C
- push {r4,lr}
- ldr r0, _08109520
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109528
- ldr r0, _08109524
- b _0810952A
- .align 2, 0
-_08109520: .4byte gUnknown_02039238
-_08109524: .4byte gUnknown_02024C07
-_08109528:
- ldr r0, _08109548
-_0810952A:
- ldrb r3, [r0]
- ldr r2, _0810954C
- ldr r1, _08109550
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109548: .4byte gUnknown_02024C08
-_0810954C: .4byte 0x02016800
-_08109550: .4byte gUnknown_02024CA8
- thumb_func_end sub_810950C
-
- thumb_func_start sub_8109554
-sub_8109554: @ 8109554
- push {r4,lr}
- ldr r0, _08109568
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109570
- ldr r0, _0810956C
- b _08109572
- .align 2, 0
-_08109568: .4byte gUnknown_02039238
-_0810956C: .4byte gUnknown_02024C07
-_08109570:
- ldr r0, _08109590
-_08109572:
- ldrb r3, [r0]
- ldr r2, _08109594
- ldr r1, _08109598
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x9]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109590: .4byte gUnknown_02024C08
-_08109594: .4byte 0x02016800
-_08109598: .4byte gUnknown_02024CA8
- thumb_func_end sub_8109554
-
- thumb_func_start sub_810959C
-sub_810959C: @ 810959C
- ldr r2, _081095B4
- ldr r0, _081095B8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r1, _081095BC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081095B4: .4byte 0x02016800
-_081095B8: .4byte gUnknown_020239F8
-_081095BC: .4byte gUnknown_02039238
- thumb_func_end sub_810959C
-
- thumb_func_start sub_81095C0
-sub_81095C0: @ 81095C0
- push {lr}
- ldr r0, _081095D4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _081095DC
- ldr r0, _081095D8
- b _081095DE
- .align 2, 0
-_081095D4: .4byte gUnknown_02039238
-_081095D8: .4byte gUnknown_02024C07
-_081095DC:
- ldr r0, _081095F8
-_081095DE:
- ldrb r0, [r0]
- ldr r1, _081095FC
- lsls r0, 1
- adds r0, r1
- ldr r3, _08109600
- adds r0, r3
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, [r2]
- adds r0, 0x2
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_081095F8: .4byte gUnknown_02024C08
-_081095FC: .4byte 0x02016800
-_08109600: .4byte 0xfffff8cc
- thumb_func_end sub_81095C0
-
- thumb_func_start sub_8109604
-sub_8109604: @ 8109604
- ldr r3, _08109620
- ldr r2, _08109624
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [r3, 0x8]
- ldr r1, _08109628
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109620: .4byte 0x02016800
-_08109624: .4byte gBattleMoves
-_08109628: .4byte gUnknown_02039238
- thumb_func_end sub_8109604
-
- thumb_func_start sub_810962C
-sub_810962C: @ 810962C
- ldr r3, _08109648
- ldr r2, _0810964C
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _08109650
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109648: .4byte 0x02016800
-_0810964C: .4byte gBattleMoves
-_08109650: .4byte gUnknown_02039238
- thumb_func_end sub_810962C
-
- thumb_func_start sub_8109654
-sub_8109654: @ 8109654
- ldr r3, _08109670
- ldr r2, _08109674
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _08109678
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109670: .4byte 0x02016800
-_08109674: .4byte gBattleMoves
-_08109678: .4byte gUnknown_02039238
- thumb_func_end sub_8109654
-
- thumb_func_start sub_810967C
-sub_810967C: @ 810967C
- push {r4,lr}
- ldr r0, _08109690
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109698
- ldr r0, _08109694
- b _0810969A
- .align 2, 0
-_08109690: .4byte gUnknown_02039238
-_08109694: .4byte gUnknown_02024C07
-_08109698:
- ldr r0, _081096B8
-_0810969A:
- ldrb r3, [r0]
- ldr r2, _081096BC
- ldr r1, _081096C0
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081096B8: .4byte gUnknown_02024C08
-_081096BC: .4byte 0x02016800
-_081096C0: .4byte gUnknown_02024CA8
- thumb_func_end sub_810967C
-
- thumb_func_start nullsub_27
-nullsub_27: @ 81096C4
- bx lr
- thumb_func_end nullsub_27
-
- thumb_func_start nullsub_28
-nullsub_28: @ 81096C8
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start nullsub_29
-nullsub_29: @ 81096CC
- bx lr
- thumb_func_end nullsub_29
-
- thumb_func_start nullsub_30
-nullsub_30: @ 81096D0
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start nullsub_31
-nullsub_31: @ 81096D4
- bx lr
- thumb_func_end nullsub_31
-
- thumb_func_start nullsub_32
-nullsub_32: @ 81096D8
- bx lr
- thumb_func_end nullsub_32
-
- thumb_func_start sub_81096DC
-sub_81096DC: @ 81096DC
- push {r4,lr}
- ldr r4, _08109708
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_81098C4
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109708: .4byte gUnknown_02039238
- thumb_func_end sub_81096DC
-
- thumb_func_start sub_810970C
-sub_810970C: @ 810970C
- ldr r3, _08109728
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08109728: .4byte gUnknown_02039238
- thumb_func_end sub_810970C
-
- thumb_func_start sub_810972C
-sub_810972C: @ 810972C
- push {lr}
- bl sub_8109908
- lsls r0, 24
- cmp r0, 0
- bne _08109742
- ldr r2, _08109748
- ldrb r1, [r2, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x10]
-_08109742:
- pop {r0}
- bx r0
- .align 2, 0
-_08109748: .4byte 0x02016800
- thumb_func_end sub_810972C
-
- thumb_func_start dp15_compare_attacker_defender_levels
-dp15_compare_attacker_defender_levels: @ 810974C
- push {r4,r5,lr}
- ldr r5, _08109764
- ldr r4, [r5]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- beq _081097A0
- cmp r0, 0x1
- bgt _08109768
- cmp r0, 0
- beq _0810976E
- b _0810981C
- .align 2, 0
-_08109764: .4byte gUnknown_02039238
-_08109768:
- cmp r0, 0x2
- beq _081097D0
- b _0810981C
-_0810976E:
- ldr r3, _08109794
- ldr r0, _08109798
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _0810979C
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bhi _081097F2
- b _08109818
- .align 2, 0
-_08109794: .4byte gBattleMons
-_08109798: .4byte gUnknown_02024C07
-_0810979C: .4byte gUnknown_02024C08
-_081097A0:
- ldr r3, _081097C4
- ldr r0, _081097C8
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _081097CC
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _081097F2
- b _08109818
- .align 2, 0
-_081097C4: .4byte gBattleMons
-_081097C8: .4byte gUnknown_02024C07
-_081097CC: .4byte gUnknown_02024C08
-_081097D0:
- ldr r3, _0810980C
- ldr r0, _08109810
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _08109814
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08109818
-_081097F2:
- ldrb r1, [r4, 0x2]
- ldrb r0, [r4, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810981C
- .align 2, 0
-_0810980C: .4byte gBattleMons
-_08109810: .4byte gUnknown_02024C07
-_08109814: .4byte gUnknown_02024C08
-_08109818:
- adds r0, r4, 0x6
- str r0, [r5]
-_0810981C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp15_compare_attacker_defender_levels
-
- thumb_func_start sub_8109824
-sub_8109824: @ 8109824
- push {lr}
- ldr r2, _08109858
- ldr r0, _0810985C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08109864
- ldr r3, _08109860
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0810986C
- .align 2, 0
-_08109858: .4byte gUnknown_02024CA8
-_0810985C: .4byte gUnknown_02024C08
-_08109860: .4byte gUnknown_02039238
-_08109864:
- ldr r1, _08109870
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0810986C:
- pop {r0}
- bx r0
- .align 2, 0
-_08109870: .4byte gUnknown_02039238
- thumb_func_end sub_8109824
-
- thumb_func_start sub_8109874
-sub_8109874: @ 8109874
- push {lr}
- ldr r2, _081098A8
- ldr r0, _081098AC
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- bne _081098B4
- ldr r3, _081098B0
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081098BC
- .align 2, 0
-_081098A8: .4byte gUnknown_02024CA8
-_081098AC: .4byte gUnknown_02024C08
-_081098B0: .4byte gUnknown_02039238
-_081098B4:
- ldr r1, _081098C0
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_081098BC:
- pop {r0}
- bx r0
- .align 2, 0
-_081098C0: .4byte gUnknown_02039238
- thumb_func_end sub_8109874
-
- thumb_func_start sub_81098C4
-sub_81098C4: @ 81098C4
- push {r4,lr}
- ldr r4, _081098E0
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081098E0: .4byte 0x02016c00
- thumb_func_end sub_81098C4
-
- thumb_func_start unref_sub_81098E4
-unref_sub_81098E4: @ 81098E4
- ldr r3, _08109900
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _08109904
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08109900: .4byte 0x02016c00
-_08109904: .4byte gUnknown_02039238
- thumb_func_end unref_sub_81098E4
-
- thumb_func_start sub_8109908
-sub_8109908: @ 8109908
- push {lr}
- ldr r3, _0810991C
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0
- bne _08109920
- movs r0, 0
- b _08109932
- .align 2, 0
-_0810991C: .4byte 0x02016c00
-_08109920:
- subs r0, 0x1
- strb r0, [r2]
- ldr r1, _08109938
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x1
-_08109932:
- pop {r1}
- bx r1
- .align 2, 0
-_08109938: .4byte gUnknown_02039238
- thumb_func_end sub_8109908
-
- thumb_func_start sub_810993C
-sub_810993C: @ 810993C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _081099C8
- mov r9, r0
- movs r2, 0
-_0810994E:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- str r1, [sp, 0xC]
- cmp r5, 0x3
- bhi _081099AC
- movs r1, 0x1
- add r1, r9
- mov r8, r1
- adds r6, r1, r2
- movs r0, 0xB
- mov r10, r0
- mov r0, r10
- muls r0, r2
- adds r0, 0x5
- mov r1, r9
- adds r7, r1, r0
-_08109970:
- ldrb r0, [r6]
- cmp r0, 0
- bne _081099A2
- adds r2, r0, 0
- mov r0, r8
- adds r1, r0, r5
- ldrb r0, [r1]
- strb r0, [r6]
- strb r2, [r1]
- mov r0, sp
- adds r1, r7, 0
- bl StringCopy
- mov r4, r10
- muls r4, r5
- adds r4, 0x5
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
-_081099A2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08109970
-_081099AC:
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0810994E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081099C8: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_810993C
-
- thumb_func_start sub_81099CC
-sub_81099CC: @ 81099CC
- push {r4-r6,lr}
- ldr r5, _08109A14
- movs r1, 0
- movs r0, 0x2
- strb r0, [r5]
- adds r0, r5, 0
- adds r0, 0x31
- strb r1, [r0]
- movs r4, 0
- ldr r6, _08109A18
-_081099E0:
- movs r0, 0xB
- muls r0, r4
- adds r0, 0x5
- adds r0, r5, r0
- lsls r1, r4, 2
- adds r1, r6
- ldr r1, [r1]
- bl StringCopy
- adds r1, r5, 0x1
- adds r1, r4
- ldr r0, _08109A1C
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081099E0
- bl sub_810993C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109A14: .4byte gSaveBlock1 + 0x2D94
-_08109A18: .4byte gUnknown_083F62D8
-_08109A1C: .4byte gTraderDecorations
- thumb_func_end sub_81099CC
-
- thumb_func_start sub_8109A20
-sub_8109A20: @ 8109A20
- ldr r0, _08109A2C
- adds r0, 0x31
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08109A2C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_8109A20
-
- thumb_func_start sub_8109A30
-sub_8109A30: @ 8109A30
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08109A44
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08109A44: .4byte 0x00004020
- thumb_func_end sub_8109A30
-
- thumb_func_start sub_8109A48
-sub_8109A48: @ 8109A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r6, 0x1
- movs r5, 0
- ldr r0, _08109AB8
- movs r4, 0
- adds r7, r0, 0x1
- adds r1, r7, 0
-_08109A64:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08109A72
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08109A72:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08109A64
- lsls r3, r6, 25
- movs r0, 0x80
- lsls r0, 18
- adds r3, r0
- lsrs r3, 24
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xC
- bl MenuDrawTextWindow
- movs r4, 0
- mov r1, r9
- lsls r1, 2
- mov r8, r1
-_08109A98:
- adds r1, r7, r4
- ldrb r0, [r1]
- cmp r0, 0
- beq _08109ADE
- cmp r0, 0x78
- bls _08109AC0
- lsls r2, r5, 25
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- lsrs r2, 24
- ldr r0, _08109ABC
- movs r1, 0x1
- bl MenuPrint
- b _08109AD8
- .align 2, 0
-_08109AB8: .4byte gSaveBlock1 + 0x2D94
-_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash
-_08109AC0:
- ldrb r0, [r1]
- lsls r0, 5
- ldr r1, _08109B28
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
-_08109AD8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08109ADE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08109A98
- ldr r0, _08109B2C
- lsls r2, r5, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- adds r3, r6, 0
- bl InitMenu
- ldr r1, _08109B30
- mov r0, r8
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109B28: .4byte gDecorations + 0x1
-_08109B2C: .4byte gOtherText_CancelNoTerminator
-_08109B30: .4byte gTasks
- thumb_func_end sub_8109A48
-
- thumb_func_start sub_8109B34
-sub_8109B34: @ 8109B34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x78
- bls _08109B54
- ldr r1, _08109B4C
- ldr r2, _08109B50
- adds r0, r2, 0
- strh r0, [r1]
- b _08109B58
- .align 2, 0
-_08109B4C: .4byte gUnknown_0202E8CC
-_08109B50: .4byte 0x0000ffff
-_08109B54:
- ldr r0, _08109B78
- strh r1, [r0]
-_08109B58:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xC
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109B78: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8109B34
-
- thumb_func_start sub_8109B7C
-sub_8109B7C: @ 8109B7C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r6, _08109BA4
- ldr r0, _08109BA8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08109BAC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08109C3E
- .align 2, 0
-_08109BA4: .4byte gSaveBlock1 + 0x2D94
-_08109BA8: .4byte gMain
-_08109BAC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08109BC2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08109C3E
-_08109BC2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109C28
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08109BFC
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldr r1, _08109C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- ldrh r2, [r5]
- cmp r0, r2
- bne _08109C04
- adds r0, r4, 0
- movs r1, 0
- bl sub_8109B34
- b _08109C3E
- .align 2, 0
-_08109BFC: .4byte gUnknown_0202E8CE
-_08109C00: .4byte gTasks
-_08109C04:
- ldr r0, _08109C24
- movs r1, 0xB
- muls r1, r2
- adds r1, 0x5
- adds r1, r6
- bl StringCopy
- adds r0, r6, 0x1
- ldrh r5, [r5]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8109B34
- b _08109C3E
- .align 2, 0
-_08109C24: .4byte gStringVar1
-_08109C28:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08109C3E
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_8109B34
-_08109C3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8109B7C
-
- thumb_func_start sub_8109C44
-sub_8109C44: @ 8109C44
- ldr r0, _08109C50
- ldr r1, _08109C54
- adds r0, 0x31
- ldrb r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08109C50: .4byte gSaveBlock1 + 0x2D94
-_08109C54: .4byte gScriptResult
- thumb_func_end sub_8109C44
-
- thumb_func_start sub_8109C58
-sub_8109C58: @ 8109C58
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08109C70
-_08109C5E:
- adds r0, r4, 0
- bl sub_8134194
- lsls r0, 24
- cmp r0, 0
- beq _08109C74
- movs r0, 0
- strh r0, [r5]
- b _08109C84
- .align 2, 0
-_08109C70: .4byte gScriptResult
-_08109C74:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08109C5E
- ldr r1, _08109C8C
- movs r0, 0x1
- strh r0, [r1]
-_08109C84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08109C8C: .4byte gScriptResult
- thumb_func_end sub_8109C58
-
- thumb_func_start sub_8109C90
-sub_8109C90: @ 8109C90
- push {r4-r6,lr}
- ldr r6, _08109CDC
- movs r0, 0
- strh r0, [r6]
- ldr r4, _08109CE0
- ldr r5, _08109CE4
- ldrh r0, [r5]
- lsls r0, 5
- adds r2, r0, r4
- ldr r0, _08109CE8
- ldrh r0, [r0]
- lsls r0, 5
- adds r0, r4
- ldrb r1, [r2, 0x13]
- ldrb r0, [r0, 0x13]
- cmp r1, r0
- beq _08109CD6
- adds r0, r1, 0
- bl sub_8133F9C
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08109CD6
- ldr r0, _08109CEC
- ldrh r1, [r5]
- lsls r1, 5
- adds r1, r4
- ldrb r1, [r1, 0x13]
- bl sub_80FE7D4
- movs r0, 0x1
- strh r0, [r6]
-_08109CD6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109CDC: .4byte gScriptResult
-_08109CE0: .4byte gDecorations
-_08109CE4: .4byte gUnknown_0202E8CC
-_08109CE8: .4byte gUnknown_0202E8D0
-_08109CEC: .4byte gStringVar2
- thumb_func_end sub_8109C90
-
- thumb_func_start sub_8109CF0
-sub_8109CF0: @ 8109CF0
- push {lr}
- ldr r0, _08109D00
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08109D00: .4byte sub_80FE7A8
- thumb_func_end sub_8109CF0
-
- thumb_func_start sub_8109D04
-sub_8109D04: @ 8109D04
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r0, _08109D6C
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08109D8C
- ldr r5, _08109D70
- ldr r0, _08109D74
- ldrb r1, [r0]
- ldr r0, _08109D78
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r0, _08109D7C
- ldr r1, _08109D80
- ldrh r1, [r1]
- lsls r1, 5
- ldr r4, _08109D84
- adds r1, r4
- bl StringCopy
- ldr r0, _08109D88
- ldrh r1, [r5]
- lsls r1, 5
- adds r1, r4
- bl StringCopy
- b _08109D94
- .align 2, 0
-_08109D6C: .4byte gUnknown_020388F7
-_08109D70: .4byte gUnknown_0202E8D0
-_08109D74: .4byte gUnknown_020388F5
-_08109D78: .4byte gUnknown_020388D0
-_08109D7C: .4byte gStringVar3
-_08109D80: .4byte gUnknown_0202E8CC
-_08109D84: .4byte gDecorations + 0x1
-_08109D88: .4byte gStringVar2
-_08109D8C:
- ldr r1, _08109DA4
- ldr r2, _08109DA8
- adds r0, r2, 0
- strh r0, [r1]
-_08109D94:
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109DA4: .4byte gUnknown_0202E8D0
-_08109DA8: .4byte 0x0000ffff
- thumb_func_end sub_8109D04
-
- thumb_func_start sub_8109DAC
-sub_8109DAC: @ 8109DAC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _08109DDC
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109DDC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_8109DAC
-
- thumb_func_start sub_8109DE0
-sub_8109DE0: @ 8109DE0
- push {r4-r6,lr}
- ldr r4, _08109E20
- ldr r6, _08109E24
- ldrb r0, [r6]
- bl sub_81340A8
- ldr r0, _08109E28
- ldrb r0, [r0]
- bl IsThereStorageSpaceForDecoration
- ldr r5, _08109E2C
- ldrh r1, [r5]
- movs r0, 0xB
- muls r0, r1
- adds r0, 0x5
- adds r0, r4
- ldr r1, _08109E30
- bl StringCopy
- adds r0, r4, 0x1
- ldrh r5, [r5]
- adds r0, r5
- ldrh r1, [r6]
- strb r1, [r0]
- bl sub_810993C
- adds r4, 0x31
- movs r0, 0x1
- strb r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109E20: .4byte gSaveBlock1 + 0x2D94
-_08109E24: .4byte gUnknown_0202E8D0
-_08109E28: .4byte gUnknown_0202E8CC
-_08109E2C: .4byte gUnknown_0202E8CE
-_08109E30: .4byte gSaveBlock2
- thumb_func_end sub_8109DE0
-
- thumb_func_start sub_8109E34
-sub_8109E34: @ 8109E34
- push {lr}
- ldr r0, _08109E4C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_8109A48
- pop {r0}
- bx r0
- .align 2, 0
-_08109E4C: .4byte sub_8109B7C
- thumb_func_end sub_8109E34
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom5_part2.s b/asm/rom5_part2.s
new file mode 100644
index 000000000..5fc8859e9
--- /dev/null
+++ b/asm/rom5_part2.s
@@ -0,0 +1,256835 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808D344
+sub_808D344: @ 808D344
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0808D364
+ ldr r2, _0808D368
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x6
+ bhi _0808D38C
+ lsls r0, 2
+ ldr r1, _0808D36C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808D364: .4byte gMain
+_0808D368: .4byte 0x0000043c
+_0808D36C: .4byte _0808D370
+ .align 2, 0
+_0808D370:
+ .4byte _0808D38C
+ .4byte _0808D49C
+ .4byte _0808D4D8
+ .4byte _0808D50C
+ .4byte _0808D564
+ .4byte _0808D590
+ .4byte _0808D610
+_0808D38C:
+ ldr r0, _0808D3FC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0808D39E
+ b _0808D634
+_0808D39E:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, _0808D400
+ ldr r0, [r4]
+ ldr r1, _0808D404
+ adds r0, r1
+ strb r5, [r0]
+ movs r0, 0
+ bl sub_8091060
+ ldr r1, _0808D408
+ ldr r0, [r4]
+ ldr r2, _0808D40C
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r0, _0808D410
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0808D414
+ ldr r1, _0808D418
+ bl LZ77UnCompVram
+ ldr r0, _0808D41C
+ ldr r1, _0808D420
+ bl LZ77UnCompVram
+ ldr r1, _0808D424
+ add r0, sp, 0x4
+ strh r6, [r0]
+ ldr r0, _0808D428
+ add r2, sp, 0x4
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0808D42C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ cmp r5, 0
+ bne _0808D438
+ ldr r0, _0808D430
+ ldr r1, _0808D434
+ bl LZ77UnCompVram
+ b _0808D440
+ .align 2, 0
+_0808D3FC: .4byte gPaletteFade
+_0808D400: .4byte gUnknown_0202FFB4
+_0808D404: .4byte 0x0000064a
+_0808D408: .4byte REG_BG2VOFS
+_0808D40C: .4byte 0x0000062d
+_0808D410: .4byte gPokedexMenu_Gfx
+_0808D414: .4byte gUnknown_08E96738
+_0808D418: .4byte 0x06006800
+_0808D41C: .4byte gUnknown_08E9C6DC
+_0808D420: .4byte 0x06007800
+_0808D424: .4byte 0x06006000
+_0808D428: .4byte 0x040000d4
+_0808D42C: .4byte 0x81000280
+_0808D430: .4byte gUnknown_08E96888
+_0808D434: .4byte 0x06006500
+_0808D438:
+ ldr r0, _0808D45C
+ ldr r1, _0808D460
+ bl LZ77UnCompVram
+_0808D440:
+ bl ResetPaletteFade
+ cmp r5, 0
+ bne _0808D46C
+ ldr r0, _0808D464
+ ldr r1, [r0]
+ ldr r0, _0808D468
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ b _0808D47A
+ .align 2, 0
+_0808D45C: .4byte gUnknown_08E96994
+_0808D460: .4byte 0x06006500
+_0808D464: .4byte gUnknown_0202FFB4
+_0808D468: .4byte 0x0000064c
+_0808D46C:
+ ldr r0, _0808D48C
+ ldr r1, [r0]
+ ldr r2, _0808D490
+ adds r1, r2
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+_0808D47A:
+ strb r0, [r1]
+ bl sub_808D640
+ ldr r0, _0808D494
+ ldr r1, _0808D498
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0808D634
+ .align 2, 0
+_0808D48C: .4byte gUnknown_0202FFB4
+_0808D490: .4byte 0x0000064c
+_0808D494: .4byte gMain
+_0808D498: .4byte 0x0000043c
+_0808D49C:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _0808D4C4
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _0808D4C8
+ bl LoadCompressedObjectPic
+ ldr r0, _0808D4CC
+ bl LoadSpritePalettes
+ adds r0, r5, 0
+ bl sub_808E978
+ ldr r1, _0808D4D0
+ ldr r2, _0808D4D4
+ adds r1, r2
+ b _0808D5E4
+ .align 2, 0
+_0808D4C4: .4byte gReservedSpritePaletteCount
+_0808D4C8: .4byte gUnknown_083A05CC
+_0808D4CC: .4byte gUnknown_083A05DC
+_0808D4D0: .4byte gMain
+_0808D4D4: .4byte 0x0000043c
+_0808D4D8:
+ ldr r4, _0808D4F8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _0808D4FC
+ ldr r1, _0808D500
+ bl LZ77UnCompVram
+ ldr r1, _0808D504
+ ldr r0, _0808D508
+ adds r1, r0
+ b _0808D5E4
+ .align 2, 0
+_0808D4F8: .4byte gWindowConfig_81E7048
+_0808D4FC: .4byte gUnknown_0839FA7C
+_0808D500: .4byte 0x0600ff80
+_0808D504: .4byte gMain
+_0808D508: .4byte 0x0000043c
+_0808D50C:
+ cmp r5, 0
+ bne _0808D524
+ ldr r0, _0808D550
+ ldr r1, [r0]
+ ldr r2, _0808D554
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x4
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_808D690
+_0808D524:
+ ldr r4, _0808D550
+ ldr r0, [r4]
+ ldr r1, _0808D558
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0xE
+ bl sub_808E0CC
+ ldr r0, [r4]
+ movs r2, 0xCA
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, 0x4
+ adds r0, r2
+ strh r1, [r0]
+ ldr r1, _0808D55C
+ ldr r0, _0808D560
+ adds r1, r0
+ b _0808D5E4
+ .align 2, 0
+_0808D550: .4byte gUnknown_0202FFB4
+_0808D554: .4byte 0x00000612
+_0808D558: .4byte 0x0000060e
+_0808D55C: .4byte gMain
+_0808D560: .4byte 0x0000043c
+_0808D564:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0808D584
+ bl SetVBlankCallback
+ ldr r1, _0808D588
+ ldr r2, _0808D58C
+ adds r1, r2
+ b _0808D5E4
+ .align 2, 0
+_0808D584: .4byte sub_808C0B8
+_0808D588: .4byte gMain
+_0808D58C: .4byte 0x0000043c
+_0808D590:
+ ldr r1, _0808D5EC
+ ldr r2, _0808D5F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0808D5F4
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0808D5F8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _0808D5FC
+ ldr r2, _0808D600
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r2, _0808D604
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r2, _0808D608
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0808D60C
+ adds r1, r3, r0
+_0808D5E4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0808D634
+ .align 2, 0
+_0808D5EC: .4byte REG_WININ
+_0808D5F0: .4byte 0x00003f3f
+_0808D5F4: .4byte 0x00001d3f
+_0808D5F8: .4byte REG_WIN0H
+_0808D5FC: .4byte REG_BG3CNT
+_0808D600: .4byte 0x00000f03
+_0808D604: .4byte 0x00000d01
+_0808D608: .4byte 0x00009f40
+_0808D60C: .4byte 0x0000043c
+_0808D610:
+ ldr r0, _0808D62C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0808D634
+ ldr r1, _0808D630
+ adds r0, r3, r1
+ strb r2, [r0]
+ movs r0, 0x1
+ b _0808D636
+ .align 2, 0
+_0808D62C: .4byte gPaletteFade
+_0808D630: .4byte 0x0000043c
+_0808D634:
+ movs r0, 0
+_0808D636:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D344
+
+ thumb_func_start sub_808D640
+sub_808D640: @ 808D640
+ push {lr}
+ ldr r0, _0808D658
+ ldr r0, [r0]
+ ldr r1, _0808D65C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D664
+ ldr r0, _0808D660
+ b _0808D66E
+ .align 2, 0
+_0808D658: .4byte gUnknown_0202FFB4
+_0808D65C: .4byte 0x0000064c
+_0808D660: .4byte gUnknown_0839F67C + 0x2
+_0808D664:
+ bl sub_806912C
+ cmp r0, 0
+ bne _0808D67C
+ ldr r0, _0808D678
+_0808D66E:
+ movs r1, 0x1
+ movs r2, 0xBE
+ bl LoadPalette
+ b _0808D686
+ .align 2, 0
+_0808D678: .4byte gPokedexMenu_Pal + 0x2
+_0808D67C:
+ ldr r0, _0808D68C
+ movs r1, 0x1
+ movs r2, 0xBE
+ bl LoadPalette
+_0808D686:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D68C: .4byte gUnknown_0839F73C + 0x2
+ thumb_func_end sub_808D640
+
+ thumb_func_start sub_808D690
+sub_808D690: @ 808D690
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _0808D6C4
+ ldr r0, [r0]
+ ldr r1, _0808D6C8
+ adds r0, r1
+ movs r5, 0
+ strh r5, [r0]
+ cmp r4, 0
+ beq _0808D6B8
+ cmp r4, 0x1
+ beq _0808D6CC
+_0808D6B8:
+ mov r1, sp
+ movs r0, 0xCA
+ strh r0, [r1]
+ movs r0, 0x1
+ strh r0, [r1, 0x2]
+ b _0808D6E8
+ .align 2, 0
+_0808D6C4: .4byte gUnknown_0202FFB4
+_0808D6C8: .4byte 0x0000060c
+_0808D6CC:
+ bl sub_806912C
+ cmp r0, 0
+ beq _0808D6E0
+ mov r0, sp
+ movs r1, 0xC1
+ lsls r1, 1
+ strh r1, [r0]
+ strh r5, [r0, 0x2]
+ b _0808D6E8
+_0808D6E0:
+ mov r0, sp
+ movs r1, 0xCA
+ strh r1, [r0]
+ strh r4, [r0, 0x2]
+_0808D6E8:
+ cmp r6, 0x5
+ bls _0808D6EE
+ b _0808DB70
+_0808D6EE:
+ lsls r0, r6, 2
+ ldr r1, _0808D6F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0808D6F8: .4byte _0808D6FC
+ .align 2, 0
+_0808D6FC:
+ .4byte _0808D714
+ .4byte _0808D888
+ .4byte _0808D934
+ .4byte _0808D9C4
+ .4byte _0808DA5C
+ .4byte _0808DAEC
+_0808D714:
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0808D7BC
+ movs r4, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _0808D728
+ b _0808DB70
+_0808D728:
+ mov r5, sp
+ ldr r2, _0808D7B4
+ mov r8, r2
+ movs r3, 0x1
+ mov r9, r3
+_0808D732:
+ lsls r4, 16
+ asrs r4, 16
+ adds r7, r4, 0x1
+ mov r10, r7
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ adds r0, r6, 0
+ bl HoennToNationalOrder
+ strh r0, [r5, 0x4]
+ mov r2, r8
+ ldr r1, [r2]
+ lsls r4, 2
+ adds r1, r4
+ strh r0, [r1]
+ ldrh r0, [r5, 0x4]
+ movs r1, 0
+ bl sub_8090D90
+ mov r3, r8
+ ldr r2, [r3]
+ adds r2, r4
+ mov r3, r9
+ ands r3, r0
+ ldrb r0, [r2, 0x2]
+ movs r7, 0x2
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x2]
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ mov r1, r8
+ ldr r3, [r1]
+ adds r3, r4
+ mov r2, r9
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3, 0x2]
+ subs r7, 0x1
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x2]
+ mov r0, r8
+ ldr r1, [r0]
+ adds r4, r1, r4
+ ldrb r0, [r4, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0808D7A6
+ ldr r2, _0808D7B8
+ adds r0, r1, r2
+ mov r3, r10
+ strh r3, [r0]
+_0808D7A6:
+ adds r4, r6, 0
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r7, [r5]
+ cmp r0, r7
+ blt _0808D732
+ b _0808DB70
+ .align 2, 0
+_0808D7B4: .4byte gUnknown_0202FFB4
+_0808D7B8: .4byte 0x0000060c
+_0808D7BC:
+ movs r4, 0
+ movs r5, 0
+ mov r10, r5
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _0808D7CC
+ b _0808DB70
+_0808D7CC:
+ mov r6, sp
+ ldr r0, _0808D880
+ mov r8, r0
+ movs r1, 0x1
+ mov r9, r1
+_0808D7D6:
+ lsls r4, 16
+ asrs r0, r4, 16
+ adds r0, 0x1
+ strh r0, [r6, 0x4]
+ ldrh r0, [r6, 0x4]
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _0808D7F2
+ movs r2, 0x1
+ mov r10, r2
+_0808D7F2:
+ mov r3, r10
+ cmp r3, 0
+ beq _0808D86E
+ mov r4, r8
+ ldr r1, [r4]
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ lsls r4, r5, 2
+ adds r1, r4
+ ldrh r0, [r6, 0x4]
+ strh r0, [r1]
+ ldrh r0, [r6, 0x4]
+ movs r1, 0
+ bl sub_8090D90
+ mov r1, r8
+ ldr r2, [r1]
+ adds r2, r4
+ mov r3, r9
+ ands r3, r0
+ mov r12, r3
+ ldrb r0, [r2, 0x2]
+ movs r3, 0x2
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ mov r1, r12
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrh r0, [r6, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ mov r2, r8
+ ldr r3, [r2]
+ adds r3, r4
+ mov r2, r9
+ ands r2, r0
+ lsls r2, 1
+ mov r12, r2
+ ldrb r0, [r3, 0x2]
+ movs r2, 0x3
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ mov r1, r12
+ orrs r0, r1
+ strb r0, [r3, 0x2]
+ mov r3, r8
+ ldr r2, [r3]
+ adds r4, r2, r4
+ ldrb r0, [r4, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0808D868
+ adds r1, r5, 0x1
+ ldr r4, _0808D884
+ adds r0, r2, r4
+ strh r1, [r0]
+_0808D868:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0808D86E:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ ldrh r2, [r6]
+ cmp r0, r2
+ blt _0808D7D6
+ b _0808DB70
+ .align 2, 0
+_0808D880: .4byte gUnknown_0202FFB4
+_0808D884: .4byte 0x0000060c
+_0808D888:
+ movs r4, 0
+ mov r5, sp
+ ldr r3, _0808D928
+ mov r8, r3
+ ldr r6, _0808D92C
+ movs r7, 0x1
+ mov r9, r7
+_0808D896:
+ ldr r1, _0808D930
+ lsls r4, 16
+ asrs r0, r4, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r4, 0
+ ldrh r1, [r5]
+ cmp r0, r1
+ bhi _0808D914
+ ldrh r0, [r5, 0x4]
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808D914
+ mov r3, r8
+ ldr r2, [r3]
+ adds r3, r2, r6
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x4]
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ mov r4, r9
+ orrs r0, r4
+ strb r0, [r2, 0x2]
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ mov r1, r8
+ ldr r3, [r1]
+ adds r1, r3, r6
+ ldrh r1, [r1]
+ lsls r1, 2
+ adds r3, r1
+ mov r2, r9
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3, 0x2]
+ movs r4, 0x3
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x2]
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, r6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0808D914:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r7, r2
+ lsrs r4, r1, 16
+ movs r0, 0xCD
+ lsls r0, 17
+ cmp r1, r0
+ ble _0808D896
+ b _0808DB70
+ .align 2, 0
+_0808D928: .4byte gUnknown_0202FFB4
+_0808D92C: .4byte 0x0000060c
+_0808D930: .4byte gPokedexOrder_Alphabetical
+_0808D934:
+ ldr r4, _0808D9B0
+ lsls r0, r4, 16
+ mov r5, sp
+ ldr r7, _0808D9B4
+ ldr r6, _0808D9B8
+_0808D93E:
+ ldr r1, _0808D9BC
+ asrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r3, [r5]
+ cmp r0, r3
+ bhi _0808D99E
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808D99E
+ ldr r2, [r7]
+ adds r3, r2, r6
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x4]
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r2, [r7]
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r1, [r7]
+ adds r1, r6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0808D99E:
+ lsls r0, r4, 16
+ ldr r4, _0808D9C0
+ adds r0, r4
+ lsrs r4, r0, 16
+ lsls r0, r4, 16
+ cmp r0, 0
+ bge _0808D93E
+ b _0808DB70
+ .align 2, 0
+_0808D9B0: .4byte 0x00000181
+_0808D9B4: .4byte gUnknown_0202FFB4
+_0808D9B8: .4byte 0x0000060c
+_0808D9BC: .4byte gPokedexOrder_Weight
+_0808D9C0: .4byte 0xffff0000
+_0808D9C4:
+ movs r4, 0
+ mov r5, sp
+ ldr r7, _0808DA4C
+ mov r8, r7
+ ldr r6, _0808DA50
+ ldr r0, _0808DA54
+ mov r9, r0
+_0808D9D2:
+ ldr r1, _0808DA58
+ lsls r4, 16
+ asrs r0, r4, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r4, 0
+ ldrh r1, [r5]
+ cmp r0, r1
+ bhi _0808DA3A
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808DA3A
+ mov r3, r8
+ ldr r2, [r3]
+ adds r3, r2, r6
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x4]
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ mov r4, r8
+ ldr r2, [r4]
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r1, [r4]
+ adds r1, r6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0808DA3A:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r9
+ ble _0808D9D2
+ b _0808DB70
+ .align 2, 0
+_0808DA4C: .4byte gUnknown_0202FFB4
+_0808DA50: .4byte 0x0000060c
+_0808DA54: .4byte 0x00000181
+_0808DA58: .4byte gPokedexOrder_Weight
+_0808DA5C:
+ ldr r4, _0808DAD8
+ lsls r0, r4, 16
+ mov r5, sp
+ ldr r7, _0808DADC
+ ldr r6, _0808DAE0
+_0808DA66:
+ ldr r1, _0808DAE4
+ asrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r2, [r5]
+ cmp r0, r2
+ bhi _0808DAC6
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808DAC6
+ ldr r2, [r7]
+ adds r3, r2, r6
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x4]
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r2, [r7]
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r1, [r7]
+ adds r1, r6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0808DAC6:
+ lsls r0, r4, 16
+ ldr r3, _0808DAE8
+ adds r0, r3
+ lsrs r4, r0, 16
+ lsls r0, r4, 16
+ cmp r0, 0
+ bge _0808DA66
+ b _0808DB70
+ .align 2, 0
+_0808DAD8: .4byte 0x00000181
+_0808DADC: .4byte gUnknown_0202FFB4
+_0808DAE0: .4byte 0x0000060c
+_0808DAE4: .4byte gPokedexOrder_Height
+_0808DAE8: .4byte 0xffff0000
+_0808DAEC:
+ movs r4, 0
+ mov r5, sp
+ ldr r7, _0808DBD4
+ mov r8, r7
+ ldr r6, _0808DBD8
+ ldr r0, _0808DBDC
+ mov r9, r0
+_0808DAFA:
+ ldr r1, _0808DBE0
+ lsls r4, 16
+ asrs r0, r4, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r4, 0
+ ldrh r1, [r5]
+ cmp r0, r1
+ bhi _0808DB62
+ ldrh r0, [r5, 0x4]
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808DB62
+ mov r3, r8
+ ldr r2, [r3]
+ adds r3, r2, r6
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x4]
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ mov r4, r8
+ ldr r2, [r4]
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r1, [r4]
+ adds r1, r6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0808DB62:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r9
+ ble _0808DAFA
+_0808DB70:
+ ldr r1, _0808DBD4
+ ldr r0, [r1]
+ ldr r2, _0808DBD8
+ adds r0, r2
+ ldrh r4, [r0]
+ lsls r3, r4, 16
+ asrs r0, r3, 16
+ ldr r2, _0808DBDC
+ cmp r0, r2
+ bgt _0808DBC4
+ adds r5, r1, 0
+ movs r4, 0x2
+ negs r4, r4
+ mov r9, r4
+ movs r7, 0x3
+ negs r7, r7
+ mov r8, r7
+ adds r7, r2, 0
+ ldr r0, _0808DBE4
+ adds r6, r0, 0
+_0808DB98:
+ ldr r1, [r5]
+ asrs r3, 16
+ lsls r4, r3, 2
+ adds r1, r4
+ ldrh r0, [r1]
+ orrs r0, r6
+ strh r0, [r1]
+ ldrb r2, [r1, 0x2]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ ldr r1, [r5]
+ adds r1, r4
+ ldrb r2, [r1, 0x2]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r0, r3, 16
+ cmp r0, r7
+ ble _0808DB98
+_0808DBC4:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DBD4: .4byte gUnknown_0202FFB4
+_0808DBD8: .4byte 0x0000060c
+_0808DBDC: .4byte 0x00000181
+_0808DBE0: .4byte gPokedexOrder_Height
+_0808DBE4: .4byte 0x0000ffff
+ thumb_func_end sub_808D690
+
+ thumb_func_start sub_808DBE8
+sub_808DBE8: @ 808DBE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ cmp r0, 0x1
+ beq _0808DCE0
+ cmp r0, 0x1
+ ble _0808DC0C
+ cmp r0, 0x2
+ bne _0808DC0C
+ b _0808DDD8
+_0808DC0C:
+ subs r0, r1, 0x5
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ mov r9, r0
+_0808DC16:
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r10, r0
+ ldr r1, _0808DC48
+ cmp r5, r1
+ bhi _0808DC36
+ ldr r2, _0808DC4C
+ mov r8, r2
+ ldr r0, [r2]
+ mov r3, r10
+ asrs r6, r3, 14
+ adds r0, r6
+ ldrh r0, [r0]
+ ldr r1, _0808DC50
+ cmp r0, r1
+ bne _0808DC54
+_0808DC36:
+ mov r2, r9
+ lsls r1, r2, 25
+ lsrs r1, 24
+ movs r0, 0x11
+ adds r2, r7, 0
+ bl sub_808E090
+ b _0808DCC8
+ .align 2, 0
+_0808DC48: .4byte 0x00000181
+_0808DC4C: .4byte gUnknown_0202FFB4
+_0808DC50: .4byte 0x0000ffff
+_0808DC54:
+ mov r3, r9
+ lsls r0, r3, 25
+ lsrs r4, r0, 24
+ movs r0, 0x11
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_808E090
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0808DCA6
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DEB0
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ lsls r0, 30
+ lsrs r0, 31
+ movs r1, 0x11
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DF88
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r1, 0x17
+ adds r2, r4, 0
+ bl sub_808DFE4
+ b _0808DCC8
+_0808DCA6:
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DEB0
+ movs r0, 0
+ movs r1, 0x11
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DF88
+ movs r0, 0
+ movs r1, 0x17
+ adds r2, r4, 0
+ bl sub_808DFE4
+_0808DCC8:
+ movs r0, 0x80
+ lsls r0, 9
+ add r0, r10
+ lsrs r1, r0, 16
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0xA
+ bls _0808DC16
+ b _0808DEA2
+_0808DCE0:
+ subs r0, r1, 0x5
+ lsls r1, r0, 16
+ lsrs r5, r1, 16
+ ldr r0, _0808DD10
+ ldr r2, _0808DD14
+ cmp r5, r0
+ bhi _0808DCFE
+ adds r6, r2, 0
+ ldr r3, [r6]
+ asrs r4, r1, 14
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ ldr r0, _0808DD18
+ cmp r1, r0
+ bne _0808DD1C
+_0808DCFE:
+ ldr r0, [r2]
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r1, 25
+ b _0808DE16
+ .align 2, 0
+_0808DD10: .4byte 0x00000181
+_0808DD14: .4byte gUnknown_0202FFB4
+_0808DD18: .4byte 0x0000ffff
+_0808DD1C:
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r1, 25
+ lsrs r1, 24
+ movs r0, 0x11
+ adds r2, r7, 0
+ bl sub_808E090
+ ldr r1, [r6]
+ adds r0, r1, r4
+ ldrb r0, [r0, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0808DD8C
+ movs r3, 0xC6
+ lsls r3, 3
+ adds r0, r1, r3
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ lsls r2, 25
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r3, r7, 0
+ bl sub_808DEB0
+ ldr r1, [r6]
+ adds r0, r1, r4
+ ldrb r0, [r0, 0x2]
+ lsls r0, 30
+ lsrs r0, 31
+ movs r2, 0xC6
+ lsls r2, 3
+ adds r1, r2
+ movs r3, 0
+ ldrsh r2, [r1, r3]
+ lsls r2, 25
+ lsrs r2, 24
+ movs r1, 0x11
+ adds r3, r7, 0
+ bl sub_808DF88
+ ldr r1, [r6]
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ movs r2, 0xC6
+ lsls r2, 3
+ adds r1, r2
+ movs r3, 0
+ ldrsh r2, [r1, r3]
+ lsls r2, 25
+ lsrs r2, 24
+ b _0808DDD0
+_0808DD8C:
+ movs r2, 0xC6
+ lsls r2, 3
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ lsls r2, 25
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r3, r7, 0
+ bl sub_808DEB0
+ ldr r0, [r6]
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r0, r1
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ lsls r2, 25
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0x11
+ adds r3, r7, 0
+ bl sub_808DF88
+ ldr r0, [r6]
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r0, r1
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ lsls r2, 25
+ lsrs r2, 24
+ movs r0, 0
+_0808DDD0:
+ movs r1, 0x17
+ bl sub_808DFE4
+ b _0808DEA2
+_0808DDD8:
+ adds r0, r1, 0x5
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0808DE24
+ mov r8, r0
+ ldr r3, [r0]
+ movs r2, 0xC6
+ lsls r2, 3
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ adds r0, 0xA
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0808DDFE
+ adds r0, r2, 0
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r2, r0, 16
+_0808DDFE:
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _0808DE28
+ cmp r5, r0
+ bhi _0808DE14
+ asrs r6, r1, 14
+ adds r0, r3, r6
+ ldrh r1, [r0]
+ ldr r0, _0808DE2C
+ cmp r1, r0
+ bne _0808DE30
+_0808DE14:
+ lsls r1, r2, 25
+_0808DE16:
+ lsrs r1, 24
+ movs r0, 0x11
+ adds r2, r7, 0
+ bl sub_808E090
+ b _0808DEA2
+ .align 2, 0
+_0808DE24: .4byte gUnknown_0202FFB4
+_0808DE28: .4byte 0x00000181
+_0808DE2C: .4byte 0x0000ffff
+_0808DE30:
+ lsls r0, r2, 25
+ lsrs r4, r0, 24
+ movs r0, 0x11
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_808E090
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0808DE80
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DEB0
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ lsls r0, 30
+ lsrs r0, 31
+ movs r1, 0x11
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DF88
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r1, 0x17
+ adds r2, r4, 0
+ bl sub_808DFE4
+ b _0808DEA2
+_0808DE80:
+ adds r0, r5, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DEB0
+ movs r0, 0
+ movs r1, 0x11
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_808DF88
+ movs r0, 0
+ movs r1, 0x17
+ adds r2, r4, 0
+ bl sub_808DFE4
+_0808DEA2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808DBE8
+
+ thumb_func_start sub_808DEB0
+sub_808DEB0: @ 808DEB0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ ldr r1, _0808DF7C
+ ldr r1, [r1]
+ lsrs r0, 14
+ adds r0, r1, r0
+ ldrh r7, [r0]
+ ldr r0, _0808DF80
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0808DEEE
+ adds r0, r7, 0
+ bl NationalToHoennOrder
+ lsls r0, 16
+ lsrs r7, r0, 16
+_0808DEEE:
+ add r6, sp, 0x4
+ movs r0, 0xFF
+ lsls r0, 2
+ strh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ mov r4, sp
+ adds r0, r7, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r0, 0xA1
+ strb r0, [r4]
+ mov r5, sp
+ adds r0, r7, 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 r1, r8
+ lsls r2, r1, 1
+ mov r3, r10
+ lsls r0, r3, 11
+ mov r3, r9
+ lsls r1, r3, 6
+ adds r0, r1
+ adds r2, r0
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r1, r2, r0
+ ldrh r0, [r6]
+ strh r0, [r1]
+ ldr r1, _0808DF84
+ adds r2, r1
+ ldrh r0, [r6, 0x2]
+ strh r0, [r2]
+ mov r1, r8
+ subs r1, 0xF
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ mov r2, r9
+ bl MenuPrint
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DF7C: .4byte gUnknown_0202FFB4
+_0808DF80: .4byte 0x00000612
+_0808DF84: .4byte 0x06000040
+ thumb_func_end sub_808DEB0
+
+ thumb_func_start sub_808DF88
+sub_808DF88: @ 808DF88
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r4, 0
+ beq _0808DFB0
+ mov r1, sp
+ ldr r0, _0808DFAC
+ strh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1, 0x2]
+ b _0808DFB6
+ .align 2, 0
+_0808DFAC: .4byte 0x000003fe
+_0808DFB0:
+ mov r0, sp
+ strh r4, [r0]
+ strh r4, [r0, 0x2]
+_0808DFB6:
+ lsls r2, r5, 1
+ lsls r0, r3, 11
+ lsls r1, r6, 6
+ adds r0, r1
+ adds r2, r0
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r1, r2, r0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, _0808DFE0
+ adds r2, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r2]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DFE0: .4byte 0x06000040
+ thumb_func_end sub_808DF88
+
+ thumb_func_start sub_808DFE4
+sub_808DFE4: @ 808DFE4
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r4, 0
+ movs r1, 0
+_0808DFF8:
+ 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 _0808DFF8
+ adds r0, r2, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl NationalPokedexNumToSpecies
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _0808E058
+ movs r4, 0
+ ldr r2, _0808E054
+ movs r0, 0xB
+ adds r1, r3, 0
+ muls r1, r0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ subs r5, 0x11
+ lsls r6, 19
+ cmp r0, 0xFF
+ beq _0808E070
+ adds r3, r1, 0
+_0808E032:
+ mov r0, sp
+ adds r1, r0, r4
+ adds r0, r4, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0808E070
+ cmp r4, 0x9
+ bls _0808E032
+ b _0808E070
+ .align 2, 0
+_0808E054: .4byte gSpeciesNames
+_0808E058:
+ movs r4, 0
+ subs r5, 0x11
+ lsls r6, 19
+ movs r1, 0xAE
+_0808E060:
+ 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 _0808E060
+_0808E070:
+ lsls r1, r5, 27
+ movs r0, 0xFC
+ lsls r0, 24
+ adds r1, r0
+ lsrs r1, 24
+ lsrs r2, r6, 16
+ mov r0, sp
+ movs r3, 0
+ bl sub_80729D8
+ adds r0, r4, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808DFE4
+
+ thumb_func_start sub_808E090
+sub_808E090: @ 808E090
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsls r2, 16
+ movs r3, 0
+ lsrs r2, 5
+ lsrs r1, 18
+ adds r4, r2, r1
+ movs r2, 0
+ movs r7, 0xC0
+ lsls r7, 19
+ ldr r6, _0808E0C8
+_0808E0AA:
+ adds r0, r5, r3
+ lsls r0, 1
+ adds r0, r4
+ adds r1, r0, r7
+ strh r2, [r1]
+ adds r0, r6
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xB
+ bls _0808E0AA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E0C8: .4byte 0x06000040
+ thumb_func_end sub_808E090
+
+ thumb_func_start sub_808E0CC
+sub_808E0CC: @ 808E0CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r3, 0
+ ldr r0, _0808E1E0
+ mov r8, r0
+ mov r6, r8
+ ldr r2, _0808E1E4
+ ldr r1, _0808E1E8
+ adds r4, r1, 0
+_0808E0E8:
+ ldr r1, [r6]
+ lsls r0, r3, 1
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0808E0E8
+ mov r4, r8
+ ldr r0, [r4]
+ ldr r2, _0808E1EC
+ adds r0, r2
+ ldr r1, _0808E1E8
+ strh r1, [r0]
+ movs r0, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_808DBE8
+ ldr r1, _0808E1F0
+ ldr r0, [r4]
+ ldr r2, _0808E1F4
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_808E888
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _0808E1E8
+ cmp r0, r4
+ beq _0808E15A
+ movs r1, 0x60
+ movs r2, 0x50
+ bl sub_808E8C8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0808E1F8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0808E1FC
+ str r2, [r1]
+ adds r0, r3
+ ldr r1, _0808E200
+ strh r1, [r0, 0x38]
+_0808E15A:
+ adds r0, r5, 0
+ bl sub_808E888
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ beq _0808E18C
+ movs r1, 0x60
+ movs r2, 0x50
+ bl sub_808E8C8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0808E1F8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0808E1FC
+ str r2, [r1]
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x38]
+_0808E18C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_808E888
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ beq _0808E1C2
+ movs r1, 0x60
+ movs r2, 0x50
+ bl sub_808E8C8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0808E1F8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0808E1FC
+ str r2, [r1]
+ adds r0, r3
+ movs r1, 0x20
+ strh r1, [r0, 0x38]
+_0808E1C2:
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0xC6
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _0808E204
+ adds r0, r1
+ strh r2, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E1E0: .4byte gUnknown_0202FFB4
+_0808E1E4: .4byte 0x0000061e
+_0808E1E8: .4byte 0x0000ffff
+_0808E1EC: .4byte 0x00000626
+_0808E1F0: .4byte REG_BG2VOFS
+_0808E1F4: .4byte 0x0000062d
+_0808E1F8: .4byte gSprites
+_0808E1FC: .4byte sub_808EE28
+_0808E200: .4byte 0x0000ffe0
+_0808E204: .4byte 0x00000632
+ thumb_func_end sub_808E0CC
+
+ thumb_func_start sub_808E208
+sub_808E208: @ 808E208
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0808E23C
+ ldr r3, [r0]
+ ldr r1, _0808E240
+ adds r2, r3, r1
+ ldrb r1, [r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _0808E22C
+ b _0808E36C
+_0808E22C:
+ subs r0, r1, 0x1
+ strb r0, [r2]
+ cmp r4, 0x1
+ beq _0808E244
+ cmp r4, 0x2
+ beq _0808E2D8
+ b _0808E34C
+ .align 2, 0
+_0808E23C: .4byte gUnknown_0202FFB4
+_0808E240: .4byte 0x0000062e
+_0808E244:
+ movs r3, 0
+ ldr r2, _0808E2BC
+ mov r12, r2
+ ldr r4, _0808E2C0
+ mov r8, r4
+ adds r2, r7, 0
+_0808E250:
+ ldr r0, [r2]
+ lsls r1, r3, 1
+ ldr r4, _0808E2C4
+ adds r0, r4
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r12
+ beq _0808E26E
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrh r0, [r1, 0x38]
+ adds r0, r5
+ strh r0, [r1, 0x38]
+_0808E26E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _0808E250
+ ldr r4, [r7]
+ ldr r5, _0808E2C8
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ subs r0, r6, r0
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _0808E2CC
+ ldr r0, _0808E2D0
+ adds r1, r4, r0
+ adds r5, 0x4
+ adds r0, r4, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r0, 4
+ ldrb r1, [r1]
+ adds r0, r1
+ subs r0, r3
+ strh r0, [r2]
+ ldr r0, _0808E2D4
+ adds r2, r4, r0
+ movs r1, 0xC5
+ lsls r1, 3
+ adds r4, r1
+ ldrb r1, [r4]
+ ldrb r0, [r2]
+ subs r0, r1
+ strb r0, [r2]
+ b _0808E34C
+ .align 2, 0
+_0808E2BC: .4byte 0x0000ffff
+_0808E2C0: .4byte gSprites
+_0808E2C4: .4byte 0x0000061e
+_0808E2C8: .4byte 0x0000062e
+_0808E2CC: .4byte REG_BG2VOFS
+_0808E2D0: .4byte 0x0000062d
+_0808E2D4: .4byte 0x0000062c
+_0808E2D8:
+ movs r3, 0
+ ldr r2, _0808E350
+ mov r12, r2
+ ldr r4, _0808E354
+ mov r8, r4
+ adds r2, r7, 0
+_0808E2E4:
+ ldr r0, [r2]
+ lsls r1, r3, 1
+ ldr r4, _0808E358
+ adds r0, r4
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r12
+ beq _0808E302
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrh r0, [r1, 0x38]
+ subs r0, r5
+ strh r0, [r1, 0x38]
+_0808E302:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _0808E2E4
+ ldr r4, [r7]
+ ldr r5, _0808E35C
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ subs r0, r6, r0
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _0808E360
+ ldr r0, _0808E364
+ adds r1, r4, r0
+ adds r5, 0x4
+ adds r0, r4, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r0, 4
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r0, r3
+ strh r0, [r2]
+ ldr r0, _0808E368
+ adds r1, r4, r0
+ movs r2, 0xC5
+ lsls r2, 3
+ adds r4, r2
+ ldrb r0, [r4]
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+_0808E34C:
+ movs r0, 0
+ b _0808E386
+ .align 2, 0
+_0808E350: .4byte 0x0000ffff
+_0808E354: .4byte gSprites
+_0808E358: .4byte 0x0000061e
+_0808E35C: .4byte 0x0000062e
+_0808E360: .4byte REG_BG2VOFS
+_0808E364: .4byte 0x0000062d
+_0808E368: .4byte 0x0000062c
+_0808E36C:
+ ldr r2, _0808E390
+ ldr r4, _0808E394
+ adds r1, r3, r4
+ movs r5, 0xC6
+ lsls r5, 3
+ adds r0, r3, r5
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 4
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ movs r0, 0x1
+_0808E386:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E390: .4byte REG_BG2VOFS
+_0808E394: .4byte 0x0000062d
+ thumb_func_end sub_808E208
+
+ thumb_func_start sub_808E398
+sub_808E398: @ 808E398
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r4, _0808E3C0
+ ldr r0, [r4]
+ movs r5, 0xC6
+ lsls r5, 3
+ adds r1, r0, r5
+ ldrh r1, [r1]
+ ldr r6, _0808E3C4
+ adds r0, r6
+ strh r1, [r0]
+ cmp r2, 0x1
+ beq _0808E3C8
+ cmp r2, 0x2
+ beq _0808E428
+ b _0808E484
+ .align 2, 0
+_0808E3C0: .4byte gUnknown_0202FFB4
+_0808E3C4: .4byte 0x00000632
+_0808E3C8:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_808E888
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0808E414
+ cmp r1, r0
+ beq _0808E402
+ adds r0, r1, 0
+ movs r1, 0x60
+ movs r2, 0x50
+ bl sub_808E8C8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0808E418
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0808E41C
+ str r2, [r1]
+ adds r0, r3
+ ldr r1, _0808E420
+ strh r1, [r0, 0x38]
+_0808E402:
+ ldr r0, [r4]
+ adds r1, r0, r5
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _0808E424
+ subs r0, r2, 0x1
+ b _0808E482
+ .align 2, 0
+_0808E414: .4byte 0x0000ffff
+_0808E418: .4byte gSprites
+_0808E41C: .4byte sub_808EE28
+_0808E420: .4byte 0x0000ffc0
+_0808E424:
+ movs r0, 0xF
+ b _0808E482
+_0808E428:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_808E888
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0808E474
+ cmp r1, r0
+ beq _0808E462
+ adds r0, r1, 0
+ movs r1, 0x60
+ movs r2, 0x50
+ bl sub_808E8C8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0808E478
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0808E47C
+ str r2, [r1]
+ adds r0, r3
+ movs r1, 0x40
+ strh r1, [r0, 0x38]
+_0808E462:
+ ldr r0, [r4]
+ adds r1, r0, r5
+ ldrh r2, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0xE
+ bgt _0808E480
+ adds r0, r2, 0x1
+ b _0808E482
+ .align 2, 0
+_0808E474: .4byte 0x0000ffff
+_0808E478: .4byte gSprites
+_0808E47C: .4byte sub_808EE28
+_0808E480:
+ movs r0, 0
+_0808E482:
+ strh r0, [r1]
+_0808E484:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808E398
+
+ 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
+
+ thumb_func_start sub_8093110
+sub_8093110: @ 8093110
+ push {lr}
+ bl sub_80932AC
+ ldr r0, _08093128
+ bl SetMainCallback2
+ ldr r0, _0809312C
+ adds r0, 0x9C
+ movs r1, 0x2
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093128: .4byte sub_8093174
+_0809312C: .4byte 0x02000000
+ thumb_func_end sub_8093110
+
+ thumb_func_start sub_8093130
+sub_8093130: @ 8093130
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80932E4
+ ldr r0, _08093164
+ bl SetMainCallback2
+ ldr r2, _08093168
+ ldr r3, _0809316C
+ ldr r0, _08093170
+ lsls r4, 2
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x1A]
+ adds r2, 0x9C
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093164: .4byte sub_8093174
+_08093168: .4byte 0x02000000
+_0809316C: .4byte gLinkPlayers
+_08093170: .4byte gUnknown_02029818
+ thumb_func_end sub_8093130
+
+ thumb_func_start sub_8093174
+sub_8093174: @ 8093174
+ push {lr}
+ ldr r0, _0809318C
+ ldr r1, _08093190
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _08093232
+ lsls r0, 2
+ ldr r1, _08093194
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809318C: .4byte gMain
+_08093190: .4byte 0x0000043c
+_08093194: .4byte _08093198
+ .align 2, 0
+_08093198:
+ .4byte _080931BC
+ .4byte _080931C6
+ .4byte _080931CC
+ .4byte _080931D2
+ .4byte _080931DC
+ .4byte _080931EC
+ .4byte _08093200
+ .4byte _08093206
+ .4byte _08093220
+_080931BC:
+ bl sub_8093534
+ bl sub_8093688
+ b _0809320A
+_080931C6:
+ bl sub_8093598
+ b _0809320A
+_080931CC:
+ bl sub_80935EC
+ b _0809320A
+_080931D2:
+ bl sub_8093610
+ bl sub_80937A4
+ b _0809320A
+_080931DC:
+ bl sub_80937BC
+ ldr r1, _080931F8
+ ldr r0, _080931FC
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080931EC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _08093232
+ b _0809320A
+ .align 2, 0
+_080931F8: .4byte gMain
+_080931FC: .4byte 0x0000043c
+_08093200:
+ bl sub_80937F0
+ b _0809320A
+_08093206:
+ bl sub_80937D8
+_0809320A:
+ ldr r1, _08093218
+ ldr r0, _0809321C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08093232
+ .align 2, 0
+_08093218: .4byte gMain
+_0809321C: .4byte 0x0000043c
+_08093220:
+ bl nullsub_15
+ bl sub_8093800
+ bl sub_8093550
+ ldr r0, _08093238
+ bl SetMainCallback2
+_08093232:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093238: .4byte sub_809323C
+ thumb_func_end sub_8093174
+
+ thumb_func_start sub_809323C
+sub_809323C: @ 809323C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809323C
+
+ thumb_func_start sub_8093254
+sub_8093254: @ 8093254
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r2, _0809329C
+ ldrb r0, [r2, 0x6]
+ adds r0, 0x1
+ strb r0, [r2, 0x6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _0809327E
+ movs r0, 0
+ strb r0, [r2, 0x6]
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r2, 0x5]
+_0809327E:
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _08093298
+ ldr r1, _080932A0
+ ldr r0, _080932A4
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080932A8
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_08093298:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809329C: .4byte 0x02000000
+_080932A0: .4byte 0x040000d4
+_080932A4: .4byte gUnknown_03004DE0
+_080932A8: .4byte 0x800000a0
+ thumb_func_end sub_8093254
+
+ thumb_func_start sub_80932AC
+sub_80932AC: @ 80932AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080932DC
+ movs r1, 0xFF
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080932E0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ adds r0, 0xC
+ adds r1, r4, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080932DC: .4byte nullsub_60
+_080932E0: .4byte gTasks
+ thumb_func_end sub_80932AC
+
+ thumb_func_start sub_80932E4
+sub_80932E4: @ 80932E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0809331C
+ movs r1, 0xFF
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08093320
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ adds r0, 0xC
+ adds r1, r5, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809331C: .4byte nullsub_60
+_08093320: .4byte gTasks
+ thumb_func_end sub_80932E4
+
+ thumb_func_start sub_8093324
+sub_8093324: @ 8093324
+ push {r4,r5,lr}
+ ldr r0, _0809336C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08093370
+ adds r4, r1, r0
+ ldr r5, _08093374
+ ldrh r0, [r4, 0x8]
+ strb r0, [r5, 0x1]
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl LoadWordFromTwoHalfwords
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _0809337C
+ ldr r2, _08093378
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r2
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r2, 0x38
+ bl memcpy
+ b _08093384
+ .align 2, 0
+_0809336C: .4byte nullsub_60
+_08093370: .4byte gTasks
+_08093374: .4byte 0x02000000
+_08093378: .4byte gUnknown_0202FFC0
+_0809337C:
+ adds r0, r5, 0
+ adds r0, 0x64
+ bl sub_8093390
+_08093384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093324
+
+ thumb_func_start nullsub_60
+nullsub_60: @ 809338C
+ bx lr
+ thumb_func_end nullsub_60
+
+ thumb_func_start sub_8093390
+sub_8093390: @ 8093390
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _080934A4
+ ldrb r0, [r6, 0x8]
+ strb r0, [r5]
+ ldrh r0, [r6, 0xE]
+ strh r0, [r5, 0x10]
+ ldrb r0, [r6, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0x1
+ bl sub_8053108
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_8053108
+ cmp r0, 0
+ bne _080933B6
+ movs r4, 0
+_080933B6:
+ lsrs r0, r4, 16
+ strh r0, [r5, 0x6]
+ lsrs r0, r4, 8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x8]
+ ands r4, r1
+ strh r4, [r5, 0xA]
+ ldr r0, _080934A8
+ bl FlagGet
+ strb r0, [r5, 0x2]
+ bl sub_8090FC0
+ strb r0, [r5, 0x3]
+ bl GetPokedexSeenCount
+ strh r0, [r5, 0xC]
+ ldrb r1, [r6, 0xB]
+ lsls r1, 8
+ ldrb r0, [r6, 0xA]
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r7, _080934AC
+ movs r0, 0x17
+ adds r1, r7, 0
+ bl sav12_xor_get_clamped_above
+ strh r0, [r5, 0x14]
+ movs r0, 0x18
+ adds r1, r7, 0
+ bl sav12_xor_get_clamped_above
+ strh r0, [r5, 0x16]
+ ldr r1, _080934B0
+ movs r0, 0x23
+ bl sav12_xor_get_clamped_above
+ strh r0, [r5, 0x1C]
+ ldr r4, _080934B4
+ movs r0, 0x22
+ adds r1, r4, 0
+ bl sav12_xor_get_clamped_above
+ strh r0, [r5, 0x1E]
+ movs r0, 0x15
+ adds r1, r4, 0
+ bl sav12_xor_get_clamped_above
+ strh r0, [r5, 0x20]
+ movs r1, 0xAE
+ lsls r1, 3
+ adds r0, r6, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x18]
+ ldr r2, _080934B8
+ adds r1, r6, r2
+ ldrh r1, [r1]
+ strh r1, [r5, 0x1A]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bls _08093436
+ strh r7, [r5, 0x18]
+_08093436:
+ ldrh r0, [r5, 0x1A]
+ cmp r0, r7
+ bls _0809343E
+ strh r7, [r5, 0x1A]
+_0809343E:
+ movs r4, 0
+ bl sub_80C4D50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _0809344E
+ movs r4, 0x1
+_0809344E:
+ strb r4, [r5, 0x4]
+ ldr r0, _080934BC
+ movs r2, 0x92
+ lsls r2, 3
+ adds r1, r0, r2
+ ldr r1, [r1]
+ str r1, [r5, 0x24]
+ movs r2, 0
+ adds r6, r5, 0
+ adds r6, 0x30
+ adds r3, r5, 0
+ adds r3, 0x28
+ ldr r1, _080934C0
+ adds r4, r0, r1
+_0809346A:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _0809346A
+ movs r2, 0
+ adds r3, r6, 0
+ ldr r4, _080934A4
+_08093484:
+ adds r1, r3, r2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08093484
+ adds r0, r5, 0
+ bl sub_80934F4
+ strb r0, [r5, 0x1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080934A4: .4byte gSaveBlock2
+_080934A8: .4byte 0x00000801
+_080934AC: .4byte 0x0000270f
+_080934B0: .4byte 0x000003e7
+_080934B4: .4byte 0x0000ffff
+_080934B8: .4byte 0x00000572
+_080934BC: .4byte gSaveBlock1
+_080934C0: .4byte 0x00002b1c
+ thumb_func_end sub_8093390
+
+ thumb_func_start sub_80934C4
+sub_80934C4: @ 80934C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080934D8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080934D8: .4byte gUnknown_0202FFC0
+ thumb_func_end sub_80934C4
+
+ thumb_func_start sav12_xor_get_clamped_above
+sav12_xor_get_clamped_above: @ 80934DC
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8053108
+ cmp r0, r4
+ bls _080934EE
+ adds r0, r4, 0
+_080934EE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sav12_xor_get_clamped_above
+
+ thumb_func_start sub_80934F4
+sub_80934F4: @ 80934F4
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08093506
+ ldr r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08093508
+_08093506:
+ movs r2, 0x1
+_08093508:
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ beq _08093514
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08093514:
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x31
+ bls _08093520
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08093520:
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809352C
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0809352C:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80934F4
+
+ thumb_func_start sub_8093534
+sub_8093534: @ 8093534
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093534
+
+ thumb_func_start sub_8093550
+sub_8093550: @ 8093550
+ push {r4,lr}
+ ldr r0, _08093588
+ bl SetVBlankCallback
+ ldr r3, _0809358C
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08093590
+ ldrh r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08093594
+ ldrh r0, [r2]
+ movs r1, 0x18
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093588: .4byte sub_8093254
+_0809358C: .4byte 0x04000208
+_08093590: .4byte 0x04000200
+_08093594: .4byte REG_DISPSTAT
+ thumb_func_end sub_8093550
+
+ thumb_func_start sub_8093598
+sub_8093598: @ 8093598
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _080935E4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080935E8
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080935B6:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _080935B6
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080935E4: .4byte 0x040000d4
+_080935E8: .4byte 0x81000800
+ thumb_func_end sub_8093598
+
+ thumb_func_start sub_80935EC
+sub_80935EC: @ 80935EC
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08093608
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809360C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08093608: .4byte 0x040000d4
+_0809360C: .4byte 0x81000200
+ thumb_func_end sub_80935EC
+
+ thumb_func_start sub_8093610
+sub_8093610: @ 8093610
+ push {r4,r5,lr}
+ ldr r5, _08093664
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _08093668
+ strh r1, [r2]
+ ldr r3, _0809366C
+ strh r1, [r3]
+ ldr r4, _08093670
+ strh r1, [r4]
+ ldr r0, _08093674
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08093678
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _0809367C
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r1, _08093680
+ adds r0, r1, 0
+ strh r0, [r3]
+ ldr r1, _08093684
+ adds r0, r1, 0
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093664: .4byte REG_BG0CNT
+_08093668: .4byte REG_BG1CNT
+_0809366C: .4byte REG_BG2CNT
+_08093670: .4byte REG_BG3CNT
+_08093674: .4byte REG_BG0HOFS
+_08093678: .4byte 0x00001e08
+_0809367C: .4byte 0x00000801
+_08093680: .4byte 0x00000902
+_08093684: .4byte 0x00000a03
+ thumb_func_end sub_8093610
+
+ thumb_func_start sub_8093688
+sub_8093688: @ 8093688
+ push {r4-r6,lr}
+ bl sub_8093324
+ ldr r2, _080936D0
+ movs r1, 0
+ strb r1, [r2]
+ strb r1, [r2, 0x3]
+ strb r1, [r2, 0x4]
+ adds r0, r2, 0
+ adds r0, 0x65
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ strb r1, [r2, 0x5]
+ strb r1, [r2, 0x6]
+ movs r4, 0
+ adds r6, r2, 0
+ adds r6, 0x20
+ adds r5, r2, 0
+ adds r5, 0x8C
+_080936AE:
+ lsls r0, r4, 4
+ adds r0, r6
+ lsls r1, r4, 1
+ adds r1, r5, r1
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080936AE
+ bl sub_80936D4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080936D0: .4byte 0x02000000
+ thumb_func_end sub_8093688
+
+ thumb_func_start sub_80936D4
+sub_80936D4: @ 80936D4
+ push {r4-r6,lr}
+ ldr r4, _08093798
+ movs r0, 0
+ strb r0, [r4, 0x7]
+ strb r0, [r4, 0x8]
+ strb r0, [r4, 0x9]
+ strb r0, [r4, 0xA]
+ strb r0, [r4, 0xB]
+ strb r0, [r4, 0xC]
+ strb r0, [r4, 0xD]
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x66
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08093704
+ ldrb r0, [r4, 0x7]
+ adds r0, 0x1
+ strb r0, [r4, 0x7]
+_08093704:
+ adds r0, r4, 0
+ adds r0, 0x6A
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08093714
+ ldr r0, [r4, 0x6C]
+ cmp r0, 0
+ beq _0809371A
+_08093714:
+ ldrb r0, [r4, 0x8]
+ adds r0, 0x1
+ strb r0, [r4, 0x8]
+_0809371A:
+ ldr r1, _08093798
+ ldr r0, [r1, 0x78]
+ cmp r0, 0
+ beq _08093728
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+_08093728:
+ ldr r0, [r1, 0x7C]
+ cmp r0, 0
+ beq _08093734
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_08093734:
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08093744
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x1
+ strb r0, [r1, 0xB]
+_08093744:
+ adds r0, r1, 0
+ adds r0, 0x82
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08093754
+ ldrb r0, [r1, 0xC]
+ adds r0, 0x1
+ strb r0, [r1, 0xC]
+_08093754:
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08093764
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+_08093764:
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08093792
+ movs r5, 0
+ ldr r4, _0809379C
+ adds r6, r1, 0
+ adds r6, 0xE
+_08093772:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08093788
+ adds r1, r5, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08093788:
+ adds r4, 0x1
+ adds r5, 0x1
+ ldr r0, _080937A0
+ cmp r4, r0
+ bls _08093772
+_08093792:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093798: .4byte 0x02000000
+_0809379C: .4byte 0x00000807
+_080937A0: .4byte 0x0000080e
+ thumb_func_end sub_80936D4
+
+ thumb_func_start sub_80937A4
+sub_80937A4: @ 80937A4
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80937A4
+
+ thumb_func_start sub_80937BC
+sub_80937BC: @ 80937BC
+ push {r4,lr}
+ ldr r4, _080937D4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl MultistepInitMenuWindowBegin
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080937D4: .4byte gWindowConfig_81E6DC4
+ thumb_func_end sub_80937BC
+
+ thumb_func_start sub_80937D8
+sub_80937D8: @ 80937D8
+ push {lr}
+ bl sub_8093E04
+ bl sub_8093E28
+ bl sub_8093F64
+ bl sub_8093DAC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80937D8
+
+ thumb_func_start sub_80937F0
+sub_80937F0: @ 80937F0
+ push {lr}
+ bl sub_8093EF8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80937F0
+
+ thumb_func_start nullsub_15
+nullsub_15: @ 80937FC
+ bx lr
+ thumb_func_end nullsub_15
+
+ thumb_func_start sub_8093800
+sub_8093800: @ 8093800
+ push {lr}
+ bl sub_809380C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093800
+
+ thumb_func_start sub_809380C
+sub_809380C: @ 809380C
+ push {r4,lr}
+ ldr r4, _08093828
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093828: .4byte sub_809382C
+ thumb_func_end sub_809380C
+
+ thumb_func_start sub_809382C
+sub_809382C: @ 809382C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08093858
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _0809385C
+ ldr r5, _08093860
+_0809383E:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809383E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093858: .4byte gUnknown_083B5EBC
+_0809385C: .4byte 0x02000000
+_08093860: .4byte gTasks
+ thumb_func_end sub_809382C
+
+ thumb_func_start sub_8093864
+sub_8093864: @ 8093864
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, _080938A0
+ ldr r2, _080938A4
+ ldrb r1, [r2, 0x11]
+ movs r0, 0x1
+ ands r0, r1
+ movs r5, 0
+ strb r0, [r4, 0x5]
+ ldrb r0, [r2, 0x12]
+ strb r0, [r4, 0x6]
+ bl sub_80939A4
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080938A0: .4byte 0x02000000
+_080938A4: .4byte gSaveBlock2
+ thumb_func_end sub_8093864
+
+ thumb_func_start sub_80938A8
+sub_80938A8: @ 80938A8
+ push {lr}
+ ldr r0, _080938C4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080938BE
+ ldr r1, _080938C8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080938BE:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080938C4: .4byte gPaletteFade
+_080938C8: .4byte 0x02000000
+ thumb_func_end sub_80938A8
+
+ thumb_func_start rfu_NI_stopReceivingData
+rfu_NI_stopReceivingData: @ 80938CC
+ push {lr}
+ ldr r0, _080938E4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080938EC
+ ldr r1, _080938E8
+ movs r0, 0x5
+ strb r0, [r1]
+ movs r0, 0x1
+ b _08093914
+ .align 2, 0
+_080938E4: .4byte gMain
+_080938E8: .4byte 0x02000000
+_080938EC:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093912
+ ldr r2, _08093900
+ ldrb r1, [r2, 0x3]
+ cmp r1, 0
+ beq _08093904
+ movs r0, 0x5
+ b _0809390C
+ .align 2, 0
+_08093900: .4byte 0x02000000
+_08093904:
+ movs r0, 0x1
+ eors r0, r1
+ strb r0, [r2, 0x3]
+ movs r0, 0x3
+_0809390C:
+ strb r0, [r2]
+ movs r0, 0x1
+ b _08093914
+_08093912:
+ movs r0, 0
+_08093914:
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_NI_stopReceivingData
+
+ thumb_func_start sub_8093918
+sub_8093918: @ 8093918
+ push {lr}
+ bl sub_8093A28
+ movs r0, 0x36
+ bl PlaySE
+ ldr r1, _08093934
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093934: .4byte 0x02000000
+ thumb_func_end sub_8093918
+
+ thumb_func_start sub_8093938
+sub_8093938: @ 8093938
+ push {lr}
+ bl sub_8093A48
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809394A
+ ldr r1, _08093950
+ movs r0, 0x2
+ strb r0, [r1]
+_0809394A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093950: .4byte 0x02000000
+ thumb_func_end sub_8093938
+
+ thumb_func_start sub_8093954
+sub_8093954: @ 8093954
+ push {lr}
+ sub sp, 0x4
+ bl sub_80939C0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0809397C
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809397C: .4byte 0x02000000
+ thumb_func_end sub_8093954
+
+ thumb_func_start sub_8093980
+sub_8093980: @ 8093980
+ push {lr}
+ ldr r0, _0809399C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08093996
+ ldr r0, _080939A0
+ ldr r0, [r0, 0x60]
+ bl SetMainCallback2
+_08093996:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809399C: .4byte gPaletteFade
+_080939A0: .4byte 0x02000000
+ thumb_func_end sub_8093980
+
+ thumb_func_start sub_80939A4
+sub_80939A4: @ 80939A4
+ push {lr}
+ ldr r0, _080939B8
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _080939BC
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080939B8: .4byte sub_80939DC
+_080939BC: .4byte gWindowConfig_81E6DC4
+ thumb_func_end sub_80939A4
+
+ thumb_func_start sub_80939C0
+sub_80939C0: @ 80939C0
+ push {lr}
+ ldr r0, _080939D8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080939D4
+ bl DestroyTask
+_080939D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080939D8: .4byte sub_80939DC
+ thumb_func_end sub_80939C0
+
+ thumb_func_start sub_80939DC
+sub_80939DC: @ 80939DC
+ push {lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08093A20
+ adds r2, r1, r0
+ ldr r0, _08093A24
+ ldrb r1, [r0, 0x5]
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ beq _08093A04
+ strh r1, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r2, 0x8]
+_08093A04:
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ mov r0, sp
+ bl sub_8094250
+ mov r0, sp
+ movs r1, 0xA
+ movs r2, 0xC
+ bl MenuPrint
+ add sp, 0x20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093A20: .4byte gTasks
+_08093A24: .4byte 0x02000000
+ thumb_func_end sub_80939DC
+
+ thumb_func_start sub_8093A28
+sub_8093A28: @ 8093A28
+ push {r4,lr}
+ ldr r4, _08093A44
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093A44: .4byte sub_8093A68
+ thumb_func_end sub_8093A28
+
+ thumb_func_start sub_8093A48
+sub_8093A48: @ 8093A48
+ push {lr}
+ ldr r0, _08093A5C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08093A60
+ movs r0, 0
+ b _08093A62
+ .align 2, 0
+_08093A5C: .4byte sub_8093A68
+_08093A60:
+ movs r0, 0x1
+_08093A62:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093A48
+
+ thumb_func_start sub_8093A68
+sub_8093A68: @ 8093A68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08093A98
+ ldr r2, _08093A9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08093A7A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08093A7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093A98: .4byte gUnknown_083B5ED8
+_08093A9C: .4byte gTasks
+ thumb_func_end sub_8093A68
+
+ thumb_func_start sub_8093AA0
+sub_8093AA0: @ 8093AA0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08093AE0
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ bl dp12_8087EA4
+ movs r1, 0
+ ldr r0, _08093AE4
+ ldr r2, _08093AE8
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+_08093ABA:
+ strh r2, [r0]
+ adds r0, 0x2
+ adds r1, 0x1
+ cmp r1, 0x9F
+ bls _08093ABA
+ ldr r0, _08093AEC
+ bl SetHBlankCallback
+ ldr r1, _08093AE0
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093AE0: .4byte 0x02000000
+_08093AE4: .4byte gUnknown_03004DE0
+_08093AE8: .4byte 0x0000fffc
+_08093AEC: .4byte sub_8093D7C
+ thumb_func_end sub_8093AA0
+
+ thumb_func_start sub_8093AF0
+sub_8093AF0: @ 8093AF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ ldr r1, _08093BFC
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ mov r2, r8
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x3
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _08093B18
+ movs r0, 0x4F
+ strh r0, [r2, 0xA]
+_08093B18:
+ mov r4, r8
+ movs r0, 0xA
+ ldrsh r7, [r4, r0]
+ movs r0, 0xA0
+ subs r0, r7
+ mov r9, r0
+ subs r4, r0, r7
+ negs r0, r7
+ lsls r6, r0, 16
+ movs r0, 0xA0
+ lsls r0, 16
+ adds r1, r4, 0
+ bl __udivsi3
+ adds r5, r0, 0
+ ldr r1, _08093C00
+ adds r5, r1
+ adds r0, r5, 0
+ muls r0, r4
+ adds r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __udivsi3
+ str r0, [sp]
+ lsls r5, 1
+ movs r3, 0
+ cmp r3, r7
+ bcs _08093B74
+ ldr r2, _08093C04
+ mov r12, r2
+ ldr r0, _08093C08
+ adds r4, r0, 0
+_08093B5C:
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ add r1, r12
+ subs r2, r4, r0
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, r7
+ bcc _08093B5C
+_08093B74:
+ lsls r2, r3, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r4, r10
+ lsrs r7, r4, 16
+ cmp r2, r0
+ bge _08093BAE
+ ldr r0, _08093C04
+ mov r9, r0
+ ldr r4, _08093C08
+ mov r12, r4
+ adds r4, r1, 0
+_08093B8E:
+ lsrs r1, r6, 16
+ adds r6, r5
+ ldr r0, [sp]
+ subs r5, r0
+ asrs r2, 16
+ lsls r0, r2, 1
+ add r0, r9
+ add r1, r12
+ strh r1, [r0]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _08093B8E
+_08093BAE:
+ adds r1, r7, 0
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ bgt _08093BD4
+ ldr r4, _08093C04
+ ldr r0, _08093C08
+ adds r2, r1, r0
+_08093BBE:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ cmp r1, 0x9F
+ ble _08093BBE
+_08093BD4:
+ movs r0, 0x1
+ ldr r1, _08093BFC
+ strb r0, [r1, 0x4]
+ mov r2, r8
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x4A
+ ble _08093BEA
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08093BEA:
+ movs r0, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093BFC: .4byte 0x02000000
+_08093C00: .4byte 0xffff0000
+_08093C04: .4byte gUnknown_03004DE0
+_08093C08: .4byte 0x0000fffc
+ thumb_func_end sub_8093AF0
+
+ thumb_func_start sub_8093C0C
+sub_8093C0C: @ 8093C0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80939C0
+ bl sub_8093DAC
+ ldr r0, _08093C34
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ bne _08093C24
+ bl sub_80939A4
+_08093C24:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093C34: .4byte 0x02000000
+ thumb_func_end sub_8093C0C
+
+ thumb_func_start sub_8093C38
+sub_8093C38: @ 8093C38
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ ldr r1, _08093D40
+ movs r2, 0
+ strb r2, [r1, 0x4]
+ ldrh r0, [r0, 0xA]
+ subs r0, 0x3
+ mov r3, r8
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08093C5C
+ strh r2, [r3, 0xA]
+_08093C5C:
+ mov r4, r8
+ movs r0, 0xA
+ ldrsh r7, [r4, r0]
+ movs r0, 0xA0
+ subs r0, r7
+ mov r9, r0
+ subs r4, r0, r7
+ negs r0, r7
+ lsls r6, r0, 16
+ movs r0, 0xA0
+ lsls r0, 16
+ adds r1, r4, 0
+ bl __udivsi3
+ adds r5, r0, 0
+ ldr r1, _08093D44
+ adds r5, r1
+ adds r0, r5, 0
+ muls r0, r4
+ adds r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __udivsi3
+ str r0, [sp]
+ lsrs r5, 1
+ movs r3, 0
+ cmp r3, r7
+ bcs _08093CB8
+ ldr r2, _08093D48
+ mov r12, r2
+ ldr r0, _08093D4C
+ adds r4, r0, 0
+_08093CA0:
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ add r1, r12
+ subs r2, r4, r0
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, r7
+ bcc _08093CA0
+_08093CB8:
+ lsls r2, r3, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r4, r10
+ lsrs r7, r4, 16
+ cmp r2, r0
+ bge _08093CF2
+ ldr r0, _08093D48
+ mov r9, r0
+ ldr r3, _08093D4C
+ mov r12, r3
+ adds r4, r1, 0
+_08093CD2:
+ lsrs r1, r6, 16
+ adds r6, r5
+ ldr r0, [sp]
+ adds r5, r0
+ asrs r2, 16
+ lsls r0, r2, 1
+ add r0, r9
+ add r1, r12
+ strh r1, [r0]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _08093CD2
+_08093CF2:
+ adds r1, r7, 0
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ bgt _08093D18
+ ldr r4, _08093D48
+ ldr r0, _08093D4C
+ adds r2, r1, r0
+_08093D02:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ cmp r1, 0x9F
+ ble _08093D02
+_08093D18:
+ movs r0, 0x1
+ ldr r1, _08093D40
+ strb r0, [r1, 0x4]
+ mov r2, r8
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bgt _08093D2E
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08093D2E:
+ movs r0, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093D40: .4byte 0x02000000
+_08093D44: .4byte 0xffff0000
+_08093D48: .4byte gUnknown_03004DE0
+_08093D4C: .4byte 0x0000fffc
+ thumb_func_end sub_8093C38
+
+ thumb_func_start sub_8093D50
+sub_8093D50: @ 8093D50
+ push {lr}
+ ldr r1, _08093D74
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ bl SetHBlankCallback
+ bl sub_8093E04
+ ldr r0, _08093D78
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093D74: .4byte 0x02000000
+_08093D78: .4byte sub_8093A68
+ thumb_func_end sub_8093D50
+
+ thumb_func_start sub_8093D7C
+sub_8093D7C: @ 8093D7C
+ ldr r1, _08093DA0
+ ldr r0, _08093DA4
+ ldrh r2, [r0]
+ movs r0, 0xFF
+ ands r0, r2
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08093DA8
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08093DA0: .4byte gUnknown_03004DE0
+_08093DA4: .4byte REG_VCOUNT
+_08093DA8: .4byte REG_BG0VOFS
+ thumb_func_end sub_8093D7C
+
+ thumb_func_start sub_8093DAC
+sub_8093DAC: @ 8093DAC
+ push {lr}
+ ldr r0, _08093DBC
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _08093DC0
+ bl sub_8093DEC
+ b _08093DC4
+ .align 2, 0
+_08093DBC: .4byte 0x02000000
+_08093DC0:
+ bl sub_8093DC8
+_08093DC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093DAC
+
+ thumb_func_start sub_8093DC8
+sub_8093DC8: @ 8093DC8
+ push {lr}
+ bl MenuZeroFillScreen
+ bl sub_80940E4
+ bl sub_8093F14
+ bl sub_8093F80
+ bl sub_8093FD0
+ bl sub_8094038
+ bl sub_8094140
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093DC8
+
+ thumb_func_start sub_8093DEC
+sub_8093DEC: @ 8093DEC
+ push {lr}
+ bl MenuZeroFillScreen
+ bl sub_80940E4
+ bl sub_8093F48
+ bl sub_8094188
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093DEC
+
+ thumb_func_start sub_8093E04
+sub_8093E04: @ 8093E04
+ ldr r0, _08093E20
+ ldr r2, _08093E24
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ movs r2, 0
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08093E20: .4byte REG_BG0VOFS
+_08093E24: .4byte 0x0000fffc
+ thumb_func_end sub_8093E04
+
+ thumb_func_start sub_8093E28
+sub_8093E28: @ 8093E28
+ push {r4-r7,lr}
+ bl sub_8093EA0
+ ldr r0, _08093E84
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r3, _08093E88
+ movs r4, 0xC0
+ lsls r4, 19
+ movs r5, 0xA4
+ lsls r5, 5
+ ldr r1, _08093E8C
+ ldr r6, _08093E90
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08093E4E:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08093E4E
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _08093E94
+ ldr r2, _08093E98
+ ldr r0, _08093E8C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08093E9C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093E84: .4byte gUnknown_083B5F6C
+_08093E88: .4byte gMenuTrainerCard_Gfx
+_08093E8C: .4byte 0x040000d4
+_08093E90: .4byte 0x80000800
+_08093E94: .4byte gBadgesTiles
+_08093E98: .4byte 0x06001480
+_08093E9C: .4byte 0x80000200
+ thumb_func_end sub_8093E28
+
+ thumb_func_start sub_8093EA0
+sub_8093EA0: @ 8093EA0
+ push {r4,lr}
+ ldr r1, _08093EE4
+ ldr r4, _08093EE8
+ ldrb r0, [r4, 0x2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08093EEC
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08093EF0
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x64
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08093EDC
+ ldr r0, _08093EF4
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+_08093EDC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093EE4: .4byte gUnknown_083B5EF8
+_08093EE8: .4byte 0x02000000
+_08093EEC: .4byte gBadgesPalette
+_08093EF0: .4byte gUnknown_083B5F4C
+_08093EF4: .4byte gUnknown_083B5F0C
+ thumb_func_end sub_8093EA0
+
+ thumb_func_start sub_8093EF8
+sub_8093EF8: @ 8093EF8
+ push {lr}
+ ldr r0, _08093F0C
+ adds r0, 0x64
+ ldrb r0, [r0]
+ ldr r2, _08093F10
+ movs r1, 0x50
+ bl sub_8085A5C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093F0C: .4byte 0x02000000
+_08093F10: .4byte 0x06001880
+ thumb_func_end sub_8093EF8
+
+ thumb_func_start sub_8093F14
+sub_8093F14: @ 8093F14
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _08093F3C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _08093F40
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, _08093F44
+ movs r2, 0xA0
+ lsls r2, 1
+ bl CpuFastSet
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093F3C: .4byte gUnknown_083B5EEC
+_08093F40: .4byte 0x02000000
+_08093F44: .4byte 0x06004800
+ thumb_func_end sub_8093F14
+
+ thumb_func_start sub_8093F48
+sub_8093F48: @ 8093F48
+ push {lr}
+ ldr r0, _08093F5C
+ ldr r1, _08093F60
+ movs r2, 0xA0
+ lsls r2, 1
+ bl CpuFastSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093F5C: .4byte gUnknown_08E8CFC0
+_08093F60: .4byte 0x06004800
+ thumb_func_end sub_8093F48
+
+ thumb_func_start sub_8093F64
+sub_8093F64: @ 8093F64
+ push {lr}
+ ldr r0, _08093F78
+ ldr r1, _08093F7C
+ movs r2, 0xA0
+ lsls r2, 1
+ bl CpuFastSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093F78: .4byte gUnknown_08E8D9C0
+_08093F7C: .4byte 0x06005000
+ thumb_func_end sub_8093F64
+
+ thumb_func_start sub_8093F80
+sub_8093F80: @ 8093F80
+ push {r4-r7,lr}
+ movs r5, 0xC4
+ ldr r7, _08093FCC
+ movs r1, 0x5
+ movs r0, 0xA0
+ lsls r0, 7
+ adds r6, r0, 0
+_08093F8E:
+ movs r0, 0x13
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_08093F94:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ adds r1, r7
+ adds r0, r5, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1A
+ ble _08093F94
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _08093F8E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093FCC: .4byte 0x06004000
+ thumb_func_end sub_8093F80
+
+ thumb_func_start sub_8093FD0
+sub_8093FD0: @ 8093FD0
+ push {r4-r6,lr}
+ ldr r4, _0809402C
+ movs r2, 0xF
+ ldr r0, _08094030
+ ldrb r0, [r0, 0x2]
+ adds r0, 0xF
+ cmp r2, r0
+ bge _08094002
+ movs r6, 0xC0
+ lsls r6, 1
+ ldr r1, _08094034
+ adds r5, r1, 0
+ adds r3, r0, 0
+_08093FEA:
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r4
+ adds r0, r6
+ strh r5, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r2, r1, 16
+ asrs r1, 16
+ cmp r1, r3
+ blt _08093FEA
+_08094002:
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x12
+ bgt _08094024
+ movs r3, 0xC0
+ lsls r3, 1
+ movs r2, 0
+_08094010:
+ asrs r0, r1, 16
+ lsls r1, r0, 1
+ adds r1, r4
+ adds r1, r3
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r1, r0, 16
+ asrs r0, r1, 16
+ cmp r0, 0x12
+ ble _08094010
+_08094024:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809402C: .4byte 0x06004000
+_08094030: .4byte 0x02000000
+_08094034: .4byte 0x0000408f
+ thumb_func_end sub_8093FD0
+
+ thumb_func_start sub_8094038
+sub_8094038: @ 8094038
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, _080940D0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080940C2
+ ldr r0, _080940D4
+ mov r9, r0
+ movs r0, 0
+ movs r2, 0x4
+ adds r1, 0xE
+ mov r8, r1
+ ldr r7, _080940D8
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r6, r1, 0
+ adds r1, r7, 0x6
+ mov r12, r1
+_08094060:
+ lsls r0, 16
+ asrs r4, r0, 16
+ mov r1, r8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r5, r2, 16
+ cmp r0, 0
+ beq _080940AE
+ asrs r1, r5, 15
+ add r1, r9
+ movs r2, 0xF0
+ lsls r2, 2
+ adds r3, r1, r2
+ lsls r2, r4, 3
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ orrs r0, r6
+ strh r0, [r3]
+ ldr r0, _080940DC
+ adds r3, r1, r0
+ adds r0, r7, 0x2
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ orrs r0, r6
+ strh r0, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ adds r3, r1, r0
+ adds r0, r7, 0x4
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ orrs r0, r6
+ strh r0, [r3]
+ ldr r0, _080940E0
+ adds r1, r0
+ add r2, r12
+ ldrh r0, [r2]
+ orrs r0, r6
+ strh r0, [r1]
+_080940AE:
+ adds r1, r4, 0x1
+ lsls r1, 16
+ movs r2, 0xC0
+ lsls r2, 10
+ adds r0, r5, r2
+ lsrs r2, r0, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ ble _08094060
+_080940C2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080940D0: .4byte 0x02000000
+_080940D4: .4byte 0x06004000
+_080940D8: .4byte gUnknown_083B5F8C
+_080940DC: .4byte 0x000003c2
+_080940E0: .4byte 0x00000402
+ thumb_func_end sub_8094038
+
+ thumb_func_start sub_80940E4
+sub_80940E4: @ 80940E4
+ push {r4,lr}
+ movs r2, 0
+ ldr r1, _08094108
+ movs r4, 0
+ ldr r3, _0809410C
+_080940EE:
+ strh r4, [r1]
+ lsls r0, r2, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ adds r1, 0x2
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r3
+ ble _080940EE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094108: .4byte 0x06004000
+_0809410C: .4byte 0x000003ff
+ thumb_func_end sub_80940E4
+
+ thumb_func_start sub_8094110
+sub_8094110: @ 8094110
+ push {r4-r6,lr}
+ ldr r6, _0809413C
+ movs r2, 0x3
+ movs r5, 0xA0
+ lsls r5, 2
+ movs r3, 0x1
+ movs r4, 0xB0
+ lsls r4, 2
+_08094120:
+ lsls r0, r2, 1
+ adds r0, r6
+ adds r1, r0, r5
+ strh r3, [r1]
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x10
+ bls _08094120
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809413C: .4byte 0x06004800
+ thumb_func_end sub_8094110
+
+ thumb_func_start sub_8094140
+sub_8094140: @ 8094140
+ push {r4,r5,lr}
+ ldr r0, _0809417C
+ bl BasicInitMenuWindow
+ ldr r4, _08094180
+ ldr r5, _08094184
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringCopy
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x5
+ bl MenuPrint
+ bl sub_80941D8
+ bl sub_8094200
+ bl sub_8094218
+ bl sub_809429C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809417C: .4byte gWindowConfig_81E6DC4
+_08094180: .4byte gStringVar1
+_08094184: .4byte 0x02000094
+ thumb_func_end sub_8094140
+
+ thumb_func_start sub_8094188
+sub_8094188: @ 8094188
+ push {lr}
+ ldr r0, _080941D0
+ bl BasicInitMenuWindow
+ bl sub_80942F8
+ bl sub_8094334
+ bl sub_80943C4
+ bl sub_8094428
+ bl sub_8094498
+ bl sub_80944E8
+ bl sub_8094538
+ ldr r0, _080941D4
+ bl BasicInitMenuWindow
+ bl sub_8094354
+ bl sub_80943E4
+ bl sub_8094448
+ bl sub_80944B8
+ bl sub_8094508
+ bl sub_8094558
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080941D0: .4byte gWindowConfig_81E6DC4
+_080941D4: .4byte gWindowConfig_81E6DE0
+ thumb_func_end sub_8094188
+
+ thumb_func_start sub_80941D8
+sub_80941D8: @ 80941D8
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080941FC
+ adds r0, 0x72
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x14
+ movs r2, 0x2
+ bl MenuPrint
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080941FC: .4byte 0x02000000
+ thumb_func_end sub_80941D8
+
+ thumb_func_start sub_8094200
+sub_8094200: @ 8094200
+ push {lr}
+ ldr r0, _08094214
+ adds r0, 0x88
+ ldr r0, [r0]
+ movs r1, 0x10
+ movs r2, 0x8
+ bl sub_80B7AEC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094214: .4byte 0x02000000
+ thumb_func_end sub_8094200
+
+ thumb_func_start sub_8094218
+sub_8094218: @ 8094218
+ push {lr}
+ sub sp, 0x10
+ ldr r1, _0809422C
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ bne _08094230
+ bl sub_8094110
+ b _0809424A
+ .align 2, 0
+_0809422C: .4byte 0x02000000
+_08094230:
+ adds r0, r1, 0
+ adds r0, 0x70
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x10
+ movs r2, 0xA
+ bl sub_8072B4C
+_0809424A:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094218
+
+ thumb_func_start sub_8094250
+sub_8094250: @ 8094250
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r0, _08094294
+ ldrh r4, [r0, 0xE]
+ ldrb r2, [r0, 0x10]
+ ldr r1, _08094298
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _08094272
+ adds r0, r1, 0
+ adds r0, 0x74
+ ldrh r4, [r0]
+ adds r0, 0x2
+ ldrh r2, [r0]
+_08094272:
+ lsls r3, 16
+ asrs r3, 16
+ mov r0, sp
+ adds r1, r4, 0
+ bl FormatPlayTime
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_8072C74
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094294: .4byte gSaveBlock2
+_08094298: .4byte 0x02000000
+ thumb_func_end sub_8094250
+
+ thumb_func_start sub_809429C
+sub_809429C: @ 809429C
+ push {r4-r6,lr}
+ ldr r6, _080942F0
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0
+ beq _080942EA
+ ldr r0, _080942F4
+ adds r1, r6, 0
+ adds r1, 0x20
+ bl StringCopy
+ movs r5, 0
+ strb r5, [r0]
+ adds r0, 0x1
+ adds r1, r6, 0
+ adds r1, 0x30
+ bl StringCopy
+ ldr r4, _080942F4
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xE
+ bl MenuPrint
+ adds r1, r6, 0
+ adds r1, 0x40
+ adds r0, r4, 0
+ bl StringCopy
+ strb r5, [r0]
+ adds r0, 0x1
+ adds r1, r6, 0
+ adds r1, 0x50
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x10
+ bl MenuPrint
+_080942EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080942F0: .4byte 0x02000000
+_080942F4: .4byte gStringVar1
+ thumb_func_end sub_809429C
+
+ thumb_func_start sub_80942F8
+sub_80942F8: @ 80942F8
+ push {r4,r5,lr}
+ ldr r4, _08094328
+ ldr r5, _0809432C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringCopy
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r1, _08094330
+ adds r0, r4, 0
+ bl StringAppend
+ adds r0, r4, 0
+ movs r1, 0x1C
+ movs r2, 0x2
+ bl sub_8072B4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094328: .4byte gStringVar1
+_0809432C: .4byte 0x02000094
+_08094330: .4byte gOtherText_TrainersTrainerCard
+ thumb_func_end sub_80942F8
+
+ thumb_func_start sub_8094334
+sub_8094334: @ 8094334
+ push {lr}
+ ldr r0, _0809434C
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _08094348
+ ldr r0, _08094350
+ movs r1, 0x3
+ movs r2, 0x5
+ bl MenuPrint
+_08094348:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809434C: .4byte 0x02000000
+_08094350: .4byte gOtherText_FirstHOF
+ thumb_func_end sub_8094334
+
+ thumb_func_start sub_8094354
+sub_8094354: @ 8094354
+ push {r4,r5,lr}
+ ldr r5, _080943B8
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080943B0
+ ldr r2, _080943BC
+ adds r0, r5, 0
+ adds r0, 0x6A
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ ldr r4, _080943C0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r0, 0x6C
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r0, 0x6E
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080943BC
+ movs r1, 0x1C
+ movs r2, 0x5
+ bl sub_8072B4C
+_080943B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080943B8: .4byte 0x02000000
+_080943BC: .4byte gStringVar1
+_080943C0: .4byte gUnknown_083B5EF4
+ thumb_func_end sub_8094354
+
+ thumb_func_start sub_80943C4
+sub_80943C4: @ 80943C4
+ push {lr}
+ ldr r0, _080943DC
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _080943D8
+ ldr r0, _080943E0
+ movs r1, 0x3
+ movs r2, 0x7
+ bl MenuPrint
+_080943D8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080943DC: .4byte 0x02000000
+_080943E0: .4byte gOtherText_LinkCableBattles
+ thumb_func_end sub_80943C4
+
+ thumb_func_start sub_80943E4
+sub_80943E4: @ 80943E4
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, _08094424
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0809441C
+ adds r0, r4, 0
+ adds r0, 0x78
+ ldrh r1, [r0]
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ mov r0, sp
+ movs r1, 0x16
+ movs r2, 0x7
+ bl sub_8072B4C
+ adds r0, r4, 0
+ adds r0, 0x7A
+ ldrh r1, [r0]
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ mov r0, sp
+ movs r1, 0x1C
+ movs r2, 0x7
+ bl sub_8072B4C
+_0809441C:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094424: .4byte 0x02000000
+ thumb_func_end sub_80943E4
+
+ thumb_func_start sub_8094428
+sub_8094428: @ 8094428
+ push {lr}
+ ldr r0, _08094440
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _0809443C
+ ldr r0, _08094444
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+_0809443C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094440: .4byte 0x02000000
+_08094444: .4byte gOtherText_BattleTowerWinRecord
+ thumb_func_end sub_8094428
+
+ thumb_func_start sub_8094448
+sub_8094448: @ 8094448
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, _08094494
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _0809448C
+ adds r0, r4, 0
+ adds r0, 0x7C
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C44
+ mov r0, sp
+ movs r1, 0x70
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_80729D8
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C44
+ mov r0, sp
+ movs r1, 0x95
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_80729D8
+_0809448C:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094494: .4byte 0x02000000
+ thumb_func_end sub_8094448
+
+ thumb_func_start sub_8094498
+sub_8094498: @ 8094498
+ push {lr}
+ ldr r0, _080944B0
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ beq _080944AC
+ ldr r0, _080944B4
+ movs r1, 0x3
+ movs r2, 0xD
+ bl MenuPrint
+_080944AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080944B0: .4byte 0x02000000
+_080944B4: .4byte gOtherText_ContestRecord
+ thumb_func_end sub_8094498
+
+ thumb_func_start sub_80944B8
+sub_80944B8: @ 80944B8
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080944E4
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0
+ beq _080944DE
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x1C
+ movs r2, 0xD
+ bl sub_8072B4C
+_080944DE:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080944E4: .4byte 0x02000000
+ thumb_func_end sub_80944B8
+
+ thumb_func_start sub_80944E8
+sub_80944E8: @ 80944E8
+ push {lr}
+ ldr r0, _08094500
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0
+ beq _080944FC
+ ldr r0, _08094504
+ movs r1, 0x3
+ movs r2, 0xB
+ bl MenuPrint
+_080944FC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094500: .4byte 0x02000000
+_08094504: .4byte gOtherText_MixingRecord
+ thumb_func_end sub_80944E8
+
+ thumb_func_start sub_8094508
+sub_8094508: @ 8094508
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _08094534
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0809452E
+ adds r0, r1, 0
+ adds r0, 0x82
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x1C
+ movs r2, 0xB
+ bl sub_8072B4C
+_0809452E:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094534: .4byte 0x02000000
+ thumb_func_end sub_8094508
+
+ thumb_func_start sub_8094538
+sub_8094538: @ 8094538
+ push {lr}
+ ldr r0, _08094550
+ ldrb r0, [r0, 0xD]
+ cmp r0, 0
+ beq _0809454C
+ ldr r0, _08094554
+ movs r1, 0x3
+ movs r2, 0x9
+ bl MenuPrint
+_0809454C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094550: .4byte 0x02000000
+_08094554: .4byte gOtherText_TradeRecord
+ thumb_func_end sub_8094538
+
+ thumb_func_start sub_8094558
+sub_8094558: @ 8094558
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _08094584
+ ldrb r0, [r1, 0xD]
+ cmp r0, 0
+ beq _0809457E
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrh r1, [r0]
+ mov r0, sp
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x1C
+ movs r2, 0x9
+ bl sub_8072B4C
+_0809457E:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094584: .4byte 0x02000000
+ thumb_func_end sub_8094558
+
+ thumb_func_start unref_sub_8094588
+unref_sub_8094588: @ 8094588
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r4, _080945B4
+ ldr r0, _080945B8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _0809459E
+ ldr r4, _080945BC
+_0809459E:
+ lsls r1, r3, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080945B4: .4byte gOtherText_Boy
+_080945B8: .4byte gSaveBlock2
+_080945BC: .4byte gOtherText_Girl
+ thumb_func_end unref_sub_8094588
+
+ thumb_func_start sub_80945C0
+sub_80945C0: @ 80945C0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r6, 0xC
+ bl sub_809473C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080945D8
+ movs r6, 0xD
+_080945D8:
+ ldr r0, _08094658
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809465C
+ lsls r0, r5, 24
+ lsrs r0, 24
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r2, r5, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r4, 0
+ adds r3, 0xB
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuDrawTextWindow
+ lsls r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r5, r0, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r2
+ lsrs r4, r1, 16
+ asrs r1, 16
+ bl sub_8094778
+ lsls r5, 16
+ asrs r5, 16
+ lsls r1, r4, 16
+ asrs r4, r1, 16
+ movs r0, 0x80
+ lsls r0, 10
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_8094740
+ adds r1, r4, 0x4
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80947B0
+ adds r1, r4, 0x6
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80947F8
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8094844
+ b _080946C2
+ .align 2, 0
+_08094658: .4byte 0x00000801
+_0809465C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r2, r5, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r4, 0
+ adds r3, 0x9
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuDrawTextWindow
+ lsls r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r5, r0, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r2
+ lsrs r4, r1, 16
+ asrs r1, 16
+ bl sub_8094778
+ lsls r5, 16
+ asrs r5, 16
+ lsls r1, r4, 16
+ asrs r4, r1, 16
+ movs r0, 0x80
+ lsls r0, 10
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_8094740
+ adds r1, r4, 0x4
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80947B0
+ adds r4, 0x6
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8094844
+_080946C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80945C0
+
+ thumb_func_start sub_80946C8
+sub_80946C8: @ 80946C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r4, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r8, r5
+ movs r6, 0xC
+ bl sub_809473C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080946E8
+ movs r6, 0xD
+_080946E8:
+ ldr r0, _08094710
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08094714
+ lsls r0, r4, 24
+ lsrs r0, 24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r2, r4, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0xB
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ b _08094730
+ .align 2, 0
+_08094710: .4byte 0x00000801
+_08094714:
+ lsls r0, r7, 24
+ lsrs r0, 24
+ mov r2, r8
+ lsls r1, r2, 24
+ lsrs r1, 24
+ adds r2, r7, r6
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, r8
+ adds r3, 0x9
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+_08094730:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80946C8
+
+ thumb_func_start sub_809473C
+sub_809473C: @ 809473C
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_809473C
+
+ thumb_func_start sub_8094740
+sub_8094740: @ 8094740
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08094770
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r2, r5, 0
+ bl MenuPrint
+ ldr r0, _08094774
+ adds r4, 0xC
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094770: .4byte gOtherText_Player
+_08094774: .4byte gSaveBlock2
+ thumb_func_end sub_8094740
+
+ thumb_func_start sub_8094778
+sub_8094778: @ 8094778
+ push {r4,r5,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080947AC
+ ldrb r1, [r0, 0x14]
+ mov r0, sp
+ bl sub_80FBFF8
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl MenuPrint
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080947AC: .4byte gMapHeader
+ thumb_func_end sub_8094778
+
+ thumb_func_start sub_80947B0
+sub_80947B0: @ 80947B0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _080947F4
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r2, r5, 0
+ bl MenuPrint
+ bl GetBadgeCount
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ adds r4, 0xC
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080947F4: .4byte gOtherText_Badges
+ thumb_func_end sub_80947B0
+
+ thumb_func_start sub_80947F8
+sub_80947F8: @ 80947F8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08094840
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r2, r5, 0
+ bl MenuPrint
+ bl GetPokedexSeenCount
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0xC
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094840: .4byte gOtherText_Pokedex
+ thumb_func_end sub_80947F8
+
+ thumb_func_start sub_8094844
+sub_8094844: @ 8094844
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08094888
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r2, r5, 0
+ bl MenuPrint
+ ldr r0, _0809488C
+ ldrh r1, [r0, 0xE]
+ ldrb r2, [r0, 0x10]
+ mov r0, sp
+ movs r3, 0x1
+ bl FormatPlayTime
+ adds r4, 0xC
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094888: .4byte gOtherText_PlayTime
+_0809488C: .4byte gSaveBlock2
+ thumb_func_end sub_8094844
+
+ thumb_func_start GetBadgeCount
+GetBadgeCount: @ 8094890
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _080948BC
+_08094896:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080948AA
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080948AA:
+ adds r4, 0x1
+ ldr r0, _080948C0
+ cmp r4, r0
+ ble _08094896
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080948BC: .4byte 0x00000807
+_080948C0: .4byte 0x0000080e
+ thumb_func_end GetBadgeCount
+
+ thumb_func_start GetPokedexSeenCount
+GetPokedexSeenCount: @ 80948C4
+ push {lr}
+ bl sub_806912C
+ cmp r0, 0
+ beq _080948D6
+ movs r0, 0x1
+ bl pokedex_count
+ b _080948DC
+_080948D6:
+ movs r0, 0x1
+ bl sub_8090F68
+_080948DC:
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end GetPokedexSeenCount
+
+ thumb_func_start FormatPlayTime
+FormatPlayTime: @ 80948E4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r4, 16
+ lsrs r4, 16
+ bl ConvertIntToDecimalString
+ adds r5, r0, 0
+ movs r0, 0
+ strb r0, [r5]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0
+ beq _0809490E
+ movs r0, 0xF0
+ strb r0, [r5, 0x1]
+ b _08094910
+_0809490E:
+ strb r4, [r5, 0x1]
+_08094910:
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end FormatPlayTime
+
+ thumb_func_start unref_sub_8094928
+unref_sub_8094928: @ 8094928
+ push {lr}
+ ldr r1, _08094938
+ ldr r2, _0809493C
+ bl memcpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094938: .4byte gPokemonStorage
+_0809493C: .4byte 0x000083d0
+ thumb_func_end unref_sub_8094928
+
+ thumb_func_start unref_sub_8094940
+unref_sub_8094940: @ 8094940
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08094950
+ ldr r2, _08094954
+ bl memcpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094950: .4byte gPokemonStorage
+_08094954: .4byte 0x000083d0
+ thumb_func_end unref_sub_8094940
+
+ thumb_func_start sub_8094958
+sub_8094958: @ 8094958
+ push {r4,lr}
+ ldr r4, _08094974
+ bl sub_803FBBC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8094998
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094974: .4byte gUnknown_02038470
+ thumb_func_end sub_8094958
+
+ thumb_func_start sub_8094978
+sub_8094978: @ 8094978
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r3, _08094994
+ adds r0, r3
+ bl sub_8094A74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094994: .4byte 0x0201606c
+ thumb_func_end sub_8094978
+
+ thumb_func_start sub_8094998
+sub_8094998: @ 8094998
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080949CE
+ cmp r4, 0
+ beq _080949C0
+ movs r0, 0x30
+ strb r0, [r6]
+ movs r0, 0x45
+ strb r0, [r6, 0x1]
+ movs r0, 0x12
+ strb r0, [r6, 0x2]
+ b _08094A68
+_080949C0:
+ movs r0, 0x3
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x45
+ strb r0, [r6, 0x2]
+ b _08094A68
+_080949CE:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08094A0C
+ movs r5, 0x1
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ mov r2, sp
+ ldr r1, _08094A08
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r4, 0
+ mov r1, sp
+_080949F2:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _08094A00
+ mov r2, sp
+ adds r0, r2, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_08094A00:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _080949F2
+ b _08094A50
+ .align 2, 0
+_08094A08: .4byte gUnknown_02024A6A
+_08094A0C:
+ movs r5, 0x2
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ mov r1, sp
+ ldr r4, _08094A70
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1]
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ mov r1, sp
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1, 0x1]
+ movs r4, 0
+_08094A36:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _08094A4A
+ ldrb r0, [r1, 0x1]
+ cmp r4, r0
+ beq _08094A4A
+ mov r2, sp
+ adds r0, r2, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_08094A4A:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08094A36
+_08094A50:
+ movs r4, 0
+ mov r3, sp
+_08094A54:
+ adds r0, r6, r4
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r2, [r3, 0x1]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08094A54
+_08094A68:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094A70: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8094998
+
+ thumb_func_start sub_8094A74
+sub_8094A74: @ 8094A74
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r0, r2, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08094A9C
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ b _08094AA8
+_08094A9C:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x3
+_08094AA8:
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094ADC
+ cmp r7, 0
+ beq _08094ACE
+ movs r0, 0x30
+ strb r0, [r5]
+ movs r0, 0x45
+ strb r0, [r5, 0x1]
+ movs r0, 0x12
+ strb r0, [r5, 0x2]
+ b _08094B5E
+_08094ACE:
+ movs r0, 0x3
+ strb r0, [r5]
+ movs r0, 0x12
+ strb r0, [r5, 0x1]
+ movs r0, 0x45
+ strb r0, [r5, 0x2]
+ b _08094B5E
+_08094ADC:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08094B14
+ movs r3, 0x1
+ mov r2, sp
+ ldr r1, _08094B10
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r4, 0
+ mov r1, sp
+_08094AF8:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _08094B06
+ mov r2, sp
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r3, 0x1
+_08094B06:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08094AF8
+ b _08094B46
+ .align 2, 0
+_08094B10: .4byte gUnknown_02024A6A
+_08094B14:
+ movs r3, 0x2
+ mov r1, sp
+ ldr r2, _08094B68
+ lsls r0, r4, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ lsls r0, r6, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x1]
+ movs r4, 0
+_08094B2C:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _08094B40
+ ldrb r0, [r1, 0x1]
+ cmp r4, r0
+ beq _08094B40
+ mov r2, sp
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r3, 0x1
+_08094B40:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08094B2C
+_08094B46:
+ movs r4, 0
+ mov r3, sp
+_08094B4A:
+ adds r0, r5, r4
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r2, [r3, 0x1]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08094B4A
+_08094B5E:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094B68: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8094A74
+
+ thumb_func_start sub_8094B6C
+sub_8094B6C: @ 8094B6C
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r7, 0
+ bl sub_806B528
+ lsls r0, 24
+ cmp r0, 0
+ beq _08094C16
+ lsls r0, r4, 1
+ adds r0, r4
+ ldr r1, _08094BCC
+ adds r4, r0, r1
+ movs r2, 0
+ add r6, sp
+ mov r12, r6
+ movs r6, 0xF
+ mov r3, sp
+_08094B9A:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ lsrs r0, 4
+ strb r0, [r3]
+ adds r3, 0x1
+ ldrb r1, [r1]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08094B9A
+ mov r0, r12
+ ldrb r3, [r0]
+ movs r2, 0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _08094BD0
+ mov r0, sp
+ ldrb r7, [r0]
+ strb r3, [r0]
+ b _08094BE4
+ .align 2, 0
+_08094BCC: .4byte 0x0201606c
+_08094BD0:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _08094BE4
+ mov r0, sp
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, r5
+ bne _08094BD0
+ adds r7, r0, 0
+ strb r3, [r1]
+_08094BE4:
+ cmp r2, 0x6
+ beq _08094C16
+ mov r0, r12
+ strb r7, [r0]
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ orrs r0, r1
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x3]
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x5]
+ orrs r0, r1
+ strb r0, [r4, 0x2]
+_08094C16:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094B6C
+
+ thumb_func_start sub_8094C20
+sub_8094C20: @ 8094C20
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1
+ ands r1, r2
+ lsrs r2, r0, 25
+ cmp r1, 0
+ beq _08094C40
+ ldr r0, _08094C3C
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ b _08094C48
+ .align 2, 0
+_08094C3C: .4byte gUnknown_02038470
+_08094C40:
+ ldr r0, _08094C50
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+_08094C48:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094C50: .4byte gUnknown_02038470
+ thumb_func_end sub_8094C20
+
+ thumb_func_start sub_8094C54
+sub_8094C54: @ 8094C54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r1, 0x1
+ ands r1, r3
+ lsrs r3, r0, 25
+ cmp r1, 0
+ beq _08094C7C
+ ldr r0, _08094C78
+ adds r0, r3, r0
+ ldrb r2, [r0]
+ movs r1, 0xF0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r0]
+ b _08094C8C
+ .align 2, 0
+_08094C78: .4byte gUnknown_02038470
+_08094C7C:
+ ldr r2, _08094C94
+ adds r2, r3, r2
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ lsls r1, r4, 4
+ orrs r0, r1
+ strb r0, [r2]
+_08094C8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094C94: .4byte gUnknown_02038470
+ thumb_func_end sub_8094C54
+
+ thumb_func_start sub_8094C98
+sub_8094C98: @ 8094C98
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ bl sub_8094C20
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8094C20
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_8094C54
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8094C54
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094C98
+
+ thumb_func_start pokemon_order_func
+pokemon_order_func: @ 8094CD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ movs r2, 0
+ ldr r5, _08094CFC
+_08094CE0:
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ cmp r0, r4
+ beq _08094CF8
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, r4
+ bne _08094D00
+_08094CF8:
+ adds r0, r2, 0
+ b _08094D12
+ .align 2, 0
+_08094CFC: .4byte gUnknown_02038470
+_08094D00:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _08094CE0
+ movs r0, 0
+_08094D12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_order_func
+
+ thumb_func_start pokemon_change_order
+pokemon_change_order: @ 8094D18
+ push {r4,r5,lr}
+ ldr r0, _08094D58
+ ldr r1, _08094D5C
+ movs r2, 0x96
+ lsls r2, 2
+ bl memcpy
+ movs r4, 0
+ movs r5, 0x64
+_08094D2A:
+ adds r0, r4, 0
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ ldr r1, _08094D5C
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r5
+ ldr r2, _08094D58
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08094D2A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094D58: .4byte 0x0201b000
+_08094D5C: .4byte gPlayerParty
+ thumb_func_end pokemon_change_order
+
+ thumb_func_start sub_8094D60
+sub_8094D60: @ 8094D60
+ push {r4,r5,lr}
+ ldr r4, _08094DA8
+ add sp, r4
+ ldr r1, _08094DAC
+ movs r2, 0x96
+ lsls r2, 2
+ mov r0, sp
+ bl memcpy
+ movs r4, 0
+ movs r5, 0x64
+_08094D76:
+ adds r0, r4, 0
+ bl sub_8094C20
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ ldr r1, _08094DAC
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r5
+ add r1, sp
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08094D76
+ movs r3, 0x96
+ lsls r3, 2
+ add sp, r3
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094DA8: .4byte 0xfffffda8
+_08094DAC: .4byte gPlayerParty
+ thumb_func_end sub_8094D60
+
+ thumb_func_start unref_sub_8094DB0
+unref_sub_8094DB0: @ 8094DB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0x1
+ movs r7, 0x64
+ ldr r0, _08094E08
+ mov r8, r0
+_08094DBE:
+ adds r0, r6, 0
+ bl sub_8094C20
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08094E0C
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08094E0C
+ movs r0, 0
+ bl sub_8094C20
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ adds r1, r6, 0
+ bl sub_8094C98
+ adds r0, r4, 0
+ muls r0, r7
+ add r0, r8
+ adds r1, r5, 0
+ bl sub_806E6F0
+ b _08094E16
+ .align 2, 0
+_08094E08: .4byte gPlayerParty
+_08094E0C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _08094DBE
+_08094E16:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8094DB0
+
+ thumb_func_start sub_8094E20
+sub_8094E20: @ 8094E20
+ push {lr}
+ ldr r3, _08094E44
+ ldrb r1, [r3, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r3, 0x8]
+ ldr r1, _08094E48
+ strb r0, [r1]
+ bl nullsub_14
+ bl pokemon_change_order
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_806AFAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094E44: .4byte gPaletteFade
+_08094E48: .4byte gUnknown_02038473
+ thumb_func_end sub_8094E20
+
+ thumb_func_start sub_8094E4C
+sub_8094E4C: @ 8094E4C
+ push {lr}
+ movs r0, 0x3
+ bl sub_8094E20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094E4C
+
+ thumb_func_start sub_8094E58
+sub_8094E58: @ 8094E58
+ push {r4,r5,lr}
+ ldr r1, _08094E78
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _08094E6E
+ b _08095048
+_08094E6E:
+ lsls r0, 2
+ ldr r1, _08094E7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08094E78: .4byte 0x0201b000
+_08094E7C: .4byte _08094E80
+ .align 2, 0
+_08094E80:
+ .4byte _08094EAC
+ .4byte _08094F28
+ .4byte _08094F3C
+ .4byte _08094F4A
+ .4byte _08094F6C
+ .4byte _08094F80
+ .4byte _08094F94
+ .4byte _08094FA8
+ .4byte _08094FBC
+ .4byte _08094FD0
+ .4byte _08095000
+_08094EAC:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094EDC
+ ldr r1, _08094ED4
+ ldr r0, _08094ED8
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x6
+ bne _08094EEC
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094ED4: .4byte 0x0201b000
+_08094ED8: .4byte 0x00000266
+_08094EDC:
+ ldr r1, _08094F10
+ ldr r0, _08094F14
+ adds r4, r1, r0
+ ldrh r2, [r4]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x5
+ bgt _08094F1C
+_08094EEC:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0
+ ldrsh r3, [r4, r2]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08094F18
+ adds r2, r3
+ bl sub_806D90C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08095048
+ .align 2, 0
+_08094F10: .4byte 0x0201b000
+_08094F14: .4byte 0x00000266
+_08094F18: .4byte gPlayerParty
+_08094F1C:
+ movs r0, 0
+ strh r0, [r4]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+_08094F28:
+ bl sub_806DA98
+ ldr r1, _08094F38
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F38: .4byte 0x0201b000
+_08094F3C:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ b _08094FE6
+_08094F4A:
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ ldr r1, _08094F68
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08094FE2
+ b _08094FF8
+ .align 2, 0
+_08094F68: .4byte 0x00000266
+_08094F6C:
+ bl sub_806E334
+ ldr r1, _08094F7C
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094F7C: .4byte 0x0201b000
+_08094F80:
+ bl sub_806E0C4
+ ldr r1, _08094F90
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094F90: .4byte 0x0201b000
+_08094F94:
+ bl sub_806E53C
+ ldr r1, _08094FA4
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08094FEC
+ .align 2, 0
+_08094FA4: .4byte 0x0201b000
+_08094FA8:
+ bl nullsub_13
+ ldr r1, _08094FB8
+ movs r3, 0x99
+ lsls r3, 2
+ adds r1, r3
+ b _08094FEC
+ .align 2, 0
+_08094FB8: .4byte 0x0201b000
+_08094FBC:
+ bl sub_806E6C8
+ ldr r1, _08094FCC
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08094FEC
+ .align 2, 0
+_08094FCC: .4byte 0x0201b000
+_08094FD0:
+ ldr r1, _08094FF4
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08094FF8
+_08094FE2:
+ movs r0, 0
+ strh r0, [r5]
+_08094FE6:
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+_08094FEC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08095048
+ .align 2, 0
+_08094FF4: .4byte 0x00000266
+_08094FF8:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _08095048
+_08095000:
+ ldr r0, _08095024
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0809503C
+ ldr r0, _08095028
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095034
+ ldr r0, _0809502C
+ ldr r3, _08095030
+ adds r0, r3
+ movs r1, 0xFF
+ strb r1, [r0]
+ b _0809503C
+ .align 2, 0
+_08095024: .4byte gUnknown_02038473
+_08095028: .4byte word_203855E
+_0809502C: .4byte 0x0201b000
+_08095030: .4byte 0x00000259
+_08095034:
+ ldr r0, _08095040
+ ldr r1, _08095044
+ adds r0, r1
+ strb r4, [r0]
+_0809503C:
+ movs r0, 0x1
+ b _0809504A
+ .align 2, 0
+_08095040: .4byte 0x0201b000
+_08095044: .4byte 0x00000259
+_08095048:
+ movs r0, 0
+_0809504A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094E58
+
+ thumb_func_start sub_8095050
+sub_8095050: @ 8095050
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809508C
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080950C8
+ ldr r0, _08095090
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _0809509C
+ ldr r3, _08095094
+ ldr r2, _08095098
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ b _080950DE
+ .align 2, 0
+_0809508C: .4byte gPlayerParty
+_08095090: .4byte gUnknown_02038473
+_08095094: .4byte gTasks
+_08095098: .4byte 0x0201b000
+_0809509C:
+ ldr r3, _080950C0
+ ldr r2, _080950C4
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0x12]
+ b _080950EC
+ .align 2, 0
+_080950C0: .4byte gTasks
+_080950C4: .4byte 0x0201b000
+_080950C8:
+ ldr r3, _08095108
+ ldr r2, _0809510C
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x2
+_080950DE:
+ strh r4, [r0, 0x10]
+ ldrb r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r4, [r0, 0x12]
+_080950EC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x10]
+ ldr r1, _08095110
+ ldr r2, _08095114
+ movs r3, 0
+ bl sub_806E750
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095108: .4byte gTasks
+_0809510C: .4byte 0x0201b000
+_08095110: .4byte gUnknown_083B5FF4
+_08095114: .4byte gUnknown_083B5FCC
+ thumb_func_end sub_8095050
+
+ thumb_func_start sub_8095118
+sub_8095118: @ 8095118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095150
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809512C
+ b _08095268
+_0809512C:
+ ldr r0, _08095154
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08095164
+ ldr r5, _08095158
+ ldrh r0, [r5]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08095164
+ ldr r0, _0809515C
+ ldrh r1, [r5]
+ ldr r2, _08095160
+ ldr r3, [r0]
+ b _080951AA
+ .align 2, 0
+_08095150: .4byte gPaletteFade
+_08095154: .4byte gUnknown_02038473
+_08095158: .4byte word_203855E
+_0809515C: .4byte gUnknown_03004AE4
+_08095160: .4byte sub_80952E4
+_08095164:
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08095178
+ cmp r0, 0x2
+ beq _08095214
+ b _08095268
+_08095178:
+ ldr r0, _080951B4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080951C8
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080951B8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809521C
+ bl sub_806D5A4
+ ldr r3, _080951BC
+ ldr r0, _080951C0
+ ldrh r1, [r0]
+ ldr r2, _080951C4
+ ldr r3, [r3]
+_080951AA:
+ adds r0, r4, 0
+ bl _call_via_r3
+ b _08095268
+ .align 2, 0
+_080951B4: .4byte gUnknown_02038473
+_080951B8: .4byte gPlayerParty
+_080951BC: .4byte gUnknown_03004AE4
+_080951C0: .4byte word_203855E
+_080951C4: .4byte sub_80952E4
+_080951C8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08095204
+ adds r0, r1
+ ldr r1, _08095208
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8095050
+ ldr r1, _0809520C
+ ldr r2, _08095210
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ b _08095268
+ .align 2, 0
+_08095204: .4byte gPlayerParty
+_08095208: .4byte gStringVar1
+_0809520C: .4byte sub_8095408
+_08095210: .4byte sub_8095118
+_08095214:
+ ldr r5, _08095224
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08095228
+_0809521C:
+ movs r0, 0x20
+ bl PlaySE
+ b _08095268
+ .align 2, 0
+_08095224: .4byte gUnknown_02038473
+_08095228:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _08095254
+ ldr r1, _08095248
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0809524C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095250
+ b _08095266
+ .align 2, 0
+_08095248: .4byte gUnknown_0202E8F4
+_0809524C: .4byte gTasks
+_08095250: .4byte sub_80952E4
+_08095254:
+ ldr r1, _08095270
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08095274
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095278
+_08095266:
+ str r1, [r0]
+_08095268:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095270: .4byte gUnknown_0202E8F4
+_08095274: .4byte gTasks
+_08095278: .4byte sub_809527C
+ thumb_func_end sub_8095118
+
+ thumb_func_start sub_809527C
+sub_809527C: @ 809527C
+ 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, _080952AC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080952B0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952AC: .4byte gTasks
+_080952B0: .4byte sub_80952B4
+ thumb_func_end sub_809527C
+
+ thumb_func_start sub_80952B4
+sub_80952B4: @ 80952B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080952D6
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080952E0
+ bl SetMainCallback2
+_080952D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952DC: .4byte gPaletteFade
+_080952E0: .4byte sub_802E414
+ thumb_func_end sub_80952B4
+
+ thumb_func_start sub_80952E4
+sub_80952E4: @ 80952E4
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080952FC
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08095300
+ adds r0, r4, 0
+ bl sub_809527C
+ b _0809531E
+ .align 2, 0
+_080952FC: .4byte gUnknown_0202E8F4
+_08095300:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08095328
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809532C
+ str r1, [r0]
+_0809531E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095328: .4byte gTasks
+_0809532C: .4byte sub_8095330
+ thumb_func_end sub_80952E4
+
+ thumb_func_start sub_8095330
+sub_8095330: @ 8095330
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08095358
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095350
+ bl sub_8094D60
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_80A6DCC
+_08095350:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095358: .4byte gPaletteFade
+ thumb_func_end sub_8095330
+
+ thumb_func_start sub_809535C
+sub_809535C: @ 809535C
+ push {lr}
+ ldr r2, _08095380
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08095384
+ movs r0, 0x1
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08095388
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095380: .4byte gPaletteFade
+_08095384: .4byte sub_8095118
+_08095388: .4byte sub_809538C
+ thumb_func_end sub_809535C
+
+ thumb_func_start sub_809538C
+sub_809538C: @ 809538C
+ push {r4,r5,lr}
+ ldr r4, _080953D8
+ ldr r5, _080953DC
+_08095392:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080953F4
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080953E0
+ adds r0, r1
+ ldr r1, _080953E4
+ bl GetMonNickname
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_8095050
+ ldrb r0, [r4]
+ ldr r1, _080953E8
+ ldr r2, _080953EC
+ bl SetTaskFuncWithFollowupFunc
+ ldr r0, _080953F0
+ bl SetMainCallback2
+ b _08095400
+ .align 2, 0
+_080953D8: .4byte 0x0201b260
+_080953DC: .4byte gUnknown_020384F0
+_080953E0: .4byte gPlayerParty
+_080953E4: .4byte gStringVar1
+_080953E8: .4byte sub_8095408
+_080953EC: .4byte sub_8095118
+_080953F0: .4byte sub_806AEDC
+_080953F4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095392
+_08095400:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809538C
+
+ thumb_func_start sub_8095408
+sub_8095408: @ 8095408
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _0809543C
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080954B8
+ ldr r2, _08095440
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095444
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080954B8
+ .align 2, 0
+_0809543C: .4byte gPaletteFade
+_08095440: .4byte gMain
+_08095444:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809545A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080954B8
+_0809545A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080954A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08095498
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _0809549C
+ ldr r6, _080954A0
+ bl GetMenuCursorPos
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E81C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl _call_via_r1
+ b _080954B8
+ .align 2, 0
+_08095498: .4byte gTasks
+_0809549C: .4byte gUnknown_083B5FF4
+_080954A0: .4byte gUnknown_083B5FCC
+_080954A4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080954B8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80958C4
+_080954B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095408
+
+ thumb_func_start sub_80954C0
+sub_80954C0: @ 80954C0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080954D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080954D4
+ adds r0, r1, 0
+ bl sub_80958C4
+_080954D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080954D8: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_80954C0
+
+ thumb_func_start sub_80954DC
+sub_80954DC: @ 80954DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0809552C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08095522
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08095530
+ ldr r1, _08095534
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08095538
+ ldr r1, _0809553C
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08095540
+ movs r1, 0x4
+ str r1, [sp]
+ adds r1, r5, 0
+ bl sub_809D8BC
+_08095522:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809552C: .4byte gPaletteFade
+_08095530: .4byte 0x0201b000
+_08095534: .4byte 0x00000262
+_08095538: .4byte gPlayerParty
+_0809553C: .4byte gPlayerPartyCount
+_08095540: .4byte sub_809535C
+ thumb_func_end sub_80954DC
+
+ thumb_func_start sub_8095544
+sub_8095544: @ 8095544
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0809557C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095580
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809557C: .4byte gTasks
+_08095580: .4byte sub_80954DC
+ thumb_func_end sub_8095544
+
+ thumb_func_start sub_8095584
+sub_8095584: @ 8095584
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080955F8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ ldr r1, _080955FC
+ bl sub_806E7D0
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08095610
+ cmp r5, 0x1
+ beq _080955C6
+ cmp r5, 0x4
+ beq _080955C6
+ cmp r5, 0x5
+ bne _08095610
+_080955C6:
+ bl sub_806D5A4
+ ldr r4, _08095600
+ bl sub_8040D08
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _08095604
+ ldr r1, _08095608
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _080955F8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809560C
+ b _0809589A
+ .align 2, 0
+_080955F8: .4byte gTasks
+_080955FC: .4byte gUnknown_083B5FF4
+_08095600: .4byte gStringVar1
+_08095604: .4byte gStringVar4
+_08095608: .4byte gOtherText_CantSwitchPokeWithYours
+_0809560C: .4byte sub_80954C0
+_08095610:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095654
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0809566C
+ bl sub_806D5A4
+ ldr r1, _08095658
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r4, _0809565C
+ ldr r1, _08095660
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095664
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095668
+ b _0809589A
+ .align 2, 0
+_08095654: .4byte gPlayerParty
+_08095658: .4byte gStringVar1
+_0809565C: .4byte gStringVar4
+_08095660: .4byte gOtherText_NoEnergyLeft
+_08095664: .4byte gTasks
+_08095668: .4byte sub_80954C0
+_0809566C:
+ movs r4, 0
+ ldr r0, _08095678
+ lsls r1, r6, 2
+ mov r8, r1
+ b _080956A8
+ .align 2, 0
+_08095678: .4byte gUnknown_02024A68
+_0809567C:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080956A0
+ adds r0, r5, 0
+ bl sub_8094C20
+ lsls r0, 24
+ ldr r2, _080956EC
+ lsls r1, r4, 1
+ adds r1, r2
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080956A0
+ b _08095808
+_080956A0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080956F0
+_080956A8:
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0809567C
+ movs r2, 0x64
+ mov r9, r2
+ mov r0, r9
+ muls r0, r5
+ ldr r1, _080956F4
+ mov r10, r1
+ adds r7, r0, r1
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08095708
+ bl sub_806D5A4
+ ldr r4, _080956F8
+ ldr r1, _080956FC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095700
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095704
+ b _0809589A
+ .align 2, 0
+_080956EC: .4byte gUnknown_02024A6A
+_080956F0: .4byte gUnknown_02024A68
+_080956F4: .4byte gPlayerParty
+_080956F8: .4byte gStringVar4
+_080956FC: .4byte gOtherText_EGGCantBattle
+_08095700: .4byte gTasks
+_08095704: .4byte sub_80954C0
+_08095708:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _0809574C
+ ldr r2, _08095750
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08095768
+ bl sub_806D5A4
+ ldr r1, _08095754
+ adds r0, r7, 0
+ bl GetMonNickname
+ ldr r4, _08095758
+ ldr r1, _0809575C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095760
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095764
+ b _0809589A
+ .align 2, 0
+_0809574C: .4byte 0x02000000
+_08095750: .4byte 0x0001609d
+_08095754: .4byte gStringVar1
+_08095758: .4byte gStringVar4
+_0809575C: .4byte gOtherText_AlreadySelected
+_08095760: .4byte gTasks
+_08095764: .4byte sub_80954C0
+_08095768:
+ ldr r0, _08095790
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080957A0
+ bl sub_806D5A4
+ bl sub_8040B8C
+ ldr r0, _08095794
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095798
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809579C
+ b _0809589A
+ .align 2, 0
+_08095790: .4byte gUnknown_02038473
+_08095794: .4byte gStringVar4
+_08095798: .4byte gTasks
+_0809579C: .4byte sub_80954C0
+_080957A0:
+ cmp r0, 0x2
+ bne _08095854
+ ldr r0, _080957EC
+ ldrb r4, [r0]
+ bl sub_806D5A4
+ ldr r0, _080957F0
+ lsls r4, 1
+ adds r4, r0
+ ldrb r0, [r4]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r10
+ ldr r1, _080957F4
+ bl GetMonNickname
+ ldr r4, _080957F8
+ ldr r1, _080957FC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _08095800
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095804
+ b _0809589A
+ .align 2, 0
+_080957EC: .4byte gUnknown_02024E6C
+_080957F0: .4byte gUnknown_02024A6A
+_080957F4: .4byte gStringVar1
+_080957F8: .4byte gStringVar4
+_080957FC: .4byte gOtherText_CantBeSwitched
+_08095800: .4byte gTasks
+_08095804: .4byte sub_80954C0
+_08095808:
+ bl sub_806D5A4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809583C
+ adds r0, r1
+ ldr r1, _08095840
+ bl GetMonNickname
+ ldr r4, _08095844
+ ldr r1, _08095848
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r1, _0809584C
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08095850
+ b _0809589A
+ .align 2, 0
+_0809583C: .4byte gPlayerParty
+_08095840: .4byte gStringVar1
+_08095844: .4byte gStringVar4
+_08095848: .4byte gOtherText_AlreadyBattle
+_0809584C: .4byte gTasks
+_08095850: .4byte sub_80954C0
+_08095854:
+ adds r0, r5, 0
+ bl sub_8094C20
+ ldr r1, _080958AC
+ strb r0, [r1]
+ ldr r1, _080958B0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080958B4
+ ldr r0, _080958B8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8094C98
+ mov r0, r9
+ muls r0, r4
+ add r0, r10
+ adds r1, r7, 0
+ bl sub_806E6F0
+ ldr r1, _080958BC
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080958C0
+_0809589A:
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080958AC: .4byte gUnknown_0202E8F5
+_080958B0: .4byte gUnknown_0202E8F4
+_080958B4: .4byte gUnknown_02024A6A
+_080958B8: .4byte gUnknown_02024E6C
+_080958BC: .4byte gTasks
+_080958C0: .4byte sub_809527C
+ thumb_func_end sub_8095584
+
+ thumb_func_start sub_80958C4
+sub_80958C4: @ 80958C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072DEC
+ ldr r0, _080958FC
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ ldr r1, _08095900
+ bl sub_806E7D0
+ ldrh r0, [r4, 0x12]
+ strh r0, [r4, 0x10]
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080958FC: .4byte gTasks
+_08095900: .4byte gUnknown_083B5FF4
+ thumb_func_end sub_80958C4
+
+ thumb_func_start sub_8095904
+sub_8095904: @ 8095904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp]
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x3C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, [sp]
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _08095988
+ movs r5, 0
+ cmp r5, r8
+ bcs _08095A2E
+_0809593E:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ ldrb r2, [r0]
+ ldr r0, _08095980
+ ands r0, r2
+ lsls r0, 6
+ movs r1, 0xF
+ ands r2, r1
+ lsls r2, 5
+ adds r0, r2
+ ldr r1, _08095984
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r3, [sp, 0x4]
+ adds r1, r7, r3
+ movs r2, 0x10
+ bl CpuSet
+ adds r7, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _0809593E
+ b _08095A2E
+ .align 2, 0
+_08095980: .4byte 0x0000fff0
+_08095984: .4byte gFont3LatinGlyphs
+_08095988:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 28
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r2, r8
+ lsls r0, r2, 21
+ movs r1, 0
+ lsrs r0, 1
+ str r0, [sp, 0x10]
+_0809599E:
+ movs r5, 0
+ ldr r3, [sp, 0x4]
+ adds r3, r7, r3
+ str r3, [sp, 0x14]
+ adds r0, r1, 0x1
+ str r0, [sp, 0x18]
+ cmp r5, r8
+ bcs _08095A12
+ movs r2, 0xF
+ mov r12, r2
+ lsls r1, 9
+ ldr r0, _08095A40
+ adds r1, r0
+ mov r10, r1
+_080959BA:
+ ldr r3, [sp]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ ldr r0, _08095A44
+ ands r0, r1
+ lsls r0, 6
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 5
+ adds r0, r1
+ mov r3, r10
+ adds r4, r0, r3
+ movs r6, 0
+ adds r5, 0x1
+_080959D6:
+ ldrb r0, [r4]
+ movs r3, 0xF0
+ ands r3, r0
+ mov r2, r12
+ ands r2, r0
+ cmp r3, 0
+ bne _080959E6
+ ldr r3, [sp, 0xC]
+_080959E6:
+ cmp r2, 0
+ bne _080959EC
+ ldr r2, [sp, 0x8]
+_080959EC:
+ mov r0, r9
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, [sp, 0x40]
+ adds r0, r1, r0
+ orrs r3, r2
+ strb r3, [r0]
+ adds r4, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _080959D6
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080959BA
+_08095A12:
+ ldr r0, [sp, 0x40]
+ adds r1, r7, 0
+ ldr r3, [sp, 0x10]
+ lsrs r2, r3, 16
+ bl CpuSet
+ ldr r7, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _0809599E
+_08095A2E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095A40: .4byte gFont3LatinGlyphs
+_08095A44: .4byte 0x0000fff0
+ thumb_func_end sub_8095904
+
+ thumb_func_start unref_sub_8095A48
+unref_sub_8095A48: @ 8095A48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+_08095A60:
+ movs r3, 0
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _08095ACE
+_08095A6C:
+ mov r0, sp
+ adds r0, r3
+ adds r0, 0x8
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bhi _08095AA8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08095A6C
+ cmp r3, 0
+ beq _08095ACE
+ movs r6, 0x1
+ cmp r3, 0x3
+ bhi _08095AA8
+ movs r2, 0
+_08095A96:
+ adds r0, r3, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ add r0, sp
+ adds r0, 0x8
+ strb r2, [r0]
+ cmp r3, 0x3
+ bls _08095A96
+_08095AA8:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x8
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r7, [sp]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ mov r2, r8
+ movs r3, 0x80
+ bl sub_8095904
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ cmp r6, 0
+ beq _08095A60
+_08095ACE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8095A48
+
+ thumb_func_start sub_8095ADC
+sub_8095ADC: @ 8095ADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ movs r5, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_08095AF0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B20
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095B0C
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095B0C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095AF0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095B20: .4byte gUnknown_020300A4
+ thumb_func_end sub_8095ADC
+
+ thumb_func_start sub_8095B24
+sub_8095B24: @ 8095B24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r5, r0, 5
+_08095B36:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08095B54
+ adds r0, r1
+ adds r0, r5, r0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095B58
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _08095B66
+ .align 2, 0
+_08095B54: .4byte gUnknown_020300A4
+_08095B58:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _08095B36
+ movs r0, 0x1
+ negs r0, r0
+_08095B66:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095B24
+
+ thumb_func_start sub_8095B6C
+sub_8095B6C: @ 8095B6C
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0
+_08095B72:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095BB0
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095B9A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095B9A
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095B9A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095B72
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095BB0: .4byte gPlayerParty
+ thumb_func_end sub_8095B6C
+
+ thumb_func_start sub_8095BB4
+sub_8095BB4: @ 8095BB4
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r5, 0
+ movs r6, 0
+ lsrs r7, r0, 24
+_08095BBE:
+ cmp r5, r7
+ beq _08095BF6
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08095C0C
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08095BF6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08095BF6
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08095BF6:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08095BBE
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C0C: .4byte gPlayerParty
+ thumb_func_end sub_8095BB4
+
+ thumb_func_start sub_8095C10
+sub_8095C10: @ 8095C10
+ push {lr}
+ ldr r0, _08095C24
+ ldrb r0, [r0]
+ bl sub_8095BB4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C24: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8095C10
+
+ thumb_func_start sub_8095C28
+sub_8095C28: @ 8095C28
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_08095C2E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08095C5C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08095C46
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08095C46:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _08095C2E
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095C5C: .4byte gPlayerParty
+ thumb_func_end sub_8095C28
+
+ thumb_func_start unref_sub_8095C60
+unref_sub_8095C60: @ 8095C60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl StringCopy
+ adds r1, r0, 0
+ adds r5, r4
+ cmp r1, r5
+ bcs _08095C7E
+ movs r0, 0
+_08095C76:
+ strb r0, [r1]
+ adds r1, 0x1
+ cmp r1, r5
+ bcc _08095C76
+_08095C7E:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8095C60
+
+ thumb_func_start sub_8095C8C
+sub_8095C8C: @ 8095C8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ ldr r5, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ ldr r0, [sp, 0x28]
+ ldr r3, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r0, r9
+ lsls r0, 17
+ mov r9, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r6, r2
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r5
+ lsls r0, 1
+ adds r7, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _08095CFC
+ mov r0, r9
+ lsrs r0, 1
+ mov r9, r0
+ lsls r5, r3, 1
+_08095CE2:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl CpuSet
+ adds r6, 0x40
+ adds r7, r5
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _08095CE2
+_08095CFC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095C8C
+
+ thumb_func_start unref_sub_8095D08
+unref_sub_8095D08: @ 8095D08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r4, r2
+ lsls r3, 17
+ lsrs r0, r3, 16
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r0, r10
+ bcs _08095DB2
+ movs r6, 0x80
+ lsls r6, 5
+ mov r5, sp
+ ldr r7, _08095D74
+ lsrs r3, 17
+ mov r9, r3
+ mov r1, r9
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r1, r2
+ mov r9, r1
+_08095D4E:
+ adds r3, r4, 0
+ ldr r2, [sp, 0x4]
+ movs r1, 0x40
+ adds r1, r4
+ mov r8, r1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r2, r6
+ bhi _08095D78
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ str r2, [r7]
+ str r4, [r7, 0x4]
+ mov r0, r9
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _08095DA6
+ .align 2, 0
+_08095D74: .4byte 0x040000d4
+_08095D78:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _08095DC4
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ ldr r0, _08095DC8
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r6
+ subs r2, r6
+ cmp r2, r6
+ bhi _08095D78
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r2, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_08095DA6:
+ mov r4, r8
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r10
+ bcc _08095D4E
+_08095DB2:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095DC4: .4byte 0x040000d4
+_08095DC8: .4byte 0x81000800
+ thumb_func_end unref_sub_8095D08
+
+ thumb_func_start sub_8095DCC
+sub_8095DCC: @ 8095DCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r0, r3, 24
+ cmp r0, 0
+ beq _08095DE8
+ cmp r0, 0x2
+ bne _08095DEC
+_08095DE8:
+ movs r2, 0x1
+ b _08095DEE
+_08095DEC:
+ ldr r2, _08095E38
+_08095DEE:
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08095E44
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E10:
+ asrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08095E3C
+ asrs r0, r6, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E10
+ b _08095E90
+ .align 2, 0
+_08095E38: .4byte 0x0000ffff
+_08095E3C:
+ adds r0, r4, 0
+ b _08095E94
+_08095E40:
+ adds r0, r5, 0
+ b _08095E94
+_08095E44:
+ lsls r0, r1, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _08095E90
+ cmp r1, r7
+ bgt _08095E90
+_08095E5C:
+ asrs r5, r0, 16
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E80
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08095E40
+_08095E80:
+ asrs r0, r6, 16
+ adds r0, r5, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _08095E90
+ cmp r2, r7
+ ble _08095E5C
+_08095E90:
+ movs r0, 0x1
+ negs r0, r0
+_08095E94:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095DCC
+
+ thumb_func_start sub_8095EA0
+sub_8095EA0: @ 8095EA0
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095EA0
+
+ thumb_func_start sub_8095EB4
+sub_8095EB4: @ 8095EB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08095ED8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08095ECE
+ b _080960F4
+_08095ECE:
+ lsls r0, 2
+ ldr r1, _08095EDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08095ED8: .4byte gTasks
+_08095EDC: .4byte _08095EE0
+ .align 2, 0
+_08095EE0:
+ .4byte _08095EF4
+ .4byte _08095F1C
+ .4byte _08095F30
+ .4byte _08096042
+ .4byte _080960DC
+_08095EF4:
+ ldrb r0, [r4, 0xA]
+ bl sub_8096168
+ bl MenuDisplayMessageBox
+ ldr r1, _08095F18
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _08095F28
+ .align 2, 0
+_08095F18: .4byte gUnknown_083B600C
+_08095F1C:
+ bl sub_807D770
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095F28
+ b _080960F4
+_08095F28:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08095F30:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08095FC8
+ cmp r1, r0
+ bgt _08095F52
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08095F58
+ b _08095FE8
+_08095F52:
+ cmp r1, 0x3
+ beq _08095FC8
+ b _08095FE8
+_08095F58:
+ ldrh r3, [r4, 0xA]
+ strh r3, [r4, 0xE]
+ ldr r2, _08095FC0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F76
+ subs r0, r3, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08095F76
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+_08095F76:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08095F92
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08095F92
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08095F92:
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _08095FA2
+ b _080960F4
+_08095FA2:
+ strh r2, [r4, 0xA]
+ bl sub_8095EA0
+ ldr r0, _08095FC4
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ b _080960F4
+ .align 2, 0
+_08095FC0: .4byte gMain
+_08095FC4: .4byte gUnknown_083B600C
+_08095FC8:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080960F4
+_08095FE8:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _08096008
+ bl sub_8095C28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08096008
+ bl sub_8095EA0
+ ldr r0, _08096004
+ b _08096022
+ .align 2, 0
+_08096004: .4byte gPCText_PartyFull2
+_08096008:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08096034
+ bl sub_8095C28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08096034
+ bl sub_8095EA0
+ ldr r0, _08096030
+_08096022:
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_08096030: .4byte gPCText_OnlyOne
+_08096034:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080960F4
+_08096042:
+ ldr r0, _08096088
+ ldrh r1, [r0, 0x2E]
+ movs r3, 0x3
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080960B8
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08096090
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0809606A
+ strh r3, [r4, 0xA]
+_0809606A:
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ bl sub_8095EA0
+ ldr r1, _0809608C
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ b _080960C2
+ .align 2, 0
+_08096088: .4byte gMain
+_0809608C: .4byte gUnknown_083B600C
+_08096090:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080960F4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080960A8
+ strh r2, [r4, 0xA]
+_080960A8:
+ movs r0, 0x1
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+_080960B8:
+ bl sub_8095EA0
+ ldr r1, _080960D8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+_080960C2:
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080960F4
+ .align 2, 0
+_080960D8: .4byte gUnknown_083B600C
+_080960DC:
+ ldr r0, _080960FC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080960F4
+ ldrb r0, [r4, 0xC]
+ bl task_intro_29
+ adds r0, r5, 0
+ bl DestroyTask
+_080960F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080960FC: .4byte gPaletteFade
+ thumb_func_end sub_8095EB4
+
+ thumb_func_start sub_8096100
+sub_8096100: @ 8096100
+ push {lr}
+ ldr r0, _08096128
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809612C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096128: .4byte sub_8095EB4
+_0809612C: .4byte gTasks
+ thumb_func_end sub_8096100
+
+ thumb_func_start sub_8096130
+sub_8096130: @ 8096130
+ push {lr}
+ ldr r0, _0809615C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096160
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _08096164
+ ldrb r0, [r0]
+ strh r0, [r1, 0xA]
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809615C: .4byte sub_8095EB4
+_08096160: .4byte gTasks
+_08096164: .4byte gUnknown_02038474
+ thumb_func_end sub_8096130
+
+ thumb_func_start sub_8096168
+sub_8096168: @ 8096168
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080961A4
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ str r4, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961A4: .4byte gUnknown_083B600C
+ thumb_func_end sub_8096168
+
+ thumb_func_start sub_80961A8
+sub_80961A8: @ 80961A8
+ push {lr}
+ ldr r1, _080961C4
+ ldr r0, _080961C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1]
+ ldr r1, _080961CC
+ ldr r0, _080961D0
+ str r0, [r1]
+ ldr r0, _080961D4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961C4: .4byte gUnknown_02038474
+_080961C8: .4byte gUnknown_083B6DB4
+_080961CC: .4byte gUnknown_0300485C
+_080961D0: .4byte sub_8096130
+_080961D4: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80961A8
+
+ thumb_func_start sub_80961D8
+sub_80961D8: @ 80961D8
+ push {r4-r7,lr}
+ ldr r1, _08096258
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ adds r7, r1, 0x4
+_080961E4:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_080961F0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ adds r0, r7
+ adds r0, r6, r0
+ bl ZeroBoxMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080961F0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _080961E4
+ movs r5, 0
+_08096214:
+ lsls r0, r5, 3
+ adds r0, r5
+ ldr r6, _0809625C
+ adds r0, r6
+ ldr r1, _08096260
+ bl StringCopy
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0xD
+ bls _08096214
+ movs r5, 0
+ adds r3, r6, 0
+ adds r3, 0x7E
+ movs r2, 0x3
+_0809623E:
+ adds r0, r5, r3
+ adds r1, r5, 0
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0809623E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096258: .4byte gPokemonStorage
+_0809625C: .4byte gUnknown_020383E4
+_08096260: .4byte gPCText_BOX
+ thumb_func_end sub_80961D8
+
+ thumb_func_start sub_8096264
+sub_8096264: @ 8096264
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x20
+ mov r8, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r9, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080962F4
+ str r0, [sp, 0x18]
+ ldr r1, _080962F8
+ add r5, sp, 0x18
+ ldr r0, [r5, 0x4]
+ ands r0, r1
+ orrs r0, r6
+ str r0, [r5, 0x4]
+ mov r1, sp
+ ldr r0, _080962FC
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1, 0x4]
+ strh r4, [r1, 0x6]
+ ldr r0, _08096300
+ str r0, [sp, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ strh r0, [r1, 0xC]
+ adds r0, r4, 0x1
+ strh r0, [r1, 0xE]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ bl LoadSpriteSheets
+ ldr r0, _08096304
+ mov r1, r8
+ str r1, [r0]
+ movs r0, 0x90
+ lsls r0, 2
+ add r0, r8
+ strh r4, [r0]
+ ldr r0, _08096308
+ add r0, r8
+ strh r6, [r0]
+ ldr r0, _0809630C
+ add r8, r0
+ mov r0, r9
+ mov r1, r8
+ strb r0, [r1]
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080962F4: .4byte gBoxSelectionPopupPalette
+_080962F8: .4byte 0xffff0000
+_080962FC: .4byte gBoxSelectionPopupCenterTiles
+_08096300: .4byte gBoxSelectionPopupSidesTiles
+_08096304: .4byte gUnknown_02038478
+_08096308: .4byte 0x00000242
+_0809630C: .4byte 0x0000023e
+ thumb_func_end sub_8096264
+
+ thumb_func_start sub_8096310
+sub_8096310: @ 8096310
+ push {r4,r5,lr}
+ ldr r4, _08096344
+ ldr r0, [r4]
+ ldr r1, _08096348
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r5
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096344: .4byte gUnknown_02038478
+_08096348: .4byte 0x00000242
+ thumb_func_end sub_8096310
+
+ thumb_func_start sub_809634C
+sub_809634C: @ 809634C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80963D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809634C
+
+ thumb_func_start sub_809635C
+sub_809635C: @ 809635C
+ push {lr}
+ bl sub_809658C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809635C
+
+ thumb_func_start sub_8096368
+sub_8096368: @ 8096368
+ push {lr}
+ ldr r0, _08096380
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08096384
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC9
+ b _080963CC
+ .align 2, 0
+_08096380: .4byte gMain
+_08096384:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080963A4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080963A0
+ ldr r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ b _080963CC
+ .align 2, 0
+_080963A0: .4byte gUnknown_02038478
+_080963A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080963B8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_809662C
+ b _080963CA
+_080963B8:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080963CA
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80965F8
+_080963CA:
+ movs r0, 0xC8
+_080963CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096368
+
+ thumb_func_start sub_80963D0
+sub_80963D0: @ 80963D0
+ push {r4-r6,lr}
+ sub sp, 0x3C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x34]
+ str r1, [sp, 0x38]
+ movs r1, 0xC0
+ lsls r1, 24
+ ldr r0, [sp, 0x34]
+ orrs r0, r1
+ str r0, [sp, 0x34]
+ ldr r1, _08096564
+ add r4, sp, 0x34
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ add r1, sp, 0x1C
+ movs r2, 0
+ strh r2, [r1]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r2, [r0]
+ str r4, [sp, 0x20]
+ ldr r0, _08096568
+ str r0, [sp, 0x24]
+ str r2, [sp, 0x28]
+ ldr r0, _0809656C
+ str r0, [sp, 0x2C]
+ ldr r0, _08096570
+ str r0, [sp, 0x30]
+ add r0, sp, 0x4
+ movs r2, 0x18
+ bl memcpy
+ ldr r6, _08096574
+ ldr r0, [r6]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ strb r5, [r0]
+ add r2, sp, 0x4
+ ldr r1, [r6]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _08096578
+ adds r1, r3
+ ldrh r0, [r1]
+ strh r0, [r2, 0x2]
+ adds r0, r2, 0
+ movs r1, 0xA0
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C
+ adds r0, r1
+ str r0, [r3]
+ ldrb r2, [r4, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ add r1, sp, 0x4
+ adds r3, r5
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08096580
+ str r0, [sp, 0xC]
+ movs r4, 0
+_08096488:
+ ldr r0, [r6]
+ ldr r1, _08096584
+ adds r0, r1
+ ldrb r3, [r0]
+ add r0, sp, 0x4
+ movs r1, 0x7C
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [r6]
+ lsls r3, r4, 2
+ adds r2, 0x4
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809657C
+ adds r1, r0, r1
+ str r1, [r2]
+ movs r5, 0
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _080964C2
+ movs r0, 0xC4
+ strh r0, [r1, 0x20]
+ movs r5, 0x2
+_080964C2:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080964E6
+ ldr r1, [r6]
+ adds r1, 0x4
+ adds r1, r3
+ ldr r2, [r1]
+ movs r0, 0x70
+ strh r0, [r2, 0x22]
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080964E6:
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08096488
+ movs r4, 0
+ ldr r5, _08096574
+_08096504:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 19
+ movs r3, 0xF8
+ lsls r3, 15
+ adds r0, r3
+ lsrs r0, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r1, [r5]
+ ldr r3, _08096584
+ adds r1, r3
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0x58
+ movs r3, 0
+ bl sub_809A9A0
+ adds r2, r0, 0
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x20
+ adds r0, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _0809654C
+ movs r1, 0x1
+ cmp r4, 0
+ bne _08096544
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_08096544:
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ ldr r0, _08096588
+ str r0, [r1, 0x1C]
+_0809654C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08096504
+ bl sub_809665C
+ add sp, 0x3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096564: .4byte 0xffff0fff
+_08096568: .4byte gDummySpriteAnimTable
+_0809656C: .4byte gDummySpriteAffineAnimTable
+_08096570: .4byte SpriteCallbackDummy
+_08096574: .4byte gUnknown_02038478
+_08096578: .4byte 0x00000242
+_0809657C: .4byte gSprites
+_08096580: .4byte gSpriteAnimTable_83B604C
+_08096584: .4byte 0x0000023e
+_08096588: .4byte sub_8096784
+ thumb_func_end sub_80963D0
+
+ thumb_func_start sub_809658C
+sub_809658C: @ 809658C
+ push {r4-r6,lr}
+ ldr r4, _080965F4
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965A2
+ bl DestroySprite
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_080965A2:
+ movs r5, 0
+ adds r6, r4, 0
+_080965A6:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0x4
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965C2
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080965C2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080965A6
+ movs r5, 0
+_080965CE:
+ ldr r0, _080965F4
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080965E2
+ bl DestroySprite
+_080965E2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080965CE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080965F4: .4byte gUnknown_02038478
+ thumb_func_end sub_809658C
+
+ thumb_func_start sub_80965F8
+sub_80965F8: @ 80965F8
+ push {lr}
+ ldr r2, _08096628
+ ldr r1, [r2]
+ movs r0, 0x8F
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bls _0809661E
+ ldr r0, [r2]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0809661E:
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096628: .4byte gUnknown_02038478
+ thumb_func_end sub_80965F8
+
+ thumb_func_start sub_809662C
+sub_809662C: @ 809662C
+ push {lr}
+ ldr r0, _08096644
+ ldr r2, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096648
+ subs r1, r0, 0x1
+ b _0809664A
+ .align 2, 0
+_08096644: .4byte gUnknown_02038478
+_08096648:
+ movs r1, 0xD
+_0809664A:
+ movs r3, 0x8F
+ lsls r3, 2
+ adds r0, r2, r3
+ strb r1, [r0]
+ bl sub_809665C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809662C
+
+ thumb_func_start sub_809665C
+sub_809665C: @ 809665C
+ push {r4-r7,lr}
+ ldr r5, _080966B4
+ ldr r0, [r5]
+ movs r4, 0x8F
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8095ADC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080966B8
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ movs r0, 0xF
+ strb r0, [r2, 0x2]
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+ movs r0, 0xE
+ strb r0, [r2, 0x4]
+ adds r2, 0x5
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ ldr r0, _080966BC
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFE
+ strb r0, [r2]
+ strb r6, [r2, 0x1]
+ movs r0, 0x11
+ strb r0, [r2, 0x2]
+ cmp r7, 0x9
+ bhi _080966C0
+ movs r0, 0x28
+ b _080966C2
+ .align 2, 0
+_080966B4: .4byte gUnknown_02038478
+_080966B8: .4byte gStringVar1
+_080966BC: .4byte gUnknown_020383E4
+_080966C0:
+ movs r0, 0x22
+_080966C2:
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ adds r0, r2, 0
+ adds r1, r7, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ movs r0, 0xA4
+ strb r0, [r2, 0x1]
+ movs r0, 0xA1
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080966F0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80966F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080966F0: .4byte gStringVar1
+ thumb_func_end sub_809665C
+
+ thumb_func_start sub_80966F4
+sub_80966F4: @ 80966F4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08096764
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ bl GetSpriteTileStartByTag
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 11
+ lsls r4, 8
+ ldr r2, _08096768
+ adds r4, r2
+ adds r6, r4
+ lsls r5, 5
+ adds r6, r5
+ ldr r0, _0809676C
+ ldr r5, [r0]
+ mov r1, sp
+ ldr r2, _08096770
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08096774
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ ldr r0, _08096778
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809677C
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8004E3C
+ str r5, [r4]
+ str r6, [r4, 0x4]
+ ldr r0, _08096780
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096764: .4byte gUnknown_02038478
+_08096768: .4byte 0x06010000
+_0809676C: .4byte gUnknown_083B6DB8
+_08096770: .4byte 0x00001111
+_08096774: .4byte 0x040000d4
+_08096778: .4byte 0x81000200
+_0809677C: .4byte gWindowConfig_81E6D38
+_08096780: .4byte 0x80000200
+ thumb_func_end sub_80966F4
+
+ thumb_func_start sub_8096784
+sub_8096784: @ 8096784
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080967B4
+ strh r2, [r1, 0x30]
+ ldrh r0, [r1, 0x2E]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080967B4
+ strh r2, [r1, 0x32]
+ strh r2, [r1, 0x24]
+_080967B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096784
+
+ thumb_func_start task_intro_29
+task_intro_29: @ 80967B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080967D0
+ strb r0, [r1]
+ ldr r1, _080967D4
+ strb r0, [r1, 0x5]
+ ldr r0, _080967D8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080967D0: .4byte gUnknown_0203847D
+_080967D4: .4byte 0x02000000
+_080967D8: .4byte sub_8096884
+ thumb_func_end task_intro_29
+
+ thumb_func_start sub_80967DC
+sub_80967DC: @ 80967DC
+ ldr r0, _08096800
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08096800: .4byte REG_BG0HOFS
+ thumb_func_end sub_80967DC
+
+ thumb_func_start sub_8096804
+sub_8096804: @ 8096804
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r1, _0809683C
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08096840
+ adds r1, r0, 0
+ adds r1, 0x8
+ movs r2, 0x8
+ bl sub_809CFDC
+ ldr r1, _08096844
+ movs r0, 0x14
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809683C: .4byte gReservedSpriteTileCount
+_08096840: .4byte 0x02000020
+_08096844: .4byte gKeyRepeatStartDelay
+ thumb_func_end sub_8096804
+
+ thumb_func_start sub_8096848
+sub_8096848: @ 8096848
+ push {lr}
+ bl sub_809B0D4
+ ldr r2, _08096868
+ movs r1, 0
+ ldr r0, _0809686C
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809685C
+ movs r1, 0x1
+_0809685C:
+ strb r1, [r2]
+ ldr r1, _08096870
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096868: .4byte gUnknown_0203847C
+_0809686C: .4byte 0x02000000
+_08096870: .4byte gUnknown_0203847E
+ thumb_func_end sub_8096848
+
+ thumb_func_start sub_8096874
+sub_8096874: @ 8096874
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_8096874
+
+ thumb_func_start sub_8096884
+sub_8096884: @ 8096884
+ push {lr}
+ ldr r0, _080968A0
+ ldr r1, _080968A4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08096894
+ b _08096986
+_08096894:
+ lsls r0, 2
+ ldr r1, _080968A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080968A0: .4byte gMain
+_080968A4: .4byte 0x0000043c
+_080968A8: .4byte _080968AC
+ .align 2, 0
+_080968AC:
+ .4byte _080968D4
+ .4byte _080968E8
+ .4byte _080968F4
+ .4byte _08096904
+ .4byte _0809690E
+ .4byte _08096918
+ .4byte _0809691E
+ .4byte _08096924
+ .4byte _0809692A
+ .4byte _08096964
+_080968D4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_8096804
+ b _0809697A
+_080968E8:
+ ldr r0, _080968F0
+ bl SetUpWindowConfig
+ b _0809697A
+ .align 2, 0
+_080968F0: .4byte gWindowConfig_81E6D00
+_080968F4:
+ ldr r0, _08096900
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _0809697A
+ .align 2, 0
+_08096900: .4byte gWindowConfig_81E6D00
+_08096904:
+ bl sub_80967DC
+ bl sub_8096848
+ b _0809697A
+_0809690E:
+ bl sub_8098B48
+ bl sub_809AA24
+ b _0809697A
+_08096918:
+ bl sub_8097DE0
+ b _0809697A
+_0809691E:
+ bl sub_8097E70
+ b _0809697A
+_08096924:
+ bl sub_8098400
+ b _0809697A
+_0809692A:
+ ldr r0, _08096950
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096954
+ ldr r1, _08096958
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _0809695C
+ adds r2, r1
+ ldr r1, _08096960
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _0809697A
+ .align 2, 0
+_08096950: .4byte gPokemonStorage
+_08096954: .4byte 0x02000000
+_08096958: .4byte 0x000012bc
+_0809695C: .4byte 0x000012be
+_08096960: .4byte 0x0000dacb
+_08096964:
+ bl sub_8096874
+ ldr r0, _0809698C
+ bl sub_8096BE0
+ ldr r0, _08096990
+ bl SetMainCallback2
+ ldr r0, _08096994
+ bl SetVBlankCallback
+_0809697A:
+ ldr r1, _08096998
+ ldr r0, _0809699C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096986:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809698C: .4byte sub_8096BF0
+_08096990: .4byte sub_8096B38
+_08096994: .4byte sub_8096AFC
+_08096998: .4byte gMain
+_0809699C: .4byte 0x0000043c
+ thumb_func_end sub_8096884
+
+ thumb_func_start sub_80969A0
+sub_80969A0: @ 80969A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080969BC
+ ldr r1, _080969C0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _080969B2
+ b _08096AE4
+_080969B2:
+ lsls r0, 2
+ ldr r1, _080969C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080969BC: .4byte gMain
+_080969C0: .4byte 0x0000043c
+_080969C4: .4byte _080969C8
+ .align 2, 0
+_080969C8:
+ .4byte _080969F4
+ .4byte _08096A34
+ .4byte _08096A40
+ .4byte _08096A50
+ .4byte _08096A56
+ .4byte _08096A60
+ .4byte _08096A66
+ .4byte _08096A6C
+ .4byte _08096A72
+ .4byte _08096AAC
+ .4byte _08096AC8
+_080969F4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08096A28
+ ldr r0, _08096A2C
+ ldrb r0, [r0]
+ strb r0, [r1, 0x5]
+ bl sub_8096804
+ ldr r4, _08096A30
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _08096A1A
+ bl sub_809BBC0
+_08096A1A:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08096AD8
+ bl sub_809BD14
+ b _08096AD8
+ .align 2, 0
+_08096A28: .4byte 0x02000000
+_08096A2C: .4byte gUnknown_0203847D
+_08096A30: .4byte gUnknown_0203847F
+_08096A34:
+ ldr r0, _08096A3C
+ bl SetUpWindowConfig
+ b _08096AD8
+ .align 2, 0
+_08096A3C: .4byte gWindowConfig_81E6D00
+_08096A40:
+ ldr r0, _08096A4C
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _08096AD8
+ .align 2, 0
+_08096A4C: .4byte gWindowConfig_81E6D00
+_08096A50:
+ bl sub_80967DC
+ b _08096AD8
+_08096A56:
+ bl sub_8098B48
+ bl sub_809AA98
+ b _08096AD8
+_08096A60:
+ bl sub_8097DE0
+ b _08096AD8
+_08096A66:
+ bl sub_8097E70
+ b _08096AD8
+_08096A6C:
+ bl sub_8098400
+ b _08096AD8
+_08096A72:
+ ldr r0, _08096A98
+ ldrb r0, [r0]
+ bl sub_8099BF8
+ ldr r2, _08096A9C
+ ldr r1, _08096AA0
+ adds r0, r2, r1
+ movs r1, 0xA
+ strh r1, [r0]
+ ldr r1, _08096AA4
+ adds r2, r1
+ ldr r1, _08096AA8
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ b _08096AD8
+ .align 2, 0
+_08096A98: .4byte gPokemonStorage
+_08096A9C: .4byte 0x02000000
+_08096AA0: .4byte 0x000012bc
+_08096AA4: .4byte 0x000012be
+_08096AA8: .4byte 0x0000dacb
+_08096AAC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08096AC4
+ bl SetVBlankCallback
+ b _08096AD8
+ .align 2, 0
+_08096AC4: .4byte sub_8096AFC
+_08096AC8:
+ bl sub_8096874
+ ldr r0, _08096AEC
+ bl sub_8096BE0
+ ldr r0, _08096AF0
+ bl SetMainCallback2
+_08096AD8:
+ ldr r1, _08096AF4
+ ldr r0, _08096AF8
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08096AE4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096AEC: .4byte sub_8096C68
+_08096AF0: .4byte sub_8096B38
+_08096AF4: .4byte gMain
+_08096AF8: .4byte 0x0000043c
+ thumb_func_end sub_80969A0
+
+ thumb_func_start sub_8096AFC
+sub_8096AFC: @ 8096AFC
+ push {lr}
+ ldr r2, _08096B2C
+ ldr r1, _08096B30
+ ldr r3, _08096B34
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, 0x4
+ ldrh r0, [r1, 0xA]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_809CFF0
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B2C: .4byte REG_BG2HOFS
+_08096B30: .4byte 0x02000000
+_08096B34: .4byte 0x000008b4
+ thumb_func_end sub_8096AFC
+
+ thumb_func_start sub_8096B38
+sub_8096B38: @ 8096B38
+ push {lr}
+ ldr r0, _08096B58
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_8097E44
+ bl sub_8098734
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096B58: .4byte 0x02000000
+ thumb_func_end sub_8096B38
+
+ thumb_func_start sub_8096B5C
+sub_8096B5C: @ 8096B5C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _08096B70
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08096B74
+ cmp r0, 0x1
+ beq _08096BAC
+ b _08096BCC
+ .align 2, 0
+_08096B70: .4byte 0x02000000
+_08096B74:
+ ldr r1, _08096B98
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldr r2, _08096B9C
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r3, _08096BA0
+ adds r2, r4, r3
+ ldrb r2, [r2]
+ ldr r3, _08096BA4
+ ldr r5, _08096BA8
+ adds r4, r5
+ ldrb r4, [r4]
+ str r4, [sp]
+ bl sub_809D8BC
+ b _08096BCC
+ .align 2, 0
+_08096B98: .4byte 0x00002690
+_08096B9C: .4byte 0x0000268d
+_08096BA0: .4byte 0x0000268c
+_08096BA4: .4byte sub_80969A0
+_08096BA8: .4byte 0x0000268e
+_08096BAC:
+ ldr r0, _08096BD4
+ ldrb r2, [r0]
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _08096BD8
+ adds r0, r2
+ adds r1, r0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _08096BDC
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl DoNamingScreen
+_08096BCC:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096BD4: .4byte gPokemonStorage
+_08096BD8: .4byte 0x00008344
+_08096BDC: .4byte sub_80969A0
+ thumb_func_end sub_8096B5C
+
+ thumb_func_start sub_8096BE0
+sub_8096BE0: @ 8096BE0
+ ldr r1, _08096BEC
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_08096BEC: .4byte 0x02000000
+ thumb_func_end sub_8096BE0
+
+ thumb_func_start sub_8096BF0
+sub_8096BF0: @ 8096BF0
+ push {r4,lr}
+ ldr r4, _08096C04
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _08096C16
+ cmp r0, 0x1
+ bgt _08096C08
+ cmp r0, 0
+ beq _08096C0E
+ b _08096C5C
+ .align 2, 0
+_08096C04: .4byte 0x02000000
+_08096C08:
+ cmp r0, 0x2
+ beq _08096C4C
+ b _08096C5C
+_08096C0E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ b _08096C38
+_08096C16:
+ movs r0, 0x2
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08096C48
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5CD4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+_08096C38:
+ movs r2, 0
+ bl BlendPalettes
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096C5C
+ .align 2, 0
+_08096C48: .4byte 0x0000dad0
+_08096C4C:
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096C5C
+ ldr r0, _08096C64
+ bl sub_8096BE0
+_08096C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C64: .4byte sub_8096C84
+ thumb_func_end sub_8096BF0
+
+ thumb_func_start sub_8096C68
+sub_8096C68: @ 8096C68
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096C7A
+ ldr r0, _08096C80
+ bl sub_8096BE0
+_08096C7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C80: .4byte sub_8096C84
+ thumb_func_end sub_8096C68
+
+ thumb_func_start sub_8096C84
+sub_8096C84: @ 8096C84
+ push {r4,lr}
+ ldr r0, _08096C9C
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _08096C90
+ b _08096FBA
+_08096C90:
+ lsls r0, 2
+ ldr r1, _08096CA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096C9C: .4byte 0x02000000
+_08096CA0: .4byte _08096CA4
+ .align 2, 0
+_08096CA4:
+ .4byte _08096CC0
+ .4byte _08096EE0
+ .4byte _08096F1C
+ .4byte _08096F60
+ .4byte _08096F80
+ .4byte _08096F8A
+ .4byte _08096FA4
+_08096CC0:
+ bl sub_809CA40
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0xF
+ bls _08096CD0
+ b _08096FBA
+_08096CD0:
+ lsls r0, 2
+ ldr r1, _08096CDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096CDC: .4byte _08096CE0
+ .align 2, 0
+_08096CE0:
+ .4byte _08096D20
+ .4byte _08096FBA
+ .4byte _08096FBA
+ .4byte _08096D94
+ .4byte _08096D34
+ .4byte _08096D5C
+ .4byte _08096DAC
+ .4byte _08096DC0
+ .4byte _08096DD4
+ .4byte _08096DFC
+ .4byte _08096E30
+ .4byte _08096EB8
+ .4byte _08096E70
+ .4byte _08096E8C
+ .4byte _08096ECC
+ .4byte _08096DA0
+_08096D20:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08096D30
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D30: .4byte 0x02000000
+_08096D34:
+ ldr r4, _08096D48
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D4C
+ movs r0, 0x10
+ bl sub_8098898
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096D48: .4byte 0x02000000
+_08096D4C:
+ bl sub_809B0D4
+ ldr r0, _08096D58
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D58: .4byte sub_8096FC8
+_08096D5C:
+ ldr r4, _08096D88
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ beq _08096D66
+ b _08096FBA
+_08096D66:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096D80
+ ldr r1, _08096D8C
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E4C
+_08096D80:
+ ldr r0, _08096D90
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D88: .4byte 0x02000000
+_08096D8C: .4byte 0x000011f2
+_08096D90: .4byte sub_8097004
+_08096D94:
+ ldr r0, _08096D9C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096D9C: .4byte sub_8097BA0
+_08096DA0:
+ ldr r0, _08096DA8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DA8: .4byte sub_8097CC0
+_08096DAC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DBC
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DBC: .4byte sub_809789C
+_08096DC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096DD0
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096DD0: .4byte sub_8097078
+_08096DD4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096DF0
+ ldr r0, _08096DF4
+ ldrb r0, [r0]
+ adds r0, 0x1
+ ldr r2, _08096DF8
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0xD
+ ble _08096E18
+ movs r0, 0
+ b _08096E16
+ .align 2, 0
+_08096DF0: .4byte 0x02000000
+_08096DF4: .4byte gPokemonStorage
+_08096DF8: .4byte 0x000008b2
+_08096DFC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08096E24
+ ldr r0, _08096E28
+ ldrb r0, [r0]
+ subs r0, 0x1
+ ldr r2, _08096E2C
+ adds r1, r4, r2
+ strh r0, [r1]
+ cmp r0, 0
+ bge _08096E18
+ movs r0, 0xD
+_08096E16:
+ strh r0, [r1]
+_08096E18:
+ ldrb r0, [r1]
+ bl sub_8099C70
+ movs r0, 0x2
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E24: .4byte 0x02000000
+_08096E28: .4byte gPokemonStorage
+_08096E2C: .4byte 0x000008b2
+_08096E30:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ ldr r4, _08096E54
+ ldr r1, _08096E58
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096E5C
+_08096E4C:
+ movs r0, 0x5
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096E54: .4byte 0x02000000
+_08096E58: .4byte 0x000011f2
+_08096E5C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E6C
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E6C: .4byte sub_809746C
+_08096E70:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096E96
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096E88
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096E88: .4byte sub_80972A8
+_08096E8C:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096EA4
+_08096E96:
+ ldr r1, _08096EA0
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096EA0: .4byte 0x02000000
+_08096EA4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EB4
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EB4: .4byte c3_0808DC50
+_08096EB8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EC8
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EC8: .4byte sub_8097390
+_08096ECC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08096EDC
+ bl sub_8096BE0
+ b _08096FBA
+ .align 2, 0
+_08096EDC: .4byte sub_80972FC
+_08096EE0:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ bl sub_809BF48
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096EFA
+ bl sub_80986E8
+ b _08096EFE
+_08096EFA:
+ bl sub_8098710
+_08096EFE:
+ ldr r4, _08096F14
+ ldr r2, _08096F18
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096F0E
+ bl BoxSetMosaic
+_08096F0E:
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F14: .4byte 0x02000000
+_08096F18: .4byte 0x000011f6
+_08096F1C:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FBA
+ ldr r1, _08096F50
+ ldr r0, _08096F54
+ ldr r2, _08096F58
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08096F5C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096F70
+ bl sub_809B440
+ bl BoxSetMosaic
+ b _08096F70
+ .align 2, 0
+_08096F50: .4byte gPokemonStorage
+_08096F54: .4byte 0x02000000
+_08096F58: .4byte 0x000008b2
+_08096F5C: .4byte gUnknown_0203847C
+_08096F60:
+ ldr r0, _08096F78
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+_08096F70:
+ ldr r1, _08096F7C
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096F78: .4byte gMain
+_08096F7C: .4byte 0x02000000
+_08096F80:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08096F92
+_08096F8A:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08096F92:
+ bl sub_8098898
+ ldr r1, _08096FA0
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+ b _08096FBA
+ .align 2, 0
+_08096FA0: .4byte 0x02000000
+_08096FA4:
+ ldr r0, _08096FC0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08096FBA
+ bl sub_8098A5C
+ ldr r0, _08096FC4
+ bl sub_8096BE0
+_08096FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096FC0: .4byte gMain
+_08096FC4: .4byte sub_8096C84
+ thumb_func_end sub_8096C84
+
+ thumb_func_start sub_8096FC8
+sub_8096FC8: @ 8096FC8
+ push {r4,lr}
+ ldr r4, _08096FD8
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08096FDC
+ cmp r0, 0x1
+ beq _08096FE8
+ b _08096FF8
+ .align 2, 0
+_08096FD8: .4byte 0x02000000
+_08096FDC:
+ bl sub_809880C
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08096FF8
+_08096FE8:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096FF8
+ ldr r0, _08097000
+ bl sub_8096BE0
+_08096FF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097000: .4byte sub_8096C84
+ thumb_func_end sub_8096FC8
+
+ thumb_func_start sub_8097004
+sub_8097004: @ 8097004
+ push {r4,lr}
+ ldr r4, _08097018
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ beq _0809702E
+ cmp r0, 0x1
+ bgt _0809701C
+ cmp r0, 0
+ beq _08097022
+ b _0809706A
+ .align 2, 0
+_08097018: .4byte 0x02000000
+_0809701C:
+ cmp r0, 0x2
+ beq _0809704C
+ b _0809706A
+_08097022:
+ movs r0, 0x5
+ bl PlaySE
+ bl add_to_c3_somehow
+ b _08097044
+_0809702E:
+ bl sub_80985CC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ bl sub_809B0F4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809B0C0
+_08097044:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809706A
+_0809704C:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809706A
+ ldr r1, _08097070
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097064
+ bl BoxSetMosaic
+_08097064:
+ ldr r0, _08097074
+ bl sub_8096BE0
+_0809706A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097070: .4byte 0x000011f6
+_08097074: .4byte sub_8096C84
+ thumb_func_end sub_8097004
+
+ thumb_func_start sub_8097078
+sub_8097078: @ 8097078
+ push {r4,lr}
+ ldr r0, _08097090
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bls _08097084
+ b _0809729A
+_08097084:
+ lsls r0, 2
+ ldr r1, _08097094
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097090: .4byte 0x02000000
+_08097094: .4byte _08097098
+ .align 2, 0
+_08097098:
+ .4byte _080970B0
+ .4byte _080970C8
+ .4byte _08097258
+ .4byte _0809726C
+ .4byte _08097262
+ .4byte _08097284
+_080970B0:
+ movs r0, 0x4
+ bl sub_8098898
+ bl sub_809CE84
+ ldr r1, _080970C4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080970C4: .4byte 0x02000000
+_080970C8:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bls _080970D8
+ b _0809729A
+_080970D8:
+ lsls r0, 2
+ ldr r1, _080970E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080970E4: .4byte _080970E8
+ .align 2, 0
+_080970E8:
+ .4byte _08097110
+ .4byte _08097110
+ .4byte _08097190
+ .4byte _08097178
+ .4byte _08097120
+ .4byte _08097158
+ .4byte _08097140
+ .4byte _08097230
+ .4byte _080971CC
+ .4byte _08097244
+_08097110:
+ bl sub_8098A5C
+ ldr r0, _0809711C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809711C: .4byte sub_8096C84
+_08097120:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809713C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809713C: .4byte sub_80972A8
+_08097140:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097154
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097154: .4byte sub_80972FC
+_08097158:
+ bl sub_809BEBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971D6
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097174
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097174: .4byte c3_0808DC50
+_08097178:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _0809718C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809718C: .4byte sub_8097390
+_08097190:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080971D6
+ ldr r4, _080971C0
+ ldr r1, _080971C4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097210
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _080971C8
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_080971C0: .4byte 0x02000000
+_080971C4: .4byte 0x000011f2
+_080971C8: .4byte sub_809746C
+_080971CC:
+ bl sub_809BE80
+ lsls r0, 24
+ cmp r0, 0
+ beq _080971E4
+_080971D6:
+ ldr r1, _080971E0
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971E0: .4byte 0x02000000
+_080971E4:
+ ldr r4, _080971F8
+ ldr r1, _080971FC
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097200
+ movs r0, 0x4
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_080971F8: .4byte 0x02000000
+_080971FC: .4byte 0x000011f9
+_08097200:
+ ldr r1, _08097218
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809721C
+_08097210:
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097218: .4byte 0x000011f2
+_0809721C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809722C
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_0809722C: .4byte sub_8097594
+_08097230:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097240
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097240: .4byte sub_8097788
+_08097244:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08097254
+ bl sub_8096BE0
+ b _0809729A
+ .align 2, 0
+_08097254: .4byte sub_80977E4
+_08097258:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _08097274
+_08097262:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x11
+ b _08097274
+_0809726C:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_08097274:
+ bl sub_8098898
+ ldr r1, _08097280
+ movs r0, 0x5
+ strb r0, [r1, 0x4]
+ b _0809729A
+ .align 2, 0
+_08097280: .4byte 0x02000000
+_08097284:
+ ldr r0, _080972A0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809729A
+ bl sub_8098A5C
+ ldr r0, _080972A4
+ bl sub_8096BE0
+_0809729A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972A0: .4byte gMain
+_080972A4: .4byte sub_8096C84
+ thumb_func_end sub_8097078
+
+ thumb_func_start sub_80972A8
+sub_80972A8: @ 80972A8
+ push {r4,lr}
+ ldr r4, _080972B8
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080972BC
+ cmp r0, 0x1
+ beq _080972CA
+ b _080972F2
+ .align 2, 0
+_080972B8: .4byte 0x02000000
+_080972BC:
+ movs r0, 0
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080972F2
+_080972CA:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _080972F2
+ ldr r0, _080972E4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080972EC
+ ldr r0, _080972E8
+ bl sub_8096BE0
+ b _080972F2
+ .align 2, 0
+_080972E4: .4byte gUnknown_0203847C
+_080972E8: .4byte sub_8097858
+_080972EC:
+ ldr r0, _080972F8
+ bl sub_8096BE0
+_080972F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080972F8: .4byte sub_8096C84
+ thumb_func_end sub_80972A8
+
+ thumb_func_start sub_80972FC
+sub_80972FC: @ 80972FC
+ push {r4,lr}
+ ldr r4, _0809730C
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097310
+ cmp r0, 0x1
+ beq _0809731E
+ b _08097346
+ .align 2, 0
+_0809730C: .4byte 0x02000000
+_08097310:
+ movs r0, 0x1
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097346
+_0809731E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097346
+ ldr r0, _08097338
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097340
+ ldr r0, _0809733C
+ bl sub_8096BE0
+ b _08097346
+ .align 2, 0
+_08097338: .4byte gUnknown_0203847C
+_0809733C: .4byte sub_8097858
+_08097340:
+ ldr r0, _0809734C
+ bl sub_8096BE0
+_08097346:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809734C: .4byte sub_8096C84
+ thumb_func_end sub_80972FC
+
+ thumb_func_start c3_0808DC50
+c3_0808DC50: @ 8097350
+ push {r4,lr}
+ ldr r4, _08097360
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08097364
+ cmp r0, 0x1
+ beq _08097372
+ b _08097386
+ .align 2, 0
+_08097360: .4byte 0x02000000
+_08097364:
+ movs r0, 0x2
+ bl sub_809B100
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097386
+_08097372:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097386
+ bl BoxSetMosaic
+ ldr r0, _0809738C
+ bl sub_8096BE0
+_08097386:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809738C: .4byte sub_8096C84
+ thumb_func_end c3_0808DC50
+
+ thumb_func_start sub_8097390
+sub_8097390: @ 8097390
+ push {lr}
+ ldr r0, _080973A4
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x5
+ bhi _08097462
+ lsls r0, 2
+ ldr r1, _080973A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080973A4: .4byte 0x02000000
+_080973A8: .4byte _080973AC
+ .align 2, 0
+_080973AC:
+ .4byte _080973C4
+ .4byte _080973FC
+ .4byte _0809741C
+ .4byte _0809742C
+ .4byte _0809743E
+ .4byte _0809745C
+_080973C4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080973E4
+ movs r0, 0xE
+ bl sub_8098898
+ ldr r1, _080973E0
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973E0: .4byte 0x02000000
+_080973E4:
+ bl sub_809B0E0
+ movs r0, 0
+ bl sub_809B100
+ ldr r1, _080973F8
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_080973F8: .4byte 0x02000000
+_080973FC:
+ ldr r0, _08097414
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097462
+ bl sub_8098A5C
+ ldr r0, _08097418
+ bl sub_8096BE0
+ b _08097462
+ .align 2, 0
+_08097414: .4byte gMain
+_08097418: .4byte sub_8096C84
+_0809741C:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_809880C
+ b _0809744C
+_0809742C:
+ bl sub_8098830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ movs r0, 0x1
+ bl sub_809B100
+ b _0809744C
+_0809743E:
+ bl sub_809B130
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097462
+ bl sub_80987DC
+_0809744C:
+ ldr r1, _08097458
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097462
+ .align 2, 0
+_08097458: .4byte 0x02000000
+_0809745C:
+ ldr r0, _08097468
+ bl sub_8096BE0
+_08097462:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097468: .4byte sub_8097004
+ thumb_func_end sub_8097390
+
+ thumb_func_start sub_809746C
+sub_809746C: @ 809746C
+ push {r4,lr}
+ ldr r0, _08097484
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x4
+ bls _08097478
+ b _08097584
+_08097478:
+ lsls r0, 2
+ ldr r1, _08097488
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097484: .4byte 0x02000000
+_08097488: .4byte _0809748C
+ .align 2, 0
+_0809748C:
+ .4byte _080974A0
+ .4byte _080974D8
+ .4byte _08097534
+ .4byte _08097548
+ .4byte _0809756C
+_080974A0:
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r4, _080974C8
+ ldr r2, _080974CC
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _080974D0
+ ldrb r0, [r0]
+ bl sub_809634C
+ ldr r0, _080974D4
+ adds r4, r0
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097584
+ .align 2, 0
+_080974C8: .4byte 0x02002370
+_080974CC: .4byte 0x0000daca
+_080974D0: .4byte gUnknown_0203847E
+_080974D4: .4byte 0xffffdc90
+_080974D8:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC8
+ beq _08097584
+ cmp r4, 0xC9
+ bne _080974F6
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ b _0809755E
+_080974F6:
+ adds r0, r4, 0
+ bl sub_809B62C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097518
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ ldr r1, _08097514
+ movs r0, 0x2
+ b _08097522
+ .align 2, 0
+_08097514: .4byte 0x02000000
+_08097518:
+ movs r0, 0x8
+ bl sub_8098898
+ ldr r1, _0809752C
+ movs r0, 0x4
+_08097522:
+ strb r0, [r1, 0x4]
+ ldr r0, _08097530
+ strb r4, [r0]
+ b _08097584
+ .align 2, 0
+_0809752C: .4byte 0x02000000
+_08097530: .4byte gUnknown_0203847E
+_08097534:
+ bl party_compaction
+ bl sub_8099310
+ ldr r1, _08097544
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ b _08097582
+ .align 2, 0
+_08097544: .4byte 0x02000000
+_08097548:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097584
+ bl sub_809B6BC
+ bl BoxSetMosaic
+ bl sub_80987DC
+_0809755E:
+ ldr r0, _08097568
+ bl sub_8096BE0
+ b _08097584
+ .align 2, 0
+_08097568: .4byte sub_8096C84
+_0809756C:
+ ldr r0, _0809758C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097584
+ movs r0, 0x6
+ bl sub_8098898
+ ldr r1, _08097590
+ movs r0, 0x1
+_08097582:
+ strb r0, [r1, 0x4]
+_08097584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809758C: .4byte gMain
+_08097590: .4byte 0x02000000
+ thumb_func_end sub_809746C
+
+ thumb_func_start sub_8097594
+sub_8097594: @ 8097594
+ push {r4,lr}
+ ldr r0, _080975AC
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xD
+ bls _080975A0
+ b _0809777A
+_080975A0:
+ lsls r0, 2
+ ldr r1, _080975B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080975AC: .4byte 0x02000000
+_080975B0: .4byte _080975B4
+ .align 2, 0
+_080975B4:
+ .4byte _080975EC
+ .4byte _08097600
+ .4byte _0809763A
+ .4byte _0809766E
+ .4byte _0809767A
+ .4byte _08097690
+ .4byte _080976C8
+ .4byte _080976E0
+ .4byte _080976EC
+ .4byte _080976F0
+ .4byte _08097704
+ .4byte _08097720
+ .4byte _08097732
+ .4byte _08097764
+_080975EC:
+ movs r0, 0x9
+ bl sub_8098898
+ movs r0, 0x1
+ bl sub_8098A38
+ ldr r1, _0809761C
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+_08097600:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0809762C
+ cmp r1, 0
+ bgt _08097620
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097626
+ b _0809777A
+ .align 2, 0
+_0809761C: .4byte 0x02000000
+_08097620:
+ cmp r1, 0x1
+ beq _08097626
+ b _0809777A
+_08097626:
+ bl sub_8098A5C
+ b _080976E0
+_0809762C:
+ bl sub_8098A5C
+ bl sub_809B7D4
+ bl sub_809B6DC
+ b _08097744
+_0809763A:
+ bl sub_809B960
+ bl sub_809B734
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809764A
+ b _0809777A
+_0809764A:
+ ldr r4, _08097650
+ b _0809765A
+ .align 2, 0
+_08097650: .4byte 0x02000000
+_08097654:
+ cmp r0, 0
+ bne _0809765A
+ b _08097758
+_0809765A:
+ bl sub_809B960
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _08097654
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809777A
+_0809766E:
+ bl sub_809B760
+ bl sub_809801C
+ movs r0, 0xA
+ b _08097740
+_0809767A:
+ ldr r0, _0809768C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08097688
+ b _0809777A
+_08097688:
+ movs r0, 0xB
+ b _08097740
+ .align 2, 0
+_0809768C: .4byte gMain
+_08097690:
+ ldr r0, _080976B4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _080976B8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080976BC
+ bl party_compaction
+ bl sub_8099310
+ b _08097744
+ .align 2, 0
+_080976B4: .4byte gMain
+_080976B8: .4byte gUnknown_0203847C
+_080976BC:
+ ldr r1, _080976C4
+ movs r0, 0x7
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_080976C4: .4byte 0x02000000
+_080976C8:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B440
+ bl BoxSetMosaic
+ bl sub_80987DC
+ b _08097744
+_080976E0:
+ ldr r0, _080976E8
+ bl sub_8096BE0
+ b _0809777A
+ .align 2, 0
+_080976E8: .4byte sub_8096C84
+_080976EC:
+ movs r0, 0xA
+ b _08097740
+_080976F0:
+ ldr r0, _08097700
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x15
+ b _08097740
+ .align 2, 0
+_08097700: .4byte gMain
+_08097704:
+ ldr r0, _0809771C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ bl sub_8099958
+ b _08097744
+ .align 2, 0
+_0809771C: .4byte gMain
+_08097720:
+ bl sub_8099990
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809777A
+ bl sub_809B7AC
+ movs r0, 0x13
+ b _08097740
+_08097732:
+ ldr r0, _08097750
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ movs r0, 0x14
+_08097740:
+ bl sub_8098898
+_08097744:
+ ldr r1, _08097754
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097750: .4byte gMain
+_08097754: .4byte 0x02000000
+_08097758:
+ ldr r1, _08097760
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ b _0809777A
+ .align 2, 0
+_08097760: .4byte 0x02000000
+_08097764:
+ ldr r0, _08097780
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809777A
+ bl sub_8098A5C
+ ldr r0, _08097784
+ bl sub_8096BE0
+_0809777A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097780: .4byte gMain
+_08097784: .4byte sub_8096C84
+ thumb_func_end sub_8097594
+
+ thumb_func_start sub_8097788
+sub_8097788: @ 8097788
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0809779C
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _080977A0
+ cmp r4, 0x1
+ beq _080977BC
+ b _080977D4
+ .align 2, 0
+_0809779C: .4byte 0x02000000
+_080977A0:
+ bl sub_809BC18
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080977D4
+_080977BC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080977D4
+ ldr r0, _080977DC
+ strb r1, [r0]
+ strb r1, [r5, 0x6]
+ ldr r0, _080977E0
+ bl SetMainCallback2
+_080977D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977DC: .4byte gUnknown_0203847F
+_080977E0: .4byte sub_8096B5C
+ thumb_func_end sub_8097788
+
+ thumb_func_start sub_80977E4
+sub_80977E4: @ 80977E4
+ push {r4,lr}
+ ldr r4, _080977F4
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080977F8
+ cmp r0, 0x1
+ beq _08097824
+ b _0809784C
+ .align 2, 0
+_080977F4: .4byte 0x02000000
+_080977F8:
+ movs r0, 0xC
+ bl sub_8098898
+ ldr r0, _08097820
+ adds r2, r4, r0
+ ldrb r1, [r2]
+ movs r3, 0x96
+ lsls r3, 5
+ adds r0, r4, r3
+ strb r1, [r0]
+ ldrb r0, [r2]
+ movs r1, 0xB0
+ movs r2, 0x10
+ bl sub_80F7418
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _0809784C
+ .align 2, 0
+_08097820: .4byte 0x000011f7
+_08097824:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809784C
+ bl sub_80F7470
+ bl sub_8098A5C
+ movs r1, 0x96
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_809BDD8
+ bl sub_809801C
+ ldr r0, _08097854
+ bl sub_8096BE0
+_0809784C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097854: .4byte sub_8096C84
+ thumb_func_end sub_80977E4
+
+ thumb_func_start sub_8097858
+sub_8097858: @ 8097858
+ push {r4,lr}
+ ldr r4, _08097868
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0809786C
+ cmp r0, 0x1
+ beq _0809787C
+ b _08097890
+ .align 2, 0
+_08097868: .4byte 0x02000000
+_0809786C:
+ bl party_compaction
+ bl sub_8099310
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097890
+_0809787C:
+ bl sub_8099374
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097890
+ bl sub_80987DC
+ ldr r0, _08097898
+ bl sub_8096BE0
+_08097890:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097898: .4byte sub_8096C84
+ thumb_func_end sub_8097858
+
+ thumb_func_start sub_809789C
+sub_809789C: @ 809789C
+ push {r4,lr}
+ ldr r4, _080978AC
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080978B0
+ cmp r0, 0x1
+ beq _080978C2
+ b _08097968
+ .align 2, 0
+_080978AC: .4byte 0x02000000
+_080978B0:
+ movs r0, 0x1
+ bl sub_8098898
+ bl sub_809CE84
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097968
+_080978C2:
+ bl sub_809CF30
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _08097968
+ lsls r0, 2
+ ldr r1, _080978DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080978DC: .4byte _080978E0
+ .align 2, 0
+_080978E0:
+ .4byte _08097914
+ .4byte _08097914
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097968
+ .4byte _08097958
+ .4byte _08097940
+ .4byte _0809792C
+_08097914:
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _08097928
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097928: .4byte sub_8096C84
+_0809792C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0809793C
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_0809793C: .4byte sub_8097B44
+_08097940:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097954
+ bl sub_8096BE0
+ b _08097968
+ .align 2, 0
+_08097954: .4byte sub_8097974
+_08097958:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r0, _08097970
+ bl sub_8096BE0
+_08097968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097970: .4byte sub_8097A64
+ thumb_func_end sub_809789C
+
+ thumb_func_start sub_8097974
+sub_8097974: @ 8097974
+ push {r4,r5,lr}
+ ldr r5, _08097988
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _080979A2
+ cmp r0, 0x1
+ bgt _0809798C
+ cmp r0, 0
+ beq _08097996
+ b _08097A5A
+ .align 2, 0
+_08097988: .4byte 0x02000000
+_0809798C:
+ cmp r0, 0x2
+ beq _080979FC
+ cmp r0, 0x3
+ beq _08097A44
+ b _08097A5A
+_08097996:
+ bl sub_8098A80
+ movs r0, 0x2
+ bl sub_8098898
+ b _08097A3C
+_080979A2:
+ bl sub_809CF30
+ ldr r1, _080979CC
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080979D4
+ movs r0, 0x1
+ bl sub_809A860
+ bl sub_8098A5C
+ ldr r0, _080979D0
+ bl sub_8096BE0
+ b _08097A5A
+ .align 2, 0
+_080979CC: .4byte 0x00000d5e
+_080979D0: .4byte sub_8096C84
+_080979D4:
+ cmp r0, r1
+ blt _08097A5A
+ cmp r0, 0xF
+ bgt _08097A5A
+ cmp r0, 0xC
+ blt _08097A5A
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ subs r0, 0xC
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8098AA8
+ movs r0, 0x3
+ bl sub_8098898
+ b _08097A3C
+_080979FC:
+ bl sub_809CF30
+ movs r1, 0xD6
+ lsls r1, 4
+ adds r4, r5, r1
+ strh r0, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08097A5A
+ adds r0, 0x1
+ cmp r1, r0
+ bne _08097A24
+ bl sub_8098A5C
+ movs r0, 0
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A24:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8098A5C
+ ldrh r0, [r4]
+ subs r0, 0x10
+ strh r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8099DCC
+_08097A3C:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097A5A
+_08097A44:
+ bl sub_8099E08
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097A5A
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097A60
+ bl sub_8096BE0
+_08097A5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097A60: .4byte sub_8096C84
+ thumb_func_end sub_8097974
+
+ thumb_func_start sub_8097A64
+sub_8097A64: @ 8097A64
+ push {r4,r5,lr}
+ ldr r5, _08097A78
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x1
+ beq _08097AB0
+ cmp r0, 0x1
+ bgt _08097A7C
+ cmp r0, 0
+ beq _08097A86
+ b _08097B32
+ .align 2, 0
+_08097A78: .4byte 0x02000000
+_08097A7C:
+ cmp r0, 0x2
+ beq _08097B00
+ cmp r0, 0x3
+ beq _08097B18
+ b _08097B32
+_08097A86:
+ movs r0, 0x5
+ bl sub_8098898
+ ldr r1, _08097AA4
+ adds r0, r5, r1
+ ldr r2, _08097AA8
+ movs r1, 0x7
+ movs r3, 0x3
+ bl sub_8096264
+ ldr r0, _08097AAC
+ ldrb r0, [r0]
+ bl sub_809634C
+ b _08097B0A
+ .align 2, 0
+_08097AA4: .4byte 0x00002370
+_08097AA8: .4byte 0x0000daca
+_08097AAC: .4byte gPokemonStorage
+_08097AB0:
+ bl sub_8096368
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08097AF4
+ adds r4, r5, r2
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ beq _08097B32
+ bl sub_8098A5C
+ bl sub_809635C
+ bl sub_8096310
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC9
+ beq _08097AE4
+ adds r1, r0, 0
+ ldr r0, _08097AF8
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08097B0A
+_08097AE4:
+ movs r0, 0x1
+ bl sub_809A860
+ ldr r0, _08097AFC
+ bl sub_8096BE0
+ b _08097B32
+ .align 2, 0
+_08097AF4: .4byte 0x000008b2
+_08097AF8: .4byte gPokemonStorage
+_08097AFC: .4byte sub_8096C84
+_08097B00:
+ ldr r1, _08097B14
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_8099C70
+_08097B0A:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B32
+ .align 2, 0
+_08097B14: .4byte 0x000008b2
+_08097B18:
+ bl sub_8099D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B32
+ ldr r1, _08097B38
+ ldr r2, _08097B3C
+ adds r0, r5, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08097B40
+ bl sub_8096BE0
+_08097B32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B38: .4byte gPokemonStorage
+_08097B3C: .4byte 0x000008b2
+_08097B40: .4byte sub_8096C84
+ thumb_func_end sub_8097A64
+
+ thumb_func_start sub_8097B44
+sub_8097B44: @ 8097B44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08097B58
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0
+ beq _08097B5C
+ cmp r4, 0x1
+ beq _08097B78
+ b _08097B8E
+ .align 2, 0
+_08097B58: .4byte 0x02000000
+_08097B5C:
+ bl sub_809BB90
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _08097B8E
+_08097B78:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097B8E
+ ldr r0, _08097B98
+ strb r4, [r0]
+ strb r4, [r5, 0x6]
+ ldr r0, _08097B9C
+ bl SetMainCallback2
+_08097B8E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097B98: .4byte gUnknown_0203847F
+_08097B9C: .4byte sub_8096B5C
+ thumb_func_end sub_8097B44
+
+ thumb_func_start sub_8097BA0
+sub_8097BA0: @ 8097BA0
+ push {r4,lr}
+ ldr r0, _08097BB8
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097BAE
+ b _08097CB0
+_08097BAE:
+ lsls r0, r1, 2
+ ldr r1, _08097BBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097BB8: .4byte 0x02000000
+_08097BBC: .4byte _08097BC0
+ .align 2, 0
+_08097BC0:
+ .4byte _08097BD4
+ .4byte _08097C18
+ .4byte _08097C2C
+ .4byte _08097C74
+ .4byte _08097C98
+_08097BD4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097BF8
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097BF4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097BF4: .4byte 0x02000000
+_08097BF8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097C14
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C14: .4byte 0x02000000
+_08097C18:
+ ldr r0, _08097C28
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097CB0
+ b _08097C4A
+ .align 2, 0
+_08097C28: .4byte gMain
+_08097C2C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097C5C
+ cmp r1, 0
+ bgt _08097C46
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097C4A
+ b _08097CB0
+_08097C46:
+ cmp r1, 0x1
+ bne _08097CB0
+_08097C4A:
+ bl sub_8098A5C
+ ldr r0, _08097C58
+ bl sub_8096BE0
+ b _08097CB0
+ .align 2, 0
+_08097C58: .4byte sub_8096C84
+_08097C5C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097C70
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C70: .4byte 0x02000000
+_08097C74:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097C94
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097CB0
+ .align 2, 0
+_08097C94: .4byte 0x0000dad0
+_08097C98:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097CB0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097CB8
+ strb r0, [r1]
+ ldr r0, _08097CBC
+ bl SetMainCallback2
+_08097CB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097CB8: .4byte gPlayerPartyCount
+_08097CBC: .4byte sub_80961A8
+ thumb_func_end sub_8097BA0
+
+ thumb_func_start sub_8097CC0
+sub_8097CC0: @ 8097CC0
+ push {r4,lr}
+ ldr r0, _08097CD8
+ ldrb r1, [r0, 0x4]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _08097CCE
+ b _08097DD0
+_08097CCE:
+ lsls r0, r1, 2
+ ldr r1, _08097CDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097CD8: .4byte 0x02000000
+_08097CDC: .4byte _08097CE0
+ .align 2, 0
+_08097CE0:
+ .4byte _08097CF4
+ .4byte _08097D38
+ .4byte _08097D4C
+ .4byte _08097D94
+ .4byte _08097DB8
+_08097CF4:
+ bl sub_809BF20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097D18
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_8098898
+ ldr r1, _08097D14
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D14: .4byte 0x02000000
+_08097D18:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x12
+ bl sub_8098898
+ movs r0, 0
+ bl sub_8098A38
+ ldr r1, _08097D34
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D34: .4byte 0x02000000
+_08097D38:
+ ldr r0, _08097D48
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _08097DD0
+ b _08097D6C
+ .align 2, 0
+_08097D48: .4byte gMain
+_08097D4C:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08097D6C
+ cmp r1, 0
+ bgt _08097D66
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08097D7C
+ b _08097DD0
+_08097D66:
+ cmp r1, 0x1
+ beq _08097D7C
+ b _08097DD0
+_08097D6C:
+ bl sub_8098A5C
+ ldr r0, _08097D78
+ bl sub_8096BE0
+ b _08097DD0
+ .align 2, 0
+_08097D78: .4byte sub_8096C84
+_08097D7C:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_8098A5C
+ ldr r1, _08097D90
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097D90: .4byte 0x02000000
+_08097D94:
+ movs r1, 0
+ movs r0, 0xE
+ strh r0, [r4, 0xC]
+ ldr r0, _08097DB4
+ strh r0, [r4, 0xE]
+ movs r0, 0x14
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80C5E38
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _08097DD0
+ .align 2, 0
+_08097DB4: .4byte 0x0000dad0
+_08097DB8:
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097DD0
+ bl CalculatePlayerPartyCount
+ ldr r1, _08097DD8
+ strb r0, [r1]
+ ldr r0, _08097DDC
+ bl SetMainCallback2
+_08097DD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097DD8: .4byte gPlayerPartyCount
+_08097DDC: .4byte sub_80961A8
+ thumb_func_end sub_8097CC0
+
+ thumb_func_start sub_8097DE0
+sub_8097DE0: @ 8097DE0
+ push {lr}
+ ldr r1, _08097E1C
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ ldr r1, _08097E20
+ ldr r2, _08097E24
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08097E28
+ ldr r2, _08097E2C
+ ldr r0, _08097E30
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08097E34
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _08097E38
+ ldr r1, _08097E3C
+ bl LZ77UnCompVram
+ ldr r0, _08097E40
+ movs r1, 0xD0
+ movs r2, 0x10
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E1C: .4byte 0x02000000
+_08097E20: .4byte REG_BG3CNT
+_08097E24: .4byte 0x00001e0f
+_08097E28: .4byte gPokemonStorageScrollingBGTile
+_08097E2C: .4byte 0x0600e000
+_08097E30: .4byte 0x040000d4
+_08097E34: .4byte 0x80000010
+_08097E38: .4byte gPokemonStorageScrollingBGTilemap
+_08097E3C: .4byte 0x0600f000
+_08097E40: .4byte gPokemonStorageScrollingBGPalette
+ thumb_func_end sub_8097DE0
+
+ thumb_func_start sub_8097E44
+sub_8097E44: @ 8097E44
+ push {lr}
+ ldr r1, _08097E6C
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08097E66
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x1
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_08097E66:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097E6C: .4byte 0x02000000
+ thumb_func_end sub_8097E44
+
+ thumb_func_start sub_8097E70
+sub_8097E70: @ 8097E70
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _08097F2C
+ ldr r1, _08097F30
+ bl LZ77UnCompVram
+ ldr r0, _08097F34
+ ldr r4, _08097F38
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _08097F3C
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x14
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_809D034
+ ldr r0, _08097F40
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F44
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F48
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08097F4C
+ movs r1, 0xC0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _08097F50
+ adds r0, r4, 0
+ movs r1, 0xF1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xF2
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0xF3
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x16
+ movs r1, 0xF4
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0x12
+ movs r1, 0xF6
+ movs r2, 0x4
+ bl LoadPalette
+ adds r4, 0x2
+ adds r0, r4, 0
+ movs r1, 0xFF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _08097F54
+ bl LoadSpritePalette
+ bl sub_80980D4
+ bl sub_8097F58
+ bl sub_8097FB8
+ bl sub_809801C
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097F2C: .4byte gPSSMenuHeader_Gfx
+_08097F30: .4byte 0x06005000
+_08097F34: .4byte gPSSMenuHeader_Tilemap
+_08097F38: .4byte gUnknown_02039760
+_08097F3C: .4byte 0x06007800
+_08097F40: .4byte gPSSMenu1_Pal
+_08097F44: .4byte gPSSMenu2_Pal
+_08097F48: .4byte gUnknown_083B6D74
+_08097F4C: .4byte gUnknown_083B6D94
+_08097F50: .4byte gUnknownPalette_81E6692+0x2
+_08097F54: .4byte gWaveformSpritePalette
+ thumb_func_end sub_8097E70
+
+ thumb_func_start sub_8097F58
+sub_8097F58: @ 8097F58
+ push {r4,lr}
+ ldr r1, _08097FA4
+ movs r0, 0xD
+ movs r2, 0
+ bl sub_80F7940
+ ldr r4, _08097FA8
+ ldr r1, _08097FAC
+ adds r3, r4, r1
+ str r0, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r3]
+ movs r0, 0x28
+ strh r0, [r1, 0x20]
+ ldr r1, [r3]
+ movs r0, 0x95
+ strh r0, [r1, 0x22]
+ movs r0, 0xD
+ bl GetSpriteTileStartByTag
+ ldr r1, _08097FB0
+ adds r4, r1
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r1, _08097FB4
+ adds r0, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097FA4: .4byte 0x0000dace
+_08097FA8: .4byte 0x02000000
+_08097FAC: .4byte 0x000012ac
+_08097FB0: .4byte 0x000012b8
+_08097FB4: .4byte 0x06010000
+ thumb_func_end sub_8097F58
+
+ thumb_func_start sub_8097FB8
+sub_8097FB8: @ 8097FB8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0809800C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r4, 0
+ ldr r5, _08098010
+_08097FD0:
+ lsls r1, r4, 6
+ subs r1, r4
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08098014
+ movs r2, 0x9
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r4, 2
+ adds r2, r5
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08098018
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08097FD0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809800C: .4byte gWaveformSpriteSheet
+_08098010: .4byte 0x020012b0
+_08098014: .4byte gSpriteTemplate_83B6EFC
+_08098018: .4byte gSprites
+ thumb_func_end sub_8097FB8
+
+ thumb_func_start sub_809801C
+sub_809801C: @ 809801C
+ push {lr}
+ ldr r1, _0809803C
+ ldr r2, _08098040
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_80981F0
+ bl sub_80982B4
+ bl sub_8098350
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809803C: .4byte 0x02000000
+_08098040: .4byte 0x000011f0
+ thumb_func_end sub_809801C
+
+ thumb_func_start BoxSetMosaic
+BoxSetMosaic: @ 8098044
+ push {lr}
+ bl sub_809801C
+ ldr r0, _08098084
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r3, r0, r1
+ ldr r2, [r3]
+ cmp r2, 0
+ beq _08098080
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r3]
+ movs r0, 0xA
+ strh r0, [r1, 0x2E]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, [r3]
+ ldr r0, _08098088
+ str r0, [r1, 0x1C]
+ ldr r2, _0809808C
+ ldr r0, [r3]
+ ldrh r0, [r0, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+_08098080:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098084: .4byte 0x02000000
+_08098088: .4byte sub_8098090
+_0809808C: .4byte REG_MOSAIC
+ thumb_func_end BoxSetMosaic
+
+ thumb_func_start sub_8098090
+sub_8098090: @ 8098090
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080980A6
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+_080980A6:
+ ldr r2, _080980CC
+ ldrh r0, [r3, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080980C8
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x1]
+ ldr r0, _080980D0
+ str r0, [r3, 0x1C]
+_080980C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080980CC: .4byte REG_MOSAIC
+_080980D0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098090
+
+ thumb_func_start sub_80980D4
+sub_80980D4: @ 80980D4
+ push {r4,r5,lr}
+ sub sp, 0x28
+ ldr r0, _08098150
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _08098154
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _08098158
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r1, 0
+ add r5, sp, 0x18
+ ldr r4, _0809815C
+ movs r3, 0
+ ldr r2, _08098160
+_08098102:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08098102
+ movs r1, 0
+ ldr r3, _08098164
+ movs r2, 0
+_08098116:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08098116
+ ldr r0, _08098168
+ movs r1, 0x9C
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080981C4
+ add r0, sp, 0x20
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080981C4
+ b _080981B0
+ .align 2, 0
+_08098150: .4byte gUnknown_083B6DCC
+_08098154: .4byte gUnknown_083B6DD4
+_08098158: .4byte gSpriteTemplate_83B6DDC
+_0809815C: .4byte 0x02002784
+_08098160: .4byte 0x000007ff
+_08098164: .4byte 0x02002704
+_08098168: .4byte 0x02000000
+_0809816C:
+ ldr r2, _0809819C
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r3, r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080981A0
+ adds r0, r1
+ str r0, [r3]
+ lsls r0, r4, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldr r3, _080981A4
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r4, _080981A8
+ adds r2, r4
+ lsls r0, r5, 5
+ ldr r1, _080981AC
+ adds r0, r1
+ str r0, [r2]
+ b _080981C4
+ .align 2, 0
+_0809819C: .4byte 0x02000000
+_080981A0: .4byte gSprites
+_080981A4: .4byte 0x000026fa
+_080981A8: .4byte 0x000026fc
+_080981AC: .4byte 0x06010000
+_080981B0:
+ mov r0, sp
+ movs r1, 0x28
+ movs r2, 0x30
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _0809816C
+_080981C4:
+ ldr r0, _080981E8
+ movs r2, 0x9C
+ lsls r2, 6
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080981DE
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ ldr r0, _080981EC
+ bl FreeSpritePaletteByTag
+_080981DE:
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080981E8: .4byte 0x02000000
+_080981EC: .4byte 0x0000dac7
+ thumb_func_end sub_80980D4
+
+ thumb_func_start sub_80981F0
+sub_80981F0: @ 80981F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r6, _08098274
+ movs r0, 0x9C
+ lsls r0, 6
+ adds r0, r6
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080982A6
+ cmp r4, 0
+ beq _0809829C
+ lsls r0, r4, 3
+ ldr r1, _08098278
+ adds r0, r1
+ ldr r2, _0809827C
+ lsls r1, r4, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _08098280
+ adds r3, r6, r2
+ ldr r2, _08098284
+ adds r5, r6, r2
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r2, 0x1
+ bl sub_800D334
+ ldr r1, _08098288
+ adds r0, r6, r1
+ ldr r0, [r0]
+ ldr r2, _0809828C
+ adds r4, r6, r2
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r1, _08098290
+ adds r0, r6, r1
+ ldr r1, [r0]
+ ldr r2, _08098294
+ adds r0, r5, 0
+ bl CpuSet
+ ldr r2, _08098298
+ adds r0, r6, r2
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _080982A6
+ .align 2, 0
+_08098274: .4byte 0x02000000
+_08098278: .4byte gMonFrontPicTable
+_0809827C: .4byte gMonFrontPicCoords
+_08098280: .4byte 0x00004784
+_08098284: .4byte 0x00002784
+_08098288: .4byte 0x000011e8
+_0809828C: .4byte 0x00002704
+_08098290: .4byte 0x000026fc
+_08098294: .4byte 0x04000200
+_08098298: .4byte 0x000026fa
+_0809829C:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080982A6:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80981F0
+
+ thumb_func_start sub_80982B4
+sub_80982B4: @ 80982B4
+ push {r4,lr}
+ ldr r4, _080982E4
+ ldr r1, _080982E8
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080982F4
+ ldr r2, _080982EC
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r2, 0xC1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ bl sub_80F7A10
+ ldr r1, _080982F0
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _08098302
+ .align 2, 0
+_080982E4: .4byte 0x02000000
+_080982E8: .4byte 0x000011f0
+_080982EC: .4byte 0x000011f7
+_080982F0: .4byte 0x000012ac
+_080982F4:
+ ldr r2, _08098348
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_08098302:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809834C
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x6B
+ movs r1, 0x1
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r4, 0
+ subs r0, 0x46
+ movs r1, 0
+ movs r2, 0xD
+ bl MenuPrint
+ subs r4, 0x21
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098348: .4byte 0x000012ac
+_0809834C: .4byte 0x0200127a
+ thumb_func_end sub_80982B4
+
+ thumb_func_start sub_8098350
+sub_8098350: @ 8098350
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, _080983A0
+ ldr r1, _080983A4
+ adds r0, r5, r1
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080983B4
+ ldr r0, _080983A8
+ ldr r3, _080983AC
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r0, _080983B0
+ adds r5, r0
+_08098382:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08098382
+ b _080983EC
+ .align 2, 0
+_080983A0: .4byte 0x02000000
+_080983A4: .4byte 0x000011f0
+_080983A8: .4byte 0x06007800
+_080983AC: .4byte gUnknown_02039760
+_080983B0: .4byte 0x000012b0
+_080983B4:
+ ldr r0, _080983F4
+ ldr r3, _080983F8
+ movs r1, 0xA
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809D034
+ movs r4, 0
+ ldr r1, _080983FC
+ adds r5, r1
+_080983D4:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r1, r4, 25
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080983D4
+_080983EC:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080983F4: .4byte 0x06007800
+_080983F8: .4byte gUnknown_02039760
+_080983FC: .4byte 0x000012b0
+ thumb_func_end sub_8098350
+
+ thumb_func_start sub_8098400
+sub_8098400: @ 8098400
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _0809847C
+ ldr r2, _08098480
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08098484
+ ldr r1, _08098488
+ bl LZ77UnCompVram
+ ldr r0, _0809848C
+ ldr r5, _08098490
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08098494
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08098498
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _0809849C
+ add r1, sp, 0x10
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080984A0
+ str r1, [r0]
+ str r4, [r0, 0x4]
+ ldr r1, _080984A4
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8098780
+ ldr r0, _080984A8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080984AC
+ movs r0, 0x1
+ bl sub_8098690
+ movs r0, 0x1
+ bl sub_8099200
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x16
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ b _080984CC
+ .align 2, 0
+_0809847C: .4byte REG_BG1CNT
+_08098480: .4byte 0x00000f01
+_08098484: .4byte gPSSMenuMisc_Gfx
+_08098488: .4byte 0x06006800
+_0809848C: .4byte gPSSMenuMisc_Tilemap
+_08098490: .4byte 0x020000a8
+_08098494: .4byte gPSSMenu3_Pal
+_08098498: .4byte gPSSMenu4_Pal
+_0809849C: .4byte 0x06007800
+_080984A0: .4byte 0x040000d4
+_080984A4: .4byte 0x81000400
+_080984A8: .4byte gUnknown_0203847C
+_080984AC:
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0xC
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_809D034
+ movs r0, 0x1
+ bl sub_8098690
+_080984CC:
+ ldr r0, _080984E0
+ ldr r1, _080984E4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080984E0: .4byte 0x02000000
+_080984E4: .4byte 0x000008af
+ thumb_func_end sub_8098400
+
+ thumb_func_start sub_80984E8
+sub_80984E8: @ 80984E8
+ push {lr}
+ ldr r1, _08098510
+ ldr r0, _08098514
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x14
+ strh r0, [r2]
+ ldr r0, _08098518
+ adds r2, r1, r0
+ movs r0, 0x2
+ strh r0, [r2]
+ ldr r0, _0809851C
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0
+ bl sub_8099200
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098510: .4byte 0x02000000
+_08098514: .4byte 0x000008a8
+_08098518: .4byte 0x000008aa
+_0809851C: .4byte 0x000008ad
+ thumb_func_end sub_80984E8
+
+ thumb_func_start sub_8098520
+sub_8098520: @ 8098520
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r3, _08098578
+ ldr r0, _0809857C
+ adds r5, r3, r0
+ ldrb r0, [r5]
+ cmp r0, 0x14
+ beq _08098592
+ ldr r0, _08098580
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ movs r4, 0
+ strh r0, [r1]
+ ldr r0, _08098584
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08098588
+ adds r3, 0xA8
+ str r4, [sp]
+ ldrh r1, [r1]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ ldrh r1, [r2]
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ movs r0, 0x8
+ bl sub_80994A8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _0809858C
+ movs r0, 0x1
+ b _08098594
+ .align 2, 0
+_08098578: .4byte 0x02000000
+_0809857C: .4byte 0x000008ad
+_08098580: .4byte 0x000008a8
+_08098584: .4byte 0x000008aa
+_08098588: .4byte 0x06007800
+_0809858C:
+ ldr r1, _0809859C
+ movs r0, 0x1
+ strb r0, [r1]
+_08098592:
+ movs r0, 0
+_08098594:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809859C: .4byte gUnknown_0203847C
+ thumb_func_end sub_8098520
+
+ thumb_func_start add_to_c3_somehow
+add_to_c3_somehow: @ 80985A0
+ ldr r1, _080985BC
+ ldr r0, _080985C0
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _080985C4
+ adds r2, r1, r0
+ movs r0, 0x16
+ strh r0, [r2]
+ ldr r0, _080985C8
+ adds r1, r0
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_080985BC: .4byte 0x02000000
+_080985C0: .4byte 0x000008a8
+_080985C4: .4byte 0x000008aa
+_080985C8: .4byte 0x000008ad
+ thumb_func_end add_to_c3_somehow
+
+ thumb_func_start sub_80985CC
+sub_80985CC: @ 80985CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r3, _08098640
+ ldr r0, _08098644
+ adds r6, r3, r0
+ ldrb r0, [r6]
+ cmp r0, 0x14
+ beq _0809867A
+ ldr r2, _08098648
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ mov r9, r2
+ strh r0, [r1]
+ ldr r0, _0809864C
+ adds r4, r3, r0
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldr r5, _08098650
+ adds r3, 0xA8
+ mov r8, r3
+ str r2, [sp]
+ ldrh r0, [r1]
+ str r0, [sp, 0x4]
+ movs r7, 0xC
+ str r7, [sp, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl sub_809D034
+ ldrh r2, [r4]
+ movs r4, 0x1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0xA
+ movs r3, 0xC
+ bl sub_809D16C
+ movs r0, 0x8
+ negs r0, r0
+ bl sub_80994A8
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _08098654
+ movs r0, 0x1
+ b _0809867C
+ .align 2, 0
+_08098640: .4byte 0x02000000
+_08098644: .4byte 0x000008ad
+_08098648: .4byte 0x000008a8
+_0809864C: .4byte 0x000008aa
+_08098650: .4byte 0x06007800
+_08098654:
+ ldr r0, _0809868C
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_809954C
+ bl party_compaction
+ str r7, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x15
+ movs r2, 0
+ mov r3, r8
+ bl sub_809D034
+_0809867A:
+ movs r0, 0
+_0809867C:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809868C: .4byte gUnknown_0203847C
+ thumb_func_end sub_80985CC
+
+ thumb_func_start sub_8098690
+sub_8098690: @ 8098690
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080986C0
+ ldr r0, _080986B8
+ ldr r3, _080986BC
+ movs r1, 0xC
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+ b _080986DA
+ .align 2, 0
+_080986B8: .4byte 0x06007800
+_080986BC: .4byte 0x020000a8
+_080986C0:
+ ldr r0, _080986E0
+ ldr r3, _080986E4
+ movs r1, 0xC
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_809D034
+_080986DA:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080986E0: .4byte 0x06007800
+_080986E4: .4byte 0x020000a8
+ thumb_func_end sub_8098690
+
+ thumb_func_start sub_80986E8
+sub_80986E8: @ 80986E8
+ ldr r1, _08098704
+ ldr r2, _08098708
+ adds r0, r1, r2
+ movs r3, 0x1
+ strb r3, [r0]
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r2, r1, r0
+ movs r0, 0x1E
+ strb r0, [r2]
+ ldr r2, _0809870C
+ adds r1, r2
+ strb r3, [r1]
+ bx lr
+ .align 2, 0
+_08098704: .4byte 0x02000000
+_08098708: .4byte 0x000008af
+_0809870C: .4byte 0x000008b1
+ thumb_func_end sub_80986E8
+
+ thumb_func_start sub_8098710
+sub_8098710: @ 8098710
+ push {lr}
+ ldr r0, _0809872C
+ ldr r2, _08098730
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08098728
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8098690
+_08098728:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809872C: .4byte 0x02000000
+_08098730: .4byte 0x000008af
+ thumb_func_end sub_8098710
+
+ thumb_func_start sub_8098734
+sub_8098734: @ 8098734
+ push {lr}
+ ldr r2, _08098774
+ ldr r1, _08098778
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098770
+ movs r0, 0x8B
+ lsls r0, 4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bls _08098770
+ movs r0, 0
+ strb r0, [r1]
+ movs r3, 0
+ ldr r0, _0809877C
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08098768
+ movs r3, 0x1
+_08098768:
+ strb r3, [r1]
+ ldrb r0, [r1]
+ bl sub_8098690
+_08098770:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098774: .4byte 0x02000000
+_08098778: .4byte 0x000008af
+_0809877C: .4byte 0x000008b1
+ thumb_func_end sub_8098734
+
+ thumb_func_start sub_8098780
+sub_8098780: @ 8098780
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r4, 0x1
+ ldr r6, _080987D4
+ movs r5, 0x80
+ lsls r5, 9
+_0809878C:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080987D8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080987A0
+ movs r0, 0x1
+_080987A0:
+ movs r1, 0x10
+ cmp r0, 0
+ beq _080987A8
+ movs r1, 0xC
+_080987A8:
+ lsrs r2, r5, 16
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0xC0
+ lsls r0, 10
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _0809878C
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080987D4: .4byte 0x020000a8
+_080987D8: .4byte gPlayerParty
+ thumb_func_end sub_8098780
+
+ thumb_func_start sub_80987DC
+sub_80987DC: @ 80987DC
+ push {lr}
+ sub sp, 0x10
+ bl sub_8098780
+ ldr r0, _08098804
+ ldr r3, _08098808
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xC
+ str r1, [sp, 0x8]
+ movs r1, 0x16
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_809D034
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098804: .4byte 0x06007800
+_08098808: .4byte 0x020000a8
+ thumb_func_end sub_80987DC
+
+ thumb_func_start sub_809880C
+sub_809880C: @ 809880C
+ push {lr}
+ ldr r0, _08098828
+ ldr r1, _0809882C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_80984E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098828: .4byte 0x02000000
+_0809882C: .4byte 0x000008ae
+ thumb_func_end sub_809880C
+
+ thumb_func_start sub_8098830
+sub_8098830: @ 8098830
+ push {r4,r5,lr}
+ ldr r5, _08098848
+ ldr r0, _0809884C
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08098866
+ cmp r0, 0x1
+ bgt _08098850
+ cmp r0, 0
+ beq _08098856
+ b _08098890
+ .align 2, 0
+_08098848: .4byte 0x02000000
+_0809884C: .4byte 0x000008ae
+_08098850:
+ cmp r0, 0x2
+ beq _0809888C
+ b _08098890
+_08098856:
+ bl sub_8098520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ bl sub_809B068
+ b _0809887E
+_08098866:
+ bl sub_809AC00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098890
+ ldr r1, _08098888
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809887E
+ bl BoxSetMosaic
+_0809887E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08098890
+ .align 2, 0
+_08098888: .4byte 0x000011f6
+_0809888C:
+ movs r0, 0
+ b _08098892
+_08098890:
+ movs r0, 0x1
+_08098892:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098830
+
+ thumb_func_start sub_8098898
+sub_8098898: @ 8098898
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080988C4
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bls _080988B8
+ b _080989F4
+_080988B8:
+ lsls r0, 2
+ ldr r1, _080988C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080988C4: .4byte gUnknown_083B6DF4
+_080988C8: .4byte _080988CC
+ .align 2, 0
+_080988CC:
+ .4byte _080989F4
+ .4byte _08098930
+ .4byte _080988E8
+ .4byte _08098974
+ .4byte _08098954
+ .4byte _08098910
+ .4byte _080989B8
+_080988E8:
+ ldr r4, _08098904
+ ldr r1, _08098908
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _0809890C
+ adds r4, r0
+ adds r0, r2, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098904: .4byte 0x02002694
+_08098908: .4byte gUnknown_083B6DF4
+_0809890C: .4byte 0xffffeb66
+_08098910:
+ ldr r4, _08098928
+ ldr r1, _0809892C
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r4, 0x50
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_08098928: .4byte 0x02002694
+_0809892C: .4byte gUnknown_083B6DF4
+_08098930:
+ ldr r0, _08098948
+ ldr r2, _0809894C
+ adds r1, r0, r2
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098950
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_08098948: .4byte 0x02002694
+_0809894C: .4byte 0xffffeb66
+_08098950: .4byte gUnknown_083B6DF4
+_08098954:
+ ldr r0, _0809896C
+ adds r1, r0, 0
+ adds r1, 0x50
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08098970
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ b _080989FE
+ .align 2, 0
+_0809896C: .4byte 0x02002694
+_08098970: .4byte gUnknown_083B6DF4
+_08098974:
+ ldr r1, _080989AC
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ adds r4, 0x1
+ ldr r5, _080989B0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080989B4
+ adds r5, r0
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989AC: .4byte gUnknown_083B6DF4
+_080989B0: .4byte 0x02002694
+_080989B4: .4byte 0xffffeb66
+_080989B8:
+ ldr r1, _080989EC
+ lsls r0, r5, 3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r4, r6, r4
+ subs r4, 0x1
+ ldr r5, _080989F0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl StringCopy
+ adds r2, r0, 0
+ subs r0, r2, 0x1
+ adds r5, 0x50
+ adds r1, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r1, r4, 0
+ b _080989FE
+ .align 2, 0
+_080989EC: .4byte gUnknown_083B6DF4
+_080989F0: .4byte 0x02002694
+_080989F4:
+ ldr r0, _08098A2C
+ ldr r2, _08098A30
+ lsls r1, r5, 3
+ adds r1, r2
+ ldr r1, [r1]
+_080989FE:
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _08098A34
+ adds r3, r0, 0
+ subs r3, 0x12
+ cmp r2, r0
+ bcs _08098A18
+ movs r1, 0
+_08098A10:
+ strb r1, [r2]
+ adds r2, 0x1
+ cmp r2, r0
+ bcc _08098A10
+_08098A18:
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r3, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098A2C: .4byte 0x02002694
+_08098A30: .4byte gUnknown_083B6DF4
+_08098A34: .4byte 0x020026a6
+ thumb_func_end sub_8098898
+
+ thumb_func_start sub_8098A38
+sub_8098A38: @ 8098A38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0
+ bl DisplayYesNoMenu
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A38
+
+ thumb_func_start sub_8098A5C
+sub_8098A5C: @ 8098A5C
+ push {lr}
+ bl sub_8072DEC
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A5C
+
+ thumb_func_start sub_8098A80
+sub_8098A80: @ 8098A80
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0xC
+ bl sub_809CDEC
+ movs r0, 0xD
+ bl sub_809CDEC
+ movs r0, 0xE
+ bl sub_809CDEC
+ movs r0, 0xF
+ bl sub_809CDEC
+ bl sub_809CE84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098A80
+
+ thumb_func_start sub_8098AA8
+sub_8098AA8: @ 8098AA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_809CDCC
+ cmp r4, 0x1
+ beq _08098AE6
+ cmp r4, 0x1
+ bgt _08098AC2
+ cmp r4, 0
+ beq _08098ACC
+ b _08098B32
+_08098AC2:
+ cmp r5, 0x2
+ beq _08098B00
+ cmp r5, 0x3
+ beq _08098B1A
+ b _08098B32
+_08098ACC:
+ movs r0, 0x10
+ bl sub_809CDEC
+ movs r0, 0x11
+ bl sub_809CDEC
+ movs r0, 0x12
+ bl sub_809CDEC
+ movs r0, 0x13
+ bl sub_809CDEC
+ b _08098B32
+_08098AE6:
+ movs r0, 0x14
+ bl sub_809CDEC
+ movs r0, 0x15
+ bl sub_809CDEC
+ movs r0, 0x16
+ bl sub_809CDEC
+ movs r0, 0x17
+ bl sub_809CDEC
+ b _08098B32
+_08098B00:
+ movs r0, 0x18
+ bl sub_809CDEC
+ movs r0, 0x19
+ bl sub_809CDEC
+ movs r0, 0x1A
+ bl sub_809CDEC
+ movs r0, 0x1B
+ bl sub_809CDEC
+ b _08098B32
+_08098B1A:
+ movs r0, 0x1C
+ bl sub_809CDEC
+ movs r0, 0x1D
+ bl sub_809CDEC
+ movs r0, 0x1E
+ bl sub_809CDEC
+ movs r0, 0x1F
+ bl sub_809CDEC
+_08098B32:
+ bl sub_809CE84
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098AA8
+
+ thumb_func_start get_preferred_box
+get_preferred_box: @ 8098B3C
+ ldr r0, _08098B44
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08098B44: .4byte gPokemonStorage
+ thumb_func_end get_preferred_box
+
+ thumb_func_start sub_8098B48
+sub_8098B48: @ 8098B48
+ push {r4,r5,lr}
+ bl sub_809D51C
+ movs r2, 0
+ ldr r1, _08098BD8
+ ldr r0, [r1]
+ ldr r4, _08098BDC
+ adds r3, r0, r4
+ movs r4, 0
+ adds r5, r1, 0
+_08098B5C:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B5C
+ movs r2, 0
+ ldr r0, _08098BD8
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r3, r0, r1
+ movs r1, 0
+_08098B7A:
+ lsls r0, r2, 1
+ adds r0, r3, r0
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08098B7A
+ movs r2, 0
+ ldr r0, _08098BD8
+ ldr r0, [r0]
+ ldr r4, _08098BE0
+ adds r3, r0, r4
+ movs r1, 0
+_08098B96:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _08098B96
+ movs r2, 0
+ ldr r0, _08098BD8
+ ldr r0, [r0]
+ ldr r1, _08098BE4
+ adds r3, r0, r1
+ movs r1, 0
+_08098BB2:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098BB2
+ ldr r0, [r5]
+ ldr r2, _08098BE8
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r4, _08098BEC
+ adds r0, r4
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098BD8: .4byte gUnknown_083B6DB4
+_08098BDC: .4byte 0x000010d0
+_08098BE0: .4byte 0x00001038
+_08098BE4: .4byte 0x00001050
+_08098BE8: .4byte 0x00001034
+_08098BEC: .4byte 0x00000d5c
+ thumb_func_end sub_8098B48
+
+ thumb_func_start sub_8098BF0
+sub_8098BF0: @ 8098BF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _08098C38
+ ldr r5, [r0]
+ ldr r0, _08098C3C
+ adds r4, r5, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x7
+ str r1, [sp, 0x4]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8099AFC
+ ldr r1, _08098C40
+ adds r5, r1
+ str r0, [r5]
+ ldr r1, _08098C44
+ str r1, [r0, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098C38: .4byte gUnknown_083B6DB4
+_08098C3C: .4byte 0x000025b4
+_08098C40: .4byte 0x00001034
+_08098C44: .4byte sub_80999C4
+ thumb_func_end sub_8098BF0
+
+ thumb_func_start sub_8098C48
+sub_8098C48: @ 8098C48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _08098CCC
+ adds r6, r0, r1
+ movs r0, 0
+ mov r8, r0
+ movs r7, 0
+_08098C6A:
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+_08098C70:
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08098CD8
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ lsls r2, r5, 1
+ adds r2, r5
+ lsls r2, 19
+ movs r3, 0xC8
+ lsls r3, 15
+ adds r2, r3
+ asrs r2, 16
+ lsls r3, r7, 1
+ adds r3, r7
+ lsls r3, 19
+ movs r0, 0xB0
+ lsls r0, 14
+ adds r3, r0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ asrs r3, 16
+ bl sub_8099AFC
+ ldr r1, _08098CD0
+ ldr r1, [r1]
+ mov r3, r8
+ lsls r2, r3, 2
+ ldr r3, _08098CD4
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ b _08098CE8
+ .align 2, 0
+_08098CCC: .4byte gUnknown_020300A4
+_08098CD0: .4byte gUnknown_083B6DB4
+_08098CD4: .4byte 0x00001050
+_08098CD8:
+ ldr r0, _08098D18
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08098D1C
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+_08098CE8:
+ adds r6, 0x50
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08098C70
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _08098C6A
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098D18: .4byte gUnknown_083B6DB4
+_08098D1C: .4byte 0x00001050
+ thumb_func_end sub_8098C48
+
+ thumb_func_start sub_8098D20
+sub_8098D20: @ 8098D20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r2, r1, 4
+ subs r2, r1
+ lsls r2, 5
+ lsls r0, r4, 2
+ mov r9, r0
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _08098DD4
+ adds r0, r1
+ adds r7, r2, r0
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _08098DC4
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r0, r6, 24
+ lsrs r0, 24
+ lsls r5, r0, 1
+ adds r5, r0
+ lsls r5, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r5, r1
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 19
+ movs r2, 0xB0
+ lsls r2, 14
+ adds r4, r2
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r8
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8099AFC
+ ldr r1, _08098DD8
+ ldr r1, [r1]
+ ldr r2, _08098DDC
+ adds r1, r2
+ add r1, r9
+ str r0, [r1]
+_08098DC4:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098DD4: .4byte gUnknown_020300A4
+_08098DD8: .4byte gUnknown_083B6DB4
+_08098DDC: .4byte 0x00001050
+ thumb_func_end sub_8098D20
+
+ thumb_func_start sub_8098DE0
+sub_8098DE0: @ 8098DE0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ ldr r0, _08098E18
+ ldr r0, [r0]
+ ldr r1, _08098E1C
+ adds r3, r0, r1
+ movs r6, 0x1
+ ldr r5, _08098E20
+_08098DF4:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08098E08
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ strh r6, [r0, 0x36]
+ ldr r0, [r1]
+ str r5, [r0, 0x1C]
+_08098E08:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _08098DF4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E18: .4byte gUnknown_083B6DB4
+_08098E1C: .4byte 0x00001050
+_08098E20: .4byte sub_8098E68
+ thumb_func_end sub_8098DE0
+
+ thumb_func_start sub_8098E24
+sub_8098E24: @ 8098E24
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E40
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ b _08098E56
+_08098E40:
+ ldr r0, _08098E5C
+ ldr r1, [r0]
+ ldr r3, _08098E60
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r2, 0x34]
+ strh r0, [r2, 0x20]
+ ldr r0, _08098E64
+ str r0, [r2, 0x1C]
+_08098E56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E5C: .4byte gUnknown_083B6DB4
+_08098E60: .4byte 0x00001178
+_08098E64: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E24
+
+ thumb_func_start sub_8098E68
+sub_8098E68: @ 8098E68
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x36]
+ movs r3, 0x36
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08098E7C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x36]
+ b _08098E98
+_08098E7C:
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ subs r0, 0x45
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB6
+ bls _08098E98
+ ldr r0, _08098E9C
+ str r0, [r2, 0x1C]
+_08098E98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098E9C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8098E68
+
+ thumb_func_start sub_8098EA0
+sub_8098EA0: @ 8098EA0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r0, _08098ED8
+ ldr r0, [r0]
+ ldr r1, _08098EDC
+ adds r7, r0, r1
+_08098EB0:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08098EC2
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08098EC2:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _08098EB0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098ED8: .4byte gUnknown_083B6DB4
+_08098EDC: .4byte 0x00001050
+ thumb_func_end sub_8098EA0
+
+ thumb_func_start sub_8098EE0
+sub_8098EE0: @ 8098EE0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 16
+ movs r0, 0x2C
+ str r0, [sp, 0x10]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 19
+ movs r1, 0xC8
+ lsls r1, 15
+ adds r0, r1
+ lsrs r0, 16
+ mov r10, r0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsrs r3, r2, 16
+ str r3, [sp, 0xC]
+ asrs r2, 16
+ adds r1, r0, 0
+ muls r1, r2
+ mov r4, r10
+ subs r1, r4, r1
+ movs r0, 0x12
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ mov r9, r0
+ ldr r0, _08098FF8
+ ldr r0, [r0]
+ ldr r2, _08098FFC
+ adds r2, r0
+ mov r8, r2
+ ldr r3, _08099000
+ adds r3, r0, r3
+ str r3, [sp, 0x20]
+ lsls r1, 16
+ str r1, [sp, 0x1C]
+_08098F42:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r7, r6, 2
+ adds r1, r7, r6
+ lsls r1, 4
+ ldr r2, _08099004
+ adds r4, r1, r2
+ adds r0, r4
+ movs r1, 0x41
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08098FC8
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r0, r4
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ ldr r2, [sp, 0x10]
+ lsls r3, r2, 16
+ asrs r3, 16
+ movs r0, 0x2
+ str r0, [sp]
+ ldr r4, [sp, 0x18]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ ldr r4, [sp, 0x1C]
+ asrs r2, r4, 16
+ bl sub_8099AFC
+ ldr r2, [sp, 0x20]
+ adds r1, r2, r7
+ str r0, [r1]
+ cmp r0, 0
+ beq _08098FC8
+ mov r3, sp
+ ldrh r3, [r3, 0x8]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ mov r4, sp
+ ldrh r4, [r4, 0xC]
+ strh r4, [r0, 0x32]
+ ldr r0, [r1]
+ mov r2, r10
+ strh r2, [r0, 0x34]
+ ldr r1, [r1]
+ ldr r0, _08099008
+ str r0, [r1, 0x1C]
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+_08098FC8:
+ adds r0, r6, 0x6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x10]
+ adds r0, 0x18
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _08098F42
+ ldr r0, [sp, 0x14]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098FF8: .4byte gUnknown_083B6DB4
+_08098FFC: .4byte 0x0000117d
+_08099000: .4byte 0x00001050
+_08099004: .4byte gUnknown_020300A4
+_08099008: .4byte sub_8098E24
+ thumb_func_end sub_8098EE0
+
+ thumb_func_start sub_809900C
+sub_809900C: @ 809900C
+ push {r4-r6,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _08099058
+ ldr r5, [r4]
+ ldr r3, _0809905C
+ adds r2, r5, r3
+ movs r3, 0
+ strb r3, [r2]
+ ldr r6, _08099060
+ adds r2, r5, r6
+ strb r0, [r2]
+ ldr r2, _08099064
+ adds r0, r5, r2
+ strb r1, [r0]
+ subs r6, 0xB
+ adds r2, r5, r6
+ movs r0, 0x20
+ strh r0, [r2]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ negs r0, r0
+ adds r6, 0x4
+ adds r2, r5, r6
+ strh r0, [r2]
+ ldr r2, _08099068
+ adds r0, r5, r2
+ strh r3, [r0]
+ cmp r1, 0
+ ble _08099070
+ ldr r3, _0809906C
+ adds r1, r5, r3
+ movs r0, 0
+ b _08099076
+ .align 2, 0
+_08099058: .4byte gUnknown_083B6DB4
+_0809905C: .4byte 0x0000117c
+_08099060: .4byte 0x0000117d
+_08099064: .4byte 0x0000117b
+_08099068: .4byte 0x00001178
+_0809906C: .4byte 0x0000117a
+_08099070:
+ ldr r6, _080990A0
+ adds r1, r5, r6
+ movs r0, 0x5
+_08099076:
+ strb r0, [r1]
+ ldr r2, [r4]
+ ldr r1, _080990A0
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x64
+ ldr r3, _080990A4
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r6, _080990A8
+ adds r2, r6
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bl sub_8098DE0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080990A0: .4byte 0x0000117a
+_080990A4: .4byte 0x00001174
+_080990A8: .4byte 0x00001176
+ thumb_func_end sub_809900C
+
+ thumb_func_start sub_80990AC
+sub_80990AC: @ 80990AC
+ push {r4-r6,lr}
+ ldr r0, _080990D4
+ ldr r4, [r0]
+ ldr r0, _080990D8
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _080990C0
+ subs r0, 0x1
+ strh r0, [r3]
+_080990C0:
+ ldr r1, _080990DC
+ adds r6, r4, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08099138
+ cmp r0, 0x1
+ bgt _080990E0
+ cmp r0, 0
+ beq _080990E8
+ b _080991F0
+ .align 2, 0
+_080990D4: .4byte gUnknown_083B6DB4
+_080990D8: .4byte 0x00001172
+_080990DC: .4byte 0x0000117c
+_080990E0:
+ cmp r0, 0x2
+ bne _080990E6
+ b _080991E0
+_080990E6:
+ b _080991F0
+_080990E8:
+ ldr r2, _0809912C
+ adds r5, r4, r2
+ ldr r3, _08099130
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBA
+ bhi _08099104
+ b _080991F8
+_08099104:
+ adds r2, 0x6
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_8098EA0
+ ldr r3, _08099134
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080991F8
+ .align 2, 0
+_0809912C: .4byte 0x00001174
+_08099130: .4byte 0x00001176
+_08099134: .4byte 0x0000117b
+_08099138:
+ ldr r2, _08099194
+ adds r1, r4, r2
+ ldr r5, _08099198
+ adds r2, r4, r5
+ ldrh r0, [r2]
+ ldrh r5, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ ldr r0, _0809919C
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ ldrh r1, [r3]
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ bl sub_8098EE0
+ ldr r2, _080991A0
+ adds r1, r4, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, _080991A4
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _08099178
+ ldrb r0, [r5]
+ cmp r0, 0x5
+ beq _08099182
+_08099178:
+ cmp r1, 0
+ bge _080991B0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080991B0
+_08099182:
+ ldr r0, _080991A8
+ ldr r1, [r0]
+ ldr r2, _080991AC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080991F8
+ .align 2, 0
+_08099194: .4byte 0x00001174
+_08099198: .4byte 0x00001176
+_0809919C: .4byte 0x0000117a
+_080991A0: .4byte 0x00001178
+_080991A4: .4byte 0x0000117b
+_080991A8: .4byte gUnknown_083B6DB4
+_080991AC: .4byte 0x0000117c
+_080991B0:
+ ldr r0, _080991D0
+ ldr r1, [r0]
+ ldr r5, _080991D4
+ adds r3, r1, r5
+ ldr r2, _080991D8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldrb r5, [r3]
+ adds r0, r5
+ movs r2, 0
+ strb r0, [r3]
+ ldr r0, _080991DC
+ adds r1, r0
+ strb r2, [r1]
+ b _080991F8
+ .align 2, 0
+_080991D0: .4byte gUnknown_083B6DB4
+_080991D4: .4byte 0x0000117a
+_080991D8: .4byte 0x0000117b
+_080991DC: .4byte 0x0000117c
+_080991E0:
+ ldr r1, _080991F4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080991F8
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080991F0:
+ movs r0, 0
+ b _080991FA
+ .align 2, 0
+_080991F4: .4byte 0x00001178
+_080991F8:
+ movs r0, 0x1
+_080991FA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80990AC
+
+ thumb_func_start sub_8099200
+sub_8099200: @ 8099200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080992A0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x68
+ movs r3, 0x40
+ bl sub_8099AFC
+ ldr r1, _080992A4
+ ldr r1, [r1]
+ ldr r2, _080992A8
+ adds r1, r2
+ str r0, [r1]
+ movs r7, 0x1
+ movs r6, 0x1
+_08099246:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080992A0
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080992AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ subs r0, r6, 0x1
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 19
+ movs r0, 0x80
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x98
+ bl sub_8099AFC
+ ldr r1, _080992A4
+ ldr r1, [r1]
+ lsls r2, r6, 2
+ ldr r3, _080992A8
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080992BA
+ .align 2, 0
+_080992A0: .4byte gPlayerParty
+_080992A4: .4byte gUnknown_083B6DB4
+_080992A8: .4byte 0x00001038
+_080992AC:
+ ldr r0, _08099308
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0809930C
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080992BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _08099246
+ mov r3, r8
+ cmp r3, 0
+ bne _080992FA
+ movs r6, 0
+ cmp r6, r7
+ bcs _080992FA
+ ldr r0, _08099308
+ ldr r0, [r0]
+ ldr r1, _0809930C
+ adds r3, r0, r1
+ movs r4, 0x4
+_080992DA:
+ lsls r1, r6, 2
+ adds r1, r3, r1
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0xA0
+ strh r0, [r2, 0x22]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080992DA
+_080992FA:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099308: .4byte gUnknown_083B6DB4
+_0809930C: .4byte 0x00001038
+ thumb_func_end sub_8099200
+
+ thumb_func_start sub_8099310
+sub_8099310: @ 8099310
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08099368
+ ldr r2, [r0]
+ ldr r0, _0809936C
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ movs r6, 0
+ mov r8, r2
+ ldr r7, _0809936C
+ add r7, r8
+_0809932C:
+ lsls r1, r5, 2
+ ldr r0, _08099370
+ add r0, r8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099354
+ cmp r5, r6
+ beq _0809934E
+ adds r1, r6, 0
+ bl sub_8099388
+ movs r0, 0
+ str r0, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_0809934E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08099354:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809932C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099368: .4byte gUnknown_083B6DB4
+_0809936C: .4byte 0x00001171
+_08099370: .4byte 0x00001038
+ thumb_func_end sub_8099310
+
+ thumb_func_start sub_8099374
+sub_8099374: @ 8099374
+ ldr r0, _08099380
+ ldr r0, [r0]
+ ldr r1, _08099384
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08099380: .4byte gUnknown_083B6DB4
+_08099384: .4byte 0x00001171
+ thumb_func_end sub_8099374
+
+ thumb_func_start sub_8099388
+sub_8099388: @ 8099388
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ strh r1, [r2, 0x30]
+ cmp r1, 0
+ bne _0809939C
+ movs r3, 0x68
+ movs r4, 0x40
+ b _080993AE
+_0809939C:
+ movs r3, 0x98
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 19
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+_080993AE:
+ ldrh r0, [r2, 0x20]
+ lsls r0, 3
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x22]
+ lsls r0, 3
+ strh r0, [r2, 0x34]
+ lsls r1, r3, 3
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080993C8
+ adds r0, 0x7
+_080993C8:
+ asrs r0, 3
+ strh r0, [r2, 0x36]
+ lsls r0, r4, 16
+ asrs r0, 13
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ cmp r0, 0
+ bge _080993DC
+ adds r0, 0x7
+_080993DC:
+ asrs r0, 3
+ strh r0, [r2, 0x38]
+ movs r0, 0x8
+ strh r0, [r2, 0x3A]
+ ldr r0, _080993F0
+ str r0, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080993F0: .4byte sub_80993F4
+ thumb_func_end sub_8099388
+
+ thumb_func_start sub_80993F4
+sub_80993F4: @ 80993F4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08099424
+ ldrh r0, [r3, 0x36]
+ ldrh r4, [r3, 0x32]
+ adds r0, r4
+ strh r0, [r3, 0x32]
+ ldrh r1, [r3, 0x38]
+ ldrh r4, [r3, 0x34]
+ adds r1, r4
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r3, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r3, 0x22]
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08099468
+_08099424:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08099434
+ movs r0, 0x68
+ strh r0, [r3, 0x20]
+ movs r0, 0x40
+ b _08099446
+_08099434:
+ movs r0, 0x98
+ strh r0, [r3, 0x20]
+ movs r4, 0x30
+ ldrsh r1, [r3, r4]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x10
+_08099446:
+ strh r0, [r3, 0x22]
+ ldr r0, _08099470
+ str r0, [r3, 0x1C]
+ ldr r0, _08099474
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ ldr r4, _08099478
+ adds r0, r2, r4
+ adds r0, r1
+ str r3, [r0]
+ ldr r0, _0809947C
+ adds r2, r0
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_08099468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099470: .4byte SpriteCallbackDummy
+_08099474: .4byte gUnknown_083B6DB4
+_08099478: .4byte 0x00001038
+_0809947C: .4byte 0x00001171
+ thumb_func_end sub_80993F4
+
+ thumb_func_start sub_8099480
+sub_8099480: @ 8099480
+ push {r4,lr}
+ ldr r0, _080994A0
+ ldr r0, [r0]
+ ldr r1, _080994A4
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099498
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_08099498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080994A0: .4byte gUnknown_083B6DB4
+_080994A4: .4byte 0x00001034
+ thumb_func_end sub_8099480
+
+ thumb_func_start sub_80994A8
+sub_80994A8: @ 80994A8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r1, _080994FC
+ ldr r1, [r1]
+ ldr r2, _08099500
+ adds r5, r1, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r6, 0x5
+ negs r6, r6
+_080994BC:
+ lsls r0, r3, 2
+ adds r2, r5, r0
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _0809950E
+ ldrh r0, [r1, 0x22]
+ adds r0, r4, r0
+ strh r0, [r1, 0x22]
+ ldr r2, [r2]
+ ldrh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x22]
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _08099504
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809950E
+ .align 2, 0
+_080994FC: .4byte gUnknown_083B6DB4
+_08099500: .4byte 0x00001038
+_08099504:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+_0809950E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080994BC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80994A8
+
+ thumb_func_start sub_8099520
+sub_8099520: @ 8099520
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _08099544
+ ldr r1, [r1]
+ lsrs r0, 22
+ ldr r2, _08099548
+ adds r1, r2
+ adds r4, r1, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809953E
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809953E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099544: .4byte gUnknown_083B6DB4
+_08099548: .4byte 0x00001038
+ thumb_func_end sub_8099520
+
+ thumb_func_start sub_809954C
+sub_809954C: @ 809954C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _0809957C
+ ldr r0, [r0]
+ ldr r1, _08099580
+ adds r6, r0, r1
+_08099558:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0809956A
+ bl sub_8099BE0
+ movs r0, 0
+ str r0, [r4]
+_0809956A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08099558
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809957C: .4byte gUnknown_083B6DB4
+_08099580: .4byte 0x00001038
+ thumb_func_end sub_809954C
+
+ thumb_func_start sub_8099584
+sub_8099584: @ 8099584
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ bne _080995B4
+ ldr r3, _080995AC
+ ldr r0, [r3]
+ ldr r5, _080995B0
+ adds r2, r0, r5
+ lsls r1, 2
+ adds r5, 0x4
+ adds r0, r5
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r4, [r0]
+ b _080995D0
+ .align 2, 0
+_080995AC: .4byte gUnknown_083B6DB4
+_080995B0: .4byte 0x00001034
+_080995B4:
+ cmp r4, 0x1
+ bne _080995F4
+ ldr r3, _080995FC
+ ldr r0, [r3]
+ ldr r1, _08099600
+ adds r2, r0, r1
+ lsls r1, r5, 2
+ ldr r4, _08099604
+ adds r0, r4
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ movs r1, 0
+ str r1, [r0]
+_080995D0:
+ ldr r2, [r3]
+ ldr r5, _08099600
+ adds r2, r5
+ ldr r1, [r2]
+ ldr r0, _08099608
+ str r0, [r1, 0x1C]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080995F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080995FC: .4byte gUnknown_083B6DB4
+_08099600: .4byte 0x00001034
+_08099604: .4byte 0x00001050
+_08099608: .4byte sub_80999C4
+ thumb_func_end sub_8099584
+
+ thumb_func_start sub_809960C
+sub_809960C: @ 809960C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xE
+ bne _08099654
+ ldr r4, _08099648
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ ldr r2, _0809964C
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _08099650
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r3]
+ adds r0, 0x43
+ movs r1, 0xB
+ strb r1, [r0]
+ b _0809968A
+ .align 2, 0
+_08099648: .4byte gUnknown_083B6DB4
+_0809964C: .4byte 0x00001038
+_08099650: .4byte 0x00001034
+_08099654:
+ ldr r5, _080996A0
+ ldr r0, [r5]
+ lsls r1, r6, 2
+ ldr r2, _080996A4
+ adds r3, r0, r2
+ adds r3, r1
+ ldr r1, _080996A8
+ adds r0, r1
+ ldr r2, [r0]
+ str r2, [r3]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r4, [r3]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl __umodsi3
+ movs r1, 0x12
+ subs r1, r0
+ adds r4, 0x43
+ strb r1, [r4]
+ adds r4, r5, 0
+_0809968A:
+ ldr r1, [r4]
+ ldr r2, _080996A8
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r0, _080996AC
+ str r0, [r2, 0x1C]
+ movs r0, 0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080996A0: .4byte gUnknown_083B6DB4
+_080996A4: .4byte 0x00001050
+_080996A8: .4byte 0x00001034
+_080996AC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809960C
+
+ thumb_func_start sub_80996B0
+sub_80996B0: @ 80996B0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0xE
+ bne _080996D8
+ ldr r3, _080996CC
+ ldr r1, [r3]
+ ldr r0, _080996D0
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _080996D4
+ b _080996E4
+ .align 2, 0
+_080996CC: .4byte gUnknown_083B6DB4
+_080996D0: .4byte 0x000010c8
+_080996D4: .4byte 0x00001038
+_080996D8:
+ ldr r3, _08099704
+ ldr r1, [r3]
+ ldr r0, _08099708
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _0809970C
+_080996E4:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ ldr r2, _08099710
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldr r0, _08099714
+ str r0, [r2, 0x1C]
+ ldr r4, _08099718
+ adds r1, r4
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099704: .4byte gUnknown_083B6DB4
+_08099708: .4byte 0x000010c8
+_0809970C: .4byte 0x00001050
+_08099710: .4byte 0x00001034
+_08099714: .4byte SpriteCallbackDummy
+_08099718: .4byte 0x00001170
+ thumb_func_end sub_80996B0
+
+ thumb_func_start sub_809971C
+sub_809971C: @ 809971C
+ push {r4-r7,lr}
+ ldr r0, _08099730
+ ldr r2, [r0]
+ ldr r0, _08099734
+ adds r7, r2, r0
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _08099738
+ movs r0, 0
+ b _08099800
+ .align 2, 0
+_08099730: .4byte gUnknown_083B6DB4
+_08099734: .4byte 0x00001170
+_08099738:
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809975E
+ ldr r1, _08099808
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x1
+ strh r0, [r1, 0x22]
+ ldr r4, _0809980C
+ adds r0, r2, r4
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+_0809975E:
+ ldr r0, _08099808
+ adds r5, r2, r0
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r3, _08099810
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bge _08099778
+ adds r0, 0xF
+_08099778:
+ asrs r0, 4
+ strh r0, [r1, 0x24]
+ ldr r0, _0809980C
+ adds r6, r2, r0
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _08099792
+ adds r0, 0xF
+_08099792:
+ asrs r0, 4
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r7]
+ cmp r0, 0x8
+ bne _080997DE
+ ldr r4, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ movs r2, 0xC
+ ands r2, r0
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldr r2, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r2, 0x43
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x5]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080997DE:
+ ldrb r0, [r7]
+ cmp r0, 0x10
+ bne _080997FE
+ ldr r1, [r6]
+ ldr r0, [r5]
+ ldr r0, [r0]
+ str r0, [r6]
+ ldr r0, [r5]
+ str r1, [r0]
+ ldr r1, [r6]
+ ldr r0, _08099814
+ str r0, [r1, 0x1C]
+ ldr r0, [r5]
+ ldr r1, [r0]
+ ldr r0, _08099818
+ str r0, [r1, 0x1C]
+_080997FE:
+ movs r0, 0x1
+_08099800:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099808: .4byte 0x000010c8
+_0809980C: .4byte 0x00001034
+_08099810: .4byte gSineTable
+_08099814: .4byte sub_80999C4
+_08099818: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809971C
+
+ thumb_func_start sub_809981C
+sub_809981C: @ 809981C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0x1
+ beq _08099858
+ cmp r0, 0x1
+ bgt _08099836
+ cmp r0, 0
+ beq _0809983C
+ b _080998C0
+_08099836:
+ cmp r2, 0x2
+ beq _0809987C
+ b _080998C0
+_0809983C:
+ ldr r3, _0809984C
+ ldr r1, [r3]
+ ldr r0, _08099850
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099854
+ b _08099864
+ .align 2, 0
+_0809984C: .4byte gUnknown_083B6DB4
+_08099850: .4byte 0x000010cc
+_08099854: .4byte 0x00001038
+_08099858:
+ ldr r3, _08099870
+ ldr r1, [r3]
+ ldr r0, _08099874
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, _08099878
+_08099864:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0
+ b _0809988A
+ .align 2, 0
+_08099870: .4byte gUnknown_083B6DB4
+_08099874: .4byte 0x000010cc
+_08099878: .4byte 0x00001050
+_0809987C:
+ ldr r0, _080998C8
+ ldr r1, [r0]
+ ldr r3, _080998CC
+ adds r2, r1, r3
+ ldr r4, _080998D0
+ adds r1, r4
+ str r1, [r2]
+_0809988A:
+ ldr r0, [r0]
+ ldr r1, _080998CC
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080998C0
+ bl InitSpriteAffineAnim
+ ldr r0, [r4]
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ ldr r0, _080998D4
+ str r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_080998C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080998C8: .4byte gUnknown_083B6DB4
+_080998CC: .4byte 0x000010cc
+_080998D0: .4byte 0x00001034
+_080998D4: .4byte gUnknown_083B6F5C
+ thumb_func_end sub_809981C
+
+ thumb_func_start sub_80998D8
+sub_80998D8: @ 80998D8
+ push {lr}
+ ldr r0, _080998FC
+ ldr r0, [r0]
+ ldr r1, _08099900
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080998F8
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _08099904
+_080998F8:
+ movs r0, 0
+ b _0809991A
+ .align 2, 0
+_080998FC: .4byte gUnknown_083B6DB4
+_08099900: .4byte 0x000010cc
+_08099904:
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08099918
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+_08099918:
+ movs r0, 0x1
+_0809991A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80998D8
+
+ thumb_func_start sub_8099920
+sub_8099920: @ 8099920
+ push {r4,lr}
+ ldr r0, _08099950
+ ldr r0, [r0]
+ ldr r1, _08099954
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809994A
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl sub_8099BE0
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_0809994A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099950: .4byte gUnknown_083B6DB4
+_08099954: .4byte 0x000010cc
+ thumb_func_end sub_8099920
+
+ thumb_func_start sub_8099958
+sub_8099958: @ 8099958
+ push {lr}
+ ldr r0, _08099988
+ ldr r0, [r0]
+ ldr r1, _0809998C
+ adds r3, r0, r1
+ ldr r0, [r3]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08099982
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08099982:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099988: .4byte gUnknown_083B6DB4
+_0809998C: .4byte 0x000010cc
+ thumb_func_end sub_8099958
+
+ thumb_func_start sub_8099990
+sub_8099990: @ 8099990
+ push {lr}
+ ldr r0, _080999A4
+ ldr r0, [r0]
+ ldr r1, _080999A8
+ adds r2, r0, r1
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080999AC
+ movs r0, 0
+ b _080999C0
+ .align 2, 0
+_080999A4: .4byte gUnknown_083B6DB4
+_080999A8: .4byte 0x000010cc
+_080999AC:
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080999BE
+ movs r0, 0
+ str r0, [r2]
+_080999BE:
+ movs r0, 0x1
+_080999C0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099990
+
+ thumb_func_start sub_80999C4
+sub_80999C4: @ 80999C4
+ ldr r1, _080999E4
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r2, [r1]
+ ldrh r1, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r1, r2
+ adds r1, 0x4
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080999E4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_80999C4
+
+ thumb_func_start sub_80999E8
+sub_80999E8: @ 80999E8
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _08099A58
+ ldr r0, [r1]
+ movs r2, 0x89
+ lsls r2, 5
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, r3
+ beq _08099A20
+ adds r6, r2, 0
+ movs r5, 0x89
+ lsls r5, 5
+_08099A08:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A20
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08099A08
+_08099A20:
+ cmp r4, 0x28
+ bne _08099A60
+ movs r4, 0
+ ldr r0, [r2]
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08099A4E
+ adds r6, r2, 0
+_08099A36:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _08099A4E
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08099A36
+_08099A4E:
+ cmp r4, 0x28
+ bne _08099A60
+ ldr r0, _08099A5C
+ b _08099A94
+ .align 2, 0
+_08099A58: .4byte gUnknown_083B6DB4
+_08099A5C: .4byte 0x0000ffff
+_08099A60:
+ ldr r1, [r2]
+ lsls r2, r4, 1
+ movs r5, 0x89
+ lsls r5, 5
+ adds r0, r1, r5
+ adds r0, r2
+ strh r3, [r0]
+ ldr r0, _08099A9C
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r4, 20
+ lsrs r4, 16
+ ldr r1, _08099AA0
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r1, r4, 5
+ ldr r2, _08099AA4
+ adds r1, r2
+ ldr r2, _08099AA8
+ bl CpuSet
+ adds r0, r4, 0
+_08099A94:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099A9C: .4byte 0x000010d0
+_08099AA0: .4byte gMonIconTable
+_08099AA4: .4byte 0x06010000
+_08099AA8: .4byte 0x04000080
+ thumb_func_end sub_80999E8
+
+ thumb_func_start sub_8099AAC
+sub_8099AAC: @ 8099AAC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0
+ ldr r0, _08099AE4
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 5
+ adds r5, r0, r1
+ subs r1, 0x50
+ adds r4, r0, r1
+ ldr r0, _08099AE8
+ adds r7, r0, 0
+_08099AC6:
+ lsls r1, r3, 1
+ adds r2, r5, r1
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _08099AEC
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ands r0, r7
+ cmp r0, 0
+ bne _08099AF6
+ strh r0, [r2]
+ b _08099AF6
+ .align 2, 0
+_08099AE4: .4byte gUnknown_083B6DB4
+_08099AE8: .4byte 0x0000ffff
+_08099AEC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x27
+ bls _08099AC6
+_08099AF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099AAC
+
+ thumb_func_start sub_8099AFC
+sub_8099AFC: @ 8099AFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x18]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r9, r5
+ mov r2, sp
+ ldr r0, _08099BAC
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ adds r0, r6, 0
+ bl mon_icon_convert_unown_species_id
+ mov r10, r0
+ mov r6, r10
+ mov r2, sp
+ ldr r1, _08099BB0
+ adds r1, r6, r1
+ ldr r3, _08099BB4
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_80999E8
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ ldr r0, _08099BB8
+ cmp r5, r0
+ beq _08099BCE
+ ldr r7, [sp, 0x18]
+ lsls r1, r7, 16
+ asrs r1, 16
+ mov r0, r8
+ lsls r2, r0, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08099BC8
+ ldr r1, _08099BBC
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, _08099BC0
+ ands r2, r5
+ ldrh r3, [r0, 0x4]
+ ldr r1, _08099BC4
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ movs r1, 0x3
+ ands r4, r1
+ lsls r3, r4, 2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, 0x5]
+ mov r1, r10
+ strh r1, [r0, 0x2E]
+ b _08099BD0
+ .align 2, 0
+_08099BAC: .4byte gSpriteTemplate_83B6F14
+_08099BB0: .4byte gMonIconPaletteIndices
+_08099BB4: .4byte 0x0000dac0
+_08099BB8: .4byte 0x0000ffff
+_08099BBC: .4byte gSprites
+_08099BC0: .4byte 0x000003ff
+_08099BC4: .4byte 0xfffffc00
+_08099BC8:
+ adds r0, r6, 0
+ bl sub_8099AAC
+_08099BCE:
+ movs r0, 0
+_08099BD0:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099AFC
+
+ thumb_func_start sub_8099BE0
+sub_8099BE0: @ 8099BE0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ bl sub_8099AAC
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099BE0
+
+ thumb_func_start sub_8099BF8
+sub_8099BF8: @ 8099BF8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08099C50
+ ldr r0, [r0]
+ ldr r1, _08099C54
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r2, _08099C58
+ adds r0, r2
+ strh r1, [r0]
+ str r1, [sp]
+ ldr r1, _08099C5C
+ mov r0, sp
+ str r0, [r1]
+ ldr r0, _08099C60
+ str r0, [r1, 0x4]
+ ldr r0, _08099C64
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8099EB0
+ adds r0, r4, 0
+ bl sub_809A23C
+ bl sub_809A6DC
+ adds r0, r4, 0
+ bl sub_8098C48
+ ldr r1, _08099C68
+ ldr r2, _08099C6C
+ adds r0, r2, 0
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099C50: .4byte gUnknown_083B6DB4
+_08099C54: .4byte 0x000008ba
+_08099C58: .4byte 0x000008b4
+_08099C5C: .4byte 0x040000d4
+_08099C60: .4byte 0x0600d000
+_08099C64: .4byte 0x85000400
+_08099C68: .4byte REG_BG2CNT
+_08099C6C: .4byte 0x00005a0a
+ thumb_func_end sub_8099BF8
+
+ thumb_func_start sub_8099C70
+sub_8099C70: @ 8099C70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ bl sub_8099D90
+ lsls r0, 24
+ asrs r4, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8099EB0
+ ldr r0, _08099D10
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 1
+ ldr r3, _08099D14
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r0, _08099D18
+ adds r1, r2, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _08099D1C
+ adds r0, r2, r1
+ strb r5, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CAE
+ movs r1, 0x5
+_08099CAE:
+ ldr r3, _08099D20
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D24
+ adds r0, r2, r1
+ strh r4, [r0]
+ movs r1, 0x38
+ cmp r4, 0
+ ble _08099CC6
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r3, 0
+_08099CC6:
+ movs r3, 0x8C
+ lsls r3, 4
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r1, 0
+ cmp r4, 0
+ bgt _08099CD6
+ movs r1, 0x5
+_08099CD6:
+ ldr r3, _08099D28
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _08099D2C
+ adds r0, r2, r1
+ strh r4, [r0]
+ adds r3, 0x4
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08099D30
+ adds r1, r2, r0
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809900C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809A3D0
+ adds r0, r4, 0
+ bl sub_809A774
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099D10: .4byte gUnknown_083B6DB4
+_08099D14: .4byte 0x000008b6
+_08099D18: .4byte 0x000008b8
+_08099D1C: .4byte 0x000008bb
+_08099D20: .4byte 0x000008bc
+_08099D24: .4byte 0x000008be
+_08099D28: .4byte 0x000008c2
+_08099D2C: .4byte 0x000008c4
+_08099D30: .4byte 0x000008c8
+ thumb_func_end sub_8099C70
+
+ thumb_func_start sub_8099D34
+sub_8099D34: @ 8099D34
+ push {r4,lr}
+ bl sub_80990AC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08099D78
+ ldr r1, [r0]
+ ldr r0, _08099D7C
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08099D88
+ ldr r4, _08099D80
+ adds r2, r1, r4
+ adds r4, 0x2
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ adds r0, r1
+ ldr r1, _08099D84
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3]
+ subs r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08099D74
+ bl sub_809A598
+ bl sub_809A810
+_08099D74:
+ movs r0, 0x1
+ b _08099D8A
+ .align 2, 0
+_08099D78: .4byte gUnknown_083B6DB4
+_08099D7C: .4byte 0x000008b8
+_08099D80: .4byte 0x000008b4
+_08099D84: .4byte 0x000001ff
+_08099D88:
+ adds r0, r2, 0
+_08099D8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D34
+
+ thumb_func_start sub_8099D90
+sub_8099D90: @ 8099D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ cmp r1, r4
+ beq _08099DBA
+_08099DA4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bls _08099DB0
+ movs r1, 0
+_08099DB0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r1, r4
+ bne _08099DA4
+_08099DBA:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, 0x6
+ bhi _08099DC4
+ movs r0, 0x1
+_08099DC4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099D90
+
+ thumb_func_start sub_8099DCC
+sub_8099DCC: @ 8099DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08099DF8
+ ldr r2, _08099DFC
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ strb r4, [r0]
+ ldr r0, _08099E00
+ ldr r0, [r0]
+ ldr r2, _08099E04
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099DF8: .4byte gPokemonStorage
+_08099DFC: .4byte 0x000083c2
+_08099E00: .4byte gUnknown_083B6DB4
+_08099E04: .4byte 0x00001032
+ thumb_func_end sub_8099DCC
+
+ thumb_func_start sub_8099E08
+sub_8099E08: @ 8099E08
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08099E24
+ ldr r5, [r0]
+ ldr r0, _08099E28
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08099E54
+ cmp r0, 0x1
+ bgt _08099E2C
+ cmp r0, 0
+ beq _08099E36
+ b _08099EA6
+ .align 2, 0
+_08099E24: .4byte gUnknown_083B6DB4
+_08099E28: .4byte 0x00001032
+_08099E2C:
+ cmp r0, 0x2
+ beq _08099E90
+ cmp r0, 0x3
+ beq _08099EA2
+ b _08099EA6
+_08099E36:
+ ldr r1, _08099E4C
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E50
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E4C: .4byte 0x00000d08
+_08099E50: .4byte 0x0000ffff
+_08099E54:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8099EB0
+ bl sub_809A654
+ ldr r1, _08099E88
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldr r1, _08099E8C
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08099E9A
+ .align 2, 0
+_08099E88: .4byte 0x00000d08
+_08099E8C: .4byte 0x0000ffff
+_08099E90:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08099EA6
+_08099E9A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08099EA6
+_08099EA2:
+ movs r0, 0
+ b _08099EA8
+_08099EA6:
+ movs r0, 0x1
+_08099EA8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099E08
+
+ thumb_func_start sub_8099EB0
+sub_8099EB0: @ 8099EB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r1, 0
+ beq _08099ED8
+ ldr r0, _08099F38
+ ldr r0, [r0]
+ movs r2, 0
+ ldr r3, _08099F3C
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08099ED0
+ movs r2, 0x1
+_08099ED0:
+ strb r2, [r1]
+ ldr r0, _08099F40
+ bl sub_809A14C
+_08099ED8:
+ ldr r0, _08099F44
+ ldr r1, _08099F48
+ adds r0, r1
+ adds r0, r4, r0
+ ldrb r4, [r0]
+ lsls r4, 4
+ ldr r0, _08099F4C
+ adds r4, r0
+ ldr r0, [r4, 0xC]
+ ldr r1, _08099F38
+ ldr r5, [r1]
+ ldr r2, _08099F3C
+ adds r6, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 20
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, [r4, 0x8]
+ ldr r1, _08099F50
+ adds r5, r1
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ ldr r0, _08099F40
+ lsls r2, r7, 24
+ asrs r2, 24
+ ldrb r3, [r6]
+ adds r1, r5, 0
+ bl sub_8099F58
+ ldr r0, [r4]
+ ldrb r1, [r6]
+ lsls r1, 13
+ ldr r2, _08099F54
+ adds r1, r2
+ bl LZ77UnCompVram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099F38: .4byte gUnknown_083B6DB4
+_08099F3C: .4byte 0x000008ba
+_08099F40: .4byte 0x0600d000
+_08099F44: .4byte gPokemonStorage
+_08099F48: .4byte 0x000083c2
+_08099F4C: .4byte gWallpaperTable
+_08099F50: .4byte 0x00000d62
+_08099F54: .4byte 0x06008000
+ thumb_func_end sub_8099EB0
+
+ thumb_func_start sub_8099F58
+sub_8099F58: @ 8099F58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r9, r0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r3, 8
+ str r0, [sp]
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r0, 0x4
+ lsls r0, 28
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ ldr r0, _08099FB8
+ ldr r0, [r0]
+ ldr r1, _08099FBC
+ adds r0, r1
+ ldrh r1, [r0]
+ lsrs r1, 3
+ adds r1, 0xA
+ lsrs r0, r2, 24
+ mov r8, r0
+ asrs r2, 24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0x3F
+ ands r1, r0
+ str r1, [sp, 0x8]
+ adds r2, r1, 0
+ cmp r2, 0xC
+ bgt _08099FC0
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r1, r9
+ adds r4, r1, r0
+ movs r7, 0
+ b _0809A020
+ .align 2, 0
+_08099FB8: .4byte gUnknown_083B6DB4
+_08099FBC: .4byte 0x000008b4
+_08099FC0:
+ cmp r2, 0x1F
+ bgt _08099FE6
+ movs r0, 0x20
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ adds r0, 0x80
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0x88
+ lsls r7, 4
+ add r7, r9
+ b _0809A020
+_08099FE6:
+ cmp r2, 0x2C
+ bgt _08099FFE
+ movs r6, 0x14
+ movs r3, 0
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ movs r7, 0
+ b _0809A020
+_08099FFE:
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ movs r1, 0x14
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r0, r2, 1
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r1
+ mov r2, r9
+ adds r4, r2, r0
+ mov r7, r9
+ adds r7, 0x80
+_0809A020:
+ movs r1, 0
+ mov r0, r8
+ lsls r0, 24
+ str r0, [sp, 0x14]
+ lsls r0, r6, 16
+ asrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ str r3, [sp, 0xC]
+ asrs r2, r3, 16
+ str r2, [sp, 0x10]
+_0809A036:
+ movs r3, 0
+ adds r0, r4, 0
+ adds r0, 0x40
+ str r0, [sp, 0x18]
+ adds r2, r7, 0
+ adds r2, 0x40
+ str r2, [sp, 0x1C]
+ adds r1, 0x1
+ mov r10, r1
+ cmp r3, r8
+ bge _0809A07A
+ ldr r0, _0809A0D4
+ mov r12, r0
+ movs r6, 0xF0
+ lsls r6, 8
+_0809A054:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r4
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ blt _0809A054
+_0809A07A:
+ movs r3, 0
+ ldr r0, [sp, 0x10]
+ cmp r3, r0
+ bge _0809A0B4
+ ldr r1, _0809A0D4
+ mov r12, r1
+ movs r6, 0xF0
+ lsls r6, 8
+ ldr r2, [sp, 0xC]
+ asrs r4, r2, 16
+_0809A08E:
+ ldrh r2, [r5]
+ mov r0, r12
+ ands r0, r2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, r6, 0
+ ands r1, r2
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r1
+ orrs r1, r0
+ lsls r0, r3, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ blt _0809A08E
+_0809A0B4:
+ ldr r4, [sp, 0x18]
+ ldr r7, [sp, 0x1C]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A036
+ ldr r0, [sp, 0x14]
+ asrs r2, r0, 24
+ cmp r2, 0
+ beq _0809A13A
+ cmp r2, 0
+ ble _0809A0D8
+ ldr r1, [sp, 0x8]
+ adds r1, 0x14
+ b _0809A0DC
+ .align 2, 0
+_0809A0D4: .4byte 0x00000fff
+_0809A0D8:
+ ldr r1, [sp, 0x8]
+ subs r1, 0x4
+_0809A0DC:
+ movs r0, 0x3F
+ ands r1, r0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A0EE
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A0F6
+_0809A0EE:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A0F6:
+ mov r1, r9
+ adds r2, r1, r0
+ movs r3, 0
+ movs r6, 0
+_0809A0FE:
+ movs r1, 0
+ adds r5, r3, 0x1
+ lsls r3, r4, 16
+_0809A104:
+ strh r6, [r2]
+ adds r2, 0x40
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x11
+ bls _0809A104
+ asrs r0, r3, 16
+ adds r4, r0, 0x1
+ movs r0, 0x3F
+ ands r4, r0
+ adds r0, r4, 0
+ cmp r0, 0x1F
+ bgt _0809A126
+ lsls r0, 1
+ adds r0, 0x80
+ b _0809A12E
+_0809A126:
+ lsls r0, 1
+ movs r2, 0x84
+ lsls r2, 4
+ adds r0, r2
+_0809A12E:
+ mov r1, r9
+ adds r2, r1, r0
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _0809A0FE
+_0809A13A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099F58
+
+ thumb_func_start sub_809A14C
+sub_809A14C: @ 809A14C
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, _0809A174
+ ldr r0, [r0]
+ ldr r1, _0809A178
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 3
+ adds r3, r0, 0
+ adds r3, 0x1E
+ movs r0, 0x3F
+ ands r3, r0
+ adds r0, r3, 0
+ cmp r0, 0x1F
+ bgt _0809A17C
+ lsls r0, 1
+ movs r6, 0x98
+ lsls r6, 3
+ adds r0, r6
+ b _0809A184
+ .align 2, 0
+_0809A174: .4byte gUnknown_083B6DB4
+_0809A178: .4byte 0x000008b4
+_0809A17C:
+ lsls r0, 1
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r1
+_0809A184:
+ adds r2, r0
+ movs r0, 0
+ movs r5, 0
+ movs r4, 0x3F
+_0809A18C:
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ ands r3, r4
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0809A19E
+ ldr r6, _0809A1B8
+ adds r2, r6
+_0809A19E:
+ cmp r1, 0x20
+ bne _0809A1A8
+ movs r1, 0xF8
+ lsls r1, 3
+ adds r2, r1
+_0809A1A8:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2B
+ bls _0809A18C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A1B8: .4byte 0xfffff7c0
+ thumb_func_end sub_809A14C
+
+ thumb_func_start sub_809A1BC
+sub_809A1BC: @ 809A1BC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _0809A228
+ ldr r5, [r0]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _0809A22C
+ str r1, [r4]
+ str r5, [r4, 0x4]
+ movs r6, 0x80
+ lsls r6, 1
+ ldr r0, _0809A230
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0809A234
+ adds r1, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_8004E3C
+ str r5, [r4]
+ ldr r3, [sp, 0x4]
+ str r3, [r4, 0x4]
+ ldr r1, _0809A238
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, r6
+ str r0, [r4]
+ adds r0, r3, 0
+ adds r0, 0x80
+ str r0, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r5, 0
+ adds r0, 0x80
+ str r0, [r4]
+ adds r6, r3, r6
+ str r6, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r5, r0
+ str r5, [r4]
+ adds r3, r0
+ str r3, [r4, 0x4]
+ str r1, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A228: .4byte gUnknown_083B6DB8
+_0809A22C: .4byte 0x040000d4
+_0809A230: .4byte 0x81000100
+_0809A234: .4byte gWindowConfig_81E6D38
+_0809A238: .4byte 0x80000040
+ thumb_func_end sub_809A1BC
+
+ thumb_func_start sub_809A23C
+sub_809A23C: @ 809A23C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809A384
+ ldr r5, [r0]
+ ldr r1, _0809A388
+ adds r7, r5, r1
+ str r7, [sp, 0x18]
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0x20]
+ ldr r0, _0809A38C
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r3, _0809A390
+ adds r0, r5, r3
+ str r0, [sp]
+ ldr r4, _0809A394
+ strh r4, [r1, 0x4]
+ str r0, [sp, 0x8]
+ ldr r6, _0809A398
+ strh r6, [r1, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ ldr r0, _0809A39C
+ mov r9, r0
+ ldr r0, _0809A3A0
+ add r0, r9
+ add r0, r8
+ ldrb r1, [r0]
+ ldr r2, _0809A3A4
+ lsls r1, 2
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ ldr r6, _0809A3A8
+ adds r0, r5, r6
+ strh r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _0809A3AC
+ adds r0, r5, r2
+ strh r1, [r0]
+ mov r0, sp
+ bl LoadSpritePalettes
+ ldr r3, _0809A3B0
+ adds r6, r5, r3
+ movs r0, 0xFC
+ lsls r0, 2
+ str r0, [r6]
+ adds r0, r4, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ movs r2, 0x87
+ lsls r2, 1
+ mov r10, r2
+ add r1, r10
+ ldr r3, _0809A3B4
+ adds r2, r5, r3
+ strh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ ldr r0, [r6]
+ orrs r0, r1
+ str r0, [r6]
+ ldr r0, _0809A3B8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ add r1, r10
+ ldr r2, _0809A3BC
+ adds r5, r2
+ strh r1, [r5]
+ lsls r4, r0
+ ldr r0, [r6]
+ orrs r0, r4
+ str r0, [r6]
+ mov r3, r8
+ lsls r4, r3, 3
+ add r4, r8
+ ldr r6, _0809A3C0
+ add r9, r6
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_809A1BC
+ ldr r0, [sp, 0x20]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ movs r4, 0
+ lsls r0, 16
+ asrs r6, r0, 16
+_0809A328:
+ lsls r1, r4, 5
+ adds r1, r6, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0809A3C4
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0809A384
+ ldr r5, [r0]
+ lsls r0, r4, 2
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r5, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A3C8
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _0809A328
+ ldr r6, _0809A3CC
+ adds r1, r5, r6
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A384: .4byte gUnknown_083B6DB4
+_0809A388: .4byte 0x000008ca
+_0809A38C: .4byte 0x00030200
+_0809A390: .4byte 0x00000ccc
+_0809A394: .4byte 0x0000dac8
+_0809A398: .4byte 0xffffdac9
+_0809A39C: .4byte gPokemonStorage
+_0809A3A0: .4byte 0x000083c2
+_0809A3A4: .4byte gUnknown_083BB0A8
+_0809A3A8: .4byte 0x00000ce8
+_0809A3AC: .4byte 0x00000cea
+_0809A3B0: .4byte 0x00000d08
+_0809A3B4: .4byte 0x00000cec
+_0809A3B8: .4byte 0x0000dac9
+_0809A3BC: .4byte 0x00000cee
+_0809A3C0: .4byte 0x00008344
+_0809A3C4: .4byte gSpriteTemplate_83BB2B8
+_0809A3C8: .4byte gSprites
+_0809A3CC: .4byte 0x00000cca
+ thumb_func_end sub_809A23C
+
+ thumb_func_start sub_809A3D0
+sub_809A3D0: @ 809A3D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r3, _0809A43C
+ ldr r5, [r3]
+ ldr r1, _0809A440
+ adds r0, r5, r1
+ str r0, [sp, 0x18]
+ add r2, sp, 0x18
+ ldr r4, _0809A444
+ mov r9, r4
+ movs r6, 0xC0
+ lsls r6, 10
+ mov r8, r6
+ ldr r0, _0809A448
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r0, _0809A44C
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ movs r1, 0
+ ldr r7, _0809A450
+ adds r4, r5, r7
+ ldrb r0, [r4]
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _0809A41E
+ movs r1, 0x1
+_0809A41E:
+ strb r1, [r4]
+ cmp r1, 0
+ bne _0809A458
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ mov r4, r8
+ orrs r0, r4
+ str r0, [r6, 0x4]
+ ldr r7, _0809A454
+ adds r0, r5, r7
+ ldrh r0, [r0]
+ mov r8, r0
+ b _0809A478
+ .align 2, 0
+_0809A43C: .4byte gUnknown_083B6DB4
+_0809A440: .4byte 0x000008ca
+_0809A444: .4byte 0x0000ffff
+_0809A448: .4byte 0x00030200
+_0809A44C: .4byte gSpriteTemplate_83BB2B8
+_0809A450: .4byte 0x00000cca
+_0809A454: .4byte 0x00000cec
+_0809A458:
+ ldr r0, [r6, 0x4]
+ mov r1, r9
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ ldr r4, _0809A570
+ adds r0, r5, r4
+ ldrh r0, [r0]
+ mov r8, r0
+ mov r1, sp
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r0, _0809A574
+ strh r0, [r1, 0x2]
+_0809A478:
+ ldr r0, [r3]
+ ldr r7, _0809A578
+ adds r0, r7
+ ldr r1, [sp, 0x28]
+ lsls r5, r1, 3
+ adds r5, r1
+ ldr r4, _0809A57C
+ adds r5, r4
+ adds r1, r5, 0
+ bl sub_809A1BC
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r4, 0x7E
+ ldr r3, [sp, 0x28]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ lsls r0, 2
+ ldr r1, _0809A580
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809A6D0
+ lsls r0, 16
+ mov r4, r10
+ lsls r2, r4, 24
+ asrs r2, 24
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 6
+ lsrs r6, r0, 16
+ str r6, [sp, 0x20]
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x24]
+ movs r7, 0
+ negs r2, r2
+ mov r9, r2
+ movs r0, 0x1
+ mov r10, r0
+_0809A4DE:
+ lsls r1, r7, 5
+ mov r8, r1
+ ldr r3, [sp, 0x24]
+ lsls r1, r3, 16
+ asrs r1, 16
+ add r1, r8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x1C
+ movs r3, 0x17
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A584
+ ldr r4, [r1]
+ lsls r6, r7, 2
+ ldr r1, _0809A588
+ adds r2, r4, r1
+ adds r2, r6
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0809A58C
+ adds r1, r0
+ str r1, [r2]
+ mov r3, r9
+ lsls r5, r3, 1
+ add r5, r9
+ lsls r5, 1
+ strh r5, [r1, 0x2E]
+ ldr r1, [r2]
+ ldr r3, [sp, 0x20]
+ lsls r0, r3, 16
+ asrs r0, 16
+ add r0, r8
+ strh r0, [r1, 0x30]
+ ldr r0, [r2]
+ mov r1, r10
+ strh r1, [r0, 0x32]
+ ldr r0, [r2]
+ ldr r1, _0809A590
+ str r1, [r0, 0x1C]
+ lsls r1, r7, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r4, r3
+ adds r4, r6
+ ldr r0, [r4]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r4]
+ mov r6, r10
+ strh r6, [r0, 0x30]
+ ldr r1, [r4]
+ ldr r0, _0809A594
+ str r0, [r1, 0x1C]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _0809A4DE
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A570: .4byte 0x00000cec
+_0809A574: .4byte 0x0000dac9
+_0809A578: .4byte 0x000008ca
+_0809A57C: .4byte gUnknown_020383E4
+_0809A580: .4byte gUnknown_083BB0A8
+_0809A584: .4byte gUnknown_083B6DB4
+_0809A588: .4byte 0x00000cf8
+_0809A58C: .4byte gSprites
+_0809A590: .4byte sub_809A5E8
+_0809A594: .4byte sub_809A61C
+ thumb_func_end sub_809A3D0
+
+ thumb_func_start sub_809A598
+sub_809A598: @ 809A598
+ push {lr}
+ ldr r0, _0809A5B0
+ ldr r0, [r0]
+ ldr r1, _0809A5B4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A5B8
+ movs r0, 0x4
+ bl FreeSpriteTilesByTag
+ b _0809A5BE
+ .align 2, 0
+_0809A5B0: .4byte gUnknown_083B6DB4
+_0809A5B4: .4byte 0x00000cca
+_0809A5B8:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+_0809A5BE:
+ ldr r0, _0809A5E0
+ ldr r0, [r0]
+ movs r3, 0xCF
+ lsls r3, 4
+ adds r2, r0, r3
+ adds r3, 0x8
+ adds r1, r0, r3
+ ldr r1, [r1]
+ str r1, [r2]
+ ldr r2, _0809A5E4
+ adds r1, r0, r2
+ adds r3, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A5E0: .4byte gUnknown_083B6DB4
+_0809A5E4: .4byte 0x00000cf4
+ thumb_func_end sub_809A598
+
+ thumb_func_start sub_809A5E8
+sub_809A5E8: @ 809A5E8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A5FC
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ b _0809A614
+_0809A5FC:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _0809A614
+ ldr r0, _0809A618
+ str r0, [r2, 0x1C]
+_0809A614:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A618: .4byte SpriteCallbackDummy
+ thumb_func_end sub_809A5E8
+
+ thumb_func_start sub_809A61C
+sub_809A61C: @ 809A61C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0809A630
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ b _0809A64E
+_0809A630:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _0809A64E
+ adds r0, r2, 0
+ bl DestroySprite
+_0809A64E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809A61C
+
+ thumb_func_start sub_809A654
+sub_809A654: @ 809A654
+ push {lr}
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809A690
+ ldr r2, _0809A694
+ adds r1, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0809A698
+ ldr r2, [r0]
+ ldr r3, _0809A69C
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809A6A8
+ lsls r0, r1, 2
+ ldr r1, _0809A6A0
+ adds r0, r1
+ adds r3, 0x22
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6A4
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+ b _0809A6C0
+ .align 2, 0
+_0809A690: .4byte gPokemonStorage
+_0809A694: .4byte 0x000083c2
+_0809A698: .4byte gUnknown_083B6DB4
+_0809A69C: .4byte 0x00000cca
+_0809A6A0: .4byte gUnknown_083BB0A8
+_0809A6A4: .4byte gPlttBufferUnfaded
+_0809A6A8:
+ lsls r0, r1, 2
+ ldr r1, _0809A6C4
+ adds r0, r1
+ ldr r3, _0809A6C8
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, _0809A6CC
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+_0809A6C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A6C4: .4byte gUnknown_083BB0A8
+_0809A6C8: .4byte 0x00000cee
+_0809A6CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_809A654
+
+ thumb_func_start sub_809A6D0
+sub_809A6D0: @ 809A6D0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 25
+ movs r0, 0xB0
+ subs r0, r1
+ bx lr
+ thumb_func_end sub_809A6D0
+
+ thumb_func_start sub_809A6DC
+sub_809A6DC: @ 809A6DC
+ push {r4,r5,lr}
+ ldr r0, _0809A760
+ bl LoadSpriteSheet
+ ldr r0, _0809A764
+ bl LoadSpritePalette
+ movs r5, 0
+_0809A6EC:
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _0809A768
+ movs r2, 0x1C
+ movs r3, 0x15
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0809A73E
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809A76C
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ cmp r5, 0
+ bne _0809A72C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809A72C:
+ strh r0, [r4, 0x34]
+ ldr r0, _0809A770
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+_0809A73E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _0809A6EC
+ bl sub_809BF2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A758
+ movs r0, 0x1
+ bl sub_809A860
+_0809A758:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A760: .4byte gUnknown_083BB288
+_0809A764: .4byte gUnknown_083BB290
+_0809A768: .4byte gSpriteTemplate_83BB2F0
+_0809A76C: .4byte gSprites
+_0809A770: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A6DC
+
+ thumb_func_start sub_809A774
+sub_809A774: @ 809A774
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ ldr r7, _0809A7C4
+ ldr r0, [r7]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r3, r0, r1
+ movs r5, 0
+ movs r4, 0x2
+_0809A78A:
+ lsls r1, r2, 2
+ adds r1, r3, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r0, [r1]
+ strh r4, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A78A
+ lsls r0, r6, 24
+ cmp r0, 0
+ bge _0809A7CC
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A7C8
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0x48
+ b _0809A7E8
+ .align 2, 0
+_0809A7C4: .4byte gUnknown_083B6DB4
+_0809A7C8: .4byte 0x00000d04
+_0809A7CC:
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, _0809A80C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0xF8
+_0809A7E8:
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ strh r2, [r0, 0x32]
+ ldr r1, [r7]
+ movs r2, 0xD0
+ lsls r2, 4
+ adds r0, r1, r2
+ ldr r2, [r0]
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ ldr r0, _0809A80C
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A80C: .4byte 0x00000d04
+ thumb_func_end sub_809A774
+
+ thumb_func_start sub_809A810
+sub_809A810: @ 809A810
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _0809A85C
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r5, 0
+ movs r6, 0x5
+ negs r6, r6
+_0809A824:
+ lsls r1, r3, 2
+ adds r1, r4, r1
+ ldr r2, [r1]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 3
+ adds r0, 0x5C
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _0809A824
+ movs r0, 0x1
+ bl sub_809A860
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A85C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A810
+
+ thumb_func_start sub_809A860
+sub_809A860: @ 809A860
+ push {r4,r5,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809A89C
+ movs r2, 0
+ ldr r0, _0809A898
+ ldr r0, [r0]
+ movs r1, 0xD0
+ lsls r1, 4
+ adds r4, r0, r1
+ movs r3, 0
+ movs r5, 0x1
+_0809A878:
+ lsls r1, r2, 2
+ adds r1, r4, r1
+ ldr r0, [r1]
+ strh r5, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x32]
+ ldr r0, [r1]
+ strh r3, [r0, 0x36]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A878
+ b _0809A8BC
+ .align 2, 0
+_0809A898: .4byte gUnknown_083B6DB4
+_0809A89C:
+ movs r2, 0
+ ldr r0, _0809A8C4
+ ldr r0, [r0]
+ movs r3, 0xD0
+ lsls r3, 4
+ adds r1, r0, r3
+ movs r3, 0
+_0809A8AA:
+ lsls r0, r2, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _0809A8AA
+_0809A8BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A8C4: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809A860
+
+ thumb_func_start sub_809A8C8
+sub_809A8C8: @ 809A8C8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _0809A994
+ lsls r0, 2
+ ldr r1, _0809A8E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809A8E0: .4byte _0809A8E4
+ .align 2, 0
+_0809A8E4:
+ .4byte _0809A8F8
+ .4byte _0809A8FE
+ .4byte _0809A92C
+ .4byte _0809A932
+ .4byte _0809A984
+_0809A8F8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ b _0809A994
+_0809A8FE:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0809A994
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x24]
+ adds r0, r3
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0809A994
+ strh r1, [r2, 0x32]
+ strh r1, [r2, 0x24]
+ b _0809A994
+_0809A92C:
+ movs r0, 0x3
+ strh r0, [r2, 0x2E]
+ b _0809A994
+_0809A932:
+ ldr r0, _0809A97C
+ ldr r1, [r0]
+ ldr r0, _0809A980
+ adds r1, r0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ subs r0, 0x49
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAE
+ bls _0809A958
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0809A958:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809A994
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ b _0809A994
+ .align 2, 0
+_0809A97C: .4byte gUnknown_083B6DB4
+_0809A980: .4byte 0x000008b6
+_0809A984:
+ ldr r0, _0809A998
+ ldr r0, [r0]
+ ldr r1, _0809A99C
+ adds r0, r1
+ ldrh r1, [r2, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x20]
+_0809A994:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A998: .4byte gUnknown_083B6DB4
+_0809A99C: .4byte 0x000008b6
+ thumb_func_end sub_809A8C8
+
+ thumb_func_start sub_809A9A0
+sub_809A9A0: @ 809A9A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0809AA0C
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0809AA18
+ movs r1, 0x1
+ ands r1, r7
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _0809AA10
+ adds r6, r4, r5
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ movs r0, 0x3
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0809AA14
+ str r0, [r4]
+ adds r0, r6, 0
+ b _0809AA1A
+ .align 2, 0
+_0809AA0C: .4byte gSpriteTemplate_83BB2F0
+_0809AA10: .4byte gSprites
+_0809AA14: .4byte SpriteCallbackDummy
+_0809AA18:
+ movs r0, 0
+_0809AA1A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A9A0
+
+ thumb_func_start sub_809AA24
+sub_809AA24: @ 809AA24
+ push {lr}
+ ldr r0, _0809AA38
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ cmp r1, 0x1
+ beq _0809AA40
+ ldr r1, _0809AA3C
+ movs r0, 0
+ strb r0, [r1]
+ b _0809AA44
+ .align 2, 0
+_0809AA38: .4byte gUnknown_083B6DB4
+_0809AA3C: .4byte gUnknown_020384E4
+_0809AA40:
+ ldr r0, _0809AA78
+ strb r1, [r0]
+_0809AA44:
+ ldr r0, _0809AA7C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0809AA80
+ strb r1, [r0]
+ ldr r0, _0809AA84
+ strb r1, [r0]
+ ldr r0, _0809AA88
+ strb r1, [r0]
+ ldr r0, _0809AA8C
+ strb r1, [r0]
+ bl sub_809B0D4
+ bl sub_809CC04
+ ldr r0, _0809AA90
+ ldr r0, [r0]
+ ldr r1, _0809AA94
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AA78: .4byte gUnknown_020384E4
+_0809AA7C: .4byte gUnknown_020384E5
+_0809AA80: .4byte gUnknown_020384E6
+_0809AA84: .4byte gUnknown_020384E7
+_0809AA88: .4byte gUnknown_020384E8
+_0809AA8C: .4byte gUnknown_020384E9
+_0809AA90: .4byte gUnknown_083B6DB4
+_0809AA94: .4byte 0x000011e2
+ thumb_func_end sub_809AA24
+
+ thumb_func_start sub_809AA98
+sub_809AA98: @ 809AA98
+ push {lr}
+ bl sub_809CC04
+ bl sub_809C028
+ ldr r0, _0809AAC0
+ ldr r0, [r0]
+ ldr r1, _0809AAC4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0809AAC8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809AABA
+ bl sub_8098BF0
+_0809AABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AAC0: .4byte gUnknown_083B6DB4
+_0809AAC4: .4byte 0x000011e2
+_0809AAC8: .4byte gUnknown_020384E6
+ thumb_func_end sub_809AA98
+
+ thumb_func_start sub_809AACC
+sub_809AACC: @ 809AACC
+ push {r4-r6,lr}
+ adds r4, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0x4
+ bhi _0809AB84
+ lsls r0, 2
+ ldr r1, _0809AAE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809AAE8: .4byte _0809AAEC
+ .align 2, 0
+_0809AAEC:
+ .4byte _0809AB00
+ .4byte _0809AB2E
+ .4byte _0809AB56
+ .4byte _0809AB5E
+ .4byte _0809AB7C
+_0809AB00:
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x64
+ strh r1, [r4]
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x20
+ strh r1, [r6]
+ b _0809AB84
+_0809AB2E:
+ cmp r5, 0
+ bne _0809AB3A
+ movs r0, 0x68
+ strh r0, [r4]
+ movs r0, 0x34
+ b _0809AB82
+_0809AB3A:
+ cmp r5, 0x6
+ bne _0809AB46
+ movs r0, 0x98
+ strh r0, [r4]
+ movs r0, 0x84
+ b _0809AB82
+_0809AB46:
+ movs r0, 0x98
+ strh r0, [r4]
+ subs r1, r5, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ b _0809AB82
+_0809AB56:
+ movs r0, 0xA2
+ strh r0, [r4]
+ movs r0, 0xC
+ b _0809AB82
+_0809AB5E:
+ ldr r0, _0809AB78
+ ldrb r0, [r0]
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0809AB6A
+ movs r1, 0x8
+_0809AB6A:
+ strh r1, [r6]
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, 0x78
+ strh r0, [r4]
+ b _0809AB84
+ .align 2, 0
+_0809AB78: .4byte gUnknown_020384E6
+_0809AB7C:
+ movs r0, 0xA0
+ strh r0, [r4]
+ movs r0, 0x60
+_0809AB82:
+ strh r0, [r6]
+_0809AB84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809AACC
+
+ thumb_func_start sub_809AB8C
+sub_809AB8C: @ 809AB8C
+ push {lr}
+ ldr r0, _0809ABB4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809ABC0
+ cmp r0, 0x1
+ bne _0809ABF8
+ ldr r0, _0809ABB8
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809ABBC
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ b _0809ABEA
+ .align 2, 0
+_0809ABB4: .4byte gUnknown_020384E4
+_0809ABB8: .4byte gUnknown_020384E5
+_0809ABBC: .4byte gPlayerParty
+_0809ABC0:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809ABF0
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809ABF4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+_0809ABEA:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0809ABFA
+ .align 2, 0
+_0809ABF0: .4byte gUnknown_020384E5
+_0809ABF4: .4byte gUnknown_020300A4
+_0809ABF8:
+ movs r0, 0
+_0809ABFA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AB8C
+
+ thumb_func_start sub_809AC00
+sub_809AC00: @ 809AC00
+ push {r4-r6,lr}
+ ldr r0, _0809AC14
+ ldr r4, [r0]
+ ldr r0, _0809AC18
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0809AC1C
+ movs r0, 0
+ b _0809AD2C
+ .align 2, 0
+_0809AC14: .4byte gUnknown_083B6DB4
+_0809AC18: .4byte 0x000011dc
+_0809AC1C:
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809AD0C
+ ldr r1, _0809ACF4
+ adds r3, r4, r1
+ ldr r2, _0809ACF8
+ adds r1, r4, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r3]
+ ldr r6, _0809ACFC
+ adds r2, r4, r6
+ ldr r0, _0809AD00
+ adds r1, r4, r0
+ ldr r0, [r2]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r5, r4, r1
+ ldr r1, [r5]
+ ldr r0, [r3]
+ asrs r0, 8
+ strh r0, [r1, 0x20]
+ ldr r1, [r5]
+ ldr r0, [r2]
+ asrs r0, 8
+ strh r0, [r1, 0x22]
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ cmp r0, r3
+ ble _0809AC78
+ ldr r6, _0809AD04
+ adds r0, r2, r6
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x40
+ strh r0, [r1, 0x20]
+_0809AC78:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x20]
+ movs r6, 0x20
+ ldrsh r0, [r1, r6]
+ cmp r0, 0x3F
+ bgt _0809AC90
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r3, r0
+ strh r0, [r1, 0x20]
+_0809AC90:
+ ldr r1, [r5]
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xB0
+ ble _0809ACA8
+ adds r0, r2, 0
+ subs r0, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, 0x10
+ strh r0, [r1, 0x22]
+_0809ACA8:
+ ldr r2, [r5]
+ ldrh r3, [r2, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r2, r6]
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _0809ACC4
+ subs r0, r1, r3
+ movs r1, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r0
+ strh r1, [r2, 0x22]
+_0809ACC4:
+ ldr r0, _0809AD08
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809AD2A
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809AD2A
+ ldr r2, [r5]
+ adds r2, 0x3F
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _0809AD2A
+ .align 2, 0
+_0809ACF4: .4byte 0x000011c8
+_0809ACF8: .4byte 0x000011d0
+_0809ACFC: .4byte 0x000011cc
+_0809AD00: .4byte 0x000011d4
+_0809AD04: .4byte 0xffffff00
+_0809AD08: .4byte 0x000011e3
+_0809AD0C:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r2, r4, r1
+ ldr r1, [r2]
+ ldr r3, _0809AD34
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, [r2]
+ ldr r6, _0809AD38
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ bl sub_809AFB8
+_0809AD2A:
+ movs r0, 0x1
+_0809AD2C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AD34: .4byte 0x000011d8
+_0809AD38: .4byte 0x000011da
+ thumb_func_end sub_809AC00
+
+ thumb_func_start sub_809AD3C
+sub_809AD3C: @ 809AD3C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ adds r6, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_809AACC
+ ldr r0, _0809AD88
+ ldr r1, [r0]
+ movs r2, 0x8F
+ lsls r2, 5
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0809AD8C
+ adds r0, r1, r3
+ strb r5, [r0]
+ mov r0, sp
+ ldrh r2, [r0]
+ subs r3, 0x9
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r6]
+ ldr r2, _0809AD90
+ adds r1, r2
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AD88: .4byte gUnknown_083B6DB4
+_0809AD8C: .4byte 0x000011e1
+_0809AD90: .4byte 0x000011da
+ thumb_func_end sub_809AD3C
+
+ thumb_func_start sub_809AD94
+sub_809AD94: @ 809AD94
+ push {r4-r7,lr}
+ ldr r0, _0809ADB0
+ ldr r2, [r0]
+ ldr r3, _0809ADB4
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809ADBC
+ ldr r0, _0809ADB8
+ adds r1, r2, r0
+ movs r0, 0xC
+ b _0809ADC2
+ .align 2, 0
+_0809ADB0: .4byte gUnknown_083B6DB4
+_0809ADB4: .4byte 0x000011de
+_0809ADB8: .4byte 0x000011dc
+_0809ADBC:
+ ldr r3, _0809AE04
+ adds r1, r2, r3
+ movs r0, 0x6
+_0809ADC2:
+ strh r0, [r1]
+ ldr r2, [r4]
+ ldr r0, _0809AE08
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809ADDA
+ ldr r3, _0809AE04
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsrs r0, 1
+ strb r0, [r1]
+_0809ADDA:
+ ldr r1, _0809AE0C
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE14
+ cmp r1, 0x1
+ beq _0809AE30
+ ldr r3, _0809AE10
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ b _0809AE46
+ .align 2, 0
+_0809AE04: .4byte 0x000011dc
+_0809AE08: .4byte 0x000011e3
+_0809AE0C: .4byte 0x000011de
+_0809AE10: .4byte 0x000011da
+_0809AE14:
+ ldr r3, _0809AE2C
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AE46
+ .align 2, 0
+_0809AE2C: .4byte 0x000011da
+_0809AE30:
+ ldr r3, _0809AE74
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AE46:
+ subs r7, r1, r0
+ ldr r2, [r4]
+ ldr r3, _0809AE78
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AE80
+ cmp r1, 0x1
+ beq _0809AE9C
+ ldr r1, _0809AE7C
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ b _0809AEB2
+ .align 2, 0
+_0809AE74: .4byte 0x000011da
+_0809AE78: .4byte 0x000011df
+_0809AE7C: .4byte 0x000011d8
+_0809AE80:
+ ldr r3, _0809AE98
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _0809AEB2
+ .align 2, 0
+_0809AE98: .4byte 0x000011d8
+_0809AE9C:
+ ldr r3, _0809AF00
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_0809AEB2:
+ subs r0, r1, r0
+ lsls r7, 8
+ lsls r0, 8
+ ldr r4, [r4]
+ ldr r3, _0809AF04
+ adds r6, r4, r3
+ ldr r1, _0809AF08
+ adds r5, r4, r1
+ ldrh r1, [r5]
+ bl __divsi3
+ str r0, [r6]
+ ldr r2, _0809AF0C
+ adds r6, r4, r2
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ bl __divsi3
+ str r0, [r6]
+ ldr r3, _0809AF10
+ adds r2, r4, r3
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r4, r0
+ ldr r0, [r1]
+ movs r3, 0x20
+ ldrsh r0, [r0, r3]
+ lsls r0, 8
+ str r0, [r2]
+ ldr r0, _0809AF14
+ adds r4, r0
+ ldr r0, [r1]
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AF00: .4byte 0x000011d8
+_0809AF04: .4byte 0x000011d0
+_0809AF08: .4byte 0x000011dc
+_0809AF0C: .4byte 0x000011d4
+_0809AF10: .4byte 0x000011c8
+_0809AF14: .4byte 0x000011cc
+ thumb_func_end sub_809AD94
+
+ thumb_func_start sub_809AF18
+sub_809AF18: @ 809AF18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_809AD3C
+ bl sub_809AD94
+ ldr r0, _0809AFA4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AF46
+ ldr r0, _0809AFA8
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0809AF46:
+ cmp r4, 0x1
+ bne _0809AF70
+ ldr r0, _0809AFAC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809AF70
+ ldr r0, _0809AFA8
+ ldr r0, [r0]
+ ldr r2, _0809AFB0
+ adds r1, r0, r2
+ strb r4, [r1]
+ ldr r1, _0809AFB4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0809AF70:
+ cmp r4, 0
+ beq _0809AF9E
+ cmp r4, 0
+ blt _0809AF9E
+ cmp r4, 0x3
+ bgt _0809AF9E
+ ldr r0, _0809AFA8
+ ldr r2, [r0]
+ ldr r0, _0809AFB4
+ adds r2, r0
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+_0809AF9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AFA4: .4byte gUnknown_020384E6
+_0809AFA8: .4byte gUnknown_083B6DB4
+_0809AFAC: .4byte gUnknown_020384E4
+_0809AFB0: .4byte 0x000011e2
+_0809AFB4: .4byte 0x000011c4
+ thumb_func_end sub_809AF18
+
+ thumb_func_start sub_809AFB8
+sub_809AFB8: @ 809AFB8
+ push {r4,r5,lr}
+ ldr r5, _0809B000
+ ldr r0, _0809B004
+ ldr r4, [r0]
+ movs r1, 0x8F
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _0809B008
+ ldr r2, _0809B00C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0809B010
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809AFEA
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809AFEA:
+ bl sub_809BF74
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x1
+ beq _0809B020
+ cmp r0, 0x1
+ bgt _0809B014
+ cmp r0, 0
+ beq _0809B034
+ b _0809B05E
+ .align 2, 0
+_0809B000: .4byte gUnknown_020384E4
+_0809B004: .4byte gUnknown_083B6DB4
+_0809B008: .4byte gUnknown_020384E5
+_0809B00C: .4byte 0x000011e1
+_0809B010: .4byte gUnknown_020384E6
+_0809B014:
+ cmp r0, 0x2
+ bne _0809B05E
+ movs r0, 0x1
+ bl sub_809A860
+ b _0809B05E
+_0809B020:
+ ldr r2, _0809B030
+ adds r0, r4, r2
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0xC
+ strb r1, [r0]
+ b _0809B05E
+ .align 2, 0
+_0809B030: .4byte 0x000011c4
+_0809B034:
+ ldr r0, _0809B064
+ adds r2, r4, r0
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ adds r0, 0x43
+ movs r1, 0x14
+ strb r1, [r0]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0809B05E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B064: .4byte 0x000011c4
+ thumb_func_end sub_809AFB8
+
+ thumb_func_start sub_809B068
+sub_809B068: @ 809B068
+ push {lr}
+ ldr r0, _0809B078
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809B07C
+ movs r3, 0
+ b _0809B08A
+ .align 2, 0
+_0809B078: .4byte gUnknown_020384E6
+_0809B07C:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ bls _0809B08A
+ movs r3, 0x5
+_0809B08A:
+ ldr r0, _0809B0B8
+ ldr r2, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B0AA
+ ldr r0, _0809B0BC
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B0AA:
+ movs r0, 0x1
+ adds r1, r3, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B0B8: .4byte gUnknown_083B6DB4
+_0809B0BC: .4byte 0x000011e3
+ thumb_func_end sub_809B068
+
+ thumb_func_start sub_809B0C0
+sub_809B0C0: @ 809B0C0
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_809AF18
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B0C0
+
+ thumb_func_start sub_809B0D4
+sub_809B0D4: @ 809B0D4
+ ldr r1, _0809B0DC
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B0DC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0D4
+
+ thumb_func_start sub_809B0E0
+sub_809B0E0: @ 809B0E0
+ ldr r0, _0809B0EC
+ ldr r1, _0809B0F0
+ ldrb r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0809B0EC: .4byte gUnknown_020384EA
+_0809B0F0: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B0E0
+
+ thumb_func_start sub_809B0F4
+sub_809B0F4: @ 809B0F4
+ ldr r0, _0809B0FC
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809B0FC: .4byte gUnknown_020384EA
+ thumb_func_end sub_809B0F4
+
+ thumb_func_start sub_809B100
+sub_809B100: @ 809B100
+ lsls r0, 24
+ ldr r1, _0809B120
+ ldr r1, [r1]
+ ldr r2, _0809B124
+ adds r3, r1, r2
+ ldr r2, _0809B128
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0809B12C
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0809B120: .4byte gUnknown_083B6DB4
+_0809B124: .4byte 0x000012a4
+_0809B128: .4byte gUnknown_083BBBC8
+_0809B12C: .4byte 0x000012a8
+ thumb_func_end sub_809B100
+
+ thumb_func_start sub_809B130
+sub_809B130: @ 809B130
+ push {lr}
+ ldr r0, _0809B148
+ ldr r0, [r0]
+ ldr r1, _0809B14C
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B148: .4byte gUnknown_083B6DB4
+_0809B14C: .4byte 0x000012a4
+ thumb_func_end sub_809B130
+
+ thumb_func_start sub_809B150
+sub_809B150: @ 809B150
+ push {r4,r5,lr}
+ ldr r0, _0809B16C
+ ldr r5, [r0]
+ ldr r0, _0809B170
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _0809B1A0
+ cmp r0, 0x1
+ bgt _0809B174
+ cmp r0, 0
+ beq _0809B17E
+ b _0809B1CE
+ .align 2, 0
+_0809B16C: .4byte gUnknown_083B6DB4
+_0809B170: .4byte 0x000012a8
+_0809B174:
+ cmp r0, 0x2
+ beq _0809B1BE
+ cmp r0, 0x3
+ beq _0809B186
+ b _0809B1CE
+_0809B17E:
+ ldr r0, _0809B18C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B190
+_0809B186:
+ movs r0, 0
+ b _0809B1D0
+ .align 2, 0
+_0809B18C: .4byte gUnknown_020384E6
+_0809B190:
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _0809B1C8
+_0809B1A0:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ bl sub_809B384
+ b _0809B1C8
+_0809B1BE:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B1CE
+_0809B1C8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809B1CE:
+ movs r0, 0x1
+_0809B1D0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B150
+
+ thumb_func_start sub_809B1D8
+sub_809B1D8: @ 809B1D8
+ push {r4,r5,lr}
+ ldr r0, _0809B1F4
+ ldr r4, [r0]
+ ldr r0, _0809B1F8
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B220
+ cmp r0, 0x1
+ bgt _0809B1FC
+ cmp r0, 0
+ beq _0809B202
+ b _0809B244
+ .align 2, 0
+_0809B1F4: .4byte gUnknown_083B6DB4
+_0809B1F8: .4byte 0x000012a8
+_0809B1FC:
+ cmp r0, 0x2
+ beq _0809B240
+ b _0809B244
+_0809B202:
+ bl sub_809B324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl sub_809B3E0
+ b _0809B238
+_0809B220:
+ bl sub_809B358
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B244
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0809B238:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B244
+_0809B240:
+ movs r0, 0
+ b _0809B246
+_0809B244:
+ movs r0, 0x1
+_0809B246:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B1D8
+
+ thumb_func_start sub_809B24C
+sub_809B24C: @ 809B24C
+ push {r4,r5,lr}
+ ldr r0, _0809B268
+ ldr r4, [r0]
+ ldr r0, _0809B26C
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0809B2E0
+ cmp r0, 0x1
+ bgt _0809B270
+ cmp r0, 0
+ beq _0809B276
+ b _0809B31C
+ .align 2, 0
+_0809B268: .4byte gUnknown_083B6DB4
+_0809B26C: .4byte 0x000012a8
+_0809B270:
+ cmp r0, 0x2
+ beq _0809B318
+ b _0809B31C
+_0809B276:
+ ldr r0, _0809B290
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B298
+ cmp r0, 0x1
+ bne _0809B318
+ ldr r2, _0809B294
+ adds r1, r4, r2
+ movs r0, 0xE
+ b _0809B2A0
+ .align 2, 0
+_0809B290: .4byte gUnknown_020384E4
+_0809B294: .4byte 0x000012a9
+_0809B298:
+ bl get_preferred_box
+ ldr r2, _0809B2D0
+ adds r1, r4, r2
+_0809B2A0:
+ strb r0, [r1]
+ ldr r0, _0809B2D4
+ ldr r4, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r2, _0809B2D0
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B2D8
+ ldrb r1, [r1]
+ bl sub_80996B0
+ ldr r0, _0809B2DC
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0809B31C
+ .align 2, 0
+_0809B2D0: .4byte 0x000012a9
+_0809B2D4: .4byte gUnknown_083B6DB4
+_0809B2D8: .4byte gUnknown_020384E5
+_0809B2DC: .4byte 0x000012a8
+_0809B2E0:
+ bl sub_809971C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B31C
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ ldr r2, _0809B310
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldr r1, _0809B314
+ ldrb r1, [r1]
+ bl diegohint1
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0809B31C
+ .align 2, 0
+_0809B310: .4byte 0x000012a9
+_0809B314: .4byte gUnknown_020384E5
+_0809B318:
+ movs r0, 0
+ b _0809B31E
+_0809B31C:
+ movs r0, 0x1
+_0809B31E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B24C
+
+ thumb_func_start sub_809B324
+sub_809B324: @ 809B324
+ push {lr}
+ ldr r0, _0809B348
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B33E
+ cmp r0, 0x8
+ beq _0809B34C
+_0809B33E:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _0809B350
+ .align 2, 0
+_0809B348: .4byte gUnknown_083B6DB4
+_0809B34C:
+ movs r0, 0
+ b _0809B352
+_0809B350:
+ movs r0, 0x1
+_0809B352:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B324
+
+ thumb_func_start sub_809B358
+sub_809B358: @ 809B358
+ push {lr}
+ ldr r0, _0809B378
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0809B37C
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x1
+ strh r0, [r1, 0x26]
+ movs r0, 0x1
+ b _0809B37E
+ .align 2, 0
+_0809B378: .4byte gUnknown_083B6DB4
+_0809B37C:
+ movs r0, 0
+_0809B37E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B358
+
+ thumb_func_start sub_809B384
+sub_809B384: @ 809B384
+ push {r4,lr}
+ ldr r0, _0809B3AC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B3B4
+ cmp r0, 0x1
+ bne _0809B3D2
+ ldr r4, _0809B3B0
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0
+ bl sub_8099584
+ b _0809B3CC
+ .align 2, 0
+_0809B3AC: .4byte gUnknown_020384E4
+_0809B3B0: .4byte gUnknown_020384E5
+_0809B3B4:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0809B3D8
+ ldrb r1, [r4]
+ bl sub_809B44C
+ ldrb r1, [r4]
+ movs r0, 0x1
+ bl sub_8099584
+_0809B3CC:
+ ldr r1, _0809B3DC
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B3D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B3D8: .4byte gUnknown_020384E5
+_0809B3DC: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B384
+
+ thumb_func_start sub_809B3E0
+sub_809B3E0: @ 809B3E0
+ push {r4,r5,lr}
+ ldr r0, _0809B408
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809B410
+ cmp r0, 0x1
+ bne _0809B432
+ ldr r4, _0809B40C
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl diegohint2
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_809960C
+ b _0809B42C
+ .align 2, 0
+_0809B408: .4byte gUnknown_020384E4
+_0809B40C: .4byte gUnknown_020384E5
+_0809B410:
+ bl get_preferred_box
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0809B438
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl diegohint2
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809960C
+_0809B42C:
+ ldr r1, _0809B43C
+ movs r0, 0
+ strb r0, [r1]
+_0809B432:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B438: .4byte gUnknown_020384E5
+_0809B43C: .4byte gUnknown_020384E6
+ thumb_func_end sub_809B3E0
+
+ thumb_func_start sub_809B440
+sub_809B440: @ 809B440
+ push {lr}
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B440
+
+ thumb_func_start sub_809B44C
+sub_809B44C: @ 809B44C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0xE
+ bne _0809B488
+ ldr r0, _0809B478
+ ldr r0, [r0]
+ ldr r1, _0809B47C
+ adds r0, r1
+ ldr r3, _0809B480
+ ldr r1, _0809B484
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ b _0809B4AA
+ .align 2, 0
+_0809B478: .4byte gUnknown_083B6DB4
+_0809B47C: .4byte 0x000025b4
+_0809B480: .4byte gPlayerParty
+_0809B484: .4byte gUnknown_020384E5
+_0809B488:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 4
+ ldr r2, _0809B4C0
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B4C4
+ ldr r1, [r1]
+ ldr r2, _0809B4C8
+ adds r1, r2
+ bl sub_803B4B4
+_0809B4AA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809B548
+ ldr r0, _0809B4CC
+ strb r4, [r0]
+ ldr r0, _0809B4D0
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B4C0: .4byte gUnknown_020300A4
+_0809B4C4: .4byte gUnknown_083B6DB4
+_0809B4C8: .4byte 0x000025b4
+_0809B4CC: .4byte gUnknown_020384E7
+_0809B4D0: .4byte gUnknown_020384E8
+ thumb_func_end sub_809B44C
+
+ thumb_func_start diegohint2
+diegohint2: @ 809B4D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r6, 0xE
+ bne _0809B508
+ ldr r1, _0809B4FC
+ movs r0, 0x64
+ muls r0, r5
+ adds r0, r1
+ ldr r1, _0809B500
+ ldr r1, [r1]
+ ldr r2, _0809B504
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B536
+ .align 2, 0
+_0809B4FC: .4byte gPlayerParty
+_0809B500: .4byte gUnknown_083B6DB4
+_0809B504: .4byte 0x000025b4
+_0809B508:
+ ldr r0, _0809B53C
+ ldr r4, [r0]
+ ldr r0, _0809B540
+ adds r4, r0
+ adds r0, r4, 0
+ bl pokemon_restore_pp
+ ldr r3, _0809B544
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 5
+ adds r0, r1
+ adds r0, r3
+ adds r0, 0x4
+ adds r1, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809B536:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B53C: .4byte gUnknown_083B6DB4
+_0809B540: .4byte 0x000025b4
+_0809B544: .4byte gPokemonStorage
+ thumb_func_end diegohint2
+
+ thumb_func_start sub_809B548
+sub_809B548: @ 809B548
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r0, 0xE
+ bne _0809B568
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _0809B564
+ adds r0, r1
+ bl ZeroMonData
+ b _0809B582
+ .align 2, 0
+_0809B564: .4byte gPlayerParty
+_0809B568:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809B588
+ adds r1, r2
+ adds r0, r1
+ bl ZeroBoxMonData
+_0809B582:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B588: .4byte gUnknown_020300A4
+ thumb_func_end sub_809B548
+
+ thumb_func_start diegohint1
+diegohint1: @ 809B58C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r5, 0xE
+ bne _0809B5C0
+ ldr r0, _0809B5B4
+ ldr r0, [r0]
+ ldr r1, _0809B5B8
+ adds r0, r1
+ ldr r2, _0809B5BC
+ movs r1, 0x64
+ muls r1, r6
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _0809B5E2
+ .align 2, 0
+_0809B5B4: .4byte gUnknown_083B6DB4
+_0809B5B8: .4byte 0x00002618
+_0809B5BC: .4byte gPlayerParty
+_0809B5C0:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 4
+ ldr r2, _0809B614
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B618
+ ldr r1, [r1]
+ ldr r2, _0809B61C
+ adds r1, r2
+ bl sub_803B4B4
+_0809B5E2:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl diegohint2
+ ldr r0, _0809B618
+ ldr r1, [r0]
+ ldr r0, _0809B620
+ adds r4, r1, r0
+ ldr r2, _0809B61C
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_809C04C
+ ldr r0, _0809B624
+ strb r5, [r0]
+ ldr r0, _0809B628
+ strb r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B614: .4byte gUnknown_020300A4
+_0809B618: .4byte gUnknown_083B6DB4
+_0809B61C: .4byte 0x00002618
+_0809B620: .4byte 0x000025b4
+_0809B624: .4byte gUnknown_020384E7
+_0809B628: .4byte gUnknown_020384E8
+ thumb_func_end diegohint1
+
+ thumb_func_start sub_809B62C
+sub_809B62C: @ 809B62C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_8095B24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0809B64A
+ movs r0, 0
+ b _0809B6AC
+_0809B64A:
+ ldr r5, _0809B668
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0809B66C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ bl sub_8099480
+ movs r0, 0
+ strb r0, [r5]
+ b _0809B686
+ .align 2, 0
+_0809B668: .4byte gUnknown_020384E6
+_0809B66C:
+ ldr r5, _0809B6B4
+ ldrb r1, [r5]
+ movs r0, 0xE
+ bl sub_809B44C
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ ldrb r0, [r5]
+ bl sub_8099520
+_0809B686:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bne _0809B698
+ lsrs r0, r4, 24
+ bl sub_8098D20
+_0809B698:
+ ldr r0, _0809B6B8
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x1
+_0809B6AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B6B4: .4byte gUnknown_020384E5
+_0809B6B8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B62C
+
+ thumb_func_start sub_809B6BC
+sub_809B6BC: @ 809B6BC
+ push {lr}
+ ldr r0, _0809B6D8
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B6D8: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B6BC
+
+ thumb_func_start sub_809B6DC
+sub_809B6DC: @ 809B6DC
+ push {lr}
+ ldr r0, _0809B6EC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B6F0
+ movs r2, 0x2
+ b _0809B700
+ .align 2, 0
+_0809B6EC: .4byte gUnknown_020384E6
+_0809B6F0:
+ ldr r0, _0809B720
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0x1
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r2, r0, 31
+_0809B700:
+ ldr r0, _0809B724
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809981C
+ ldr r0, _0809B728
+ ldr r1, [r0]
+ ldr r2, _0809B72C
+ adds r0, r1, r2
+ ldr r2, _0809B730
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B720: .4byte gUnknown_020384E4
+_0809B724: .4byte gUnknown_020384E5
+_0809B728: .4byte gUnknown_083B6DB4
+_0809B72C: .4byte 0x000026e4
+_0809B730: .4byte 0x000011fa
+ thumb_func_end sub_809B6DC
+
+ thumb_func_start sub_809B734
+sub_809B734: @ 809B734
+ push {lr}
+ bl sub_80998D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B744
+ movs r0, 0x1
+ b _0809B758
+_0809B744:
+ ldr r0, _0809B75C
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0
+_0809B758:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B75C: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B734
+
+ thumb_func_start sub_809B760
+sub_809B760: @ 809B760
+ push {lr}
+ bl sub_8099920
+ ldr r1, _0809B774
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809B778
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B79E
+ .align 2, 0
+_0809B774: .4byte gUnknown_020384E6
+_0809B778:
+ ldr r0, _0809B788
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B78C
+ movs r2, 0xE
+ b _0809B794
+ .align 2, 0
+_0809B788: .4byte gUnknown_020384E4
+_0809B78C:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0809B794:
+ ldr r0, _0809B7A8
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_809B548
+_0809B79E:
+ bl sub_809BF74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7A8: .4byte gUnknown_020384E5
+ thumb_func_end sub_809B760
+
+ thumb_func_start sub_809B7AC
+sub_809B7AC: @ 809B7AC
+ push {lr}
+ ldr r0, _0809B7CC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B7C8
+ ldr r0, _0809B7D0
+ ldr r0, [r0]
+ movs r1, 0x8E
+ lsls r1, 5
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_0809B7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B7CC: .4byte gUnknown_020384E6
+_0809B7D0: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809B7AC
+
+ thumb_func_start sub_809B7D4
+sub_809B7D4: @ 809B7D4
+ push {r4-r6,lr}
+ ldr r0, _0809B804
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809B81C
+ ldr r0, _0809B808
+ ldr r4, [r0]
+ ldr r1, _0809B80C
+ adds r0, r4, r1
+ ldr r2, _0809B810
+ adds r1, r4, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B814
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _0809B818
+ adds r4, r1
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4]
+ b _0809B8A6
+ .align 2, 0
+_0809B804: .4byte gUnknown_020384E6
+_0809B808: .4byte gUnknown_083B6DB4
+_0809B80C: .4byte 0x00002618
+_0809B810: .4byte 0x000025b4
+_0809B814: .4byte 0x00002682
+_0809B818: .4byte 0x00002683
+_0809B81C:
+ ldr r0, _0809B84C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809B864
+ ldr r0, _0809B850
+ ldr r4, [r0]
+ ldr r2, _0809B854
+ adds r0, r4, r2
+ ldr r3, _0809B858
+ ldr r1, _0809B85C
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, _0809B860
+ adds r4, r0
+ movs r0, 0xE
+ b _0809B896
+ .align 2, 0
+_0809B84C: .4byte gUnknown_020384E4
+_0809B850: .4byte gUnknown_083B6DB4
+_0809B854: .4byte 0x00002618
+_0809B858: .4byte gPlayerParty
+_0809B85C: .4byte gUnknown_020384E5
+_0809B860: .4byte 0x00002682
+_0809B864:
+ ldr r5, _0809B8FC
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809B900
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r2, r5, 0x4
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _0809B904
+ ldr r4, [r1]
+ ldr r2, _0809B908
+ adds r1, r4, r2
+ bl sub_803B4B4
+ ldrb r0, [r5]
+ ldr r1, _0809B90C
+ adds r4, r1
+_0809B896:
+ strb r0, [r4]
+ ldr r0, _0809B904
+ ldr r0, [r0]
+ ldr r1, _0809B900
+ ldrb r1, [r1]
+ ldr r2, _0809B910
+ adds r0, r2
+ strb r1, [r0]
+_0809B8A6:
+ ldr r0, _0809B904
+ ldr r6, [r0]
+ ldr r0, _0809B914
+ adds r4, r6, r0
+ movs r0, 0
+ strb r0, [r4]
+ ldr r1, _0809B918
+ adds r5, r6, r1
+ strb r0, [r5]
+ ldr r0, _0809B91C
+ adds r2, r6, r0
+ movs r0, 0x39
+ strh r0, [r2]
+ ldr r0, _0809B920
+ adds r1, r6, r0
+ ldr r0, _0809B924
+ strh r0, [r1]
+ ldr r0, _0809B928
+ adds r1, r6, r0
+ ldr r0, _0809B92C
+ strh r0, [r1]
+ ldr r1, _0809B908
+ adds r0, r6, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r2, 0x1
+ ands r1, r2
+ strb r1, [r4]
+ lsrs r0, 17
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0809B934
+ ldr r2, _0809B930
+ adds r1, r6, r2
+ movs r0, 0
+ strb r0, [r1]
+ b _0809B940
+ .align 2, 0
+_0809B8FC: .4byte gPokemonStorage
+_0809B900: .4byte gUnknown_020384E5
+_0809B904: .4byte gUnknown_083B6DB4
+_0809B908: .4byte 0x00002618
+_0809B90C: .4byte 0x00002682
+_0809B910: .4byte 0x00002683
+_0809B914: .4byte 0x0000267e
+_0809B918: .4byte 0x0000267f
+_0809B91C: .4byte 0x00002686
+_0809B920: .4byte 0x00002688
+_0809B924: .4byte 0x00000123
+_0809B928: .4byte 0x0000268a
+_0809B92C: .4byte 0x00000163
+_0809B930: .4byte 0x0000267d
+_0809B934:
+ ldr r2, _0809B954
+ adds r0, r6, r2
+ strb r1, [r0]
+ subs r2, 0x1
+ adds r0, r6, r2
+ strb r1, [r0]
+_0809B940:
+ ldr r0, _0809B958
+ ldr r0, [r0]
+ ldr r1, _0809B95C
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B954: .4byte 0x0000267d
+_0809B958: .4byte gUnknown_083B6DB4
+_0809B95C: .4byte 0x00002684
+ thumb_func_end sub_809B7D4
+
+ thumb_func_start sub_809B960
+sub_809B960: @ 809B960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809B988
+ ldr r2, [r0]
+ ldr r3, _0809B98C
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _0809B994
+ ldr r7, _0809B990
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _0809BB5C
+ .align 2, 0
+_0809B988: .4byte gUnknown_083B6DB4
+_0809B98C: .4byte 0x0000267d
+_0809B990: .4byte 0x0000267c
+_0809B994:
+ ldr r1, _0809B9A4
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809B9A8
+ cmp r0, 0x1
+ beq _0809BA84
+ b _0809BB58
+ .align 2, 0
+_0809B9A4: .4byte 0x00002684
+_0809B9A8:
+ movs r5, 0
+ movs r6, 0
+_0809B9AC:
+ mov r2, r12
+ ldr r4, [r2]
+ ldr r3, _0809BA28
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bne _0809B9CC
+ ldr r7, _0809BA2C
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r5
+ beq _0809BA02
+_0809B9CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0809BA30
+ adds r0, r1
+ ldr r1, _0809BA34
+ adds r2, r4, r1
+ movs r1, 0x50
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809B9F0
+ ldr r2, _0809BA38
+ adds r0, r4, r2
+ strb r6, [r0]
+_0809B9F0:
+ movs r0, 0x2
+ ands r3, r0
+ ldr r7, _0809BA3C
+ mov r12, r7
+ cmp r3, 0
+ beq _0809BA02
+ ldr r1, _0809BA40
+ adds r0, r4, r1
+ strb r6, [r0]
+_0809BA02:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809B9AC
+ mov r3, r12
+ ldr r2, [r3]
+ ldr r7, _0809BA38
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BA4C
+ ldr r1, _0809BA44
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r3, _0809BA48
+ b _0809BB54
+ .align 2, 0
+_0809BA28: .4byte 0x00002682
+_0809BA2C: .4byte 0x00002683
+_0809BA30: .4byte gPlayerParty
+_0809BA34: .4byte 0x00002686
+_0809BA38: .4byte 0x0000267e
+_0809BA3C: .4byte gUnknown_083B6DB4
+_0809BA40: .4byte 0x0000267f
+_0809BA44: .4byte 0x0000267d
+_0809BA48: .4byte 0x0000267c
+_0809BA4C:
+ movs r7, 0x9A
+ lsls r7, 6
+ adds r0, r2, r7
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BA68
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r7, 0x4
+ adds r1, r2, r7
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0809BB58
+ .align 2, 0
+_0809BA68: .4byte 0x00002681
+_0809BA6C:
+ ldr r1, _0809BA7C
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r7, _0809BA80
+ adds r0, r2, r7
+ strb r3, [r0]
+ b _0809BB3C
+ .align 2, 0
+_0809BA7C: .4byte 0x0000267d
+_0809BA80: .4byte 0x0000267c
+_0809BA84:
+ movs r5, 0
+ mov r9, r12
+ adds r4, r2, 0
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r6, r4, r0
+ ldr r1, _0809BB6C
+ adds r1, r4
+ mov r8, r1
+ ldr r2, _0809BB70
+ mov r10, r2
+_0809BA9A:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r3, _0809BB74
+ adds r1, r4, r3
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BB78
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x50
+ ldr r7, _0809BB7C
+ adds r2, r4, r7
+ bl GetBoxMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0809BB00
+ ldr r1, _0809BB80
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ mov r1, r10
+ ands r1, r0
+ mov r0, r10
+ ands r0, r2
+ cmp r1, r0
+ beq _0809BB00
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0809BAF2
+ ldr r2, _0809BB84
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+_0809BAF2:
+ movs r0, 0x2
+ ands r3, r0
+ cmp r3, 0
+ beq _0809BB00
+ movs r0, 0
+ mov r3, r8
+ strb r0, [r3]
+_0809BB00:
+ mov r7, r9
+ ldr r2, [r7]
+ ldr r0, _0809BB74
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r7, _0809BB88
+ mov r12, r7
+ cmp r0, 0x1D
+ ble _0809BB32
+ strb r3, [r1]
+ movs r0, 0x9A
+ lsls r0, 6
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xD
+ bgt _0809BA6C
+_0809BB32:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _0809BA9A
+_0809BB3C:
+ mov r1, r12
+ ldr r2, [r1]
+ ldr r3, _0809BB84
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809BB58
+ ldr r7, _0809BB8C
+ adds r0, r2, r7
+ movs r1, 0x1
+ strb r1, [r0]
+ subs r3, 0x2
+_0809BB54:
+ adds r0, r2, r3
+ strb r1, [r0]
+_0809BB58:
+ movs r0, 0x1
+ negs r0, r0
+_0809BB5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BB6C: .4byte 0x0000267f
+_0809BB70: .4byte 0x0000ffff
+_0809BB74: .4byte 0x00002681
+_0809BB78: .4byte gUnknown_020300A4
+_0809BB7C: .4byte 0x00002686
+_0809BB80: .4byte 0x00002682
+_0809BB84: .4byte 0x0000267e
+_0809BB88: .4byte gUnknown_083B6DB4
+_0809BB8C: .4byte 0x0000267d
+ thumb_func_end sub_809B960
+
+ thumb_func_start sub_809BB90
+sub_809BB90: @ 809BB90
+ push {lr}
+ ldr r0, _0809BBB0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BBAA
+ ldr r0, _0809BBB4
+ ldr r1, _0809BBB8
+ ldr r1, [r1]
+ ldr r2, _0809BBBC
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_0809BBAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BBB0: .4byte gUnknown_020384E6
+_0809BBB4: .4byte gUnknown_02038480
+_0809BBB8: .4byte gUnknown_083B6DB4
+_0809BBBC: .4byte 0x000025b4
+ thumb_func_end sub_809BB90
+
+ thumb_func_start sub_809BBC0
+sub_809BBC0: @ 809BBC0
+ push {lr}
+ ldr r0, _0809BBE4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BC08
+ ldr r0, _0809BBE8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0809BBF8
+ ldr r0, _0809BBEC
+ ldr r0, [r0]
+ ldr r1, _0809BBF0
+ adds r0, r1
+ ldr r1, _0809BBF4
+ movs r2, 0x64
+ bl memcpy
+ b _0809BC08
+ .align 2, 0
+_0809BBE4: .4byte gUnknown_020384E6
+_0809BBE8: .4byte gUnknown_020384E7
+_0809BBEC: .4byte gUnknown_083B6DB4
+_0809BBF0: .4byte 0x000025b4
+_0809BBF4: .4byte gUnknown_02038480
+_0809BBF8:
+ ldr r0, _0809BC0C
+ ldr r0, [r0]
+ ldr r1, _0809BC10
+ adds r0, r1
+ ldr r1, _0809BC14
+ movs r2, 0x50
+ bl memcpy
+_0809BC08:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BC0C: .4byte gUnknown_083B6DB4
+_0809BC10: .4byte 0x000025b4
+_0809BC14: .4byte gUnknown_02038480
+ thumb_func_end sub_809BBC0
+
+ thumb_func_start sub_809BC18
+sub_809BC18: @ 809BC18
+ push {r4,r5,lr}
+ ldr r0, _0809BC48
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _0809BC64
+ bl sub_809BB90
+ ldr r0, _0809BC4C
+ ldr r2, [r0]
+ ldr r0, _0809BC50
+ adds r1, r2, r0
+ ldr r0, _0809BC54
+ str r0, [r1]
+ ldr r1, _0809BC58
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809BC5C
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809BC60
+ adds r2, r0
+ strb r1, [r2]
+ b _0809BCF2
+ .align 2, 0
+_0809BC48: .4byte gUnknown_020384E6
+_0809BC4C: .4byte gUnknown_083B6DB4
+_0809BC50: .4byte 0x00002690
+_0809BC54: .4byte gUnknown_02038480
+_0809BC58: .4byte 0x0000268d
+_0809BC5C: .4byte 0x0000268c
+_0809BC60: .4byte 0x0000268e
+_0809BC64:
+ ldr r0, _0809BC9C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BCBC
+ ldr r0, _0809BCA0
+ ldr r4, [r0]
+ ldr r2, _0809BCA4
+ adds r1, r4, r2
+ ldr r0, _0809BCA8
+ str r0, [r1]
+ ldr r0, _0809BCAC
+ ldrb r1, [r0]
+ ldr r3, _0809BCB0
+ adds r0, r4, r3
+ strb r1, [r0]
+ bl sub_8095C28
+ subs r0, 0x1
+ ldr r2, _0809BCB4
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _0809BCB8
+ adds r4, r3
+ strb r5, [r4]
+ b _0809BCF2
+ .align 2, 0
+_0809BC9C: .4byte gUnknown_020384E4
+_0809BCA0: .4byte gUnknown_083B6DB4
+_0809BCA4: .4byte 0x00002690
+_0809BCA8: .4byte gPlayerParty
+_0809BCAC: .4byte gUnknown_020384E5
+_0809BCB0: .4byte 0x0000268d
+_0809BCB4: .4byte 0x0000268c
+_0809BCB8: .4byte 0x0000268e
+_0809BCBC:
+ ldr r0, _0809BCF8
+ ldr r3, [r0]
+ ldr r0, _0809BCFC
+ adds r4, r3, r0
+ ldr r2, _0809BD00
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r2, 0x4
+ adds r0, r2
+ str r0, [r4]
+ ldr r0, _0809BD04
+ ldrb r1, [r0]
+ ldr r2, _0809BD08
+ adds r0, r3, r2
+ strb r1, [r0]
+ ldr r0, _0809BD0C
+ adds r1, r3, r0
+ movs r0, 0x1D
+ strb r0, [r1]
+ ldr r1, _0809BD10
+ adds r3, r1
+ movs r0, 0x5
+ strb r0, [r3]
+_0809BCF2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BCF8: .4byte gUnknown_083B6DB4
+_0809BCFC: .4byte 0x00002690
+_0809BD00: .4byte gPokemonStorage
+_0809BD04: .4byte gUnknown_020384E5
+_0809BD08: .4byte 0x0000268d
+_0809BD0C: .4byte 0x0000268c
+_0809BD10: .4byte 0x0000268e
+ thumb_func_end sub_809BC18
+
+ thumb_func_start sub_809BD14
+sub_809BD14: @ 809BD14
+ push {lr}
+ ldr r0, _0809BD24
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BD28
+ bl sub_809BBC0
+ b _0809BD30
+ .align 2, 0
+_0809BD24: .4byte gUnknown_020384E6
+_0809BD28:
+ ldr r0, _0809BD34
+ ldr r1, _0809BD38
+ ldrb r1, [r1, 0x9]
+ strb r1, [r0]
+_0809BD30:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BD34: .4byte gUnknown_020384E5
+_0809BD38: .4byte 0x02018000
+ thumb_func_end sub_809BD14
+
+ thumb_func_start party_compaction
+party_compaction: @ 809BD3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _0809BD88
+ movs r6, 0
+ movs r5, 0
+ movs r0, 0x64
+ mov r9, r0
+ ldr r1, _0809BD8C
+ mov r8, r1
+ subs r0, 0x65
+ mov r10, r0
+_0809BD58:
+ mov r0, r9
+ muls r0, r6
+ mov r1, r8
+ adds r4, r0, r1
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809BD90
+ cmp r6, r5
+ beq _0809BD80
+ mov r0, r9
+ muls r0, r5
+ add r0, r8
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_0809BD80:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _0809BD9A
+ .align 2, 0
+_0809BD88: .4byte 0x0000ffff
+_0809BD8C: .4byte gPlayerParty
+_0809BD90:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, r10
+ bne _0809BD9A
+ adds r7, r6, 0
+_0809BD9A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _0809BD58
+ lsls r7, 16
+ cmp r5, 0x5
+ bhi _0809BDC2
+ movs r6, 0x64
+ ldr r4, _0809BDD4
+_0809BDAE:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ bl ZeroMonData
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _0809BDAE
+_0809BDC2:
+ asrs r0, r7, 16
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BDD4: .4byte gPlayerParty
+ thumb_func_end party_compaction
+
+ thumb_func_start sub_809BDD8
+sub_809BDD8: @ 809BDD8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r1, _0809BE04
+ ldr r2, [r1]
+ ldr r3, _0809BE08
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _0809BE0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BE14
+ ldr r1, _0809BE10
+ adds r0, r2, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _0809BE68
+ .align 2, 0
+_0809BE04: .4byte gUnknown_083B6DB4
+_0809BE08: .4byte 0x000011f7
+_0809BE0C: .4byte gUnknown_020384E6
+_0809BE10: .4byte 0x000025b4
+_0809BE14:
+ ldr r4, _0809BE70
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1
+ bne _0809BE34
+ ldr r0, _0809BE74
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BE78
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+_0809BE34:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _0809BE68
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809BE74
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809BE7C
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_0809BE68:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809BE70: .4byte gUnknown_020384E4
+_0809BE74: .4byte gUnknown_020384E5
+_0809BE78: .4byte gPlayerParty
+_0809BE7C: .4byte gUnknown_020300A4
+ thumb_func_end sub_809BDD8
+
+ thumb_func_start sub_809BE80
+sub_809BE80: @ 809BE80
+ push {lr}
+ ldr r0, _0809BEA8
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEB4
+ ldr r0, _0809BEAC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BEB4
+ ldr r0, _0809BEB0
+ ldrb r0, [r0]
+ bl sub_8095BB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEB4
+ movs r0, 0x1
+ b _0809BEB6
+ .align 2, 0
+_0809BEA8: .4byte gUnknown_020384E4
+_0809BEAC: .4byte gUnknown_020384E6
+_0809BEB0: .4byte gUnknown_020384E5
+_0809BEB4:
+ movs r0, 0
+_0809BEB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BE80
+
+ thumb_func_start sub_809BEBC
+sub_809BEBC: @ 809BEBC
+ push {lr}
+ ldr r0, _0809BF00
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809BF18
+ ldr r0, _0809BF04
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BEFC
+ ldr r0, _0809BF08
+ ldrb r0, [r0]
+ bl sub_8095BB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BEFC
+ ldr r0, _0809BF0C
+ ldr r1, [r0]
+ ldr r2, _0809BF10
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809BF18
+ ldr r2, _0809BF14
+ adds r0, r1, r2
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0809BF18
+_0809BEFC:
+ movs r0, 0x1
+ b _0809BF1A
+ .align 2, 0
+_0809BF00: .4byte gUnknown_020384E6
+_0809BF04: .4byte gUnknown_020384E4
+_0809BF08: .4byte gUnknown_020384E5
+_0809BF0C: .4byte gUnknown_083B6DB4
+_0809BF10: .4byte 0x000011f9
+_0809BF14: .4byte 0x000025b4
+_0809BF18:
+ movs r0, 0
+_0809BF1A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809BEBC
+
+ thumb_func_start sub_809BF20
+sub_809BF20: @ 809BF20
+ ldr r0, _0809BF28
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809BF28: .4byte gUnknown_020384E6
+ thumb_func_end sub_809BF20
+
+ thumb_func_start sub_809BF2C
+sub_809BF2C: @ 809BF2C
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF44
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _0809BF3E
+ movs r1, 0x1
+_0809BF3E:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF44: .4byte gUnknown_020384E4
+ thumb_func_end sub_809BF2C
+
+ thumb_func_start sub_809BF48
+sub_809BF48: @ 809BF48
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809BF6C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _0809BF66
+ ldr r0, _0809BF70
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809BF66
+ movs r1, 0x1
+_0809BF66:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809BF6C: .4byte gUnknown_020384E4
+_0809BF70: .4byte gUnknown_020384E5
+ thumb_func_end sub_809BF48
+
+ thumb_func_start sub_809BF74
+sub_809BF74: @ 809BF74
+ push {r4,lr}
+ ldr r0, _0809BFA8
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _0809BFAC
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809BF86
+ movs r2, 0x1
+_0809BF86:
+ ldr r4, _0809BFB0
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0809C018
+ ldr r0, _0809BFB4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0809BFBE
+ cmp r0, 0x1
+ bgt _0809BFB8
+ cmp r0, 0
+ beq _0809BFEE
+ b _0809C018
+ .align 2, 0
+_0809BFA8: .4byte gUnknown_083B6DB4
+_0809BFAC: .4byte gUnknown_020384E6
+_0809BFB0: .4byte 0x000011f6
+_0809BFB4: .4byte gUnknown_020384E4
+_0809BFB8:
+ cmp r0, 0x3
+ bgt _0809C018
+ b _0809BFE4
+_0809BFBE:
+ ldr r1, _0809BFDC
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0809BFE4
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809BFE0
+ adds r0, r1
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C018
+ .align 2, 0
+_0809BFDC: .4byte gUnknown_020384E5
+_0809BFE0: .4byte gPlayerParty
+_0809BFE4:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_809C04C
+ b _0809C018
+_0809BFEE:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, _0809C020
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _0809C024
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_809C04C
+_0809C018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C020: .4byte gUnknown_020384E5
+_0809C024: .4byte gUnknown_020300A4
+ thumb_func_end sub_809BF74
+
+ thumb_func_start sub_809C028
+sub_809C028: @ 809C028
+ push {lr}
+ ldr r0, _0809C03C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C044
+ ldr r0, _0809C040
+ movs r1, 0
+ bl sub_809C04C
+ b _0809C048
+ .align 2, 0
+_0809C03C: .4byte gUnknown_020384E6
+_0809C040: .4byte gUnknown_02038480
+_0809C044:
+ bl sub_809BF74
+_0809C048:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C028
+
+ thumb_func_start sub_809C04C
+sub_809C04C: @ 809C04C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809C0FC
+ ldr r6, [r0]
+ ldr r2, _0809C100
+ adds r2, r6
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2]
+ cmp r1, 0
+ bne _0809C120
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetMonData
+ ldr r2, _0809C104
+ adds r1, r6, r2
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809C08C
+ b _0809C1EC
+_0809C08C:
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ ldr r2, _0809C108
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C10C
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r2, _0809C110
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetMonData
+ ldr r2, _0809C114
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r2, _0809C118
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl pokemon_get_pal
+ ldr r2, _0809C11C
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r0, r7, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ b _0809C1B2
+ .align 2, 0
+_0809C0FC: .4byte gUnknown_083B6DB4
+_0809C100: .4byte 0x000011f2
+_0809C104: .4byte 0x000011f0
+_0809C108: .4byte 0x000011f9
+_0809C10C: .4byte 0x000011fa
+_0809C110: .4byte 0x000011f8
+_0809C114: .4byte 0x000011f7
+_0809C118: .4byte 0x000011ec
+_0809C11C: .4byte 0x000011e8
+_0809C120:
+ cmp r1, 0x1
+ bne _0809C1D4
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ ldr r2, _0809C1B8
+ adds r5, r6, r2
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809C1EC
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ mov r9, r0
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ ldr r2, _0809C1BC
+ adds r1, r6, r2
+ strb r0, [r1]
+ ldr r0, _0809C1C0
+ adds r4, r6, r0
+ adds r0, r7, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetBoxMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r7, 0
+ bl GetLevelFromBoxMonExp
+ ldr r2, _0809C1C4
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetBoxMonData
+ ldr r2, _0809C1C8
+ adds r1, r6, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r2, r0, 0
+ ldr r0, _0809C1CC
+ adds r4, r6, r0
+ str r2, [r4]
+ ldrh r0, [r5]
+ mov r1, r9
+ bl species_and_otid_get_pal
+ ldr r2, _0809C1D0
+ adds r1, r6, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, [r4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+_0809C1B2:
+ mov r1, r8
+ strh r0, [r1]
+ b _0809C1DE
+ .align 2, 0
+_0809C1B8: .4byte 0x000011f0
+_0809C1BC: .4byte 0x000011f9
+_0809C1C0: .4byte 0x000011fa
+_0809C1C4: .4byte 0x000011f8
+_0809C1C8: .4byte 0x000011f7
+_0809C1CC: .4byte 0x000011ec
+_0809C1D0: .4byte 0x000011e8
+_0809C1D4:
+ ldr r2, _0809C220
+ adds r0, r6, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0]
+_0809C1DE:
+ ldr r0, _0809C224
+ ldr r4, [r0]
+ ldr r2, _0809C220
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _0809C23C
+_0809C1EC:
+ ldr r0, _0809C224
+ ldr r1, [r0]
+ ldr r0, _0809C228
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, _0809C22C
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C230
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r0, _0809C234
+ adds r2, r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2]
+ ldr r2, _0809C238
+ adds r1, r2
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C220: .4byte 0x000011f0
+_0809C224: .4byte gUnknown_083B6DB4
+_0809C228: .4byte 0x000011fa
+_0809C22C: .4byte 0x0000120f
+_0809C230: .4byte 0x00001234
+_0809C234: .4byte 0x00001259
+_0809C238: .4byte 0x0000127a
+_0809C23C:
+ ldr r2, _0809C28C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809C2A4
+ ldr r0, _0809C290
+ adds r7, r4, r0
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x4
+ strb r0, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r1, _0809C294
+ adds r7, r4, r1
+ adds r2, 0x1
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C298
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r2, _0809C29C
+ adds r1, r4, r2
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ ldr r0, _0809C2A0
+ adds r1, r4, r0
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ b _0809C43E
+ .align 2, 0
+_0809C28C: .4byte 0x000011f9
+_0809C290: .4byte 0x0000120f
+_0809C294: .4byte 0x00001214
+_0809C298: .4byte 0x00001234
+_0809C29C: .4byte 0x00001259
+_0809C2A0: .4byte 0x0000127a
+_0809C2A4:
+ cmp r1, 0x20
+ beq _0809C2AC
+ cmp r1, 0x1D
+ bne _0809C2B0
+_0809C2AC:
+ movs r1, 0xFF
+ str r1, [sp]
+_0809C2B0:
+ ldr r0, _0809C388
+ ldr r4, [r0]
+ ldr r2, _0809C38C
+ adds r7, r4, r2
+ movs r0, 0xFC
+ mov r9, r0
+ strb r0, [r7]
+ movs r1, 0x4
+ mov r8, r1
+ strb r1, [r7, 0x1]
+ movs r2, 0xF
+ strb r2, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r6, 0x1
+ strb r6, [r7, 0x4]
+ ldr r1, _0809C390
+ adds r7, r4, r1
+ ldr r2, _0809C394
+ adds r1, r4, r2
+ adds r0, r7, 0
+ bl StringCopy
+ ldr r0, _0809C398
+ adds r7, r4, r0
+ mov r1, r9
+ strb r1, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r7, 0x6]
+ movs r1, 0x7
+ strb r1, [r7, 0x7]
+ movs r0, 0xBA
+ strb r0, [r7, 0x8]
+ ldr r2, _0809C39C
+ adds r7, r4, r2
+ ldr r1, _0809C3A0
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _0809C3A4
+ adds r1, r0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r2, r9
+ strb r2, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ movs r0, 0x50
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r1, _0809C3A8
+ adds r7, r4, r1
+ strb r2, [r7]
+ mov r2, r8
+ strb r2, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r1, 0
+ strb r1, [r7, 0x3]
+ strb r6, [r7, 0x4]
+ mov r2, r9
+ strb r2, [r7, 0x5]
+ mov r0, r10
+ strb r0, [r7, 0x6]
+ movs r6, 0x8
+ strb r6, [r7, 0x7]
+ ldr r1, _0809C3AC
+ adds r7, r4, r1
+ movs r0, 0x34
+ strb r0, [r7]
+ ldr r2, _0809C3B0
+ adds r7, r4, r2
+ ldr r0, _0809C3B4
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0x22
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ mov r1, r9
+ strb r1, [r7]
+ movs r0, 0x11
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ adds r7, 0x3
+ ldr r2, [sp]
+ cmp r2, 0
+ beq _0809C3B8
+ cmp r2, 0xFE
+ beq _0809C3D0
+ b _0809C3EA
+ .align 2, 0
+_0809C388: .4byte gUnknown_083B6DB4
+_0809C38C: .4byte 0x0000120f
+_0809C390: .4byte 0x00001214
+_0809C394: .4byte 0x000011fa
+_0809C398: .4byte 0x00001234
+_0809C39C: .4byte 0x0000123d
+_0809C3A0: .4byte 0x000011f0
+_0809C3A4: .4byte gSpeciesNames
+_0809C3A8: .4byte 0x00001259
+_0809C3AC: .4byte 0x00001261
+_0809C3B0: .4byte 0x00001262
+_0809C3B4: .4byte 0x000011f8
+_0809C3B8:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ mov r2, sp
+ ldrb r2, [r2]
+ strb r2, [r7, 0x3]
+ movs r0, 0x5
+ strb r0, [r7, 0x4]
+ movs r0, 0xB5
+ b _0809C3E6
+_0809C3D0:
+ mov r0, r9
+ strb r0, [r7]
+ mov r1, r8
+ strb r1, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ movs r2, 0
+ strb r2, [r7, 0x3]
+ movs r0, 0x7
+ strb r0, [r7, 0x4]
+ movs r0, 0xB6
+_0809C3E6:
+ strb r0, [r7, 0x5]
+ adds r7, 0x6
+_0809C3EA:
+ movs r5, 0xFF
+ strb r5, [r7]
+ ldr r0, _0809C450
+ ldr r2, [r0]
+ ldr r1, _0809C454
+ adds r7, r2, r1
+ ldr r0, _0809C458
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _0809C43C
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r1, 0x4
+ strb r1, [r7, 0x1]
+ movs r0, 0xF
+ strb r0, [r7, 0x2]
+ movs r0, 0
+ strb r0, [r7, 0x3]
+ movs r0, 0x1
+ strb r0, [r7, 0x4]
+ ldr r0, _0809C45C
+ adds r7, r2, r0
+ strb r4, [r7]
+ movs r0, 0x6
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ ldr r1, _0809C460
+ adds r7, r2, r1
+ ldrh r0, [r3]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x7
+ strb r0, [r7, 0x1]
+ adds r7, 0x2
+_0809C43C:
+ strb r5, [r7]
+_0809C43E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C450: .4byte gUnknown_083B6DB4
+_0809C454: .4byte 0x0000127a
+_0809C458: .4byte 0x000011f2
+_0809C45C: .4byte 0x0000127f
+_0809C460: .4byte 0x00001282
+ thumb_func_end sub_809C04C
+
+ thumb_func_start sub_809C464
+sub_809C464: @ 809C464
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0809C4D8
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r2, _0809C4DC
+ ldrb r4, [r2]
+ ldr r0, _0809C4E0
+ ldr r1, [r0]
+ ldr r0, _0809C4E4
+ adds r7, r1, r0
+ movs r0, 0
+ strb r0, [r7]
+ ldr r3, _0809C4E8
+ adds r5, r1, r3
+ strb r0, [r5]
+ adds r3, 0x4
+ adds r6, r1, r3
+ strb r0, [r6]
+ ldr r0, _0809C4EC
+ mov r12, r0
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _0809C4A0
+ b _0809C62A
+_0809C4A0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C4F0
+ movs r1, 0x1
+ mov r9, r1
+ lsls r0, r4, 24
+ movs r3, 0xC0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1D
+ bgt _0809C4BE
+ b _0809C648
+_0809C4BE:
+ movs r1, 0x3
+ mov r8, r1
+ subs r0, 0x1E
+ lsls r0, 24
+ asrs r0, 24
+ bl __divsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r3, r9
+ strb r3, [r7]
+ strb r3, [r6]
+ b _0809C648
+ .align 2, 0
+_0809C4D8: .4byte gUnknown_020384E4
+_0809C4DC: .4byte gUnknown_020384E5
+_0809C4E0: .4byte gUnknown_083B6DB4
+_0809C4E4: .4byte 0x000011de
+_0809C4E8: .4byte 0x000011df
+_0809C4EC: .4byte gMain
+_0809C4F0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C524
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C514
+ lsls r0, r4, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ b _0809C63C
+_0809C514:
+ movs r0, 0xFF
+ strb r0, [r5]
+ lsls r0, r4, 24
+ movs r3, 0xA0
+ lsls r3, 19
+ adds r0, r3
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C524:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C554
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ bl __modsi3
+ cmp r0, 0
+ beq _0809C548
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ b _0809C63C
+_0809C548:
+ mov r3, r9
+ strb r3, [r5]
+ lsls r0, r4, 24
+ movs r1, 0xFB
+ lsls r1, 24
+ b _0809C63C
+_0809C554:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C56A
+ movs r0, 0x1
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+ b _0809C646
+_0809C56A:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5D4
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5D4
+ ldr r0, _0809C588
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C58C
+ movs r0, 0x8
+ b _0809C658
+ .align 2, 0
+_0809C588: .4byte gUnknown_020384E9
+_0809C58C:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C5D4
+ lsls r0, 2
+ ldr r1, _0809C5A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C5A8: .4byte _0809C5AC
+ .align 2, 0
+_0809C5AC:
+ .4byte _0809C5C0
+ .4byte _0809C5C4
+ .4byte _0809C5C8
+ .4byte _0809C5CC
+ .4byte _0809C5D0
+_0809C5C0:
+ movs r0, 0xB
+ b _0809C658
+_0809C5C4:
+ movs r0, 0xC
+ b _0809C658
+_0809C5C8:
+ movs r0, 0xD
+ b _0809C658
+_0809C5CC:
+ movs r0, 0xE
+ b _0809C658
+_0809C5D0:
+ movs r0, 0xF
+ b _0809C658
+_0809C5D4:
+ ldr r2, _0809C5E4
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C5E8
+ movs r0, 0x10
+ b _0809C658
+ .align 2, 0
+_0809C5E4: .4byte gMain
+_0809C5E8:
+ ldr r0, _0809C600
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C612
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C604
+ movs r0, 0xA
+ b _0809C658
+ .align 2, 0
+_0809C600: .4byte gSaveBlock2
+_0809C604:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C612
+ movs r0, 0x9
+ b _0809C658
+_0809C612:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C624
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C658
+_0809C624:
+ movs r3, 0
+ mov r9, r3
+ b _0809C656
+_0809C62A:
+ movs r0, 0x1
+ mov r9, r0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x5
+ ble _0809C642
+ lsls r0, r4, 24
+ movs r1, 0xFA
+ lsls r1, 24
+_0809C63C:
+ adds r0, r1
+ lsrs r4, r0, 24
+ b _0809C648
+_0809C642:
+ movs r3, 0x2
+ mov r8, r3
+_0809C646:
+ movs r4, 0
+_0809C648:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C656
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C656:
+ mov r0, r9
+_0809C658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C464
+
+ thumb_func_start sub_809C664
+sub_809C664: @ 809C664
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0809C6D8
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r7, _0809C6DC
+ ldrb r4, [r7]
+ ldr r2, _0809C6E0
+ ldr r5, [r2]
+ ldr r1, _0809C6E4
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C6E8
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r3, 0x5
+ adds r0, r5, r3
+ strb r1, [r0]
+ mov r9, r1
+ mov r8, r1
+ ldr r1, _0809C6EC
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ adds r6, r7, 0
+ mov r12, r2
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _0809C6A8
+ b _0809C81C
+_0809C6A8:
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C6F0
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x6
+ ble _0809C6C2
+ movs r4, 0
+_0809C6C2:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ bne _0809C6D0
+ b _0809C83C
+_0809C6D0:
+ movs r2, 0x1
+ mov r8, r2
+ b _0809C842
+ .align 2, 0
+_0809C6D8: .4byte gUnknown_020384E4
+_0809C6DC: .4byte gUnknown_020384E5
+_0809C6E0: .4byte gUnknown_083B6DB4
+_0809C6E4: .4byte 0x000011df
+_0809C6E8: .4byte 0x000011de
+_0809C6EC: .4byte gMain
+_0809C6F0:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C714
+ ldrb r1, [r6]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ beq _0809C714
+ movs r3, 0x1
+ mov r8, r3
+ ldr r2, _0809C710
+ adds r0, r5, r2
+ strb r1, [r0]
+ movs r4, 0
+ b _0809C83C
+ .align 2, 0
+_0809C710: .4byte 0x000011e2
+_0809C714:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C748
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0
+ bne _0809C73C
+ movs r3, 0x1
+ mov r8, r3
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r2, _0809C738
+ adds r0, r2
+ ldrb r4, [r0]
+ b _0809C83C
+ .align 2, 0
+_0809C738: .4byte 0x000011e2
+_0809C73C:
+ movs r3, 0x6
+ mov r8, r3
+ movs r0, 0
+ mov r10, r0
+ movs r4, 0
+ b _0809C83C
+_0809C748:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7D0
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x6
+ bne _0809C76E
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C768
+ movs r0, 0x4
+ b _0809C84C
+_0809C768:
+ movs r2, 0x1
+ mov r9, r2
+ b _0809C7D0
+_0809C76E:
+ bl sub_809CAB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C7D0
+ ldr r0, _0809C784
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809C788
+ movs r0, 0x8
+ b _0809C84C
+ .align 2, 0
+_0809C784: .4byte gUnknown_020384E9
+_0809C788:
+ movs r0, 0
+ bl sub_809CE4C
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _0809C7D0
+ lsls r0, 2
+ ldr r1, _0809C7A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C7A4: .4byte _0809C7A8
+ .align 2, 0
+_0809C7A8:
+ .4byte _0809C7BC
+ .4byte _0809C7C0
+ .4byte _0809C7C4
+ .4byte _0809C7C8
+ .4byte _0809C7CC
+_0809C7BC:
+ movs r0, 0xB
+ b _0809C84C
+_0809C7C0:
+ movs r0, 0xC
+ b _0809C84C
+_0809C7C4:
+ movs r0, 0xD
+ b _0809C84C
+_0809C7C8:
+ movs r0, 0xE
+ b _0809C84C
+_0809C7CC:
+ movs r0, 0xF
+ b _0809C84C
+_0809C7D0:
+ ldr r2, _0809C7EC
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C7F8
+ ldr r0, _0809C7F0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0809C7F4
+ movs r0, 0x10
+ b _0809C84C
+ .align 2, 0
+_0809C7EC: .4byte gMain
+_0809C7F0: .4byte gUnknown_083B6DB4
+_0809C7F4:
+ movs r3, 0x1
+ mov r9, r3
+_0809C7F8:
+ mov r0, r9
+ cmp r0, 0
+ beq _0809C80A
+ movs r1, 0x6
+ mov r8, r1
+ movs r2, 0
+ mov r10, r2
+ movs r4, 0
+ b _0809C83C
+_0809C80A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C83C
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C84C
+_0809C81C:
+ lsls r0, r4, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r0, r3
+ lsrs r4, r0, 24
+ cmp r0, 0
+ bge _0809C82C
+ movs r4, 0x6
+_0809C82C:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r7, r1]
+ cmp r0, r1
+ beq _0809C83C
+ movs r0, 0x1
+ mov r8, r0
+_0809C83C:
+ mov r1, r8
+ cmp r1, 0
+ beq _0809C84A
+_0809C842:
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_809AF18
+_0809C84A:
+ mov r0, r8
+_0809C84C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C664
+
+ thumb_func_start sub_809C85C
+sub_809C85C: @ 809C85C
+ push {r4-r6,lr}
+ ldr r0, _0809C894
+ ldr r2, [r0]
+ ldr r1, _0809C898
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _0809C89C
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0809C8A0
+ adds r2, r0
+ strb r1, [r2]
+ ldr r1, _0809C8A4
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ cmp r0, 0
+ bne _0809C91A
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0809C8A8
+ movs r4, 0x1
+ movs r0, 0
+ movs r5, 0x2
+ b _0809C922
+ .align 2, 0
+_0809C894: .4byte gUnknown_083B6DB4
+_0809C898: .4byte 0x000011df
+_0809C89C: .4byte 0x000011de
+_0809C8A0: .4byte 0x000011e3
+_0809C8A4: .4byte gMain
+_0809C8A8:
+ ldrh r2, [r1, 0x2C]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8CC
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0809C8DE
+ ldr r0, _0809C8D0
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0809C8E2
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8D4
+_0809C8CC:
+ movs r0, 0xA
+ b _0809C93E
+ .align 2, 0
+_0809C8D0: .4byte gSaveBlock2
+_0809C8D4:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C8E2
+_0809C8DE:
+ movs r0, 0x9
+ b _0809C93E
+_0809C8E2:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C8FA
+ movs r0, 0
+ bl sub_809A860
+ bl sub_809CA8C
+ movs r0, 0x7
+ b _0809C93E
+_0809C8FA:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C906
+ movs r0, 0x10
+ b _0809C93E
+_0809C906:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C916
+ bl sub_809CD88
+ movs r0, 0
+ b _0809C93E
+_0809C916:
+ movs r4, 0
+ b _0809C93C
+_0809C91A:
+ movs r4, 0x1
+ movs r0, 0x3
+ movs r5, 0
+ strb r4, [r2]
+_0809C922:
+ cmp r4, 0
+ beq _0809C93C
+ lsls r6, r0, 24
+ cmp r0, 0x2
+ beq _0809C932
+ movs r0, 0
+ bl sub_809A860
+_0809C932:
+ lsrs r0, r6, 24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl sub_809AF18
+_0809C93C:
+ adds r0, r4, 0
+_0809C93E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C85C
+
+ thumb_func_start sub_809C944
+sub_809C944: @ 809C944
+ push {r4-r7,lr}
+ ldr r0, _0809C988
+ ldrb r0, [r0]
+ mov r12, r0
+ ldr r7, _0809C98C
+ ldrb r3, [r7]
+ ldr r0, _0809C990
+ ldr r1, [r0]
+ ldr r0, _0809C994
+ adds r5, r1, r0
+ movs r0, 0
+ strb r0, [r5]
+ ldr r2, _0809C998
+ adds r4, r1, r2
+ strb r0, [r4]
+ adds r2, 0x5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r6, _0809C99C
+ ldrh r2, [r6, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0809CA14
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9A0
+ movs r6, 0x1
+ movs r0, 0x2
+ mov r12, r0
+ movs r3, 0
+ b _0809CA2A
+ .align 2, 0
+_0809C988: .4byte gUnknown_020384E4
+_0809C98C: .4byte gUnknown_020384E5
+_0809C990: .4byte gUnknown_083B6DB4
+_0809C994: .4byte 0x000011df
+_0809C998: .4byte 0x000011de
+_0809C99C: .4byte gMain
+_0809C9A0:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9C0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r3, r0, 24
+ cmp r0, 0
+ bge _0809CA2C
+ movs r0, 0xFF
+ strb r0, [r5]
+ movs r3, 0x1
+ b _0809CA2C
+_0809C9C0:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _0809C9E0
+ movs r6, 0x1
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ ble _0809CA2C
+ strb r6, [r5]
+ movs r3, 0
+ b _0809CA2C
+_0809C9E0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809C9F4
+ movs r0, 0x4
+ cmp r3, 0
+ bne _0809CA3A
+ movs r0, 0x5
+ b _0809CA3A
+_0809C9F4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA00
+ movs r0, 0x10
+ b _0809CA3A
+_0809CA00:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CA10
+ bl sub_809CD88
+ movs r0, 0
+ b _0809CA3A
+_0809CA10:
+ movs r6, 0
+ b _0809CA38
+_0809CA14:
+ movs r6, 0x1
+ movs r0, 0
+ mov r12, r0
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ movs r3, 0x1D
+ cmp r0, 0
+ bne _0809CA2A
+ movs r3, 0x18
+_0809CA2A:
+ strb r6, [r1]
+_0809CA2C:
+ cmp r6, 0
+ beq _0809CA38
+ mov r0, r12
+ adds r1, r3, 0
+ bl sub_809AF18
+_0809CA38:
+ adds r0, r6, 0
+_0809CA3A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C944
+
+ thumb_func_start sub_809CA40
+sub_809CA40: @ 809CA40
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r0, _0809CA6C
+ ldr r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0809CA84
+ ldr r5, _0809CA70
+_0809CA50:
+ lsls r0, r3, 3
+ adds r2, r0, r4
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bne _0809CA74
+ ldr r0, [r2]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809CA86
+ .align 2, 0
+_0809CA6C: .4byte gUnknown_083BBBD4
+_0809CA70: .4byte gUnknown_020384E4
+_0809CA74:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r3, 3
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809CA50
+_0809CA84:
+ movs r0, 0
+_0809CA86:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CA40
+
+ thumb_func_start sub_809CA8C
+sub_809CA8C: @ 809CA8C
+ push {lr}
+ bl sub_809CDCC
+ movs r0, 0x9
+ bl sub_809CDEC
+ movs r0, 0xA
+ bl sub_809CDEC
+ movs r0, 0xB
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CA8C
+
+ thumb_func_start sub_809CAB0
+sub_809CAB0: @ 809CAB0
+ push {lr}
+ bl sub_809CDCC
+ bl sub_809AB8C
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0809CAD4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ beq _0809CADE
+ cmp r0, 0x1
+ bgt _0809CAD8
+ cmp r0, 0
+ beq _0809CAEA
+ b _0809CB24
+ .align 2, 0
+_0809CAD4: .4byte gUnknown_083B6DB4
+_0809CAD8:
+ cmp r0, 0x2
+ beq _0809CAF6
+ b _0809CB24
+_0809CADE:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x1
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAEA:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB28
+_0809CAF6:
+ ldr r0, _0809CB0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CB18
+ cmp r1, 0
+ beq _0809CB10
+ movs r0, 0x4
+ bl sub_809CDEC
+ b _0809CB28
+ .align 2, 0
+_0809CB0C: .4byte gUnknown_020384E6
+_0809CB10:
+ movs r0, 0x5
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB18:
+ cmp r1, 0
+ beq _0809CB24
+ movs r0, 0x3
+ bl sub_809CDEC
+ b _0809CB28
+_0809CB24:
+ movs r0, 0
+ b _0809CB6E
+_0809CB28:
+ movs r0, 0x6
+ bl sub_809CDEC
+ ldr r0, _0809CB4C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x2
+ bne _0809CB5A
+ ldr r0, _0809CB50
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _0809CB54
+ movs r0, 0x2
+ bl sub_809CDEC
+ b _0809CB5A
+ .align 2, 0
+_0809CB4C: .4byte gUnknown_083B6DB4
+_0809CB50: .4byte gUnknown_020384E4
+_0809CB54:
+ movs r0, 0x1
+ bl sub_809CDEC
+_0809CB5A:
+ movs r0, 0x8
+ bl sub_809CDEC
+ movs r0, 0x7
+ bl sub_809CDEC
+ movs r0, 0
+ bl sub_809CDEC
+ movs r0, 0x1
+_0809CB6E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CAB0
+
+ thumb_func_start sub_809CB74
+sub_809CB74: @ 809CB74
+ ldr r1, _0809CB90
+ ldr r1, [r1]
+ movs r2, 0x8E
+ lsls r2, 5
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x14
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0809CB90: .4byte gUnknown_083B6DB4
+ thumb_func_end sub_809CB74
+
+ thumb_func_start unref_sub_809CB94
+unref_sub_809CB94: @ 809CB94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0809CBBC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CBC8
+ ldr r2, _0809CBC0
+ ldr r0, _0809CBC4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+ b _0809CBF6
+ .align 2, 0
+_0809CBBC: .4byte gUnknown_020384E4
+_0809CBC0: .4byte gPlayerParty
+_0809CBC4: .4byte gUnknown_020384E5
+_0809CBC8:
+ bl get_preferred_box
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0809CBFC
+ ldr r1, _0809CC00
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ adds r1, r0
+ adds r1, r3
+ adds r1, 0x4
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl memcpy
+_0809CBF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CBFC: .4byte gPokemonStorage
+_0809CC00: .4byte gUnknown_020384E5
+ thumb_func_end unref_sub_809CB94
+
+ thumb_func_start sub_809CC04
+sub_809CC04: @ 809CC04
+ push {r4-r7,lr}
+ sub sp, 0x34
+ mov r1, sp
+ ldr r0, _0809CCB0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ add r4, sp, 0x18
+ adds r1, r4, 0
+ ldr r0, _0809CCB4
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ ldr r0, _0809CCB8
+ bl IndexOfSpritePaletteTag
+ ldr r1, _0809CCBC
+ ldr r6, [r1]
+ ldr r4, _0809CCC0
+ adds r7, r6, r4
+ strb r0, [r7]
+ ldr r0, _0809CCC4
+ bl IndexOfSpritePaletteTag
+ ldr r5, _0809CCC8
+ adds r1, r6, r5
+ strb r0, [r1]
+ ldr r0, _0809CCCC
+ ldrb r0, [r0]
+ ldr r1, _0809CCD0
+ ldrb r1, [r1]
+ add r4, sp, 0x30
+ mov r5, sp
+ adds r5, 0x32
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_809AACC
+ ldr r0, _0809CCD4
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CCE4
+ movs r5, 0x8E
+ lsls r5, 5
+ adds r4, r6, r5
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CCD8
+ adds r1, r0
+ str r1, [r4]
+ ldr r0, _0809CCDC
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CCE0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809CCEE
+ ldr r0, [r4]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _0809CCEE
+ .align 2, 0
+_0809CCB0: .4byte gHandCursorSpriteSheets
+_0809CCB4: .4byte gHandCursorSpritePalettes
+_0809CCB8: .4byte 0x0000dac6
+_0809CCBC: .4byte gUnknown_083B6DB4
+_0809CCC0: .4byte 0x000011e4
+_0809CCC4: .4byte 0x0000dad1
+_0809CCC8: .4byte 0x000011e5
+_0809CCCC: .4byte gUnknown_020384E4
+_0809CCD0: .4byte gUnknown_020384E5
+_0809CCD4: .4byte gSpriteTemplate_83BBC70
+_0809CCD8: .4byte gSprites
+_0809CCDC: .4byte gUnknown_020384E9
+_0809CCE0: .4byte gUnknown_020384E6
+_0809CCE4:
+ movs r0, 0x8E
+ lsls r0, 5
+ adds r1, r6, r0
+ movs r0, 0
+ str r0, [r1]
+_0809CCEE:
+ ldr r0, _0809CD00
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0809CD04
+ movs r3, 0xC
+ movs r5, 0x1
+ b _0809CD08
+ .align 2, 0
+_0809CD00: .4byte gUnknown_020384E4
+_0809CD04:
+ movs r3, 0x14
+ movs r5, 0x2
+_0809CD08:
+ ldr r0, _0809CD58
+ movs r1, 0
+ movs r2, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0809CD6C
+ ldr r0, _0809CD5C
+ ldr r0, [r0]
+ ldr r1, _0809CD60
+ adds r4, r0, r1
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0809CD64
+ adds r1, r0
+ str r1, [r4]
+ lsls r3, r5, 2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r0, _0809CD68
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _0809CD78
+ ldr r0, [r4]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0809CD78
+ .align 2, 0
+_0809CD58: .4byte gSpriteTemplate_83BBC88
+_0809CD5C: .4byte gUnknown_083B6DB4
+_0809CD60: .4byte 0x000011c4
+_0809CD64: .4byte gSprites
+_0809CD68: .4byte gUnknown_020384E4
+_0809CD6C:
+ ldr r0, _0809CD80
+ ldr r0, [r0]
+ ldr r2, _0809CD84
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+_0809CD78:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CD80: .4byte gUnknown_083B6DB4
+_0809CD84: .4byte 0x000011c4
+ thumb_func_end sub_809CC04
+
+ thumb_func_start sub_809CD88
+sub_809CD88: @ 809CD88
+ push {lr}
+ ldr r2, _0809CDC0
+ movs r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _0809CD96
+ movs r1, 0x1
+_0809CD96:
+ strb r1, [r2]
+ ldr r0, _0809CDC4
+ ldr r0, [r0]
+ movs r3, 0x8E
+ lsls r3, 5
+ adds r1, r0, r3
+ ldr r3, [r1]
+ ldr r1, _0809CDC8
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CDC0: .4byte gUnknown_020384E9
+_0809CDC4: .4byte gUnknown_083B6DB4
+_0809CDC8: .4byte 0x000011e4
+ thumb_func_end sub_809CD88
+
+ thumb_func_start sub_809CDCC
+sub_809CDCC: @ 809CDCC
+ ldr r0, _0809CDE0
+ ldr r0, [r0]
+ ldr r2, _0809CDE4
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0809CDE8
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0809CDE0: .4byte gUnknown_083B6DB4
+_0809CDE4: .4byte 0x000011b8
+_0809CDE8: .4byte 0x000011b9
+ thumb_func_end sub_809CDCC
+
+ thumb_func_start sub_809CDEC
+sub_809CDEC: @ 809CDEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809CE3C
+ ldr r5, [r0]
+ ldr r0, _0809CE40
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x6
+ bhi _0809CE36
+ adds r1, r0, 0
+ lsls r1, 3
+ movs r2, 0x8C
+ lsls r2, 5
+ adds r1, r2
+ adds r1, r5, r1
+ ldr r2, _0809CE44
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0x7
+ lsrs r1, 3
+ ldr r2, _0809CE48
+ adds r0, r5, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ bls _0809CE30
+ strb r1, [r0]
+_0809CE30:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0809CE36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CE3C: .4byte gUnknown_083B6DB4
+_0809CE40: .4byte 0x000011b8
+_0809CE44: .4byte gUnknown_083BBCA0
+_0809CE48: .4byte 0x000011b9
+ thumb_func_end sub_809CDEC
+
+ thumb_func_start sub_809CE4C
+sub_809CE4C: @ 809CE4C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0809CE70
+ ldr r1, [r0]
+ ldr r3, _0809CE74
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _0809CE7C
+ lsls r0, r2, 3
+ ldr r2, _0809CE78
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ b _0809CE80
+ .align 2, 0
+_0809CE70: .4byte gUnknown_083B6DB4
+_0809CE74: .4byte 0x000011b8
+_0809CE78: .4byte 0x00001184
+_0809CE7C:
+ movs r0, 0x1
+ negs r0, r0
+_0809CE80:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CE4C
+
+ thumb_func_start sub_809CE84
+sub_809CE84: @ 809CE84
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _0809CF20
+ ldr r4, [r0]
+ ldr r0, _0809CF24
+ adds r0, r4
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0xE
+ subs r1, r0
+ ldr r3, _0809CF28
+ adds r6, r4, r3
+ movs r0, 0
+ mov r10, r0
+ strh r1, [r6]
+ ldr r1, _0809CF2C
+ adds r1, r4
+ mov r9, r1
+ ldrb r1, [r1]
+ movs r0, 0x1C
+ subs r0, r1
+ subs r3, 0x2
+ adds r5, r4, r3
+ strh r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuDrawTextWindow
+ ldrb r0, [r5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r8
+ ldrb r2, [r3]
+ movs r3, 0x8C
+ lsls r3, 5
+ adds r4, r3
+ adds r3, r4, 0
+ bl PrintMenuItems
+ ldrb r1, [r5]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r4, r8
+ ldrb r3, [r4]
+ mov r0, r10
+ str r0, [sp]
+ mov r4, r9
+ ldrb r0, [r4]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ 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
+_0809CF20: .4byte gUnknown_083B6DB4
+_0809CF24: .4byte 0x000011b8
+_0809CF28: .4byte 0x000011bc
+_0809CF2C: .4byte 0x000011b9
+ thumb_func_end sub_809CE84
+
+ thumb_func_start sub_809CF30
+sub_809CF30: @ 809CF30
+ push {r4,r5,lr}
+ movs r5, 0x2
+ negs r5, r5
+ ldr r4, _0809CF6C
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809CF86
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF52
+ movs r0, 0x5
+ bl PlaySE
+ adds r5, 0x1
+_0809CF52:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF70
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0809CF8E
+ .align 2, 0
+_0809CF6C: .4byte gMain
+_0809CF70:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809CF8E
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0809CF8E
+_0809CF86:
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0809CF8E:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _0809CFB2
+ bl sub_8072DEC
+ ldr r0, _0809CFD0
+ ldr r1, [r0]
+ ldr r2, _0809CFD4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_0809CFB2:
+ cmp r5, 0
+ blt _0809CFC4
+ ldr r0, _0809CFD0
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ ldr r2, _0809CFD8
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+_0809CFC4:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809CFD0: .4byte gUnknown_083B6DB4
+_0809CFD4: .4byte 0x000011ba
+_0809CFD8: .4byte 0x00001184
+ thumb_func_end sub_809CF30
+
+ thumb_func_start sub_809CFDC
+sub_809CFDC: @ 809CFDC
+ ldr r3, _0809CFEC
+ str r0, [r3]
+ str r1, [r0]
+ movs r1, 0
+ strb r2, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_0809CFEC: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFDC
+
+ thumb_func_start sub_809CFF0
+sub_809CFF0: @ 809CFF0
+ push {r4,r5,lr}
+ ldr r2, _0809D030
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809D02A
+ movs r4, 0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _0809D022
+ adds r5, r2, 0
+_0809D006:
+ ldr r0, [r5]
+ lsls r1, r4, 4
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r1, [r0, 0xC]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcc _0809D006
+_0809D022:
+ ldr r0, _0809D030
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+_0809D02A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D030: .4byte gUnknown_020384EC
+ thumb_func_end sub_809CFF0
+
+ thumb_func_start sub_809D034
+sub_809D034: @ 809D034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r9, r3
+ ldr r0, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _0809D0A4
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ adds r1, r0, 0
+ ldrb r7, [r2, 0x5]
+ cmp r1, r7
+ bcs _0809D0AC
+ adds r0, 0x1
+ strb r0, [r2, 0x4]
+ lsls r0, r1, 4
+ ldr r2, [r2]
+ adds r2, r0
+ lsls r0, r4, 1
+ strh r0, [r2, 0x8]
+ lsls r0, r6, 6
+ add r0, r8
+ mov r4, r10
+ lsls r1, r4, 1
+ adds r0, r1
+ str r0, [r2, 0x4]
+ lsls r0, r3, 6
+ add r0, r9
+ mov r7, r12
+ lsls r1, r7, 1
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r2, 0xA]
+ ldr r0, _0809D0A8
+ str r0, [r2, 0xC]
+ movs r0, 0x1
+ b _0809D0AE
+ .align 2, 0
+_0809D0A4: .4byte gUnknown_020384EC
+_0809D0A8: .4byte sub_809D0BC
+_0809D0AC:
+ movs r0, 0
+_0809D0AE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D034
+
+ thumb_func_start sub_809D0BC
+sub_809D0BC: @ 809D0BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, [r0]
+ ldr r5, [r0, 0x4]
+ ldrh r7, [r0, 0xA]
+ ldrh r2, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _0809D0F2
+ lsrs r2, 1
+ mov r8, r2
+ ldr r0, _0809D100
+ mov r9, r0
+_0809D0DA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r9
+ ands r2, r3
+ bl CpuSet
+ adds r5, 0x40
+ adds r6, 0x40
+ adds r4, 0x1
+ cmp r4, r7
+ bcc _0809D0DA
+_0809D0F2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D100: .4byte 0x001fffff
+ thumb_func_end sub_809D0BC
+
+ thumb_func_start sub_809D104
+sub_809D104: @ 809D104
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ mov r8, r6
+ ldr r6, [sp, 0x24]
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r5, 16
+ lsls r4, 16
+ mov r7, r8
+ lsls r7, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsrs r4, 10
+ adds r3, r4
+ lsrs r5, 15
+ adds r5, r3, r5
+ lsls r3, r2, 6
+ adds r3, r0, r3
+ lsrs r1, 15
+ adds r4, r3, r1
+ adds r2, r6
+ lsls r2, 6
+ adds r6, r0, r2
+ lsrs r2, r7, 15
+ cmp r4, r6
+ bcs _0809D15C
+ lsrs r7, r2, 1
+ ldr r0, _0809D168
+ mov r8, r0
+_0809D148:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r7
+ bl CpuSet
+ adds r4, 0x40
+ adds r5, 0x40
+ cmp r4, r6
+ bcc _0809D148
+_0809D15C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D168: .4byte 0x001fffff
+ thumb_func_end sub_809D104
+
+ thumb_func_start sub_809D16C
+sub_809D16C: @ 809D16C
+ push {r4-r7,lr}
+ mov r12, r0
+ ldr r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0809D1B4
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ adds r2, r0, 0
+ ldrb r7, [r1, 0x5]
+ cmp r2, r7
+ bcs _0809D1BC
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ lsls r0, r2, 4
+ ldr r1, [r1]
+ adds r1, r0
+ lsls r0, r3, 1
+ strh r0, [r1, 0x8]
+ lsls r0, r4, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r12
+ str r0, [r1, 0x4]
+ strh r5, [r1, 0xA]
+ ldr r0, _0809D1B8
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ b _0809D1BE
+ .align 2, 0
+_0809D1B4: .4byte gUnknown_020384EC
+_0809D1B8: .4byte sub_809D1C4
+_0809D1BC:
+ movs r0, 0
+_0809D1BE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D16C
+
+ thumb_func_start sub_809D1C4
+sub_809D1C4: @ 809D1C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r0, 0
+ ldrh r1, [r6, 0xA]
+ cmp r0, r1
+ bcs _0809D252
+ movs r7, 0x80
+ lsls r7, 5
+ mov r5, sp
+ ldr r2, _0809D210
+ mov r8, r2
+ movs r1, 0x81
+ lsls r1, 24
+ mov r10, r1
+_0809D1EA:
+ ldr r2, [r6, 0x4]
+ ldrh r3, [r6, 0x8]
+ mov r12, r2
+ adds r0, 0x1
+ mov r9, r0
+ cmp r3, r7
+ bhi _0809D214
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ mov r0, r8
+ str r2, [r0]
+ mov r1, r12
+ str r1, [r0, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+ mov r1, r8
+ b _0809D23C
+ .align 2, 0
+_0809D210: .4byte 0x040000d4
+_0809D214:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, _0809D264
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0809D268
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r7
+ subs r3, r7
+ cmp r3, r7
+ bhi _0809D214
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+_0809D23C:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ adds r0, 0x40
+ str r0, [r6, 0x4]
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0xA]
+ cmp r0, r2
+ bcc _0809D1EA
+_0809D252:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D264: .4byte 0x040000d4
+_0809D268: .4byte 0x81000800
+ thumb_func_end sub_809D1C4
+
+ thumb_func_start unref_sub_809D26C
+unref_sub_809D26C: @ 809D26C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D2E0
+ str r4, [sp]
+ ldr r5, _0809D2E4
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D2E8
+ str r4, [sp, 0x8]
+ ldr r4, _0809D2EC
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D2F0
+ adds r0, r1
+ ldr r4, _0809D2F4
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl sub_809D710
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D2F8
+ adds r0, r1
+ bl sub_809D638
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D2E0: .4byte gOamData_83BC5E8
+_0809D2E4: .4byte gMonIconTable
+_0809D2E8: .4byte gSpriteAnimTable_83BC62C
+_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
+_0809D2F0: .4byte gMonIconPaletteIndices
+_0809D2F4: .4byte 0x0000dac0
+_0809D2F8: .4byte gSprites
+ thumb_func_end unref_sub_809D26C
+
+ thumb_func_start sub_809D2FC
+sub_809D2FC: @ 809D2FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x48]
+ ldr r1, [sp, 0x4C]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809D38C
+ str r0, [sp, 0x18]
+ adds r0, r4, 0
+ bl sub_809D4F4
+ str r0, [sp, 0x1C]
+ ldr r0, _0809D390
+ str r0, [sp, 0x20]
+ ldr r0, _0809D394
+ str r0, [sp, 0x24]
+ str r5, [sp, 0x28]
+ ldr r0, _0809D398
+ adds r0, r4, r0
+ ldr r1, _0809D39C
+ adds r5, r1, 0
+ ldrb r0, [r0]
+ adds r1, r5, r0
+ add r0, sp, 0x2C
+ strh r1, [r0]
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _0809D35A
+ mov r0, sp
+ strh r5, [r0, 0x14]
+_0809D35A:
+ lsls r1, r7, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r8
+ bl sub_809D710
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D3A0
+ adds r0, r1
+ bl sub_809D638
+ adds r0, r4, 0
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D38C: .4byte gOamData_83BC5E8
+_0809D390: .4byte gSpriteAnimTable_83BC62C
+_0809D394: .4byte gSpriteAffineAnimTable_83BC660
+_0809D398: .4byte gMonIconPaletteIndices
+_0809D39C: .4byte 0x0000dac0
+_0809D3A0: .4byte gSprites
+ thumb_func_end sub_809D2FC
+
+ thumb_func_start sub_809D3A4
+sub_809D3A4: @ 809D3A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D418
+ str r4, [sp]
+ ldr r5, _0809D41C
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D420
+ str r4, [sp, 0x8]
+ ldr r4, _0809D424
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D428
+ adds r0, r1
+ ldr r4, _0809D42C
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl sub_809D710
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D430
+ adds r0, r1
+ bl sub_809D638
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D418: .4byte gOamData_83BC5E8
+_0809D41C: .4byte gMonIconTable
+_0809D420: .4byte gSpriteAnimTable_83BC62C
+_0809D424: .4byte gSpriteAffineAnimTable_83BC660
+_0809D428: .4byte gMonIconPaletteIndices
+_0809D42C: .4byte 0x0000dac0
+_0809D430: .4byte gSprites
+ thumb_func_end sub_809D3A4
+
+ thumb_func_start mon_icon_convert_unown_species_id
+mon_icon_convert_unown_species_id: @ 809D434
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, SPECIES_UNOWN
+ bne _0809D45E
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0809D450
+ movs r0, SPECIES_UNOWN
+ b _0809D45A
+_0809D450:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_0809D45A:
+ adds r1, r0, 0
+ b _0809D46C
+_0809D45E:
+ movs r0, 0xCE
+ lsls r0, 1
+ adds r1, r2, 0
+ cmp r1, r0
+ bls _0809D46C
+ movs r1, 0x82
+ lsls r1, 1
+_0809D46C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end mon_icon_convert_unown_species_id
+
+ thumb_func_start sub_809D474
+sub_809D474: @ 809D474
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D474
+
+ thumb_func_start sub_809D4A8
+sub_809D4A8: @ 809D4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, SPECIES_UNOWN
+ bne _0809D4DE
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809D4CE
+ mov r1, sp
+ adds r0, SPECIES_UNOWN
+ b _0809D4D6
+_0809D4CE:
+ mov r1, sp
+ movs r2, 0xCE
+ lsls r2, 1
+ adds r0, r2
+_0809D4D6:
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ b _0809D4EA
+_0809D4DE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+_0809D4EA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D4A8
+
+ thumb_func_start sub_809D4F4
+sub_809D4F4: @ 809D4F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ ldr r1, _0809D50C
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D50C: .4byte gMonIconTable
+ thumb_func_end sub_809D4F4
+
+ thumb_func_start sub_809D510
+sub_809D510: @ 809D510
+ push {lr}
+ bl sub_809D7E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D510
+
+ thumb_func_start sub_809D51C
+sub_809D51C: @ 809D51C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D53C
+_0809D522:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadSpritePalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D522
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D53C: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D51C
+
+ thumb_func_start unref_sub_809D540
+unref_sub_809D540: @ 809D540
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D552
+ movs r1, 0x82
+ lsls r1, 1
+_0809D552:
+ ldr r0, _0809D578
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D57C
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D572
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D578: .4byte gMonIconPaletteIndices
+_0809D57C: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D540
+
+ thumb_func_start sub_809D580
+sub_809D580: @ 809D580
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D5AC
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D5B0
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D5A6
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5AC: .4byte gMonIconPaletteIndices
+_0809D5B0: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D580
+
+ thumb_func_start unref_sub_809D5B4
+unref_sub_809D5B4: @ 809D5B4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D5D4
+_0809D5BA:
+ lsls r0, r4, 3
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D5BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5D4: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5B4
+
+ thumb_func_start unref_sub_809D5D8
+unref_sub_809D5D8: @ 809D5D8
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D5EA
+ movs r1, 0x82
+ lsls r1, 1
+_0809D5EA:
+ ldr r0, _0809D600
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D604
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D600: .4byte gMonIconPaletteIndices
+_0809D604: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5D8
+
+ thumb_func_start sub_809D608
+sub_809D608: @ 809D608
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D624
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D628
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D624: .4byte gMonIconPaletteIndices
+_0809D628: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D608
+
+ thumb_func_start sub_809D62C
+sub_809D62C: @ 809D62C
+ push {lr}
+ bl sub_809D638
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D62C
+
+ thumb_func_start sub_809D638
+sub_809D638: @ 809D638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r7, 0
+ adds r6, r4, 0
+ adds r6, 0x2C
+ ldrb r2, [r6]
+ movs r0, 0x3F
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ bne _0809D6EC
+ movs r1, 0x2A
+ adds r1, r4
+ mov r8, r1
+ ldrb r1, [r1]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ adds r5, r4, 0
+ adds r5, 0x2B
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D682
+ adds r0, 0x1
+ cmp r3, r0
+ bne _0809D686
+ b _0809D700
+_0809D682:
+ strb r7, [r5]
+ b _0809D700
+_0809D686:
+ ldr r2, _0809D6E4
+ ldrb r1, [r4, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r4, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ adds r1, r2, 0
+ muls r1, r3
+ ldr r0, [r4, 0xC]
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r3, _0809D6E8
+ adds r1, r3
+ bl RequestSpriteCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 10
+ lsrs r0, 26
+ mov r1, r9
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldrb r7, [r5]
+ b _0809D700
+ .align 2, 0
+_0809D6E4: .4byte gSpriteImageSizes
+_0809D6E8: .4byte 0x06010000
+_0809D6EC:
+ lsls r0, r2, 26
+ lsrs r0, 26
+ subs r0, 0x1
+ movs r1, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6]
+_0809D700:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D638
+
+ thumb_func_start sub_809D710
+sub_809D710: @ 809D710
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x38
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp, 0x30]
+ ldr r2, _0809D7D8
+ mov r0, r9
+ ldr r6, [r0]
+ ldrb r1, [r6, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r6, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ ldr r1, _0809D7DC
+ add r3, sp, 0x30
+ ldr r0, [r3, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r3, 0x4]
+ add r1, sp, 0x18
+ ldr r0, _0809D7E0
+ strh r0, [r1]
+ mov r0, r9
+ ldrh r2, [r0, 0x14]
+ mov r0, sp
+ adds r0, 0x1A
+ strh r2, [r0]
+ str r6, [sp, 0x1C]
+ mov r2, r9
+ ldr r0, [r2, 0x8]
+ str r0, [sp, 0x20]
+ str r3, [sp, 0x24]
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x28]
+ ldr r0, [r2, 0x10]
+ str r0, [sp, 0x2C]
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _0809D7E4
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r4, r3, r6
+ adds r5, r4, 0
+ adds r5, 0x2C
+ ldrb r1, [r5]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r5]
+ adds r4, 0x3F
+ ldrb r2, [r4]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r4]
+ adds r6, 0xC
+ adds r3, r6
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ str r1, [r3]
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D7D8: .4byte gSpriteImageSizes
+_0809D7DC: .4byte 0xffff0000
+_0809D7E0: .4byte 0x0000ffff
+_0809D7E4: .4byte gSprites
+ thumb_func_end sub_809D710
+
+ thumb_func_start sub_809D7E8
+sub_809D7E8: @ 809D7E8
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0
+ str r1, [sp]
+ ldr r3, _0809D81C
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r2, 1
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 6
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r3
+ ldrh r3, [r2]
+ ldr r2, _0809D820
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r3
+ str r1, [sp, 0x4]
+ mov r1, sp
+ str r1, [r0, 0xC]
+ bl DestroySprite
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D81C: .4byte gSpriteImageSizes
+_0809D820: .4byte 0xffff0000
+ thumb_func_end sub_809D7E8
+
+ thumb_func_start sub_809D824
+sub_809D824: @ 809D824
+ mov r12, r0
+ adds r0, 0x2A
+ movs r3, 0
+ strb r1, [r0]
+ mov r2, r12
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, r12
+ adds r0, 0x2B
+ strb r3, [r0]
+ bx lr
+ thumb_func_end sub_809D824
+
+ thumb_func_start sub_809D844
+sub_809D844: @ 809D844
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D844
+
+ thumb_func_start sub_809D85C
+sub_809D85C: @ 809D85C
+ push {lr}
+ ldr r1, _0809D8A0
+ ldr r0, _0809D8A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8A8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8AC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D8A0: .4byte REG_BG1HOFS
+_0809D8A4: .4byte gUnknown_030042C0
+_0809D8A8: .4byte gUnknown_030041B4
+_0809D8AC: .4byte gUnknown_03004288
+_0809D8B0: .4byte gUnknown_03004280
+_0809D8B4: .4byte gUnknown_030041B0
+_0809D8B8: .4byte gUnknown_030041B8
+ thumb_func_end sub_809D85C
+
+ thumb_func_start sub_809D8BC
+sub_809D8BC: @ 809D8BC
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r6, _0809D904
+ ldrb r4, [r6, 0x8]
+ movs r5, 0x80
+ orrs r4, r5
+ strb r4, [r6, 0x8]
+ ldr r5, _0809D908
+ str r0, [r5]
+ movs r4, 0
+ strb r7, [r5, 0x8]
+ strb r1, [r5, 0x9]
+ strb r2, [r5, 0xA]
+ str r3, [r5, 0x4]
+ adds r0, r5, 0
+ adds r0, 0x74
+ strb r4, [r0]
+ adds r1, r5, 0
+ adds r1, 0x79
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x7C
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ subs r0, 0x5
+ strb r1, [r0]
+ cmp r7, 0x4
+ bls _0809D90C
+ movs r0, 0x1
+ strb r0, [r5, 0xE]
+ b _0809D90E
+ .align 2, 0
+_0809D904: .4byte gPaletteFade
+_0809D908: .4byte 0x02018000
+_0809D90C:
+ strb r1, [r5, 0xE]
+_0809D90E:
+ cmp r7, 0x6
+ bhi _0809D9D6
+ lsls r0, r7, 2
+ ldr r1, _0809D91C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D91C: .4byte _0809D920
+ .align 2, 0
+_0809D920:
+ .4byte _0809D93C
+ .4byte _0809D9BC
+ .4byte _0809D992
+ .4byte _0809D9D6
+ .4byte _0809D966
+ .4byte _0809D93C
+ .4byte _0809D9BC
+_0809D93C:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x7
+ strb r0, [r1]
+ b _0809D9D6
+_0809D966:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r2, 0x9
+ movs r0, 0x7
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x7B
+ b _0809D9D4
+_0809D992:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x76
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r2, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ subs r0, 0x6
+ strb r3, [r0]
+ b _0809D9D6
+_0809D9BC:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x77
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+_0809D9D4:
+ strb r1, [r0]
+_0809D9D6:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ strb r0, [r5, 0xB]
+ ldr r0, _0809D9EC
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D9EC: .4byte sub_809DE44
+ thumb_func_end sub_809D8BC
+
+ thumb_func_start sub_809D9F0
+sub_809D9F0: @ 809D9F0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r4, 0x2
+ str r4, [sp]
+ bl sub_809D8BC
+ ldr r0, _0809DA18
+ adds r0, 0x7C
+ strh r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA18: .4byte 0x02018000
+ thumb_func_end sub_809D9F0
+
+ thumb_func_start sub_809DA1C
+sub_809DA1C: @ 809DA1C
+ push {lr}
+ ldr r0, _0809DA30
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x6
+ bhi _0809DA78
+ lsls r0, 2
+ ldr r1, _0809DA34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DA30: .4byte 0x02018000
+_0809DA34: .4byte _0809DA38
+ .align 2, 0
+_0809DA38:
+ .4byte _0809DA54
+ .4byte _0809DA6C
+ .4byte _0809DA64
+ .4byte _0809DA64
+ .4byte _0809DA5C
+ .4byte _0809DA54
+ .4byte _0809DA6C
+_0809DA54:
+ ldr r0, _0809DA58
+ b _0809DA6E
+ .align 2, 0
+_0809DA58: .4byte sub_809E19C
+_0809DA5C:
+ ldr r0, _0809DA60
+ b _0809DA6E
+ .align 2, 0
+_0809DA60: .4byte sub_809E19C
+_0809DA64:
+ ldr r0, _0809DA68
+ b _0809DA6E
+ .align 2, 0
+_0809DA68: .4byte sub_809EB40
+_0809DA6C:
+ ldr r0, _0809DA7C
+_0809DA6E:
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _0809DA80
+ strb r0, [r1, 0xF]
+_0809DA78:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA7C: .4byte sub_809E3FC
+_0809DA80: .4byte 0x02018000
+ thumb_func_end sub_809DA1C
+
+ thumb_func_start sub_809DA84
+sub_809DA84: @ 809DA84
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _0809DAA4
+ ldr r2, _0809DAA8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x16
+ bls _0809DA98
+ b _0809DE00
+_0809DA98:
+ lsls r0, 2
+ ldr r1, _0809DAAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAA4: .4byte gMain
+_0809DAA8: .4byte 0x0000043c
+_0809DAAC: .4byte _0809DAB0
+ .align 2, 0
+_0809DAB0:
+ .4byte _0809DB0C
+ .4byte _0809DB18
+ .4byte _0809DB2C
+ .4byte _0809DB32
+ .4byte _0809DB80
+ .4byte _0809DB94
+ .4byte _0809DBA0
+ .4byte _0809DBBC
+ .4byte _0809DBC8
+ .4byte _0809DBDC
+ .4byte _0809DC2C
+ .4byte _0809DC48
+ .4byte _0809DC5C
+ .4byte _0809DC90
+ .4byte _0809DCB0
+ .4byte _0809DCC4
+ .4byte _0809DCF8
+ .4byte _0809DD02
+ .4byte _0809DD30
+ .4byte _0809DD3C
+ .4byte _0809DD68
+ .4byte _0809DD98
+ .4byte _0809DDE0
+_0809DB0C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ b _0809DDE8
+_0809DB18:
+ bl remove_some_task
+ ldr r1, _0809DB24
+ ldr r2, _0809DB28
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB24: .4byte gMain
+_0809DB28: .4byte 0x0000043c
+_0809DB2C:
+ bl FreeAllSpritePalettes
+ b _0809DDE8
+_0809DB32:
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _0809DB74
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _0809DB78
+ movs r7, 0x85
+ lsls r7, 24
+_0809DB48:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0809DB48
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0809DB7C
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DB74: .4byte 0x040000d4
+_0809DB78: .4byte 0x85000400
+_0809DB7C: .4byte 0x0000043c
+_0809DB80:
+ bl sub_809DE64
+ ldr r1, _0809DB8C
+ ldr r2, _0809DB90
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB8C: .4byte gMain
+_0809DB90: .4byte 0x0000043c
+_0809DB94:
+ ldr r0, _0809DB9C
+ bl SetUpWindowConfig
+ b _0809DDE8
+ .align 2, 0
+_0809DB9C: .4byte gWindowConfig_81E6E6C
+_0809DBA0:
+ ldr r0, _0809DBB0
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _0809DBB4
+ ldr r2, _0809DBB8
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBB0: .4byte gWindowConfig_81E6E6C
+_0809DBB4: .4byte gMain
+_0809DBB8: .4byte 0x0000043c
+_0809DBBC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0809DBC6
+ b _0809DE38
+_0809DBC6:
+ b _0809DDE8
+_0809DBC8:
+ bl sub_809DA1C
+ ldr r1, _0809DBD4
+ ldr r2, _0809DBD8
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBD4: .4byte gMain
+_0809DBD8: .4byte 0x0000043c
+_0809DBDC:
+ ldr r1, _0809DC08
+ ldr r2, _0809DC0C
+ ldr r0, _0809DC10
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC14
+ str r1, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ ldr r1, _0809DC18
+ ldr r2, _0809DC1C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC20
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0809DC24
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0809DC28
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DC08: .4byte gSummaryScreenTextTiles
+_0809DC0C: .4byte 0x0600d000
+_0809DC10: .4byte 0x040000d4
+_0809DC14: .4byte 0x800000a0
+_0809DC18: .4byte gSummaryScreenButtonTiles
+_0809DC1C: .4byte 0x0600d140
+_0809DC20: .4byte 0x80000080
+_0809DC24: .4byte 0x02018000
+_0809DC28: .4byte 0x0000043c
+_0809DC2C:
+ bl sub_809DF00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC38
+ b _0809DE38
+_0809DC38:
+ ldr r0, _0809DC44
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DC44: .4byte 0x02018000
+_0809DC48:
+ bl sub_80A18C4
+ ldr r1, _0809DC54
+ ldr r2, _0809DC58
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DC54: .4byte gMain
+_0809DC58: .4byte 0x0000043c
+_0809DC5C:
+ ldr r4, _0809DC78
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC7C
+ movs r0, 0
+ bl sub_80A12D0
+ b _0809DC82
+ .align 2, 0
+_0809DC78: .4byte 0x02018010
+_0809DC7C:
+ movs r0, 0xA
+ bl sub_80A12D0
+_0809DC82:
+ ldr r0, _0809DC8C
+ bl sub_80A0EA4
+ b _0809DDE8
+ .align 2, 0
+_0809DC8C: .4byte 0x02018010
+_0809DC90:
+ bl sub_80A1950
+ ldr r0, _0809DCA4
+ bl sub_80A1D84
+ ldr r1, _0809DCA8
+ ldr r2, _0809DCAC
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCA4: .4byte 0x02018010
+_0809DCA8: .4byte gMain
+_0809DCAC: .4byte 0x0000043c
+_0809DCB0:
+ ldr r4, _0809DCC0
+ adds r0, r4, 0
+ bl sub_80A1DE8
+ adds r4, 0x64
+ movs r0, 0
+ strb r0, [r4]
+ b _0809DDE8
+ .align 2, 0
+_0809DCC0: .4byte 0x02018010
+_0809DCC4:
+ ldr r4, _0809DCEC
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ subs r4, 0x10
+ strb r0, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809DCE0
+ b _0809DE38
+_0809DCE0:
+ movs r0, 0
+ strb r0, [r5]
+ ldr r1, _0809DCF0
+ ldr r2, _0809DCF4
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCEC: .4byte 0x02018010
+_0809DCF0: .4byte gMain
+_0809DCF4: .4byte 0x0000043c
+_0809DCF8:
+ bl sub_809E044
+ bl sub_80A0EE8
+ b _0809DDE8
+_0809DD02:
+ ldr r1, _0809DD20
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bhi _0809DD18
+ ldr r0, _0809DD24
+ ldrb r1, [r1, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0809DD18:
+ ldr r1, _0809DD28
+ ldr r2, _0809DD2C
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD20: .4byte 0x02018000
+_0809DD24: .4byte gUnknown_083C1580
+_0809DD28: .4byte gMain
+_0809DD2C: .4byte 0x0000043c
+_0809DD30:
+ ldr r0, _0809DD38
+ bl sub_809FAC8
+ b _0809DDE8
+ .align 2, 0
+_0809DD38: .4byte 0x02018010
+_0809DD3C:
+ ldr r2, _0809DD58
+ ldr r0, _0809DD5C
+ ldrb r1, [r0, 0xB]
+ lsls r1, 2
+ adds r1, r2
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _0809DD60
+ ldr r2, _0809DD64
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD58: .4byte gUnknown_083C1598
+_0809DD5C: .4byte 0x02018000
+_0809DD60: .4byte gMain
+_0809DD64: .4byte 0x0000043c
+_0809DD68:
+ ldr r0, _0809DD84
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809DD8C
+ ldr r1, _0809DD88
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809DDE8
+ .align 2, 0
+_0809DD84: .4byte 0x02018010
+_0809DD88: .4byte gUnknown_030041B0
+_0809DD8C:
+ ldr r0, _0809DD94
+ strh r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DD94: .4byte gUnknown_030041B0
+_0809DD98:
+ bl sub_809EBC4
+ ldr r0, _0809DDB8
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809DDBC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1654
+ b _0809DDCC
+ .align 2, 0
+_0809DDB8: .4byte 0x02018000
+_0809DDBC:
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1654
+_0809DDCC:
+ bl sub_80A0DD0
+ ldr r1, _0809DDD8
+ ldr r2, _0809DDDC
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DDD8: .4byte gMain
+_0809DDDC: .4byte 0x0000043c
+_0809DDE0:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809DE38
+_0809DDE8:
+ ldr r1, _0809DDF8
+ ldr r0, _0809DDFC
+ adds r1, r0
+_0809DDEE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809DE38
+ .align 2, 0
+_0809DDF8: .4byte gMain
+_0809DDFC: .4byte 0x0000043c
+_0809DE00:
+ ldr r0, _0809DE2C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _0809DE30
+ bl SetMainCallback2
+ ldr r2, _0809DE34
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ b _0809DE3A
+ .align 2, 0
+_0809DE2C: .4byte sub_809D85C
+_0809DE30: .4byte sub_809D844
+_0809DE34: .4byte gPaletteFade
+_0809DE38:
+ movs r0, 0
+_0809DE3A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809DA84
+
+ thumb_func_start sub_809DE44
+sub_809DE44: @ 809DE44
+ push {lr}
+_0809DE46:
+ bl sub_809DA84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809DE5E
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809DE46
+_0809DE5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809DE44
+
+ thumb_func_start sub_809DE64
+sub_809DE64: @ 809DE64
+ ldr r1, _0809DED0
+ ldr r2, _0809DED4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DED8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEDC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEE0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE8
+ strh r0, [r1]
+ ldr r1, _0809DEEC
+ strh r0, [r1]
+ ldr r1, _0809DEF0
+ strh r0, [r1]
+ ldr r1, _0809DEF4
+ strh r0, [r1]
+ ldr r1, _0809DEF8
+ strh r0, [r1]
+ ldr r1, _0809DEFC
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x32
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0809DED0: .4byte REG_BG0CNT
+_0809DED4: .4byte 0x00001e08
+_0809DED8: .4byte 0x00004801
+_0809DEDC: .4byte 0x00004a02
+_0809DEE0: .4byte 0x00005c03
+_0809DEE4: .4byte gUnknown_030042C0
+_0809DEE8: .4byte gUnknown_030041B4
+_0809DEEC: .4byte gUnknown_03004288
+_0809DEF0: .4byte gUnknown_03004280
+_0809DEF4: .4byte gUnknown_030041B0
+_0809DEF8: .4byte gUnknown_030041B8
+_0809DEFC: .4byte REG_BG0HOFS
+ thumb_func_end sub_809DE64
+
+ thumb_func_start sub_809DF00
+sub_809DF00: @ 809DF00
+ push {lr}
+ ldr r0, _0809DF18
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0809DF0E
+ b _0809E030
+_0809DF0E:
+ lsls r0, 2
+ ldr r1, _0809DF1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DF18: .4byte 0x02018000
+_0809DF1C: .4byte _0809DF20
+ .align 2, 0
+_0809DF20:
+ .4byte _0809DF54
+ .4byte _0809DF64
+ .4byte _0809DF74
+ .4byte _0809DF88
+ .4byte _0809DF9C
+ .4byte _0809DFAC
+ .4byte _0809DFC4
+ .4byte _0809DFD4
+ .4byte _0809DFE0
+ .4byte _0809DFEC
+ .4byte _0809DFF8
+ .4byte _0809E004
+ .4byte _0809E010
+_0809DF54:
+ ldr r0, _0809DF60
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF60: .4byte gStatusScreen_Gfx
+_0809DF64:
+ ldr r0, _0809DF6C
+ ldr r1, _0809DF70
+ b _0809DFB0
+ .align 2, 0
+_0809DF6C: .4byte gUnknown_08E73508
+_0809DF70: .4byte 0x0600e000
+_0809DF74:
+ ldr r0, _0809DF80
+ ldr r1, _0809DF84
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF80: .4byte gUnknown_08E74E88
+_0809DF84: .4byte 0x0600e800
+_0809DF88:
+ ldr r0, _0809DF94
+ ldr r1, _0809DF98
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF94: .4byte gStatusScreen_Tilemap
+_0809DF98: .4byte 0x06004800
+_0809DF9C:
+ ldr r0, _0809DFA4
+ ldr r1, _0809DFA8
+ b _0809DFB0
+ .align 2, 0
+_0809DFA4: .4byte gUnknown_08E73E88
+_0809DFA8: .4byte 0x06005800
+_0809DFAC:
+ ldr r0, _0809DFBC
+ ldr r1, _0809DFC0
+_0809DFB0:
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _0809E030
+ .align 2, 0
+_0809DFBC: .4byte gUnknown_08E74688
+_0809DFC0: .4byte 0x06006800
+_0809DFC4:
+ ldr r0, _0809DFD0
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadCompressedPalette
+ b _0809E030
+ .align 2, 0
+_0809DFD0: .4byte gStatusScreen_Pal
+_0809DFD4:
+ ldr r0, _0809DFDC
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFDC: .4byte gUnknown_083C11B8
+_0809DFE0:
+ ldr r0, _0809DFE8
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFE8: .4byte gUnknown_083C1270
+_0809DFEC:
+ ldr r0, _0809DFF4
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFF4: .4byte gUnknown_083C12F4
+_0809DFF8:
+ ldr r0, _0809E000
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E000: .4byte gUnknown_083C12FC
+_0809E004:
+ ldr r0, _0809E00C
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E00C: .4byte gUnknown_083C1278
+_0809E010:
+ ldr r0, _0809E028
+ movs r1, 0xE8
+ lsls r1, 1
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _0809E02C
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0809E03C
+ .align 2, 0
+_0809E028: .4byte gMoveTypes_Pal
+_0809E02C: .4byte 0x02018000
+_0809E030:
+ ldr r1, _0809E040
+ adds r1, 0x74
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_0809E03C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E040: .4byte 0x02018000
+ thumb_func_end sub_809DF00
+
+ thumb_func_start sub_809E044
+sub_809E044: @ 809E044
+ push {r4,r5,lr}
+ ldr r4, _0809E0F4
+ adds r0, r4, 0
+ movs r1, 0x81
+ movs r2, 0x2
+ bl LoadPalette
+ adds r5, r4, 0x2
+ adds r0, r5, 0
+ movs r1, 0x88
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0x8F
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x89
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x12
+ adds r0, r5, 0
+ movs r1, 0xD1
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x8
+ movs r1, 0xD3
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD5
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xD7
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x14
+ movs r1, 0xD9
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0xC
+ movs r1, 0xDB
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x18
+ movs r1, 0xDD
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x6
+ adds r0, r5, 0
+ movs r1, 0xDE
+ movs r2, 0x2
+ bl LoadPalette
+ subs r4, 0x1A
+ adds r0, r4, 0
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0809E0F8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xF9
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
+_0809E0F8: .4byte gFontDefaultPalette
+ thumb_func_end sub_809E044
+
+ thumb_func_start sub_809E0FC
+sub_809E0FC: @ 809E0FC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0809E134
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E138
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E134: .4byte gTasks
+_0809E138: .4byte sub_809E13C
+ thumb_func_end sub_809E0FC
+
+ thumb_func_start sub_809E13C
+sub_809E13C: @ 809E13C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809E182
+ ldr r0, _0809E188
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E182
+ ldr r1, _0809E18C
+ ldr r4, _0809E190
+ ldrb r0, [r4, 0x9]
+ strb r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl StopCryAndClearCrySongs
+ ldr r0, _0809E194
+ ldr r1, _0809E198
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0809E182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E188: .4byte gPaletteFade
+_0809E18C: .4byte gUnknown_020384F0
+_0809E190: .4byte 0x02018000
+_0809E194: .4byte gMPlay_BGM
+_0809E198: .4byte 0x0000ffff
+ thumb_func_end sub_809E13C
+
+ thumb_func_start sub_809E19C
+sub_809E19C: @ 809E19C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E1C8
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E25A
+ ldr r5, _0809E1CC
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1D0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_809F1B8
+ b _0809E25A
+ .align 2, 0
+_0809E1C8: .4byte gPaletteFade
+_0809E1CC: .4byte gMain
+_0809E1D0:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1E2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809F1B8
+ b _0809E25A
+_0809E1E2:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E1F6
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E202
+_0809E1F6:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_809F134
+ b _0809E25A
+_0809E202:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E218
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E222
+_0809E218:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809F134
+ b _0809E25A
+_0809E222:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E24C
+ ldr r5, _0809E248
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0x1
+ bls _0809E23A
+ adds r0, r4, 0
+ bl sub_809EA50
+_0809E23A:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809E25A
+ adds r0, r4, 0
+ bl sub_809E0FC
+ b _0809E25A
+ .align 2, 0
+_0809E248: .4byte 0x02018000
+_0809E24C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E25A
+ adds r0, r4, 0
+ bl sub_809E0FC
+_0809E25A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E19C
+
+ thumb_func_start sub_809E260
+sub_809E260: @ 809E260
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E29C
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E276
+ b _0809E3EE
+_0809E276:
+ ldr r5, _0809E2A0
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2AC
+ ldr r1, _0809E2A4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E2A8
+ adds r0, r4, 0
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E29C: .4byte gPaletteFade
+_0809E2A0: .4byte gMain
+_0809E2A4: .4byte gTasks
+_0809E2A8: .4byte 0x02018079
+_0809E2AC:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2D8
+ ldr r1, _0809E2D0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E2D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E2D0: .4byte gTasks
+_0809E2D4: .4byte 0x02018079
+_0809E2D8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E2EC
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E324
+_0809E2EC:
+ ldr r1, _0809E320
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x3
+ bne _0809E314
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E308
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E314
+_0809E308:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E314:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_809F134
+ b _0809E3EE
+ .align 2, 0
+_0809E320: .4byte 0x02018000
+_0809E324:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E33A
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E37C
+_0809E33A:
+ ldr r1, _0809E378
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E3EE
+ cmp r0, 0x2
+ bne _0809E36C
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E360
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E36C
+_0809E360:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E36C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809F134
+ b _0809E3EE
+ .align 2, 0
+_0809E378: .4byte 0x02018000
+_0809E37C:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3D4
+ adds r0, r4, 0
+ bl sub_809F7D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809E3A0
+ ldr r0, _0809E3BC
+ adds r5, r0, 0
+ adds r5, 0x79
+ ldrb r0, [r5]
+ cmp r0, 0x4
+ bne _0809E3C4
+_0809E3A0:
+ ldr r0, _0809E3BC
+ adds r1, r0, 0
+ adds r1, 0x79
+ ldrb r1, [r1]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r1, _0809E3C0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_809E0FC
+ b _0809E3EE
+ .align 2, 0
+_0809E3BC: .4byte 0x02018000
+_0809E3C0: .4byte gUnknown_0202E8CE
+_0809E3C4:
+ movs r0, 0x20
+ bl PlaySE
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809F9D0
+ b _0809E3EE
+_0809E3D4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3EE
+ ldr r0, _0809E3F4
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r0, _0809E3F8
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_809E0FC
+_0809E3EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E3F4: .4byte 0x02018000
+_0809E3F8: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_809E260
+
+ thumb_func_start sub_809E3FC
+sub_809E3FC: @ 809E3FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _0809E438
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E502
+ ldr r0, _0809E43C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E448
+ ldr r1, _0809E440
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E444
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E438: .4byte gPaletteFade
+_0809E43C: .4byte gMain
+_0809E440: .4byte gTasks
+_0809E444: .4byte 0x02018079
+_0809E448:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E474
+ ldr r1, _0809E46C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E470
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E46C: .4byte gTasks
+_0809E470: .4byte 0x02018079
+_0809E474:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E4EE
+ ldr r4, _0809E4A8
+ adds r6, r4, 0
+ adds r6, 0x79
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ beq _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809E508
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E4AC
+ movs r0, 0x20
+ bl PlaySE
+ b _0809E502
+ .align 2, 0
+_0809E4A8: .4byte 0x02018000
+_0809E4AC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7A
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_80A1B40
+ movs r0, 0x13
+ bl sub_80A1A30
+ ldr r1, _0809E4D8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E4DC
+ str r1, [r0]
+ b _0809E502
+ .align 2, 0
+_0809E4D8: .4byte gTasks
+_0809E4DC: .4byte sub_809E534
+_0809E4E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+ b _0809E502
+_0809E4EE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E502
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+_0809E502:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E3FC
+
+ thumb_func_start sub_809E508
+sub_809E508: @ 809E508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0x1
+_0809E50E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809F760
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809E520
+ movs r0, 0x1
+ b _0809E52C
+_0809E520:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0809E50E
+ movs r0, 0
+_0809E52C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E508
+
+ thumb_func_start sub_809E534
+sub_809E534: @ 809E534
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r3, 0
+ ldr r0, _0809E564
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E570
+ ldr r1, _0809E568
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ subs r1, 0x4
+ ldr r2, _0809E56C
+ adds r0, r3, 0
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E564: .4byte gMain
+_0809E568: .4byte gTasks
+_0809E56C: .4byte 0x0201807a
+_0809E570:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E59C
+ ldr r1, _0809E594
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E598
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E594: .4byte gTasks
+_0809E598: .4byte 0x0201807a
+_0809E59C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5AE
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E83C
+ b _0809E5C0
+_0809E5AE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5C0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r2, 0
+ bl sub_809E83C
+_0809E5C0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E534
+
+ thumb_func_start sub_809E5C4
+sub_809E5C4: @ 809E5C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r1, _0809E6D0
+ ldr r5, [r1]
+ ldrb r2, [r1, 0x9]
+ movs r0, 0x64
+ muls r0, r2
+ adds r5, r0
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r1, 0x7A
+ ldrb r6, [r1]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E6D4
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E6D0: .4byte 0x02018000
+_0809E6D4: .4byte gUnknown_08208238
+ thumb_func_end sub_809E5C4
+
+ thumb_func_start sub_809E6D8
+sub_809E6D8: @ 809E6D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r2, _0809E7E8
+ ldr r5, [r2]
+ ldrb r1, [r2, 0x9]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r5, r0
+ adds r0, r2, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, 0x7A
+ ldrb r6, [r2]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetBoxMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetBoxMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetBoxMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetBoxMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetBoxMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E7EC
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetBoxMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E7E8: .4byte 0x02018000
+_0809E7EC: .4byte gUnknown_08208238
+ thumb_func_end sub_809E6D8
+
+ thumb_func_start sub_809E7F0
+sub_809E7F0: @ 809E7F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E828
+ ldr r1, _0809E830
+ adds r2, r1, 0
+ adds r2, 0x74
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x79
+ bl sub_80A0428
+ ldr r1, _0809E834
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E838
+ str r1, [r0]
+ adds r0, r4, 0
+ bl BgFrame_FillTileMap
+_0809E828:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E830: .4byte 0x02018000
+_0809E834: .4byte gTasks
+_0809E838: .4byte sub_809E3FC
+ thumb_func_end sub_809E7F0
+
+ thumb_func_start sub_809E83C
+sub_809E83C: @ 809E83C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ bl sub_80A1B1C
+ movs r0, 0
+ bl sub_80A1B40
+ cmp r4, 0x1
+ bne _0809E8C0
+ ldr r1, _0809E87C
+ adds r0, r1, 0
+ adds r0, 0x79
+ adds r2, r1, 0
+ adds r2, 0x7A
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E8CA
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809E880
+ bl sub_809E5C4
+ b _0809E884
+ .align 2, 0
+_0809E87C: .4byte 0x02018000
+_0809E880:
+ bl sub_809E6D8
+_0809E884:
+ ldr r4, _0809E8B4
+ adds r0, r4, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x79
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809F678
+ adds r1, r4, 0
+ adds r1, 0x74
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0809E8B8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E8BC
+ str r1, [r0]
+ b _0809E8DE
+ .align 2, 0
+_0809E8B4: .4byte 0x02018000
+_0809E8B8: .4byte gTasks
+_0809E8BC: .4byte sub_809E7F0
+_0809E8C0:
+ ldr r0, _0809E8E4
+ adds r1, r0, 0
+ adds r1, 0x69
+ bl sub_80A0428
+_0809E8CA:
+ ldr r0, _0809E8E8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809E8EC
+ str r0, [r1]
+ adds r0, r5, 0
+ bl BgFrame_FillTileMap
+_0809E8DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E8E4: .4byte 0x02018010
+_0809E8E8: .4byte gTasks
+_0809E8EC: .4byte sub_809E3FC
+ thumb_func_end sub_809E83C
+
+ thumb_func_start sub_809E8F0
+sub_809E8F0: @ 809E8F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ bl PlaySE
+ mov r1, r9
+ ldrb r6, [r1]
+ ldr r1, _0809E944
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r2, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r10, r4
+ lsls r7, r0, 24
+_0809E930:
+ lsls r0, r6, 24
+ asrs r0, 24
+ add r0, r10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ asrs r1, r0, 24
+ cmp r0, r7
+ ble _0809E948
+ movs r6, 0
+ b _0809E94E
+ .align 2, 0
+_0809E944: .4byte gTasks
+_0809E948:
+ cmp r1, 0
+ bge _0809E94E
+ lsrs r6, r7, 24
+_0809E94E:
+ lsls r4, r6, 24
+ lsrs r1, r4, 24
+ ldr r0, _0809EA10
+ str r2, [sp, 0x4]
+ bl sub_809F760
+ lsls r0, 16
+ adds r5, r4, 0
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ bne _0809E97A
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E97A
+ lsls r0, r2, 24
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0809E930
+_0809E97A:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bne _0809E996
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E996
+ ldr r0, _0809EA14
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ mov r2, r8
+ lsls r7, r2, 2
+ cmp r0, 0
+ beq _0809E9AC
+_0809E996:
+ ldr r2, _0809EA18
+ mov r3, r8
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0x1
+ bne _0809E9D0
+_0809E9AC:
+ lsrs r4, r5, 24
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1654
+ ldr r1, _0809EA18
+ mov r3, r8
+ adds r0, r7, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x22]
+ movs r0, 0
+ str r0, [sp]
+_0809E9D0:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0809E9FE
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ bne _0809E9FE
+ ldr r0, _0809EA14
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809E9FE
+ movs r4, 0x2
+ negs r4, r4
+ lsrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1654
+_0809E9FE:
+ mov r2, r9
+ strb r6, [r2]
+ ldr r0, _0809EA1C
+ cmp r9, r0
+ bne _0809EA20
+ movs r0, 0
+ bl sub_80A1C30
+ b _0809EA26
+ .align 2, 0
+_0809EA10: .4byte 0x02018010
+_0809EA14: .4byte 0x02018000
+_0809EA18: .4byte gTasks
+_0809EA1C: .4byte 0x02018079
+_0809EA20:
+ movs r0, 0x1
+ bl sub_80A1C30
+_0809EA26:
+ ldr r3, [sp]
+ cmp r3, 0
+ beq _0809EA34
+ ldr r0, _0809EA4C
+ mov r1, r9
+ bl sub_80A0428
+_0809EA34:
+ mov r0, r8
+ bl BgFrame_FillTileMap
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EA4C: .4byte 0x02018010
+ thumb_func_end sub_809E8F0
+
+ thumb_func_start sub_809EA50
+sub_809EA50: @ 809EA50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0809EABC
+ adds r1, r4, 0
+ adds r1, 0x79
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1654
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EA8C
+ adds r1, r4, 0
+ adds r1, 0x7F
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80A0DD0
+_0809EA8C:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+ movs r0, 0x9
+ bl sub_80A1A30
+ ldr r1, _0809EAC0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EAC4
+ str r1, [r0]
+ adds r0, r5, 0
+ bl BgFrame_FillTileMap
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EABC: .4byte 0x02018000
+_0809EAC0: .4byte gTasks
+_0809EAC4: .4byte sub_809E3FC
+ thumb_func_end sub_809EA50
+
+ thumb_func_start sub_809EAC8
+sub_809EAC8: @ 809EAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0809EB34
+ adds r0, r6, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0809EAEE
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1654
+_0809EAEE:
+ movs r0, 0x9
+ bl sub_80A1B1C
+ movs r0, 0x1
+ bl sub_80A16CC
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r1, r6, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80A0DD0
+ ldr r1, _0809EB38
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EB3C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EB34: .4byte 0x02018000
+_0809EB38: .4byte gTasks
+_0809EB3C: .4byte sub_809E19C
+ thumb_func_end sub_809EAC8
+
+ thumb_func_start sub_809EB40
+sub_809EB40: @ 809EB40
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0809EB6C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0809EB74
+ cmp r0, 0x5
+ bne _0809EBA4
+ movs r0, 0x9
+ bl sub_80A1A30
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0809EB70
+ str r0, [r4]
+ b _0809EBB4
+ .align 2, 0
+_0809EB6C: .4byte gTasks
+_0809EB70: .4byte sub_809E260
+_0809EB74:
+ ldr r4, _0809EBBC
+ adds r6, r4, 0
+ adds r6, 0x79
+ strb r0, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809EB96
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ ldrb r1, [r6]
+ movs r0, 0xA
+ bl sub_80A1654
+_0809EB96:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+_0809EBA4:
+ ldr r0, _0809EBC0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0809EBB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EBBC: .4byte 0x02018000
+_0809EBC0: .4byte gTasks
+ thumb_func_end sub_809EB40
+
+ thumb_func_start sub_809EBC4
+sub_809EBC4: @ 809EBC4
+ push {r4,lr}
+ ldr r4, _0809EC28
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0809EC22
+ bl sub_80A0EE8
+ ldr r0, _0809EC2C
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x1
+ bne _0809EBF4
+ ldr r2, _0809EC30
+ ldrh r1, [r2]
+ ldr r0, _0809EC34
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EBF4:
+ ldrb r3, [r4, 0xB]
+ cmp r3, 0x2
+ bne _0809EC0C
+ ldr r2, _0809EC30
+ ldrh r1, [r2]
+ ldr r0, _0809EC34
+ ands r0, r1
+ movs r4, 0xA0
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC0C:
+ cmp r3, 0x3
+ bne _0809EC22
+ ldr r2, _0809EC30
+ ldrh r1, [r2]
+ ldr r0, _0809EC34
+ ands r0, r1
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC28: .4byte 0x02018000
+_0809EC2C: .4byte gUnknown_030042C0
+_0809EC30: .4byte REG_BG1CNT
+_0809EC34: .4byte 0x0000e0ff
+ thumb_func_end sub_809EBC4
+
+ thumb_func_start sub_809EC38
+sub_809EC38: @ 809EC38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EC5C
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0809EC52
+ b _0809EE64
+_0809EC52:
+ lsls r0, 2
+ ldr r1, _0809EC60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EC5C: .4byte gUnknown_03004B28
+_0809EC60: .4byte _0809EC64
+ .align 2, 0
+_0809EC64:
+ .4byte _0809EC7C
+ .4byte _0809ED14
+ .4byte _0809ED98
+ .4byte _0809EE12
+ .4byte _0809EE1C
+ .4byte _0809EE4C
+_0809EC7C:
+ ldr r1, _0809ECB8
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ECC8
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809EC98
+ ldr r1, _0809ECBC
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_0809EC98:
+ cmp r3, 0x1
+ bne _0809ECAE
+ ldr r2, _0809ECC0
+ ldrh r1, [r2]
+ ldr r0, _0809ECC4
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECAE:
+ cmp r3, 0x2
+ beq _0809ECB4
+ b _0809EE3A
+_0809ECB4:
+ ldr r2, _0809ECC0
+ b _0809ECF6
+ .align 2, 0
+_0809ECB8: .4byte 0x02018000
+_0809ECBC: .4byte gUnknown_03004288
+_0809ECC0: .4byte REG_BG2CNT
+_0809ECC4: .4byte 0x0000e0ff
+_0809ECC8:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809ECD8
+ ldr r1, _0809ED08
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+_0809ECD8:
+ cmp r3, 0x1
+ bne _0809ECEE
+ ldr r2, _0809ED0C
+ ldrh r1, [r2]
+ ldr r0, _0809ED10
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECEE:
+ cmp r3, 0x2
+ beq _0809ECF4
+ b _0809EE3A
+_0809ECF4:
+ ldr r2, _0809ED0C
+_0809ECF6:
+ ldrh r1, [r2]
+ ldr r0, _0809ED10
+ ands r0, r1
+ movs r3, 0xA0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED08: .4byte gUnknown_030042C0
+_0809ED0C: .4byte REG_BG1CNT
+_0809ED10: .4byte 0x0000e0ff
+_0809ED14:
+ ldr r0, _0809ED48
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ED5C
+ ldr r1, _0809ED4C
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED2E
+ b _0809EE64
+_0809ED2E:
+ ldr r3, _0809ED50
+ ldrh r2, [r3]
+ ldr r1, _0809ED54
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x2
+ strh r0, [r3]
+ ldr r2, _0809ED58
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x1
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED48: .4byte 0x02018000
+_0809ED4C: .4byte gUnknown_030042C0
+_0809ED50: .4byte REG_BG1CNT
+_0809ED54: .4byte 0x0000fffc
+_0809ED58: .4byte REG_BG2CNT
+_0809ED5C:
+ ldr r1, _0809ED88
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED6C
+ b _0809EE64
+_0809ED6C:
+ ldr r3, _0809ED8C
+ ldrh r2, [r3]
+ ldr r1, _0809ED90
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x1
+ strh r0, [r3]
+ ldr r2, _0809ED94
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x2
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED88: .4byte gUnknown_03004288
+_0809ED8C: .4byte REG_BG1CNT
+_0809ED90: .4byte 0x0000fffc
+_0809ED94: .4byte REG_BG2CNT
+_0809ED98:
+ ldr r1, _0809EDD4
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809EDD8
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809EE3A
+ .align 2, 0
+_0809EDD4: .4byte 0x02018000
+_0809EDD8:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809EDFA
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809EDF2
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809EDFA
+_0809EDF2:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809EE0E
+_0809EDFA:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809EE08
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809EE0E
+_0809EE08:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809EE0E:
+ strb r0, [r1]
+ b _0809EE3A
+_0809EE12:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809EE3A
+_0809EE1C:
+ ldr r0, _0809EE44
+ ldr r4, _0809EE48
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809EE3A:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809EE64
+ .align 2, 0
+_0809EE44: .4byte gUnknown_083C1598
+_0809EE48: .4byte 0x02018000
+_0809EE4C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809EE64
+ ldr r1, _0809EE6C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EE70
+ ldr r1, [r1]
+ str r1, [r0]
+_0809EE64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EE6C: .4byte gTasks
+_0809EE70: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EC38
+
+ thumb_func_start sub_809EE74
+sub_809EE74: @ 809EE74
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EE98
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x6
+ bls _0809EE8E
+ b _0809F0C0
+_0809EE8E:
+ lsls r0, 2
+ ldr r1, _0809EE9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EE98: .4byte gUnknown_03004B28
+_0809EE9C: .4byte _0809EEA0
+ .align 2, 0
+_0809EEA0:
+ .4byte _0809EEBC
+ .4byte _0809EEE0
+ .4byte _0809EFB4
+ .4byte _0809EFF4
+ .4byte _0809F06E
+ .4byte _0809F078
+ .4byte _0809F0A8
+_0809EEBC:
+ ldr r0, _0809EECC
+ adds r0, 0x80
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0809EED4
+ ldr r0, _0809EED0
+ strh r1, [r0]
+ b _0809F096
+ .align 2, 0
+_0809EECC: .4byte 0x02018000
+_0809EED0: .4byte gUnknown_03004288
+_0809EED4:
+ ldr r1, _0809EEDC
+ movs r0, 0
+ strh r0, [r1]
+ b _0809F096
+ .align 2, 0
+_0809EEDC: .4byte gUnknown_030042C0
+_0809EEE0:
+ ldr r1, _0809EF30
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EF4C
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF02
+ ldr r2, _0809EF34
+ ldrh r1, [r2]
+ ldr r0, _0809EF38
+ ands r0, r1
+ ldr r4, _0809EF3C
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF02:
+ cmp r3, 0x2
+ bne _0809EF16
+ ldr r2, _0809EF34
+ ldrh r1, [r2]
+ ldr r0, _0809EF38
+ ands r0, r1
+ ldr r4, _0809EF40
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF16:
+ cmp r3, 0x3
+ bne _0809EF2A
+ ldr r2, _0809EF34
+ ldrh r1, [r2]
+ ldr r0, _0809EF38
+ ands r0, r1
+ ldr r3, _0809EF44
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF2A:
+ ldr r2, _0809EF48
+ b _0809EF8C
+ .align 2, 0
+_0809EF30: .4byte 0x02018000
+_0809EF34: .4byte REG_BG2CNT
+_0809EF38: .4byte 0x0000e0fc
+_0809EF3C: .4byte 0x00000801
+_0809EF40: .4byte 0x00000a01
+_0809EF44: .4byte 0x00000c01
+_0809EF48: .4byte REG_BG1CNT
+_0809EF4C:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF62
+ ldr r2, _0809EF98
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C
+ ands r0, r1
+ ldr r4, _0809EFA0
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF62:
+ cmp r3, 0x2
+ bne _0809EF76
+ ldr r2, _0809EF98
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C
+ ands r0, r1
+ ldr r4, _0809EFA4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF76:
+ cmp r3, 0x3
+ bne _0809EF8A
+ ldr r2, _0809EF98
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C
+ ands r0, r1
+ ldr r3, _0809EFA8
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF8A:
+ ldr r2, _0809EFAC
+_0809EF8C:
+ ldrh r1, [r2]
+ ldr r0, _0809EFB0
+ ands r0, r1
+ adds r0, 0x2
+ strh r0, [r2]
+ b _0809F096
+ .align 2, 0
+_0809EF98: .4byte REG_BG1CNT
+_0809EF9C: .4byte 0x0000e0fc
+_0809EFA0: .4byte 0x00000801
+_0809EFA4: .4byte 0x00000a01
+_0809EFA8: .4byte 0x00000c01
+_0809EFAC: .4byte REG_BG2CNT
+_0809EFB0: .4byte 0x0000fffc
+_0809EFB4:
+ ldr r0, _0809EFD4
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EFDC
+ ldr r0, _0809EFD8
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFD4: .4byte 0x02018000
+_0809EFD8: .4byte gUnknown_03004288
+_0809EFDC:
+ ldr r0, _0809EFF0
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFF0: .4byte gUnknown_030042C0
+_0809EFF4:
+ ldr r1, _0809F030
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809F034
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809F096
+ .align 2, 0
+_0809F030: .4byte 0x02018000
+_0809F034:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809F056
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809F04E
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809F056
+_0809F04E:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809F06A
+_0809F056:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809F064
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809F06A
+_0809F064:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809F06A:
+ strb r0, [r1]
+ b _0809F096
+_0809F06E:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809F096
+_0809F078:
+ ldr r0, _0809F0A0
+ ldr r4, _0809F0A4
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809F096:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809F0C0
+ .align 2, 0
+_0809F0A0: .4byte gUnknown_083C1598
+_0809F0A4: .4byte 0x02018000
+_0809F0A8:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F0C0
+ ldr r1, _0809F0C8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F0CC
+ ldr r1, [r1]
+ str r1, [r0]
+_0809F0C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F0C8: .4byte gTasks
+_0809F0CC: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EE74
+
+ thumb_func_start sub_809F0D0
+sub_809F0D0: @ 809F0D0
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0809F110
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ movs r5, 0
+ strb r0, [r1, 0xB]
+ ldr r2, _0809F114
+ ldr r1, _0809F118
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r0, [r6]
+ str r0, [r2]
+ bl sub_809FBE4
+ strh r5, [r6, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0809F120
+ ldr r0, _0809F11C
+ str r0, [r6]
+ b _0809F12A
+ .align 2, 0
+_0809F110: .4byte 0x02018000
+_0809F114: .4byte gUnknown_03005CF0
+_0809F118: .4byte gTasks
+_0809F11C: .4byte sub_809EC38
+_0809F120:
+ ldr r1, _0809F130
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+_0809F12A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F130: .4byte sub_809EE74
+ thumb_func_end sub_809F0D0
+
+ thumb_func_start sub_809F134
+sub_809F134: @ 809F134
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, _0809F1AC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F1A6
+ lsls r0, r5, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809F168
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x65
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F168:
+ cmp r5, 0x1
+ bne _0809F17C
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x66
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F17C:
+ ldr r0, _0809F1B0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ ldr r0, _0809F1B4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_809F0D0
+_0809F1A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F1AC: .4byte 0x02018010
+_0809F1B0: .4byte sub_80A1334
+_0809F1B4: .4byte sub_80A1500
+ thumb_func_end sub_809F134
+
+ thumb_func_start sub_809F1B8
+sub_809F1B8: @ 809F1B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _0809F1E4
+ ldrb r1, [r0, 0xE]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _0809F202
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0809F1E8
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r4, 0x1
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ b _0809F1F4
+ .align 2, 0
+_0809F1E4: .4byte 0x02018000
+_0809F1E8:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r4, 0x3
+ cmp r0, 0x1
+ bne _0809F1F4
+ movs r4, 0x2
+_0809F1F4:
+ ldr r0, [r2]
+ ldrb r1, [r2, 0x9]
+ ldrb r2, [r2, 0xA]
+ adds r3, r4, 0
+ bl sub_8095DCC
+ b _0809F22C
+_0809F202:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F3CC
+ b _0809F22C
+_0809F224:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F284
+_0809F22C:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _0809F270
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _0809F278
+ adds r0, r5, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F258
+ movs r0, 0x2
+ negs r0, r0
+ bl sub_80A12D0
+_0809F258:
+ adds r0, r5, 0
+ subs r0, 0x10
+ strb r4, [r0, 0x9]
+ ldr r1, _0809F27C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r5, 0x74]
+ ldr r1, _0809F280
+ str r1, [r0]
+_0809F270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F278: .4byte 0x02018010
+_0809F27C: .4byte gTasks
+_0809F280: .4byte sub_809F43C
+ thumb_func_end sub_809F1B8
+
+ thumb_func_start sub_809F284
+sub_809F284: @ 809F284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809F2C0
+ ldr r7, [r0]
+ movs r6, 0
+ ldrb r1, [r0, 0xB]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _0809F2C4
+ lsls r0, r3, 24
+ asrs r2, r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r5, r0, 0
+ cmp r2, r1
+ bne _0809F2AC
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0809F2E4
+_0809F2AC:
+ asrs r0, r5, 24
+ cmp r0, 0x1
+ bne _0809F2BA
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ cmp r0, r1
+ bcs _0809F2E4
+_0809F2BA:
+ ldrb r0, [r4, 0x9]
+ adds r0, r3
+ b _0809F304
+ .align 2, 0
+_0809F2C0: .4byte 0x02018000
+_0809F2C4:
+ lsls r5, r3, 24
+_0809F2C6:
+ lsls r0, r6, 24
+ asrs r0, 24
+ asrs r1, r5, 24
+ adds r0, r1
+ lsls r0, 24
+ ldr r4, _0809F2EC
+ lsrs r6, r0, 24
+ asrs r0, 24
+ ldrb r2, [r4, 0x9]
+ adds r1, r0, r2
+ cmp r1, 0
+ blt _0809F2E4
+ ldrb r0, [r4, 0xA]
+ cmp r1, r0
+ ble _0809F2F0
+_0809F2E4:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F308
+ .align 2, 0
+_0809F2EC: .4byte 0x02018000
+_0809F2F0:
+ movs r0, 0x64
+ muls r0, r1
+ adds r0, r7, r0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F2C6
+ ldrb r0, [r4, 0x9]
+ adds r0, r6
+_0809F304:
+ lsls r0, 24
+ asrs r0, 24
+_0809F308:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F284
+
+ thumb_func_start sub_809F310
+sub_809F310: @ 809F310
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0809F33C
+ ldr r0, _0809F338
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ bne _0809F332
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F33C
+_0809F332:
+ movs r0, 0x1
+ b _0809F33E
+ .align 2, 0
+_0809F338: .4byte 0x02018000
+_0809F33C:
+ movs r0, 0
+_0809F33E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F310
+
+ thumb_func_start sub_809F344
+sub_809F344: @ 809F344
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F34A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0809F37C
+ ldr r0, _0809F374
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F378
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F34A
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F380
+ .align 2, 0
+_0809F374: .4byte gUnknown_083C15A8
+_0809F378: .4byte gPlayerParty
+_0809F37C:
+ movs r0, 0x1
+ negs r0, r0
+_0809F380:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F344
+
+ thumb_func_start sub_809F388
+sub_809F388: @ 809F388
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F38E:
+ cmp r4, 0
+ beq _0809F3C0
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F3B8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F3BC
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F38E
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F3C4
+ .align 2, 0
+_0809F3B8: .4byte gUnknown_083C15A8
+_0809F3BC: .4byte gPlayerParty
+_0809F3C0:
+ movs r0, 0x1
+ negs r0, r0
+_0809F3C4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F388
+
+ thumb_func_start sub_809F3CC
+sub_809F3CC: @ 809F3CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ movs r1, 0
+ ldr r3, _0809F41C
+ ldr r4, _0809F420
+ ldrb r0, [r3]
+ ldrb r5, [r4, 0x9]
+ cmp r0, r5
+ beq _0809F3FC
+ adds r5, r3, 0
+ adds r3, r4, 0
+_0809F3E6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bhi _0809F3FC
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldrb r4, [r3, 0x9]
+ cmp r0, r4
+ bne _0809F3E6
+ adds r2, r1, 0
+_0809F3FC:
+ lsls r0, r6, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F40C
+ cmp r2, 0
+ beq _0809F414
+_0809F40C:
+ cmp r1, 0x1
+ bne _0809F424
+ cmp r2, 0x5
+ bne _0809F42C
+_0809F414:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F436
+ .align 2, 0
+_0809F41C: .4byte gUnknown_083C15A8
+_0809F420: .4byte 0x02018000
+_0809F424:
+ adds r0, r2, 0
+ bl sub_809F388
+ b _0809F432
+_0809F42C:
+ adds r0, r2, 0
+ bl sub_809F344
+_0809F432:
+ lsls r0, 24
+ asrs r0, 24
+_0809F436:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F3CC
+
+ thumb_func_start sub_809F43C
+sub_809F43C: @ 809F43C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F45C
+ ldr r1, _0809F460
+ adds r5, r0, r1
+ ldrb r2, [r5]
+ adds r3, r0, 0
+ cmp r2, 0x8
+ bls _0809F452
+ b _0809F5CC
+_0809F452:
+ lsls r0, r2, 2
+ ldr r1, _0809F464
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F45C: .4byte gMain
+_0809F460: .4byte 0x0000043c
+_0809F464: .4byte _0809F468
+ .align 2, 0
+_0809F468:
+ .4byte _0809F48C
+ .4byte _0809F492
+ .4byte _0809F4BC
+ .4byte _0809F4D8
+ .4byte _0809F4F4
+ .4byte _0809F51C
+ .4byte _0809F578
+ .4byte _0809F584
+ .4byte _0809F5A0
+_0809F48C:
+ bl StopCryAndClearCrySongs
+ b _0809F5B2
+_0809F492:
+ ldr r0, _0809F4AC
+ ldrb r1, [r0, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4B0
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r1, _0809F4B4
+ ldr r0, _0809F4B8
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4AC: .4byte 0x02018000
+_0809F4B0: .4byte gSprites
+_0809F4B4: .4byte gMain
+_0809F4B8: .4byte 0x0000043c
+_0809F4BC:
+ ldr r0, _0809F4D0
+ ldrb r1, [r0, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4D4
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ b _0809F5B2
+ .align 2, 0
+_0809F4D0: .4byte 0x02018000
+_0809F4D4: .4byte gSprites
+_0809F4D8:
+ ldr r0, _0809F4EC
+ adds r1, r0, 0
+ adds r1, 0x74
+ movs r2, 0
+ strb r2, [r1]
+ adds r0, 0x79
+ strb r2, [r0]
+ ldr r0, _0809F4F0
+ adds r1, r3, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4EC: .4byte 0x02018000
+_0809F4F0: .4byte 0x0000043c
+_0809F4F4:
+ ldr r4, _0809F518
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F50E
+ movs r0, 0x2
+ bl sub_80A12D0
+_0809F50E:
+ adds r0, r4, 0
+ bl sub_80A0EA4
+ b _0809F5B2
+ .align 2, 0
+_0809F518: .4byte 0x02018010
+_0809F51C:
+ ldr r4, _0809F558
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ adds r1, r4, 0
+ subs r1, 0x10
+ strb r0, [r1, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809F560
+ ldr r1, _0809F55C
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809F564
+ .align 2, 0
+_0809F558: .4byte 0x02018010
+_0809F55C: .4byte gUnknown_030041B0
+_0809F560:
+ ldr r0, _0809F56C
+ strh r1, [r0]
+_0809F564:
+ ldr r1, _0809F570
+ ldr r0, _0809F574
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F56C: .4byte gUnknown_030041B0
+_0809F570: .4byte gMain
+_0809F574: .4byte 0x0000043c
+_0809F578:
+ ldr r0, _0809F580
+ bl sub_80A1DCC
+ b _0809F5B2
+ .align 2, 0
+_0809F580: .4byte 0x02018010
+_0809F584:
+ ldr r0, _0809F594
+ bl sub_80A1DE8
+ ldr r1, _0809F598
+ ldr r0, _0809F59C
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F594: .4byte 0x02018010
+_0809F598: .4byte gMain
+_0809F59C: .4byte 0x0000043c
+_0809F5A0:
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F5EA
+ ldr r0, _0809F5C0
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+_0809F5B2:
+ ldr r1, _0809F5C4
+ ldr r2, _0809F5C8
+ adds r1, r2
+_0809F5B8:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809F5EA
+ .align 2, 0
+_0809F5C0: .4byte 0x02018000
+_0809F5C4: .4byte gMain
+_0809F5C8: .4byte 0x0000043c
+_0809F5CC:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0809F5F0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809F5F4
+ adds r0, 0x84
+ ldr r0, [r0]
+ str r0, [r1]
+_0809F5EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F5F0: .4byte gTasks
+_0809F5F4: .4byte 0x02018000
+ thumb_func_end sub_809F43C
+
+ thumb_func_start sub_809F5F8
+sub_809F5F8: @ 809F5F8
+ push {r4,lr}
+ ldr r2, _0809F61C
+ adds r4, r2, 0
+ adds r4, 0x74
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809F624
+ ldr r0, _0809F620
+ ldrb r1, [r2, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ movs r0, 0x1
+ b _0809F634
+ .align 2, 0
+_0809F61C: .4byte 0x02018000
+_0809F620: .4byte gUnknown_083C1588
+_0809F624:
+ adds r0, r2, 0
+ adds r0, 0x10
+ bl sub_809FAC8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+_0809F634:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F5F8
+
+ thumb_func_start sub_809F63C
+sub_809F63C: @ 809F63C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FE80
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F63C
+
+ thumb_func_start sub_809F650
+sub_809F650: @ 809F650
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A00A4
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F650
+
+ thumb_func_start sub_809F664
+sub_809F664: @ 809F664
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A0390
+ adds r0, r4, 0
+ bl sub_80A015C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F664
+
+ thumb_func_start sub_809F678
+sub_809F678: @ 809F678
+ push {lr}
+ adds r3, r0, 0
+ ldr r1, _0809F698
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809F69C
+ ldr r2, [r1]
+ ldrb r1, [r1, 0x9]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r3, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0809F6AE
+ .align 2, 0
+_0809F698: .4byte 0x02018000
+_0809F69C:
+ ldr r0, [r1]
+ ldrb r2, [r1, 0x9]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_803B4B4
+_0809F6AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F678
+
+ thumb_func_start sub_809F6B4
+sub_809F6B4: @ 809F6B4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0809F6D2
+ cmp r0, 0x1
+ beq _0809F718
+ adds r0, r4, 0
+ bl sub_80A1808
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809F756
+_0809F6D2:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _0809F70C
+ adds r0, r1
+ ldr r1, _0809F710
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0809F714
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl sub_800D334
+ b _0809F74E
+ .align 2, 0
+_0809F70C: .4byte gMonFrontPicTable
+_0809F710: .4byte gMonFrontPicCoords
+_0809F714: .4byte gUnknown_081FAF4C
+_0809F718:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+_0809F74E:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r0, 0xFF
+_0809F756:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F6B4
+
+ thumb_func_start sub_809F760
+sub_809F760: @ 809F760
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F780
+ cmp r1, 0x1
+ bgt _0809F776
+ cmp r1, 0
+ beq _0809F77C
+ b _0809F788
+_0809F776:
+ cmp r2, 0x2
+ beq _0809F784
+ b _0809F788
+_0809F77C:
+ movs r1, 0xD
+ b _0809F78A
+_0809F780:
+ movs r1, 0xE
+ b _0809F78A
+_0809F784:
+ movs r1, 0xF
+ b _0809F78A
+_0809F788:
+ movs r1, 0x10
+_0809F78A:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F760
+
+ thumb_func_start sub_809F798
+sub_809F798: @ 809F798
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F7B8
+ cmp r1, 0x1
+ bgt _0809F7AE
+ cmp r1, 0
+ beq _0809F7B4
+ b _0809F7C0
+_0809F7AE:
+ cmp r2, 0x2
+ beq _0809F7BC
+ b _0809F7C0
+_0809F7B4:
+ movs r1, 0x11
+ b _0809F7C2
+_0809F7B8:
+ movs r1, 0x12
+ b _0809F7C2
+_0809F7BC:
+ movs r1, 0x13
+ b _0809F7C2
+_0809F7C0:
+ movs r1, 0x14
+_0809F7C2:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F798
+
+ thumb_func_start sub_809F7D0
+sub_809F7D0: @ 809F7D0
+ push {r4,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ ldr r4, _0809F804
+ adds r0, r4, 0
+ adds r0, 0x79
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_806F7B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F808
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x3
+ beq _0809F808
+ movs r0, 0
+ b _0809F80A
+ .align 2, 0
+_0809F804: .4byte 0x02018000
+_0809F808:
+ movs r0, 0x1
+_0809F80A:
+ add sp, 0x64
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F7D0
+
+ thumb_func_start sub_809F814
+sub_809F814: @ 809F814
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _0809F83C
+ mov r8, r0
+ adds r4, r6, r0
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _0809F840
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _0809F9C0
+ .align 2, 0
+_0809F83C: .4byte gUnknown_03004B28
+_0809F840:
+ ldr r7, _0809F874
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F880
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F878
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F87C
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F874: .4byte gMain
+_0809F878: .4byte sub_809E260
+_0809F87C: .4byte 0x02018000
+_0809F880:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F8B4
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F8AC
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F8B0
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F8AC: .4byte sub_809E260
+_0809F8B0: .4byte 0x02018000
+_0809F8B4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F8C8
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F918
+_0809F8C8:
+ ldr r1, _0809F90C
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ beq _0809F9C0
+ cmp r0, 0x3
+ bne _0809F8F4
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F8E8
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F8F4
+_0809F8E8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F8F4:
+ ldr r1, _0809F910
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F914
+ str r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ b _0809F972
+ .align 2, 0
+_0809F90C: .4byte 0x02018000
+_0809F910: .4byte gTasks
+_0809F914: .4byte sub_809E260
+_0809F918:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F92E
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809F994
+_0809F92E:
+ ldr r1, _0809F988
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809F9C0
+ cmp r0, 0x2
+ bne _0809F960
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F954
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F960
+_0809F954:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F960:
+ ldr r1, _0809F98C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F990
+ str r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x1
+_0809F972:
+ bl sub_809F134
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1654
+ b _0809F9C0
+ .align 2, 0
+_0809F988: .4byte 0x02018000
+_0809F98C: .4byte gTasks
+_0809F990: .4byte sub_809E260
+_0809F994:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F9A6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F9C0
+_0809F9A6:
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1654
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F9CC
+ str r1, [r0]
+_0809F9C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F9CC: .4byte sub_809E260
+ thumb_func_end sub_809F814
+
+ thumb_func_start sub_809F9D0
+sub_809F9D0: @ 809F9D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0809FA24
+ adds r2, r4, r6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ strh r1, [r2, 0x1E]
+ movs r5, 0x2
+ negs r5, r5
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1488
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1654
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _0809FA28
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0809FA2C
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA24: .4byte gUnknown_03004B28
+_0809FA28: .4byte gOtherText_CantForgetHMs
+_0809FA2C: .4byte sub_809F814
+ thumb_func_end sub_809F9D0
+
+ thumb_func_start sub_809FA30
+sub_809FA30: @ 809FA30
+ ldr r0, _0809FA38
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809FA38: .4byte 0x02018000
+ thumb_func_end sub_809FA30
+
+ thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
+GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
+ push {r4,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r2, 23
+ lsrs r3, 18
+ ldr r4, _0809FA70
+ adds r3, r4
+ adds r2, r3
+ lsrs r1, 12
+ lsrs r0, 23
+ movs r4, 0x80
+ lsls r4, 2
+ adds r3, r4, 0
+ adds r0, r3
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x80
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x81
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA70: .4byte 0x0600f000
+ thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
+
+ thumb_func_start GetStringCenterAlignXOffset
+GetStringCenterAlignXOffset: @ 809FA74
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xF
+ adds r2, r4, 0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetStringCenterAlignXOffset
+
+ thumb_func_start sub_809FA94
+sub_809FA94: @ 809FA94
+ push {lr}
+ bl sub_8040CB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809FAB4
+ ldr r0, _0809FAB0
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x1
+ b _0809FAC0
+ .align 2, 0
+_0809FAB0: .4byte gUnknown_083C157E
+_0809FAB4:
+ ldr r0, _0809FAC4
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0
+_0809FAC0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809FAC4: .4byte gUnknown_083C157C
+ thumb_func_end sub_809FA94
+
+ thumb_func_start sub_809FAC8
+sub_809FAC8: @ 809FAC8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FB28
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xB
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809FB20
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMonNickname
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x3
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FB24
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ b _0809FBD6
+ .align 2, 0
+_0809FB20: .4byte gStringVar1
+_0809FB24: .4byte gUnknown_083C157C
+_0809FB28:
+ adds r0, r5, 0
+ bl sub_809FA94
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80406D8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0809FB6C
+ cmp r4, r0
+ beq _0809FB96
+ cmp r6, 0
+ bne _0809FB70
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0xD
+ b _0809FB8C
+ .align 2, 0
+_0809FB6C: .4byte 0x0000ffff
+_0809FB70:
+ movs r0, 0x2
+ movs r1, 0x8
+ movs r2, 0x1
+ movs r3, 0x2
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x8
+_0809FB8C:
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80A1F98
+ b _0809FBA2
+_0809FB96:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+_0809FBA2:
+ ldr r1, _0809FBE0
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r1, r0, 0
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ movs r0, 0x3C
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0809FBE0
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuPrint
+ adds r0, r5, 0
+ bl sub_80A0958
+_0809FBD6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FBE0: .4byte gStringVar1
+ thumb_func_end sub_809FAC8
+
+ thumb_func_start sub_809FBE4
+sub_809FBE4: @ 809FBE4
+ push {r4,lr}
+ movs r4, 0
+_0809FBE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1B
+ bls _0809FBE8
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FBE4
+
+ thumb_func_start sub_809FC0C
+sub_809FC0C: @ 809FC0C
+ push {lr}
+ ldr r0, _0809FC30
+ movs r1, 0xB
+ movs r2, 0x6
+ bl MenuPrint
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x2
+ movs r1, 0x17
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FC30: .4byte gOtherText_Type2
+ thumb_func_end sub_809FC0C
+
+ thumb_func_start sub_809FC34
+sub_809FC34: @ 809FC34
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r4, 0
+_0809FC3C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FC3C
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FD1C
+ ldr r5, _0809FCD0
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FCD4
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r4, _0809FCD8
+ adds r1, r4, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FCD0
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0xC1
+ movs r3, 0x20
+ bl sub_80A1EF8
+ movs r0, 0x9
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x5
+ bhi _0809FCE0
+ ldr r0, _0809FCDC
+ b _0809FCF2
+ .align 2, 0
+_0809FCD0: .4byte gStringVar1
+_0809FCD4: .4byte gOtherText_OriginalTrainer
+_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
+_0809FCDC: .4byte gOtherText_EggAbout
+_0809FCE0:
+ cmp r0, 0xA
+ bhi _0809FCEC
+ ldr r0, _0809FCE8
+ b _0809FCF2
+ .align 2, 0
+_0809FCE8: .4byte gOtherText_EggSoon
+_0809FCEC:
+ cmp r1, 0x28
+ bhi _0809FD00
+ ldr r0, _0809FCFC
+_0809FCF2:
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+ b _0809FD0A
+ .align 2, 0
+_0809FCFC: .4byte gOtherText_EggSomeTime
+_0809FD00:
+ ldr r0, _0809FD18
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+_0809FD0A:
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl sub_80A0708
+ b _0809FE4C
+ .align 2, 0
+_0809FD18: .4byte gOtherText_EggLongTime
+_0809FD1C:
+ ldr r4, _0809FD64
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r5, _0809FD68
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FD6C
+ bl StringCopy
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl GetMonData
+ cmp r0, 0
+ bne _0809FD70
+ adds r0, r5, 0
+ movs r1, 0x9
+ b _0809FD74
+ .align 2, 0
+_0809FD64: .4byte gStringVar2
+_0809FD68: .4byte gStringVar1
+_0809FD6C: .4byte gOtherText_OriginalTrainer
+_0809FD70:
+ adds r0, r5, 0
+ movs r1, 0xA
+_0809FD74:
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FE54
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FE58
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldr r1, _0809FE5C
+ ands r1, r0
+ movs r0, 0xC1
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0xD
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A1F98
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809FE60
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ ldrb r0, [r5, 0x7]
+ cmp r4, r0
+ beq _0809FDF8
+ ldrb r0, [r5, 0x7]
+ movs r1, 0xA0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80A198C
+_0809FDF8:
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _0809FE64
+ adds r0, r1
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1FF8
+ ldr r0, _0809FE68
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl sub_80A0798
+_0809FE4C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FE54: .4byte gStringVar2
+_0809FE58: .4byte gStringVar1
+_0809FE5C: .4byte 0x0000ffff
+_0809FE60: .4byte gBaseStats
+_0809FE64: .4byte gAbilityNames
+_0809FE68: .4byte gAbilityDescriptions
+ thumb_func_end sub_809FC34
+
+ thumb_func_start sub_809FE6C
+sub_809FE6C: @ 809FE6C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FC0C
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE6C
+
+ thumb_func_start sub_809FE80
+sub_809FE80: @ 809FE80
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x4
+ movs r2, 0x12
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x19
+ movs r1, 0x4
+ movs r2, 0x1E
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE80
+
+ thumb_func_start sub_809FEB8
+sub_809FEB8: @ 809FEB8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0809FF40
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xE
+ bl sub_80A1FF8
+ ldr r0, _0809FF44
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FF48
+ movs r1, 0x15
+ movs r2, 0x10
+ bl MenuPrint
+ ldr r0, _0809FF4C
+ movs r4, 0x2A
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF50
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF54
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xB
+ bl sub_80A1F48
+ ldr r0, _0809FF58
+ movs r4, 0x24
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF5C
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF60
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0xB
+ bl sub_80A1F48
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FF40: .4byte gOtherText_ExpPoints
+_0809FF44: .4byte gOtherText_NextLv
+_0809FF48: .4byte gOtherText_Terminator18
+_0809FF4C: .4byte gOtherText_HP
+_0809FF50: .4byte gOtherText_Attack
+_0809FF54: .4byte gOtherText_Defense
+_0809FF58: .4byte gOtherText_SpAtk
+_0809FF5C: .4byte gOtherText_SpDef
+_0809FF60: .4byte gOtherText_Speed
+ thumb_func_end sub_809FEB8
+
+ thumb_func_start sub_809FF64
+sub_809FF64: @ 809FF64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0809FF6A:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FF6A
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ movs r2, 0x4
+ bl sub_80A0BF4
+ adds r0, r5, 0
+ bl sub_80A0B88
+ ldr r4, _080A008C
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1D
+ movs r2, 0xE
+ bl sub_8072B4C
+ adds r0, r5, 0
+ movs r1, 0x17
+ movs r2, 0x10
+ bl sub_80A0C80
+ adds r0, r5, 0
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x7
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x9
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3D
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0xB
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A008C
+ movs r1, 0x7E
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_80729D8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A008C: .4byte gStringVar1
+ thumb_func_end sub_809FF64
+
+ thumb_func_start sub_80A0090
+sub_80A0090: @ 80A0090
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FEB8
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0090
+
+ thumb_func_start sub_80A00A4
+sub_80A00A4: @ 80A00A4
+ push {lr}
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x13
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x10
+ movs r1, 0x7
+ movs r2, 0x15
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ movs r0, 0x11
+ movs r1, 0x9
+ movs r2, 0x15
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1B
+ movs r1, 0x7
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x16
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0x10
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A00A4
+
+ thumb_func_start sub_80A00F4
+sub_80A00F4: @ 80A00F4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _080A012C
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A010A
+ cmp r1, 0x4
+ beq _080A0150
+_080A010A:
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0x2
+ bne _080A0138
+ ldr r0, _080A0130
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0134
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+ b _080A0150
+ .align 2, 0
+_080A012C: .4byte 0x02018000
+_080A0130: .4byte gOtherText_Power2
+_080A0134: .4byte gOtherText_Accuracy2
+_080A0138:
+ ldr r0, _080A0154
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0158
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+_080A0150:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0154: .4byte gOtherText_Appeal2
+_080A0158: .4byte gOtherText_Jam2
+ thumb_func_end sub_80A00F4
+
+ thumb_func_start sub_80A015C
+sub_80A015C: @ 80A015C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ movs r7, 0
+_080A0168:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F798
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0
+ bne _080A01B8
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ lsls r4, r7, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r4, r0
+ lsrs r4, 24
+ ldr r0, _080A01B0
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r4, 0
+ bl sub_80A1FF8
+ ldr r0, _080A01B4
+ movs r1, 0x1A
+ adds r2, r4, 0
+ bl MenuPrint
+ b _080A0276
+ .align 2, 0
+_080A01B0: .4byte gOtherText_OneDash
+_080A01B4: .4byte gOtherText_TwoDashes
+_080A01B8:
+ ldr r0, _080A01E0
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A01E8
+ ldr r1, _080A01E4
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+ b _080A020C
+ .align 2, 0
+_080A01E0: .4byte 0x02018000
+_080A01E4: .4byte gBattleMoves
+_080A01E8:
+ ldr r1, _080A0290
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+_080A020C:
+ movs r0, 0xD
+ muls r0, r6
+ ldr r1, _080A0294
+ adds r0, r1
+ adds r5, r4, 0x4
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r5, 0
+ bl sub_80A1FF8
+ movs r0, 0x1
+ movs r1, 0x18
+ adds r2, r5, 0
+ bl GetStringCenterAlignXOffset
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r7, 0
+ bl CalculatePPWithBonus
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A0298
+ adds r0, r1, 0
+ mov r1, r9
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r1, r0, 0
+ movs r0, 0xBA
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r0, r1, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0298
+ movs r1, 0x19
+ adds r2, r5, 0
+ bl MenuPrint
+_080A0276:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bhi _080A0282
+ b _080A0168
+_080A0282:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0290: .4byte gContestMoves
+_080A0294: .4byte gMoveNames
+_080A0298: .4byte gStringVar1
+ thumb_func_end sub_80A015C
+
+ thumb_func_start sub_80A029C
+sub_80A029C: @ 80A029C
+ push {r4,r5,lr}
+ ldr r1, _080A02B8
+ adds r4, r1, 0
+ adds r4, 0x7C
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _080A02C0
+ ldr r0, _080A02BC
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A037E
+ .align 2, 0
+_080A02B8: .4byte 0x02018000
+_080A02BC: .4byte gOtherText_CancelNoTerminator
+_080A02C0:
+ ldrh r5, [r4]
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ bne _080A02E4
+ ldr r1, _080A02E0
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ b _080A0304
+ .align 2, 0
+_080A02E0: .4byte gBattleMoves
+_080A02E4:
+ ldr r1, _080A0320
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ lsls r4, r5, 1
+_080A0304:
+ ldr r0, _080A0324
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A032C
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0328
+ adds r0, r1
+ movs r1, 0xA
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A033E
+ .align 2, 0
+_080A0320: .4byte gContestMoves
+_080A0324: .4byte 0x02018000
+_080A0328: .4byte gMoveNames
+_080A032C:
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0384
+ adds r0, r1
+ movs r1, 0x9
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+_080A033E:
+ movs r0, 0x1
+ movs r1, 0x18
+ movs r2, 0xC
+ bl GetStringCenterAlignXOffset
+ ldr r2, _080A0388
+ ldr r1, _080A038C
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x4]
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0388
+ movs r1, 0x19
+ movs r2, 0xC
+ bl MenuPrint
+_080A037E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0384: .4byte gMoveNames
+_080A0388: .4byte gStringVar1
+_080A038C: .4byte gBattleMoves
+ thumb_func_end sub_80A029C
+
+ thumb_func_start sub_80A0390
+sub_80A0390: @ 80A0390
+ push {r4,lr}
+ movs r4, 0
+_080A0394:
+ lsls r3, r4, 1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xF
+ movs r2, 0x1C
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080A0394
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0390
+
+ thumb_func_start sub_80A03BC
+sub_80A03BC: @ 80A03BC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x4
+ beq _080A03D0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _080A03E0
+_080A03D0:
+ ldr r0, _080A03E8
+ adds r2, r0, 0
+ adds r2, 0x7C
+ ldrh r0, [r2]
+ ldr r1, _080A03EC
+ cmp r0, 0
+ beq _080A03E0
+ adds r1, r0, 0
+_080A03E0:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A03E8: .4byte 0x02018000
+_080A03EC: .4byte 0x0000ffff
+ thumb_func_end sub_80A03BC
+
+ thumb_func_start sub_80A03F0
+sub_80A03F0: @ 80A03F0
+ push {lr}
+ ldrb r1, [r1]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0414
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A041C
+ adds r0, r1, 0
+ bl sub_80A04CC
+ ldr r0, _080A0418
+ bl sub_80A057C
+ b _080A0422
+ .align 2, 0
+_080A0414: .4byte 0x02018000
+_080A0418: .4byte 0x0000ffff
+_080A041C:
+ adds r0, r1, 0
+ bl sub_80A057C
+_080A0422:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A03F0
+
+ thumb_func_start sub_80A0428
+sub_80A0428: @ 80A0428
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r1, [r6]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A0454
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A0458
+ adds r0, r4, 0
+ bl sub_80A046C
+ b _080A045E
+ .align 2, 0
+_080A0454: .4byte 0x02018000
+_080A0458:
+ adds r0, r4, 0
+ bl sub_80A0498
+_080A045E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A03F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0428
+
+ thumb_func_start sub_80A046C
+sub_80A046C: @ 80A046C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0490
+ cmp r1, r0
+ beq _080A048A
+ ldr r0, _080A0494
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A048A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0490: .4byte 0x0000ffff
+_080A0494: .4byte gMoveDescriptions
+ thumb_func_end sub_80A046C
+
+ thumb_func_start sub_80A0498
+sub_80A0498: @ 80A0498
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A04C0
+ cmp r3, r0
+ beq _080A04BC
+ ldr r2, _080A04C4
+ ldr r1, _080A04C8
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A04BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A04C0: .4byte 0x0000ffff
+_080A04C4: .4byte gUnknown_083CADD4
+_080A04C8: .4byte gContestMoves
+ thumb_func_end sub_80A0498
+
+ thumb_func_start sub_80A04CC
+sub_80A04CC: @ 80A04CC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080A0504
+ cmp r4, r0
+ beq _080A0572
+ ldr r2, _080A0508
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _080A0514
+ ldr r0, _080A050C
+ ldr r1, _080A0510
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A050C
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+ b _080A052A
+ .align 2, 0
+_080A0504: .4byte 0x0000ffff
+_080A0508: .4byte gBattleMoves
+_080A050C: .4byte gStringVar1
+_080A0510: .4byte gOtherText_ThreeDashes2
+_080A0514:
+ ldr r0, _080A0550
+ ldrb r1, [r2, 0x1]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0550
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+_080A052A:
+ ldr r0, _080A0554
+ adds r1, r5, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _080A055C
+ ldr r0, _080A0550
+ ldr r1, _080A0558
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A0550
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+ b _080A0572
+ .align 2, 0
+_080A0550: .4byte gStringVar1
+_080A0554: .4byte gBattleMoves
+_080A0558: .4byte gOtherText_ThreeDashes2
+_080A055C:
+ ldr r0, _080A0578
+ ldrb r1, [r1, 0x3]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0578
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+_080A0572:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0578: .4byte gStringVar1
+ thumb_func_end sub_80A04CC
+
+ thumb_func_start sub_80A057C
+sub_80A057C: @ 80A057C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080A0648
+ mov r8, r0
+ ldr r0, _080A064C
+ cmp r5, r0
+ beq _080A063A
+ ldr r1, _080A0650
+ ldr r2, _080A0654
+ lsls r3, r5, 3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ mov r10, r2
+ mov r9, r3
+ cmp r4, 0xFF
+ beq _080A05B8
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A05B8:
+ movs r2, 0
+ movs r7, 0x3
+ movs r6, 0xF3
+ lsls r6, 2
+_080A05C0:
+ ldr r3, _080A0658
+ cmp r4, 0xFF
+ beq _080A05CC
+ cmp r2, r4
+ bcs _080A05CC
+ adds r3, 0x1
+_080A05CC:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r7
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r6
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A05C0
+ ldr r0, _080A064C
+ cmp r5, r0
+ beq _080A063A
+ mov r0, r9
+ add r0, r10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _080A0650
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+ cmp r4, 0xFF
+ beq _080A060C
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A060C:
+ movs r2, 0
+ movs r6, 0x3
+ ldr r5, _080A065C
+_080A0612:
+ ldr r3, _080A0660
+ cmp r4, 0xFF
+ beq _080A061E
+ cmp r2, r4
+ bcs _080A061E
+ subs r3, 0x1
+_080A061E:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r6
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r5
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A0612
+_080A063A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0648: .4byte 0x06006800
+_080A064C: .4byte 0x0000ffff
+_080A0650: .4byte gContestEffects
+_080A0654: .4byte gContestMoves
+_080A0658: .4byte 0x00001039
+_080A065C: .4byte 0x0000044c
+_080A0660: .4byte 0x0000103d
+ thumb_func_end sub_80A057C
+
+ thumb_func_start sub_80A0664
+sub_80A0664: @ 80A0664
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080A06A0
+ ldr r1, [r0]
+ ldr r0, _080A06A4
+ cmp r1, r0
+ bne _080A06B0
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A06A8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldrh r5, [r0]
+ ldr r4, _080A06AC
+ adds r2, 0x8
+ adds r1, r2
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl SkipExtCtrlCodes
+ b _080A06C2
+ .align 2, 0
+_080A06A0: .4byte 0x02018000
+_080A06A4: .4byte gEnemyParty
+_080A06A8: .4byte gLinkPlayers
+_080A06AC: .4byte gStringVar1
+_080A06B0:
+ bl sub_80BFB94
+ adds r5, r0, 0
+ ldr r0, _080A06F0
+ ands r5, r0
+ ldr r0, _080A06F4
+ ldr r1, _080A06F8
+ bl StringCopy
+_080A06C2:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldr r1, _080A06F0
+ ands r1, r0
+ cmp r5, r1
+ bne _080A06EA
+ ldr r4, _080A06FC
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _080A06F4
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080A0700
+_080A06EA:
+ movs r0, 0
+ b _080A0702
+ .align 2, 0
+_080A06F0: .4byte 0x0000ffff
+_080A06F4: .4byte gStringVar1
+_080A06F8: .4byte gSaveBlock2
+_080A06FC: .4byte gStringVar2
+_080A0700:
+ movs r0, 0x1
+_080A0702:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A0664
+
+ thumb_func_start sub_80A0708
+sub_80A0708: @ 80A0708
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r9, r5
+ lsls r2, 24
+ lsrs r6, r2, 24
+ mov r8, r6
+ movs r1, 0x25
+ bl GetMonData
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _080A073C
+ ldr r0, _080A0738
+ b _080A076E
+ .align 2, 0
+_080A0738: .4byte gOtherText_EggObtainedInTrade
+_080A073C:
+ adds r0, r4, 0
+ movs r1, 0x23
+ bl GetMonData
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xFF
+ bne _080A0754
+ ldr r0, _080A0750
+ b _080A076E
+ .align 2, 0
+_080A0750: .4byte gOtherText_EggNicePlace
+_080A0754:
+ adds r0, r4, 0
+ bl sub_80A0664
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0768
+ ldr r0, _080A0764
+ b _080A076E
+ .align 2, 0
+_080A0764: .4byte gOtherText_EggObtainedInTrade
+_080A0768:
+ cmp r7, 0xFD
+ bne _080A077C
+ ldr r0, _080A0778
+_080A076E:
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ b _080A0786
+ .align 2, 0
+_080A0778: .4byte gOtherText_EggHotSprings
+_080A077C:
+ ldr r0, _080A0794
+ mov r1, r9
+ mov r2, r8
+ bl MenuPrint
+_080A0786:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0794: .4byte gOtherText_EggDayCare
+ thumb_func_end sub_80A0708
+
+ thumb_func_start sub_80A0798
+sub_80A0798: @ 80A0798
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r5, _080A0838
+ bl GetNature
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A083C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r5, r0, 0
+ cmp r4, 0x5
+ beq _080A07DA
+ cmp r4, 0x15
+ beq _080A07DA
+ ldr r1, _080A0840
+ bl StringCopy
+ adds r5, r0, 0
+_080A07DA:
+ ldr r1, _080A0844
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ adds r0, r7, 0
+ bl sub_80A0664
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0898
+ adds r0, r7, 0
+ movs r1, 0x23
+ bl GetMonData
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0
+ movs r1, 0x24
+ bl GetMonData
+ cmp r0, 0
+ bne _080A0850
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80A203C
+ adds r5, r0, 0
+ movs r0, 0xFE
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r4, _080A0848
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80FC02C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r5, r0, 0
+ ldr r1, _080A084C
+ bl StringCopy
+ b _080A0934
+ .align 2, 0
+_080A0838: .4byte gStringVar4
+_080A083C: .4byte gNatureNames
+_080A0840: .4byte gOtherText_Terminator4
+_080A0844: .4byte gOtherText_Nature
+_080A0848: .4byte gStringVar1
+_080A084C: .4byte gOtherText_Egg2
+_080A0850:
+ cmp r6, 0x57
+ bhi _080A08E8
+ adds r0, r7, 0
+ movs r1, 0x24
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_80A203C
+ adds r5, r0, 0
+ movs r0, 0xFE
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r4, _080A0890
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80FC02C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r5, r0, 0
+ ldr r1, _080A0894
+ bl StringCopy
+ b _080A0934
+ .align 2, 0
+_080A0890: .4byte gStringVar1
+_080A0894: .4byte gOtherText_Met
+_080A0898:
+ adds r0, r7, 0
+ movs r1, 0x25
+ bl GetMonData
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080A08E8
+ adds r0, r7, 0
+ movs r1, 0x23
+ bl GetMonData
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080A08E4
+ adds r0, r7, 0
+ movs r1, 0x24
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_80A203C
+ adds r5, r0, 0
+ movs r0, 0xFE
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r1, _080A08E0
+ b _080A08F0
+ .align 2, 0
+_080A08E0: .4byte gOtherText_FatefulEncounter
+_080A08E4:
+ cmp r6, 0x57
+ bls _080A08FC
+_080A08E8:
+ movs r0, 0xFE
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r1, _080A08F8
+_080A08F0:
+ adds r0, r5, 0
+ bl StringCopy
+ b _080A0934
+ .align 2, 0
+_080A08F8: .4byte gOtherText_ObtainedInTrade
+_080A08FC:
+ adds r0, r7, 0
+ movs r1, 0x24
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_80A203C
+ adds r5, r0, 0
+ movs r0, 0xFE
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r4, _080A094C
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80FC02C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r5, r0, 0
+ ldr r1, _080A0950
+ bl StringCopy
+_080A0934:
+ ldr r0, _080A0954
+ mov r1, r9
+ mov r2, r8
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A094C: .4byte gStringVar1
+_080A0950: .4byte gOtherText_Met2
+_080A0954: .4byte gStringVar4
+ thumb_func_end sub_80A0798
+
+ thumb_func_start sub_80A0958
+sub_80A0958: @ 80A0958
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r2, _080A0A24
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x7
+ strb r0, [r2, 0x2]
+ movs r0, 0xBA
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ movs r0, 0xB
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080A0A28
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r6, [r2]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r2, 0x1]
+ movs r0, 0x50
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ mov r9, r0
+ strb r0, [r2, 0x3]
+ ldr r5, _080A0A24
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl MenuPrint
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r0, 0x34
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ strb r6, [r2]
+ mov r0, r10
+ strb r0, [r2, 0x1]
+ movs r0, 0x20
+ strb r0, [r2, 0x2]
+ mov r0, r9
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x10
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x7
+ movs r2, 0x10
+ bl sub_80A0A2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A24: .4byte gStringVar1
+_080A0A28: .4byte gSpeciesNames
+ thumb_func_end sub_80A0958
+
+ thumb_func_start sub_80A0A2C
+sub_80A0A2C: @ 80A0A2C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x20
+ beq _080A0A84
+ cmp r0, 0x1D
+ beq _080A0A84
+ adds r0, r6, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A0A6E
+ cmp r0, 0xFE
+ beq _080A0A78
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl MenuZeroFillWindowRect
+ b _080A0A84
+_080A0A6E:
+ ldr r0, _080A0A74
+ movs r1, 0xB
+ b _080A0A7C
+ .align 2, 0
+_080A0A74: .4byte gOtherText_MaleSymbol2
+_080A0A78:
+ ldr r0, _080A0A8C
+ movs r1, 0xC
+_080A0A7C:
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80A1FF8
+_080A0A84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
+ thumb_func_end sub_80A0A2C
+
+ thumb_func_start sub_80A0A90
+sub_80A0A90: @ 80A0A90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x33
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x34
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x35
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x36
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x43
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x44
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x45
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x47
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x48
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x49
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4A
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A0A90
+
+ thumb_func_start sub_80A0B88
+sub_80A0B88: @ 80A0B88
+ push {r4,r5,lr}
+ bl sub_80A0A90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A0BA8
+ ldr r0, _080A0BA0
+ ldr r1, _080A0BA4
+ bl StringCopy
+ b _080A0BD8
+ .align 2, 0
+_080A0BA0: .4byte gStringVar1
+_080A0BA4: .4byte gOtherText_None
+_080A0BA8:
+ ldr r4, _080A0BE8
+ ldr r1, _080A0BEC
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r0, 24
+ subs r4, 0x2
+ adds r0, r4
+ movs r1, 0xFC
+ strb r1, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x6
+ strb r1, [r0, 0x2]
+ adds r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A0BD8:
+ ldr r0, _080A0BF0
+ movs r1, 0x15
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0BE8: .4byte gStringVar1
+_080A0BEC: .4byte gOtherText_Ribbons00
+_080A0BF0: .4byte gUnknown_083C15AE
+ thumb_func_end sub_80A0B88
+
+ thumb_func_start sub_80A0BF4
+sub_80A0BF4: @ 80A0BF4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r5, 0xAF
+ bne _080A0C48
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ ldr r0, _080A0C40
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ beq _080A0C2E
+ cmp r0, 0x4
+ beq _080A0C2E
+ cmp r0, 0x5
+ bne _080A0C48
+_080A0C2E:
+ ldr r4, _080A0C44
+ adds r0, r5, 0
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C40: .4byte 0x02018000
+_080A0C44: .4byte gStringVar1
+_080A0C48:
+ cmp r5, 0
+ bne _080A0C60
+ ldr r0, _080A0C58
+ ldr r1, _080A0C5C
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C58: .4byte gStringVar1
+_080A0C5C: .4byte gOtherText_None
+_080A0C60:
+ ldr r1, _080A0C78
+ adds r0, r5, 0
+ bl itemid_copy_name
+_080A0C68:
+ ldr r0, _080A0C7C
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0C78: .4byte gStringVar1
+_080A0C7C: .4byte gUnknown_083C15B4
+ thumb_func_end sub_80A0BF4
+
+ thumb_func_start sub_80A0C80
+sub_80A0C80: @ 80A0C80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r0, 0
+ mov r9, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x63
+ bhi _080A0D14
+ ldr r3, _080A0D4C
+ adds r1, r5, 0x1
+ lsls r1, 2
+ ldr r2, _080A0D50
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ mov r0, r8
+ subs r0, r1, r0
+ mov r9, r0
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r3
+ ldr r0, [r0]
+ subs r1, r0
+ mov r2, r8
+ subs r4, r2, r0
+ lsls r0, r4, 6
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _080A0D14
+ cmp r4, 0
+ beq _080A0D14
+ movs r6, 0x1
+ movs r7, 0
+_080A0D14:
+ ldr r4, _080A0D54
+ adds r0, r4, 0
+ mov r1, r9
+ bl ConvertIntToDecimalString
+ mov r1, r10
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp]
+ bl sub_8072B4C
+ ldr r0, _080A0D58
+ mov r9, r0
+ movs r2, 0
+ mov r12, r2
+ ldr r0, _080A0D5C
+ mov r8, r0
+_080A0D3A:
+ cmp r7, 0
+ bgt _080A0D46
+ cmp r7, 0
+ bne _080A0D64
+ cmp r6, 0x7
+ bls _080A0D64
+_080A0D46:
+ ldr r1, _080A0D60
+ b _080A0D96
+ .align 2, 0
+_080A0D4C: .4byte gExperienceTables
+_080A0D50: .4byte gBaseStats
+_080A0D54: .4byte gStringVar1
+_080A0D58: .4byte 0x06004caa
+_080A0D5C: .4byte 0x00002062
+_080A0D60: .4byte 0x0000206a
+_080A0D64:
+ adds r5, r7, 0
+ adds r4, r6, 0
+ cmp r7, 0
+ bge _080A0D74
+ movs r4, 0x7
+ movs r5, 0
+ adds r4, r6
+ adcs r5, r7
+_080A0D74:
+ lsls r3, r5, 29
+ lsrs r2, r4, 3
+ adds r0, r3, 0
+ orrs r0, r2
+ asrs r1, r5, 3
+ lsrs r5, r0, 29
+ lsls r4, r1, 3
+ adds r3, r5, 0
+ orrs r3, r4
+ lsls r2, r0, 3
+ adds r1, r7, 0
+ adds r0, r6, 0
+ subs r0, r2
+ sbcs r1, r3
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080A0D96:
+ mov r2, r12
+ lsls r0, r2, 1
+ add r0, r9
+ strh r1, [r0]
+ movs r0, 0x8
+ negs r0, r0
+ asrs r1, r0, 31
+ adds r6, r0
+ adcs r7, r1
+ cmp r7, 0
+ bge _080A0DB0
+ movs r6, 0
+ movs r7, 0
+_080A0DB0:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x7
+ bls _080A0D3A
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0C80
+
+ thumb_func_start sub_80A0DD0
+sub_80A0DD0: @ 80A0DD0
+ push {r4,r5,lr}
+ ldr r2, _080A0E3C
+ movs r5, 0xFC
+ strb r5, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E40
+ ldr r4, _080A0E44
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r5, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E3C
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r4, 0x7F
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A0E48
+ movs r0, 0x5
+ movs r1, 0x17
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x6
+ movs r1, 0x18
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ b _080A0E54
+ .align 2, 0
+_080A0E3C: .4byte gStringVar1
+_080A0E40: .4byte gUnknown_083C1068
+_080A0E44: .4byte 0x02018000
+_080A0E48:
+ movs r0, 0x17
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl MenuZeroFillWindowRect
+_080A0E54:
+ ldr r2, _080A0E98
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E9C
+ ldr r0, _080A0EA0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x28
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E98
+ movs r1, 0x19
+ movs r2, 0
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0E98: .4byte gStringVar1
+_080A0E9C: .4byte gUnknown_083C1068
+_080A0EA0: .4byte 0x02018000
+ thumb_func_end sub_80A0DD0
+
+ thumb_func_start sub_80A0EA4
+sub_80A0EA4: @ 80A0EA4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A0ECC
+ ldr r6, _080A0ED0
+ movs r1, 0
+ bl sub_8040110
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0ED4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8040178
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A0ED4
+ movs r0, 0x2C
+ b _080A0ED8
+ .align 2, 0
+_080A0ECC: .4byte 0x0600e444
+_080A0ED0: .4byte 0x0600ec44
+_080A0ED4:
+ ldr r1, _080A0EE4
+ adds r0, r1, 0
+_080A0ED8:
+ strh r0, [r5]
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0EE4: .4byte 0x0000081a
+ thumb_func_end sub_80A0EA4
+
+ thumb_func_start sub_80A0EE8
+sub_80A0EE8: @ 80A0EE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r3, 0
+ ldr r6, _080A0F24
+ adds r5, r6, 0
+ ldr r1, _080A0F28
+ mov r8, r1
+ ldr r2, _080A0F2C
+ mov r10, r2
+_080A0F02:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080A0F30
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r4, r8
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r7, sp
+ adds r0, r7, r1
+ strh r4, [r0]
+ b _080A0FE2
+ .align 2, 0
+_080A0F24: .4byte 0x02018000
+_080A0F28: .4byte 0x00004040
+_080A0F2C: .4byte 0x0000404a
+_080A0F30:
+ movs r0, 0x76
+ adds r0, r6
+ mov r12, r0
+ ldrb r1, [r0]
+ cmp r3, r1
+ bls _080A0F52
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r2, r10
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r4, sp
+ adds r0, r4, r1
+ strh r2, [r0]
+ b _080A0FE2
+_080A0F52:
+ ldrb r4, [r5, 0xB]
+ cmp r3, r4
+ bcs _080A0F6E
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0F88
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0F6E:
+ cmp r3, r4
+ bne _080A0FA6
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0F90
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0F8C
+ b _080A0F9A
+ .align 2, 0
+_080A0F88: .4byte 0x00004046
+_080A0F8C: .4byte 0x00004041
+_080A0F90:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0FC4
+_080A0F9A:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FA6:
+ ldrb r0, [r5, 0xB]
+ cmp r3, r0
+ bls _080A0FE2
+ adds r0, r6, 0
+ adds r0, 0x76
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0FCC
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0FC8
+ b _080A0FD6
+ .align 2, 0
+_080A0FC4: .4byte 0x0000404b
+_080A0FC8: .4byte 0x00004043
+_080A0FCC:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A1034
+_080A0FD6:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FE2:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A0F02
+ ldr r1, _080A1038
+ ldr r0, _080A103C
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r3, 0
+_080A0FFE:
+ lsls r0, r3, 1
+ mov r4, sp
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _080A0FFE
+ ldr r1, _080A1044
+ ldr r0, _080A103C
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1034: .4byte 0x00004048
+_080A1038: .4byte 0x0600e016
+_080A103C: .4byte 0x040000d4
+_080A1040: .4byte 0x80000008
+_080A1044: .4byte 0x0600e056
+ thumb_func_end sub_80A0EE8
+
+ thumb_func_start sub_80A1048
+sub_80A1048: @ 80A1048
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080A10A0
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A106E
+ b _080A1224
+_080A106E:
+ movs r5, 0x2
+ ldrsh r2, [r6, r5]
+ ldr r0, _080A10A4
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A10A8
+ adds r4, r0, r1
+ ldr r5, _080A10AC
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 5
+ adds r7, r1, 0
+ cmp r2, r0
+ bhi _080A10B4
+ ldr r0, _080A10B0
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, r2, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A10E0
+ .align 2, 0
+_080A10A0: .4byte gUnknown_03004B28
+_080A10A4: .4byte 0x0000024a
+_080A10A8: .4byte gUnknown_08E73508
+_080A10AC: .4byte 0x0600e480
+_080A10B0: .4byte 0x040000d4
+_080A10B4:
+ ldr r3, _080A110C
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _080A1110
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r5, r0
+ ldr r1, _080A1114
+ adds r2, r1
+ cmp r2, r0
+ bhi _080A10B4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r2, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_080A10E0:
+ movs r5, 0x2
+ ldrsh r0, [r6, r5]
+ ldr r1, _080A1118
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A111C
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A1120
+ ldr r0, _080A110C
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A114C
+ .align 2, 0
+_080A110C: .4byte 0x040000d4
+_080A1110: .4byte 0x80000800
+_080A1114: .4byte 0xfffff000
+_080A1118: .4byte 0x0000026a
+_080A111C: .4byte 0x0600e4c0
+_080A1120:
+ ldr r2, _080A1178
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A117C
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A1180
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A1120
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A114C:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A1184
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A1188
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A118C
+ ldr r0, _080A1178
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A11B8
+ .align 2, 0
+_080A1178: .4byte 0x040000d4
+_080A117C: .4byte 0x80000800
+_080A1180: .4byte 0xfffff000
+_080A1184: .4byte 0x0000024a
+_080A1188: .4byte 0x0600ec80
+_080A118C:
+ ldr r2, _080A11E4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A11E8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A11EC
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A118C
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A11B8:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A11F0
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A11F4
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A11F8
+ ldr r0, _080A11E4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A1224
+ .align 2, 0
+_080A11E4: .4byte 0x040000d4
+_080A11E8: .4byte 0x80000800
+_080A11EC: .4byte 0xfffff000
+_080A11F0: .4byte 0x0000026a
+_080A11F4: .4byte 0x0600ecc0
+_080A11F8:
+ ldr r2, _080A12B0
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A12B4
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A12B8
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A11F8
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A1224:
+ ldrb r4, [r6, 0x2]
+ ldrh r7, [r6, 0x2]
+ ldrh r0, [r6]
+ mov r12, r0
+ cmp r4, 0x9
+ bhi _080A1272
+ adds r3, r6, 0x4
+ ldr r2, _080A12B0
+ ldr r5, _080A12BC
+_080A1236:
+ lsls r1, r4, 1
+ ldr r6, _080A12C0
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r6, 0x40
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r6, _080A12C4
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080A12C8
+ adds r1, r0
+ str r3, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1236
+_080A1272:
+ mov r1, r12
+ lsls r0, r1, 16
+ cmp r0, 0
+ beq _080A1286
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ ble _080A1286
+ cmp r0, 0x9
+ ble _080A12A4
+_080A1286:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _080A129A
+ ldr r0, _080A12CC
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A129A:
+ bl sub_80A1D18
+ mov r0, r8
+ bl DestroyTask
+_080A12A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A12B0: .4byte 0x040000d4
+_080A12B4: .4byte 0x80000800
+_080A12B8: .4byte 0xfffff000
+_080A12BC: .4byte 0x80000001
+_080A12C0: .4byte 0x0600e480
+_080A12C4: .4byte 0x0600ec80
+_080A12C8: .4byte 0x0600ecc0
+_080A12CC: .4byte gOtherText_Status
+ thumb_func_end sub_80A1048
+
+ thumb_func_start sub_80A12D0
+sub_80A12D0: @ 80A12D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1D
+ bl sub_80A18E4
+ ldr r0, _080A1310
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A1314
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ cmp r4, 0
+ bge _080A1318
+ movs r0, 0xA
+ b _080A131A
+ .align 2, 0
+_080A1310: .4byte sub_80A1048
+_080A1314: .4byte gTasks
+_080A1318:
+ movs r0, 0
+_080A131A:
+ strh r0, [r1, 0xA]
+ ldr r0, _080A1330
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1330: .4byte gTasks
+ thumb_func_end sub_80A12D0
+
+ thumb_func_start sub_80A1334
+sub_80A1334: @ 80A1334
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A13E4
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A136A
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A136A
+ ldrh r0, [r7, 0x2]
+_080A136A:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A13A6
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A13E8
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A13EC
+ mov r8, r0
+_080A1386:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A13F0
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1386
+_080A13A6:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A13F4
+ ldr r4, _080A13E8
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A13EC
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A13C2:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A13C2
+ b _080A1400
+ .align 2, 0
+_080A13E4: .4byte gUnknown_03004B28
+_080A13E8: .4byte 0x06005b40
+_080A13EC: .4byte 0x001fffff
+_080A13F0: .4byte gUnknown_08E73E88
+_080A13F4:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1400:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A1410
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A144A
+_080A1410:
+ ldr r4, _080A1480
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1444
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1444
+ ldr r0, _080A1484
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1444:
+ mov r0, r10
+ bl DestroyTask
+_080A144A:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A1470
+ ldr r4, _080A1480
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1460
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A1460:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A1470:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1480: .4byte 0x02018000
+_080A1484: .4byte gOtherText_Status
+ thumb_func_end sub_80A1334
+
+ thumb_func_start sub_80A1488
+sub_80A1488: @ 80A1488
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A14DC
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A14A6
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A14A6:
+ ldr r5, _080A14E0
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A14C2
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A14C2:
+ ldr r1, _080A14E4
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A14E8
+ movs r0, 0xA
+ b _080A14EA
+ .align 2, 0
+_080A14DC: .4byte 0x02018000
+_080A14E0: .4byte sub_80A1334
+_080A14E4: .4byte gTasks
+_080A14E8:
+ movs r0, 0
+_080A14EA:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1488
+
+ thumb_func_start sub_80A1500
+sub_80A1500: @ 80A1500
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A15B0
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A1536
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A1536
+ ldrh r0, [r7, 0x2]
+_080A1536:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A1572
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A15B4
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A15B8
+ mov r8, r0
+_080A1552:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A15BC
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1552
+_080A1572:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A15C0
+ ldr r4, _080A15B4
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A15B8
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A158E:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A158E
+ b _080A15CC
+ .align 2, 0
+_080A15B0: .4byte gUnknown_03004B28
+_080A15B4: .4byte 0x06006b40
+_080A15B8: .4byte 0x001fffff
+_080A15BC: .4byte gUnknown_08E74688
+_080A15C0:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A15CC:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A15DC
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A1616
+_080A15DC:
+ ldr r4, _080A164C
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A1610
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1610
+ ldr r0, _080A1650
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1610:
+ mov r0, r10
+ bl DestroyTask
+_080A1616:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A163C
+ ldr r4, _080A164C
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A162C
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A162C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A163C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A164C: .4byte 0x02018000
+_080A1650: .4byte gOtherText_Status
+ thumb_func_end sub_80A1500
+
+ thumb_func_start sub_80A1654
+sub_80A1654: @ 80A1654
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A16A8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x3
+ bne _080A1672
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1672:
+ ldr r5, _080A16AC
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A168E
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A168E:
+ ldr r1, _080A16B0
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A16B4
+ movs r0, 0xA
+ b _080A16B6
+ .align 2, 0
+_080A16A8: .4byte 0x02018000
+_080A16AC: .4byte sub_80A1500
+_080A16B0: .4byte gTasks
+_080A16B4:
+ movs r0, 0
+_080A16B6:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1654
+
+ thumb_func_start sub_80A16CC
+sub_80A16CC: @ 80A16CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080A1724
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A172C
+ movs r5, 0
+ ldr r7, _080A1728
+ movs r0, 0x80
+ lsls r0, 5
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A16F4:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A16F4
+ b _080A1768
+ .align 2, 0
+_080A1724: .4byte 0x06006ad4
+_080A1728: .4byte gUnknown_08E94510
+_080A172C:
+ movs r5, 0
+ ldr r6, _080A17B0
+ movs r7, 0x80
+ lsls r7, 5
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A173C:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A173C
+_080A1768:
+ ldr r0, _080A17B4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A17BC
+ movs r5, 0
+ ldr r7, _080A17B8
+ movs r0, 0xC0
+ lsls r0, 6
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A1782:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A1782
+ b _080A17F8
+ .align 2, 0
+_080A17B0: .4byte gUnknown_08E94550
+_080A17B4: .4byte 0x06005ad4
+_080A17B8: .4byte gUnknown_08E94510
+_080A17BC:
+ movs r5, 0
+ ldr r6, _080A1804
+ movs r7, 0xC0
+ lsls r7, 6
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A17CC:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A17CC
+_080A17F8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1804: .4byte gUnknown_08E94550
+ thumb_func_end sub_80A16CC
+
+ thumb_func_start sub_80A1808
+sub_80A1808: @ 80A1808
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r1, 0x41
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1860
+ movs r1, 0x28
+ movs r2, 0x40
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r4, 2
+ ldr r5, _080A1864
+ adds r7, r4, r5
+ adds r0, r7, 0
+ bl FreeSpriteOamMatrix
+ strh r6, [r7, 0x2E]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080A1868
+ str r0, [r4]
+ adds r0, r6, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A186C
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _080A187A
+ .align 2, 0
+_080A1860: .4byte gUnknown_02024E8C
+_080A1864: .4byte gSprites
+_080A1868: .4byte sub_80A1888
+_080A186C:
+ adds r2, r7, 0
+ adds r2, 0x3F
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080A187A:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1808
+
+ thumb_func_start sub_80A1888
+sub_80A1888: @ 80A1888
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A18B8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A18B0
+ ldr r0, _080A18BC
+ str r0, [r4, 0x1C]
+ ldr r0, _080A18C0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080A18B0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0
+ bl PlayCry1
+_080A18B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18B8: .4byte gPaletteFade
+_080A18BC: .4byte SpriteCallbackDummy
+_080A18C0: .4byte 0x02018010
+ thumb_func_end sub_80A1888
+
+ thumb_func_start sub_80A18C4
+sub_80A18C4: @ 80A18C4
+ push {lr}
+ movs r1, 0
+ ldr r3, _080A18E0
+ movs r2, 0xFF
+_080A18CC:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bls _080A18CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18E0: .4byte 0x0201a000
+ thumb_func_end sub_80A18C4
+
+ thumb_func_start sub_80A18E4
+sub_80A18E4: @ 80A18E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A1910
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A1908
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1914
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080A1908:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1910: .4byte 0x0201a000
+_080A1914: .4byte gSprites
+ thumb_func_end sub_80A18E4
+
+ thumb_func_start sub_80A1918
+sub_80A1918: @ 80A1918
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080A1948
+ ldr r2, _080A194C
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080A1948: .4byte gSprites
+_080A194C: .4byte 0x0201a000
+ thumb_func_end sub_80A1918
+
+ thumb_func_start sub_80A1950
+sub_80A1950: @ 80A1950
+ push {r4,r5,lr}
+ movs r5, 0
+_080A1954:
+ ldr r0, _080A1984
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A196C
+ ldr r0, _080A1988
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl CreateSprite
+ strb r0, [r4]
+_080A196C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080A1954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1984: .4byte 0x0201a000
+_080A1988: .4byte gSpriteTemplate_83C11C0
+ thumb_func_end sub_80A1950
+
+ thumb_func_start sub_80A198C
+sub_80A198C: @ 80A198C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r10, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080A1A24
+ mov r8, r1
+ add r8, r10
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1A28
+ mov r9, r1
+ add r0, r9
+ adds r1, r4, 0
+ bl StartSpriteAnim
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _080A1A2C
+ adds r4, r0
+ ldrb r2, [r4]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r5, 0x10
+ strh r5, [r0, 0x20]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r6, 0x8
+ strh r6, [r0, 0x22]
+ mov r0, r10
+ movs r1, 0
+ bl sub_80A1918
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1A24: .4byte 0x0201a000
+_080A1A28: .4byte gSprites
+_080A1A2C: .4byte gUnknown_083C11D8
+ thumb_func_end sub_80A198C
+
+ thumb_func_start sub_80A1A30
+sub_80A1A30: @ 80A1A30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080A1A98
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bls _080A1B0A
+ cmp r4, 0x9
+ bne _080A1A52
+ movs r3, 0x1
+ mov r9, r3
+_080A1A52:
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 6
+ adds r0, r1
+ mov r8, r0
+ ldr r6, _080A1A9C
+ mov r10, r5
+_080A1A60:
+ lsls r1, r5, 20
+ movs r3, 0xB0
+ lsls r3, 15
+ adds r1, r3
+ asrs r1, 16
+ ldr r0, _080A1AA0
+ movs r2, 0x28
+ mov r3, r9
+ bl CreateSprite
+ adds r1, r4, r5
+ mov r3, r8
+ adds r2, r1, r3
+ strb r0, [r2]
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _080A1AA4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080A1AD0
+ .align 2, 0
+_080A1A98: .4byte 0x02018000
+_080A1A9C: .4byte gSprites
+_080A1AA0: .4byte gSpriteTemplate_83C1280
+_080A1AA4:
+ cmp r5, 0x9
+ bne _080A1AC0
+ adds r0, r4, 0
+ adds r0, 0x9
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ bl StartSpriteAnim
+ b _080A1AD0
+_080A1AC0:
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x6
+ bl StartSpriteAnim
+_080A1AD0:
+ mov r0, r8
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1B18
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r10
+ strh r1, [r0, 0x30]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _080A1A60
+_080A1B0A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1B18: .4byte sub_80A1BC0
+ thumb_func_end sub_80A1A30
+
+ thumb_func_start sub_80A1B1C
+sub_80A1B1C: @ 80A1B1C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080A1B24:
+ adds r0, r5, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A18E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1B24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1B1C
+
+ thumb_func_start sub_80A1B40
+sub_80A1B40: @ 80A1B40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 24
+ ldr r0, _080A1BB4
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, _080A1BB8
+ adds r0, r2
+ lsrs r7, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r4, 0
+ adds r0, r7, 0x6
+ lsls r0, 24
+ mov r8, r0
+_080A1B74:
+ ldr r6, _080A1BBC
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A1BB8
+ adds r0, r5
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A1B74
+ ldrb r1, [r6, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r7, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1BB4: .4byte 0x0201a009
+_080A1BB8: .4byte gSprites
+_080A1BBC: .4byte 0x0201a00a
+ thumb_func_end sub_80A1B40
+
+ thumb_func_start sub_80A1BC0
+sub_80A1BC0: @ 80A1BC0
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080A1BF8
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ cmp r0, 0x18
+ ble _080A1BEC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _080A1C06
+_080A1BEC:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ b _080A1C04
+_080A1BF8:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ subs r0, 0x5
+_080A1C04:
+ ands r0, r1
+_080A1C06:
+ strb r0, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x9
+ bne _080A1C1C
+ ldr r0, _080A1C18
+ adds r0, 0x79
+ b _080A1C20
+ .align 2, 0
+_080A1C18: .4byte 0x02018000
+_080A1C1C:
+ ldr r0, _080A1C2C
+ adds r0, 0x7A
+_080A1C20:
+ ldrb r0, [r0]
+ lsls r0, 4
+ strh r0, [r2, 0x26]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C2C: .4byte 0x02018000
+ thumb_func_end sub_80A1BC0
+
+ thumb_func_start sub_80A1C30
+sub_80A1C30: @ 80A1C30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 25
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ adds r0, r3, 0
+ adds r0, 0xA
+ cmp r3, r0
+ bge _080A1C82
+ ldr r5, _080A1C88
+ movs r7, 0x5
+ negs r7, r7
+ ldr r6, _080A1C8C
+_080A1C50:
+ adds r2, r3, r6
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0xA
+ cmp r3, r0
+ blt _080A1C50
+_080A1C82:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C88: .4byte gSprites
+_080A1C8C: .4byte 0x0201a009
+ thumb_func_end sub_80A1C30
+
+ thumb_func_start pokemon_ailments_get_primary
+pokemon_ailments_get_primary: @ 80A1C90
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CA0
+ movs r0, 0x1
+ b _080A1CD2
+_080A1CA0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CAC
+ movs r0, 0x2
+ b _080A1CD2
+_080A1CAC:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CB8
+ movs r0, 0x3
+ b _080A1CD2
+_080A1CB8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CC4
+ movs r0, 0x4
+ b _080A1CD2
+_080A1CC4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080A1CD0
+ movs r0, 0
+ b _080A1CD2
+_080A1CD0:
+ movs r0, 0x5
+_080A1CD2:
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_ailments_get_primary
+
+ thumb_func_start sub_80A1CD8
+sub_80A1CD8: @ 80A1CD8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080A1CEA
+ movs r0, 0x7
+ b _080A1D12
+_080A1CEA:
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A1D12
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8040110
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1D10
+ movs r0, 0
+ b _080A1D12
+_080A1D10:
+ movs r0, 0x6
+_080A1D12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1CD8
+
+ thumb_func_start sub_80A1D18
+sub_80A1D18: @ 80A1D18
+ push {r4,r5,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ mov r0, sp
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A1D58
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A1D50
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A1D60
+ ldr r0, _080A1D54
+ movs r1, 0x40
+ movs r2, 0x98
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4]
+ b _080A1D60
+ .align 2, 0
+_080A1D50: .4byte 0x0201a01d
+_080A1D54: .4byte gSpriteTemplate_83C1304
+_080A1D58:
+ movs r0, 0x1D
+ bl sub_80A18E4
+ b _080A1D74
+_080A1D60:
+ ldr r0, _080A1D7C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1D80
+ adds r0, r1
+ adds r1, r5, 0
+ bl StartSpriteAnim
+_080A1D74:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1D7C: .4byte 0x0201a01d
+_080A1D80: .4byte gSprites
+ thumb_func_end sub_80A1D18
+
+ thumb_func_start sub_80A1D84
+sub_80A1D84: @ 80A1D84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080A1DC0
+ ldr r2, _080A1DC4
+ adds r0, r1, 0
+ bl sub_80F7920
+ adds r4, r0, 0
+ ldr r6, _080A1DC8
+ str r4, [r6]
+ cmp r4, 0
+ beq _080A1DBA
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ movs r0, 0x3C
+ strh r0, [r1, 0x20]
+ movs r0, 0x1A
+ strh r0, [r1, 0x22]
+_080A1DBA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DC0: .4byte 0x00007533
+_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
+_080A1DC8: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1D84
+
+ thumb_func_start sub_80A1DCC
+sub_80A1DCC: @ 80A1DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A1DE4
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ bl sub_80A1D84
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DE4: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1DCC
+
+ thumb_func_start sub_80A1DE8
+sub_80A1DE8: @ 80A1DE8
+ push {r4,lr}
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A1E48
+ adds r0, r1
+ movs r1, 0x6
+ movs r2, 0x88
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, _080A1E4C
+ strb r0, [r2, 0xD]
+ ldr r3, _080A1E50
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1E54
+ str r1, [r0]
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1E48: .4byte gSpriteTemplate_820AAB4
+_080A1E4C: .4byte 0x02018000
+_080A1E50: .4byte gSprites
+_080A1E54: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A1DE8
+
+ thumb_func_start sub_80A1E58
+sub_80A1E58: @ 80A1E58
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xFF
+ beq _080A1E92
+ ldr r3, _080A1E6C
+ ldrb r0, [r3]
+ adds r4, r2, 0x5
+ b _080A1E74
+ .align 2, 0
+_080A1E6C: .4byte gUnknown_083C15BC
+_080A1E70:
+ adds r3, 0x4
+ ldrb r0, [r3]
+_080A1E74:
+ cmp r0, 0xFF
+ beq _080A1E7C
+ cmp r0, r1
+ bne _080A1E70
+_080A1E7C:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x3]
+ strb r0, [r2, 0x4]
+ adds r2, r4, 0
+_080A1E92:
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E58
+
+ thumb_func_start sub_80A1E9C
+sub_80A1E9C: @ 80A1E9C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r1, sp
+ adds r1, 0x1
+ mov r2, sp
+ adds r2, 0x2
+ mov r0, sp
+ bl sub_8072CD4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80A1E58
+ adds r6, r0, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r6, r0, 0
+ cmp r4, 0xFF
+ beq _080A1EEC
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x4
+ strb r0, [r6, 0x1]
+ mov r0, sp
+ ldrb r0, [r0]
+ strb r0, [r6, 0x2]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strb r0, [r6, 0x3]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ strb r0, [r6, 0x4]
+ movs r0, 0xFF
+ strb r0, [r6, 0x5]
+ adds r6, 0x5
+_080A1EEC:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E9C
+
+ thumb_func_start sub_80A1EF8
+sub_80A1EF8: @ 80A1EF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1F44
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ ldr r3, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80729D8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F44: .4byte gStringVar4
+ thumb_func_end sub_80A1EF8
+
+ thumb_func_start sub_80A1F48
+sub_80A1F48: @ 80A1F48
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _080A1F94
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ ldr r3, [sp]
+ bl sub_8072BD8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F94: .4byte gStringVar4
+ thumb_func_end sub_80A1F48
+
+ thumb_func_start sub_80A1F98
+sub_80A1F98: @ 80A1F98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1FF4
+ mov r9, r0
+ mov r1, r10
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ str r7, [sp]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80A1EF8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1FF4: .4byte gStringVar1
+ thumb_func_end sub_80A1F98
+
+ thumb_func_start sub_80A1FF8
+sub_80A1FF8: @ 80A1FF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080A2038
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2038: .4byte gStringVar4
+ thumb_func_end sub_80A1FF8
+
+ thumb_func_start sub_80A203C
+sub_80A203C: @ 80A203C
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ adds r4, 0x1
+ cmp r1, 0
+ bne _080A2052
+ movs r1, 0x5
+_080A2052:
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r4, r0, 0
+ ldr r1, _080A2074
+ bl StringCopy
+ adds r4, r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2074: .4byte gOtherText_Comma
+ thumb_func_end sub_80A203C
+
+ thumb_func_start BgFrame_FillTileMap
+BgFrame_FillTileMap: @ 80A2078
+ push {lr}
+ ldr r3, _080A209C
+ ldr r2, _080A20A0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _080A20A4
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A209C: .4byte gUnknown_03005CF0
+_080A20A0: .4byte gTasks
+_080A20A4: .4byte sub_80A20A8
+ thumb_func_end BgFrame_FillTileMap
+
+ thumb_func_start sub_80A20A8
+sub_80A20A8: @ 80A20A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A20C6
+ ldr r1, _080A20CC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A20D0
+ ldr r1, [r1]
+ str r1, [r0]
+_080A20C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A20CC: .4byte gTasks
+_080A20D0: .4byte gUnknown_03005CF0
+ thumb_func_end sub_80A20A8
+
+ thumb_func_start exec_movement
+exec_movement: @ 80A20D4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A20F6
+ movs r0, 0x1
+ b _080A211E
+_080A20F6:
+ ldr r0, _080A2128
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2108
+ movs r0, 0x32
+ bl sub_80A2198
+_080A2108:
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ ldrb r1, [r1]
+ adds r2, r4, 0
+ bl sub_80A21F4
+ lsls r0, 24
+ lsrs r0, 24
+_080A211E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2128: .4byte sub_80A244C
+ thumb_func_end exec_movement
+
+ thumb_func_start sub_80A212C
+sub_80A212C: @ 80A212C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A216E
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x10
+ beq _080A216E
+ adds r0, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ lsrs r0, 24
+ b _080A2170
+_080A216E:
+ movs r0, 0x1
+_080A2170:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A212C
+
+ thumb_func_start sub_80A2178
+sub_80A2178: @ 80A2178
+ push {r4,lr}
+ bl sub_80A21E0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080A2192
+ adds r0, r4, 0
+ bl sub_80A2408
+ adds r0, r4, 0
+ bl DestroyTask
+_080A2192:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2178
+
+ thumb_func_start sub_80A2198
+sub_80A2198: @ 80A2198
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080A21D4
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r3, r1, 3
+ ldr r5, _080A21D8
+ ldr r0, _080A21DC
+ adds r4, r0, 0
+_080A21B8:
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r5
+ ldrh r1, [r0]
+ orrs r1, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080A21B8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A21D4: .4byte sub_80A244C
+_080A21D8: .4byte gUnknown_03004B28
+_080A21DC: .4byte 0x0000ffff
+ thumb_func_end sub_80A2198
+
+ thumb_func_start sub_80A21E0
+sub_80A21E0: @ 80A21E0
+ push {lr}
+ ldr r0, _080A21F0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A21F0: .4byte sub_80A244C
+ thumb_func_end sub_80A21E0
+
+ thumb_func_start sub_80A21F4
+sub_80A21F4: @ 80A21F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2230
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2370
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2250
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ b _080A2246
+_080A2230:
+ adds r0, r7, 0
+ movs r1, 0xFF
+ bl sub_80A2260
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x10
+ beq _080A2250
+ adds r0, r7, 0
+ adds r1, r4, 0
+ mov r2, r8
+_080A2246:
+ mov r3, r9
+ bl sub_80A23C8
+ movs r0, 0
+ b _080A2252
+_080A2250:
+ movs r0, 0x1
+_080A2252:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A21F4
+
+ thumb_func_start sub_80A2260
+sub_80A2260: @ 80A2260
+ 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, _080A2284
+ adds r1, r0
+ adds r1, 0x2
+ movs r2, 0
+_080A2278:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080A2288
+ adds r0, r2, 0
+ b _080A2296
+ .align 2, 0
+_080A2284: .4byte gUnknown_03004B28
+_080A2288:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r2, 0xF
+ bls _080A2278
+ movs r0, 0x10
+_080A2296:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2260
+
+ thumb_func_start sub_80A229C
+sub_80A229C: @ 80A229C
+ 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, _080A22CC
+ adds r1, r0
+ adds r1, 0x2
+ str r1, [r2]
+ movs r0, 0
+ cmp r0, r3
+ bcs _080A22C8
+_080A22BA:
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, 0x1
+ cmp r0, r3
+ bcc _080A22BA
+ str r1, [r2]
+_080A22C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A22CC: .4byte gUnknown_03004B28
+ thumb_func_end sub_80A229C
+
+ thumb_func_start sub_80A22D0
+sub_80A22D0: @ 80A22D0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22D0
+
+ thumb_func_start sub_80A22F4
+sub_80A22F4: @ 80A22F4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, sp
+ bl sub_80A229C
+ ldr r0, [sp]
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A22F4
+
+ thumb_func_start sub_80A2318
+sub_80A2318: @ 80A2318
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r2, _080A2340
+ lsrs r1, 22
+ adds r1, r2
+ ldr r2, [r1]
+ mvns r2, r2
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, _080A2344
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0x8]
+ ands r2, r0
+ strh r2, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080A2340: .4byte gBitTable
+_080A2344: .4byte gTasks
+ thumb_func_end sub_80A2318
+
+ thumb_func_start sub_80A2348
+sub_80A2348: @ 80A2348
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2368
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A236C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080A2368: .4byte gTasks
+_080A236C: .4byte gBitTable
+ thumb_func_end sub_80A2348
+
+ thumb_func_start sub_80A2370
+sub_80A2370: @ 80A2370
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _080A2398
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldr r0, _080A239C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ ldrh r1, [r2, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _080A23A0
+ movs r0, 0
+ b _080A23A2
+ .align 2, 0
+_080A2398: .4byte gTasks
+_080A239C: .4byte gBitTable
+_080A23A0:
+ movs r0, 0x1
+_080A23A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2370
+
+ thumb_func_start npc_obj_offscreen_culling_and_flag_update
+npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
+ lsls r0, 24
+ ldr r2, _080A23B4
+ lsrs r0, 22
+ adds r0, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080A23B4: .4byte gUnknown_020384F8
+ thumb_func_end npc_obj_offscreen_culling_and_flag_update
+
+ thumb_func_start sub_80A23B8
+sub_80A23B8: @ 80A23B8
+ lsls r0, 24
+ ldr r1, _080A23C4
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080A23C4: .4byte gUnknown_020384F8
+ thumb_func_end sub_80A23B8
+
+ thumb_func_start sub_80A23C8
+sub_80A23C8: @ 80A23C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2318
+ adds r0, r4, 0
+ mov r1, r8
+ bl npc_obj_offscreen_culling_and_flag_update
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80A22D0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A23C8
+
+ thumb_func_start sub_80A2408
+sub_80A2408: @ 80A2408
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A2444
+ adds r1, r0
+ adds r4, r1, 0x2
+ movs r5, 0
+_080A241C:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A2432
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A2448
+ adds r0, r1
+ bl npc_sync_anim_pause_bits
+_080A2432:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x1
+ cmp r5, 0xF
+ bls _080A241C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2444: .4byte gUnknown_03004B28
+_080A2448: .4byte gMapObjects
+ thumb_func_end sub_80A2408
+
+ thumb_func_start sub_80A244C
+sub_80A244C: @ 80A244C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ mov r6, sp
+_080A2458:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl sub_80A22F4
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _080A247C
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80A23B8
+ adds r3, r0, 0
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80A2490
+_080A247C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080A2458
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A244C
+
+ thumb_func_start sub_80A2490
+sub_80A2490: @ 80A2490
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r3, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r8, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080A24E0
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24C8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24FA
+_080A24C8:
+ ldrb r1, [r5]
+ cmp r1, 0xFE
+ bne _080A24E4
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80A2348
+ adds r0, r4, 0
+ bl sub_80643A4
+ b _080A24FA
+ .align 2, 0
+_080A24E0: .4byte gMapObjects
+_080A24E4:
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A24FA
+ adds r5, 0x1
+ mov r0, r8
+ adds r1, r5, 0
+ bl npc_obj_offscreen_culling_and_flag_update
+_080A24FA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2490
+
+ thumb_func_start sub_80A2504
+sub_80A2504: @ 80A2504
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x52
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2534
+ ldr r1, _080A2524
+ ldr r0, _080A2528
+ str r0, [r1]
+ ldr r1, _080A252C
+ ldr r0, _080A2530
+ b _080A25A8
+ .align 2, 0
+_080A2524: .4byte gUnknown_0300485C
+_080A2528: .4byte sub_808AB90
+_080A252C: .4byte gUnknown_03005CE4
+_080A2530: .4byte sub_80A2634
+_080A2534:
+ ldr r4, _080A25B0
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ movs r7, 0
+ mov r8, r4
+_080A2542:
+ ldr r1, _080A25B4
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A2552:
+ ldr r1, _080A25B4
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A25C8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8056E14
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A259E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAsh
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A25C8
+_080A259E:
+ ldr r1, _080A25B8
+ ldr r0, _080A25BC
+ str r0, [r1]
+ ldr r1, _080A25C0
+ ldr r0, _080A25C4
+_080A25A8:
+ str r0, [r1]
+ movs r0, 0x1
+ b _080A25DE
+ .align 2, 0
+_080A25B0: .4byte gUnknown_0203923C
+_080A25B4: .4byte 0x0000ffff
+_080A25B8: .4byte gUnknown_0300485C
+_080A25BC: .4byte sub_808AB90
+_080A25C0: .4byte gUnknown_03005CE4
+_080A25C4: .4byte sub_80A25E8
+_080A25C8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A2552
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A2542
+ movs r0, 0
+_080A25DE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2504
+
+ thumb_func_start sub_80A25E8
+sub_80A25E8: @ 80A25E8
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectStart
+ ldr r0, _080A25FC
+ ldr r1, _080A2600
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25FC: .4byte gUnknown_0202FF84
+_080A2600: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A25E8
+
+ thumb_func_start sub_80A2604
+sub_80A2604: @ 80A2604
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A262C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2630
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A262C: .4byte gTasks
+_080A2630: .4byte sub_80A2684
+ thumb_func_end sub_80A2604
+
+ thumb_func_start sub_80A2634
+sub_80A2634: @ 80A2634
+ push {lr}
+ ldr r1, _080A2648
+ ldr r0, _080A264C
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080A2650
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2648: .4byte gUnknown_0202FF84
+_080A264C: .4byte gUnknown_03005CE0
+_080A2650: .4byte UseCutScript
+ thumb_func_end sub_80A2634
+
+ thumb_func_start sub_80A2654
+sub_80A2654: @ 80A2654
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A267C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2680
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A267C: .4byte gTasks
+_080A2680: .4byte sub_80A2B00
+ thumb_func_end sub_80A2654
+
+ thumb_func_start sub_80A2684
+sub_80A2684: @ 80A2684
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectActiveListRemove
+ movs r0, 0x3A
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2684
+
+ thumb_func_start sub_80A2698
+sub_80A2698: @ 80A2698
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ movs r0, 0x80
+ bl PlaySE
+ ldr r4, _080A2790
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ mov r8, r4
+_080A26B2:
+ ldr r1, _080A2794
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A26C2:
+ ldr r1, _080A2794
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80578F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A27A8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805BCC0
+_080A270E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A26C2
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A26B2
+ ldr r1, _080A2790
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r1, 0x2]
+ subs r1, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A28F4
+ bl DrawWholeMapView
+ movs r7, 0
+ ldr r4, _080A2798
+_080A2740:
+ ldr r0, _080A279C
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r2, 0x80
+ lsls r2, 12
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r0]
+ adds r2, 0x14
+ ldr r0, _080A27A0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A27A4
+ adds r1, r7, r1
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ lsls r1, r7, 5
+ strh r1, [r0, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _080A2740
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2790: .4byte gUnknown_0203923C
+_080A2794: .4byte 0x0000ffff
+_080A2798: .4byte gSprites
+_080A279C: .4byte gPlayerAvatar
+_080A27A0: .4byte gSpriteTemplate_CutGrass
+_080A27A4: .4byte 0x0201fff0
+ thumb_func_end sub_80A2698
+
+ thumb_func_start sub_80A27A8
+sub_80A27A8: @ 80A27A8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r0, 16
+ asrs r4, r0, 16
+ lsrs r7, r1, 16
+ asrs r5, r1, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080A27E0
+ cmp r1, r0
+ bgt _080A27F4
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080A286C
+ cmp r1, 0x25
+ beq _080A288E
+ cmp r1, 0x25
+ bgt _080A27E4
+ cmp r1, 0xD
+ beq _080A2834
+ cmp r1, 0x15
+ beq _080A2834
+ b _080A2898
+ .align 2, 0
+_080A27E0: .4byte 0x00000207
+_080A27E4:
+ movs r0, 0xE3
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A2844
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080A284A
+ b _080A2898
+_080A27F4:
+ ldr r0, _080A280C
+ cmp r1, r0
+ beq _080A287C
+ cmp r1, r0
+ bgt _080A2810
+ subs r0, 0xA
+ cmp r1, r0
+ beq _080A2834
+ adds r0, 0x2
+ cmp r1, r0
+ beq _080A287C
+ b _080A2898
+ .align 2, 0
+_080A280C: .4byte 0x00000212
+_080A2810:
+ ldr r0, _080A2824
+ cmp r1, r0
+ beq _080A285C
+ cmp r1, r0
+ bgt _080A2828
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A2854
+ b _080A2898
+ .align 2, 0
+_080A2824: .4byte 0x00000282
+_080A2828:
+ ldr r0, _080A2830
+ cmp r1, r0
+ beq _080A2864
+ b _080A2898
+ .align 2, 0
+_080A2830: .4byte 0x00000283
+_080A2834:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A2844:
+ movs r2, 0xE7
+ lsls r2, 1
+ b _080A286E
+_080A284A:
+ ldr r2, _080A2850
+ b _080A286E
+ .align 2, 0
+_080A2850: .4byte 0x000001cf
+_080A2854:
+ ldr r2, _080A2858
+ b _080A286E
+ .align 2, 0
+_080A2858: .4byte 0x00000279
+_080A285C:
+ ldr r2, _080A2860
+ b _080A286E
+ .align 2, 0
+_080A2860: .4byte 0x0000027a
+_080A2864:
+ ldr r2, _080A2868
+ b _080A286E
+ .align 2, 0
+_080A2868: .4byte 0x0000027b
+_080A286C:
+ ldr r2, _080A2878
+_080A286E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+ .align 2, 0
+_080A2878: .4byte 0x00000271
+_080A287C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x86
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A288E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl MapGridSetMetatileIdAt
+_080A2898:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A27A8
+
+ thumb_func_start sub_80A28A0
+sub_80A28A0: @ 80A28A0
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x1
+ bne _080A28BC
+ movs r0, 0x1
+ b _080A28EE
+_080A28BC:
+ ldr r0, _080A28C8
+ cmp r1, r0
+ bne _080A28CC
+ movs r0, 0x2
+ b _080A28EE
+ .align 2, 0
+_080A28C8: .4byte 0x00000279
+_080A28CC:
+ ldr r0, _080A28D8
+ cmp r1, r0
+ bne _080A28DC
+ movs r0, 0x3
+ b _080A28EE
+ .align 2, 0
+_080A28D8: .4byte 0x0000027a
+_080A28DC:
+ ldr r0, _080A28E8
+ cmp r2, r0
+ beq _080A28EC
+ movs r0, 0
+ b _080A28EE
+ .align 2, 0
+_080A28E8: .4byte 0x0000027b
+_080A28EC:
+ movs r0, 0x4
+_080A28EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28A0
+
+ thumb_func_start sub_80A28F4
+sub_80A28F4: @ 80A28F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ movs r2, 0xC0
+ lsls r2, 10
+ adds r0, r1, r2
+ lsrs r0, 16
+ mov r9, r0
+ movs r4, 0
+ asrs r7, r1, 16
+_080A2914:
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r4, 16
+ asrs r1, r4, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r5, r0, 16
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl MapGridGetMetatileIdAt
+ mov r8, r4
+ cmp r0, 0x15
+ bne _080A2996
+ adds r4, r7, 0x1
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80A28A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080A296A
+ cmp r0, 0x2
+ bgt _080A2952
+ cmp r0, 0x1
+ beq _080A295C
+ b _080A2996
+_080A2952:
+ cmp r0, 0x3
+ beq _080A297C
+ cmp r0, 0x4
+ beq _080A298C
+ b _080A2996
+_080A295C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x82
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+_080A296A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2978
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2978: .4byte 0x00000281
+_080A297C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2988
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2988: .4byte 0x00000282
+_080A298C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A30
+ bl MapGridSetMetatileIdAt
+_080A2996:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ cmp r0, 0x1
+ bne _080A2A10
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x82
+ lsls r1, 2
+ cmp r0, r1
+ bne _080A29C8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+_080A29C8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A34
+ cmp r0, r1
+ bne _080A29E0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A38
+ bl MapGridSetMetatileIdAt
+_080A29E0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A3C
+ cmp r0, r1
+ bne _080A29F8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A40
+ bl MapGridSetMetatileIdAt
+_080A29F8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A30
+ cmp r0, r1
+ bne _080A2A10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A44
+ bl MapGridSetMetatileIdAt
+_080A2A10:
+ movs r0, 0x80
+ lsls r0, 9
+ add r0, r8
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _080A2A20
+ b _080A2914
+_080A2A20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A30: .4byte 0x00000283
+_080A2A34: .4byte 0x00000281
+_080A2A38: .4byte 0x00000279
+_080A2A3C: .4byte 0x00000282
+_080A2A40: .4byte 0x0000027a
+_080A2A44: .4byte 0x0000027b
+ thumb_func_end sub_80A28F4
+
+ thumb_func_start sub_80A2A48
+sub_80A2A48: @ 80A2A48
+ movs r2, 0
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x34]
+ ldr r1, _080A2A58
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A2A58: .4byte objc_8097BBC
+ thumb_func_end sub_80A2A48
+
+ thumb_func_start objc_8097BBC
+objc_8097BBC: @ 80A2A5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x2E]
+ adds r1, 0x1
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 18
+ adds r1, r0
+ strh r1, [r4, 0x2E]
+ adds r2, 0x1
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1C
+ beq _080A2AA8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080A2AAC
+_080A2AA8:
+ ldr r0, _080A2AB4
+ str r0, [r4, 0x1C]
+_080A2AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AB4: .4byte sub_80A2AB8
+ thumb_func_end objc_8097BBC
+
+ thumb_func_start sub_80A2AB8
+sub_80A2AB8: @ 80A2AB8
+ push {r4-r6,lr}
+ movs r4, 0x1
+_080A2ABC:
+ ldr r6, _080A2AF8
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A2AFC
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A2ABC
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x3A
+ bl FieldEffectStop
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AF8: .4byte 0x0201fff0
+_080A2AFC: .4byte gSprites
+ thumb_func_end sub_80A2AB8
+
+ thumb_func_start sub_80A2B00
+sub_80A2B00: @ 80A2B00
+ push {lr}
+ movs r0, 0x80
+ bl PlaySE
+ movs r0, 0x2
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B00
+
+ thumb_func_start sub_80A2B18
+sub_80A2B18: @ 80A2B18
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A2B3C
+_080A2B1E:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ bl sub_80A2B40
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080A2B1E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
+ thumb_func_end sub_80A2B18
+
+ thumb_func_start sub_80A2B40
+sub_80A2B40: @ 80A2B40
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, _080A2B90
+ adds r4, r0, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+_080A2B4C:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2B4C
+ movs r2, 0
+ adds r6, r3, 0
+ adds r6, 0x1A
+ adds r4, r3, 0
+ adds r4, 0x12
+ movs r5, 0xFF
+_080A2B66:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ orrs r0, r5
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080A2B66
+ adds r1, r6, 0
+ movs r2, 0
+ adds r0, r1, 0x3
+_080A2B7A:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080A2B7A
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r3, 0x1E]
+ strh r1, [r3, 0x20]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B90: .4byte 0x0000ffff
+ thumb_func_end sub_80A2B40
+
+ thumb_func_start sub_80A2B94
+sub_80A2B94: @ 80A2B94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2BBC
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _080A2BBC
+ movs r0, 0x1
+ b _080A2BBE
+_080A2BBC:
+ movs r0, 0
+_080A2BBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2B94
+
+ thumb_func_start sub_80A2BC4
+sub_80A2BC4: @ 80A2BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ str r0, [sp, 0x8]
+ mov r0, sp
+ movs r2, 0
+ ldrb r3, [r0, 0x8]
+ strb r3, [r0]
+ lsrs r1, 24
+ strb r1, [r0, 0x1]
+ add r3, sp, 0x4
+ strb r2, [r3]
+ mov r10, r3
+ ldr r4, _080A2D00
+ mov r9, r4
+ mov r8, r3
+ adds r2, r3, 0
+_080A2BF2:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r5, _080A2D04
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A2C08
+ b _080A2D24
+_080A2C08:
+ movs r3, 0
+ ldr r0, _080A2D08
+ mov r12, r0
+ mov r4, r10
+ ldr r6, _080A2D0C
+ ldr r1, _080A2D10
+ adds r5, r1, 0
+_080A2C16:
+ lsls r2, r3, 1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r2]
+ orrs r0, r5
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _080A2C16
+ movs r3, 0
+ mov r2, r10
+ ldr r4, _080A2D14
+_080A2C3A:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r4
+ mov r5, r12
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bls _080A2C3A
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, _080A2D14
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080A2D14
+ adds r0, r3
+ movs r1, 0
+ bl sub_814A518
+ movs r3, 0
+ mov r2, r10
+ ldr r5, _080A2D18
+ ldr r4, _080A2D1C
+_080A2C88:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r5
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A2C88
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80A2D44
+ mov r4, r8
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ add r1, r9
+ ldr r5, _080A2D20
+ adds r1, r5
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r1, _080A2D04
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x8]
+ strh r2, [r0]
+ adds r0, r7, 0
+ movs r1, 0x40
+ mov r2, r8
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2D32
+ .align 2, 0
+_080A2D00: .4byte gSaveBlock1
+_080A2D04: .4byte 0x00002b6c
+_080A2D08: .4byte gSaveBlock2
+_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
+_080A2D10: .4byte 0x0000ffff
+_080A2D14: .4byte gSaveBlock1 + 0x2B5E
+_080A2D18: .4byte gSaveBlock1 + 0x2B66
+_080A2D1C: .4byte gSaveBlock2 + 0xA
+_080A2D20: .4byte 0x00002b6a
+_080A2D24:
+ adds r0, r1, 0x1
+ strb r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ bhi _080A2D30
+ b _080A2BF2
+_080A2D30:
+ movs r0, 0xFF
+_080A2D32:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2BC4
+
+ thumb_func_start sub_80A2D44
+sub_80A2D44: @ 80A2D44
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ bne _080A2D5C
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ ldr r1, _080A2D60
+ adds r0, r1
+ lsrs r0, 16
+_080A2D5C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2D60: .4byte 0x75300000
+ thumb_func_end sub_80A2D44
+
+ thumb_func_start sub_80A2D64
+sub_80A2D64: @ 80A2D64
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A2D7C
+ adds r2, r3, r0
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x1B
+ bhi _080A2D80
+ movs r0, 0xC9
+ strh r2, [r1]
+ b _080A2D82
+ .align 2, 0
+_080A2D7C: .4byte 0xffff8ad0
+_080A2D80:
+ adds r0, r3, 0
+_080A2D82:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D64
+
+ thumb_func_start sub_80A2D88
+sub_80A2D88: @ 80A2D88
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r7, r1, 0
+ ldrh r5, [r7, 0x20]
+ adds r1, r5, 0
+ bl sub_80A2BC4
+ add r4, sp, 0x4
+ strb r0, [r4]
+ ldrb r2, [r4]
+ cmp r2, 0xFF
+ beq _080A2DE8
+ ldr r0, _080A2DE0
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080A2DE4
+ adds r1, r0
+ adds r0, r7, 0
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r6, 0
+ movs r1, 0x40
+ adds r2, r4, 0
+ bl SetMonData
+ mov r0, sp
+ strb r5, [r0]
+ mov r1, sp
+ lsrs r0, r5, 8
+ strb r0, [r1, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2DEA
+ .align 2, 0
+_080A2DE0: .4byte gSaveBlock1
+_080A2DE4: .4byte 0x00002b4c
+_080A2DE8:
+ movs r0, 0xFF
+_080A2DEA:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D88
+
+ thumb_func_start unref_sub_80A2DF4
+unref_sub_80A2DF4: @ 80A2DF4
+ movs r0, 0
+ bx lr
+ thumb_func_end unref_sub_80A2DF4
+
+ thumb_func_start sub_80A2DF8
+sub_80A2DF8: @ 80A2DF8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2E46
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ add r2, sp, 0x4
+ strb r0, [r2]
+ ldr r3, _080A2E50
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080A2E54
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, sp
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_080A2E46:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E50: .4byte gSaveBlock1
+_080A2E54: .4byte 0x00002b6c
+ thumb_func_end sub_80A2DF8
+
+ thumb_func_start unref_sub_80A2E58
+unref_sub_80A2E58: @ 80A2E58
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A2E70
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080A2E74
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A2E70: .4byte gSaveBlock1
+_080A2E74: .4byte 0x00002b6c
+ thumb_func_end unref_sub_80A2E58
+
+ thumb_func_start sub_80A2E78
+sub_80A2E78: @ 80A2E78
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ add r1, sp, 0x4
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r7, 0x6
+ mov r9, r1
+ ldr r0, _080A2F04
+ mov r8, r0
+ ldr r2, _080A2F08
+ add r2, r8
+_080A2E9E:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r4, r0, 2
+ mov r1, r8
+ adds r0, r4, r1
+ ldr r3, _080A2F0C
+ adds r0, r3
+ ldrh r6, [r0]
+ cmp r6, 0
+ bne _080A2F10
+ adds r4, r2
+ adds r0, r5, 0
+ movs r1, 0x40
+ str r2, [sp, 0x8]
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, [sp, 0x8]
+ adds r1, r2
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ adds r0, r5, 0
+ movs r1, 0x40
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldr r0, _080A2F0C
+ adds r1, r0
+ strh r6, [r1]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, r9
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r7, 0
+ b _080A2F1C
+ .align 2, 0
+_080A2F04: .4byte gSaveBlock1
+_080A2F08: .4byte 0x00002b4c
+_080A2F0C: .4byte 0x00002b6c
+_080A2F10:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _080A2E9E
+ movs r0, 0xFF
+_080A2F1C:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2E78
+
+ thumb_func_start itemid_is_mail
+itemid_is_mail: @ 80A2F2C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bgt _080A2F3E
+ cmp r0, 0x79
+ blt _080A2F3E
+ movs r0, 0x1
+ b _080A2F40
+_080A2F3E:
+ movs r0, 0
+_080A2F40:
+ pop {r1}
+ bx r1
+ thumb_func_end itemid_is_mail
+
+ thumb_func_start unref_sub_80A2F44
+unref_sub_80A2F44: @ 80A2F44
+ push {lr}
+ bl sub_8071C20
+ bl AddMapNamePopUpWindowTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80A2F44
+
+ thumb_func_start AddMapNamePopUpWindowTask
+AddMapNamePopUpWindowTask: @ 80A2F54
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A2FE4
+ ldr r4, _080A2FAC
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A2FBC
+ adds r0, r4, 0
+ movs r1, 0x5A
+ bl CreateTask
+ ldr r4, _080A2FB0
+ strb r0, [r4]
+ ldr r1, _080A2FB4
+ movs r0, 0x20
+ strh r0, [r1]
+ bl sub_80A30E0
+ ldr r2, _080A2FB8
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r5, [r0, 0x8]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ b _080A2FE4
+ .align 2, 0
+_080A2FAC: .4byte sub_80A2FF4
+_080A2FB0: .4byte gUnknown_02038538
+_080A2FB4: .4byte REG_BG0VOFS
+_080A2FB8: .4byte gTasks
+_080A2FBC:
+ ldr r3, _080A2FEC
+ ldr r2, _080A2FF0
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x2
+ beq _080A2FD6
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+_080A2FD6:
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080A2FE4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FEC: .4byte gTasks
+_080A2FF0: .4byte gUnknown_02038538
+ thumb_func_end AddMapNamePopUpWindowTask
+
+ thumb_func_start sub_80A2FF4
+sub_80A2FF4: @ 80A2FF4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r3, _080A3018
+ adds r4, r1, r3
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A304C
+ cmp r2, 0x1
+ bgt _080A301C
+ cmp r2, 0
+ beq _080A3026
+ b _080A3092
+ .align 2, 0
+_080A3018: .4byte gTasks
+_080A301C:
+ cmp r2, 0x2
+ beq _080A3064
+ cmp r2, 0x4
+ beq _080A308C
+ b _080A3092
+_080A3026:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A3092
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3048
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0xA]
+ b _080A3092
+ .align 2, 0
+_080A3048: .4byte gUnknown_02038538
+_080A304C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080A3092
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080A3092
+_080A3064:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ movs r5, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080A3092
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A3086
+ bl sub_80A30E0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xE]
+ b _080A3092
+_080A3086:
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080A3098
+_080A308C:
+ bl HideMapNamePopUpWindow
+ b _080A3098
+_080A3092:
+ ldr r1, _080A30A0
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+_080A3098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30A0: .4byte REG_BG0VOFS
+ thumb_func_end sub_80A2FF4
+
+ thumb_func_start HideMapNamePopUpWindow
+HideMapNamePopUpWindow: @ 80A30A4
+ push {lr}
+ ldr r0, _080A30D4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A30D0
+ bl MenuLoadTextWindowGraphics
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A30D8
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080A30DC
+ ldrb r0, [r0]
+ bl DestroyTask
+_080A30D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30D4: .4byte sub_80A2FF4
+_080A30D8: .4byte REG_BG0VOFS
+_080A30DC: .4byte gUnknown_02038538
+ thumb_func_end HideMapNamePopUpWindow
+
+ thumb_func_start sub_80A30E0
+sub_80A30E0: @ 80A30E0
+ push {lr}
+ sub sp, 0x14
+ movs r0, 0
+ bl MenuLoadTextWindowGraphics_OverrideFrameType
+ ldr r0, _080A3114
+ ldrb r1, [r0, 0x14]
+ mov r0, sp
+ movs r2, 0
+ bl sub_80FBFB4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x60
+ bl sub_8072BD8
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3114: .4byte gMapHeader
+ thumb_func_end sub_80A30E0
+
+ thumb_func_start sub_80A3118
+sub_80A3118: @ 80A3118
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl sub_80A740C
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3118
+
+ thumb_func_start sub_80A3134
+sub_80A3134: @ 80A3134
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _080A3168
+ ldr r2, _080A316C
+ ldr r0, _080A3170
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r3, _080A3174
+ str r3, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ ldr r2, _080A3178
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ str r3, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3168: .4byte gBG1TilemapBuffer
+_080A316C: .4byte 0x06002000
+_080A3170: .4byte 0x040000d4
+_080A3174: .4byte 0x80000400
+_080A3178: .4byte 0x06006000
+ thumb_func_end sub_80A3134
+
+ thumb_func_start sub_80A317C
+sub_80A317C: @ 80A317C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _080A3198
+ ldr r1, _080A319C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bls _080A318E
+ b _080A34A8
+_080A318E:
+ lsls r0, 2
+ ldr r1, _080A31A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A3198: .4byte gMain
+_080A319C: .4byte 0x0000043c
+_080A31A0: .4byte _080A31A4
+ .align 2, 0
+_080A31A4:
+ .4byte _080A31E8
+ .4byte _080A31F2
+ .4byte _080A3208
+ .4byte _080A320E
+ .4byte _080A3228
+ .4byte _080A324C
+ .4byte _080A3252
+ .4byte _080A3270
+ .4byte _080A327C
+ .4byte _080A3298
+ .4byte _080A32A4
+ .4byte _080A3328
+ .4byte _080A338C
+ .4byte _080A33F4
+ .4byte _080A3404
+ .4byte _080A345C
+ .4byte _080A347C
+_080A31E8:
+ bl sub_80F9438
+ bl sub_80A34E8
+ b _080A3464
+_080A31F2:
+ bl remove_some_task
+ ldr r1, _080A3200
+ ldr r0, _080A3204
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3200: .4byte gMain
+_080A3204: .4byte 0x0000043c
+_080A3208:
+ bl gpu_pal_allocator_reset__manage_upper_four
+ b _080A3464
+_080A320E:
+ bl sub_80F9020
+ ldr r0, _080A3220
+ ldr r1, _080A3224
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _080A3464
+ .align 2, 0
+_080A3220: .4byte 0x02000000
+_080A3224: .4byte 0x0001ffff
+_080A3228:
+ bl ResetPaletteFade
+ ldr r2, _080A3240
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080A3244
+ ldr r0, _080A3248
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3240: .4byte gPaletteFade
+_080A3244: .4byte gMain
+_080A3248: .4byte 0x0000043c
+_080A324C:
+ bl ResetSpriteData
+ b _080A3464
+_080A3252:
+ bl sub_80A3520
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A325E
+ b _080A34A8
+_080A325E:
+ ldr r1, _080A3268
+ ldr r0, _080A326C
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3268: .4byte gMain
+_080A326C: .4byte 0x0000043c
+_080A3270:
+ ldr r0, _080A3278
+ bl SetUpWindowConfig
+ b _080A3464
+ .align 2, 0
+_080A3278: .4byte gWindowConfig_81E6DFC
+_080A327C:
+ ldr r0, _080A328C
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _080A3290
+ ldr r0, _080A3294
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A328C: .4byte gWindowConfig_81E6DFC
+_080A3290: .4byte gMain
+_080A3294: .4byte 0x0000043c
+_080A3298:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _080A32A2
+ b _080A34A8
+_080A32A2:
+ b _080A3464
+_080A32A4:
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0
+ movs r1, 0xAC
+ movs r2, 0xC
+ bl sub_80F953C
+ movs r0, 0x1
+ movs r1, 0xAC
+ movs r2, 0x94
+ bl sub_80F953C
+ movs r0, 0x2
+ movs r1, 0x1C
+ movs r2, 0x58
+ bl sub_80F953C
+ movs r0, 0x3
+ movs r1, 0x64
+ movs r2, 0x58
+ bl sub_80F953C
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_80F9988
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_80F9988
+ ldr r0, _080A331C
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A3312
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_80F979C
+_080A3312:
+ ldr r1, _080A3320
+ ldr r0, _080A3324
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A331C: .4byte gUnknown_03000701
+_080A3320: .4byte gMain
+_080A3324: .4byte 0x0000043c
+_080A3328:
+ ldr r1, _080A3378
+ movs r0, 0x10
+ strb r0, [r1]
+ ldr r4, _080A337C
+ ldr r5, _080A3380
+ ldrb r1, [r5]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A39B8
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80A3AC0
+ bl sub_80A3D08
+ ldr r4, _080A3384
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x14]
+ bl sub_80A3C34
+ ldr r0, [r4, 0x18]
+ ldr r1, [r4, 0x1C]
+ bl sub_80A3C34
+ bl sub_80A3D40
+ ldr r1, _080A3388
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 3
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ bl sub_80A362C
+ b _080A3464
+ .align 2, 0
+_080A3378: .4byte gUnknown_0203855A
+_080A337C: .4byte gBG2TilemapBuffer
+_080A3380: .4byte gUnknown_02038559
+_080A3384: .4byte gUnknown_083C1618
+_080A3388: .4byte gUnknown_03005D24
+_080A338C:
+ ldr r0, _080A33D4
+ movs r1, 0
+ movs r2, 0x7
+ bl sub_80A48E8
+ ldr r1, _080A33D8
+ ldr r4, _080A33DC
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A33E0
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl sub_80A490C
+ bl sub_80A736C
+ ldr r1, _080A33E4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080A33E8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080A33EC
+ ldr r0, _080A33F0
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A33D4: .4byte 0x0000ffff
+_080A33D8: .4byte gUnknown_03005D10
+_080A33DC: .4byte gUnknown_02038559
+_080A33E0: .4byte gUnknown_03005D24
+_080A33E4: .4byte gUnknown_0203855B
+_080A33E8: .4byte gUnknown_0203855C
+_080A33EC: .4byte gMain
+_080A33F0: .4byte 0x0000043c
+_080A33F4:
+ bl sub_80A7B10
+ movs r0, 0
+ bl sub_80A7C20
+ bl sub_80A3740
+ b _080A3464
+_080A3404:
+ ldr r3, _080A3444
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _080A3448
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _080A344C
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _080A3450
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080A3454
+ ldr r0, _080A3458
+ adds r1, r0
+ b _080A346A
+ .align 2, 0
+_080A3444: .4byte 0x04000208
+_080A3448: .4byte 0x04000200
+_080A344C: .4byte REG_DISPSTAT
+_080A3450: .4byte gPaletteFade
+_080A3454: .4byte gMain
+_080A3458: .4byte 0x0000043c
+_080A345C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A34A8
+_080A3464:
+ ldr r1, _080A3474
+ ldr r2, _080A3478
+ adds r1, r2
+_080A346A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080A34A8
+ .align 2, 0
+_080A3474: .4byte gMain
+_080A3478: .4byte 0x0000043c
+_080A347C:
+ ldr r0, _080A34A0
+ bl SetVBlankCallback
+ ldr r0, _080A34A4
+ bl SetMainCallback2
+ bl sub_80A751C
+ bl sub_80A7630
+ bl sub_80A770C
+ bl sub_80A7828
+ bl sub_80A78B8
+ movs r0, 0x1
+ b _080A34AA
+ .align 2, 0
+_080A34A0: .4byte sub_80A3134
+_080A34A4: .4byte sub_80A3118
+_080A34A8:
+ movs r0, 0
+_080A34AA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A317C
+
+ thumb_func_start sub_80A34B4
+sub_80A34B4: @ 80A34B4
+ push {lr}
+_080A34B6:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A34D2
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A34B6
+ movs r0, 0
+ b _080A34DE
+_080A34D2:
+ ldr r1, _080A34E4
+ movs r0, 0
+ strb r0, [r1]
+ bl ResetTasks
+ movs r0, 0x1
+_080A34DE:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A34E4: .4byte gUnknown_03000700
+ thumb_func_end sub_80A34B4
+
+ thumb_func_start sub_80A34E8
+sub_80A34E8: @ 80A34E8
+ push {lr}
+ bl sub_80F9368
+ ldr r1, _080A3514
+ ldr r2, _080A3518
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080A351C
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3514: .4byte REG_BG2CNT
+_080A3518: .4byte 0x00000c06
+_080A351C: .4byte 0x00000405
+ thumb_func_end sub_80A34E8
+
+ thumb_func_start sub_80A3520
+sub_80A3520: @ 80A3520
+ push {lr}
+ ldr r0, _080A353C
+ ldr r1, _080A3540
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080A3530
+ b _080A3624
+_080A3530:
+ lsls r0, 2
+ ldr r1, _080A3544
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A353C: .4byte 0x02000000
+_080A3540: .4byte 0x0001ffff
+_080A3544: .4byte _080A3548
+ .align 2, 0
+_080A3548:
+ .4byte _080A355C
+ .4byte _080A3570
+ .4byte _080A3588
+ .4byte _080A35C0
+ .4byte _080A3604
+_080A355C:
+ ldr r0, _080A3568
+ ldr r1, _080A356C
+ bl LZDecompressVram
+ b _080A35EA
+ .align 2, 0
+_080A3568: .4byte gBagScreen_Gfx
+_080A356C: .4byte 0x06004000
+_080A3570:
+ ldr r0, _080A3580
+ ldr r1, _080A3584
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _080A35EA
+ .align 2, 0
+_080A3580: .4byte gUnknown_08E77004
+_080A3584: .4byte gBG2TilemapBuffer
+_080A3588:
+ ldr r0, _080A35A4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080A3598
+ ldr r0, _080A35A8
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080A35B0
+_080A3598:
+ ldr r0, _080A35AC
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _080A35EA
+ .align 2, 0
+_080A35A4: .4byte gSaveBlock2
+_080A35A8: .4byte gUnknown_03000701
+_080A35AC: .4byte gBagScreenMale_Pal
+_080A35B0:
+ ldr r0, _080A35BC
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _080A35EA
+ .align 2, 0
+_080A35BC: .4byte gBagScreenFemale_Pal
+_080A35C0:
+ ldr r0, _080A35D8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080A35D0
+ ldr r0, _080A35DC
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080A35E4
+_080A35D0:
+ ldr r0, _080A35E0
+ bl LoadCompressedObjectPic
+ b _080A35EA
+ .align 2, 0
+_080A35D8: .4byte gSaveBlock2
+_080A35DC: .4byte gUnknown_03000701
+_080A35E0: .4byte gUnknown_083C1CC8
+_080A35E4:
+ ldr r0, _080A35F8
+ bl LoadCompressedObjectPic
+_080A35EA:
+ ldr r1, _080A35FC
+ ldr r0, _080A3600
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080A3624
+ .align 2, 0
+_080A35F8: .4byte gUnknown_083C1CD0
+_080A35FC: .4byte 0x02000000
+_080A3600: .4byte 0x0001ffff
+_080A3604:
+ ldr r0, _080A3618
+ bl LoadCompressedObjectPalette
+ ldr r0, _080A361C
+ ldr r1, _080A3620
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _080A3626
+ .align 2, 0
+_080A3618: .4byte gUnknown_083C1CD8
+_080A361C: .4byte 0x02000000
+_080A3620: .4byte 0x0001ffff
+_080A3624:
+ movs r0, 0
+_080A3626:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A3520
+
+ thumb_func_start sub_80A362C
+sub_80A362C: @ 80A362C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080A3648
+ ldr r5, _080A364C
+_080A3634:
+ ldrb r0, [r6]
+ cmp r0, 0x5
+ bne _080A3650
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080A3656
+ .align 2, 0
+_080A3648: .4byte gUnknown_03000701
+_080A364C: .4byte gUnknown_03005D10
+_080A3650:
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrb r3, [r0, 0x2]
+_080A3656:
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080A366C
+ ldrb r2, [r1, 0x3]
+ adds r0, r2
+ cmp r0, r3
+ ble _080A3674
+ subs r0, r3, r2
+ strb r0, [r1, 0x1]
+ b _080A3674
+_080A366C:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bls _080A3674
+ strb r3, [r1]
+_080A3674:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3634
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A362C
+
+ thumb_func_start sub_80A3684
+sub_80A3684: @ 80A3684
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080A36B0
+ ldr r3, _080A36B4
+ movs r1, 0
+_080A368E:
+ lsls r0, r2, 2
+ adds r0, r3
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strb r1, [r0, 0x2]
+ strb r1, [r0, 0x3]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _080A368E
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A36B0: .4byte gUnknown_02038559
+_080A36B4: .4byte gUnknown_03005D10
+ thumb_func_end sub_80A3684
+
+ thumb_func_start sub_80A36B8
+sub_80A36B8: @ 80A36B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x18]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r0, 24
+ lsrs r0, 24
+ lsrs r2, 24
+ adds r0, r2, r0
+ cmp r2, r0
+ bgt _080A370A
+ adds r7, r0, 0
+_080A36DE:
+ mov r1, r8
+ mov r3, r12
+ adds r0, r1, r3
+ adds r4, r2, 0x1
+ cmp r1, r0
+ bgt _080A3702
+ lsls r3, r2, 5
+ movs r5, 0
+ adds r2, r0, 0
+_080A36F0:
+ adds r0, r1, r3
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ ble _080A36F0
+_080A3702:
+ lsls r0, r4, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ ble _080A36DE
+_080A370A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A36B8
+
+ thumb_func_start sub_80A3714
+sub_80A3714: @ 80A3714
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A373C
+_080A371A:
+ lsls r1, r4, 3
+ adds r1, r5
+ ldr r0, [r1]
+ ldrb r1, [r1, 0x4]
+ bl sub_80A9684
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080A371A
+ bl sub_80A3684
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A373C: .4byte gUnknown_083C1618
+ thumb_func_end sub_80A3714
+
+ thumb_func_start sub_80A3740
+sub_80A3740: @ 80A3740
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080A376C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A376C: .4byte gUnknown_083C1704
+ thumb_func_end sub_80A3740
+
+ thumb_func_start sub_80A3770
+sub_80A3770: @ 80A3770
+ push {lr}
+ ldr r0, _080A379C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A37B6
+ ldr r3, _080A37A0
+ ldr r2, _080A37A4
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _080A37A8
+ adds r0, r1
+ str r0, [r3]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x3
+ beq _080A37B0
+ ldr r1, _080A37AC
+ movs r0, 0x4
+ b _080A37B4
+ .align 2, 0
+_080A379C: .4byte gUnknown_03000701
+_080A37A0: .4byte gUnknown_03000704
+_080A37A4: .4byte gUnknown_02038559
+_080A37A8: .4byte gUnknown_083C1690
+_080A37AC: .4byte gUnknown_02038564
+_080A37B0:
+ ldr r1, _080A37BC
+ movs r0, 0x6
+_080A37B4:
+ strb r0, [r1]
+_080A37B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37BC: .4byte gUnknown_02038564
+ thumb_func_end sub_80A3770
+
+ thumb_func_start sub_80A37C0
+sub_80A37C0: @ 80A37C0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A37F0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080A37F4
+ str r0, [r1]
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ movs r0, 0x2
+ bl sub_80F98DC
+ movs r0, 0x3
+ bl sub_80F98DC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A37F0: .4byte gTasks
+_080A37F4: .4byte sub_80A50C8
+ thumb_func_end sub_80A37C0
+
+ thumb_func_start sub_80A37F8
+sub_80A37F8: @ 80A37F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _080A3854
+ ldrb r5, [r6]
+ cmp r5, 0xF
+ bhi _080A3868
+ adds r0, r5, 0x1
+ strb r0, [r6]
+ ldr r4, _080A3858
+ ldrb r2, [r6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x4F
+ bl sub_80A396C
+ ldr r0, _080A385C
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r6]
+ lsrs r2, 1
+ ldr r3, _080A3860
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x12
+ ldrsb r3, [r0, r3]
+ adds r0, r4, 0
+ bl sub_80A39E4
+ ldr r4, _080A3864
+ movs r0, 0x1
+ strb r0, [r4]
+ lsrs r1, r5, 1
+ ldrb r2, [r6]
+ lsrs r2, 1
+ subs r2, 0x1
+ adds r0, r7, 0
+ bl sub_80A48E8
+ movs r0, 0
+ strb r0, [r4]
+ b _080A3932
+ .align 2, 0
+_080A3854: .4byte gUnknown_0203855A
+_080A3858: .4byte gBG2TilemapBuffer
+_080A385C: .4byte gUnknown_02038559
+_080A3860: .4byte gTasks
+_080A3864: .4byte gUnknown_02038558
+_080A3868:
+ ldr r0, _080A38A0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A38B4
+ ldr r1, _080A38A4
+ ldr r0, _080A38A8
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A38AC
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldr r4, _080A38B0
+ ldrb r1, [r4]
+ bl sub_80A49AC
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080A38F2
+ .align 2, 0
+_080A38A0: .4byte gLinkOpen
+_080A38A4: .4byte gUnknown_03005D10
+_080A38A8: .4byte gUnknown_02038559
+_080A38AC: .4byte gUnknown_03005D24
+_080A38B0: .4byte gUnknown_02038562
+_080A38B4:
+ ldr r1, _080A3938
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _080A38F2
+ ldr r5, _080A393C
+ adds r4, r1, 0
+_080A38C0:
+ ldr r0, _080A3940
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A3944
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldrb r1, [r4]
+ bl sub_80A49AC
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _080A38C0
+_080A38F2:
+ ldr r0, _080A3938
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080A3932
+ ldr r1, _080A3948
+ movs r0, 0x10
+ strb r0, [r1]
+ ldr r1, _080A394C
+ ldr r0, _080A3940
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080A3950
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A37C0
+ adds r0, r7, 0
+ bl DestroyTask
+ bl sub_80A736C
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_80F979C
+_080A3932:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3938: .4byte gUnknown_02038562
+_080A393C: .4byte gUnknown_03005D10
+_080A3940: .4byte gUnknown_02038559
+_080A3944: .4byte gUnknown_03005D24
+_080A3948: .4byte gUnknown_0203855A
+_080A394C: .4byte gUnknown_0203855B
+_080A3950: .4byte sub_80A4F68
+ thumb_func_end sub_80A37F8
+
+ thumb_func_start sub_80A3954
+sub_80A3954: @ 80A3954
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080A3968
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3968: .4byte gUnknown_08E77004
+ thumb_func_end sub_80A3954
+
+ thumb_func_start sub_80A396C
+sub_80A396C: @ 80A396C
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r4, r5, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0x2
+ lsls r1, 6
+ adds r1, 0x1C
+ adds r2, r0, r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r7, r4
+ bls _080A39B2
+_080A398E:
+ movs r1, 0
+ adds r3, r5, 0x1
+ adds r4, r2, 0
+ adds r4, 0x40
+_080A3996:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r6, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xE
+ bls _080A3996
+ adds r2, r4, 0
+ adds r1, r5, 0
+ lsls r0, r3, 24
+ lsrs r5, r0, 24
+ cmp r7, r1
+ bhi _080A398E
+_080A39B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A396C
+
+ thumb_func_start sub_80A39B8
+sub_80A39B8: @ 80A39B8
+ push {lr}
+ sub sp, 0x10
+ lsls r1, 25
+ lsrs r1, 24
+ ldr r3, _080A39E0
+ movs r2, 0
+ str r2, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x4
+ movs r2, 0xA
+ bl sub_809D104
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A39E0: .4byte gUnknown_08E96EC8
+ thumb_func_end sub_80A39B8
+
+ thumb_func_start sub_80A39E4
+sub_80A39E4: @ 80A39E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ adds r5, r6, 0
+ lsls r2, r1, 1
+ mov r9, r2
+ lsls r3, 24
+ asrs r3, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080A3A5C
+ adds r0, r1, 0x1
+ lsls r7, r0, 1
+ cmp r1, 0x5
+ bne _080A3A18
+ movs r7, 0x2
+_080A3A18:
+ ldr r0, _080A3A58
+ mov r10, r0
+ movs r4, 0x8
+ subs r4, r6
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp]
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x2
+ mov r9, r0
+ str r0, [sp, 0xC]
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xA
+ mov r3, r10
+ bl sub_809D104
+ adds r1, r6, 0x4
+ movs r0, 0
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ movs r2, 0xA
+ mov r3, r10
+ bl sub_809D104
+ b _080A3AAA
+ .align 2, 0
+_080A3A58: .4byte gUnknown_08E96EC8
+_080A3A5C:
+ cmp r3, 0x1
+ bne _080A3AAA
+ subs r0, r4, 0x1
+ lsls r0, 17
+ lsrs r7, r0, 16
+ cmp r4, 0x1
+ bne _080A3A6C
+ movs r7, 0xA
+_080A3A6C:
+ ldr r6, _080A3ABC
+ str r5, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0x8
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r1, 0xC
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r0, r8
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_809D104
+_080A3AAA:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3ABC: .4byte gUnknown_08E96EC8
+ thumb_func_end sub_80A39E4
+
+ thumb_func_start sub_80A3AC0
+sub_80A3AC0: @ 80A3AC0
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r2, 0
+ ldr r1, _080A3AE4
+ ldr r0, _080A3AE8
+ adds r6, r0, 0
+ subs r0, 0x1
+ adds r5, r0, 0
+_080A3AD4:
+ cmp r2, r4
+ bne _080A3AEC
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r1
+ strh r6, [r0]
+ b _080A3AF4
+ .align 2, 0
+_080A3AE4: .4byte 0x0000024a
+_080A3AE8: .4byte 0x0000107d
+_080A3AEC:
+ lsls r0, r2, 1
+ adds r0, r3
+ adds r0, r1
+ strh r5, [r0]
+_080A3AF4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _080A3AD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3AC0
+
+ thumb_func_start sub_80A3B04
+sub_80A3B04: @ 80A3B04
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080A3BA4
+ ldrb r0, [r4]
+ lsls r1, 24
+ asrs r6, r1, 24
+ adds r0, r6, r0
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080A3B20
+ movs r0, 0
+ strb r0, [r4]
+_080A3B20:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bge _080A3B2C
+ movs r0, 0x4
+ strb r0, [r4]
+_080A3B2C:
+ bl sub_80A76A0
+ bl sub_80A7590
+ ldr r2, _080A3BA8
+ ldr r1, _080A3BAC
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldrb r0, [r4]
+ bl sub_80A3D24
+ ldr r0, _080A3BB0
+ movs r4, 0
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl sub_80A3954
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x3
+ bl sub_80A396C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A39B8
+ ldr r1, _080A3BB4
+ movs r0, 0x6
+ strb r0, [r1]
+ ldr r0, _080A3BB8
+ strb r4, [r0]
+ ldr r4, _080A3BBC
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _080A3B90
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080A3B90:
+ ldr r1, _080A3BC0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x12]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3BA4: .4byte gUnknown_02038559
+_080A3BA8: .4byte gUnknown_03005D24
+_080A3BAC: .4byte gUnknown_083C1618
+_080A3BB0: .4byte gUnknown_0203855A
+_080A3BB4: .4byte gUnknown_0203855B
+_080A3BB8: .4byte gUnknown_02038562
+_080A3BBC: .4byte sub_80A37F8
+_080A3BC0: .4byte gTasks
+ thumb_func_end sub_80A3B04
+
+ thumb_func_start swap32
+swap32: @ 80A3BC4
+ ldr r3, [r0]
+ ldr r2, [r1]
+ str r2, [r0]
+ str r3, [r1]
+ bx lr
+ thumb_func_end swap32
+
+ thumb_func_start sub_80A3BD0
+sub_80A3BD0: @ 80A3BD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r1, 0
+ adds r6, r0, 0
+ movs r3, 0
+ b _080A3C1A
+_080A3BE0:
+ adds r0, r3, 0x1
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ lsls r1, r2, 24
+ lsrs r1, 24
+ mov r8, r0
+ cmp r4, r1
+ bcs _080A3C14
+ lsls r0, r3, 2
+ adds r5, r0, r6
+ adds r2, r1, 0
+_080A3BF6:
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ bne _080A3C0A
+ lsls r1, r4, 2
+ adds r1, r6
+ adds r0, r5, 0
+ str r2, [sp]
+ bl swap32
+ ldr r2, [sp]
+_080A3C0A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bcc _080A3BF6
+_080A3C14:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+_080A3C1A:
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r3, r0
+ blt _080A3BE0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3BD0
+
+ thumb_func_start sub_80A3C34
+sub_80A3C34: @ 80A3C34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r1, 0
+ adds r6, r0, 0
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ movs r3, 0
+ cmp r0, 0
+ beq _080A3C9C
+_080A3C4A:
+ adds r0, r3, 0x1
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ lsls r1, r2, 24
+ lsrs r1, 24
+ mov r8, r0
+ cmp r4, r1
+ bcs _080A3C8C
+ lsls r0, r3, 2
+ adds r5, r0, r6
+ adds r2, r1, 0
+_080A3C60:
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ beq _080A3C82
+ lsls r0, r4, 2
+ adds r1, r0, r6
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080A3C82
+ ldrh r0, [r5]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _080A3C82
+ adds r0, r5, 0
+ str r2, [sp]
+ bl swap32
+ ldr r2, [sp]
+_080A3C82:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bcc _080A3C60
+_080A3C8C:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ adds r2, r7, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r3, r0
+ bcc _080A3C4A
+_080A3C9C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3C34
+
+ thumb_func_start sub_80A3CA8
+sub_80A3CA8: @ 80A3CA8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A3D00
+ lsls r0, r6, 2
+ adds r3, r0, r1
+ movs r0, 0
+ strb r0, [r3, 0x2]
+ movs r4, 0
+ ldr r0, _080A3D04
+ lsls r2, r6, 3
+ adds r1, r2, r0
+ mov r12, r0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _080A3CEC
+ mov r7, r12
+ adds r5, r3, 0
+_080A3CCC:
+ adds r3, r2, r7
+ ldr r0, [r3]
+ lsls r1, r4, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080A3CE0
+ ldrb r0, [r5, 0x2]
+ adds r0, 0x1
+ strb r0, [r5, 0x2]
+_080A3CE0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r3, [r3, 0x4]
+ cmp r4, r3
+ bcc _080A3CCC
+_080A3CEC:
+ lsls r0, r6, 3
+ add r0, r12
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ bl sub_80A3BD0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3D00: .4byte gUnknown_03005D10
+_080A3D04: .4byte gUnknown_083C1618
+ thumb_func_end sub_80A3CA8
+
+ thumb_func_start sub_80A3D08
+sub_80A3D08: @ 80A3D08
+ push {r4,lr}
+ movs r4, 0
+_080A3D0C:
+ adds r0, r4, 0
+ bl sub_80A3CA8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3D0C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3D08
+
+ thumb_func_start sub_80A3D24
+sub_80A3D24: @ 80A3D24
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080A3D3C
+ lsrs r0, 22
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x6
+ bls _080A3D36
+ movs r0, 0x7
+_080A3D36:
+ strb r0, [r1, 0x3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3D3C: .4byte gUnknown_03005D10
+ thumb_func_end sub_80A3D24
+
+ thumb_func_start sub_80A3D40
+sub_80A3D40: @ 80A3D40
+ push {r4,lr}
+ movs r4, 0
+_080A3D44:
+ adds r0, r4, 0
+ bl sub_80A3D24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _080A3D44
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3D40
+
+ thumb_func_start sub_80A3D5C
+sub_80A3D5C: @ 80A3D5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A3DF4
+ mov r9, r1
+ ldr r2, _080A3DF8
+ mov r8, r2
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r2, r1
+ ldr r7, _080A3DFC
+ ldr r1, [r7]
+ lsls r6, r2, 2
+ adds r3, r6, r1
+ ldr r2, _080A3E00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r1, 0xA]
+ subs r0, r1
+ strh r0, [r3, 0x2]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _080A3DE0
+ ldr r0, _080A3E04
+ ldr r1, _080A3E08
+ adds r5, r0, r1
+ ldrh r0, [r5]
+ ldrh r3, [r3]
+ cmp r0, r3
+ bne _080A3DB4
+ bl sub_80A40D0
+ strh r4, [r5]
+_080A3DB4:
+ ldr r0, [r7]
+ adds r0, r6, r0
+ strh r4, [r0]
+ mov r2, r8
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ mov r3, r9
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ adds r0, r1, 0x7
+ ldrb r3, [r2, 0x2]
+ cmp r0, r3
+ bne _080A3DD8
+ cmp r1, 0
+ beq _080A3DD8
+ subs r0, r1, 0x1
+ strb r0, [r2, 0x1]
+_080A3DD8:
+ ldr r0, _080A3DF8
+ ldrb r0, [r0]
+ bl sub_80A3CA8
+_080A3DE0:
+ ldr r0, _080A3DF8
+ ldrb r0, [r0]
+ bl sub_80A3D24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3DF4: .4byte gUnknown_03005D10
+_080A3DF8: .4byte gUnknown_02038559
+_080A3DFC: .4byte gUnknown_03005D24
+_080A3E00: .4byte gTasks
+_080A3E04: .4byte gSaveBlock1
+_080A3E08: .4byte 0x00000496
+ thumb_func_end sub_80A3D5C
+
+ thumb_func_start sub_80A3E0C
+sub_80A3E0C: @ 80A3E0C
+ push {lr}
+ ldr r3, _080A3E60
+ ldr r2, _080A3E64
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A3E68
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A3E52
+ strh r0, [r1]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ adds r0, r1, 0x7
+ ldrb r3, [r2, 0x2]
+ cmp r0, r3
+ bne _080A3E4A
+ cmp r1, 0
+ beq _080A3E4A
+ subs r0, r1, 0x1
+ strb r0, [r2, 0x1]
+_080A3E4A:
+ ldr r0, _080A3E64
+ ldrb r0, [r0]
+ bl sub_80A3CA8
+_080A3E52:
+ ldr r0, _080A3E64
+ ldrb r0, [r0]
+ bl sub_80A3D24
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3E60: .4byte gUnknown_03005D10
+_080A3E64: .4byte gUnknown_02038559
+_080A3E68: .4byte gUnknown_03005D24
+ thumb_func_end sub_80A3E0C
+
+ thumb_func_start nullsub_16
+nullsub_16: @ 80A3E6C
+ bx lr
+ thumb_func_end nullsub_16
+
+ thumb_func_start sub_80A3E70
+sub_80A3E70: @ 80A3E70
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, _080A3E8C
+ ldr r2, [r2]
+ lsrs r0, 22
+ adds r0, r2
+ ldr r3, [r0]
+ lsrs r1, 22
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r0]
+ str r3, [r1]
+ bx lr
+ .align 2, 0
+_080A3E8C: .4byte gUnknown_03005D24
+ thumb_func_end sub_80A3E70
+
+ thumb_func_start sub_80A3E90
+sub_80A3E90: @ 80A3E90
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_16
+ ldr r0, _080A3EE8
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ ldrb r0, [r5, 0x1C]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080A3EEC
+ ldr r1, _080A3EF0
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r2, 2
+ adds r2, r3
+ ldrb r1, [r2, 0x1]
+ ldrb r2, [r2]
+ adds r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80A3E70
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ bl sub_80A763C
+ movs r0, 0
+ bl sub_80A7528
+ bl sub_80A736C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3EE8: .4byte gTasks
+_080A3EEC: .4byte gUnknown_03005D10
+_080A3EF0: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3E90
+
+ thumb_func_start sub_80A3EF4
+sub_80A3EF4: @ 80A3EF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_16
+ ldr r0, _080A3F44
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080A3F48
+ ldr r0, _080A3F4C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ mvns r0, r0
+ ldrb r2, [r1, 0x1C]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ cmp r2, 0x7
+ bhi _080A3F38
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+_080A3F38:
+ movs r0, 0
+ bl sub_80A7528
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3F44: .4byte gTasks
+_080A3F48: .4byte gUnknown_03005D10
+_080A3F4C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3EF4
+
+ thumb_func_start sub_80A3F50
+sub_80A3F50: @ 80A3F50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A3F94
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r1
+ ldr r5, _080A3F98
+ ldr r4, _080A3F9C
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r2, r1
+ adds r2, 0x1
+ strh r2, [r3, 0x1C]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1]
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x1
+ bl sub_80A7528
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3F94: .4byte gTasks
+_080A3F98: .4byte gUnknown_03005D10
+_080A3F9C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A3F50
+
+ thumb_func_start sub_80A3FA0
+sub_80A3FA0: @ 80A3FA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ ldr r0, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r6, r4, 16
+ lsrs r2, 24
+ adds r0, r2, r0
+ cmp r2, r0
+ bge _080A3FFC
+ mov r8, r5
+ adds r4, r5, r3
+ mov r12, r0
+_080A3FCC:
+ adds r0, r5, 0
+ lsls r3, r2, 16
+ cmp r8, r4
+ bge _080A3FEE
+ asrs r2, r3, 11
+_080A3FD6:
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r1, r2
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, r4
+ blt _080A3FD6
+_080A3FEE:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r12
+ blt _080A3FCC
+_080A3FFC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3FA0
+
+ thumb_func_start sub_80A4008
+sub_80A4008: @ 80A4008
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r4, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ bl sub_80A3FA0
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4008
+
+ thumb_func_start sub_80A4030
+sub_80A4030: @ 80A4030
+ ldr r1, _080A4058
+ lsls r0, 7
+ adds r1, r0, r1
+ movs r0, 0x5A
+ strh r0, [r1]
+ movs r0, 0x5B
+ strh r0, [r1, 0x2]
+ movs r0, 0x5C
+ strh r0, [r1, 0x4]
+ adds r2, r1, 0
+ adds r2, 0x40
+ movs r0, 0x6A
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r0, 0x6B
+ strh r0, [r2]
+ adds r1, 0x44
+ movs r0, 0x6C
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A4058: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A4030
+
+ thumb_func_start sub_80A405C
+sub_80A405C: @ 80A405C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080A40A8
+ movs r0, 0
+ adds r4, r2, 0
+ movs r1, 0x4F
+_080A406A:
+ strh r1, [r2]
+ strh r1, [r2, 0x2]
+ strh r1, [r2, 0x4]
+ adds r2, 0x40
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF
+ bls _080A406A
+ lsls r0, r3, 7
+ adds r2, r0, r4
+ movs r0, 0x5A
+ strh r0, [r2]
+ movs r0, 0x5B
+ strh r0, [r2, 0x2]
+ movs r0, 0x5C
+ strh r0, [r2, 0x4]
+ adds r1, r2, 0
+ adds r1, 0x40
+ movs r0, 0x6A
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6B
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6C
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A40A8: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A405C
+
+ thumb_func_start sub_80A40AC
+sub_80A40AC: @ 80A40AC
+ lsls r0, 24
+ ldr r1, _080A40CC
+ lsrs r0, 17
+ adds r1, r0, r1
+ movs r2, 0x4F
+ strh r2, [r1]
+ strh r2, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ adds r0, r1, 0
+ adds r0, 0x40
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r1, 0x44
+ strh r2, [r1]
+ bx lr
+ .align 2, 0
+_080A40CC: .4byte gBG2TilemapBuffer + 0xB4
+ thumb_func_end sub_80A40AC
+
+ thumb_func_start sub_80A40D0
+sub_80A40D0: @ 80A40D0
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r2, _080A4114
+ ldr r3, _080A4118
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ adds r7, r2, 0
+ adds r6, r3, 0
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ beq _080A4136
+ ldr r5, _080A411C
+_080A40EE:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r3, r0, r7
+ ldrb r2, [r3, 0x1]
+ adds r1, r2, r4
+ ldr r0, _080A4120
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080A4124
+ adds r0, r4, 0
+ bl sub_80A40AC
+ b _080A4136
+ .align 2, 0
+_080A4114: .4byte gUnknown_03005D10
+_080A4118: .4byte gUnknown_02038559
+_080A411C: .4byte gSaveBlock1 + 0x496
+_080A4120: .4byte gUnknown_03005D24
+_080A4124:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bhi _080A4136
+ adds r0, r2, r4
+ ldrb r3, [r3, 0x2]
+ cmp r0, r3
+ bne _080A40EE
+_080A4136:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A40D0
+
+ thumb_func_start sub_80A413C
+sub_80A413C: @ 80A413C
+ push {lr}
+ bl sub_80A40D0
+ ldr r1, _080A415C
+ ldr r0, _080A4160
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80A405C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A415C: .4byte gUnknown_03005D10
+_080A4160: .4byte gUnknown_02038559
+ thumb_func_end sub_80A413C
+
+ thumb_func_start sub_80A4164
+sub_80A4164: @ 80A4164
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0xB9
+ strb r4, [r0]
+ adds r0, 0x1
+ movs r4, 0xFC
+ strb r4, [r0]
+ movs r4, 0x14
+ strb r4, [r0, 0x1]
+ movs r4, 0x6
+ strb r4, [r0, 0x2]
+ adds r0, 0x3
+ bl ConvertIntToDecimalStringN
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4164
+
+ thumb_func_start sub_80A418C
+sub_80A418C: @ 80A418C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080A41D0
+ mov r8, r0
+ adds r1, r4, 0
+ mov r2, r9
+ bl sub_80A4164
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A41D0: .4byte gStringVar1
+ thumb_func_end sub_80A418C
+
+ thumb_func_start sub_80A41D4
+sub_80A41D4: @ 80A41D4
+ push {lr}
+ bl sub_80A763C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A41D4
+
+ thumb_func_start sub_80A41E0
+sub_80A41E0: @ 80A41E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ mov r9, r2
+ adds r5, r3, 0
+ ldr r4, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xFC
+ mov r8, r0
+ strb r0, [r7]
+ movs r6, 0x13
+ strb r6, [r7, 0x1]
+ movs r0, 0x8
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r1, r8
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ movs r1, 0x18
+ strb r1, [r0, 0x2]
+ adds r7, r0, 0x3
+ adds r4, 0x1
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 1
+ movs r2, 0x78
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ mov r1, r9
+ movs r3, 0
+ bl sub_8072C74
+ movs r1, 0xB9
+ strb r1, [r0]
+ adds r7, r0, 0x1
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl sub_8072C14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A41E0
+
+ thumb_func_start sub_80A425C
+sub_80A425C: @ 80A425C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080A42A4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1C
+ ldrsh r1, [r1, r0]
+ ldr r3, _080A42A8
+ ldr r0, _080A42AC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ subs r1, r0
+ subs r1, 0x1
+ cmp r1, r2
+ bne _080A429C
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_080A429C:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A42A4: .4byte gTasks
+_080A42A8: .4byte gUnknown_03005D10
+_080A42AC: .4byte gUnknown_02038559
+ thumb_func_end sub_80A425C
+
+ thumb_func_start sub_80A42B0
+sub_80A42B0: @ 80A42B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r0, _080A4344
+ mov r8, r0
+ ldr r1, _080A4348
+ ldr r0, _080A434C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ adds r1, r6
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bgt _080A4370
+ cmp r1, r0
+ bne _080A4374
+ ldr r0, _080A4350
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A4370
+ lsls r0, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r0, r1
+ lsrs r5, r0, 24
+ ldr r4, _080A4354
+ ldr r1, _080A4358
+ adds r0, r4, 0
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ lsls r0, r5, 6
+ ldr r1, _080A435C
+ adds r0, r1
+ movs r2, 0x4F
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ adds r1, r0, 0
+ adds r1, 0x40
+ strh r2, [r1]
+ adds r0, 0x42
+ strh r2, [r0]
+ cmp r6, 0x7
+ beq _080A4370
+ cmp r7, 0x1
+ bne _080A432E
+ mov r1, r8
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A4332
+_080A432E:
+ cmp r7, 0x2
+ bne _080A4360
+_080A4332:
+ adds r1, r5, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuFillWindowRectWithBlankTile
+ b _080A4370
+ .align 2, 0
+_080A4344: .4byte gUnknown_02038540
+_080A4348: .4byte gUnknown_03005D10
+_080A434C: .4byte gUnknown_02038559
+_080A4350: .4byte gUnknown_03000701
+_080A4354: .4byte gStringVar1
+_080A4358: .4byte gOtherText_CloseBag
+_080A435C: .4byte gBG2TilemapBuffer + 0x1C
+_080A4360:
+ adds r1, r5, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1D
+ movs r3, 0x11
+ bl MenuFillWindowRectWithBlankTile
+_080A4370:
+ movs r0, 0x1
+ b _080A4376
+_080A4374:
+ movs r0, 0
+_080A4376:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A42B0
+
+ thumb_func_start sub_80A4380
+sub_80A4380: @ 80A4380
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r2, [sp]
+ mov r10, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A43A0
+ mov r8, r0
+ b _080A441A
+ .align 2, 0
+_080A43A0: .4byte gUnknown_03005D24
+_080A43A4:
+ ldr r1, _080A4440
+ ldr r0, _080A4444
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r7, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r7, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ ldr r6, _080A4448
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_80A425C
+ adds r6, r0, 0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0x66
+ movs r3, 0
+ bl sub_8072C74
+ adds r6, r0, 0
+ movs r0, 0xB9
+ strb r0, [r6]
+ adds r6, 0x1
+ mov r1, r8
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r1, [r4, 0x2]
+ adds r0, r6, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A4448
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080A441A:
+ ldr r0, [sp]
+ cmp r7, r0
+ bgt _080A4430
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A43A4
+_080A4430:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4440: .4byte gUnknown_03005D10
+_080A4444: .4byte gUnknown_02038559
+_080A4448: .4byte gStringVar1
+ thumb_func_end sub_80A4380
+
+ thumb_func_start sub_80A444C
+sub_80A444C: @ 80A444C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _080A446C
+ mov r9, r0
+ b _080A4520
+ .align 2, 0
+_080A446C: .4byte gSaveBlock1 + 0x496
+_080A4470:
+ ldr r1, _080A44E8
+ ldr r0, _080A44EC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r6, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ ldr r7, _080A44F0
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80A425C
+ adds r7, r0, 0
+ ldr r0, _080A44F4
+ mov r8, r0
+ ldr r0, [r0]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r7, 0
+ movs r2, 0x60
+ movs r3, 0
+ bl sub_8072C74
+ ldr r0, _080A44F0
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ ldr r0, _080A44F8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A44FC
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r2, r9
+ ldrh r2, [r2]
+ cmp r0, r2
+ bne _080A451A
+ adds r0, r6, 0
+ bl sub_80A4030
+ b _080A451A
+ .align 2, 0
+_080A44E8: .4byte gUnknown_03005D10
+_080A44EC: .4byte gUnknown_02038559
+_080A44F0: .4byte gStringVar1
+_080A44F4: .4byte gUnknown_03005D24
+_080A44F8: .4byte gUnknown_02038558
+_080A44FC:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r2, r9
+ ldrh r2, [r2]
+ cmp r0, r2
+ bne _080A4514
+ adds r0, r6, 0
+ bl sub_80A405C
+ b _080A451A
+_080A4514:
+ adds r0, r6, 0
+ bl sub_80A40AC
+_080A451A:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080A4520:
+ ldr r0, [sp]
+ cmp r6, r0
+ bgt _080A4536
+ adds r0, r6, 0
+ ldr r1, [sp, 0x4]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4470
+_080A4536:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A444C
+
+ thumb_func_start sub_80A4548
+sub_80A4548: @ 80A4548
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _080A456C
+ mov r9, r0
+ b _080A46C2
+ .align 2, 0
+_080A456C: .4byte gBG2TilemapBuffer
+_080A4570:
+ ldr r1, _080A461C
+ ldr r0, _080A4620
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ add r4, r8
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r0, r1, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r0, r3
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r0, 5
+ adds r0, 0xE
+ adds r5, r0, 0
+ ldr r6, _080A4624
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ mov r2, r8
+ bl sub_80A425C
+ adds r6, r0, 0
+ ldr r3, _080A4628
+ mov r10, r3
+ ldr r0, [r3]
+ lsls r7, r4, 2
+ adds r3, r7, r0
+ ldrh r1, [r3]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080A4634
+ lsls r0, r5, 1
+ add r0, r9
+ movs r1, 0x59
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ movs r2, 0x4F
+ strh r2, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r9
+ movs r1, 0x69
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x21
+ lsls r0, 1
+ add r0, r9
+ strh r2, [r0]
+ ldrh r0, [r3]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ adds r2, r0, 0
+ muls r2, r1
+ ldr r0, _080A462C
+ adds r2, r0
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldr r3, _080A4630
+ adds r1, r3, 0
+ ldrh r3, [r0]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r3, [r0, 0x2]
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r6, 0
+ bl sub_80A41E0
+ b _080A46AE
+ .align 2, 0
+_080A461C: .4byte gUnknown_03005D10
+_080A4620: .4byte gUnknown_02038559
+_080A4624: .4byte gStringVar1
+_080A4628: .4byte gUnknown_03005D24
+_080A462C: .4byte gMoveNames
+_080A4630: .4byte 0xfffffee0
+_080A4634:
+ lsls r0, r5, 1
+ add r0, r9
+ ldr r1, _080A46EC
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0x1
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0xF
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x21
+ lsls r0, 1
+ add r0, r9
+ adds r1, 0x1
+ strh r1, [r0]
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r4, 0x13
+ strb r4, [r6, 0x1]
+ movs r0, 0x11
+ strb r0, [r6, 0x2]
+ adds r6, 0x3
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r1, [r0]
+ ldr r3, _080A46F0
+ adds r1, r3
+ adds r0, r6, 0
+ bl ConvertIntToDecimalString
+ adds r6, r0, 0
+ movs r0, 0xFC
+ strb r0, [r6]
+ strb r4, [r6, 0x1]
+ movs r0, 0x18
+ strb r0, [r6, 0x2]
+ adds r6, 0x3
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080A46F4
+ adds r1, r0
+ adds r0, r6, 0
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+_080A46AE:
+ ldr r0, _080A46F8
+ movs r1, 0xE
+ ldr r2, [sp, 0x10]
+ bl MenuPrint
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080A46C2:
+ ldr r3, [sp, 0x8]
+ cmp r8, r3
+ bgt _080A46DA
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A46DA
+ b _080A4570
+_080A46DA:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A46EC: .4byte 0x0000105d
+_080A46F0: .4byte 0xfffffeae
+_080A46F4: .4byte gMoveNames
+_080A46F8: .4byte gStringVar1
+ thumb_func_end sub_80A4548
+
+ thumb_func_start sub_80A46FC
+sub_80A46FC: @ 80A46FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _080A4724
+ mov r10, r0
+ ldr r1, _080A4728
+ mov r9, r1
+ ldr r0, _080A472C
+ mov r8, r0
+ b _080A47B4
+ .align 2, 0
+_080A4724: .4byte gBG2TilemapBuffer
+_080A4728: .4byte gStringVar2
+_080A472C: .4byte gUnknown_03005D24
+_080A4730:
+ ldr r1, _080A47DC
+ ldr r0, _080A47E0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ adds r4, r6, r4
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ lsrs r5, 24
+ lsls r0, r5, 5
+ adds r0, 0xE
+ lsls r1, r0, 1
+ add r1, r10
+ movs r2, 0x59
+ strh r2, [r1]
+ adds r0, 0x20
+ lsls r0, 1
+ add r0, r10
+ movs r1, 0x69
+ strh r1, [r0]
+ ldr r7, _080A47E4
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80A425C
+ adds r7, r0, 0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 2
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ mov r1, r9
+ bl itemid_copy_name
+ mov r1, r8
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r1, [r4]
+ subs r1, 0x84
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r3, [r4, 0x2]
+ movs r0, 0x3
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r2, r9
+ bl sub_80A41E0
+ ldr r0, _080A47E4
+ movs r1, 0xE
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080A47B4:
+ ldr r0, [sp, 0x8]
+ cmp r6, r0
+ bgt _080A47CA
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ bl sub_80A42B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4730
+_080A47CA:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A47DC: .4byte gUnknown_03005D10
+_080A47E0: .4byte gUnknown_02038559
+_080A47E4: .4byte gStringVar1
+ thumb_func_end sub_80A46FC
+
+ thumb_func_start sub_80A47E8
+sub_80A47E8: @ 80A47E8
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080A4808
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _080A4852
+ lsls r0, 2
+ ldr r1, _080A480C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A4808: .4byte gUnknown_02038559
+_080A480C: .4byte _080A4810
+ .align 2, 0
+_080A4810:
+ .4byte _080A4824
+ .4byte _080A4824
+ .4byte _080A483C
+ .4byte _080A4848
+ .4byte _080A4830
+_080A4824:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4380
+ b _080A4852
+_080A4830:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A444C
+ b _080A4852
+_080A483C:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4548
+ b _080A4852
+_080A4848:
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A46FC
+_080A4852:
+ ldr r1, _080A4870
+ ldr r0, _080A4874
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080A4878
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+ b _080A4880
+ .align 2, 0
+_080A4870: .4byte gUnknown_03005D10
+_080A4874: .4byte gUnknown_02038559
+_080A4878:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_080A4880:
+ ldr r0, _080A48A4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A48B0
+ ldr r1, _080A48A8
+ ldr r0, _080A48AC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x8
+ ldrb r0, [r0, 0x2]
+ adds r0, 0x1
+ cmp r1, r0
+ blt _080A48C6
+ b _080A48D8
+ .align 2, 0
+_080A48A4: .4byte gUnknown_03000701
+_080A48A8: .4byte gUnknown_03005D10
+_080A48AC: .4byte gUnknown_02038559
+_080A48B0:
+ ldr r2, _080A48D0
+ ldr r0, _080A48D4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x8
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ bge _080A48D8
+_080A48C6:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+ b _080A48E0
+ .align 2, 0
+_080A48D0: .4byte gUnknown_03005D10
+_080A48D4: .4byte gUnknown_02038559
+_080A48D8:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+_080A48E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A47E8
+
+ thumb_func_start sub_80A48E8
+sub_80A48E8: @ 80A48E8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r3, 0
+ bl sub_80A47E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A48E8
+
+ thumb_func_start sub_80A48F8
+sub_80A48F8: @ 80A48F8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A47E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A48F8
+
+ thumb_func_start sub_80A490C
+sub_80A490C: @ 80A490C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080A4960
+ ldr r0, _080A4964
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A4974
+ ldr r0, _080A4968
+ movs r4, 0x1
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072A18
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A496C
+ ldr r0, _080A4970
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0x78
+ movs r3, 0x68
+ bl sub_8072A18
+ adds r0, r5, r0
+ b _080A4988
+ .align 2, 0
+_080A4960: .4byte gUnknown_03005D10
+_080A4964: .4byte gUnknown_02038559
+_080A4968: .4byte gOtherText_ReturnTo
+_080A496C: .4byte gUnknown_0840E740
+_080A4970: .4byte gUnknown_03000701
+_080A4974:
+ adds r0, r3, 0
+ bl itemid_get_description
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072A18
+_080A4988:
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bhi _080A49A4
+ lsls r1, r5, 25
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A49A4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A490C
+
+ thumb_func_start sub_80A49AC
+sub_80A49AC: @ 80A49AC
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080A49E8
+ ldr r0, _080A49EC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A4A18
+ cmp r4, 0
+ bne _080A49F4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A49F0
+ movs r1, 0x4
+ movs r2, 0x68
+ b _080A4A08
+ .align 2, 0
+_080A49E8: .4byte gUnknown_03005D10
+_080A49EC: .4byte gUnknown_02038559
+_080A49F0: .4byte gOtherText_ReturnTo
+_080A49F4:
+ cmp r4, 0x1
+ bne _080A4A4C
+ ldr r1, _080A4A10
+ ldr r0, _080A4A14
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x4
+ movs r2, 0x78
+_080A4A08:
+ movs r3, 0
+ bl sub_80729D8
+ b _080A4A4C
+ .align 2, 0
+_080A4A10: .4byte gUnknown_0840E740
+_080A4A14: .4byte gUnknown_03000701
+_080A4A18:
+ cmp r4, 0
+ bne _080A4A28
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A4A28:
+ lsls r1, r5, 16
+ asrs r1, 16
+ mov r0, sp
+ adds r2, r4, 0
+ bl sub_80A99A8
+ cmp r0, 0
+ beq _080A4A4C
+ lsls r2, r4, 20
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, sp
+ movs r1, 0x4
+ movs r3, 0
+ bl sub_80729D8
+_080A4A4C:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A49AC
+
+ thumb_func_start sub_80A4A54
+sub_80A4A54: @ 80A4A54
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r2, 0x1
+ adds r2, r1, 0
+ adds r1, r5, 0
+_080A4A5E:
+ ldrb r3, [r2]
+ adds r0, r3, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A4A8A
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080A4A78
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080A4A92
+_080A4A78:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080A4A84
+ movs r0, 0
+ b _080A4A92
+_080A4A84:
+ adds r1, r5, 0
+ adds r2, 0x1
+ b _080A4A5E
+_080A4A8A:
+ strb r3, [r1]
+ adds r2, 0x1
+ adds r1, 0x1
+ b _080A4A5E
+_080A4A92:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4A54
+
+ thumb_func_start sub_80A4A98
+sub_80A4A98: @ 80A4A98
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ bne _080A4AB0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+_080A4AB0:
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80A4A54
+ cmp r0, 0
+ beq _080A4AD2
+ lsls r2, r4, 20
+ movs r0, 0xD0
+ lsls r0, 15
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, sp
+ movs r1, 0x4
+ movs r3, 0
+ bl sub_80729D8
+_080A4AD2:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4A98
+
+ thumb_func_start sub_80A4ADC
+sub_80A4ADC: @ 80A4ADC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A4B0C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080A4AFA
+ movs r0, 0
+ bl sub_80A7528
+_080A4AFA:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080A4B10
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B0C: .4byte gTasks
+_080A4B10: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A4ADC
+
+ thumb_func_start sub_80A4B14
+sub_80A4B14: @ 80A4B14
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080A4B50
+ ldr r1, _080A4B54
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, 24
+ ldrb r2, [r1, 0x1]
+ adds r0, r2
+ strb r0, [r1, 0x1]
+ movs r0, 0
+ bl MoveMenuCursor
+ bl sub_80A73C0
+ bl sub_80A763C
+ adds r0, r4, 0
+ bl sub_80A4ADC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B50: .4byte gUnknown_03005D10
+_080A4B54: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4B14
+
+ thumb_func_start sub_80A4B58
+sub_80A4B58: @ 80A4B58
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ bl MoveMenuCursor
+ ldr r2, _080A4B88
+ ldr r1, _080A4B8C
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 2
+ adds r1, r2
+ strb r0, [r1]
+ bl sub_80A73C0
+ adds r0, r4, 0
+ bl sub_80A4ADC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B88: .4byte gUnknown_03005D10
+_080A4B8C: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4B58
+
+ thumb_func_start sub_80A4B90
+sub_80A4B90: @ 80A4B90
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x6
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4BBC
+ ldr r0, _080A4BB4
+ cmp r4, r0
+ beq _080A4BAE
+ adds r0, 0xD
+ cmp r4, r0
+ bne _080A4BBC
+_080A4BAE:
+ ldr r0, _080A4BB8
+ b _080A4BE6
+ .align 2, 0
+_080A4BB4: .4byte 0x00000103
+_080A4BB8: .4byte gOtherText_Walk
+_080A4BBC:
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A4BE4
+ ldr r1, _080A4BDC
+ ldr r0, _080A4BE0
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ b _080A4BE6
+ .align 2, 0
+_080A4BDC: .4byte gUnknown_083C1640
+_080A4BE0: .4byte gUnknown_03000704
+_080A4BE4:
+ ldr r0, _080A4BEC
+_080A4BE6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A4BEC: .4byte gOtherText_Check
+ thumb_func_end sub_80A4B90
+
+ thumb_func_start sub_80A4BF0
+sub_80A4BF0: @ 80A4BF0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r7, _080A4C38
+ ldrb r4, [r7]
+ cmp r4, 0x4
+ beq _080A4C00
+ b _080A4CF8
+_080A4C00:
+ movs r0, 0
+ movs r1, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_80A4008
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4C40
+ ldr r0, _080A4C3C
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A4C40
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80A7834
+ b _080A4CA0
+ .align 2, 0
+_080A4C38: .4byte gUnknown_02038564
+_080A4C3C: .4byte gUnknown_03000701
+_080A4C40:
+ movs r6, 0
+ ldr r0, _080A4C5C
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080A4CA0
+ ldr r4, _080A4C60
+_080A4C4C:
+ cmp r6, 0
+ bne _080A4C68
+ ldr r0, _080A4C64
+ ldrh r0, [r0]
+ bl sub_80A4B90
+ adds r3, r0, 0
+ b _080A4C76
+ .align 2, 0
+_080A4C5C: .4byte gUnknown_02038564
+_080A4C60: .4byte gUnknown_083C1640
+_080A4C64: .4byte word_203855E
+_080A4C68:
+ ldr r0, _080A4CC4
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r4
+ ldr r3, [r0]
+_080A4C76:
+ lsrs r0, r6, 1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x1
+ ands r2, r6
+ lsls r2, 1
+ adds r2, 0x8
+ adds r0, r3, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A4CC8
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080A4C4C
+_080A4CA0:
+ ldr r0, _080A4CCC
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A4CD4
+ ldr r0, _080A4CC8
+ ldrb r3, [r0]
+ ldr r0, _080A4CD0
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ bl InitMenu
+ b _080A4CEA
+ .align 2, 0
+_080A4CC4: .4byte gUnknown_03000704
+_080A4CC8: .4byte gUnknown_02038564
+_080A4CCC: .4byte gUnknown_03000701
+_080A4CD0: .4byte gUnknown_03000700
+_080A4CD4:
+ ldr r0, _080A4CF4
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ bl InitMenu
+_080A4CEA:
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A4D8A
+ .align 2, 0
+_080A4CF4: .4byte gUnknown_02038564
+_080A4CF8:
+ movs r0, 0
+ movs r1, 0x5
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ movs r0, 0x6
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ movs r3, 0xC
+ bl sub_80A4008
+ movs r6, 0
+ ldrb r7, [r7]
+ cmp r6, r7
+ bcs _080A4D6E
+ ldr r7, _080A4D98
+_080A4D1E:
+ ldr r0, _080A4D9C
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r7
+ ldr r5, [r0]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 25
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r2, r0
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080A4DA0
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080A4D1E
+_080A4D6E:
+ ldr r0, _080A4DA0
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ bl InitMenu
+ movs r0, 0x2F
+ bl sub_8072DCC
+_080A4D8A:
+ movs r0, 0x2
+ bl sub_80A7528
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4D98: .4byte gUnknown_083C1640
+_080A4D9C: .4byte gUnknown_03000704
+_080A4DA0: .4byte gUnknown_02038564
+ thumb_func_end sub_80A4BF0
+
+ thumb_func_start sub_80A4DA4
+sub_80A4DA4: @ 80A4DA4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_80A73FC
+ movs r0, 0x6
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x6
+ movs r3, 0xD
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0x5
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ bl sub_80A7590
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4DA4
+
+ thumb_func_start sub_80A4DD8
+sub_80A4DD8: @ 80A4DD8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r1, r2, 0
+ adds r6, r3, 0
+ ldr r5, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r3, _080A4E84
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r0, 0x1
+ strh r0, [r2, 0xA]
+ adds r0, r4, 0x2
+ mov r9, r0
+ strh r0, [r2, 0xC]
+ adds r0, r1, 0x1
+ mov r8, r0
+ strh r0, [r2, 0xE]
+ adds r2, r4, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, r5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl MenuDrawTextWindow
+ ldr r0, _080A4E88
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ subs r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ subs r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ adds r3, r6, 0
+ bl sub_80A4008
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ mov r0, r10
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ mov r3, r8
+ bl sub_80A418C
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4E84: .4byte gTasks
+_080A4E88: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A4DD8
+
+ thumb_func_start sub_80A4E8C
+sub_80A4E8C: @ 80A4E8C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_80F979C
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x2
+ bl sub_80F996C
+ movs r0, 0x3
+ bl sub_80F996C
+ ldr r5, _080A4F04
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A3B04
+ ldr r0, _080A4F08
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80A3AC0
+ bl sub_80A3770
+ bl sub_80A7C64
+ adds r0, r6, 0
+ bl sub_80A7C20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4F04: .4byte gBG2TilemapBuffer
+_080A4F08: .4byte gUnknown_02038559
+ thumb_func_end sub_80A4E8C
+
+ thumb_func_start sub_80A4F0C
+sub_80A4F0C: @ 80A4F0C
+ push {r4,lr}
+ ldr r0, _080A4F38
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080A4F60
+ ldr r4, _080A4F3C
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x10
+ beq _080A4F30
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080A4F40
+_080A4F30:
+ movs r0, 0x1
+ movs r1, 0x2
+ b _080A4F58
+ .align 2, 0
+_080A4F38: .4byte gUnknown_03000701
+_080A4F3C: .4byte gMain
+_080A4F40:
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x20
+ beq _080A4F52
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A4F60
+_080A4F52:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x1
+_080A4F58:
+ bl sub_80A4E8C
+ movs r0, 0x1
+ b _080A4F62
+_080A4F60:
+ movs r0, 0
+_080A4F62:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4F0C
+
+ thumb_func_start sub_80A4F68
+sub_80A4F68: @ 80A4F68
+ push {lr}
+ bl sub_80A4F0C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4F68
+
+ thumb_func_start sub_80A4F74
+sub_80A4F74: @ 80A4F74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ movs r5, 0
+ ldr r0, _080A4FAC
+ ldrh r0, [r0, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A4FE8
+ ldr r1, _080A4FB0
+ ldr r0, _080A4FB4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A4FB8
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r4, 0
+ bl sub_80A4B58
+ b _080A4FC8
+ .align 2, 0
+_080A4FAC: .4byte gMain
+_080A4FB0: .4byte gUnknown_03005D10
+_080A4FB4: .4byte gUnknown_02038559
+_080A4FB8:
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080A4FC8
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r4, 0
+ bl sub_80A4B14
+_080A4FC8:
+ ldr r0, _080A4FE0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A50AE
+ ldr r1, _080A4FE4
+ ldrh r0, [r1, 0x32]
+ cmp r0, 0x5
+ bne _080A50AE
+ movs r0, 0xB
+ strh r0, [r1, 0x32]
+ b _080A50AE
+ .align 2, 0
+_080A4FE0: .4byte gLinkOpen
+_080A4FE4: .4byte gMain
+_080A4FE8:
+ cmp r1, 0x80
+ bne _080A5088
+ ldr r0, _080A5020
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080A502C
+ ldr r1, _080A5024
+ ldr r0, _080A5028
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bne _080A504E
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _080A5068
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B14
+ b _080A5068
+ .align 2, 0
+_080A5020: .4byte gUnknown_03000701
+_080A5024: .4byte gUnknown_03005D10
+_080A5028: .4byte gUnknown_02038559
+_080A502C:
+ ldr r1, _080A5058
+ ldr r0, _080A505C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x1]
+ ldrb r3, [r2]
+ adds r1, r3
+ ldrb r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5068
+ ldrb r2, [r2, 0x3]
+ cmp r3, r2
+ beq _080A5060
+_080A504E:
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B58
+ b _080A5068
+ .align 2, 0
+_080A5058: .4byte gUnknown_03005D10
+_080A505C: .4byte gUnknown_02038559
+_080A5060:
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A4B14
+_080A5068:
+ movs r5, 0x1
+ ldr r0, _080A5080
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A50C0
+ ldr r1, _080A5084
+ ldrh r0, [r1, 0x32]
+ cmp r0, 0x5
+ bne _080A50C0
+ movs r0, 0xB
+ strh r0, [r1, 0x32]
+ b _080A50C0
+ .align 2, 0
+_080A5080: .4byte gLinkOpen
+_080A5084: .4byte gMain
+_080A5088:
+ ldr r0, _080A50B4
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A50BC
+ bl sub_80A4F0C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A50BC
+ bl sub_80A73F0
+ ldr r0, _080A50B8
+ str r0, [r4]
+_080A50AE:
+ movs r5, 0x1
+ b _080A50C0
+ .align 2, 0
+_080A50B4: .4byte gTasks
+_080A50B8: .4byte sub_80A4F68
+_080A50BC:
+ bl sub_80A73C0
+_080A50C0:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4F74
+
+ thumb_func_start sub_80A50C8
+sub_80A50C8: @ 80A50C8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A5148
+ adds r5, r0, r1
+ ldr r0, _080A514C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080A50E6
+ b _080A52BC
+_080A50E6:
+ adds r0, r4, 0
+ bl sub_80A4F74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A50F6
+ b _080A526A
+_080A50F6:
+ ldr r2, _080A5150
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5190
+ ldr r3, _080A5154
+ ldrb r0, [r3]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080A5190
+ ldr r0, _080A5158
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080A5190
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5160
+ ldr r1, _080A515C
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A5138
+ b _080A526A
+_080A5138:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A3F50
+ b _080A526A
+ .align 2, 0
+_080A5148: .4byte gUnknown_03004B28
+_080A514C: .4byte gPaletteFade
+_080A5150: .4byte gMain
+_080A5154: .4byte gUnknown_02038559
+_080A5158: .4byte gUnknown_03000701
+_080A515C: .4byte gUnknown_03005D10
+_080A5160:
+ ldr r1, _080A5184
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ beq _080A5188
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A3E90
+ b _080A526A
+ .align 2, 0
+_080A5184: .4byte gUnknown_03005D10
+_080A5188:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+ b _080A526A
+_080A5190:
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080A5272
+ ldr r7, _080A51D4
+ ldr r6, _080A51D8
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _080A51F0
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ bne _080A51E8
+ ldr r0, _080A51DC
+ strh r1, [r0]
+ ldr r1, _080A51E0
+ ldr r0, _080A51E4
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A526A
+ .align 2, 0
+_080A51D4: .4byte gUnknown_03005D10
+_080A51D8: .4byte gUnknown_02038559
+_080A51DC: .4byte word_203855E
+_080A51E0: .4byte gUnknown_083C16BC
+_080A51E4: .4byte gUnknown_03000701
+_080A51E8:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+ b _080A526A
+_080A51F0:
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080A5264
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080A5250
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ strb r0, [r2]
+ ldr r3, _080A5254
+ ldrb r0, [r2]
+ ldr r1, _080A5258
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldr r1, _080A525C
+ ldr r0, _080A5260
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ movs r0, 0
+ bl sub_80F98A4
+ movs r0, 0x1
+ bl sub_80F98A4
+ movs r0, 0x2
+ bl sub_80F98A4
+ movs r0, 0x3
+ bl sub_80F98A4
+ bl sub_80A797C
+ b _080A526A
+ .align 2, 0
+_080A5250: .4byte gUnknown_02038560
+_080A5254: .4byte word_203855E
+_080A5258: .4byte gUnknown_03005D24
+_080A525C: .4byte gUnknown_083C16BC
+_080A5260: .4byte gUnknown_03000701
+_080A5264:
+ adds r0, r4, 0
+ bl sub_80A3E90
+_080A526A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _080A52BC
+_080A5272:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080A52BC
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ bne _080A52B0
+ ldr r2, _080A52A4
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ beq _080A52B6
+ ldr r0, _080A52A8
+ strh r1, [r0]
+ ldr r1, _080A52AC
+ ldrb r0, [r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A52B6
+ .align 2, 0
+_080A52A4: .4byte gUnknown_03000701
+_080A52A8: .4byte word_203855E
+_080A52AC: .4byte gUnknown_083C16BC
+_080A52B0:
+ adds r0, r4, 0
+ bl sub_80A3EF4
+_080A52B6:
+ adds r0, r4, 0
+ bl sub_808B5B4
+_080A52BC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A50C8
+
+ thumb_func_start sub_80A52C4
+sub_80A52C4: @ 80A52C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ adds r4, r3, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080A52F4
+ adds r1, r0
+ ldr r0, _080A52F8
+ ldrh r0, [r0, 0x30]
+ movs r2, 0xF0
+ ands r2, r0
+ cmp r2, 0x40
+ bne _080A52FC
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, r3
+ beq _080A533E
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x1
+ b _080A5340
+ .align 2, 0
+_080A52F4: .4byte gUnknown_03004B28
+_080A52F8: .4byte gMain
+_080A52FC:
+ cmp r2, 0x80
+ bne _080A5312
+ ldrh r2, [r1, 0x2]
+ movs r4, 0x2
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x1
+ beq _080A530E
+ subs r0, r2, 0x1
+ b _080A5340
+_080A530E:
+ strh r3, [r1, 0x2]
+ b _080A5342
+_080A5312:
+ cmp r2, 0x10
+ bne _080A532A
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ adds r0, 0xA
+ cmp r0, r3
+ bge _080A5326
+ ldrh r0, [r1, 0x2]
+ adds r0, 0xA
+ b _080A5340
+_080A5326:
+ strh r4, [r1, 0x2]
+ b _080A5342
+_080A532A:
+ cmp r2, 0x20
+ bne _080A5346
+ ldrh r2, [r1, 0x2]
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA
+ ble _080A533E
+ adds r0, r2, 0
+ subs r0, 0xA
+ b _080A5340
+_080A533E:
+ movs r0, 0x1
+_080A5340:
+ strh r0, [r1, 0x2]
+_080A5342:
+ movs r0, 0x1
+ b _080A5348
+_080A5346:
+ movs r0, 0
+_080A5348:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A52C4
+
+ thumb_func_start sub_80A5350
+sub_80A5350: @ 80A5350
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080A539C
+ adds r4, r1, r2
+ ldr r1, _080A53A0
+ ldrb r1, [r1]
+ ldr r2, _080A53A4
+ ldr r2, [r2]
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_80A52C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A53C0
+ ldr r0, _080A53A8
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A53AC
+ ldrh r0, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ bl sub_80A418C
+ b _080A53BC
+ .align 2, 0
+_080A539C: .4byte gUnknown_03004B28
+_080A53A0: .4byte gUnknown_02038560
+_080A53A4: .4byte gUnknown_03005D24
+_080A53A8: .4byte gUnknown_02038559
+_080A53AC:
+ ldrh r0, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x1
+ bl sub_80A418C
+_080A53BC:
+ movs r0, 0x1
+ b _080A53C2
+_080A53C0:
+ movs r0, 0
+_080A53C2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A5350
+
+ thumb_func_start sub_80A53CC
+sub_80A53CC: @ 80A53CC
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A53EA
+ bl sub_80A3770
+ ldr r0, _080A53F0
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A53F4
+ strb r0, [r1]
+_080A53EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A53F0: .4byte sub_80A50C8
+_080A53F4: .4byte gUnknown_02038563
+ thumb_func_end sub_80A53CC
+
+ thumb_func_start sub_80A53F8
+sub_80A53F8: @ 80A53F8
+ push {lr}
+ ldr r0, _080A540C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080A5410
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A540C: .4byte gUnknown_03000701
+_080A5410: .4byte sub_80A53CC
+ thumb_func_end sub_80A53F8
+
+ thumb_func_start sub_80A5414
+sub_80A5414: @ 80A5414
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ bl rfu_lacks_rfufunc
+ cmp r0, 0
+ bne _080A5426
+ b _080A5552
+_080A5426:
+ ldr r2, _080A5460
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A546C
+ ldr r4, _080A5464
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5440
+ b _080A5552
+_080A5440:
+ ldrb r1, [r4]
+ ldr r0, _080A5468
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _080A5452
+ b _080A5552
+_080A5452:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A54EE
+ .align 2, 0
+_080A5460: .4byte gMain
+_080A5464: .4byte gUnknown_03000700
+_080A5468: .4byte gUnknown_03000704
+_080A546C:
+ cmp r1, 0x80
+ bne _080A549C
+ ldr r4, _080A5494
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5552
+ ldrb r1, [r4]
+ ldr r0, _080A5498
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _080A54EE
+ .align 2, 0
+_080A5494: .4byte gUnknown_03000700
+_080A5498: .4byte gUnknown_03000704
+_080A549C:
+ cmp r1, 0x20
+ bne _080A54CC
+ ldr r4, _080A54C4
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bls _080A5552
+ adds r1, r0, 0
+ ldr r0, _080A54C8
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ negs r0, r0
+ b _080A54EE
+ .align 2, 0
+_080A54C4: .4byte gUnknown_03000700
+_080A54C8: .4byte gUnknown_03000704
+_080A54CC:
+ cmp r1, 0x10
+ bne _080A5500
+ ldr r4, _080A54F8
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bhi _080A5552
+ adds r1, r0, 0
+ ldr r0, _080A54FC
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x8
+ beq _080A5552
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+_080A54EE:
+ bl MoveMenuCursor3
+ strb r0, [r4]
+ b _080A5552
+ .align 2, 0
+_080A54F8: .4byte gUnknown_03000700
+_080A54FC: .4byte gUnknown_03000704
+_080A5500:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5590
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5552
+ ldr r1, _080A5570
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r1, _080A5574
+ ldr r0, _080A5578
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A557C
+ bl sub_80A4DA4
+ ldr r1, _080A5580
+ ldr r0, _080A5584
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+_080A5552:
+ cmp r5, 0
+ bne _080A55FA
+ ldr r0, _080A5588
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A55E0
+ ldr r0, _080A558C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A55D4
+ movs r0, 0xC
+ bl sub_8072DDC
+ b _080A55FA
+ .align 2, 0
+_080A5570: .4byte gTasks
+_080A5574: .4byte gUnknown_03005D10
+_080A5578: .4byte gUnknown_02038559
+_080A557C: .4byte gBG1TilemapBuffer
+_080A5580: .4byte gUnknown_083C1640
+_080A5584: .4byte gUnknown_03000704
+_080A5588: .4byte gUnknown_03000701
+_080A558C: .4byte gUnknown_03000700
+_080A5590:
+ ldr r1, _080A55C0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r0, _080A55C4
+ bl sub_80A4DA4
+ ldr r1, _080A55C8
+ ldr r0, _080A55CC
+ ldrb r2, [r0]
+ ldr r0, _080A55D0
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+ b _080A5552
+ .align 2, 0
+_080A55C0: .4byte gTasks
+_080A55C4: .4byte gBG1TilemapBuffer
+_080A55C8: .4byte gUnknown_083C1640
+_080A55CC: .4byte gUnknown_03000700
+_080A55D0: .4byte gUnknown_03000704
+_080A55D4:
+ cmp r0, 0x1
+ bls _080A55E8
+ movs r0, 0x30
+ bl sub_8072DCC
+ b _080A55FA
+_080A55E0:
+ ldr r0, _080A55F0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080A55F4
+_080A55E8:
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A55FA
+ .align 2, 0
+_080A55F0: .4byte gUnknown_03000700
+_080A55F4:
+ movs r0, 0x30
+ bl sub_8072DCC
+_080A55FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5414
+
+ thumb_func_start sub_80A5600
+sub_80A5600: @ 80A5600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r2, _080A563C
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A5648
+ ldr r4, _080A5640
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080A561E
+ b _080A5736
+_080A561E:
+ adds r1, r0, 0
+ ldr r0, _080A5644
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _080A5630
+ b _080A5736
+_080A5630:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A56D2
+ .align 2, 0
+_080A563C: .4byte gMain
+_080A5640: .4byte gUnknown_03000700
+_080A5644: .4byte gUnknown_03000704
+_080A5648:
+ cmp r1, 0x80
+ bne _080A5680
+ ldr r4, _080A5674
+ ldrb r1, [r4]
+ ldr r0, _080A5678
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5736
+ cmp r1, 0x2
+ beq _080A5736
+ ldr r0, _080A567C
+ ldr r0, [r0]
+ adds r0, r1, r0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _080A56D2
+ .align 2, 0
+_080A5674: .4byte gUnknown_03000700
+_080A5678: .4byte gUnknown_02038564
+_080A567C: .4byte gUnknown_03000704
+_080A5680:
+ cmp r1, 0x20
+ bne _080A56B0
+ ldr r4, _080A56A8
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bls _080A5736
+ adds r1, r0, 0
+ ldr r0, _080A56AC
+ ldr r0, [r0]
+ adds r1, r0
+ subs r1, 0x3
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x3
+ negs r0, r0
+ b _080A56D2
+ .align 2, 0
+_080A56A8: .4byte gUnknown_03000700
+_080A56AC: .4byte gUnknown_03000704
+_080A56B0:
+ cmp r1, 0x10
+ bne _080A56E4
+ ldr r4, _080A56DC
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _080A5736
+ adds r1, r0, 0
+ ldr r0, _080A56E0
+ ldr r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x8
+ beq _080A5736
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x3
+_080A56D2:
+ bl MoveMenuCursor3
+ strb r0, [r4]
+ b _080A5736
+ .align 2, 0
+_080A56DC: .4byte gUnknown_03000700
+_080A56E0: .4byte gUnknown_03000704
+_080A56E4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5768
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5736
+ ldr r1, _080A574C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r1, _080A5750
+ ldr r0, _080A5754
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A5758
+ bl sub_80A4DA4
+ ldr r1, _080A575C
+ ldr r0, _080A5760
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+_080A5736:
+ cmp r5, 0
+ bne _080A57BE
+ ldr r0, _080A5764
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A57AC
+ movs r0, 0xC
+ bl sub_8072DDC
+ b _080A57BE
+ .align 2, 0
+_080A574C: .4byte gTasks
+_080A5750: .4byte gUnknown_03005D10
+_080A5754: .4byte gUnknown_02038559
+_080A5758: .4byte gBG1TilemapBuffer
+_080A575C: .4byte gUnknown_083C1640
+_080A5760: .4byte gUnknown_03000704
+_080A5764: .4byte gUnknown_03000700
+_080A5768:
+ ldr r1, _080A5798
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+ ldr r0, _080A579C
+ bl sub_80A4DA4
+ ldr r1, _080A57A0
+ ldr r0, _080A57A4
+ ldrb r2, [r0]
+ ldr r0, _080A57A8
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r4, 0
+ bl _call_via_r5
+ b _080A5736
+ .align 2, 0
+_080A5798: .4byte gTasks
+_080A579C: .4byte gBG1TilemapBuffer
+_080A57A0: .4byte gUnknown_083C1640
+_080A57A4: .4byte gUnknown_03000700
+_080A57A8: .4byte gUnknown_03000704
+_080A57AC:
+ cmp r0, 0x2
+ bhi _080A57B8
+ movs r0, 0x2F
+ bl sub_8072DCC
+ b _080A57BE
+_080A57B8:
+ movs r0, 0x30
+ bl sub_8072DCC
+_080A57BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5600
+
+ thumb_func_start sub_80A57C4
+sub_80A57C4: @ 80A57C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r5, _080A57EC
+ ldr r0, _080A57F0
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r4, _080A57F4
+ adds r1, r4
+ str r1, [r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080A57FC
+ ldr r1, _080A57F8
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x9
+ b _080A582C
+ .align 2, 0
+_080A57EC: .4byte gUnknown_03000704
+_080A57F0: .4byte gUnknown_02038559
+_080A57F4: .4byte gUnknown_083C16AE
+_080A57F8: .4byte gUnknown_02038564
+_080A57FC:
+ ldr r0, _080A581C
+ ldrh r0, [r0]
+ bl sub_80F92F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5824
+ adds r0, r4, 0
+ adds r0, 0x8
+ str r0, [r5]
+ ldr r1, _080A5820
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x9
+ b _080A582C
+ .align 2, 0
+_080A581C: .4byte word_203855E
+_080A5820: .4byte gUnknown_02038564
+_080A5824:
+ ldr r1, _080A5880
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r5, 0x7
+_080A582C:
+ adds r6, r1, 0
+ ldr r0, _080A5884
+ adds r4, r5, 0x1
+ ldrb r1, [r6]
+ lsls r1, 25
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0x7
+ adds r2, r4, 0
+ movs r3, 0x6
+ bl sub_80A4008
+ ldrb r3, [r6]
+ lsls r3, 1
+ adds r3, 0x1
+ adds r3, r5, r3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x6
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl MenuDrawTextWindow
+ movs r0, 0
+ adds r1, r5, 0
+ bl sub_80A7834
+ ldrb r3, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5880: .4byte gUnknown_02038564
+_080A5884: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A57C4
+
+ thumb_func_start sub_80A5888
+sub_80A5888: @ 80A5888
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl rfu_lacks_rfufunc
+ cmp r0, 0
+ beq _080A5988
+ ldr r2, _080A58B8
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A58C0
+ ldr r4, _080A58BC
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A5988
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A58E2
+ .align 2, 0
+_080A58B8: .4byte gMain
+_080A58BC: .4byte gUnknown_03000700
+_080A58C0:
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080A58F4
+ ldr r4, _080A58EC
+ ldrb r1, [r4]
+ ldr r0, _080A58F0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A5988
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080A58E2:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _080A5988
+ .align 2, 0
+_080A58EC: .4byte gUnknown_03000700
+_080A58F0: .4byte gUnknown_02038564
+_080A58F4:
+ ldrh r1, [r2, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A5964
+ ldr r1, _080A5948
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x1C]
+ ldr r1, _080A594C
+ ldr r0, _080A5950
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A5954
+ bl sub_80A4DA4
+ ldr r1, _080A5958
+ ldr r0, _080A595C
+ ldrb r2, [r0]
+ ldr r0, _080A5960
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A5988
+ .align 2, 0
+_080A5948: .4byte gTasks
+_080A594C: .4byte gUnknown_03005D10
+_080A5950: .4byte gUnknown_02038559
+_080A5954: .4byte gBG1TilemapBuffer
+_080A5958: .4byte gUnknown_083C1640
+_080A595C: .4byte gUnknown_03000700
+_080A5960: .4byte gUnknown_03000704
+_080A5964:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5988
+ ldr r1, _080A5990
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r0, _080A5994
+ bl sub_80A4DA4
+ ldr r0, _080A5998
+ ldr r1, [r0, 0x14]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A5988:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5990: .4byte gTasks
+_080A5994: .4byte gBG1TilemapBuffer
+_080A5998: .4byte gUnknown_083C1640
+ thumb_func_end sub_80A5888
+
+ thumb_func_start sub_80A599C
+sub_80A599C: @ 80A599C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A59C4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A59C8
+ lsrs r2, r3, 16
+ movs r4, 0
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ ldr r1, _080A59CC
+ strb r4, [r1]
+ bl sub_80A5AE4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59C4: .4byte gTasks
+_080A59C8: .4byte sub_805469C
+_080A59CC: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A599C
+
+ thumb_func_start sub_80A59D0
+sub_80A59D0: @ 80A59D0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A5A3C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _080A5A40
+ ldrb r0, [r7]
+ cmp r0, 0x5
+ bne _080A59E8
+ movs r0, 0x1
+ strb r0, [r1]
+_080A59E8:
+ ldr r1, _080A5A44
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r3, _080A5A48
+ ldr r2, _080A5A4C
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r6, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5A54
+ ldrb r0, [r7]
+ cmp r0, 0x5
+ beq _080A5A54
+ bl sub_80A57C4
+ ldr r0, _080A5A50
+ str r0, [r6]
+ b _080A5A9C
+ .align 2, 0
+_080A5A3C: .4byte gUnknown_03000700
+_080A5A40: .4byte gUnknown_03000701
+_080A5A44: .4byte gTasks
+_080A5A48: .4byte gUnknown_03005D10
+_080A5A4C: .4byte gUnknown_02038559
+_080A5A50: .4byte sub_80A5888
+_080A5A54:
+ ldr r0, _080A5A7C
+ bl sub_80A4BF0
+ ldr r0, _080A5A80
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A5A6E
+ ldr r0, _080A5A84
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080A5A90
+_080A5A6E:
+ ldr r0, _080A5A88
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A5A8C
+ b _080A5A9A
+ .align 2, 0
+_080A5A7C: .4byte gBG1TilemapBuffer
+_080A5A80: .4byte gUnknown_02038559
+_080A5A84: .4byte gUnknown_03000701
+_080A5A88: .4byte gTasks
+_080A5A8C: .4byte sub_80A5414
+_080A5A90:
+ ldr r0, _080A5AA4
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A5AA8
+_080A5A9A:
+ str r0, [r1]
+_080A5A9C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5AA4: .4byte gTasks
+_080A5AA8: .4byte sub_80A5600
+ thumb_func_end sub_80A59D0
+
+ thumb_func_start sub_80A5AAC
+sub_80A5AAC: @ 80A5AAC
+ 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, _080A5ADC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5AE0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5ADC: .4byte gTasks
+_080A5AE0: .4byte sub_80A5B00
+ thumb_func_end sub_80A5AAC
+
+ thumb_func_start sub_80A5AE4
+sub_80A5AE4: @ 80A5AE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A5AAC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5AE4
+
+ thumb_func_start sub_80A5B00
+sub_80A5B00: @ 80A5B00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A5B38
+ adds r2, r0, r1
+ ldr r0, _080A5B3C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5B32
+ ldrh r0, [r2, 0x10]
+ lsls r0, 16
+ ldrh r1, [r2, 0x12]
+ orrs r0, r1
+ bl SetMainCallback2
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080A5B32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5B38: .4byte gUnknown_03004B28
+_080A5B3C: .4byte gPaletteFade
+ thumb_func_end sub_80A5B00
+
+ thumb_func_start sub_80A5B40
+sub_80A5B40: @ 80A5B40
+ push {lr}
+_080A5B42:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5B68
+ bl ResetTasks
+ ldr r0, _080A5B60
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A5B64
+ strb r0, [r1]
+ b _080A5B74
+ .align 2, 0
+_080A5B60: .4byte sub_80A50C8
+_080A5B64: .4byte gUnknown_02038563
+_080A5B68:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5B42
+_080A5B74:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B40
+
+ thumb_func_start sub_80A5B78
+sub_80A5B78: @ 80A5B78
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080A5BB0
+ ldrh r0, [r5]
+ bl itemid_get_overworld_function
+ cmp r0, 0
+ beq _080A5BF2
+ movs r0, 0x5
+ bl PlaySE
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A5BB4
+ ldrh r0, [r5]
+ bl itemid_get_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5BB4
+ adds r0, r4, 0
+ bl sub_80A5BF8
+ b _080A5BF2
+ .align 2, 0
+_080A5BB0: .4byte word_203855E
+_080A5BB4:
+ ldr r1, _080A5BE0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r0, _080A5BE4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ beq _080A5BEC
+ ldr r0, _080A5BE8
+ ldrh r0, [r0]
+ bl itemid_get_overworld_function
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A5BF2
+ .align 2, 0
+_080A5BE0: .4byte gTasks
+_080A5BE4: .4byte gUnknown_02038559
+_080A5BE8: .4byte word_203855E
+_080A5BEC:
+ adds r0, r4, 0
+ bl sub_80C9C7C
+_080A5BF2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5B78
+
+ thumb_func_start sub_80A5BF8
+sub_80A5BF8: @ 80A5BF8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A5C1C
+ ldr r2, _080A5C20
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5C1C: .4byte gOtherText_NoPokemon
+_080A5C20: .4byte sub_80A5C48
+ thumb_func_end sub_80A5BF8
+
+ thumb_func_start sub_80A5C24
+sub_80A5C24: @ 80A5C24
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5C24
+
+ thumb_func_start sub_80A5C48
+sub_80A5C48: @ 80A5C48
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A5C90
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A5C94
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5C98
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5C90: .4byte gBG1TilemapBuffer
+_080A5C94: .4byte gTasks
+_080A5C98: .4byte sub_80A5C24
+ thumb_func_end sub_80A5C48
+
+ thumb_func_start sub_80A5C9C
+sub_80A5C9C: @ 80A5C9C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5C9C
+
+ thumb_func_start sub_80A5CC4
+sub_80A5CC4: @ 80A5CC4
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _080A5CD8
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
+ thumb_func_end sub_80A5CC4
+
+ thumb_func_start Task_CallItemUseOnFieldCallback
+Task_CallItemUseOnFieldCallback: @ 80A5CDC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5CF8
+ ldr r0, _080A5D00
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080A5CF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D00: .4byte gUnknown_03005D00
+ thumb_func_end Task_CallItemUseOnFieldCallback
+
+ thumb_func_start sub_80A5D04
+sub_80A5D04: @ 80A5D04
+ push {lr}
+_080A5D06:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5D28
+ ldr r0, _080A5D20
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A5D24
+ strb r0, [r1]
+ b _080A5D34
+ .align 2, 0
+_080A5D20: .4byte sub_80A50C8
+_080A5D24: .4byte gUnknown_02038563
+_080A5D28:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A5D06
+_080A5D34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5D04
+
+ thumb_func_start sub_80A5D38
+sub_80A5D38: @ 80A5D38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A5D70
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldr r0, _080A5D74
+ bl sub_80A4DA4
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D70: .4byte gTasks
+_080A5D74: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5D38
+
+ thumb_func_start sub_80A5D78
+sub_80A5D78: @ 80A5D78
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080A5D9C
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A4008
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5D9C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5D78
+
+ thumb_func_start sub_80A5DA0
+sub_80A5DA0: @ 80A5DA0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r1, _080A5DC4
+ bl itemid_copy_name
+ cmp r4, 0x63
+ bls _080A5DCC
+ ldr r0, _080A5DC8
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ b _080A5DD8
+ .align 2, 0
+_080A5DC4: .4byte gStringVar1
+_080A5DC8: .4byte gStringVar2
+_080A5DCC:
+ ldr r0, _080A5DF0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A5DD8:
+ ldr r0, _080A5DF4
+ bl sub_80A4DA4
+ movs r0, 0x5
+ bl sub_80A7528
+ bl sub_80A5D78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5DF0: .4byte gStringVar2
+_080A5DF4: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5DA0
+
+ thumb_func_start sub_80A5DF8
+sub_80A5DF8: @ 80A5DF8
+ push {lr}
+ ldr r0, _080A5E18
+ bl sub_80A4DA4
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xB
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0x4
+ bl sub_80A7528
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E18: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A5DF8
+
+ thumb_func_start sub_80A5E1C
+sub_80A5E1C: @ 80A5E1C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A5E58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A5E36
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5E50
+_080A5E36:
+ ldr r0, _080A5E5C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ adds r0, r4, 0
+ bl sub_80A41D4
+ adds r0, r4, 0
+ bl sub_80A5D38
+_080A5E50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E58: .4byte gMain
+_080A5E5C: .4byte gTasks
+ thumb_func_end sub_80A5E1C
+
+ thumb_func_start sub_80A5E60
+sub_80A5E60: @ 80A5E60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A5DF8
+ adds r0, r4, 0
+ bl sub_80A3D5C
+ ldr r1, _080A5E88
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5E8C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E88: .4byte gTasks
+_080A5E8C: .4byte sub_80A5E1C
+ thumb_func_end sub_80A5E60
+
+ thumb_func_start sub_80A5E90
+sub_80A5E90: @ 80A5E90
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A5D38
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5E90
+
+ thumb_func_start sub_80A5EA0
+sub_80A5EA0: @ 80A5EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A5F0C
+ ldr r0, _080A5EE8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5EF8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A5EEC
+ ldrh r0, [r0]
+ ldr r2, _080A5EF0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ ldrh r1, [r1, 0xA]
+ bl sub_80A5DA0
+ ldr r1, _080A5EF4
+ adds r0, r4, 0
+ bl sub_80F914C
+ b _080A5F0C
+ .align 2, 0
+_080A5EE8: .4byte gMain
+_080A5EEC: .4byte word_203855E
+_080A5EF0: .4byte gTasks
+_080A5EF4: .4byte gUnknown_083C16F4
+_080A5EF8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A5F0C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_80A5D38
+_080A5F0C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5EA0
+
+ thumb_func_start sub_80A5F14
+sub_80A5F14: @ 80A5F14
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080A5F58
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A5F5C
+ str r1, [r0]
+ movs r0, 0x3
+ bl sub_80A7528
+ ldr r0, _080A5F60
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A5F64
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x9
+ movs r3, 0x7
+ bl sub_80A4DD8
+ b _080A5F78
+ .align 2, 0
+_080A5F58: .4byte gTasks
+_080A5F5C: .4byte sub_80A5EA0
+_080A5F60: .4byte gUnknown_02038559
+_080A5F64:
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x9
+ movs r3, 0x6
+ bl sub_80A4DD8
+_080A5F78:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F14
+
+ thumb_func_start sub_80A5F80
+sub_80A5F80: @ 80A5F80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5F80
+
+ thumb_func_start sub_80A5FAC
+sub_80A5FAC: @ 80A5FAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A5FD0
+ ldr r1, _080A5FD4
+ adds r4, r0, r1
+ ldr r5, _080A5FD8
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080A5FDC
+ bl sub_80A40D0
+ movs r0, 0
+ b _080A5FE2
+ .align 2, 0
+_080A5FD0: .4byte gSaveBlock1
+_080A5FD4: .4byte 0x00000496
+_080A5FD8: .4byte word_203855E
+_080A5FDC:
+ bl sub_80A413C
+ ldrh r0, [r5]
+_080A5FE2:
+ strh r0, [r4]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r6, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r6, 0
+ bl sub_80A37C0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A5FAC
+
+ thumb_func_start sub_80A6000
+sub_80A6000: @ 80A6000
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6000
+
+ thumb_func_start sub_80A6024
+sub_80A6024: @ 80A6024
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A606C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6062
+ ldr r0, _080A6070
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A6074
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6078
+ str r1, [r0]
+_080A6062:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A606C: .4byte gMain
+_080A6070: .4byte gBG1TilemapBuffer
+_080A6074: .4byte gTasks
+_080A6078: .4byte sub_80A6000
+ thumb_func_end sub_80A6024
+
+ thumb_func_start DisplayCannotDismountBikeMessage
+DisplayCannotDismountBikeMessage: @ 80A607C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A73FC
+ ldr r0, _080A60B4
+ ldrh r0, [r0]
+ ldr r1, _080A60B8
+ bl itemid_copy_name
+ ldr r5, _080A60BC
+ ldr r1, _080A60C0
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ bl sub_80A7590
+ ldr r2, _080A60C4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A60B4: .4byte word_203855E
+_080A60B8: .4byte gStringVar1
+_080A60BC: .4byte gStringVar4
+_080A60C0: .4byte gOtherText_CantBeHeld
+_080A60C4: .4byte sub_80A6024
+ thumb_func_end DisplayCannotDismountBikeMessage
+
+ thumb_func_start ItemMenu_Give
+ItemMenu_Give: @ 80A60C8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _080A60FC
+ ldrh r0, [r5]
+ bl sub_80F931C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6108
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A6100
+ ldr r2, _080A6104
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A616E
+ .align 2, 0
+_080A60FC: .4byte word_203855E
+_080A6100: .4byte gOtherText_CantWriteMail
+_080A6104: .4byte sub_80A6024
+_080A6108:
+ ldrh r0, [r5]
+ bl itemid_is_unique
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A6168
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6128
+ adds r0, r4, 0
+ bl sub_80A5BF8
+ b _080A616E
+_080A6128:
+ ldr r1, _080A6158
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A615C
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080A6160
+ str r1, [r0]
+ ldr r1, _080A6164
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080A616E
+ .align 2, 0
+_080A6158: .4byte gTasks
+_080A615C: .4byte sub_808B020
+_080A6160: .4byte sub_80A5B00
+_080A6164: .4byte gUnknown_02038561
+_080A6168:
+ adds r0, r6, 0
+ bl DisplayCannotDismountBikeMessage
+_080A616E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemMenu_Give
+
+ thumb_func_start sub_80A6178
+sub_80A6178: @ 80A6178
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A5AE4
+ ldr r1, _080A61A0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A61A4
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61A0: .4byte gTasks
+_080A61A4: .4byte sub_814625C
+ thumb_func_end sub_80A6178
+
+ thumb_func_start sub_80A61A8
+sub_80A61A8: @ 80A61A8
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A61C2
+ ldr r0, _080A61C8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A61CC
+ strb r0, [r1]
+_080A61C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61C8: .4byte sub_80A50C8
+_080A61CC: .4byte gUnknown_02038563
+ thumb_func_end sub_80A61A8
+
+ thumb_func_start sub_80A61D0
+sub_80A61D0: @ 80A61D0
+ push {lr}
+ ldr r0, _080A61E4
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _080A61E8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A61E4: .4byte gUnknown_03000701
+_080A61E8: .4byte sub_80A61A8
+ thumb_func_end sub_80A61D0
+
+ thumb_func_start sub_80A61EC
+sub_80A61EC: @ 80A61EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A620C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6210
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A620C: .4byte gTasks
+_080A6210: .4byte sub_808A3F8
+ thumb_func_end sub_80A61EC
+
+ thumb_func_start sub_80A6214
+sub_80A6214: @ 80A6214
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080A6244
+ ldrb r0, [r0]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080A6248
+ ldrh r0, [r4]
+ bl sub_80F931C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6254
+ bl sub_80A73FC
+ bl sub_80A7590
+ ldr r1, _080A624C
+ ldr r2, _080A6250
+ adds r0, r5, 0
+ b _080A6280
+ .align 2, 0
+_080A6244: .4byte gUnknown_02038559
+_080A6248: .4byte word_203855E
+_080A624C: .4byte gOtherText_CantWriteMail
+_080A6250: .4byte sub_80A6024
+_080A6254:
+ ldrh r0, [r4]
+ bl sub_80F92F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A6298
+ bl sub_80A73FC
+ ldrh r0, [r4]
+ ldr r1, _080A6288
+ bl itemid_copy_name
+ ldr r4, _080A628C
+ ldr r1, _080A6290
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ bl sub_80A7590
+ ldr r2, _080A6294
+ adds r0, r5, 0
+ adds r1, r4, 0
+_080A6280:
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A62D2
+ .align 2, 0
+_080A6288: .4byte gStringVar1
+_080A628C: .4byte gStringVar4
+_080A6290: .4byte gOtherText_CantBeHeldHere
+_080A6294: .4byte sub_80A6024
+_080A6298:
+ cmp r6, 0x5
+ beq _080A62CC
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A62CC
+ ldr r1, _080A62C4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080A62C8
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r5, 0
+ bl sub_80A5AAC
+ b _080A62D2
+ .align 2, 0
+_080A62C4: .4byte gTasks
+_080A62C8: .4byte sub_808A3F8
+_080A62CC:
+ adds r0, r5, 0
+ bl DisplayCannotDismountBikeMessage
+_080A62D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6214
+
+ thumb_func_start sub_80A62D8
+sub_80A62D8: @ 80A62D8
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A62F2
+ ldr r0, _080A62F8
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A62FC
+ strb r0, [r1]
+_080A62F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A62F8: .4byte sub_80A50C8
+_080A62FC: .4byte gUnknown_02038563
+ thumb_func_end sub_80A62D8
+
+ thumb_func_start sub_80A6300
+sub_80A6300: @ 80A6300
+ push {lr}
+ ldr r0, _080A6314
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r0, _080A6318
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6314: .4byte gUnknown_03000701
+_080A6318: .4byte sub_80A62D8
+ thumb_func_end sub_80A6300
+
+ thumb_func_start sub_80A631C
+sub_80A631C: @ 80A631C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6344
+ ldr r1, _080A6348
+ str r1, [r2]
+ ldr r2, _080A634C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6350
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6344: .4byte gUnknown_0300485C
+_080A6348: .4byte sub_80B3050
+_080A634C: .4byte gTasks
+_080A6350: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80A631C
+
+ thumb_func_start sub_80A6354
+sub_80A6354: @ 80A6354
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80A7590
+ ldr r0, _080A63C4
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r0
+ ldr r4, _080A63C8
+ ldr r3, _080A63CC
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r2, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r4, _080A63D0
+ ldrh r0, [r4]
+ ldr r1, _080A63D4
+ bl itemid_copy_name
+ ldrh r0, [r4]
+ bl itemid_get_market_price
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A63E4
+ ldr r4, _080A63D8
+ ldr r1, _080A63DC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A63E0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A63FA
+ .align 2, 0
+_080A63C4: .4byte gTasks
+_080A63C8: .4byte gUnknown_03005D10
+_080A63CC: .4byte gUnknown_02038559
+_080A63D0: .4byte word_203855E
+_080A63D4: .4byte gStringVar2
+_080A63D8: .4byte gStringVar4
+_080A63DC: .4byte gOtherText_CantBuyThat
+_080A63E0: .4byte sub_80A6444
+_080A63E4:
+ ldr r4, _080A6400
+ ldr r1, _080A6404
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6408
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+_080A63FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6400: .4byte gStringVar4
+_080A6404: .4byte gOtherText_HowManyToSell
+_080A6408: .4byte sub_80A648C
+ thumb_func_end sub_80A6354
+
+ thumb_func_start sub_80A640C
+sub_80A640C: @ 80A640C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A6440
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6440: .4byte gTasks
+ thumb_func_end sub_80A640C
+
+ thumb_func_start sub_80A6444
+sub_80A6444: @ 80A6444
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A6480
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A6484
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6488
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6480: .4byte gBG1TilemapBuffer
+_080A6484: .4byte gTasks
+_080A6488: .4byte sub_80A640C
+ thumb_func_end sub_80A6444
+
+ thumb_func_start sub_80A648C
+sub_80A648C: @ 80A648C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A64E8
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080A64EC
+ str r0, [r4]
+ ldr r0, _080A64F0
+ movs r5, 0x2
+ str r5, [sp]
+ movs r1, 0x1
+ movs r2, 0xB
+ movs r3, 0xC
+ bl sub_80A4008
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0xB
+ strh r0, [r4, 0xE]
+ ldr r0, _080A64F4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080A64F8
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xB
+ bl sub_80A418C
+ b _080A6506
+ .align 2, 0
+_080A64E8: .4byte gTasks
+_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
+_080A64F0: .4byte gBG1TilemapBuffer
+_080A64F4: .4byte gUnknown_02038559
+_080A64F8:
+ str r5, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xB
+ bl sub_80A418C
+_080A6506:
+ ldr r0, _080A651C
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl BuyMenuDisplayMessage
+ bl sub_80A683C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A651C: .4byte word_203855E
+ thumb_func_end sub_80A648C
+
+ thumb_func_start sub_80A6520
+sub_80A6520: @ 80A6520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A6544
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A653E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+_080A653E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6544: .4byte gMain
+ thumb_func_end sub_80A6520
+
+ thumb_func_start sub_80A6548
+sub_80A6548: @ 80A6548
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A48F8
+ ldr r1, _080A656C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A6570
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A656C: .4byte gTasks
+_080A6570: .4byte sub_80A6520
+ thumb_func_end sub_80A6548
+
+ thumb_func_start sub_80A6574
+sub_80A6574: @ 80A6574
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x5F
+ bl PlaySE
+ ldr r0, _080A65A0
+ ldrh r0, [r0]
+ ldr r1, _080A65A4
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ ldrb r1, [r4, 0xA]
+ bl sub_80A6870
+ ldr r0, _080A65A8
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65A0: .4byte word_203855E
+_080A65A4: .4byte gTasks
+_080A65A8: .4byte sub_80A6548
+ thumb_func_end sub_80A6574
+
+ thumb_func_start sub_80A65AC
+sub_80A65AC: @ 80A65AC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A6600
+ movs r1, 0x6
+ str r1, [sp]
+ movs r1, 0x7
+ movs r2, 0x6
+ movs r3, 0x6
+ bl sub_80A36B8
+ ldr r0, _080A6604
+ ldrh r0, [r0]
+ ldr r1, _080A6608
+ bl itemid_copy_name
+ ldr r4, _080A660C
+ ldr r1, _080A6610
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6614
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ adds r0, r5, 0
+ bl sub_80A3D5C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6600: .4byte gBG1TilemapBuffer
+_080A6604: .4byte word_203855E
+_080A6608: .4byte gStringVar2
+_080A660C: .4byte gStringVar4
+_080A6610: .4byte gOtherText_SoldItem
+_080A6614: .4byte sub_80A6574
+ thumb_func_end sub_80A65AC
+
+ thumb_func_start sub_80A6618
+sub_80A6618: @ 80A6618
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A664C
+ movs r1, 0x6
+ str r1, [sp]
+ movs r1, 0x7
+ movs r2, 0x6
+ movs r3, 0x6
+ bl sub_80A36B8
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A664C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A6618
+
+ thumb_func_start sub_80A6650
+sub_80A6650: @ 80A6650
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80A5D78
+ ldr r1, _080A666C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A666C: .4byte gUnknown_083C16FC
+ thumb_func_end sub_80A6650
+
+ thumb_func_start Task_BuyHowManyDialogueHandleInput
+Task_BuyHowManyDialogueHandleInput: @ 80A6670
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ adds r0, r5, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A66B4
+ movs r0, 0x6
+ movs r1, 0xB
+ movs r2, 0xC
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A66AC
+ ldrh r0, [r0]
+ ldr r2, _080A66B0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r1, [r1, 0xA]
+ bl BuyMenuDisplayMessage
+ b _080A6758
+ .align 2, 0
+_080A66AC: .4byte word_203855E
+_080A66B0: .4byte gTasks
+_080A66B4:
+ ldr r0, _080A6724
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6744
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A6728
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80A36B8
+ ldr r4, _080A672C
+ ldr r0, _080A6730
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ ldr r2, _080A6734
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ muls r1, r0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080A6738
+ ldr r1, _080A673C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080A6740
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayCannotUseItemMessage
+ b _080A6758
+ .align 2, 0
+_080A6724: .4byte gMain
+_080A6728: .4byte gBG1TilemapBuffer
+_080A672C: .4byte gStringVar1
+_080A6730: .4byte word_203855E
+_080A6734: .4byte gTasks
+_080A6738: .4byte gStringVar4
+_080A673C: .4byte gOtherText_CanPay
+_080A6740: .4byte sub_80A6650
+_080A6744:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6758
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl BuyMenuPrintItemQuantityAndPrice
+_080A6758:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_BuyHowManyDialogueHandleInput
+
+ thumb_func_start sub_80A6760
+sub_80A6760: @ 80A6760
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A6794
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6794: .4byte gTasks
+ thumb_func_end sub_80A6760
+
+ thumb_func_start BuyMenuPrintItemQuantityAndPrice
+BuyMenuPrintItemQuantityAndPrice: @ 80A6798
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A67E8
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1F
+ bl sub_80A36B8
+ movs r0, 0
+ movs r1, 0
+ bl RemoveMoneyLabelObject
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A67EC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A67F0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A67E8: .4byte gBG1TilemapBuffer
+_080A67EC: .4byte gTasks
+_080A67F0: .4byte sub_80A6760
+ thumb_func_end BuyMenuPrintItemQuantityAndPrice
+
+ thumb_func_start BuyMenuDisplayMessage
+BuyMenuDisplayMessage: @ 80A67F4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ muls r0, r5
+ movs r1, 0x6
+ movs r2, 0x6
+ movs r3, 0xB
+ bl sub_80B7A94
+ ldr r6, _080A6838
+ adds r0, r4, 0
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6838: .4byte gStringVar1
+ thumb_func_end BuyMenuDisplayMessage
+
+ thumb_func_start sub_80A683C
+sub_80A683C: @ 80A683C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080A6868
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7C14
+ ldr r0, _080A686C
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xC
+ bl sub_80A4008
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6868: .4byte gSaveBlock1
+_080A686C: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80A683C
+
+ thumb_func_start sub_80A6870
+sub_80A6870: @ 80A6870
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080A68A0
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r5, 0
+ bl sub_80B79B8
+ ldr r0, [r5]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7BEC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68A0: .4byte gSaveBlock1 + 0x490
+ thumb_func_end sub_80A6870
+
+ thumb_func_start sub_80A68A4
+sub_80A68A4: @ 80A68A4
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A68BE
+ ldr r0, _080A68C4
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A68C8
+ strb r0, [r1]
+_080A68BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68C4: .4byte sub_80A50C8
+_080A68C8: .4byte gUnknown_02038563
+ thumb_func_end sub_80A68A4
+
+ thumb_func_start sub_80A68CC
+sub_80A68CC: @ 80A68CC
+ push {lr}
+ ldr r1, _080A68E4
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _080A68E8
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080A68EC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A68E4: .4byte gUnknown_02038559
+_080A68E8: .4byte gUnknown_03000701
+_080A68EC: .4byte sub_80A68A4
+ thumb_func_end sub_80A68CC
+
+ thumb_func_start sub_80A68F0
+sub_80A68F0: @ 80A68F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6910
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6914
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6910: .4byte gTasks
+_080A6914: .4byte sub_80546B8
+ thumb_func_end sub_80A68F0
+
+ thumb_func_start sub_80A6918
+sub_80A6918: @ 80A6918
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6938
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A693C
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6938: .4byte gTasks
+_080A693C: .4byte sub_80546B8
+ thumb_func_end sub_80A6918
+
+ thumb_func_start sub_80A6940
+sub_80A6940: @ 80A6940
+ push {lr}
+_080A6942:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6968
+ ldr r0, _080A6960
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6964
+ strb r0, [r1]
+ bl sub_80A699C
+ b _080A6974
+ .align 2, 0
+_080A6960: .4byte sub_80A50C8
+_080A6964: .4byte gUnknown_02038563
+_080A6968:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6942
+_080A6974:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6940
+
+ thumb_func_start sub_80A6978
+sub_80A6978: @ 80A6978
+ push {lr}
+ ldr r1, _080A6990
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _080A6994
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080A6998
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6990: .4byte gUnknown_02038559
+_080A6994: .4byte gUnknown_03000701
+_080A6998: .4byte sub_80A6940
+ thumb_func_end sub_80A6978
+
+ thumb_func_start sub_80A699C
+sub_80A699C: @ 80A699C
+ ldr r1, _080A69AC
+ ldr r0, _080A69B0
+ str r0, [r1]
+ ldr r1, _080A69B4
+ movs r0, 0x4
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A69AC: .4byte gUnknown_03000704
+_080A69B0: .4byte gUnknown_083C16B8
+_080A69B4: .4byte gUnknown_02038564
+ thumb_func_end sub_80A699C
+
+ thumb_func_start sub_80A69B8
+sub_80A69B8: @ 80A69B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A69D8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A69DC
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A69D8: .4byte gTasks
+_080A69DC: .4byte sub_804E990
+ thumb_func_end sub_80A69B8
+
+ thumb_func_start sub_80A69E0
+sub_80A69E0: @ 80A69E0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6A00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6A04
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A00: .4byte gTasks
+_080A6A04: .4byte sub_804E990
+ thumb_func_end sub_80A69E0
+
+ thumb_func_start sub_80A6A08
+sub_80A6A08: @ 80A6A08
+ push {lr}
+ bl sub_80A34B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6A22
+ ldr r0, _080A6A28
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6A2C
+ strb r0, [r1]
+_080A6A22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A28: .4byte sub_80A50C8
+_080A6A2C: .4byte gUnknown_02038563
+ thumb_func_end sub_80A6A08
+
+ thumb_func_start sub_80A6A30
+sub_80A6A30: @ 80A6A30
+ push {lr}
+ ldr r0, _080A6A44
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, _080A6A48
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A44: .4byte gUnknown_03000701
+_080A6A48: .4byte sub_80A6A08
+ thumb_func_end sub_80A6A30
+
+ thumb_func_start sub_80A6A4C
+sub_80A6A4C: @ 80A6A4C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6A74
+ ldr r1, _080A6A78
+ str r1, [r2]
+ ldr r2, _080A6A7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080A6A80
+ lsrs r2, r3, 16
+ strh r2, [r1, 0x18]
+ strh r3, [r1, 0x1A]
+ bl sub_80A5AE4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A74: .4byte gUnknown_0300485C
+_080A6A78: .4byte sub_813A0F8
+_080A6A7C: .4byte gTasks
+_080A6A80: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80A6A4C
+
+ thumb_func_start sub_80A6A84
+sub_80A6A84: @ 80A6A84
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r6, _080A6AE8
+ adds r0, r4, r6
+ mov r8, r0
+ ldr r0, _080A6AEC
+ bl sub_80A4DA4
+ ldr r0, _080A6AF0
+ ldrh r0, [r0]
+ ldr r1, _080A6AF4
+ bl itemid_copy_name
+ ldr r0, _080A6AF8
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xB
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0x7
+ bl sub_80A7528
+ adds r0, r5, 0
+ bl sub_80A3D5C
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _080A6AFC
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6AE8: .4byte gUnknown_03004B28
+_080A6AEC: .4byte gBG1TilemapBuffer
+_080A6AF0: .4byte word_203855E
+_080A6AF4: .4byte gStringVar1
+_080A6AF8: .4byte gStringVar2
+_080A6AFC: .4byte sub_80A5E1C
+ thumb_func_end sub_80A6A84
+
+ thumb_func_start sub_80A6B00
+sub_80A6B00: @ 80A6B00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A6B54
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6B1A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6B4C
+_080A6B1A:
+ ldr r1, _080A6B58
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r1, _080A6B5C
+ ldr r0, _080A6B60
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A5D38
+_080A6B4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6B54: .4byte gMain
+_080A6B58: .4byte gTasks
+_080A6B5C: .4byte gUnknown_03005D10
+_080A6B60: .4byte gUnknown_02038559
+ thumb_func_end sub_80A6B00
+
+ thumb_func_start sub_80A6B64
+sub_80A6B64: @ 80A6B64
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r5, r0, 3
+ ldr r6, _080A6B9C
+ adds r7, r5, r6
+ ldr r0, _080A6BA0
+ mov r8, r0
+ ldrh r0, [r0]
+ bl itemid_is_unique
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080A6BA8
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, _080A6BA4
+ str r1, [r0]
+ movs r0, 0x9
+ bl sub_80A7528
+ b _080A6BD2
+ .align 2, 0
+_080A6B9C: .4byte gUnknown_03004B28
+_080A6BA0: .4byte word_203855E
+_080A6BA4: .4byte sub_80A6B00
+_080A6BA8:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldrh r1, [r7, 0x2]
+ bl sub_80A9760
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6BC2
+ adds r0, r4, 0
+ bl sub_80A6A84
+ b _080A6BD2
+_080A6BC2:
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, _080A6BDC
+ str r1, [r0]
+ movs r0, 0x8
+ bl sub_80A7528
+_080A6BD2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6BDC: .4byte sub_80A6B00
+ thumb_func_end sub_80A6B64
+
+ thumb_func_start sub_80A6BE0
+sub_80A6BE0: @ 80A6BE0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80A5350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A6C58
+ ldr r0, _080A6C18
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A6C20
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A6C1C
+ bl sub_80A4DA4
+ adds r0, r4, 0
+ bl sub_80A6B64
+ b _080A6C58
+ .align 2, 0
+_080A6C18: .4byte gMain
+_080A6C1C: .4byte gBG1TilemapBuffer
+_080A6C20:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6C58
+ ldr r1, _080A6C60
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _080A6C64
+ ldr r0, _080A6C68
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_80A5D38
+_080A6C58:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6C60: .4byte gTasks
+_080A6C64: .4byte gUnknown_03005D10
+_080A6C68: .4byte gUnknown_02038559
+ thumb_func_end sub_80A6BE0
+
+ thumb_func_start sub_80A6C6C
+sub_80A6C6C: @ 80A6C6C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A6CE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r2, _080A6CE8
+ ldr r6, _080A6CEC
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r5, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80A7590
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ beq _080A6D0A
+ ldr r0, _080A6CF0
+ str r0, [r5]
+ movs r0, 0x6
+ bl sub_80A7528
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x3
+ bne _080A6CF4
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x6
+ movs r2, 0x9
+ movs r3, 0x7
+ bl sub_80A4DD8
+ b _080A6D14
+ .align 2, 0
+_080A6CE4: .4byte gTasks
+_080A6CE8: .4byte gUnknown_03005D10
+_080A6CEC: .4byte gUnknown_02038559
+_080A6CF0: .4byte sub_80A6BE0
+_080A6CF4:
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x9
+ movs r3, 0x6
+ bl sub_80A4DD8
+ b _080A6D14
+_080A6D0A:
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ bl sub_80A6B64
+_080A6D14:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6C6C
+
+ thumb_func_start sub_80A6D1C
+sub_80A6D1C: @ 80A6D1C
+ push {r4,r5,lr}
+ bl HideMapNamePopUpWindow
+ ldr r0, _080A6D70
+ ldr r1, _080A6D74
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080A6D84
+ movs r1, 0x1
+ bl sub_80A92D4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080A6D80
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_80594C0
+ bl sub_80597F4
+ ldr r1, _080A6D78
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldrh r0, [r4]
+ bl itemid_get_overworld_function
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A6D7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0xC]
+ b _080A6D8A
+ .align 2, 0
+_080A6D70: .4byte gSaveBlock1
+_080A6D74: .4byte 0x00000496
+_080A6D78: .4byte word_203855E
+_080A6D7C: .4byte gTasks
+_080A6D80:
+ movs r0, 0
+ strh r0, [r4]
+_080A6D84:
+ ldr r0, _080A6D94
+ bl ScriptContext1_SetupScript
+_080A6D8A:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A6D94: .4byte Event_NoRegisteredItem
+ thumb_func_end sub_80A6D1C
+
+ thumb_func_start sub_80A6D98
+sub_80A6D98: @ 80A6D98
+ push {lr}
+_080A6D9A:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6DBC
+ ldr r0, _080A6DB4
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080A6DB8
+ strb r0, [r1]
+ b _080A6DC8
+ .align 2, 0
+_080A6DB4: .4byte sub_80A50C8
+_080A6DB8: .4byte gUnknown_02038563
+_080A6DBC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A6D9A
+_080A6DC8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6D98
+
+ thumb_func_start sub_80A6DCC
+sub_80A6DCC: @ 80A6DCC
+ push {lr}
+ ldr r1, _080A6DE4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080A6DE8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080A6DEC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6DE4: .4byte gUnknown_03000700
+_080A6DE8: .4byte gUnknown_03000701
+_080A6DEC: .4byte sub_80A6D98
+ thumb_func_end sub_80A6DCC
+
+ thumb_func_start sub_80A6DF0
+sub_80A6DF0: @ 80A6DF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r4, _080A6E4C
+ ldrb r0, [r4]
+ subs r0, 0x1
+ lsls r0, 25
+ lsrs r6, r0, 24
+ movs r1, 0x9
+ subs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x7
+ movs r2, 0xD
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ movs r2, 0xA
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x8
+ movs r3, 0x5
+ bl sub_80A4008
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A6E58
+ ldr r1, _080A6E50
+ ldr r0, _080A6E54
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0xA
+ bl MenuPrint
+ b _080A6E80
+ .align 2, 0
+_080A6E4C: .4byte gUnknown_02038564
+_080A6E50: .4byte gUnknown_083C1640
+_080A6E54: .4byte gUnknown_03000704
+_080A6E58:
+ ldr r5, _080A6EAC
+ ldr r4, _080A6EB0
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x8
+ movs r2, 0xA
+ bl MenuPrint
+_080A6E80:
+ movs r2, 0xA
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080A6EB4
+ ldrb r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x8
+ bl InitMenu
+ movs r0, 0x2
+ bl sub_80A7528
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6EAC: .4byte gUnknown_083C1640
+_080A6EB0: .4byte gUnknown_03000704
+_080A6EB4: .4byte gUnknown_02038564
+ thumb_func_end sub_80A6DF0
+
+ thumb_func_start sub_80A6EB8
+sub_80A6EB8: @ 80A6EB8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r2, _080A6EE0
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080A6EE8
+ ldr r4, _080A6EE4
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A6FC0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080A6F02
+ .align 2, 0
+_080A6EE0: .4byte gMain
+_080A6EE4: .4byte gUnknown_03000700
+_080A6EE8:
+ cmp r1, 0x80
+ bne _080A6F14
+ ldr r4, _080A6F0C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldr r1, _080A6F10
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _080A6FC0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080A6F02:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _080A6FC0
+ .align 2, 0
+_080A6F0C: .4byte gUnknown_03000700
+_080A6F10: .4byte gUnknown_02038564
+_080A6F14:
+ ldrh r1, [r2, 0x2E]
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _080A6F84
+ ldr r1, _080A6F68
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r1, _080A6F6C
+ ldr r0, _080A6F70
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A6F74
+ bl sub_80A4DA4
+ ldr r1, _080A6F78
+ ldr r0, _080A6F7C
+ ldrb r2, [r0]
+ ldr r0, _080A6F80
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080A6FC0
+ .align 2, 0
+_080A6F68: .4byte gTasks
+_080A6F6C: .4byte gUnknown_03005D10
+_080A6F70: .4byte gUnknown_02038559
+_080A6F74: .4byte gBG1TilemapBuffer
+_080A6F78: .4byte gUnknown_083C1640
+_080A6F7C: .4byte gUnknown_03000700
+_080A6F80: .4byte gUnknown_03000704
+_080A6F84:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6FC0
+ ldr r1, _080A6FC8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _080A6FCC
+ ldr r0, _080A6FD0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ ldr r0, _080A6FD4
+ bl sub_80A4DA4
+ ldr r0, _080A6FD8
+ ldr r1, [r0, 0x2C]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A6FC0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6FC8: .4byte gTasks
+_080A6FCC: .4byte gUnknown_03005D10
+_080A6FD0: .4byte gUnknown_02038559
+_080A6FD4: .4byte gBG1TilemapBuffer
+_080A6FD8: .4byte gUnknown_083C1640
+ thumb_func_end sub_80A6EB8
+
+ thumb_func_start sub_80A6FDC
+sub_80A6FDC: @ 80A6FDC
+ push {lr}
+ ldr r0, _080A6FF8
+ ldrh r0, [r0]
+ bl itemid_get_usage
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7008
+ ldr r1, _080A6FFC
+ ldr r0, _080A7000
+ str r0, [r1]
+ ldr r1, _080A7004
+ movs r0, 0x2
+ b _080A7012
+ .align 2, 0
+_080A6FF8: .4byte word_203855E
+_080A6FFC: .4byte gUnknown_03000704
+_080A7000: .4byte gUnknown_083C1708
+_080A7004: .4byte gUnknown_02038564
+_080A7008:
+ ldr r1, _080A7018
+ ldr r0, _080A701C
+ str r0, [r1]
+ ldr r1, _080A7020
+ movs r0, 0x1
+_080A7012:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7018: .4byte gUnknown_03000704
+_080A701C: .4byte gUnknown_083C170A
+_080A7020: .4byte gUnknown_02038564
+ thumb_func_end sub_80A6FDC
+
+ thumb_func_start sub_80A7024
+sub_80A7024: @ 80A7024
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080A707C
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80A6FDC
+ ldr r0, _080A7080
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldr r3, _080A7084
+ ldr r2, _080A7088
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r4, 0x1C]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r0, _080A708C
+ bl sub_80A6DF0
+ ldr r0, _080A7090
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A707C: .4byte gUnknown_03000700
+_080A7080: .4byte gTasks
+_080A7084: .4byte gUnknown_03005D10
+_080A7088: .4byte gUnknown_02038559
+_080A708C: .4byte gBG1TilemapBuffer
+_080A7090: .4byte sub_80A6EB8
+ thumb_func_end sub_80A7024
+
+ thumb_func_start sub_80A7094
+sub_80A7094: @ 80A7094
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A70CC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A70D0
+ lsrs r0, r2, 16
+ movs r3, 0
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080A70D4
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A70CC: .4byte gTasks
+_080A70D0: .4byte sub_802E424
+_080A70D4: .4byte sub_80A5B00
+ thumb_func_end sub_80A7094
+
+ thumb_func_start sub_80A70D8
+sub_80A70D8: @ 80A70D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80A7094
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A70D8
+
+ thumb_func_start ItemMenu_UseInBattle
+ItemMenu_UseInBattle: @ 80A70F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A7120
+ ldrh r0, [r4]
+ bl itemid_get_battle_function
+ cmp r0, 0
+ beq _080A711A
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ bl itemid_get_battle_function
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7120: .4byte word_203855E
+ thumb_func_end ItemMenu_UseInBattle
+
+ thumb_func_start sub_80A7124
+sub_80A7124: @ 80A7124
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80A7528
+ adds r0, r4, 0
+ bl sub_80A41D4
+ bl sub_80A736C
+ adds r0, r4, 0
+ bl sub_80A37C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7124
+
+ thumb_func_start sub_80A7150
+sub_80A7150: @ 80A7150
+ push {r4,r5,lr}
+ ldr r4, _080A7158
+ ldr r5, _080A715C
+ b _080A716C
+ .align 2, 0
+_080A7158: .4byte gUnknown_02038563
+_080A715C: .4byte gTasks
+_080A7160:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A7190
+_080A716C:
+ bl sub_80A317C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A7160
+ ldr r0, _080A7198
+ movs r1, 0
+ bl CreateTask
+ strb r0, [r4]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080A7190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7198: .4byte sub_80A7230
+ thumb_func_end sub_80A7150
+
+ thumb_func_start PrepareBagForWallyTutorial
+PrepareBagForWallyTutorial: @ 80A719C
+ push {r4,r5,lr}
+ ldr r0, _080A7214
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080A7218
+ strb r1, [r0]
+ movs r1, 0
+ ldr r4, _080A721C
+ ldr r5, _080A7220
+ ldr r3, _080A7224
+ movs r2, 0
+_080A71B2:
+ lsls r0, r1, 2
+ adds r0, r3
+ strb r2, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080A71B2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x50
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r4, r1
+ adds r4, r5, 0
+ adds r4, 0xA0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0x14
+ bl sub_80A9684
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl sub_80A9684
+ movs r0, 0xD
+ movs r1, 0x1
+ bl sub_80A9424
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_80A9424
+ ldr r1, _080A7228
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r0, _080A722C
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7214: .4byte gUnknown_03000700
+_080A7218: .4byte gUnknown_02038559
+_080A721C: .4byte 0x0201e000
+_080A7220: .4byte gSaveBlock1 + 0x560
+_080A7224: .4byte gUnknown_03005D10
+_080A7228: .4byte gUnknown_03000701
+_080A722C: .4byte sub_80A7150
+ thumb_func_end PrepareBagForWallyTutorial
+
+ thumb_func_start sub_80A7230
+sub_80A7230: @ 80A7230
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _080A725C
+ mov r8, r0
+ adds r7, r6, r0
+ movs r0, 0x1E
+ ldrsh r1, [r7, r0]
+ cmp r1, 0xCC
+ beq _080A727A
+ cmp r1, 0xCC
+ bgt _080A7260
+ cmp r1, 0x66
+ beq _080A726A
+ b _080A7358
+ .align 2, 0
+_080A725C: .4byte gUnknown_03004B28
+_080A7260:
+ movs r0, 0x99
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A72F4
+ b _080A7358
+_080A726A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_80A4E8C
+ b _080A7358
+_080A727A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ bl sub_80F98A4
+ movs r0, 0x3
+ bl sub_80F98A4
+ ldr r1, _080A72D8
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r1, _080A72DC
+ ldr r0, _080A72E0
+ str r0, [r1]
+ ldr r1, _080A72E4
+ movs r0, 0x2
+ strb r0, [r1]
+ mov r0, r8
+ adds r4, r0, r6
+ ldr r3, _080A72E8
+ ldr r2, _080A72EC
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r1, 0x1
+ strh r1, [r4, 0x14]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80A48E8
+ bl sub_80A73FC
+ ldr r0, _080A72F0
+ bl sub_80A6DF0
+ b _080A7358
+ .align 2, 0
+_080A72D8: .4byte word_203855E
+_080A72DC: .4byte gUnknown_03000704
+_080A72E0: .4byte gUnknown_083C1708
+_080A72E4: .4byte gUnknown_02038564
+_080A72E8: .4byte gUnknown_03005D10
+_080A72EC: .4byte gUnknown_02038559
+_080A72F0: .4byte gBG1TilemapBuffer
+_080A72F4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080A7344
+ bl sub_80A4DA4
+ ldr r4, _080A7348
+ ldr r5, _080A734C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x50
+ bl memcpy
+ adds r4, 0xA0
+ movs r0, 0x80
+ lsls r0, 5
+ adds r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080A7350
+ lsrs r0, r1, 16
+ strh r0, [r7, 0x10]
+ strh r1, [r7, 0x12]
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _080A7354
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080A735E
+ .align 2, 0
+_080A7344: .4byte gBG1TilemapBuffer
+_080A7348: .4byte gSaveBlock1 + 0x560
+_080A734C: .4byte 0x0201e000
+_080A7350: .4byte sub_802E424
+_080A7354: .4byte sub_80A5B00
+_080A7358:
+ ldrh r0, [r7, 0x1E]
+ adds r0, 0x1
+ strh r0, [r7, 0x1E]
+_080A735E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7230
+
+ thumb_func_start sub_80A736C
+sub_80A736C: @ 80A736C
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080A73B0
+ ldr r0, _080A73B4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0xE
+ movs r2, 0x2
+ bl InitMenu
+ ldr r1, _080A73B8
+ ldr r3, _080A73BC
+ movs r0, 0xF
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl sub_814AC58
+ bl sub_80A73C0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73B0: .4byte gUnknown_03005D10
+_080A73B4: .4byte gUnknown_02038559
+_080A73B8: .4byte 0x0000ffff
+_080A73BC: .4byte 0x00002d9f
+ thumb_func_end sub_80A736C
+
+ thumb_func_start sub_80A73C0
+sub_80A73C0: @ 80A73C0
+ push {lr}
+ ldr r1, _080A73E8
+ ldr r0, _080A73EC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 28
+ movs r0, 0x80
+ lsls r0, 21
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x70
+ bl sub_814AD7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A73E8: .4byte gUnknown_03005D10
+_080A73EC: .4byte gUnknown_02038559
+ thumb_func_end sub_80A73C0
+
+ thumb_func_start sub_80A73F0
+sub_80A73F0: @ 80A73F0
+ push {lr}
+ bl sub_814ADC8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A73F0
+
+ thumb_func_start sub_80A73FC
+sub_80A73FC: @ 80A73FC
+ push {lr}
+ bl sub_8072DEC
+ bl sub_814AD44
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A73FC
+
+ thumb_func_start sub_80A740C
+sub_80A740C: @ 80A740C
+ push {lr}
+ bl sub_80A75E4
+ bl sub_80A7768
+ bl sub_80A7420
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A740C
+
+ thumb_func_start sub_80A7420
+sub_80A7420: @ 80A7420
+ push {r4,lr}
+ ldr r4, _080A7438
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080A743C
+ cmp r0, 0x3
+ beq _080A7430
+ b _080A7512
+_080A7430:
+ movs r0, 0x2
+ strb r0, [r4]
+ b _080A7512
+ .align 2, 0
+_080A7438: .4byte gUnknown_0203853C
+_080A743C:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x9
+ bhi _080A74FC
+ lsls r0, 2
+ ldr r1, _080A744C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A744C: .4byte _080A7450
+ .align 2, 0
+_080A7450:
+ .4byte _080A7478
+ .4byte _080A74AC
+ .4byte _080A74B4
+ .4byte _080A74BC
+ .4byte _080A74C4
+ .4byte _080A74CC
+ .4byte _080A74D4
+ .4byte _080A74DC
+ .4byte _080A74E4
+ .4byte _080A74F4
+_080A7478:
+ ldr r1, _080A74A0
+ ldr r0, _080A74A4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _080A74A8
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldrb r1, [r4, 0x1]
+ bl sub_80A49AC
+ b _080A74FC
+ .align 2, 0
+_080A74A0: .4byte gUnknown_03005D10
+_080A74A4: .4byte gUnknown_02038559
+_080A74A8: .4byte gUnknown_03005D24
+_080A74AC:
+ ldr r0, _080A74B0
+ b _080A74E6
+ .align 2, 0
+_080A74B0: .4byte gOtherText_SwitchWhichItem
+_080A74B4:
+ ldr r0, _080A74B8
+ b _080A74E6
+ .align 2, 0
+_080A74B8: .4byte gOtherText_WhatWillYouDo2
+_080A74BC:
+ ldr r0, _080A74C0
+ b _080A74E6
+ .align 2, 0
+_080A74C0: .4byte gOtherText_HowManyToToss
+_080A74C4:
+ ldr r0, _080A74C8
+ b _080A74E6
+ .align 2, 0
+_080A74C8: .4byte gOtherText_ThrewAwayItem
+_080A74CC:
+ ldr r0, _080A74D0
+ b _080A74E6
+ .align 2, 0
+_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt
+_080A74D4:
+ ldr r0, _080A74D8
+ b _080A74E6
+ .align 2, 0
+_080A74D8: .4byte gOtherText_HowManyToDeposit
+_080A74DC:
+ ldr r0, _080A74E0
+ b _080A74E6
+ .align 2, 0
+_080A74E0: .4byte gOtherText_DepositedItems
+_080A74E4:
+ ldr r0, _080A74F0
+_080A74E6:
+ ldrb r1, [r4, 0x1]
+ bl sub_80A4A98
+ b _080A74FC
+ .align 2, 0
+_080A74F0: .4byte gOtherText_NoRoomForItems
+_080A74F4:
+ ldr r0, _080A7518
+ ldrb r1, [r4, 0x1]
+ bl sub_80A4A98
+_080A74FC:
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080A7512
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80A7918
+_080A7512:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7518: .4byte gOtherText_CantStoreSomeoneItem
+ thumb_func_end sub_80A7420
+
+ thumb_func_start sub_80A751C
+sub_80A751C: @ 80A751C
+ ldr r1, _080A7524
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7524: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A751C
+
+ thumb_func_start sub_80A7528
+sub_80A7528: @ 80A7528
+ push {r4,lr}
+ ldr r4, _080A7544
+ movs r1, 0
+ strb r1, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ bl sub_80A78F4
+ cmp r0, 0x1
+ beq _080A755E
+ cmp r0, 0x1
+ bgt _080A7548
+ cmp r0, 0
+ beq _080A754E
+ b _080A7566
+ .align 2, 0
+_080A7544: .4byte gUnknown_0203853C
+_080A7548:
+ cmp r0, 0x2
+ beq _080A7562
+ b _080A7566
+_080A754E:
+ movs r0, 0x2
+ strb r0, [r4]
+_080A7552:
+ bl sub_80A7420
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080A7552
+ b _080A7566
+_080A755E:
+ movs r0, 0x3
+ b _080A7564
+_080A7562:
+ movs r0, 0x1
+_080A7564:
+ strb r0, [r4]
+_080A7566:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7528
+
+ thumb_func_start sub_80A756C
+sub_80A756C: @ 80A756C
+ push {r4,lr}
+ ldr r4, _080A758C
+ ldrb r0, [r4]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A7580
+ bl sub_80A7918
+_080A7580:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A758C: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A756C
+
+ thumb_func_start sub_80A7590
+sub_80A7590: @ 80A7590
+ push {lr}
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ bl sub_80A756C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7590
+
+ thumb_func_start sub_80A75A8
+sub_80A75A8: @ 80A75A8
+ push {lr}
+ ldr r1, _080A75C0
+ ldrb r0, [r1]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A75BC
+ movs r0, 0x1
+ strb r0, [r1]
+_080A75BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A75C0: .4byte gUnknown_0203853C
+ thumb_func_end sub_80A75A8
+
+ thumb_func_start sub_80A75C4
+sub_80A75C4: @ 80A75C4
+ push {lr}
+ ldr r1, _080A75D8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A75DC
+ cmp r0, 0x1
+ bne _080A75E0
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080A75E0
+ .align 2, 0
+_080A75D8: .4byte gUnknown_0203853C
+_080A75DC:
+ bl sub_80A7918
+_080A75E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A75C4
+
+ thumb_func_start sub_80A75E4
+sub_80A75E4: @ 80A75E4
+ push {r4,r5,lr}
+ ldr r4, _080A7628
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7622
+ bl sub_80A7988
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080A7622
+ ldr r0, _080A762C
+ ldrb r0, [r0]
+ ldrb r2, [r4, 0x1]
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl sub_80A47E8
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x7
+ cmp r0, 0
+ beq _080A7616
+ movs r1, 0x5
+_080A7616:
+ ldrb r0, [r4, 0x1]
+ cmp r1, r0
+ bge _080A7622
+ strb r5, [r4]
+ bl sub_80A78E8
+_080A7622:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7628: .4byte gUnknown_02038540
+_080A762C: .4byte gUnknown_02038563
+ thumb_func_end sub_80A75E4
+
+ thumb_func_start sub_80A7630
+sub_80A7630: @ 80A7630
+ ldr r1, _080A7638
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7638: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7630
+
+ thumb_func_start sub_80A763C
+sub_80A763C: @ 80A763C
+ push {r4,lr}
+ ldr r4, _080A7650
+ bl sub_80A78C4
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080A7654
+ cmp r1, 0x1
+ beq _080A7668
+ b _080A7670
+ .align 2, 0
+_080A7650: .4byte gUnknown_02038540
+_080A7654:
+ ldr r0, _080A7664
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0x7
+ bl sub_80A48E8
+ b _080A7670
+ .align 2, 0
+_080A7664: .4byte gUnknown_02038563
+_080A7668:
+ movs r0, 0
+ strb r1, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+_080A7670:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A763C
+
+ thumb_func_start sub_80A7678
+sub_80A7678: @ 80A7678
+ push {r4,lr}
+ ldr r4, _080A7690
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7686
+ bl sub_80A78E8
+_080A7686:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7690: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7678
+
+ thumb_func_start sub_80A7694
+sub_80A7694: @ 80A7694
+ ldr r1, _080A769C
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_080A769C: .4byte gUnknown_02038540
+ thumb_func_end sub_80A7694
+
+ thumb_func_start sub_80A76A0
+sub_80A76A0: @ 80A76A0
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x2
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ bl sub_80A7678
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A76A0
+
+ thumb_func_start sub_80A76B8
+sub_80A76B8: @ 80A76B8
+ push {lr}
+ ldr r0, _080A76CC
+ movs r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A76C6
+ movs r1, 0x1
+_080A76C6:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A76CC: .4byte gUnknown_02038540
+ thumb_func_end sub_80A76B8
+
+ thumb_func_start sub_80A76D0
+sub_80A76D0: @ 80A76D0
+ push {lr}
+ ldr r0, _080A76E4
+ movs r1, 0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x5
+ bls _080A76DE
+ movs r1, 0x1
+_080A76DE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A76E4: .4byte gUnknown_02038540
+ thumb_func_end sub_80A76D0
+
+ thumb_func_start sub_80A76E8
+sub_80A76E8: @ 80A76E8
+ push {r4,lr}
+ ldr r4, _080A7708
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _080A7702
+ ldrb r0, [r4, 0x1]
+ ldr r1, [r4, 0x4]
+ ldr r2, [r4, 0x8]
+ ldrh r3, [r4, 0x2]
+ bl DisplayItemMessageOnField
+ movs r0, 0
+ strb r0, [r4]
+_080A7702:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7708: .4byte gUnknown_02038544
+ thumb_func_end sub_80A76E8
+
+ thumb_func_start sub_80A770C
+sub_80A770C: @ 80A770C
+ ldr r1, _080A7714
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7714: .4byte gUnknown_02038544
+ thumb_func_end sub_80A770C
+
+ thumb_func_start DisplayCannotUseItemMessage
+DisplayCannotUseItemMessage: @ 80A7718
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ ldr r4, _080A7738
+ bl sub_80A7924
+ cmp r0, 0
+ beq _080A773C
+ cmp r0, 0x2
+ beq _080A774E
+ b _080A775C
+ .align 2, 0
+_080A7738: .4byte gUnknown_02038544
+_080A773C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ lsrs r3, 16
+ adds r1, r7, 0
+ mov r2, r8
+ bl DisplayItemMessageOnField
+ b _080A775C
+_080A774E:
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r5, [r4, 0x1]
+ str r7, [r4, 0x4]
+ mov r0, r8
+ str r0, [r4, 0x8]
+ strh r6, [r4, 0x2]
+_080A775C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end DisplayCannotUseItemMessage
+
+ thumb_func_start sub_80A7768
+sub_80A7768: @ 80A7768
+ push {r4,lr}
+ ldr r4, _080A77A8
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bne _080A7814
+ ldrb r1, [r4, 0x1]
+ cmp r1, 0
+ beq _080A780E
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ beq _080A77B4
+ ldr r2, _080A77AC
+ ldr r0, _080A77B0
+ ldr r0, [r0]
+ adds r0, r1, r0
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0]
+ subs r1, 0x1
+ lsls r1, 1
+ adds r1, 0x1
+ ldrb r2, [r4, 0x3]
+ adds r2, r1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x7
+ bl MenuPrint
+ b _080A77FC
+ .align 2, 0
+_080A77A8: .4byte gUnknown_02038550
+_080A77AC: .4byte gUnknown_083C1640
+_080A77B0: .4byte gUnknown_03000704
+_080A77B4:
+ cmp r1, 0x1
+ bne _080A77C8
+ ldr r0, _080A77C4
+ ldrh r0, [r0]
+ bl sub_80A4B90
+ adds r3, r0, 0
+ b _080A77DC
+ .align 2, 0
+_080A77C4: .4byte word_203855E
+_080A77C8:
+ ldr r2, _080A781C
+ ldrb r0, [r4, 0x1]
+ ldr r1, _080A7820
+ ldr r1, [r1]
+ adds r0, r1
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r3, [r0]
+_080A77DC:
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ asrs r0, r2, 1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ ands r2, r0
+ lsls r2, 1
+ adds r2, 0x8
+ adds r0, r3, 0
+ bl MenuPrint
+_080A77FC:
+ ldr r1, _080A7824
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080A780E
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80A7970
+_080A780E:
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+_080A7814:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A781C: .4byte gUnknown_083C1640
+_080A7820: .4byte gUnknown_03000704
+_080A7824: .4byte gUnknown_02038564
+ thumb_func_end sub_80A7768
+
+ thumb_func_start sub_80A7828
+sub_80A7828: @ 80A7828
+ ldr r1, _080A7830
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7830: .4byte gUnknown_02038550
+ thumb_func_end sub_80A7828
+
+ thumb_func_start sub_80A7834
+sub_80A7834: @ 80A7834
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, _080A784C
+ bl sub_80A7958
+ cmp r0, 0x1
+ beq _080A7850
+ cmp r0, 0x2
+ beq _080A7856
+ b _080A7862
+ .align 2, 0
+_080A784C: .4byte gUnknown_02038550
+_080A7850:
+ movs r1, 0
+ movs r0, 0x2
+ b _080A785A
+_080A7856:
+ movs r1, 0
+ movs r0, 0x1
+_080A785A:
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ strb r5, [r4, 0x2]
+ strb r6, [r4, 0x3]
+_080A7862:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7834
+
+ thumb_func_start sub_80A7868
+sub_80A7868: @ 80A7868
+ push {lr}
+ ldr r1, _080A787C
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _080A7876
+ movs r0, 0x1
+ strb r0, [r1]
+_080A7876:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A787C: .4byte gUnknown_02038550
+ thumb_func_end sub_80A7868
+
+ thumb_func_start sub_80A7880
+sub_80A7880: @ 80A7880
+ push {lr}
+ ldr r1, _080A7894
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A7898
+ cmp r0, 0x1
+ bne _080A789C
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080A789C
+ .align 2, 0
+_080A7894: .4byte gUnknown_02038550
+_080A7898:
+ bl sub_80A7970
+_080A789C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7880
+
+ thumb_func_start rfu_lacks_rfufunc
+rfu_lacks_rfufunc: @ 80A78A0
+ push {lr}
+ ldr r0, _080A78B4
+ movs r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A78AE
+ movs r1, 0x1
+_080A78AE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A78B4: .4byte gUnknown_02038550
+ thumb_func_end rfu_lacks_rfufunc
+
+ thumb_func_start sub_80A78B8
+sub_80A78B8: @ 80A78B8
+ ldr r1, _080A78C0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A78C0: .4byte gUnknown_02038554
+ thumb_func_end sub_80A78B8
+
+ thumb_func_start sub_80A78C4
+sub_80A78C4: @ 80A78C4
+ push {lr}
+ ldr r0, _080A78DC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A78E0
+ bl sub_80A7868
+ bl sub_80A75A8
+ movs r0, 0x1
+ b _080A78E2
+ .align 2, 0
+_080A78DC: .4byte gLinkOpen
+_080A78E0:
+ movs r0, 0
+_080A78E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A78C4
+
+ thumb_func_start sub_80A78E8
+sub_80A78E8: @ 80A78E8
+ push {lr}
+ bl sub_80A7880
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A78E8
+
+ thumb_func_start sub_80A78F4
+sub_80A78F4: @ 80A78F4
+ push {lr}
+ ldr r0, _080A790C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A7910
+ bl sub_80A76B8
+ movs r1, 0x2
+ cmp r0, 0
+ beq _080A7912
+ movs r1, 0x1
+ b _080A7912
+ .align 2, 0
+_080A790C: .4byte gLinkOpen
+_080A7910:
+ movs r1, 0
+_080A7912:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A78F4
+
+ thumb_func_start sub_80A7918
+sub_80A7918: @ 80A7918
+ push {lr}
+ bl sub_80A76E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7918
+
+ thumb_func_start sub_80A7924
+sub_80A7924: @ 80A7924
+ push {lr}
+ ldr r0, _080A7948
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080A7942
+ bl sub_80A76B8
+ cmp r0, 0
+ bne _080A7942
+ bl sub_80A76D0
+ cmp r0, 0
+ beq _080A794C
+ bl sub_80A7678
+_080A7942:
+ movs r0, 0
+ b _080A7952
+ .align 2, 0
+_080A7948: .4byte gLinkOpen
+_080A794C:
+ bl sub_80A7694
+ movs r0, 0x2
+_080A7952:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A7924
+
+ thumb_func_start sub_80A7958
+sub_80A7958: @ 80A7958
+ push {lr}
+ bl sub_80A76B8
+ cmp r0, 0
+ beq _080A796A
+ bl sub_80A75A8
+ movs r0, 0x1
+ b _080A796C
+_080A796A:
+ movs r0, 0x2
+_080A796C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A7958
+
+ thumb_func_start sub_80A7970
+sub_80A7970: @ 80A7970
+ push {lr}
+ bl sub_80A75C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7970
+
+ thumb_func_start sub_80A797C
+sub_80A797C: @ 80A797C
+ ldr r1, _080A7984
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080A7984: .4byte gUnknown_02038554
+ thumb_func_end sub_80A797C
+
+ thumb_func_start sub_80A7988
+sub_80A7988: @ 80A7988
+ ldr r1, _080A7994
+ ldrb r0, [r1]
+ movs r2, 0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_080A7994: .4byte gUnknown_02038554
+ thumb_func_end sub_80A7988
+
+ thumb_func_start sub_80A7998
+sub_80A7998: @ 80A7998
+ adds r2, r0, 0
+ adds r2, 0x2A
+ movs r1, 0
+ strb r1, [r2]
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ ldr r1, _080A79B0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A79B0: .4byte sub_80A79B4
+ thumb_func_end sub_80A7998
+
+ thumb_func_start sub_80A79B4
+sub_80A79B4: @ 80A79B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A79E4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A79CC
+ adds r0, r4, 0
+ bl sub_80A79EC
+_080A79CC:
+ ldr r0, _080A79E8
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080A79DE
+ adds r0, r4, 0
+ bl sub_80A7A94
+_080A79DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A79E4: .4byte gUnknown_0203855B
+_080A79E8: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A79B4
+
+ thumb_func_start sub_80A79EC
+sub_80A79EC: @ 80A79EC
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ movs r0, 0x34
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ beq _080A79FE
+ cmp r4, 0x1
+ beq _080A7A54
+ b _080A7A8A
+_080A79FE:
+ ldr r5, _080A7A28
+ ldrb r6, [r5]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x6
+ beq _080A7A2C
+ adds r3, r2, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ strb r6, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ strb r0, [r5]
+ b _080A7A8A
+ .align 2, 0
+_080A7A28: .4byte gUnknown_0203855B
+_080A7A2C:
+ adds r3, r2, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ strb r4, [r0]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ movs r0, 0x1
+ strh r0, [r2, 0x34]
+ adds r0, r2, 0
+ bl sub_80A7AE4
+ b _080A7A8A
+_080A7A54:
+ ldrh r4, [r2, 0x2E]
+ movs r0, 0x2E
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ beq _080A7A7C
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080A7A72
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x1
+ strh r0, [r2, 0x22]
+ subs r0, r4, 0x1
+ strh r0, [r2, 0x2E]
+_080A7A72:
+ adds r0, r1, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ b _080A7A8A
+_080A7A7C:
+ ldr r1, _080A7A90
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ strb r0, [r1]
+ strh r3, [r2, 0x30]
+ strh r3, [r2, 0x34]
+_080A7A8A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7A90: .4byte gUnknown_0203855B
+ thumb_func_end sub_80A79EC
+
+ thumb_func_start sub_80A7A94
+sub_80A7A94: @ 80A7A94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7AA6
+ cmp r0, 0x1
+ beq _080A7AC8
+ b _080A7ADC
+_080A7AA6:
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080A7AC4
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080A7ADC
+ .align 2, 0
+_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4
+_080A7AC8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080A7ADC
+ adds r0, r4, 0
+ bl sub_80A7AE4
+_080A7ADC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7A94
+
+ thumb_func_start sub_80A7AE4
+sub_80A7AE4: @ 80A7AE4
+ push {lr}
+ ldr r2, _080A7B0C
+ movs r1, 0
+ strb r1, [r2]
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B0C: .4byte gUnknown_0203855C
+ thumb_func_end sub_80A7AE4
+
+ thumb_func_start sub_80A7B10
+sub_80A7B10: @ 80A7B10
+ push {lr}
+ ldr r0, _080A7B24
+ movs r1, 0x3A
+ movs r2, 0x28
+ movs r3, 0
+ bl CreateSprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B24: .4byte gSpriteTemplate_83C1CE0
+ thumb_func_end sub_80A7B10
+
+ thumb_func_start sub_80A7B28
+sub_80A7B28: @ 80A7B28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80A7B6C
+ ldr r0, _080A7B44
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7B44: .4byte sub_80A7B6C
+ thumb_func_end sub_80A7B28
+
+ thumb_func_start sub_80A7B48
+sub_80A7B48: @ 80A7B48
+ ldrh r2, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ movs r3, 0x1
+ ands r1, r3
+ subs r2, r1
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r2, [r1]
+ ldrh r2, [r0, 0x3A]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ ands r1, r3
+ subs r2, r1
+ adds r0, 0x29
+ strb r2, [r0]
+ bx lr
+ thumb_func_end sub_80A7B48
+
+ thumb_func_start sub_80A7B6C
+sub_80A7B6C: @ 80A7B6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080A7C16
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A7B86
+ cmp r0, 0x1
+ beq _080A7BD4
+ b _080A7C16
+_080A7B86:
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ cmp r2, 0x1
+ bne _080A7BA0
+ ldr r0, _080A7B9C
+ b _080A7BA2
+ .align 2, 0
+_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20
+_080A7BA0:
+ ldr r0, _080A7BD0
+_080A7BA2:
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ adds r0, r4, 0
+ bl sub_80A7B48
+ b _080A7C16
+ .align 2, 0
+_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4
+_080A7BD4:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80A7B48
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _080A7C16
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x34]
+ ldrh r1, [r4, 0x38]
+ adds r0, r4, 0
+ adds r0, 0x28
+ strb r1, [r0]
+ ldrh r0, [r4, 0x3A]
+ adds r1, r4, 0
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080A7C1C
+ str r0, [r4, 0x1C]
+_080A7C16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C1C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A7B6C
+
+ thumb_func_start sub_80A7C20
+sub_80A7C20: @ 80A7C20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A7C54
+ bl LoadSpritePalette
+ ldr r0, _080A7C58
+ movs r1, 0x10
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A7C5C
+ strb r0, [r1]
+ ldr r2, _080A7C60
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C54: .4byte gUnknown_083C1D30
+_080A7C58: .4byte gSpriteTemplate_83C1D38
+_080A7C5C: .4byte gUnknown_02038568
+_080A7C60: .4byte gSprites
+ thumb_func_end sub_80A7C20
+
+ thumb_func_start sub_80A7C64
+sub_80A7C64: @ 80A7C64
+ push {r4,r5,lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ ldr r5, _080A7C98
+ ldr r4, _080A7C9C
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7C98: .4byte gSprites
+_080A7C9C: .4byte gUnknown_02038568
+ thumb_func_end sub_80A7C64
+
+ thumb_func_start sub_80A7CA0
+sub_80A7CA0: @ 80A7CA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r4, 0
+ movs r1, 0
+ bl memset
+ movs r0, 0x80
+ lsls r0, 1
+ adds r4, r0
+ movs r7, 0
+_080A7CBE:
+ adds r4, 0x20
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r8, r1
+_080A7CC6:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r4, 0x20
+ adds r6, 0x20
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080A7CC6
+ cmp r7, 0x5
+ beq _080A7CE4
+ adds r4, 0x20
+_080A7CE4:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _080A7CBE
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7CA0
+
+ thumb_func_start sub_80A7CF8
+sub_80A7CF8: @ 80A7CF8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2A
+ bne _080A7D44
+ bl sub_80B4940
+ cmp r0, 0x1
+ bne _080A7D44
+ ldr r4, _080A7D34
+ ldr r1, _080A7D38
+ adds r0, r4, 0
+ bl sub_80A7CA0
+ movs r0, 0x90
+ lsls r0, 3
+ adds r4, r0
+ str r4, [sp]
+ ldr r1, _080A7D3C
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ ldr r1, _080A7D40
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ b _080A7D72
+ .align 2, 0
+_080A7D34: .4byte gSaveBlock1 + 0x317C
+_080A7D38: .4byte 0x02000000
+_080A7D3C: .4byte 0xffff0000
+_080A7D40: .4byte 0x00007544
+_080A7D44:
+ ldr r5, _080A7D7C
+ lsls r4, 3
+ adds r0, r5, 0x4
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [sp]
+ mov r1, sp
+ ldr r0, _080A7D80
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ bl LoadCompressedObjectPalette
+ adds r4, r5
+ ldr r0, [r4]
+ ldr r4, _080A7D84
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _080A7D88
+ adds r1, r4, r0
+ adds r0, r4, 0
+ bl sub_80A7CA0
+_080A7D72:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7D7C: .4byte gBerryGraphicsTable
+_080A7D80: .4byte 0x00007544
+_080A7D84: .4byte 0x02001000
+_080A7D88: .4byte 0xfffff000
+ thumb_func_end sub_80A7CF8
+
+ thumb_func_start sub_80A7D8C
+sub_80A7D8C: @ 80A7D8C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_80A7CF8
+ ldr r0, _080A7DC0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7DC0: .4byte gSpriteTemplate_83C1D74
+ thumb_func_end sub_80A7D8C
+
+ thumb_func_start sub_80A7DC4
+sub_80A7DC4: @ 80A7DC4
+ ldr r1, _080A7DD0
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_080A7DD0: .4byte gUnknown_030041B4
+ thumb_func_end sub_80A7DC4
+
+ thumb_func_start sub_80A7DD4
+sub_80A7DD4: @ 80A7DD4
+ push {lr}
+ ldr r0, _080A7DE8
+ bl FreeSpritePaletteByTag
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7DE8: .4byte 0x00007544
+ thumb_func_end sub_80A7DD4
+
+ thumb_func_start sub_80A7DEC
+sub_80A7DEC: @ 80A7DEC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _080A7E50
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl sub_80A7CF8
+ ldr r0, _080A7E54
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r4, r1, 0
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080A7E42
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A7E58
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080A7E42:
+ adds r0, r4, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7E50: .4byte 0x00007544
+_080A7E54: .4byte gSpriteTemplate_83C1E04
+_080A7E58: .4byte gSprites
+ thumb_func_end sub_80A7DEC
+
+ thumb_func_start sub_80A7E5C
+sub_80A7E5C: @ 80A7E5C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080A7E78
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x63
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A7E78: .4byte gSpriteTemplate_83C1F98
+ thumb_func_end sub_80A7E5C
+
+ thumb_func_start sub_80A7E7C
+sub_80A7E7C: @ 80A7E7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A7E9C
+ ldrb r0, [r4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _080A7EA0
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080A7EDC
+ .align 2, 0
+_080A7E9C: .4byte gUnknown_03004B00
+_080A7EA0:
+ ldr r1, _080A7EE4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x2]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x26]
+ ldr r1, _080A7EE8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x8]
+ ldrh r1, [r4, 0x6]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r4, 0x8]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r4, 0x8]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r4, 0x2]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x12]
+ ldr r1, _080A7EEC
+ str r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A7EDC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7EE4: .4byte gSprites
+_080A7EE8: .4byte gTasks
+_080A7EEC: .4byte sub_80A7EF0
+ thumb_func_end sub_80A7E7C
+
+ thumb_func_start sub_80A7EF0
+sub_80A7EF0: @ 80A7EF0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080A7F2C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xE]
+ movs r2, 0xE
+ ldrsh r5, [r3, r2]
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _080A7F96
+ ldr r2, _080A7F30
+ movs r6, 0x8
+ ldrsh r1, [r3, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r6, 0x24
+ ldrsh r0, [r1, r6]
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _080A7F34
+ ldrh r0, [r3, 0x10]
+ strh r0, [r1, 0x24]
+ b _080A7F36
+ .align 2, 0
+_080A7F2C: .4byte gTasks
+_080A7F30: .4byte gSprites
+_080A7F34:
+ strh r5, [r1, 0x24]
+_080A7F36:
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r7
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ movs r5, 0x26
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ bne _080A7F56
+ ldrh r0, [r3, 0x12]
+ b _080A7F58
+_080A7F56:
+ movs r0, 0
+_080A7F58:
+ strh r0, [r1, 0x26]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r2, r0, r7
+ ldrh r0, [r2, 0xC]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080A7F9A
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r3, [r0, 0x24]
+ movs r5, 0x8
+ ldrsh r1, [r2, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r3, [r0, 0x26]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080A7F9A
+_080A7F96:
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+_080A7F9A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7EF0
+
+ thumb_func_start sub_80A7FA0
+sub_80A7FA0: @ 80A7FA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _080A7FC8
+ ldrh r0, [r2]
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x3
+ bgt _080A7FCC
+ lsls r0, 24
+ lsrs r0, 24
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ bne _080A8022
+ b _080A8026
+ .align 2, 0
+_080A7FC8: .4byte gUnknown_03004B00
+_080A7FCC:
+ cmp r1, 0x8
+ beq _080A8018
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x5
+ beq _080A7FEC
+ cmp r0, 0x5
+ bgt _080A7FE2
+ cmp r0, 0x4
+ beq _080A7FE8
+ b _080A7FF4
+_080A7FE2:
+ cmp r0, 0x6
+ beq _080A7FF0
+ b _080A7FF4
+_080A7FE8:
+ movs r0, 0
+ b _080A7FF6
+_080A7FEC:
+ movs r0, 0x2
+ b _080A7FF6
+_080A7FF0:
+ movs r0, 0x1
+ b _080A7FF6
+_080A7FF4:
+ movs r0, 0x3
+_080A7FF6:
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A800C
+ movs r6, 0x1
+_080A800C:
+ ldr r0, _080A8014
+ adds r0, r4, r0
+ b _080A8020
+ .align 2, 0
+_080A8014: .4byte gUnknown_02024BE0
+_080A8018:
+ ldr r1, _080A8030
+ ldr r0, _080A8034
+ ldrb r0, [r0]
+ adds r0, r1
+_080A8020:
+ ldrb r3, [r0]
+_080A8022:
+ cmp r6, 0
+ beq _080A8038
+_080A8026:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080A8076
+ .align 2, 0
+_080A8030: .4byte gUnknown_02024BE0
+_080A8034: .4byte gUnknown_0202F7C8
+_080A8038:
+ ldr r1, _080A807C
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, _080A8080
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x26]
+ ldr r1, _080A8084
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x8]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x12]
+ ldr r1, _080A8088
+ str r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080A8076:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A807C: .4byte gSprites
+_080A8080: .4byte gUnknown_03004B00
+_080A8084: .4byte gTasks
+_080A8088: .4byte sub_80A808C
+ thumb_func_end sub_80A7FA0
+
+ thumb_func_start sub_80A808C
+sub_80A808C: @ 80A808C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A80D0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080A8144
+ ldr r2, _080A80D4
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ ldrh r5, [r3, 0x10]
+ movs r7, 0x10
+ ldrsh r0, [r3, r7]
+ adds r7, r2, 0
+ cmp r1, r0
+ bne _080A80D8
+ negs r0, r5
+ strh r0, [r4, 0x24]
+ b _080A80DA
+ .align 2, 0
+_080A80D0: .4byte gTasks
+_080A80D4: .4byte gSprites
+_080A80D8:
+ strh r5, [r4, 0x24]
+_080A80DA:
+ lsls r3, r6, 2
+ adds r1, r3, r6
+ lsls r1, 3
+ add r1, r12
+ movs r0, 0x8
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r7
+ movs r0, 0x26
+ ldrsh r2, [r4, r0]
+ mov r8, r2
+ ldrh r5, [r1, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ cmp r8, r0
+ bne _080A8104
+ negs r0, r5
+ strh r0, [r4, 0x26]
+ b _080A8106
+_080A8104:
+ strh r5, [r4, 0x26]
+_080A8106:
+ adds r0, r3, r6
+ lsls r0, 3
+ mov r4, r12
+ adds r3, r0, r4
+ ldrh r0, [r3, 0xC]
+ strh r0, [r3, 0xE]
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _080A8148
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x24]
+ movs r4, 0x8
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080A8148
+_080A8144:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080A8148:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A808C
+
+ thumb_func_start sub_80A8154
+sub_80A8154: @ 80A8154
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A8174
+ ldrb r0, [r4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ bne _080A8178
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080A81C6
+ .align 2, 0
+_080A8174: .4byte gUnknown_03004B00
+_080A8178:
+ ldr r0, _080A81CC
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x2]
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x4]
+ ldrh r6, [r1, 0x26]
+ adds r0, r6
+ strh r0, [r1, 0x26]
+ ldr r0, _080A81D0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ strh r3, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r1, 0x10]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ strh r0, [r1, 0x12]
+ movs r6, 0x4
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ strh r0, [r1, 0x14]
+ ldr r2, _080A81D4
+ str r2, [r1]
+ adds r0, r5, 0
+ bl _call_via_r2
+_080A81C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A81CC: .4byte gSprites
+_080A81D0: .4byte gTasks
+_080A81D4: .4byte sub_80A81D8
+ thumb_func_end sub_80A8154
+
+ thumb_func_start sub_80A81D8
+sub_80A81D8: @ 80A81D8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A8230
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080A81F6
+ b _080A8308
+_080A81F6:
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A8238
+ ldr r2, _080A8234
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r3, [r0, 0x24]
+ adds r1, r3
+ strh r1, [r0, 0x24]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x14]
+ ldrh r3, [r0, 0x26]
+ adds r1, r3
+ strh r1, [r0, 0x26]
+ adds r3, r2, 0
+ b _080A8262
+ .align 2, 0
+_080A8230: .4byte gTasks
+_080A8234: .4byte gSprites
+_080A8238:
+ ldr r3, _080A82C4
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ ldrh r2, [r4, 0x14]
+ subs r1, r2
+ strh r1, [r0, 0x26]
+_080A8262:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r0, [r4, 0x10]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0xA]
+ adds r2, r0, 0x1
+ strh r2, [r4, 0xA]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0xC
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080A830C
+ movs r0, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080A82C8
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ ldrh r6, [r1, 0x24]
+ adds r0, r6
+ strh r0, [r1, 0x24]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ ldrh r3, [r1, 0x26]
+ adds r0, r3
+ strh r0, [r1, 0x26]
+ b _080A8300
+ .align 2, 0
+_080A82C4: .4byte gSprites
+_080A82C8:
+ movs r6, 0x8
+ ldrsh r0, [r4, r6]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r2, 0x26]
+ subs r0, r1
+ strh r0, [r2, 0x26]
+_080A8300:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080A830C
+_080A8308:
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xE]
+_080A830C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A81D8
+
+ thumb_func_start sub_80A8314
+sub_80A8314: @ 80A8314
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080A8364
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A8368
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r5, 0x2]
+ strh r2, [r1, 0x24]
+ ldr r2, _080A836C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r1, 0x10]
+ ldr r2, _080A8370
+ str r2, [r1]
+ adds r0, r4, 0
+ bl _call_via_r2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8364: .4byte gUnknown_03004B00
+_080A8368: .4byte gSprites
+_080A836C: .4byte gTasks
+_080A8370: .4byte sub_80A8374
+ thumb_func_end sub_80A8314
+
+ thumb_func_start sub_80A8374
+sub_80A8374: @ 80A8374
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080A8400
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrb r5, [r3, 0x8]
+ ldrh r4, [r3, 0xA]
+ ldrh r1, [r3, 0x18]
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x18]
+ movs r7, 0xC
+ ldrsh r0, [r3, r7]
+ lsls r1, 16
+ asrs r1, 16
+ mov r12, r2
+ ldr r7, _080A8404
+ cmp r0, r1
+ bne _080A83C6
+ movs r0, 0
+ strh r0, [r3, 0x18]
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrh r3, [r1, 0x24]
+ movs r0, 0x24
+ ldrsh r2, [r1, r0]
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r2, r0
+ bne _080A83BE
+ negs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A83BE:
+ lsls r0, r4, 16
+ asrs r0, 16
+ adds r0, r3
+ strh r0, [r1, 0x24]
+_080A83C6:
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r2, 3
+ add r2, r12
+ strh r4, [r2, 0xA]
+ ldrh r1, [r2, 0xE]
+ ldrh r0, [r2, 0x1A]
+ adds r1, r0
+ strh r1, [r2, 0x1A]
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r7
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r0, 0x26]
+ ldrh r0, [r2, 0x10]
+ subs r0, 0x1
+ strh r0, [r2, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A83F8
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080A83F8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8400: .4byte gTasks
+_080A8404: .4byte gSprites
+ thumb_func_end sub_80A8374
+
+ thumb_func_start sub_80A8408
+sub_80A8408: @ 80A8408
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0x1
+ ldr r4, _080A847C
+ ldrb r0, [r4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _080A842C
+ movs r0, 0x5
+ strh r0, [r4, 0x8]
+_080A842C:
+ movs r1, 0
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ adds r3, r4, 0
+ ldr r2, _080A8480
+ mov r12, r2
+ lsls r4, r5, 2
+ ldr r2, _080A8484
+ mov r8, r2
+ cmp r1, r0
+ bge _080A8452
+ adds r2, r0, 0
+_080A8444:
+ lsls r0, r6, 25
+ lsrs r6, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r2
+ blt _080A8444
+_080A8452:
+ adds r0, r4, r5
+ lsls r0, 3
+ add r0, r12
+ strh r7, [r0, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0xE]
+ strh r6, [r0, 0x10]
+ mov r1, r8
+ str r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A847C: .4byte gUnknown_03004B00
+_080A8480: .4byte gTasks
+_080A8484: .4byte sub_80A8488
+ thumb_func_end sub_80A8408
+
+ thumb_func_start sub_80A8488
+sub_80A8488: @ 80A8488
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080A84F8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r4, [r5, 0x8]
+ movs r1, 0x12
+ ldrsh r0, [r5, r1]
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r2, _080A84FC
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r4, r1, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x12
+ ldrsh r0, [r5, r1]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r5, 0xC]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0x10]
+ ldrh r1, [r5, 0x12]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x12]
+ cmp r0, 0
+ bne _080A84E0
+ ldrh r0, [r5, 0xE]
+ subs r0, 0x1
+ strh r0, [r5, 0xE]
+_080A84E0:
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080A84F2
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080A84F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A84F8: .4byte gTasks
+_080A84FC: .4byte gSprites
+ thumb_func_end sub_80A8488
+
+ thumb_func_start sub_80A8500
+sub_80A8500: @ 80A8500
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A8528
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A851C
+ ldr r1, _080A852C
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A851C:
+ adds r0, r4, 0
+ bl sub_80A8408
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8528: .4byte gUnknown_0202F7C8
+_080A852C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80A8500
+
+ thumb_func_start sub_80A8530
+sub_80A8530: @ 80A8530
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A8558
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8560
+ ldr r1, _080A855C
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ b _080A8564
+ .align 2, 0
+_080A8558: .4byte gUnknown_0202F7C8
+_080A855C: .4byte gUnknown_03004B00
+_080A8560:
+ ldr r1, _080A8590
+ ldrh r0, [r1, 0x2]
+_080A8564:
+ strh r0, [r4, 0x30]
+ ldrh r2, [r1]
+ movs r0, 0
+ strh r2, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r1, _080A8594
+ ldr r0, _080A8598
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r1, _080A859C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080A85A0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8590: .4byte gUnknown_03004B00
+_080A8594: .4byte gUnknown_02024BE0
+_080A8598: .4byte gUnknown_0202F7C8
+_080A859C: .4byte sub_80A85A4
+_080A85A0: .4byte sub_8078458
+ thumb_func_end sub_80A8530
+
+ thumb_func_start sub_80A85A4
+sub_80A85A4: @ 80A85A4
+ push {lr}
+ ldrh r1, [r0, 0x36]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x30]
+ negs r1, r1
+ strh r1, [r0, 0x30]
+ ldr r1, _080A85C0
+ str r1, [r0, 0x1C]
+ ldr r1, _080A85C4
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A85C0: .4byte sub_8078458
+_080A85C4: .4byte move_anim_8072740
+ thumb_func_end sub_80A85A4
+
+ thumb_func_start sub_80A85C8
+sub_80A85C8: @ 80A85C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r5, _080A8608
+ ldrb r0, [r5, 0x4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r5]
+ movs r1, 0
+ strh r2, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r5, 0x2]
+ strh r1, [r4, 0x32]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r1, _080A860C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080A8610
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8608: .4byte gUnknown_03004B00
+_080A860C: .4byte sub_80A8614
+_080A8610: .4byte sub_8078458
+ thumb_func_end sub_80A85C8
+
+ thumb_func_start sub_80A8614
+sub_80A8614: @ 80A8614
+ push {lr}
+ ldrh r1, [r0, 0x36]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x32]
+ negs r1, r1
+ strh r1, [r0, 0x32]
+ ldr r1, _080A8630
+ str r1, [r0, 0x1C]
+ ldr r1, _080A8634
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8630: .4byte sub_8078458
+_080A8634: .4byte move_anim_8072740
+ thumb_func_end sub_80A8614
+
+ thumb_func_start sub_80A8638
+sub_80A8638: @ 80A8638
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _080A8650
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A865C
+ ldr r1, _080A8654
+ ldr r0, _080A8658
+ b _080A8660
+ .align 2, 0
+_080A8650: .4byte gUnknown_03004B00
+_080A8654: .4byte gUnknown_02024BE0
+_080A8658: .4byte gUnknown_0202F7C8
+_080A865C:
+ ldr r1, _080A86C0
+ ldr r0, _080A86C4
+_080A8660:
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r7, [r0]
+ ldr r5, _080A86C8
+ ldrh r0, [r5, 0x4]
+ movs r3, 0
+ strh r0, [r6, 0x2E]
+ ldr r0, _080A86CC
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r4, r0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ str r3, [sp]
+ bl sub_8078A5C
+ ldr r3, [sp]
+ strh r3, [r6, 0x34]
+ strh r3, [r6, 0x36]
+ ldrh r0, [r4, 0x24]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x26]
+ strh r0, [r6, 0x3A]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080A86D0
+ strh r3, [r6, 0x32]
+ b _080A86D6
+ .align 2, 0
+_080A86C0: .4byte gUnknown_02024BE0
+_080A86C4: .4byte gUnknown_0202F7C9
+_080A86C8: .4byte gUnknown_03004B00
+_080A86CC: .4byte gSprites
+_080A86D0:
+ cmp r0, 0x2
+ bne _080A86D6
+ strh r3, [r6, 0x30]
+_080A86D6:
+ ldr r0, _080A86EC
+ ldrh r1, [r0, 0x2]
+ lsls r0, r7, 8
+ orrs r0, r1
+ strh r0, [r6, 0x3C]
+ ldr r0, _080A86F0
+ str r0, [r6, 0x1C]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A86EC: .4byte gUnknown_03004B00
+_080A86F0: .4byte sub_80A86F4
+ thumb_func_end sub_80A8638
+
+ thumb_func_start sub_80A86F4
+sub_80A86F4: @ 80A86F4
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3C]
+ lsls r1, r0, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ lsls r0, 16
+ asrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080A8730
+ adds r3, r1, r0
+ ldrh r0, [r2, 0x2E]
+ movs r6, 0x2E
+ ldrsh r1, [r2, r6]
+ cmp r1, 0
+ bne _080A8734
+ cmp r4, 0x1
+ bhi _080A871E
+ strh r1, [r3, 0x24]
+_080A871E:
+ cmp r5, 0x2
+ beq _080A8726
+ cmp r5, 0
+ bne _080A8728
+_080A8726:
+ strh r1, [r3, 0x26]
+_080A8728:
+ adds r0, r2, 0
+ bl move_anim_8072740
+ b _080A875E
+ .align 2, 0
+_080A8730: .4byte gSprites
+_080A8734:
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0
+ strh r1, [r2, 0x34]
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r0, r4
+ strh r0, [r2, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r6, [r2, 0x38]
+ adds r1, r6
+ strh r1, [r3, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r2, 0x3A]
+ adds r0, r2
+ strh r0, [r3, 0x26]
+_080A875E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A86F4
+
+ thumb_func_start sub_80A8764
+sub_80A8764: @ 80A8764
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080A8778
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A8780
+ ldr r0, _080A877C
+ b _080A8782
+ .align 2, 0
+_080A8778: .4byte gUnknown_03004B00
+_080A877C: .4byte gUnknown_0202F7C8
+_080A8780:
+ ldr r0, _080A8800
+_080A8782:
+ ldrb r2, [r0]
+ ldr r0, _080A8804
+ adds r0, r2, r0
+ ldrb r6, [r0]
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A87AC
+ ldr r1, _080A8808
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080A87AC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A87AC:
+ ldr r2, _080A8808
+ ldrh r0, [r2, 0x8]
+ movs r4, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080A880C
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x2]
+ ldrh r3, [r1, 0x20]
+ adds r0, r3
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078A5C
+ strh r4, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ strh r6, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080A8810
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080A8814
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8800: .4byte gUnknown_0202F7C9
+_080A8804: .4byte gUnknown_02024BE0
+_080A8808: .4byte gUnknown_03004B00
+_080A880C: .4byte gSprites
+_080A8810: .4byte move_anim_8072740
+_080A8814: .4byte sub_80784A8
+ thumb_func_end sub_80A8764
+
+ thumb_func_start sub_80A8818
+sub_80A8818: @ 80A8818
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080A8838
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A8840
+ ldr r0, _080A883C
+ b _080A8842
+ .align 2, 0
+_080A8838: .4byte gUnknown_03004B00
+_080A883C: .4byte gUnknown_0202F7C8
+_080A8840:
+ ldr r0, _080A88C0
+_080A8842:
+ ldrb r1, [r0]
+ ldr r0, _080A88C4
+ adds r0, r1, r0
+ ldrb r7, [r0]
+ adds r0, r1, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A886C
+ ldr r1, _080A88C8
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080A886C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080A886C:
+ ldr r5, _080A88C8
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080A88CC
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r4, r0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x30]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x34]
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl sub_8078A5C
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 8
+ strh r0, [r6, 0x36]
+ strh r7, [r6, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r6, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A88D4
+ ldr r1, _080A88D0
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ b _080A88DC
+ .align 2, 0
+_080A88C0: .4byte gUnknown_0202F7C9
+_080A88C4: .4byte gUnknown_02024BE0
+_080A88C8: .4byte gUnknown_03004B00
+_080A88CC: .4byte gSprites
+_080A88D0: .4byte move_anim_8072740
+_080A88D4:
+ ldr r1, _080A88E8
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+_080A88DC:
+ ldr r0, _080A88EC
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A88E8: .4byte sub_80A88F0
+_080A88EC: .4byte sub_80784A8
+ thumb_func_end sub_80A8818
+
+ thumb_func_start sub_80A88F0
+sub_80A88F0: @ 80A88F0
+ push {r4,lr}
+ ldr r4, _080A891C
+ movs r1, 0x38
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ movs r3, 0
+ strh r3, [r1, 0x24]
+ movs r1, 0x38
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r3, [r1, 0x26]
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A891C: .4byte gSprites
+ thumb_func_end sub_80A88F0
+
+ thumb_func_start sub_80A8920
+sub_80A8920: @ 80A8920
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080A89A4
+ movs r0, 0x6
+ ldrsh r1, [r5, r0]
+ movs r0, 0x80
+ lsls r0, 8
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080A89A8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8952
+ ldrh r0, [r5, 0x2]
+ negs r0, r0
+ strh r0, [r5, 0x2]
+ ldrh r0, [r5, 0xA]
+ negs r0, r0
+ strh r0, [r5, 0xA]
+_080A8952:
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ ldr r1, _080A89AC
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ strh r7, [r4, 0x16]
+ ldr r0, _080A89B0
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A89A4: .4byte gUnknown_03004B00
+_080A89A8: .4byte gUnknown_0202F7C8
+_080A89AC: .4byte gTasks
+_080A89B0: .4byte sub_80A89B4
+ thumb_func_end sub_80A8920
+
+ thumb_func_start sub_80A89B4
+sub_80A89B4: @ 80A89B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A8A0C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r1, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ ldrh r2, [r5, 0x1E]
+ adds r0, r2
+ strh r0, [r5, 0x1E]
+ ldr r2, _080A8A10
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r2
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x1C]
+ lsrs r0, 8
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5, 0x16]
+ ldrh r1, [r5, 0x1C]
+ adds r0, r1
+ strh r0, [r5, 0x1C]
+ ldrh r0, [r5, 0xE]
+ subs r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A8A04
+ ldr r0, _080A8A14
+ str r0, [r5]
+_080A8A04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A0C: .4byte gTasks
+_080A8A10: .4byte gSprites
+_080A8A14: .4byte sub_80A8A18
+ thumb_func_end sub_80A89B4
+
+ thumb_func_start sub_80A8A18
+sub_80A8A18: @ 80A8A18
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080A8A3C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A8A40
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ b _080A8A74
+ .align 2, 0
+_080A8A3C: .4byte gTasks
+_080A8A40:
+ ldrb r0, [r4, 0x8]
+ ldrh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x20]
+ adds r2, r1
+ strh r2, [r4, 0x20]
+ ldr r3, _080A8A7C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsls r2, 16
+ asrs r2, 24
+ ldrh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 24
+ adds r2, r0
+ strh r2, [r1, 0x24]
+ ldrh r0, [r4, 0x14]
+ subs r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A8A74
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080A8A74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8A7C: .4byte gSprites
+ thumb_func_end sub_80A8A18
+
+ thumb_func_start sub_80A8A80
+sub_80A8A80: @ 80A8A80
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A8AA4
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _080A8AAE
+ cmp r0, 0x2
+ bgt _080A8AA8
+ cmp r0, 0
+ blt _080A8AE0
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080A8AE8
+ .align 2, 0
+_080A8AA4: .4byte gUnknown_03004B00
+_080A8AA8:
+ cmp r0, 0x3
+ beq _080A8AB8
+ b _080A8AE0
+_080A8AAE:
+ ldr r5, _080A8AB4
+ b _080A8ABA
+ .align 2, 0
+_080A8AB4: .4byte gUnknown_0202F7C8
+_080A8AB8:
+ ldr r5, _080A8AD8
+_080A8ABA:
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8AE0
+ ldr r1, _080A8ADC
+ ldrb r0, [r5]
+ eors r0, r4
+ adds r0, r1
+ ldrb r2, [r0]
+ b _080A8AE8
+ .align 2, 0
+_080A8AD8: .4byte gUnknown_0202F7C9
+_080A8ADC: .4byte gUnknown_02024BE0
+_080A8AE0:
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080A8B28
+_080A8AE8:
+ ldr r1, _080A8B08
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ strh r2, [r5, 0x8]
+ ldr r0, _080A8B0C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8B14
+ ldr r0, _080A8B10
+ ldrh r0, [r0, 0x2]
+ b _080A8B1A
+ .align 2, 0
+_080A8B08: .4byte gTasks
+_080A8B0C: .4byte gUnknown_0202F7C9
+_080A8B10: .4byte gUnknown_03004B00
+_080A8B14:
+ ldr r0, _080A8B30
+ ldrh r0, [r0, 0x2]
+ negs r0, r0
+_080A8B1A:
+ strh r0, [r5, 0xA]
+ ldr r0, _080A8B34
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A8B38
+ str r0, [r1]
+_080A8B28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8B30: .4byte gUnknown_03004B00
+_080A8B34: .4byte gTasks
+_080A8B38: .4byte sub_80A8B3C
+ thumb_func_end sub_80A8A80
+
+ thumb_func_start sub_80A8B3C
+sub_80A8B3C: @ 80A8B3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A8B80
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r2, [r1, 0x8]
+ ldr r3, _080A8B84
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r1, 0xA]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r1, r0
+ adds r1, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bls _080A8B7A
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080A8B7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8B80: .4byte gTasks
+_080A8B84: .4byte gSprites
+ thumb_func_end sub_80A8B3C
+
+ thumb_func_start sub_80A8B88
+sub_80A8B88: @ 80A8B88
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _080A8BD8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8BA4
+ ldr r1, _080A8BDC
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080A8BA4:
+ ldr r4, _080A8BDC
+ ldrb r0, [r4, 0x8]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A8BE0
+ lsls r3, r5, 2
+ adds r1, r3, r5
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r4]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r4, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r4, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r4, 0x6]
+ strh r1, [r2, 0xE]
+ strh r0, [r2, 0x10]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A8BE4
+ ldrb r0, [r6]
+ b _080A8BE8
+ .align 2, 0
+_080A8BD8: .4byte gUnknown_0202F7C8
+_080A8BDC: .4byte gUnknown_03004B00
+_080A8BE0: .4byte gTasks
+_080A8BE4:
+ ldr r0, _080A8C00
+ ldrb r0, [r0]
+_080A8BE8:
+ strh r0, [r2, 0x12]
+ ldr r1, _080A8C04
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x20]
+ ldr r1, _080A8C08
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8C00: .4byte gUnknown_0202F7C9
+_080A8C04: .4byte gTasks
+_080A8C08: .4byte sub_80A8C0C
+ thumb_func_end sub_80A8B88
+
+ thumb_func_start sub_80A8C0C
+sub_80A8C0C: @ 80A8C0C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A8C5C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r7, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ lsls r1, r0, 16
+ strh r0, [r4, 0x1C]
+ lsrs r1, 24
+ mov r8, r1
+ mov r0, r8
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ bl Sin
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r9, r5
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A8C64
+ ldr r0, _080A8C60
+ lsls r2, r7, 4
+ adds r1, r2, r7
+ lsls r1, 2
+ adds r1, r0
+ strh r5, [r1, 0x24]
+ mov r9, r0
+ adds r4, r2, 0
+ b _080A8CAA
+ .align 2, 0
+_080A8C5C: .4byte gTasks
+_080A8C60: .4byte gSprites
+_080A8C64:
+ ldrb r0, [r4, 0x12]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8C8C
+ ldr r1, _080A8C88
+ lsls r2, r7, 4
+ adds r0, r2, r7
+ lsls r0, 2
+ adds r3, r0, r1
+ lsls r0, r5, 16
+ asrs r0, 16
+ mov r9, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bge _080A8CA8
+ b _080A8CA6
+ .align 2, 0
+_080A8C88: .4byte gSprites
+_080A8C8C:
+ ldr r1, _080A8D2C
+ lsls r2, r7, 4
+ adds r0, r2, r7
+ lsls r0, 2
+ adds r3, r0, r1
+ mov r4, r9
+ lsls r0, r4, 16
+ asrs r0, 16
+ mov r9, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bge _080A8CA6
+ negs r0, r0
+_080A8CA6:
+ negs r0, r0
+_080A8CA8:
+ strh r0, [r3, 0x26]
+_080A8CAA:
+ mov r5, r8
+ cmp r5, 0x7F
+ bls _080A8CCC
+ ldr r1, _080A8D30
+ lsls r2, r6, 2
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0x1E
+ ldrsh r0, [r3, r5]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _080A8CCC
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080A8CEE
+_080A8CCC:
+ mov r2, r8
+ cmp r2, 0x7E
+ bhi _080A8D20
+ ldr r1, _080A8D30
+ lsls r2, r6, 2
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0x1E
+ ldrsh r0, [r3, r5]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bne _080A8D20
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080A8D20
+_080A8CEE:
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x1E]
+ movs r2, 0x1
+ eors r0, r2
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ eors r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0xE]
+ subs r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080A8D20
+ adds r0, r4, r7
+ lsls r0, 2
+ add r0, r9
+ strh r3, [r0, 0x24]
+ strh r3, [r0, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080A8D20:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8D2C: .4byte gSprites
+_080A8D30: .4byte gTasks
+ thumb_func_end sub_80A8C0C
+
+ thumb_func_start sub_80A8D34
+sub_80A8D34: @ 80A8D34
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _080A8D80
+ ldrb r0, [r6, 0x6]
+ bl obj_id_for_side_relative_to_move
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r1, [r6, 0x8]
+ adds r0, r5, 0
+ bl sub_8078E70
+ ldr r1, _080A8D84
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r6]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r6, 0x2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r6, 0x4]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r6, 0x4]
+ strh r1, [r0, 0xE]
+ strh r5, [r0, 0x10]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1C]
+ strh r1, [r0, 0x1E]
+ ldr r1, _080A8D88
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8D80: .4byte gUnknown_03004B00
+_080A8D84: .4byte gTasks
+_080A8D88: .4byte sub_80A8D8C
+ thumb_func_end sub_80A8D34
+
+ thumb_func_start sub_80A8D8C
+sub_80A8D8C: @ 80A8D8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080A8DEC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xA]
+ ldrh r3, [r4, 0x1E]
+ adds r0, r3
+ strh r0, [r4, 0x1E]
+ ldrb r0, [r4, 0x10]
+ adds r6, r0, 0
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ movs r3, 0x1E
+ ldrsh r2, [r4, r3]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080A8DFC
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ ble _080A8DF0
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+ strh r0, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r1, [r4, 0xE]
+ b _080A8DFC
+ .align 2, 0
+_080A8DEC: .4byte gTasks
+_080A8DF0:
+ adds r0, r6, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080A8DFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8D8C
+
+ thumb_func_start sub_80A8E04
+sub_80A8E04: @ 80A8E04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _080A8E40
+ ldrb r0, [r4, 0x4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0
+ bl sub_8078E70
+ ldr r1, _080A8E44
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2, 0xA]
+ ldrh r0, [r4]
+ strh r0, [r2, 0xC]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ beq _080A8E48
+ strh r1, [r2, 0xE]
+ b _080A8E54
+ .align 2, 0
+_080A8E40: .4byte gUnknown_03004B00
+_080A8E44: .4byte gTasks
+_080A8E48:
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r3, r0, 0
+ muls r3, r1
+ adds r0, r3, 0
+ strh r0, [r2, 0xE]
+_080A8E54:
+ ldr r1, _080A8E80
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r6, _080A8E84
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x10]
+ mov r0, r8
+ strh r0, [r5, 0x12]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x14]
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r8, r4
+ cmp r0, 0
+ beq _080A8E88
+ movs r0, 0x1
+ strh r0, [r5, 0x16]
+ b _080A8EAC
+ .align 2, 0
+_080A8E80: .4byte gTasks
+_080A8E84: .4byte gUnknown_03004B00
+_080A8E88:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080A8E98
+ ldr r0, _080A8E94
+ b _080A8E9A
+ .align 2, 0
+_080A8E94: .4byte gUnknown_0202F7C8
+_080A8E98:
+ ldr r0, _080A8EF0
+_080A8E9A:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8EAA
+ movs r1, 0x1
+_080A8EAA:
+ strh r1, [r5, 0x16]
+_080A8EAC:
+ ldr r0, _080A8EF4
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r3, 0x16
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080A8ED8
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A8ED8
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xE]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+_080A8ED8:
+ ldr r0, _080A8EF4
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080A8EF8
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8EF0: .4byte gUnknown_0202F7C9
+_080A8EF4: .4byte gTasks
+_080A8EF8: .4byte sub_80A8FD8
+ thumb_func_end sub_80A8E04
+
+ thumb_func_start sub_80A8EFC
+sub_80A8EFC: @ 80A8EFC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A8F38
+ ldrb r0, [r4, 0x4]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0
+ bl sub_8078E70
+ ldr r1, _080A8F3C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldrh r1, [r4]
+ strh r1, [r0, 0xC]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080A8F44
+ ldr r0, _080A8F40
+ b _080A8F46
+ .align 2, 0
+_080A8F38: .4byte gUnknown_03004B00
+_080A8F3C: .4byte gTasks
+_080A8F40: .4byte gUnknown_0202F7C8
+_080A8F44:
+ ldr r0, _080A8F74
+_080A8F46:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A8F58
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080A8F58:
+ ldr r0, _080A8F78
+ movs r2, 0x6
+ ldrsh r1, [r0, r2]
+ adds r6, r0, 0
+ cmp r1, 0x1
+ beq _080A8F80
+ ldr r2, _080A8F7C
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0xE]
+ b _080A8F9A
+ .align 2, 0
+_080A8F74: .4byte gUnknown_0202F7C9
+_080A8F78: .4byte gUnknown_03004B00
+_080A8F7C: .4byte gTasks
+_080A8F80:
+ ldr r3, _080A8FD0
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r0, r3
+ ldrh r2, [r6]
+ ldrh r1, [r6, 0x2]
+ adds r7, r2, 0
+ muls r7, r1
+ adds r1, r7, 0
+ strh r1, [r0, 0xE]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_080A8F9A:
+ adds r1, r3, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r6, 0x2]
+ strh r0, [r1, 0x10]
+ mov r0, r8
+ strh r0, [r1, 0x12]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r1, 0x14]
+ movs r0, 0x1
+ strh r0, [r1, 0x16]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0xE]
+ movs r7, 0x10
+ ldrsh r0, [r1, r7]
+ negs r0, r0
+ strh r0, [r1, 0x10]
+ ldr r0, _080A8FD4
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A8FD0: .4byte gTasks
+_080A8FD4: .4byte sub_80A8FD8
+ thumb_func_end sub_80A8EFC
+
+ thumb_func_start sub_80A8FD8
+sub_80A8FD8: @ 80A8FD8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080A9030
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ ldrb r0, [r4, 0x12]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xE]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080A900C
+ ldrb r0, [r4, 0x12]
+ bl sub_8078F9C
+_080A900C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080A9052
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080A9034
+ cmp r0, 0x1
+ ble _080A903A
+ cmp r0, 0x2
+ beq _080A9042
+ b _080A903A
+ .align 2, 0
+_080A9030: .4byte gTasks
+_080A9034:
+ ldrb r0, [r4, 0x12]
+ bl sub_8078F40
+_080A903A:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080A9052
+_080A9042:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080A9052:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A8FD8
+
+ thumb_func_start sub_80A9058
+sub_80A9058: @ 80A9058
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080A9084
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r8, r0
+ cmp r1, 0
+ bne _080A9090
+ ldr r4, _080A9088
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r6, r0, r4
+ ldr r0, _080A908C
+ ldrh r0, [r0]
+ movs r1, 0xC
+ bl __udivsi3
+ b _080A90A4
+ .align 2, 0
+_080A9084: .4byte gUnknown_03004B00
+_080A9088: .4byte gTasks
+_080A908C: .4byte gUnknown_0202F7BC
+_080A9090:
+ ldr r4, _080A912C
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r6, r0, r4
+ ldr r0, _080A9130
+ ldr r0, [r0]
+ movs r1, 0xC
+ bl __divsi3
+_080A90A4:
+ strh r0, [r6, 0x26]
+ lsls r0, 16
+ adds r1, r4, 0
+ cmp r0, 0
+ bgt _080A90B2
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+_080A90B2:
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ cmp r0, 0x10
+ ble _080A90BE
+ movs r0, 0x10
+ strh r0, [r6, 0x26]
+_080A90BE:
+ adds r4, r5, r7
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ movs r5, 0
+ strh r1, [r4, 0x24]
+ ldrh r2, [r4, 0x26]
+ movs r0, 0x1
+ ands r0, r2
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ strh r5, [r4, 0x20]
+ mov r1, r8
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r2, _080A9134
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x18]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x26]
+ strh r0, [r4, 0x1A]
+ strh r5, [r4, 0x8]
+ mov r1, r8
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080A9138
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A912C: .4byte gTasks
+_080A9130: .4byte gUnknown_0202F7B8
+_080A9134: .4byte gSprites
+_080A9138: .4byte sub_80A913C
+ thumb_func_end sub_80A9058
+
+ thumb_func_start sub_80A913C
+sub_80A913C: @ 80A913C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080A9190
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ ble _080A921A
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ ldrh r0, [r3, 0x20]
+ adds r1, r0, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ strh r1, [r3, 0x20]
+ movs r2, 0x1C
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080A91AE
+ cmp r1, 0
+ beq _080A9198
+ ldr r2, _080A9194
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x18]
+ adds r1, r2
+ b _080A91AC
+ .align 2, 0
+_080A9190: .4byte gTasks
+_080A9194: .4byte gSprites
+_080A9198:
+ ldr r2, _080A91D4
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x18]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+_080A91AC:
+ strh r1, [r0, 0x24]
+_080A91AE:
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080A91E8
+ movs r2, 0x20
+ ldrsh r4, [r3, r2]
+ cmp r4, 0
+ beq _080A91D8
+ ldr r2, _080A91D4
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x26]
+ strh r1, [r0, 0x26]
+ b _080A91E8
+ .align 2, 0
+_080A91D4: .4byte gSprites
+_080A91D8:
+ ldr r2, _080A9220
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x26]
+_080A91E8:
+ ldrh r0, [r3, 0xC]
+ subs r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ bne _080A921A
+ ldr r2, _080A9220
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x24]
+ movs r0, 0x16
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x26]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080A921A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9220: .4byte gSprites
+ thumb_func_end sub_80A913C
+
+ thumb_func_start itemid_copy_name
+itemid_copy_name: @ 80A9224
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _080A924C
+ movs r0, 0x2B
+ bl GetBerryInfo
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _080A9248
+ adds r0, r4, 0
+ bl StringAppend
+ b _080A9258
+ .align 2, 0
+_080A9248: .4byte gOtherText_Berry2
+_080A924C:
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+_080A9258:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end itemid_copy_name
+
+ thumb_func_start unref_sub_80A9260
+unref_sub_80A9260: @ 80A9260
+ push {lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, _080A9284
+ lsrs r0, 21
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _080A9292
+ ldr r3, [r0]
+_080A9274:
+ lsls r0, r2, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A9288
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080A9296
+ .align 2, 0
+_080A9284: .4byte gUnknown_083C1618
+_080A9288:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _080A9274
+_080A9292:
+ movs r0, 0x1
+ negs r0, r0
+_080A9296:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80A9260
+
+ thumb_func_start IsBagPocketNonEmpty
+IsBagPocketNonEmpty: @ 80A929C
+ push {lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, _080A92C0
+ lsrs r0, 21
+ subs r0, 0x8
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _080A92CE
+ ldr r3, [r0]
+_080A92B2:
+ lsls r0, r2, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A92C4
+ movs r0, 0x1
+ b _080A92D0
+ .align 2, 0
+_080A92C0: .4byte gUnknown_083C1618
+_080A92C4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _080A92B2
+_080A92CE:
+ movs r0, 0
+_080A92D0:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBagPocketNonEmpty
+
+ thumb_func_start sub_80A92D4
+sub_80A92D4: @ 80A92D4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r5, 0
+ bl itemid_get_pocket_number
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A92F0
+ b _080A9336
+_080A92EC:
+ movs r0, 0x1
+ b _080A9338
+_080A92F0:
+ adds r0, r5, 0
+ bl itemid_get_pocket_number
+ subs r0, 0x1
+ lsls r0, 24
+ movs r3, 0
+ ldr r6, _080A9340
+ lsrs r2, r0, 21
+ adds r0, r2, r6
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _080A9336
+ adds r7, r6, 0
+_080A930A:
+ adds r0, r2, r7
+ ldr r1, [r0]
+ lsls r0, r3, 2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r5
+ bne _080A9328
+ ldrh r0, [r1, 0x2]
+ cmp r0, r4
+ bcs _080A92EC
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080A92EC
+_080A9328:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, r6
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _080A930A
+_080A9336:
+ movs r0, 0
+_080A9338:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9340: .4byte gUnknown_083C1618
+ thumb_func_end sub_80A92D4
+
+ thumb_func_start sub_80A9344
+sub_80A9344: @ 80A9344
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r6, 0
+ bl itemid_get_pocket_number
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9408
+ adds r0, r6, 0
+ bl itemid_get_pocket_number
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r5, _080A940C
+ cmp r1, 0x3
+ beq _080A9376
+ movs r5, 0x63
+_080A9376:
+ movs r3, 0
+ ldr r0, _080A9410
+ mov r8, r0
+ lsls r2, r1, 3
+ adds r0, r2, r0
+ mov r12, r8
+ mov r9, r2
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _080A93CA
+ mov r10, r12
+ subs r0, r1, 0x2
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080A9392:
+ mov r1, r10
+ adds r0, r2, r1
+ ldr r1, [r0]
+ lsls r0, r3, 2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _080A93BA
+ ldrh r1, [r1, 0x2]
+ adds r0, r1, r4
+ cmp r0, r5
+ ble _080A9414
+ cmp r7, 0x1
+ bls _080A9408
+ subs r0, r5, r1
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080A9414
+_080A93BA:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ mov r1, r8
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _080A9392
+_080A93CA:
+ cmp r4, 0
+ beq _080A9414
+ movs r3, 0
+ mov r6, r12
+ mov r2, r9
+ adds r0, r2, r6
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _080A9404
+ adds r7, r6, 0
+_080A93DE:
+ adds r0, r2, r7
+ ldr r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A93F6
+ cmp r4, r5
+ bls _080A9414
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080A93F6:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, r6
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _080A93DE
+_080A9404:
+ cmp r4, 0
+ beq _080A9414
+_080A9408:
+ movs r0, 0
+ b _080A9416
+ .align 2, 0
+_080A940C: .4byte 0x000003e7
+_080A9410: .4byte gUnknown_083C1618
+_080A9414:
+ movs r0, 0x1
+_080A9416:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9344
+
+ thumb_func_start sub_80A9424
+sub_80A9424: @ 80A9424
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x100
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl itemid_get_pocket_number
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9510
+ mov r0, r8
+ bl itemid_get_pocket_number
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080A94F8
+ lsls r0, r6, 3
+ adds r5, r0, r1
+ ldr r1, [r5]
+ ldrb r2, [r5, 0x4]
+ lsls r2, 2
+ mov r0, sp
+ bl memcpy
+ ldr r7, _080A94FC
+ cmp r6, 0x3
+ beq _080A9468
+ movs r7, 0x63
+_080A9468:
+ movs r1, 0
+ ldrb r0, [r5, 0x4]
+ cmp r1, r0
+ bcs _080A94B2
+ subs r0, r6, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+_080A9478:
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ cmp r0, r8
+ bne _080A94A6
+ ldrh r2, [r3, 0x2]
+ adds r0, r2, r4
+ cmp r0, r7
+ ble _080A9500
+ mov r0, r12
+ cmp r0, 0x1
+ bls _080A9510
+ subs r0, r7, r2
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strh r7, [r3, 0x2]
+ ldr r2, _080A94F8
+ mov r9, r2
+ lsls r3, r6, 3
+ cmp r4, 0
+ beq _080A9516
+_080A94A6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrb r0, [r5, 0x4]
+ cmp r1, r0
+ bcc _080A9478
+_080A94B2:
+ ldr r2, _080A94F8
+ mov r9, r2
+ lsls r3, r6, 3
+ cmp r4, 0
+ beq _080A9516
+ movs r1, 0
+ adds r0, r3, r2
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080A94F2
+ mov r6, r9
+ adds r5, r3, r6
+_080A94CA:
+ lsls r0, r1, 2
+ mov r6, sp
+ adds r2, r6, r0
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080A94E6
+ mov r0, r8
+ strh r0, [r2]
+ cmp r4, r7
+ bls _080A9514
+ subs r0, r4, r7
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strh r7, [r2, 0x2]
+_080A94E6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrb r2, [r5, 0x4]
+ cmp r1, r2
+ bcc _080A94CA
+_080A94F2:
+ cmp r4, 0
+ beq _080A9516
+ b _080A9510
+ .align 2, 0
+_080A94F8: .4byte gUnknown_083C1618
+_080A94FC: .4byte 0x000003e7
+_080A9500:
+ strh r0, [r3, 0x2]
+ ldr r0, _080A950C
+ lsls r1, r6, 3
+ adds r1, r0
+ b _080A951A
+ .align 2, 0
+_080A950C: .4byte gUnknown_083C1618
+_080A9510:
+ movs r0, 0
+ b _080A9528
+_080A9514:
+ strh r4, [r2, 0x2]
+_080A9516:
+ mov r6, r9
+ adds r1, r3, r6
+_080A951A:
+ ldr r0, [r1]
+ ldrb r2, [r1, 0x4]
+ lsls r2, 2
+ mov r1, sp
+ bl memcpy
+ movs r0, 0x1
+_080A9528:
+ add sp, 0x100
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9424
+
+ thumb_func_start sub_80A9538
+sub_80A9538: @ 80A9538
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r7, 0
+ adds r0, r6, 0
+ bl itemid_get_pocket_number
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A959E
+ cmp r6, 0
+ beq _080A959E
+ adds r0, r6, 0
+ bl itemid_get_pocket_number
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080A95A4
+ lsls r2, r0, 3
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r5, r0
+ bcs _080A959A
+ mov r8, r1
+_080A9576:
+ mov r0, r8
+ adds r3, r2, r0
+ ldr r0, [r3]
+ lsls r1, r5, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _080A958E
+ ldrh r0, [r1, 0x2]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080A958E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r3, [r3, 0x4]
+ cmp r5, r3
+ bcc _080A9576
+_080A959A:
+ cmp r7, r4
+ bcs _080A95A8
+_080A959E:
+ movs r0, 0
+ b _080A9664
+ .align 2, 0
+_080A95A4: .4byte gUnknown_083C1618
+_080A95A8:
+ ldr r0, _080A95DC
+ mov r2, r12
+ lsls r1, r2, 3
+ adds r5, r1, r0
+ ldr r2, _080A95E0
+ ldrb r3, [r5, 0x4]
+ mov r8, r0
+ adds r7, r1, 0
+ ldrb r0, [r2]
+ cmp r3, r0
+ bls _080A9606
+ ldrb r0, [r2]
+ ldr r1, [r5]
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _080A9606
+ ldrh r0, [r1, 0x2]
+ cmp r0, r4
+ bcc _080A95E4
+ subs r0, r4
+ strh r0, [r1, 0x2]
+ movs r4, 0
+ b _080A95EE
+ .align 2, 0
+_080A95DC: .4byte gUnknown_083C1618
+_080A95E0: .4byte gUnknown_02038560
+_080A95E4:
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ strh r0, [r1, 0x2]
+_080A95EE:
+ mov r1, r8
+ adds r0, r7, r1
+ ldrb r1, [r2]
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A9602
+ strh r0, [r1]
+_080A9602:
+ cmp r4, 0
+ beq _080A9662
+_080A9606:
+ movs r5, 0
+ adds r1, r7, 0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrb r2, [r0, 0x4]
+ cmp r5, r2
+ bcs _080A9662
+ mov r12, r8
+ adds r3, r0, 0
+_080A9618:
+ mov r2, r12
+ adds r0, r1, r2
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _080A9650
+ ldrh r0, [r2, 0x2]
+ cmp r0, r4
+ bcc _080A9636
+ subs r0, r4
+ strh r0, [r2, 0x2]
+ movs r4, 0
+ b _080A9640
+_080A9636:
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ strh r0, [r2, 0x2]
+_080A9640:
+ ldr r0, [r3]
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080A964C
+ strh r0, [r1]
+_080A964C:
+ cmp r4, 0
+ beq _080A9662
+_080A9650:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r1, r7, 0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r5, r0
+ bcc _080A9618
+_080A9662:
+ movs r0, 0x1
+_080A9664:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9538
+
+ thumb_func_start sub_80A9670
+sub_80A9670: @ 80A9670
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_get_pocket_number
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9670
+
+ thumb_func_start sub_80A9684
+sub_80A9684: @ 80A9684
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ movs r2, 0
+ lsrs r1, 24
+ cmp r2, r1
+ bcs _080A96A6
+ movs r3, 0
+_080A9694:
+ lsls r0, r2, 2
+ adds r0, r4
+ strh r3, [r0]
+ strh r3, [r0, 0x2]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r1
+ bcc _080A9694
+_080A96A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9684
+
+ thumb_func_start sub_80A96AC
+sub_80A96AC: @ 80A96AC
+ push {lr}
+ movs r1, 0
+ ldr r3, _080A96CC
+ movs r2, 0x93
+ lsls r2, 3
+_080A96B6:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A96D0
+ adds r0, r1, 0
+ b _080A96E0
+ .align 2, 0
+_080A96CC: .4byte gSaveBlock1
+_080A96D0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x31
+ ble _080A96B6
+ movs r0, 0x1
+ negs r0, r0
+_080A96E0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A96AC
+
+ thumb_func_start sub_80A96E4
+sub_80A96E4: @ 80A96E4
+ push {r4,lr}
+ movs r2, 0
+ movs r1, 0
+ ldr r4, _080A9714
+ movs r3, 0x93
+ lsls r3, 3
+_080A96F0:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A9702
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080A9702:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x31
+ bls _080A96F0
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9714: .4byte gSaveBlock1
+ thumb_func_end sub_80A96E4
+
+ thumb_func_start sub_80A9718
+sub_80A9718: @ 80A9718
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ ldr r7, _080A9744
+ movs r6, 0x93
+ lsls r6, 3
+ ldr r5, _080A9748
+_080A972C:
+ lsls r0, r3, 2
+ adds r2, r0, r7
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _080A974C
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ cmp r0, r1
+ bcc _080A974C
+ movs r0, 0x1
+ b _080A9758
+ .align 2, 0
+_080A9744: .4byte gSaveBlock1
+_080A9748: .4byte 0x0000049a
+_080A974C:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x31
+ bls _080A972C
+ movs r0, 0
+_080A9758:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9718
+
+ thumb_func_start sub_80A9760
+sub_80A9760: @ 80A9760
+ push {r4-r7,lr}
+ sub sp, 0xC8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r1, _080A97C4
+ mov r0, sp
+ movs r2, 0xC8
+ bl memcpy
+ movs r5, 0
+ ldr r0, _080A97C8
+ adds r7, r0, 0
+_080A977C:
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _080A97A0
+ ldrh r1, [r2, 0x2]
+ adds r0, r1, r4
+ ldr r3, _080A97CC
+ cmp r0, r3
+ ble _080A97D0
+ adds r0, r4, r7
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strh r3, [r2, 0x2]
+ cmp r4, 0
+ beq _080A97DC
+_080A97A0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x31
+ bls _080A977C
+ cmp r4, 0
+ beq _080A97DC
+ bl sub_80A96AC
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A97D4
+ movs r0, 0
+ b _080A97E8
+ .align 2, 0
+_080A97C4: .4byte gSaveBlock1 + 0x498
+_080A97C8: .4byte 0x0000fc19
+_080A97CC: .4byte 0x000003e7
+_080A97D0:
+ strh r0, [r2, 0x2]
+ b _080A97DC
+_080A97D4:
+ lsls r0, r1, 2
+ add r0, sp
+ strh r6, [r0]
+ strh r4, [r0, 0x2]
+_080A97DC:
+ ldr r0, _080A97F0
+ mov r1, sp
+ movs r2, 0xC8
+ bl memcpy
+ movs r0, 0x1
+_080A97E8:
+ add sp, 0xC8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A97F0: .4byte gSaveBlock1 + 0x498
+ thumb_func_end sub_80A9760
+
+ thumb_func_start sub_80A97F4
+sub_80A97F4: @ 80A97F4
+ push {lr}
+ lsls r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080A9824
+ lsrs r0, 22
+ adds r3, r0, r2
+ ldr r0, _080A9828
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080A9820
+ movs r2, 0x93
+ lsls r2, 3
+ adds r0, r3, r2
+ strh r1, [r0]
+ bl sub_80A982C
+_080A9820:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9824: .4byte gSaveBlock1
+_080A9828: .4byte 0x0000049a
+ thumb_func_end sub_80A97F4
+
+ thumb_func_start sub_80A982C
+sub_80A982C: @ 80A982C
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r0, _080A987C
+ mov r12, r0
+_080A9834:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ adds r7, r1, 0
+ cmp r3, 0x31
+ bhi _080A986C
+ lsls r1, r2, 2
+ mov r2, r12
+ adds r0, r1, r2
+ movs r2, 0x93
+ lsls r2, 3
+ adds r5, r0, r2
+ ldr r6, _080A9880
+ adds r4, r1, r6
+_080A9850:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _080A9862
+ ldr r2, [r4]
+ lsls r1, r3, 2
+ adds r1, r6
+ ldr r0, [r1]
+ str r0, [r4]
+ str r2, [r1]
+_080A9862:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x31
+ bls _080A9850
+_080A986C:
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x30
+ bls _080A9834
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A987C: .4byte gSaveBlock1
+_080A9880: .4byte gSaveBlock1 + 0x498
+ thumb_func_end sub_80A982C
+
+ thumb_func_start sub_80A9884
+sub_80A9884: @ 80A9884
+ push {lr}
+ ldr r0, _080A98A0
+ ldr r1, _080A98A4
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ ldr r3, _080A98A8
+ cmp r1, r3
+ beq _080A98AC
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A98B4
+ b _080A98B6
+ .align 2, 0
+_080A98A0: .4byte gSaveBlock1
+_080A98A4: .4byte 0x00000496
+_080A98A8: .4byte 0x00000103
+_080A98AC:
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r2]
+ b _080A98B6
+_080A98B4:
+ strh r3, [r2]
+_080A98B6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A9884
+
+ thumb_func_start itemid_sanitize
+itemid_sanitize: @ 80A98BC
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xAE
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080A98CE
+ adds r0, r1, 0
+ b _080A98D0
+_080A98CE:
+ movs r0, 0
+_080A98D0:
+ pop {r1}
+ bx r1
+ thumb_func_end itemid_sanitize
+
+ thumb_func_start itemid_get_item
+itemid_get_item: @ 80A98D4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ ldr r1, _080A98F0
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A98F0: .4byte gItems
+ thumb_func_end itemid_get_item
+
+ thumb_func_start itemid_get_number
+itemid_get_number: @ 80A98F4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9914
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrh r0, [r0, 0xE]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9914: .4byte gItems
+ thumb_func_end itemid_get_number
+
+ thumb_func_start itemid_get_market_price
+itemid_get_market_price: @ 80A9918
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9938
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrh r0, [r0, 0x10]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9938: .4byte gItems
+ thumb_func_end itemid_get_market_price
+
+ thumb_func_start itemid_get_x12
+itemid_get_x12: @ 80A993C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A995C
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x12]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A995C: .4byte gItems
+ thumb_func_end itemid_get_x12
+
+ thumb_func_start itemid_get_quality
+itemid_get_quality: @ 80A9960
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9980
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x13]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9980: .4byte gItems
+ thumb_func_end itemid_get_quality
+
+ thumb_func_start itemid_get_description
+itemid_get_description: @ 80A9984
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A99A4
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r4, 0x14
+ adds r0, r4
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A99A4: .4byte gItems
+ thumb_func_end itemid_get_description
+
+ thumb_func_start sub_80A99A8
+sub_80A99A8: @ 80A99A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0x1
+ ldr r4, _080A99E4
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r4, 0x14
+ adds r0, r4
+ ldr r3, [r0]
+ adds r2, r6, 0
+_080A99CA:
+ ldrb r1, [r3]
+ adds r0, r1, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080A99FA
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080A99E8
+ movs r0, 0xFF
+ strb r0, [r2]
+ movs r0, 0x1
+ b _080A9A02
+ .align 2, 0
+_080A99E4: .4byte gItems
+_080A99E8:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080A99F4
+ movs r0, 0
+ b _080A9A02
+_080A99F4:
+ adds r2, r6, 0
+ adds r3, 0x1
+ b _080A99CA
+_080A99FA:
+ strb r1, [r2]
+ adds r3, 0x1
+ adds r2, 0x1
+ b _080A99CA
+_080A9A02:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A99A8
+
+ thumb_func_start itemid_is_unique
+itemid_is_unique: @ 80A9A08
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9A28
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x18]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9A28: .4byte gItems
+ thumb_func_end itemid_is_unique
+
+ thumb_func_start itemid_get_x19
+itemid_get_x19: @ 80A9A2C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9A4C
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x19]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9A4C: .4byte gItems
+ thumb_func_end itemid_get_x19
+
+ thumb_func_start itemid_get_pocket_number
+itemid_get_pocket_number: @ 80A9A50
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9A70
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x1A]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9A70: .4byte gItems
+ thumb_func_end itemid_get_pocket_number
+
+ thumb_func_start itemid_get_type
+itemid_get_type: @ 80A9A74
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9A94
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x1B]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9A94: .4byte gItems
+ thumb_func_end itemid_get_type
+
+ thumb_func_start itemid_get_overworld_function
+itemid_get_overworld_function: @ 80A9A98
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9AB8
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9AB8: .4byte gItems
+ thumb_func_end itemid_get_overworld_function
+
+ thumb_func_start itemid_get_usage
+itemid_get_usage: @ 80A9ABC
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9ADC
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9ADC: .4byte gItems
+ thumb_func_end itemid_get_usage
+
+ thumb_func_start itemid_get_battle_function
+itemid_get_battle_function: @ 80A9AE0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9B00
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r4, 0x24
+ adds r0, r4
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9B00: .4byte gItems
+ thumb_func_end itemid_get_battle_function
+
+ thumb_func_start itemid_get_x28
+itemid_get_x28: @ 80A9B04
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080A9B24
+ bl itemid_sanitize
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2C
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x28
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9B24: .4byte gItems
+ thumb_func_end itemid_get_x28
+
+ thumb_func_start unref_sub_80A9B28
+unref_sub_80A9B28: @ 80A9B28
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x11
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _080A9B6C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x7
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x7
+ bl InitMenu
+ ldr r1, _080A9B70
+ ldr r0, _080A9B74
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9B6C: .4byte gUnknown_083C91F0
+_080A9B70: .4byte gCallback_03004AE8
+_080A9B74: .4byte sub_80A9B78
+ thumb_func_end unref_sub_80A9B28
+
+ thumb_func_start sub_80A9B78
+sub_80A9B78: @ 80A9B78
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _080A9B8E
+ movs r0, 0
+ b _080A9BB6
+_080A9B8E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A9BB0
+ ldr r2, _080A9BA8
+ ldr r0, _080A9BAC
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _080A9BB6
+ .align 2, 0
+_080A9BA8: .4byte gCallback_03004AE8
+_080A9BAC: .4byte gUnknown_083C91F0
+_080A9BB0:
+ bl sub_8071C20
+ movs r0, 0x1
+_080A9BB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9B78
+
+ thumb_func_start sub_80A9BBC
+sub_80A9BBC: @ 80A9BBC
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080A9BE0
+ movs r1, 0xFF
+ bl CreateTask
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9BE0: .4byte sub_80A9BE4
+ thumb_func_end sub_80A9BBC
+
+ thumb_func_start sub_80A9BE4
+sub_80A9BE4: @ 80A9BE4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A9C14
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A9C10
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080A9C18
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A9C0C
+ bl sub_80AF668
+_080A9C0C:
+ bl sub_80C2358
+_080A9C10:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9C14: .4byte gPaletteFade
+_080A9C18: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9BE4
+
+ thumb_func_start sub_80A9C1C
+sub_80A9C1C: @ 80A9C1C
+ push {lr}
+ ldr r1, _080A9C30
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80AA10C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9C30: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9C1C
+
+ thumb_func_start sub_80A9C34
+sub_80A9C34: @ 80A9C34
+ push {lr}
+ bl sub_80AA10C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9C34
+
+ thumb_func_start sub_80A9C40
+sub_80A9C40: @ 80A9C40
+ push {r4,r5,lr}
+ ldr r5, _080A9C88
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080A9C8C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r0, _080A9C90
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9C94
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x1C]
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x1C]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9C88: .4byte sub_80A9E3C
+_080A9C8C: .4byte sub_80A9C98
+_080A9C90: .4byte sub_80A9E04
+_080A9C94: .4byte gTasks
+ thumb_func_end sub_80A9C40
+
+ thumb_func_start sub_80A9C98
+sub_80A9C98: @ 80A9C98
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80AE098
+ ldr r1, _080A9CB8
+ ldr r2, _080A9CBC
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CB8: .4byte sub_80C8734
+_080A9CBC: .4byte sub_80A9CC0
+ thumb_func_end sub_80A9C98
+
+ thumb_func_start sub_80A9CC0
+sub_80A9CC0: @ 80A9CC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9CD4
+ ldr r2, _080A9CD8
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CD4: .4byte sub_80C88AC
+_080A9CD8: .4byte sub_80A9CDC
+ thumb_func_end sub_80A9CC0
+
+ thumb_func_start sub_80A9CDC
+sub_80A9CDC: @ 80A9CDC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9CF0
+ ldr r2, _080A9CF4
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CF0: .4byte sub_80C8E1C
+_080A9CF4: .4byte sub_80A9D58
+ thumb_func_end sub_80A9CDC
+
+ thumb_func_start sub_80A9CF8
+sub_80A9CF8: @ 80A9CF8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A9D28
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A9D20
+ ldr r0, _080A9D2C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x1C]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8071C20
+_080A9D20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9D28: .4byte gReceivedRemoteLinkPlayers
+_080A9D2C: .4byte gTasks
+ thumb_func_end sub_80A9CF8
+
+ thumb_func_start sub_80A9D30
+sub_80A9D30: @ 80A9D30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080A9D50
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A9D54
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9D50: .4byte gTasks
+_080A9D54: .4byte sub_80A9CF8
+ thumb_func_end sub_80A9D30
+
+ thumb_func_start sub_80A9D58
+sub_80A9D58: @ 80A9D58
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r1, _080A9DA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, 0x12
+ adds r2, r0, r1
+_080A9D6E:
+ mov r0, sp
+ adds r1, r0, r3
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080A9D6E
+ mov r0, sp
+ bl sub_80C4B34
+ ldr r1, _080A9DAC
+ strb r0, [r1]
+ ldr r0, _080A9DB0
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080A9DB4
+ ldr r2, _080A9DB8
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DA8: .4byte gTasks
+_080A9DAC: .4byte gUnknown_0203869B
+_080A9DB0: .4byte gUnknown_0203869C
+_080A9DB4: .4byte sub_80C8EBC
+_080A9DB8: .4byte sub_80A9DBC
+ thumb_func_end sub_80A9D58
+
+ thumb_func_start sub_80A9DBC
+sub_80A9DBC: @ 80A9DBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9DD0
+ ldr r2, _080A9DD4
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DD0: .4byte sub_80C8F34
+_080A9DD4: .4byte sub_80A9DD8
+ thumb_func_end sub_80A9DBC
+
+ thumb_func_start sub_80A9DD8
+sub_80A9DD8: @ 80A9DD8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A9E00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1C]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8071C20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E00: .4byte gTasks
+ thumb_func_end sub_80A9DD8
+
+ thumb_func_start sub_80A9E04
+sub_80A9E04: @ 80A9E04
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080A9E30
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x2
+ bne _080A9E2A
+ ldr r2, _080A9E34
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1C]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080A9E38
+ str r1, [r0]
+_080A9E2A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E30: .4byte gMain
+_080A9E34: .4byte gTasks
+_080A9E38: .4byte sub_80A9D30
+ thumb_func_end sub_80A9E04
+
+ thumb_func_start sub_80A9E3C
+sub_80A9E3C: @ 80A9E3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl OpenLink
+ movs r1, 0
+ ldr r3, _080A9E74
+ movs r2, 0xFF
+_080A9E4C:
+ lsls r0, r1, 8
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080A9E4C
+ ldr r1, _080A9E78
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080A9E7C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E74: .4byte gBlockRecvBuffer
+_080A9E78: .4byte gTasks
+_080A9E7C: .4byte sub_80A9E80
+ thumb_func_end sub_80A9E3C
+
+ thumb_func_start sub_80A9E80
+sub_80A9E80: @ 80A9E80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9EA0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080A9EA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080A9ECC
+ .align 2, 0
+_080A9EA0: .4byte gTasks
+_080A9EA4:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080A9ECC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl IsLinkMaster
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9EC8
+ ldr r0, _080A9EC4
+ b _080A9ECA
+ .align 2, 0
+_080A9EC4: .4byte sub_80A9ED8
+_080A9EC8:
+ ldr r0, _080A9ED4
+_080A9ECA:
+ str r0, [r4]
+_080A9ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9ED4: .4byte sub_80A9F10
+ thumb_func_end sub_80A9E80
+
+ thumb_func_start sub_80A9ED8
+sub_80A9ED8: @ 80A9ED8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9F08
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080A9F02
+ bl sub_8007F4C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080A9F0C
+ str r0, [r4]
+_080A9F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9F08: .4byte gTasks
+_080A9F0C: .4byte sub_80A9F10
+ thumb_func_end sub_80A9ED8
+
+ thumb_func_start sub_80A9F10
+sub_80A9F10: @ 80A9F10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A9F44
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A9F3E
+ bl GetMultiplayerId
+ ldr r1, _080A9F48
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080A9F3E
+ ldr r1, _080A9F4C
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080A9F3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9F44: .4byte gReceivedRemoteLinkPlayers
+_080A9F48: .4byte gUnknown_02038695
+_080A9F4C: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9F10
+
+ thumb_func_start sub_80A9F50
+sub_80A9F50: @ 80A9F50
+ push {r4,lr}
+ movs r2, 0x80
+ lsls r2, 19
+ movs r0, 0x40
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r3, 0x88
+ lsls r3, 5
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080A9FB8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080A9FBC
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _080A9FC0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x44
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, _080A9FC4
+ strh r1, [r0]
+ ldr r0, _080A9FC8
+ strh r1, [r0]
+ ldr r0, _080A9FCC
+ strh r1, [r0]
+ ldr r0, _080A9FD0
+ strh r1, [r0]
+ ldr r0, _080A9FD4
+ strh r1, [r0]
+ ldr r0, _080A9FD8
+ strh r1, [r0]
+ ldr r0, _080A9FDC
+ strh r1, [r0]
+ ldr r0, _080A9FE0
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9FB8: .4byte gWindowConfig_81E6C3C
+_080A9FBC: .4byte gMenuWindow
+_080A9FC0: .4byte REG_MOSAIC
+_080A9FC4: .4byte gUnknown_030042A4
+_080A9FC8: .4byte gUnknown_030042A0
+_080A9FCC: .4byte gUnknown_030042C0
+_080A9FD0: .4byte gUnknown_030041B4
+_080A9FD4: .4byte gUnknown_03004288
+_080A9FD8: .4byte gUnknown_03004280
+_080A9FDC: .4byte gUnknown_030041B0
+_080A9FE0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80A9F50
+
+ thumb_func_start sub_80A9FE4
+sub_80A9FE4: @ 80A9FE4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r1, _080AA054
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ add r5, sp, 0x8
+ movs r6, 0
+ ldr r1, _080AA058
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _080AA05C
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_080AA012:
+ str r6, [sp, 0x8]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AA012
+ str r6, [sp, 0x8]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xC0
+ lsls r0, 19
+ mov r1, sp
+ bl sub_80034D4
+ ldr r0, _080AA060
+ bl LoadFontDefaultPalette
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA054: .4byte gUnknown_083C9228
+_080AA058: .4byte 0x040000d4
+_080AA05C: .4byte 0x85000400
+_080AA060: .4byte gWindowConfig_81E6C3C
+ thumb_func_end sub_80A9FE4
+
+ thumb_func_start sub_80AA064
+sub_80AA064: @ 80AA064
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ ldr r0, _080AA088
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x4
+ bne _080AA084
+ ldr r0, _080AA08C
+ bl SetMainCallback2
+_080AA084:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA088: .4byte gMain
+_080AA08C: .4byte sub_805469C
+ thumb_func_end sub_80AA064
+
+ thumb_func_start sub_80AA090
+sub_80AA090: @ 80AA090
+ push {lr}
+ ldr r1, _080AA0E8
+ ldr r0, _080AA0EC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0FC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA100
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA104
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA108
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA0E8: .4byte REG_BG0HOFS
+_080AA0EC: .4byte gUnknown_030042A4
+_080AA0F0: .4byte gUnknown_030042A0
+_080AA0F4: .4byte gUnknown_030042C0
+_080AA0F8: .4byte gUnknown_030041B4
+_080AA0FC: .4byte gUnknown_03004288
+_080AA100: .4byte gUnknown_03004280
+_080AA104: .4byte gUnknown_030041B0
+_080AA108: .4byte gUnknown_030041B8
+ thumb_func_end sub_80AA090
+
+ thumb_func_start sub_80AA10C
+sub_80AA10C: @ 80AA10C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, _080AA238
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80A9F50
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80A9FE4
+ ldr r0, _080AA23C
+ bl SetVBlankCallback
+ ldr r0, _080AA240
+ bl SetMainCallback2
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ ldr r4, _080AA244
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, _080AA248
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _080AA16A
+ movs r0, 0
+ movs r1, 0
+ bl sub_80AE398
+_080AA16A:
+ ldrb r0, [r4]
+ bl sub_80AE098
+ movs r5, 0
+ ldr r6, _080AA24C
+ adds r0, r6, 0x1
+ mov r8, r0
+ ldr r7, _080AA250
+_080AA17A:
+ lsls r2, r5, 2
+ adds r0, r2, r7
+ ldr r1, [r0]
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0xA8
+ lsls r0, 14
+ adds r2, r0
+ lsrs r2, 16
+ lsls r4, r5, 1
+ adds r0, r4, r6
+ ldrb r3, [r0]
+ add r4, r8
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldr r0, _080AA254
+ bl sub_8003460
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080AA17A
+ ldr r1, _080AA258
+ ldr r4, _080AA25C
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r1]
+ movs r5, 0
+ movs r0, 0
+ bl sub_80AA5BC
+ ldrb r0, [r4]
+ bl sub_80AA5E8
+ ldr r4, _080AA254
+ ldr r1, _080AA260
+ movs r0, 0x12
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xD6
+ movs r3, 0x12
+ bl sub_8003460
+ ldr r1, _080AA264
+ movs r0, 0xC
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xDC
+ movs r3, 0
+ bl sub_8003460
+ ldr r0, _080AA268
+ bl LoadSpriteSheet
+ ldr r0, _080AA26C
+ bl LoadSpritePalette
+ movs r0, 0x3
+ bl sub_80AA280
+ movs r0, 0x3
+ bl sub_80AA658
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_80AA614
+ ldr r0, _080AA270
+ ldr r1, _080AA274
+ ldrb r1, [r1, 0x3]
+ ldr r2, _080AA278
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AA27C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ movs r0, 0x3
+ strh r0, [r1, 0x32]
+ strh r5, [r1, 0x34]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA238: .4byte gPaletteFade
+_080AA23C: .4byte sub_80AA090
+_080AA240: .4byte sub_80AA064
+_080AA244: .4byte gUnknown_02038694
+_080AA248: .4byte gUnknown_02038570
+_080AA24C: .4byte gUnknown_083C9276
+_080AA250: .4byte gUnknown_083C9364
+_080AA254: .4byte gMenuWindow
+_080AA258: .4byte gUnknown_0203869C
+_080AA25C: .4byte gUnknown_0203869E
+_080AA260: .4byte gUnknown_083C9337
+_080AA264: .4byte gUnknown_083C933B
+_080AA268: .4byte gUnknown_083C92B4
+_080AA26C: .4byte gUnknown_083C92BC
+_080AA270: .4byte gSpriteTemplate_83C92CC
+_080AA274: .4byte gUnknown_083C9296
+_080AA278: .4byte gUnknown_083C92A8
+_080AA27C: .4byte gSprites
+ thumb_func_end sub_80AA10C
+
+ thumb_func_start sub_80AA280
+sub_80AA280: @ 80AA280
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080AA2E8
+ movs r1, 0x1E
+ str r1, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r4, _080AA2EC
+ ldr r1, _080AA2F0
+ adds r0, r4, 0
+ bl StringCopy
+ lsls r1, r7, 6
+ ldr r0, _080AA2F4
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringAppend
+ movs r5, 0
+ ldr r6, _080AA2F8
+ adds r0, r6, 0x1
+ mov r8, r0
+_080AA2BE:
+ cmp r7, r5
+ bne _080AA2FC
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0x80
+ lsls r0, 10
+ adds r2, r0
+ lsrs r2, 16
+ lsls r1, r5, 1
+ adds r0, r1, r6
+ ldrb r3, [r0]
+ add r1, r8
+ ldrb r0, [r1]
+ str r0, [sp]
+ ldr r0, _080AA2E8
+ ldr r1, _080AA2EC
+ bl sub_8003460
+ b _080AA322
+ .align 2, 0
+_080AA2E8: .4byte gMenuWindow
+_080AA2EC: .4byte 0x02000000
+_080AA2F0: .4byte gUnknown_083C932C
+_080AA2F4: .4byte gUnknown_0203857D
+_080AA2F8: .4byte gUnknown_083C926E
+_080AA2FC:
+ lsls r1, r5, 6
+ ldr r0, _080AA338
+ adds r1, r0
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0x80
+ lsls r0, 10
+ adds r2, r0
+ lsrs r2, 16
+ lsls r4, r5, 1
+ adds r0, r4, r6
+ ldrb r3, [r0]
+ add r4, r8
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldr r0, _080AA33C
+ bl sub_8003460
+_080AA322:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AA2BE
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA338: .4byte gUnknown_0203857D
+_080AA33C: .4byte gMenuWindow
+ thumb_func_end sub_80AA280
+
+ thumb_func_start sub_80AA340
+sub_80AA340: @ 80AA340
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA378
+ ldr r1, _080AA37C
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x26
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA380
+ ldr r1, _080AA384
+ ldrb r3, [r1]
+ ldrb r1, [r1, 0x1]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x66
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA378: .4byte 0x02000000
+_080AA37C: .4byte gUnknown_02038570
+_080AA380: .4byte gMenuWindow
+_080AA384: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA340
+
+ thumb_func_start sub_80AA388
+sub_80AA388: @ 80AA388
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA3C0
+ ldr r1, _080AA3C4
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x28
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA3C8
+ ldr r1, _080AA3CC
+ ldrb r3, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x6C
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA3C0: .4byte 0x02000000
+_080AA3C4: .4byte gUnknown_02038570
+_080AA3C8: .4byte gMenuWindow
+_080AA3CC: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA388
+
+ thumb_func_start sub_80AA3D0
+sub_80AA3D0: @ 80AA3D0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA408
+ ldr r1, _080AA40C
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x27
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA410
+ ldr r1, _080AA414
+ ldrb r3, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x72
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA408: .4byte 0x02000000
+_080AA40C: .4byte gUnknown_02038570
+_080AA410: .4byte gMenuWindow
+_080AA414: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA3D0
+
+ thumb_func_start sub_80AA418
+sub_80AA418: @ 80AA418
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA450
+ ldr r1, _080AA454
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x29
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA458
+ ldr r1, _080AA45C
+ ldrb r3, [r1, 0x6]
+ ldrb r1, [r1, 0x7]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x78
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA450: .4byte 0x02000000
+_080AA454: .4byte gUnknown_02038570
+_080AA458: .4byte gMenuWindow
+_080AA45C: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA418
+
+ thumb_func_start sub_80AA460
+sub_80AA460: @ 80AA460
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA498
+ ldr r1, _080AA49C
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA4A0
+ ldr r1, _080AA4A4
+ ldrb r3, [r1, 0x8]
+ ldrb r1, [r1, 0x9]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x7E
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA498: .4byte 0x02000000
+_080AA49C: .4byte gUnknown_02038570
+_080AA4A0: .4byte gMenuWindow
+_080AA4A4: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA460
+
+ thumb_func_start sub_80AA4A8
+sub_80AA4A8: @ 80AA4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA4E0
+ ldr r1, _080AA4E4
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA4E8
+ ldr r1, _080AA4EC
+ ldrb r3, [r1, 0xA]
+ ldrb r1, [r1, 0xB]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x84
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA4E0: .4byte 0x02000000
+_080AA4E4: .4byte gUnknown_02038570
+_080AA4E8: .4byte gMenuWindow
+_080AA4EC: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA4A8
+
+ thumb_func_start sub_80AA4F0
+sub_80AA4F0: @ 80AA4F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r7, _080AA5A8
+ ldr r0, _080AA5AC
+ lsls r5, r6, 1
+ adds r1, r5, r0
+ ldrb r1, [r1]
+ mov r9, r1
+ adds r0, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r0, 0x7
+ add r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ str r0, [sp]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ mov r2, r9
+ mov r3, r10
+ bl FillWindowRect_DefaultPalette
+ ldr r0, _080AA5B0
+ lsls r4, 6
+ adds r4, r5, r4
+ adds r0, 0x1E
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080AA5B4
+ adds r1, r0
+ lsls r2, r6, 3
+ subs r2, r6
+ lsls r2, 17
+ movs r0, 0x8A
+ lsls r0, 16
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, r10
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r3, r9
+ bl sub_8003460
+ ldr r0, _080AA5B8
+ mov r9, r0
+ ldrh r1, [r4]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r6
+ lsls r5, 17
+ movs r0, 0xFA
+ lsls r0, 16
+ adds r5, r0
+ lsrs r5, 16
+ mov r0, r10
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r1, r9
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA5A8: .4byte gMenuWindow
+_080AA5AC: .4byte gUnknown_083C928E
+_080AA5B0: .4byte gUnknown_02038570
+_080AA5B4: .4byte gMoveNames
+_080AA5B8: .4byte gStringVar1
+ thumb_func_end sub_80AA4F0
+
+ thumb_func_start sub_80AA5BC
+sub_80AA5BC: @ 80AA5BC
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r2, _080AA5E0
+ ldr r1, _080AA5E4
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x12
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r2, 0xC2
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA5E0: .4byte gMenuWindow
+_080AA5E4: .4byte gUnknown_083C93B4
+ thumb_func_end sub_80AA5BC
+
+ thumb_func_start sub_80AA5E8
+sub_80AA5E8: @ 80AA5E8
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r2, _080AA60C
+ ldr r1, _080AA610
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x4
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r2, 0xE8
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA60C: .4byte gMenuWindow
+_080AA610: .4byte gUnknown_083C93F0
+ thumb_func_end sub_80AA5E8
+
+ thumb_func_start sub_80AA614
+sub_80AA614: @ 80AA614
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80AE770
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _080AA650
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA654
+ movs r1, 0xC
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0xE2
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA650: .4byte 0x02000000
+_080AA654: .4byte gMenuWindow
+ thumb_func_end sub_80AA614
+
+ thumb_func_start sub_80AA658
+sub_80AA658: @ 80AA658
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80AA340
+ adds r0, r5, 0
+ bl sub_80AA388
+ adds r0, r5, 0
+ bl sub_80AA3D0
+ adds r0, r5, 0
+ bl sub_80AA418
+ adds r0, r5, 0
+ bl sub_80AA460
+ adds r0, r5, 0
+ bl sub_80AA4A8
+ movs r4, 0
+_080AA684:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AA4F0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AA684
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA658
+
+ thumb_func_start sub_80AA69C
+sub_80AA69C: @ 80AA69C
+ push {r4-r6,lr}
+ ldr r6, _080AA748
+ ldr r5, _080AA74C
+ ldrb r2, [r5]
+ lsls r2, 6
+ ldr r4, _080AA750
+ adds r2, r4
+ adds r0, r6, 0
+ movs r1, 0x16
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x2
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x18
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x1
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x17
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x3
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x21
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x4
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x2F
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x5
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x30
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ subs r4, 0x8
+ adds r2, r4
+ adds r0, r6, 0
+ movs r1, 0xD
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x2
+ adds r0, r6, 0
+ movs r1, 0xE
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x4
+ adds r0, r6, 0
+ movs r1, 0xF
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x6
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl SetMonData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA748: .4byte gPlayerParty
+_080AA74C: .4byte gUnknown_02038695
+_080AA750: .4byte gUnknown_02038596
+ thumb_func_end sub_80AA69C
+
+ thumb_func_start sub_80AA754
+sub_80AA754: @ 80AA754
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AA774
+ ldrh r1, [r0, 0x30]
+ cmp r1, 0x20
+ beq _080AA7A2
+ cmp r1, 0x20
+ bgt _080AA782
+ cmp r1, 0x2
+ beq _080AA7F8
+ cmp r1, 0x2
+ bgt _080AA778
+ cmp r1, 0x1
+ beq _080AA7D8
+ b _080AA870
+ .align 2, 0
+_080AA774: .4byte gMain
+_080AA778:
+ cmp r1, 0x8
+ beq _080AA868
+ cmp r1, 0x10
+ beq _080AA7A2
+ b _080AA870
+_080AA782:
+ cmp r1, 0x80
+ beq _080AA7C2
+ cmp r1, 0x80
+ bgt _080AA790
+ cmp r1, 0x40
+ beq _080AA7AC
+ b _080AA870
+_080AA790:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _080AA814
+ movs r0, 0x80
+ lsls r0, 2
+ cmp r1, r0
+ beq _080AA834
+ b _080AA870
+_080AA7A2:
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x2E]
+ b _080AA870
+_080AA7AC:
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AA7BC
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7BC:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7C2:
+ ldrh r1, [r4, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x8
+ bne _080AA7D2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7D2:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7D8:
+ ldr r2, _080AA7F4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080AA84E
+ .align 2, 0
+_080AA7F4: .4byte gUnknown_083C92E4
+_080AA7F8:
+ ldr r1, _080AA810
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ movs r1, 0x1
+ negs r1, r1
+ b _080AA84A
+ .align 2, 0
+_080AA810: .4byte gUnknown_083C92E4
+_080AA814:
+ ldr r2, _080AA830
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0xA
+ b _080AA84E
+ .align 2, 0
+_080AA830: .4byte gUnknown_083C92E4
+_080AA834:
+ ldr r1, _080AA864
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ movs r1, 0xA
+ negs r1, r1
+_080AA84A:
+ ldr r2, [r2]
+ adds r0, r4, 0
+_080AA84E:
+ bl _call_via_r2
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x34]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80AA614
+ b _080AA870
+ .align 2, 0
+_080AA864: .4byte gUnknown_083C92E4
+_080AA868:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80AAD08
+_080AA870:
+ ldr r2, _080AA898
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ strh r0, [r4, 0x20]
+ ldr r1, _080AA89C
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA898: .4byte gUnknown_083C9296
+_080AA89C: .4byte gUnknown_083C92A8
+ thumb_func_end sub_80AA754
+
+ thumb_func_start sub_80AA8A0
+sub_80AA8A0: @ 80AA8A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r2, 24
+ lsrs r0, r2, 24
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AA8C0
+ strh r0, [r4, 0x32]
+ bl sub_80AA280
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+_080AA8C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8A0
+
+ thumb_func_start sub_80AA8C8
+sub_80AA8C8: @ 80AA8C8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8C8
+
+ thumb_func_start sub_80AA8D8
+sub_80AA8D8: @ 80AA8D8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8D8
+
+ thumb_func_start sub_80AA8E8
+sub_80AA8E8: @ 80AA8E8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x2
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8E8
+
+ thumb_func_start sub_80AA8F8
+sub_80AA8F8: @ 80AA8F8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x3
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8F8
+
+ thumb_func_start sub_80AA908
+sub_80AA908: @ 80AA908
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0xFF
+ ble _080AA922
+ movs r0, 0xFF
+ b _080AA928
+_080AA922:
+ cmp r2, 0
+ bge _080AA928
+ movs r0, 0
+_080AA928:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AA908
+
+ thumb_func_start sub_80AA930
+sub_80AA930: @ 80AA930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA970
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x26
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x26
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA340
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA970: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA930
+
+ thumb_func_start sub_80AA974
+sub_80AA974: @ 80AA974
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA9B4
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x28
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x28
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA388
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA9B4: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA974
+
+ thumb_func_start sub_80AA9B8
+sub_80AA9B8: @ 80AA9B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA9F8
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x27
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x27
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA3D0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA9F8: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA9B8
+
+ thumb_func_start sub_80AA9FC
+sub_80AA9FC: @ 80AA9FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAA3C
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x29
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA418
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA3C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA9FC
+
+ thumb_func_start sub_80AAA40
+sub_80AAA40: @ 80AAA40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAA80
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x2A
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA460
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA80: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAA40
+
+ thumb_func_start sub_80AAA84
+sub_80AAA84: @ 80AAA84
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAAC4
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x2B
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x2B
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA4A8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAAC4: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAA84
+
+ thumb_func_start sub_80AAAC8
+sub_80AAAC8: @ 80AAAC8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r2
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ movs r2, 0xB1
+ lsls r2, 1
+ cmp r1, r2
+ ble _080AAAE6
+ movs r0, 0x1
+ b _080AAAEC
+_080AAAE6:
+ cmp r1, 0
+ bge _080AAAEC
+ adds r0, r2, 0
+_080AAAEC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AAAC8
+
+ thumb_func_start sub_80AAAF0
+sub_80AAAF0: @ 80AAAF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAB2C
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x1E]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB2C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAAF0
+
+ thumb_func_start sub_80AAB30
+sub_80AAB30: @ 80AAB30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAB6C
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x20]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x20]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB6C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAB30
+
+ thumb_func_start sub_80AAB70
+sub_80AAB70: @ 80AAB70
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AABAC
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x22]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x22]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABAC: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAB70
+
+ thumb_func_start sub_80AABB0
+sub_80AABB0: @ 80AABB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AABEC
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x24]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABEC: .4byte gUnknown_02038570
+ thumb_func_end sub_80AABB0
+
+ thumb_func_start sub_80AABF0
+sub_80AABF0: @ 80AABF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ movs r0, 0xFF
+ cmp r1, 0
+ ble _080AABFE
+ movs r0, 0x1
+_080AABFE:
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r5, 0x34]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080AAC14
+ movs r4, 0
+ b _080AAC1A
+_080AAC14:
+ cmp r0, 0x4
+ ble _080AAC1A
+ movs r4, 0x4
+_080AAC1A:
+ lsls r4, 24
+ lsrs r0, r4, 24
+ bl sub_80AA5BC
+ asrs r4, 24
+ strh r4, [r5, 0x34]
+ ldr r0, _080AAC54
+ strh r4, [r0]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080AAC58
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80AE398
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA280
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAC54: .4byte gUnknown_0203869C
+_080AAC58: .4byte gUnknown_0203869E
+ thumb_func_end sub_80AABF0
+
+ thumb_func_start sub_80AAC5C
+sub_80AAC5C: @ 80AAC5C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ ble _080AAC78
+ ldr r1, _080AAC74
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ adds r4, r1, 0
+ b _080AAC86
+ .align 2, 0
+_080AAC74: .4byte gUnknown_0203869E
+_080AAC78:
+ ldr r0, _080AACBC
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ cmp r2, 0
+ beq _080AAC86
+ subs r0, r2, 0x1
+ strh r0, [r4]
+_080AAC86:
+ adds r1, r4, 0
+ ldrh r0, [r1]
+ cmp r0, 0x3
+ bls _080AAC92
+ movs r0, 0x3
+ strh r0, [r1]
+_080AAC92:
+ ldrb r0, [r4]
+ bl sub_80AA5E8
+ ldr r0, _080AACC0
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl sub_80AE398
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA280
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AACBC: .4byte gUnknown_0203869E
+_080AACC0: .4byte gUnknown_0203869C
+ thumb_func_end sub_80AAC5C
+
+ thumb_func_start sub_80AACC4
+sub_80AACC4: @ 80AACC4
+ push {lr}
+ bl UpdatePaletteFade
+ ldr r0, _080AACF8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AACF4
+ bl sub_80AA69C
+ ldr r0, _080AACFC
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AACEE
+ ldr r0, _080AAD00
+ ldrb r0, [r0]
+ bl sub_80AE82C
+_080AACEE:
+ ldr r0, _080AAD04
+ bl SetMainCallback2
+_080AACF4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AACF8: .4byte gPaletteFade
+_080AACFC: .4byte gUnknown_0203869A
+_080AAD00: .4byte 0x02000000
+_080AAD04: .4byte sub_80AB47C
+ thumb_func_end sub_80AACC4
+
+ thumb_func_start sub_80AAD08
+sub_80AAD08: @ 80AAD08
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AAD32
+ ldr r1, _080AAD3C
+ ldrh r0, [r0, 0x34]
+ movs r4, 0
+ strb r0, [r1]
+ ldr r0, _080AAD40
+ bl SetMainCallback2
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080AAD32:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAD3C: .4byte 0x02000000
+_080AAD40: .4byte sub_80AACC4
+ thumb_func_end sub_80AAD08
+
+ thumb_func_start sub_80AAD44
+sub_80AAD44: @ 80AAD44
+ push {r4,r5,lr}
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AAD72
+ bl sub_80AA69C
+ movs r4, 0
+ ldr r5, _080AAD78
+_080AAD56:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldr r1, _080AAD7C
+ ldrb r1, [r1]
+ bl sub_80AE770
+ strh r0, [r5]
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AAD56
+ ldr r0, _080AAD80
+ bl SetMainCallback2
+_080AAD72:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAD78: .4byte gUnknown_02038670
+_080AAD7C: .4byte gUnknown_0203869C
+_080AAD80: .4byte sub_805469C
+ thumb_func_end sub_80AAD44
+
+ thumb_func_start sub_80AAD84
+sub_80AAD84: @ 80AAD84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x64
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x48]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4C]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ mov r5, r10
+ adds r5, 0x1
+ lsls r1, r5, 8
+ ldr r0, _080AAEC4
+ subs r1, r0, r1
+ movs r0, 0
+ str r0, [sp, 0x44]
+ ldr r4, _080AAEC8
+ add r0, sp, 0x44
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r0, _080AAECC
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ mov r0, r9
+ bl StringLength
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x8
+ bls _080AADD0
+ movs r7, 0x8
+_080AADD0:
+ movs r6, 0
+ mov r8, r5
+ mov r1, r10
+ lsls r1, 1
+ str r1, [sp, 0x58]
+ ldr r2, [sp, 0x48]
+ adds r2, 0x20
+ str r2, [sp, 0x5C]
+ cmp r6, r7
+ bge _080AAE1E
+ add r5, sp, 0x40
+ add r0, sp, 0x20
+ mov r10, r0
+ ldr r2, _080AAEC4
+_080AADEC:
+ mov r1, r9
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ mov r0, sp
+ adds r1, r5, 0
+ str r2, [sp, 0x60]
+ bl sub_80034D4
+ mov r1, r8
+ lsls r0, r1, 8
+ ldr r2, [sp, 0x60]
+ subs r0, r2, r0
+ mov r1, r10
+ str r1, [r4]
+ str r0, [r4, 0x4]
+ ldr r0, _080AAED0
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, 0x20
+ adds r6, 0x1
+ cmp r6, r7
+ blt _080AADEC
+_080AAE1E:
+ movs r1, 0x7C
+ ldr r2, [sp, 0x58]
+ subs r1, r2
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080AAED4
+ mov r9, r0
+ lsls r3, r7, 3
+ add r3, r9
+ ldr r0, _080AAED8
+ ldr r1, [r0]
+ ldr r2, [r0, 0x4]
+ str r1, [sp, 0x50]
+ str r2, [sp, 0x54]
+ str r1, [r3, 0x3C]
+ str r2, [r3, 0x40]
+ mov r2, r8
+ lsls r0, r2, 3
+ movs r1, 0x80
+ lsls r1, 3
+ adds r2, r1, 0
+ subs r2, r0
+ adds r6, r3, 0
+ adds r6, 0x40
+ ldr r0, _080AAEDC
+ mov r8, r0
+ mov r1, r8
+ ands r2, r1
+ ldrh r5, [r6]
+ ldr r4, _080AAEE0
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r2
+ strh r0, [r6]
+ ldrh r5, [r3, 0x3E]
+ ldr r2, _080AAEE4
+ adds r0, r2, 0
+ ands r0, r5
+ ldr r1, [sp, 0x48]
+ orrs r0, r1
+ strh r0, [r3, 0x3E]
+ adds r3, 0x3C
+ add r0, sp, 0x4C
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r1, r7, 0x1
+ lsls r1, 3
+ mov r0, r9
+ adds r7, r1, r0
+ ldr r0, [sp, 0x50]
+ ldr r1, [sp, 0x54]
+ str r0, [r7, 0x3C]
+ str r1, [r7, 0x40]
+ ldrh r0, [r6]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r0, 0x4
+ adds r5, r7, 0
+ adds r5, 0x40
+ mov r1, r8
+ ands r0, r1
+ ldrh r3, [r5]
+ ands r4, r3
+ orrs r4, r0
+ strh r4, [r5]
+ ldrh r0, [r7, 0x3E]
+ ands r2, r0
+ ldr r0, [sp, 0x5C]
+ orrs r2, r0
+ strh r2, [r7, 0x3E]
+ adds r1, r7, 0
+ adds r1, 0x3C
+ add r2, sp, 0x4C
+ ldrb r2, [r2]
+ strb r2, [r1]
+ add sp, 0x64
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAEC4: .4byte 0x06018000
+_080AAEC8: .4byte 0x040000d4
+_080AAECC: .4byte 0x85000040
+_080AAED0: .4byte 0x84000008
+_080AAED4: .4byte gMain
+_080AAED8: .4byte gUnknown_083C9400
+_080AAEDC: .4byte 0x000003ff
+_080AAEE0: .4byte 0xfffffc00
+_080AAEE4: .4byte 0xfffffe00
+ thumb_func_end sub_80AAD84
+
+ thumb_func_start unref_sub_80AAEE8
+unref_sub_80AAEE8: @ 80AAEE8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ movs r0, 0
+ cmp r4, 0
+ bge _080AAF08
+ mov r1, sp
+ movs r0, 0xAE
+ strb r0, [r1]
+ movs r0, 0x1
+_080AAF08:
+ add r0, sp
+ adds r1, r4, 0
+ cmp r1, 0
+ bge _080AAF12
+ negs r1, r1
+_080AAF12:
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_80AAD84
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AAEE8
+
+ thumb_func_start sub_80AAF30
+sub_80AAF30: @ 80AAF30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _080AAFC0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080AAFC4
+ movs r0, 0x3
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80AE098
+ movs r4, 0x3
+ movs r5, 0x1
+ negs r5, r5
+ ldr r3, _080AAFC8
+ movs r2, 0x3
+_080AAF56:
+ adds r1, r4, r3
+ subs r0, r2, r4
+ strb r0, [r1]
+ subs r4, 0x1
+ cmp r4, r5
+ bgt _080AAF56
+ movs r4, 0
+ movs r6, 0
+ ldr r7, _080AAFCC
+ ldr r5, _080AAFD0
+ mov r9, r5
+_080AAF6C:
+ lsls r1, r4, 1
+ strh r6, [r7]
+ ldr r0, _080AAFD4
+ mov r8, r0
+ adds r0, r1, r0
+ strh r6, [r0]
+ ldr r3, _080AAFD8
+ adds r1, r3
+ strh r6, [r1]
+ adds r0, r5, 0
+ mov r1, r9
+ adds r1, 0xC0
+ movs r2, 0x40
+ str r3, [sp]
+ bl memcpy
+ adds r7, 0x2
+ adds r5, 0x40
+ adds r4, 0x1
+ ldr r3, [sp]
+ cmp r4, 0x2
+ ble _080AAF6C
+ ldr r0, _080AAFCC
+ movs r1, 0x96
+ lsls r1, 1
+ strh r1, [r0, 0x6]
+ movs r0, 0xC8
+ lsls r0, 1
+ mov r1, r8
+ strh r0, [r1, 0x6]
+ strh r0, [r3, 0x6]
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAFC0: .4byte gUnknown_0203856C
+_080AAFC4: .4byte gUnknown_02038695
+_080AAFC8: .4byte gUnknown_02038690
+_080AAFCC: .4byte gUnknown_02038670
+_080AAFD0: .4byte gUnknown_02038570
+_080AAFD4: .4byte gUnknown_02038680
+_080AAFD8: .4byte gUnknown_02038678
+ thumb_func_end sub_80AAF30
+
+ thumb_func_start sub_80AAFDC
+sub_80AAFDC: @ 80AAFDC
+ push {lr}
+ bl sub_80AAF30
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AAFDC
+
+ thumb_func_start sub_80AAFEC
+sub_80AAFEC: @ 80AAFEC
+ push {r4,lr}
+ ldr r1, _080AB01C
+ movs r0, 0
+ strb r0, [r1]
+ movs r4, 0
+ ldr r3, _080AB020
+ ldr r2, _080AB024
+ ldr r1, _080AB028
+ movs r0, 0x3
+_080AAFFE:
+ strh r4, [r1]
+ strh r4, [r2]
+ strh r4, [r3]
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080AAFFE
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AB01C: .4byte gUnknown_0203856C
+_080AB020: .4byte gUnknown_02038678
+_080AB024: .4byte gUnknown_02038680
+_080AB028: .4byte gUnknown_02038670
+ thumb_func_end sub_80AAFEC
+
+ thumb_func_start sub_80AB02C
+sub_80AB02C: @ 80AB02C
+ push {r4,r5,lr}
+ ldr r1, _080AB078
+ movs r0, 0x3
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80AE098
+ movs r2, 0x3
+ movs r5, 0x1
+ negs r5, r5
+ ldr r4, _080AB07C
+ movs r3, 0x3
+_080AB044:
+ adds r1, r2, r4
+ subs r0, r3, r2
+ strb r0, [r1]
+ subs r2, 0x1
+ cmp r2, r5
+ bgt _080AB044
+ ldr r1, _080AB080
+ movs r0, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+_080AB058:
+ movs r0, 0xFF
+ bl sub_80B2A7C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080AB058
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AB078: .4byte gUnknown_02038695
+_080AB07C: .4byte gUnknown_02038690
+_080AB080: .4byte gUnknown_0203869C
+ thumb_func_end sub_80AB02C
+
+ thumb_func_start unref_sub_80AB084
+unref_sub_80AB084: @ 80AB084
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r0, _080AB160
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x22
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ movs r2, 0x80
+ lsls r2, 19
+ movs r3, 0xFA
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r3, _080AB164
+ ldrh r2, [r3]
+ strh r1, [r3]
+ ldr r4, _080AB168
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _080AB16C
+ movs r0, 0x8
+ strh r0, [r1]
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080AB170
+ bl SetMainCallback2
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _080AB174
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080AB178
+ movs r7, 0x85
+ lsls r7, 24
+_080AB108:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AB108
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r4, _080AB17C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r5, _080AB180
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ adds r0, r4, 0
+ bl LoadFontDefaultPalette
+ movs r0, 0x7
+ str r0, [sp]
+ adds r0, r5, 0
+ mov r1, r8
+ movs r2, 0x1
+ movs r3, 0x9
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB160: .4byte REG_BG0HOFS
+_080AB164: .4byte 0x04000208
+_080AB168: .4byte 0x04000200
+_080AB16C: .4byte REG_DISPSTAT
+_080AB170: .4byte sub_80AB184
+_080AB174: .4byte 0x040000d4
+_080AB178: .4byte 0x85000400
+_080AB17C: .4byte gWindowConfig_81E6FD8
+_080AB180: .4byte gUnknown_03004210
+ thumb_func_end unref_sub_80AB084
+
+ thumb_func_start sub_80AB184
+sub_80AB184: @ 80AB184
+ ldr r0, _080AB1A8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080AB1A8: .4byte REG_BG0HOFS
+ thumb_func_end sub_80AB184
+
+ thumb_func_start nullsub_89
+nullsub_89: @ 80AB1AC
+ bx lr
+ thumb_func_end nullsub_89
+
+ thumb_func_start sub_80AB1B0
+sub_80AB1B0: @ 80AB1B0
+ ldr r1, _080AB1B8
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB1B8: .4byte gUnknown_0203869A
+ thumb_func_end sub_80AB1B0
+
+ thumb_func_start sub_80AB1BC
+sub_80AB1BC: @ 80AB1BC
+ push {r4-r6,lr}
+ movs r6, 0x80
+ lsls r6, 19
+ movs r0, 0x40
+ strh r0, [r6]
+ ldr r4, _080AB260
+ ldrh r3, [r4]
+ movs r2, 0
+ strh r2, [r4]
+ ldr r5, _080AB264
+ ldrh r0, [r5]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r1, _080AB268
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r3, 0x98
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080AB26C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080AB270
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080AB274
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0xC
+ ldr r3, _080AB278
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r6]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r0, _080AB27C
+ strh r2, [r0]
+ ldr r0, _080AB280
+ strh r2, [r0]
+ ldr r0, _080AB284
+ strh r2, [r0]
+ ldr r0, _080AB288
+ strh r2, [r0]
+ ldr r0, _080AB28C
+ strh r2, [r0]
+ ldr r0, _080AB290
+ strh r2, [r0]
+ ldr r0, _080AB294
+ strh r2, [r0]
+ ldr r0, _080AB298
+ strh r2, [r0]
+ ldr r0, _080AB29C
+ strh r2, [r0]
+ ldr r0, _080AB2A0
+ strh r2, [r0]
+ ldr r0, _080AB2A4
+ strh r2, [r0]
+ ldr r0, _080AB2A8
+ strh r2, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB260: .4byte 0x04000208
+_080AB264: .4byte 0x04000200
+_080AB268: .4byte REG_DISPSTAT
+_080AB26C: .4byte 0x00009e09
+_080AB270: .4byte 0x00003a03
+_080AB274: .4byte REG_BLDCNT
+_080AB278: .4byte 0x00003f3f
+_080AB27C: .4byte gUnknown_030042A4
+_080AB280: .4byte gUnknown_030042A0
+_080AB284: .4byte gUnknown_030042C0
+_080AB288: .4byte gUnknown_030041B4
+_080AB28C: .4byte gUnknown_03004288
+_080AB290: .4byte gUnknown_03004280
+_080AB294: .4byte gUnknown_030041B0
+_080AB298: .4byte gUnknown_030041B8
+_080AB29C: .4byte gUnknown_030042C4
+_080AB2A0: .4byte gUnknown_03004240
+_080AB2A4: .4byte gUnknown_03004200
+_080AB2A8: .4byte gUnknown_03004244
+ thumb_func_end sub_80AB1BC
+
+ thumb_func_start sub_80AB2AC
+sub_80AB2AC: @ 80AB2AC
+ push {r4,r5,lr}
+ ldr r0, _080AB300
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _080AB304
+ ldr r1, _080AB308
+ bl LZDecompressVram
+ ldr r0, _080AB30C
+ ldr r1, _080AB310
+ bl LZDecompressVram
+ ldr r0, _080AB314
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ bl sub_80AB350
+ movs r4, 0
+ movs r5, 0xA0
+_080AB2DC:
+ ldr r0, _080AB318
+ adds r0, r5, r0
+ ldr r1, _080AB31C
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ adds r1, 0x5
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x20
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AB2DC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB300: .4byte gContestMiscGfx
+_080AB304: .4byte gContestAudienceGfx
+_080AB308: .4byte 0x06002000
+_080AB30C: .4byte gUnknown_08D1725C
+_080AB310: .4byte 0x0600d000
+_080AB314: .4byte gUnknown_08D17144
+_080AB318: .4byte 0x02018004
+_080AB31C: .4byte gUnknown_02038696
+ thumb_func_end sub_80AB2AC
+
+ thumb_func_start sub_80AB320
+sub_80AB320: @ 80AB320
+ push {r4,lr}
+ ldr r4, _080AB340
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080AB344
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _080AB348
+ ldr r1, _080AB34C
+ bl InitWindowFromConfig
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB340: .4byte gWindowConfig_81E6FD8
+_080AB344: .4byte gUnknown_03004210
+_080AB348: .4byte gMenuWindow
+_080AB34C: .4byte gWindowConfig_81E6FF4
+ thumb_func_end sub_80AB320
+
+ thumb_func_start sub_80AB350
+sub_80AB350: @ 80AB350
+ push {r4,lr}
+ ldr r0, _080AB38C
+ bl LoadFontDefaultPalette
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ movs r4, 0xA
+_080AB364:
+ adds r1, r4, 0
+ adds r1, 0xF0
+ ldr r0, _080AB390
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080AB364
+ ldr r0, _080AB394
+ movs r1, 0xF3
+ movs r2, 0x2
+ bl FillPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB38C: .4byte gWindowConfig_81E6FD8
+_080AB390: .4byte gPlttBufferUnfaded + 0x1E2
+_080AB394: .4byte 0x00007e3f
+ thumb_func_end sub_80AB350
+
+ thumb_func_start sub_80AB398
+sub_80AB398: @ 80AB398
+ push {r4-r6,lr}
+ ldr r4, _080AB468
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x5C
+ bl memset
+ movs r5, 0
+ adds r4, 0x2
+ movs r2, 0xFF
+_080AB3AC:
+ adds r1, r5, r4
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080AB3AC
+ ldr r4, _080AB46C
+ movs r5, 0x3
+_080AB3BE:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1C
+ bl memset
+ adds r4, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080AB3BE
+ ldr r4, _080AB470
+ movs r6, 0x4
+ negs r6, r6
+ movs r3, 0xFF
+ adds r2, r4, 0
+ subs r2, 0x65
+ movs r5, 0x3
+_080AB3DE:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2, 0x8]
+ orrs r0, r3
+ strb r0, [r2, 0x8]
+ ldrb r0, [r2, 0x9]
+ orrs r0, r3
+ strb r0, [r2, 0x9]
+ adds r2, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080AB3DE
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x14
+ movs r1, 0
+ movs r2, 0x44
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x58
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x68
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldr r0, _080AB474
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB43A
+ movs r0, 0
+ bl sub_80B0F28
+_080AB43A:
+ movs r5, 0
+ movs r6, 0xFF
+ adds r3, r4, 0
+ subs r3, 0xB8
+ adds r2, r4, 0
+ subs r2, 0x57
+ ldr r4, _080AB478
+_080AB448:
+ ldrb r0, [r2]
+ orrs r0, r6
+ strb r0, [r2]
+ adds r1, r3, r5
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080AB448
+ bl sub_80B159C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB468: .4byte 0x02019204
+_080AB46C: .4byte 0x02019260
+_080AB470: .4byte 0x020192d0
+_080AB474: .4byte gUnknown_0203869A
+_080AB478: .4byte gUnknown_02038696
+ thumb_func_end sub_80AB398
+
+ thumb_func_start sub_80AB47C
+sub_80AB47C: @ 80AB47C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _080AB498
+ ldr r1, _080AB49C
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _080AB554
+ cmp r0, 0x1
+ bgt _080AB4A0
+ cmp r0, 0
+ beq _080AB4AA
+ b _080AB5AE
+ .align 2, 0
+_080AB498: .4byte gMain
+_080AB49C: .4byte 0x0000043c
+_080AB4A0:
+ cmp r0, 0x2
+ beq _080AB55A
+ cmp r0, 0x3
+ beq _080AB578
+ b _080AB5AE
+_080AB4AA:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80AB320
+ bl sub_80AB1BC
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ ldr r0, _080AB538
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _080AB53C
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080AB540
+ movs r7, 0x85
+ lsls r7, 24
+_080AB4E0:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AB4E0
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r1, _080AB544
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080AB548
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8040710
+ bl sub_80AB398
+ ldr r1, _080AB54C
+ ldr r0, _080AB550
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080AB5AE
+ .align 2, 0
+_080AB538: .4byte gPaletteFade
+_080AB53C: .4byte 0x040000d4
+_080AB540: .4byte 0x85000400
+_080AB544: .4byte gReservedSpritePaletteCount
+_080AB548: .4byte 0x02000000
+_080AB54C: .4byte gMain
+_080AB550: .4byte 0x0000043c
+_080AB554:
+ bl sub_80AB350
+ b _080AB56C
+_080AB55A:
+ ldr r5, _080AB574
+ adds r0, r5, 0
+ bl sub_80AB70C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB5AE
+ movs r0, 0
+ strb r0, [r5]
+_080AB56C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080AB5AE
+ .align 2, 0
+_080AB574: .4byte 0x0201925d
+_080AB578:
+ bl sub_80B2184
+ ldr r0, _080AB5B8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AB5BC
+ strh r1, [r0]
+ movs r0, 0x2
+ bl BeginFastPaletteFade
+ ldr r2, _080AB5C0
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080AB5C4
+ bl SetVBlankCallback
+ ldr r0, _080AB5C8
+ movs r1, 0xA
+ bl CreateTask
+ ldr r1, _080AB5CC
+ strb r0, [r1, 0x8]
+ ldr r0, _080AB5D0
+ bl SetMainCallback2
+_080AB5AE:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB5B8: .4byte gUnknown_030042C0
+_080AB5BC: .4byte gUnknown_030041B4
+_080AB5C0: .4byte gPaletteFade
+_080AB5C4: .4byte sub_80ABAC4
+_080AB5C8: .4byte sub_80AB5D4
+_080AB5CC: .4byte 0x02019204
+_080AB5D0: .4byte sub_80ABAAC
+ thumb_func_end sub_80AB47C
+
+ thumb_func_start sub_80AB5D4
+sub_80AB5D4: @ 80AB5D4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AB5F8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB5F4
+ ldr r0, _080AB5FC
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AB600
+ str r0, [r1]
+_080AB5F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB5F8: .4byte gPaletteFade
+_080AB5FC: .4byte gTasks
+_080AB600: .4byte sub_80AB604
+ thumb_func_end sub_80AB5D4
+
+ thumb_func_start sub_80AB604
+sub_80AB604: @ 80AB604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080AB648
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AB65C
+ ldr r2, _080AB64C
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB66A
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_80AF860
+ ldr r0, _080AB650
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080AB654
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080AB658
+ str r1, [r0]
+ b _080AB66A
+ .align 2, 0
+_080AB648: .4byte gUnknown_0203869A
+_080AB64C: .4byte gPaletteFade
+_080AB650: .4byte sub_80AB678
+_080AB654: .4byte gTasks
+_080AB658: .4byte nullsub_89
+_080AB65C:
+ ldr r0, _080AB670
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AB674
+ str r0, [r1]
+_080AB66A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB670: .4byte gTasks
+_080AB674: .4byte sub_80AB960
+ thumb_func_end sub_80AB604
+
+ thumb_func_start sub_80AB678
+sub_80AB678: @ 80AB678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AB68C
+ ldr r2, _080AB690
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB68C: .4byte sub_80C89DC
+_080AB690: .4byte sub_80AB694
+ thumb_func_end sub_80AB678
+
+ thumb_func_start sub_80AB694
+sub_80AB694: @ 80AB694
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1
+ ldr r2, _080AB6AC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r3, [r1, 0x8]
+ ldr r0, _080AB6B0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB6AC: .4byte gTasks
+_080AB6B0: .4byte sub_80AB6B4
+ thumb_func_end sub_80AB694
+
+ thumb_func_start sub_80AB6B4
+sub_80AB6B4: @ 80AB6B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080AB6F8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r5
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _080AB6F2
+ bl GetMultiplayerId
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080AB6FC
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ ldr r1, _080AB700
+ str r1, [r0]
+ ldr r1, _080AB704
+ ldr r0, _080AB708
+ ldr r0, [r0]
+ str r0, [r1]
+_080AB6F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB6F8: .4byte gTasks
+_080AB6FC: .4byte 0x02019204
+_080AB700: .4byte sub_80AB960
+_080AB704: .4byte gRngValue
+_080AB708: .4byte gUnknown_03005D28
+ thumb_func_end sub_80AB6B4
+
+ thumb_func_start sub_80AB70C
+sub_80AB70C: @ 80AB70C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _080AB722
+ b _080AB93C
+_080AB722:
+ lsls r0, 2
+ ldr r1, _080AB72C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AB72C: .4byte _080AB730
+ .align 2, 0
+_080AB730:
+ .4byte _080AB74C
+ .4byte _080AB7A0
+ .4byte _080AB7B0
+ .4byte _080AB800
+ .4byte _080AB814
+ .4byte _080AB844
+ .4byte _080AB8CC
+_080AB74C:
+ ldr r0, _080AB794
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ add r5, sp, 0x40
+ movs r6, 0
+ ldr r1, _080AB798
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r7, _080AB79C
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080AB772:
+ str r6, [sp, 0x40]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AB772
+ str r6, [sp, 0x40]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ b _080AB7E6
+ .align 2, 0
+_080AB794: .4byte gPaletteFade
+_080AB798: .4byte 0x040000d4
+_080AB79C: .4byte 0x85000400
+_080AB7A0:
+ ldr r0, _080AB7AC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _080AB946
+ .align 2, 0
+_080AB7AC: .4byte gContestMiscGfx
+_080AB7B0:
+ ldr r0, _080AB7EC
+ ldr r4, _080AB7F0
+ adds r1, r4, 0
+ bl LZDecompressVram
+ ldr r3, _080AB7F4
+ movs r5, 0x80
+ lsls r5, 6
+ ldr r1, _080AB7F8
+ ldr r6, _080AB7FC
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x84
+ lsls r7, 24
+_080AB7CC:
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r2
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _080AB7CC
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 2
+ orrs r0, r7
+_080AB7E6:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _080AB946
+ .align 2, 0
+_080AB7EC: .4byte gContestAudienceGfx
+_080AB7F0: .4byte 0x06002000
+_080AB7F4: .4byte 0x02015800
+_080AB7F8: .4byte 0x040000d4
+_080AB7FC: .4byte 0x84000400
+_080AB800:
+ ldr r0, _080AB80C
+ ldr r1, _080AB810
+ bl LZDecompressVram
+ b _080AB946
+ .align 2, 0
+_080AB80C: .4byte gUnknown_08D1725C
+_080AB810: .4byte 0x0600d000
+_080AB814:
+ ldr r0, _080AB830
+ ldr r4, _080AB834
+ adds r1, r4, 0
+ bl LZDecompressVram
+ ldr r1, _080AB838
+ ldr r0, _080AB83C
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080AB840
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080AB946
+ .align 2, 0
+_080AB830: .4byte gUnknown_08D17424
+_080AB834: .4byte 0x0600e000
+_080AB838: .4byte 0x02018a04
+_080AB83C: .4byte 0x040000d4
+_080AB840: .4byte 0x84000200
+_080AB844:
+ ldr r0, _080AB8AC
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r5, _080AB8B0
+ ldr r6, _080AB8B4
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r6, 0
+ bl CpuSet
+ ldr r0, _080AB8B8
+ mov r9, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 5
+ ldr r1, _080AB8BC
+ adds r1, r5
+ mov r8, r1
+ add r0, r8
+ add r4, sp, 0x20
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl CpuSet
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CpuSet
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r1, 0x5
+ lsls r1, 5
+ add r1, r8
+ mov r0, sp
+ adds r2, r6, 0
+ bl CpuSet
+ ldr r1, _080AB8C0
+ ldr r0, _080AB8C4
+ mov r2, r8
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080AB8C8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_80AB350
+ b _080AB946
+ .align 2, 0
+_080AB8AC: .4byte gUnknown_08D17144
+_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
+_080AB8B4: .4byte REG_BG0CNT
+_080AB8B8: .4byte gUnknown_02038695
+_080AB8BC: .4byte 0xffffff00
+_080AB8C0: .4byte 0x02018004
+_080AB8C4: .4byte 0x040000d4
+_080AB8C8: .4byte 0x84000080
+_080AB8CC:
+ bl sub_80B1118
+ bl sub_80AFA5C
+ bl sub_80AEB30
+ bl sub_80AE8B4
+ ldr r1, _080AB924
+ movs r4, 0
+ strb r0, [r1, 0x12]
+ bl sub_80AFE30
+ bl sub_80B0034
+ bl sub_80B00C8
+ bl sub_80B0324
+ bl sub_80B0518
+ ldr r1, _080AB928
+ strb r4, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r3, 0x3
+ strb r3, [r1, 0x2]
+ movs r2, 0x2
+ strb r2, [r1, 0x3]
+ ldr r0, _080AB92C
+ strh r4, [r0]
+ ldr r4, _080AB930
+ strb r2, [r4]
+ ldr r0, _080AB934
+ strb r3, [r0]
+ bl sub_80AE858
+ ldr r2, _080AB938
+ ldrb r1, [r4]
+ adds r1, r2
+ strb r0, [r1]
+ bl sub_80B292C
+ b _080AB946
+ .align 2, 0
+_080AB924: .4byte 0x02019204
+_080AB928: .4byte gUnknown_02024A72
+_080AB92C: .4byte gUnknown_020239F8
+_080AB930: .4byte gUnknown_02024C07
+_080AB934: .4byte gUnknown_02024C08
+_080AB938: .4byte gUnknown_02024BE0
+_080AB93C:
+ movs r0, 0
+ mov r1, r10
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080AB950
+_080AB946:
+ mov r2, r10
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r0, 0
+_080AB950:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AB70C
+
+ thumb_func_start sub_80AB960
+sub_80AB960: @ 80AB960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080AB994
+ ldrb r2, [r1, 0x8]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x8]
+ ldrb r1, [r1, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080AB990
+ ldr r0, _080AB998
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldr r0, _080AB99C
+ str r0, [r1]
+_080AB990:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB994: .4byte gPaletteFade
+_080AB998: .4byte gTasks
+_080AB99C: .4byte sub_80AB9A0
+ thumb_func_end sub_80AB960
+
+ thumb_func_start sub_80AB9A0
+sub_80AB9A0: @ 80AB9A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AB9C4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _080ABA7C
+ lsls r0, 2
+ ldr r1, _080AB9C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AB9C4: .4byte gTasks
+_080AB9C8: .4byte _080AB9CC
+ .align 2, 0
+_080AB9CC:
+ .4byte _080AB9E0
+ .4byte _080ABA0A
+ .4byte _080ABA28
+ .4byte _080ABA44
+ .4byte _080ABA7C
+_080AB9E0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080ABA9C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x61
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ABA9C
+_080ABA0A:
+ ldr r1, _080ABA24
+ ldrh r0, [r1]
+ adds r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA0
+ ble _080ABA9C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ b _080ABA68
+ .align 2, 0
+_080ABA24: .4byte gUnknown_030041B4
+_080ABA28:
+ bl sub_80B2280
+ ldr r0, _080ABA40
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080ABA9C
+ .align 2, 0
+_080ABA40: .4byte gTasks
+_080ABA44:
+ ldr r3, _080ABA70
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ ldr r2, _080ABA74
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ bl sub_80B1B14
+ ldr r1, _080ABA78
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+_080ABA68:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080ABA9C
+ .align 2, 0
+_080ABA70: .4byte REG_BG0CNT
+_080ABA74: .4byte REG_BG2CNT
+_080ABA78: .4byte gTasks
+_080ABA7C:
+ ldr r0, _080ABAA4
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ABA9C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080ABAA8
+ str r1, [r0]
+_080ABA9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABAA4: .4byte 0x02019204
+_080ABAA8: .4byte sub_80ABB70
+ thumb_func_end sub_80AB9A0
+
+ thumb_func_start sub_80ABAAC
+sub_80ABAAC: @ 80ABAAC
+ push {lr}
+ bl AnimateSprites
+ bl RunTasks
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABAAC
+
+ thumb_func_start sub_80ABAC4
+sub_80ABAC4: @ 80ABAC4
+ push {lr}
+ ldr r1, _080ABB3C
+ ldr r0, _080ABB40
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB44
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB48
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB4C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB50
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB54
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB58
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB5C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080ABB60
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080ABB64
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080ABB68
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080ABB6C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABB3C: .4byte REG_BG0HOFS
+_080ABB40: .4byte gUnknown_030042A4
+_080ABB44: .4byte gUnknown_030042A0
+_080ABB48: .4byte gUnknown_030042C0
+_080ABB4C: .4byte gUnknown_030041B4
+_080ABB50: .4byte gUnknown_03004288
+_080ABB54: .4byte gUnknown_03004280
+_080ABB58: .4byte gUnknown_030041B0
+_080ABB5C: .4byte gUnknown_030041B8
+_080ABB60: .4byte gUnknown_030042C4
+_080ABB64: .4byte gUnknown_03004240
+_080ABB68: .4byte gUnknown_03004200
+_080ABB6C: .4byte gUnknown_03004244
+ thumb_func_end sub_80ABAC4
+
+ thumb_func_start sub_80ABB70
+sub_80ABB70: @ 80ABB70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080ABBB0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ABBB4
+ strh r1, [r0]
+ bl sub_80B0D7C
+ ldr r1, _080ABBB8
+ ldr r2, _080ABBBC
+ ldr r0, _080ABBC0
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080ABBC4
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080ABBC8
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABBD4
+ ldr r0, _080ABBCC
+ ldr r1, _080ABBD0
+ bl StringCopy
+ b _080ABBDC
+ .align 2, 0
+_080ABBB0: .4byte gUnknown_030042A0
+_080ABBB4: .4byte gUnknown_03004280
+_080ABBB8: .4byte gPlttBufferUnfaded
+_080ABBBC: .4byte 0x02018204
+_080ABBC0: .4byte 0x040000d4
+_080ABBC4: .4byte 0x84000100
+_080ABBC8: .4byte gUnknown_02038695
+_080ABBCC: .4byte gUnknown_020238CC
+_080ABBD0: .4byte gUnknown_083CAF84
+_080ABBD4:
+ ldr r0, _080ABC20
+ ldr r1, _080ABC24
+ bl StringCopy
+_080ABBDC:
+ ldr r5, _080ABC20
+ ldr r0, _080ABC28
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x1
+ adds r0, r5, 0
+ bl sub_80AE020
+ bl sub_80AF138
+ ldr r4, _080ABC2C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ABC30
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ABC34
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABC38
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABC20: .4byte gUnknown_020238CC
+_080ABC24: .4byte gUnknown_083CAFAE
+_080ABC28: .4byte 0x02019204
+_080ABC2C: .4byte gStringVar4
+_080ABC30: .4byte gMenuWindow
+_080ABC34: .4byte gTasks
+_080ABC38: .4byte sub_80ABC3C
+ thumb_func_end sub_80ABB70
+
+ thumb_func_start sub_80ABC3C
+sub_80ABC3C: @ 80ABC3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ABC64
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ABC5E
+ ldr r0, _080ABC68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABC6C
+ str r0, [r1]
+_080ABC5E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABC64: .4byte gMenuWindow
+_080ABC68: .4byte gTasks
+_080ABC6C: .4byte sub_80ABC70
+ thumb_func_end sub_80ABC3C
+
+ thumb_func_start sub_80ABC70
+sub_80ABC70: @ 80ABC70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080ABCB0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080ABC88
+ cmp r1, 0x2
+ bne _080ABCCE
+_080ABC88:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ABCB4
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABCC0
+ movs r0, 0x1
+ bl sub_80AFFE0
+ ldr r0, _080ABCB8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABCBC
+ b _080ABCCC
+ .align 2, 0
+_080ABCB0: .4byte gMain
+_080ABCB4: .4byte gUnknown_02038695
+_080ABCB8: .4byte gTasks
+_080ABCBC: .4byte sub_80ABCDC
+_080ABCC0:
+ ldr r0, _080ABCD4
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABCD8
+_080ABCCC:
+ str r0, [r1]
+_080ABCCE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABCD4: .4byte gTasks
+_080ABCD8: .4byte sub_80AC0C8
+ thumb_func_end sub_80ABC70
+
+ thumb_func_start sub_80ABCDC
+sub_80ABCDC: @ 80ABCDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ ldr r0, _080ABD80
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080ABD84
+ strh r1, [r0]
+ ldr r5, _080ABD88
+ ldr r4, _080ABD8C
+ ldrb r2, [r4]
+ ldrb r3, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ str r0, [sp]
+ ldrb r0, [r4, 0x3]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ movs r6, 0
+ ldr r0, _080ABD90
+ mov r8, r0
+ ldr r7, _080ABD94
+ mov r9, r5
+ mov r10, r4
+_080ABD1C:
+ lsls r1, r6, 1
+ mov r3, r8
+ ldrb r2, [r3]
+ lsls r0, r2, 6
+ adds r1, r0
+ ldr r0, _080ABD98
+ adds r1, r0
+ ldrh r4, [r1]
+ add r5, sp, 0x8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080ABDA0
+ adds r0, r2, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ABDA0
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r0, [r0, 0x8]
+ adds r1, r4, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ABDA0
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ABDA0
+ add r0, sp, 0x8
+ ldr r1, _080ABD9C
+ b _080ABDC6
+ .align 2, 0
+_080ABD80: .4byte gUnknown_030042A0
+_080ABD84: .4byte gUnknown_03004280
+_080ABD88: .4byte gUnknown_03004210
+_080ABD8C: .4byte gUnknown_083CA340
+_080ABD90: .4byte gUnknown_02038695
+_080ABD94: .4byte 0x02019260
+_080ABD98: .4byte gUnknown_0203858E
+_080ABD9C: .4byte gUnknownText_UnknownFormatting2
+_080ABDA0:
+ cmp r4, 0
+ beq _080ABDCC
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ cmp r0, r4
+ bne _080ABDCC
+ ldr r0, _080ABE74
+ lsls r1, r4, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ beq _080ABDCC
+ add r0, sp, 0x8
+ ldr r1, _080ABE78
+_080ABDC6:
+ bl StringCopy
+ adds r5, r0, 0
+_080ABDCC:
+ movs r0, 0xD
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080ABE7C
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ lsls r1, r6, 2
+ adds r2, r1, r6
+ lsls r2, 18
+ movs r3, 0xC2
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ mov r3, r10
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ lsls r3, 3
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080ABE80
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r9
+ add r1, sp, 0x8
+ bl sub_8002E4C
+ mov r0, r9
+ bl sub_8002F44
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080ABE20
+ b _080ABD1C
+_080ABE20:
+ ldr r1, _080ABE84
+ ldr r3, _080ABE88
+ movs r0, 0x48
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ ldr r4, _080ABE8C
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ ldr r2, _080ABE90
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080ABE94
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ ldr r1, _080ABE98
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABE9C
+ str r1, [r0]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABE74: .4byte gContestMoves
+_080ABE78: .4byte gUnknownText_UnknownFormatting3
+_080ABE7C: .4byte gMoveNames
+_080ABE80: .4byte gUnknown_083CA340 + 0x1
+_080ABE84: .4byte 0x0000ffff
+_080ABE88: .4byte 0x00002d9f
+_080ABE8C: .4byte 0x02019204
+_080ABE90: .4byte gUnknown_02038570
+_080ABE94: .4byte gUnknown_02038695
+_080ABE98: .4byte gTasks
+_080ABE9C: .4byte sub_80ABEA0
+ thumb_func_end sub_80ABCDC
+
+ thumb_func_start sub_80ABEA0
+sub_80ABEA0: @ 80ABEA0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r3, _080ABEF4
+ ldr r1, _080ABEF8
+ ldr r0, _080ABEFC
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, 0x1E
+ adds r1, r0, r1
+ movs r2, 0x3
+_080ABEBA:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080ABEC6
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080ABEC6:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080ABEBA
+ ldrh r0, [r3, 0x2E]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ beq _080ABF08
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ABF00
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABF04
+ str r0, [r1]
+ b _080AC098
+ .align 2, 0
+_080ABEF4: .4byte gMain
+_080ABEF8: .4byte gUnknown_02038570
+_080ABEFC: .4byte gUnknown_02038695
+_080ABF00: .4byte gTasks
+_080ABF04: .4byte sub_80AC0C8
+_080ABF08:
+ ldrh r0, [r3, 0x30]
+ cmp r0, 0x20
+ bne _080ABF10
+ b _080AC098
+_080ABF10:
+ cmp r0, 0x20
+ bgt _080ABF1A
+ cmp r0, 0x2
+ beq _080ABF26
+ b _080AC098
+_080ABF1A:
+ cmp r0, 0x40
+ beq _080ABFEC
+ cmp r0, 0x80
+ bne _080ABF24
+ b _080AC048
+_080ABF24:
+ b _080AC098
+_080ABF26:
+ bl sub_814A904
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80AFFE0
+ ldr r0, _080ABF64
+ ldr r1, _080ABF68
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ ldrb r4, [r1, 0x2]
+ str r4, [sp]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r0, _080ABF6C
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABF78
+ ldr r0, _080ABF70
+ ldr r1, _080ABF74
+ bl StringCopy
+ b _080ABF80
+ .align 2, 0
+_080ABF64: .4byte gUnknown_03004210
+_080ABF68: .4byte gUnknown_083CA340
+_080ABF6C: .4byte gUnknown_02038695
+_080ABF70: .4byte gUnknown_020238CC
+_080ABF74: .4byte gUnknown_083CAF84
+_080ABF78:
+ ldr r0, _080ABFC8
+ ldr r1, _080ABFCC
+ bl StringCopy
+_080ABF80:
+ ldr r5, _080ABFC8
+ ldr r0, _080ABFD0
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x1
+ adds r0, r5, 0
+ bl sub_80AE020
+ bl sub_80AF138
+ ldr r4, _080ABFD4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ABFD8
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8003460
+ ldr r0, _080ABFDC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ABFE0
+ strh r1, [r0]
+ ldr r1, _080ABFE4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABFE8
+ str r1, [r0]
+ b _080AC098
+ .align 2, 0
+_080ABFC8: .4byte gUnknown_020238CC
+_080ABFCC: .4byte gUnknown_083CAFAE
+_080ABFD0: .4byte 0x02019204
+_080ABFD4: .4byte gStringVar4
+_080ABFD8: .4byte gMenuWindow
+_080ABFDC: .4byte gUnknown_030042A0
+_080ABFE0: .4byte gUnknown_03004280
+_080ABFE4: .4byte gTasks
+_080ABFE8: .4byte sub_80ABC70
+_080ABFEC:
+ ldr r4, _080AC000
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl nullsub_17
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080AC004
+ subs r0, r6, 0x1
+ b _080AC006
+ .align 2, 0
+_080AC000: .4byte 0x02019204
+_080AC004:
+ subs r0, 0x1
+_080AC006:
+ strb r0, [r4]
+ ldr r4, _080AC03C
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ bl sub_80AED58
+ ldr r2, _080AC040
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080AC044
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ cmp r6, 0x1
+ bls _080AC098
+ movs r0, 0x5
+ bl PlaySE
+ b _080AC098
+ .align 2, 0
+_080AC03C: .4byte 0x02019204
+_080AC040: .4byte gUnknown_02038570
+_080AC044: .4byte gUnknown_02038695
+_080AC048:
+ ldr r4, _080AC060
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl nullsub_17
+ ldrb r1, [r4]
+ subs r0, r6, 0x1
+ cmp r1, r0
+ bne _080AC064
+ strb r5, [r4]
+ b _080AC068
+ .align 2, 0
+_080AC060: .4byte 0x02019204
+_080AC064:
+ adds r0, r1, 0x1
+ strb r0, [r4]
+_080AC068:
+ ldr r4, _080AC0A0
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ bl sub_80AED58
+ ldr r2, _080AC0A4
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080AC0A8
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ cmp r6, 0x1
+ bls _080AC098
+ movs r0, 0x5
+ bl PlaySE
+_080AC098:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC0A0: .4byte 0x02019204
+_080AC0A4: .4byte gUnknown_02038570
+_080AC0A8: .4byte gUnknown_02038695
+ thumb_func_end sub_80ABEA0
+
+ thumb_func_start sub_80AC0AC
+sub_80AC0AC: @ 80AC0AC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 28
+ movs r0, 0xB0
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x4
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC0AC
+
+ thumb_func_start nullsub_17
+nullsub_17: @ 80AC0C4
+ bx lr
+ thumb_func_end nullsub_17
+
+ thumb_func_start sub_80AC0C8
+sub_80AC0C8: @ 80AC0C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080AC120
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC13C
+ ldr r4, _080AC124
+ ldrb r0, [r4]
+ bl sub_80AF15C
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080AC128
+ adds r1, r2
+ strh r0, [r1, 0x6]
+ ldr r4, _080AC12C
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC130
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080AC134
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080AC138
+ str r1, [r0]
+ bl sub_80AF860
+ movs r0, 0
+ bl sub_80AFFE0
+ b _080AC14E
+ .align 2, 0
+_080AC120: .4byte gUnknown_0203869A
+_080AC124: .4byte gUnknown_02038695
+_080AC128: .4byte 0x02019260
+_080AC12C: .4byte sub_80C8A38
+_080AC130: .4byte sub_80AC15C
+_080AC134: .4byte gTasks
+_080AC138: .4byte nullsub_89
+_080AC13C:
+ bl sub_80AF1B8
+ ldr r0, _080AC154
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AC158
+ str r0, [r1]
+_080AC14E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC154: .4byte gTasks
+_080AC158: .4byte sub_80AC188
+ thumb_func_end sub_80AC0C8
+
+ thumb_func_start sub_80AC15C
+sub_80AC15C: @ 80AC15C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r2, _080AC17C
+ ldr r0, _080AC180
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080AC184
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC17C: .4byte gTasks
+_080AC180: .4byte 0x02019204
+_080AC184: .4byte sub_80AC188
+ thumb_func_end sub_80AC15C
+
+ thumb_func_start sub_80AC188
+sub_80AC188: @ 80AC188
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_80AF138
+ ldr r0, _080AC1E4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AC1E8
+ strh r1, [r0]
+ movs r0, 0
+ bl sub_80AFFE0
+ ldr r1, _080AC1EC
+ ldr r0, _080AC1F0
+ movs r2, 0x80
+ lsls r2, 3
+ ldr r4, _080AC1F4
+ str r1, [r4]
+ str r0, [r4, 0x4]
+ lsrs r1, r2, 2
+ movs r3, 0x84
+ lsls r3, 24
+ orrs r1, r3
+ str r1, [r4, 0x8]
+ ldr r1, [r4, 0x8]
+ ldr r1, _080AC1F8
+ adds r0, r1
+ movs r1, 0
+ bl LoadPalette
+ ldr r1, _080AC1FC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080AC200
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC1E4: .4byte gUnknown_030042A0
+_080AC1E8: .4byte gUnknown_03004280
+_080AC1EC: .4byte gPlttBufferFaded
+_080AC1F0: .4byte 0x02018604
+_080AC1F4: .4byte 0x040000d4
+_080AC1F8: .4byte 0xfffffc00
+_080AC1FC: .4byte gTasks
+_080AC200: .4byte sub_80AC204
+ thumb_func_end sub_80AC188
+
+ thumb_func_start sub_80AC204
+sub_80AC204: @ 80AC204
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC248
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080AC242
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080AC242
+ bl sub_80B1BDC
+ movs r0, 0x1
+ bl sub_80B25E4
+ ldr r0, _080AC24C
+ str r0, [r4]
+_080AC242:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC248: .4byte gTasks
+_080AC24C: .4byte sub_80AC250
+ thumb_func_end sub_80AC204
+
+ thumb_func_start sub_80AC250
+sub_80AC250: @ 80AC250
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AC278
+ ldrh r1, [r0, 0x6]
+ movs r0, 0x90
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC272
+ ldr r0, _080AC27C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AC280
+ str r0, [r1]
+_080AC272:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC278: .4byte 0x02019204
+_080AC27C: .4byte gTasks
+_080AC280: .4byte sub_80AC284
+ thumb_func_end sub_80AC250
+
+ thumb_func_start sub_80AC284
+sub_80AC284: @ 80AC284
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC2BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080AC2B6
+ ldr r1, _080AC2C0
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ ldr r0, _080AC2C4
+ ldr r0, [r0]
+ str r0, [r1, 0x18]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r0, _080AC2C8
+ str r0, [r2]
+_080AC2B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC2BC: .4byte gTasks
+_080AC2C0: .4byte 0x02019204
+_080AC2C4: .4byte gRngValue
+_080AC2C8: .4byte sub_80AC2CC
+ thumb_func_end sub_80AC284
+
+ thumb_func_start sub_80AC2CC
+sub_80AC2CC: @ 80AC2CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _080AC308
+ ldrb r7, [r2, 0x11]
+ ldr r1, _080AC30C
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r6, r2, 0
+ mov r12, r1
+ cmp r0, 0x3B
+ bls _080AC2FC
+ bl _080AD8CA
+_080AC2FC:
+ lsls r0, 2
+ ldr r1, _080AC310
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AC308: .4byte 0x02019204
+_080AC30C: .4byte gTasks
+_080AC310: .4byte _080AC314
+ .align 2, 0
+_080AC314:
+ .4byte _080AC404
+ .4byte _080AC4B4
+ .4byte _080AC4D4
+ .4byte _080AC534
+ .4byte _080AC5E8
+ .4byte _080AC638
+ .4byte _080AC6F8
+ .4byte _080AC730
+ .4byte _080AC77C
+ .4byte _080AC7F4
+ .4byte _080AD750
+ .4byte _080AD77C
+ .4byte _080AC98C
+ .4byte _080AC9C0
+ .4byte _080ACEC0
+ .4byte _080ACFD4
+ .4byte _080AD040
+ .4byte _080AD070
+ .4byte _080AD168
+ .4byte _080AD11A
+ .4byte _080AD7B8
+ .4byte _080AD868
+ .4byte _080AD88C
+ .4byte _080AC81E
+ .4byte _080AC8CC
+ .4byte _080ACAD8
+ .4byte _080ACAEE
+ .4byte _080ACBB0
+ .4byte _080ACBDC
+ .4byte _080ACC44
+ .4byte _080ACD2A
+ .4byte _080AD7E8
+ .4byte _080AD840
+ .4byte _080AD648
+ .4byte _080AD6D8
+ .4byte _080AC9EC
+ .4byte _080ACA24
+ .4byte _080ACA44
+ .4byte _080ACA84
+ .4byte _080ACC98
+ .4byte _080ACD00
+ .4byte _080AD1A4
+ .4byte _080AD8CA
+ .4byte _080AD514
+ .4byte _080AD8CA
+ .4byte _080ACFA8
+ .4byte _080AD0FA
+ .4byte _080AC96C
+ .4byte _080AC8F8
+ .4byte _080AC94C
+ .4byte _080ACAAE
+ .4byte _080ACDC8
+ .4byte _080ACE64
+ .4byte _080AD316
+ .4byte _080AD3D0
+ .4byte _080AD700
+ .4byte _080AD71C
+ .4byte _080AD53C
+ .4byte _080AD5D0
+ .4byte _080AD624
+_080AC404:
+ bl sub_80B0D7C
+ movs r6, 0
+ ldr r0, _080AC484
+ adds r1, r0, 0
+ adds r1, 0xCC
+ ldrb r0, [r0, 0x10]
+ mov r4, r8
+ lsls r4, 2
+ mov r9, r4
+ ldrb r5, [r1]
+ cmp r0, r5
+ beq _080AC42C
+ adds r2, r1, 0
+ adds r1, r0, 0
+_080AC422:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080AC422
+_080AC42C:
+ ldr r4, _080AC484
+ strb r6, [r4, 0x11]
+ ldrb r7, [r4, 0x11]
+ ldr r0, _080AC488
+ ldrb r1, [r0]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC498
+ ldrb r0, [r4, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC458
+ ldrb r0, [r4, 0x11]
+ bl sub_80B114C
+_080AC458:
+ ldr r4, _080AC48C
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC490
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ ldr r1, _080AC494
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC484: .4byte 0x02019204
+_080AC488: .4byte gUnknown_0203869A
+_080AC48C: .4byte sub_80C8C80
+_080AC490: .4byte sub_80AD8DC
+_080AC494: .4byte gTasks
+_080AC498:
+ adds r0, r7, 0
+ bl sub_80B114C
+ ldr r0, _080AC4B0
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC4B0: .4byte gTasks
+_080AC4B4:
+ ldrb r1, [r6, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC4C2
+ bl _080AD8CA
+_080AC4C2:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC4D4:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC508
+ adds r2, r0, r1
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC4F6
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080AC50C
+_080AC4F6:
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x1F
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC508: .4byte 0x02019260
+_080AC50C:
+ bl sub_80AF138
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80B0CDC
+ ldr r0, _080AC530
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r6, [r1, 0x1C]
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC530: .4byte gTasks
+_080AC534:
+ mov r4, r8
+ lsls r4, 2
+ mov r9, r4
+ ldr r4, _080AC5C4
+ ldr r1, _080AC5C8
+ movs r2, 0
+ adds r0, r1, 0x3
+_080AC542:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080AC542
+ movs r6, 0x4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ ldr r5, _080AC5CC
+ adds r7, r4, r5
+ ldrb r0, [r7, 0x11]
+ bl sub_80B28F0
+ ldr r3, _080AC5D0
+ ldrb r2, [r7, 0x11]
+ lsls r2, 6
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x3C
+ adds r1, r2, r1
+ ldr r1, [r1]
+ adds r3, 0x38
+ adds r2, r3
+ ldr r2, [r2]
+ bl sub_80AE9FC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080AC5D4
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r3, r0, r2
+ movs r1, 0x78
+ strh r1, [r3, 0x24]
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080AC5D8
+ str r1, [r0]
+ ldr r0, _080AC5DC
+ mov r4, r9
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0xC]
+ ldr r1, _080AC5E0
+ ldr r0, _080AC5E4
+ ldrb r0, [r0]
+ adds r0, r1
+ strb r5, [r0]
+ ldrb r0, [r7, 0x11]
+ bl sub_80B09E4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80B0BC4
+ strh r6, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC5C4: .4byte 0x02019348
+_080AC5C8: .4byte gUnknown_02024E84
+_080AC5CC: .4byte 0xfffffebc
+_080AC5D0: .4byte gUnknown_02038570
+_080AC5D4: .4byte gSprites
+_080AC5D8: .4byte sub_80AD8FC
+_080AC5DC: .4byte gTasks
+_080AC5E0: .4byte gUnknown_02024BE0
+_080AC5E4: .4byte gUnknown_02024C07
+_080AC5E8:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r3, r12
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xC]
+ ldr r1, _080AC62C
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080AC630
+ cmp r1, r0
+ beq _080AC60E
+ bl _080AD8CA
+_080AC60E:
+ lsls r0, r7, 2
+ ldr r1, _080AC634
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC622
+ bl _080AD8CA
+_080AC622:
+ movs r0, 0x5
+ strh r0, [r2, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC62C: .4byte gSprites
+_080AC630: .4byte SpriteCallbackDummy
+_080AC634: .4byte 0x02019338
+_080AC638:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC660
+ adds r5, r0, r1
+ ldrb r1, [r5, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC664
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x21
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC660: .4byte 0x02019260
+_080AC664:
+ bl sub_80AF138
+ ldr r0, _080AC690
+ lsls r1, r7, 6
+ ldr r2, _080AC694
+ adds r1, r2
+ bl StringCopy
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080AC6A0
+ ldr r0, _080AC698
+ adds r2, r1, 0
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AC69C
+ adds r1, r2
+ bl StringCopy
+ b _080AC6B0
+ .align 2, 0
+_080AC690: .4byte gStringVar1
+_080AC694: .4byte gUnknown_02038572
+_080AC698: .4byte gStringVar2
+_080AC69C: .4byte gMoveNames
+_080AC6A0:
+ ldr r0, _080AC6E0
+ ldr r2, _080AC6E4
+ ldrb r1, [r5, 0xA]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+_080AC6B0:
+ ldr r4, _080AC6E8
+ ldr r1, _080AC6EC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AC6F0
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AC6F4
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC6E0: .4byte gStringVar2
+_080AC6E4: .4byte gUnknown_083CC330
+_080AC6E8: .4byte gStringVar4
+_080AC6EC: .4byte gUnknown_083CAFD7
+_080AC6F0: .4byte gMenuWindow
+_080AC6F4: .4byte gTasks
+_080AC6F8:
+ ldr r0, _080AC724
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC708
+ bl _080AD8CA
+_080AC708:
+ ldr r0, _080AC728
+ adds r0, 0x5A
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _080AC72C
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC724: .4byte gMenuWindow
+_080AC728: .4byte 0x02019204
+_080AC72C: .4byte gTasks
+_080AC730:
+ ldrb r1, [r6, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x5C
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl sub_80B2760
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6, 0x11]
+ bl sub_80B2790
+ ldrb r0, [r6, 0x11]
+ bl sub_80B28F0
+ adds r0, r4, 0
+ bl sub_80B29B4
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldr r1, _080AC778
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC778: .4byte gTasks
+_080AC77C:
+ ldr r0, _080AC7B8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _080AC7BC
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _080AC790
+ bl _080AD8CA
+_080AC790:
+ adds r0, r7, 0
+ bl unref_sub_80B28CC
+ ldr r1, _080AC7C0
+ adds r0, r1, 0
+ adds r0, 0x5A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080AC7C8
+ ldr r0, _080AC7C4
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r4, [r1, 0x1C]
+ movs r0, 0x9
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC7B8: .4byte gUnknown_0202F7AC
+_080AC7BC: .4byte gUnknown_0202F7B1
+_080AC7C0: .4byte 0x02019204
+_080AC7C4: .4byte gTasks
+_080AC7C8:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r1, 0x5C
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC7E2
+ adds r0, r7, 0
+ bl sub_80B03A8
+_080AC7E2:
+ bl unref_sub_80B20C4
+ ldr r0, _080AC7F0
+ mov r2, r8
+ lsls r1, r2, 2
+ b _080AC8E2
+ .align 2, 0
+_080AC7F0: .4byte gTasks
+_080AC7F4:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ mov r4, r12
+ adds r2, r0, r4
+ ldrh r0, [r2, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bgt _080AC812
+ bl _080AD8CA
+_080AC812:
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ movs r0, 0x7
+ strh r0, [r2, 0x8]
+ bl _080AD8CA
+_080AC81E:
+ mov r5, r8
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ mov r1, r12
+ adds r4, r0, r1
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ lsls r2, r7, 3
+ subs r0, r2, r7
+ lsls r0, 2
+ ldr r1, _080AC858
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x13]
+ mov r9, r3
+ mov r10, r2
+ adds r3, r1, 0
+ cmp r0, 0xFF
+ beq _080AC85C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r6, 0x13]
+ movs r0, 0x18
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC858: .4byte 0x02019260
+_080AC85C:
+ ldrb r0, [r6, 0x14]
+ cmp r0, 0xFF
+ beq _080AC8C4
+ movs r6, 0
+ cmp r6, r7
+ beq _080AC86E
+ ldrb r0, [r3, 0x13]
+ cmp r0, 0xFF
+ bne _080AC886
+_080AC86E:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080AC886
+ cmp r6, r7
+ beq _080AC86E
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0xFF
+ beq _080AC86E
+_080AC886:
+ cmp r6, 0x4
+ bne _080AC8B4
+ mov r2, r10
+ subs r4, r2, r7
+ lsls r4, 2
+ adds r4, r3
+ ldrb r1, [r4, 0x14]
+ adds r0, r7, 0
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r4, 0x14]
+ ldr r1, _080AC8B0
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x18
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC8B0: .4byte gTasks
+_080AC8B4:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x30
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC8C4:
+ movs r0, 0x30
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+_080AC8CC:
+ ldr r0, _080AC8F0
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC8DC
+ bl _080AD8CA
+_080AC8DC:
+ ldr r0, _080AC8F4
+ mov r3, r8
+ lsls r1, r3, 2
+_080AC8E2:
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x17
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC8F0: .4byte gMenuWindow
+_080AC8F4: .4byte gTasks
+_080AC8F8:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC914
+ adds r0, r1
+ ldrb r0, [r0, 0x11]
+ movs r3, 0x3
+ ands r3, r0
+ cmp r3, 0x1
+ bne _080AC918
+ movs r0, 0x5
+ bl sub_80B1710
+ b _080AC934
+ .align 2, 0
+_080AC914: .4byte 0x02019260
+_080AC918:
+ cmp r3, 0x2
+ bne _080AC924
+ movs r0, 0x6
+ bl sub_80B1710
+ b _080AC934
+_080AC924:
+ cmp r3, 0x3
+ beq _080AC92E
+ mov r4, r8
+ lsls r0, r4, 2
+ b _080AC95E
+_080AC92E:
+ movs r0, 0x7
+ bl sub_80B1710
+_080AC934:
+ ldr r0, _080AC948
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x31
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC948: .4byte gTasks
+_080AC94C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC95A
+ bl _080AD8CA
+_080AC95A:
+ mov r1, r8
+ lsls r0, r1, 2
+_080AC95E:
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x2F
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC96C:
+ movs r0, 0x1
+ bl sub_80B1FD0
+ ldr r0, _080AC988
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xC
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC988: .4byte gTasks
+_080AC98C:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC9B8
+ adds r0, r1
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ movs r0, 0
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldr r1, _080AC9BC
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC9B8: .4byte 0x02019260
+_080AC9BC: .4byte gTasks
+_080AC9C0:
+ ldrb r0, [r6, 0x11]
+ lsls r0, 2
+ movs r5, 0x9A
+ lsls r5, 1
+ adds r1, r6, r5
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC9DA
+ bl _080AD8CA
+_080AC9DA:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x23
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC9EC:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACA1C
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0x10
+ bne _080ACA06
+ movs r0, 0x8
+ bl sub_80B1710
+_080ACA06:
+ ldr r0, _080ACA20
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x24
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACA1C: .4byte 0x02019260
+_080ACA20: .4byte gTasks
+_080ACA24:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACA32
+ bl _080AD8CA
+_080ACA32:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x25
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080ACA44:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80AEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACA70
+ ldr r1, _080ACA6C
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x26
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACA6C: .4byte gTasks
+_080ACA70:
+ ldr r0, _080ACA80
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ b _080ACAA6
+ .align 2, 0
+_080ACA80: .4byte gTasks
+_080ACA84:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080ACAA2
+ bl _080AD8CA
+_080ACAA2:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_080ACAA6:
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+_080ACAAE:
+ adds r0, r7, 0
+ bl sub_80AF038
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACAC0
+ movs r0, 0x63
+ bl PlaySE
+_080ACAC0:
+ ldr r0, _080ACAD4
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x19
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACAD4: .4byte gTasks
+_080ACAD8:
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ movs r1, 0x1A
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080ACAEE:
+ movs r2, 0
+ movs r4, 0
+ mov r5, r8
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ movs r3, 0xA
+ ldrsh r6, [r0, r3]
+ mov r9, r1
+ cmp r6, 0x3
+ bgt _080ACB58
+ ldr r3, _080ACB24
+ ldr r1, _080ACB28
+_080ACB0A:
+ movs r4, 0
+ movs r2, 0
+ cmp r4, r7
+ beq _080ACB2C
+ ldrb r0, [r3]
+ cmp r0, r6
+ bne _080ACB2C
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0xFF
+ beq _080ACB2C
+ movs r4, 0x1
+ b _080ACB60
+ .align 2, 0
+_080ACB24: .4byte gUnknown_02038696
+_080ACB28: .4byte 0x02019260
+_080ACB2C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080ACB4E
+ cmp r2, r7
+ beq _080ACB2C
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _080ACB2C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0xFF
+ beq _080ACB2C
+ movs r4, 0x1
+_080ACB4E:
+ cmp r4, 0
+ bne _080ACB60
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080ACB0A
+_080ACB58:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080ACB98
+_080ACB60:
+ mov r5, r9
+ add r5, r8
+ lsls r5, 3
+ add r5, r12
+ ldr r0, _080ACB90
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strh r0, [r5, 0xA]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ lsls r4, r2, 3
+ subs r4, r2
+ lsls r4, 2
+ ldr r1, _080ACB94
+ adds r4, r1
+ ldrb r1, [r4, 0x13]
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r4, 0x13]
+ movs r0, 0x1B
+ strh r0, [r5, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACB90: .4byte gUnknown_02038696
+_080ACB94: .4byte 0x02019260
+_080ACB98:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0x1C]
+ movs r1, 0x33
+ strh r1, [r0, 0x8]
+ bl sub_80AF120
+ bl _080AD8CA
+_080ACBB0:
+ ldr r0, _080ACBD4
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACBC0
+ bl _080AD8CA
+_080ACBC0:
+ ldr r0, _080ACBD8
+ mov r4, r8
+ lsls r1, r4, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1C
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACBD4: .4byte gMenuWindow
+_080ACBD8: .4byte gTasks
+_080ACBDC:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r3, 0xA
+ ldrsh r2, [r1, r3]
+ ldr r1, _080ACC38
+ mov r9, r0
+ ldr r3, _080ACC3C
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r2, r4
+ beq _080ACC08
+ adds r1, r2, 0
+ adds r2, r5, 0
+_080ACBFE:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080ACBFE
+_080ACC08:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0xE]
+ ldrh r0, [r0, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ negs r1, r1
+ lsls r2, r6, 24
+ lsrs r2, 24
+ bl sub_80AFBA0
+ ldr r1, _080ACC40
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1D
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACC38: .4byte gUnknown_02038696
+_080ACC3C: .4byte 0x02019260
+_080ACC40: .4byte gTasks
+_080ACC44:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r2, 0xA
+ ldrsh r3, [r1, r2]
+ ldr r1, _080ACC90
+ mov r9, r0
+ ldr r2, _080ACC94
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r3, r4
+ beq _080ACC6C
+_080ACC62:
+ adds r6, 0x1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _080ACC62
+_080ACC6C:
+ lsls r0, r6, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACC7E
+ bl _080AD8CA
+_080ACC7E:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x27
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACC90: .4byte gUnknown_02038696
+_080ACC94: .4byte 0x02019338
+_080ACC98:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r3, 0xA
+ ldrsh r2, [r1, r3]
+ ldr r1, _080ACCE8
+ mov r9, r0
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r2, r4
+ beq _080ACCC2
+ adds r1, r2, 0
+ adds r2, r5, 0
+_080ACCB8:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080ACCB8
+_080ACCC2:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80AEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACCF0
+ ldr r1, _080ACCEC
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x28
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACCE8: .4byte gUnknown_02038696
+_080ACCEC: .4byte gTasks
+_080ACCF0:
+ ldr r0, _080ACCFC
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ b _080ACD22
+ .align 2, 0
+_080ACCFC: .4byte gTasks
+_080ACD00:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080ACD1E
+ bl _080AD8CA
+_080ACD1E:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_080ACD22:
+ movs r0, 0x1E
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+_080ACD2A:
+ movs r6, 0
+ ldr r2, _080ACD78
+ ldrb r3, [r2]
+ mov r4, r8
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ mov r5, r12
+ adds r4, r0, r5
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ mov r9, r1
+ adds r5, r2, 0
+ cmp r3, r0
+ beq _080ACD5E
+ adds r3, r5, 0
+ adds r2, r4, 0
+_080ACD4C:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080ACD5E
+ adds r0, r6, r3
+ ldrb r1, [r0]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080ACD4C
+_080ACD5E:
+ lsls r4, r6, 24
+ lsrs r0, r4, 24
+ bl sub_80AF038
+ lsls r0, 24
+ adds r5, r4, 0
+ cmp r0, 0
+ beq _080ACD7C
+ movs r0, 0x63
+ bl PlaySE
+ b _080ACD82
+ .align 2, 0
+_080ACD78: .4byte gUnknown_02038696
+_080ACD7C:
+ movs r0, 0x64
+ bl PlaySE
+_080ACD82:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r1, _080ACDC0
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACDA6
+ lsrs r0, r5, 24
+ bl sub_80B03A8
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x15]
+_080ACDA6:
+ ldr r0, _080ACDC4
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ movs r0, 0x1A
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACDC0: .4byte 0x02019260
+_080ACDC4: .4byte gTasks
+_080ACDC8:
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r9, r2
+ cmp r0, 0x9
+ bgt _080ACDE8
+ bl _080AD8CA
+_080ACDE8:
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACE48
+ adds r2, r0, r1
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACE0A
+ ldrb r1, [r2, 0x11]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACE36
+_080ACE0A:
+ bl sub_80AF138
+ ldr r0, _080ACE4C
+ lsls r1, r7, 6
+ ldr r2, _080ACE50
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080ACE54
+ ldr r1, _080ACE58
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ACE5C
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+_080ACE36:
+ ldr r0, _080ACE60
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x34
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACE48: .4byte 0x02019260
+_080ACE4C: .4byte gStringVar1
+_080ACE50: .4byte gUnknown_02038572
+_080ACE54: .4byte gStringVar4
+_080ACE58: .4byte gUnknown_083CC103
+_080ACE5C: .4byte gMenuWindow
+_080ACE60: .4byte gTasks
+_080ACE64:
+ ldr r0, _080ACE9C
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACE74
+ bl _080AD8CA
+_080ACE74:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACEA0
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACEA8
+ ldr r0, _080ACEA4
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x11
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACE9C: .4byte gMenuWindow
+_080ACEA0: .4byte 0x02019260
+_080ACEA4: .4byte gTasks
+_080ACEA8:
+ ldr r0, _080ACEBC
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xE
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACEBC: .4byte gTasks
+_080ACEC0:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACEE4
+ adds r0, r1
+ ldrb r4, [r0, 0x16]
+ lsls r4, 24
+ lsrs r5, r4, 24
+ cmp r5, 0
+ beq _080ACF48
+ bl sub_80AF138
+ asrs r0, r4, 24
+ cmp r0, 0x1
+ bne _080ACEF0
+ ldr r0, _080ACEE8
+ ldr r1, _080ACEEC
+ b _080ACEF8
+ .align 2, 0
+_080ACEE4: .4byte 0x02019260
+_080ACEE8: .4byte gMenuWindow
+_080ACEEC: .4byte gUnknown_083CBD79
+_080ACEF0:
+ cmp r0, 0x2
+ bne _080ACF10
+ ldr r0, _080ACF08
+ ldr r1, _080ACF0C
+_080ACEF8:
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+ b _080ACF22
+ .align 2, 0
+_080ACF08: .4byte gMenuWindow
+_080ACF0C: .4byte gUnknown_083CBD9D
+_080ACF10:
+ ldr r0, _080ACF3C
+ ldr r1, _080ACF40
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+_080ACF22:
+ movs r0, 0x3
+ bl sub_80B1710
+ ldr r1, _080ACF44
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ b _080ACF88
+ .align 2, 0
+_080ACF3C: .4byte gMenuWindow
+_080ACF40: .4byte gUnknown_083CBDC6
+_080ACF44: .4byte gTasks
+_080ACF48:
+ bl sub_80AF138
+ ldr r0, _080ACF90
+ lsls r1, r7, 6
+ ldr r2, _080ACF94
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080ACF98
+ ldr r1, _080ACF9C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ACFA0
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ movs r0, 0x2
+ bl sub_80B1710
+ ldr r1, _080ACFA4
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+_080ACF88:
+ movs r1, 0x2D
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACF90: .4byte gStringVar1
+_080ACF94: .4byte gUnknown_02038572
+_080ACF98: .4byte gStringVar4
+_080ACF9C: .4byte gUnknown_083CBD52
+_080ACFA0: .4byte gMenuWindow
+_080ACFA4: .4byte gTasks
+_080ACFA8:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACFB6
+ bl _080AD8CA
+_080ACFB6:
+ ldrb r0, [r6, 0x11]
+ bl sub_80B09B0
+ ldr r1, _080ACFD0
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xF
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACFD0: .4byte gTasks
+_080ACFD4:
+ ldr r0, _080AD034
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACFE4
+ bl _080AD8CA
+_080ACFE4:
+ ldr r1, _080AD038
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bgt _080AD002
+ bl _080AD8CA
+_080AD002:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD03C
+ adds r6, r0, r1
+ ldrb r1, [r6, 0x15]
+ movs r5, 0x10
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD02C
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldrb r1, [r6, 0x17]
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldrh r0, [r6, 0x2]
+ ldrb r2, [r6, 0x17]
+ adds r0, r2
+ strh r0, [r6, 0x2]
+_080AD02C:
+ strh r5, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD034: .4byte gMenuWindow
+_080AD038: .4byte gTasks
+_080AD03C: .4byte 0x02019260
+_080AD040:
+ lsls r0, r7, 2
+ ldr r1, _080AD06C
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD058
+ bl _080AD8CA
+_080AD058:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x1C]
+ movs r1, 0x11
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD06C: .4byte 0x02019338
+_080AD070:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD0CC
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD0E8
+ bl sub_80AF138
+ ldr r0, _080AD0D0
+ lsls r1, r7, 6
+ ldr r2, _080AD0D4
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD0D8
+ ldr r1, _080AD0DC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD0E0
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r0, _080AD0E4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ bl sub_80B1710
+ movs r0, 0x2E
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD0CC: .4byte 0x02019260
+_080AD0D0: .4byte gStringVar1
+_080AD0D4: .4byte gUnknown_02038572
+_080AD0D8: .4byte gStringVar4
+_080AD0DC: .4byte gUnknown_083CC075
+_080AD0E0: .4byte gMenuWindow
+_080AD0E4: .4byte gTasks
+_080AD0E8:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x29
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AD0FA:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD108
+ bl _080AD8CA
+_080AD108:
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x13
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AD11A:
+ ldr r0, _080AD15C
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD12A
+ bl _080AD8CA
+_080AD12A:
+ lsls r4, r7, 3
+ subs r4, r7
+ lsls r4, 2
+ ldr r0, _080AD160
+ adds r4, r0
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ ldrb r1, [r4, 0x18]
+ negs r1, r1
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldrb r1, [r4, 0x18]
+ ldrh r0, [r4, 0x2]
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ ldr r1, _080AD164
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD15C: .4byte gMenuWindow
+_080AD160: .4byte 0x02019260
+_080AD164: .4byte gTasks
+_080AD168:
+ bl sub_80B0D7C
+ lsls r0, r7, 2
+ ldr r1, _080AD19C
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080AD182
+ b _080AD8CA
+_080AD182:
+ ldr r0, _080AD1A0
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ strh r6, [r4, 0x1C]
+ bl sub_80AF138
+ movs r0, 0x29
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD19C: .4byte 0x02019338
+_080AD1A0: .4byte gTasks
+_080AD1A4:
+ ldr r2, _080AD1CC
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080AD1D0
+ ldr r0, [r1]
+ lsls r0, 20
+ lsrs r0, 29
+ cmp r7, r0
+ beq _080AD1D0
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x39
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD1CC: .4byte 0x02019328
+_080AD1D0:
+ ldrb r4, [r1]
+ lsls r2, r7, 3
+ subs r0, r2, r7
+ lsls r0, 2
+ subs r1, 0xC8
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x11]
+ movs r0, 0x10
+ ands r0, r1
+ mov r10, r2
+ cmp r0, 0
+ beq _080AD204
+ movs r4, 0x1
+ ldr r0, _080AD1FC
+ ldrh r2, [r5, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD200
+ adds r1, r2
+ bl StringCopy
+ b _080AD21E
+ .align 2, 0
+_080AD1FC: .4byte gStringVar3
+_080AD200: .4byte gMoveNames
+_080AD204:
+ ldr r0, _080AD270
+ ldr r3, _080AD274
+ ldr r2, _080AD278
+ ldrh r1, [r5, 0x6]
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x1]
+ lsls r1, 29
+ lsrs r1, 27
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+_080AD21E:
+ lsls r0, r4, 24
+ cmp r0, 0
+ ble _080AD23A
+ mov r2, r10
+ subs r0, r2, r7
+ lsls r0, 2
+ ldr r1, _080AD27C
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD23A
+ movs r4, 0
+_080AD23A:
+ bl sub_80AF138
+ ldr r0, _080AD280
+ lsls r1, r7, 6
+ ldr r2, _080AD284
+ adds r1, r2
+ bl StringCopy
+ ldr r3, _080AD288
+ ldrb r0, [r3, 0x13]
+ lsls r1, r4, 24
+ asrs r2, r1, 24
+ adds r0, r2, r0
+ strb r0, [r3, 0x13]
+ lsls r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ bge _080AD262
+ movs r0, 0
+ strb r0, [r3, 0x13]
+_080AD262:
+ cmp r2, 0
+ bne _080AD290
+ ldr r0, _080AD28C
+ mov r3, r8
+ lsls r1, r3, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD270: .4byte gStringVar3
+_080AD274: .4byte gUnknown_083CC2D8
+_080AD278: .4byte gContestMoves
+_080AD27C: .4byte 0x02019260
+_080AD280: .4byte gStringVar1
+_080AD284: .4byte gUnknown_02038572
+_080AD288: .4byte 0x02019204
+_080AD28C: .4byte gTasks
+_080AD290:
+ cmp r2, 0
+ bge _080AD2A8
+ ldr r0, _080AD2A0
+ ldr r1, _080AD2A4
+ bl StringExpandPlaceholders
+ b _080AD2D0
+ .align 2, 0
+_080AD2A0: .4byte gStringVar4
+_080AD2A4: .4byte gUnknown_083CC0BC
+_080AD2A8:
+ cmp r2, 0
+ ble _080AD2C8
+ movs r0, 0x13
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x4
+ bgt _080AD2C8
+ ldr r0, _080AD2C0
+ ldr r1, _080AD2C4
+ bl StringExpandPlaceholders
+ b _080AD2D0
+ .align 2, 0
+_080AD2C0: .4byte gStringVar4
+_080AD2C4: .4byte gUnknown_083CC0A0
+_080AD2C8:
+ ldr r0, _080AD300
+ ldr r1, _080AD304
+ bl StringExpandPlaceholders
+_080AD2D0:
+ ldr r0, _080AD308
+ ldr r1, _080AD300
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD30C
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ strh r0, [r1, 0x1E]
+ cmp r4, 0
+ bge _080AD310
+ movs r0, 0x35
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD300: .4byte gStringVar4
+_080AD304: .4byte gUnknown_083CC0E3
+_080AD308: .4byte gMenuWindow
+_080AD30C: .4byte gTasks
+_080AD310:
+ movs r0, 0x36
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+_080AD316:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r4, r0, r2
+ movs r3, 0x1C
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080AD354
+ cmp r2, 0x1
+ bgt _080AD334
+ cmp r2, 0
+ beq _080AD33E
+ b _080AD8CA
+_080AD334:
+ cmp r2, 0x2
+ beq _080AD37C
+ cmp r2, 0x3
+ beq _080AD3B0
+ b _080AD8CA
+_080AD33E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x1
+ bl sub_80B1EA8
+ ldr r0, _080AD350
+ bl PlayFanfare
+ b _080AD3A8
+ .align 2, 0
+_080AD350: .4byte 0x00000187
+_080AD354:
+ ldrb r0, [r6, 0x7]
+ ands r2, r0
+ cmp r2, 0
+ beq _080AD35E
+ b _080AD8CA
+_080AD35E:
+ ldr r0, _080AD378
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD36C
+ b _080AD8CA
+_080AD36C:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80B1CBC
+ b _080AD3A8
+ .align 2, 0
+_080AD378: .4byte gMenuWindow
+_080AD37C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080AD38C
+ b _080AD8CA
+_080AD38C:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _080AD39C
+ b _080AD8CA
+_080AD39C:
+ strh r2, [r4, 0x1E]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ bl sub_80B1EA8
+_080AD3A8:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _080AD8CA
+_080AD3B0:
+ ldr r0, _080AD3CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080AD3C2
+ b _080AD8CA
+_080AD3C2:
+ strh r0, [r4, 0x1C]
+ strh r0, [r4, 0x1E]
+ movs r0, 0x2B
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD3CC: .4byte gPaletteFade
+_080AD3D0:
+ mov r4, r8
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ add r0, r12
+ movs r5, 0x1C
+ ldrsh r0, [r0, r5]
+ mov r9, r1
+ cmp r0, 0x4
+ bls _080AD3E6
+ b _080AD8CA
+_080AD3E6:
+ lsls r0, 2
+ ldr r1, _080AD3F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AD3F0: .4byte _080AD3F4
+ .align 2, 0
+_080AD3F4:
+ .4byte _080AD408
+ .4byte _080AD420
+ .4byte _080AD43E
+ .4byte _080AD4A0
+ .4byte _080AD4EC
+_080AD408:
+ ldr r0, _080AD41C
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD416
+ b _080AD8CA
+_080AD416:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _080AD4C8
+ .align 2, 0
+_080AD41C: .4byte gMenuWindow
+_080AD420:
+ ldrb r1, [r6, 0x7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD42C
+ b _080AD8CA
+_080AD42C:
+ bl sub_80B1DDC
+ movs r0, 0xDF
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80B1CBC
+ b _080AD4CC
+_080AD43E:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080AD44E
+ b _080AD8CA
+_080AD44E:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _080AD468
+ b _080AD8CA
+_080AD468:
+ strh r2, [r3, 0x1E]
+ lsls r4, r7, 3
+ subs r4, r7
+ lsls r4, 2
+ adds r0, r6, 0
+ adds r0, 0x5C
+ adds r4, r0
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ movs r1, 0x92
+ lsls r1, 1
+ adds r5, r6, r1
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ adds r2, r7, 0
+ str r3, [sp, 0x4]
+ bl sub_80AFBA0
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r4, 0x2]
+ ldr r3, [sp, 0x4]
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _080AD8CA
+_080AD4A0:
+ lsls r0, r7, 2
+ ldr r2, _080AD4E0
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD4B2
+ b _080AD8CA
+_080AD4B2:
+ ldr r3, _080AD4E4
+ adds r0, r2, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD4C2
+ b _080AD8CA
+_080AD4C2:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0x1
+_080AD4C8:
+ bl sub_80B1EA8
+_080AD4CC:
+ ldr r0, _080AD4E8
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ b _080AD8CA
+ .align 2, 0
+_080AD4E0: .4byte 0x02019338
+_080AD4E4: .4byte 0xfffffecc
+_080AD4E8: .4byte gTasks
+_080AD4EC:
+ ldr r0, _080AD510
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD4FE
+ b _080AD8CA
+_080AD4FE:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x1C]
+ strh r1, [r0, 0x1E]
+ movs r1, 0x2B
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD510: .4byte gPaletteFade
+_080AD514:
+ lsls r0, r7, 2
+ ldr r1, _080AD534
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD526
+ b _080AD8CA
+_080AD526:
+ bl sub_80AF138
+ ldr r0, _080AD538
+ mov r4, r8
+ lsls r1, r4, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD534: .4byte 0x02019338
+_080AD538: .4byte gTasks
+_080AD53C:
+ bl sub_80AF138
+ ldr r0, _080AD5A8
+ ldr r4, _080AD5AC
+ ldr r1, [r4]
+ lsls r1, 20
+ lsrs r1, 29
+ lsls r1, 6
+ ldr r5, _080AD5B0
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080AD5B4
+ lsls r1, r7, 6
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080AD5B8
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ subs r4, 0xC8
+ adds r1, r4
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD5BC
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD5C0
+ ldr r1, _080AD5C4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD5C8
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD5CC
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3A
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD5A8: .4byte gStringVar3
+_080AD5AC: .4byte 0x02019328
+_080AD5B0: .4byte gUnknown_02038572
+_080AD5B4: .4byte gStringVar1
+_080AD5B8: .4byte gStringVar2
+_080AD5BC: .4byte gMoveNames
+_080AD5C0: .4byte gStringVar4
+_080AD5C4: .4byte gUnknown_083CC14A
+_080AD5C8: .4byte gMenuWindow
+_080AD5CC: .4byte gTasks
+_080AD5D0:
+ ldr r5, _080AD614
+ adds r0, r5, 0
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD5E0
+ b _080AD8CA
+_080AD5E0:
+ bl sub_80AF138
+ ldr r4, _080AD618
+ ldr r1, _080AD61C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD620
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3B
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD614: .4byte gMenuWindow
+_080AD618: .4byte gStringVar4
+_080AD61C: .4byte gUnknown_083CC16E
+_080AD620: .4byte gTasks
+_080AD624:
+ ldr r0, _080AD640
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD632
+ b _080AD8CA
+_080AD632:
+ bl sub_80AF138
+ ldr r0, _080AD644
+ mov r3, r8
+ lsls r1, r3, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD640: .4byte gMenuWindow
+_080AD644: .4byte gTasks
+_080AD648:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD6B4
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD664
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x15]
+_080AD664:
+ adds r0, r7, 0
+ bl sub_80B09B0
+ ldr r0, _080AD6B8
+ lsls r1, r7, 6
+ ldr r2, _080AD6BC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080AD6C0
+ ldrh r2, [r4, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD6C4
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD6C8
+ ldr r1, _080AD6CC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD6D0
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD6D4
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x22
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD6B4: .4byte 0x02019260
+_080AD6B8: .4byte gStringVar1
+_080AD6BC: .4byte gUnknown_02038572
+_080AD6C0: .4byte gStringVar2
+_080AD6C4: .4byte gMoveNames
+_080AD6C8: .4byte gStringVar4
+_080AD6CC: .4byte gUnknown_083CBF60
+_080AD6D0: .4byte gMenuWindow
+_080AD6D4: .4byte gTasks
+_080AD6D8:
+ ldr r0, _080AD6F8
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD6E6
+ b _080AD8CA
+_080AD6E6:
+ ldr r0, _080AD6FC
+ mov r5, r8
+ lsls r1, r5, 2
+_080AD6EC:
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x37
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD6F8: .4byte gMenuWindow
+_080AD6FC: .4byte gTasks
+_080AD700:
+ bl sub_80B1BDC
+ ldr r0, _080AD718
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x38
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD718: .4byte gTasks
+_080AD71C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD72C
+ b _080AD8CA
+_080AD72C:
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ ble _080AD73A
+ strb r1, [r6, 0x13]
+ bl sub_80B1928
+_080AD73A:
+ ldr r0, _080AD74C
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xA
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD74C: .4byte gTasks
+_080AD750:
+ mov r4, r8
+ lsls r2, r4, 2
+ add r2, r8
+ lsls r2, 3
+ add r2, r12
+ ldrb r5, [r2, 0xC]
+ ldr r1, _080AD774
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080AD778
+ str r1, [r0]
+ movs r0, 0xB
+ strh r0, [r2, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD774: .4byte gSprites
+_080AD778: .4byte sub_80AD92C
+_080AD77C:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r1, r12
+ adds r4, r0, r1
+ ldrb r5, [r4, 0xC]
+ ldr r1, _080AD7B4
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r6, r0, r1
+ adds r0, r6, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _080AD7A2
+ b _080AD8CA
+_080AD7A2:
+ adds r0, r6, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r6, 0
+ bl DestroySprite
+ movs r0, 0x14
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD7B4: .4byte gSprites
+_080AD7B8:
+ movs r6, 0
+ mov r2, r8
+ lsls r2, 2
+ mov r9, r2
+_080AD7C0:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80B0CDC
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080AD7C0
+ ldr r1, _080AD7E4
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x15
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD7E4: .4byte gTasks
+_080AD7E8:
+ bl sub_80AF138
+ ldr r0, _080AD828
+ lsls r1, r7, 6
+ ldr r2, _080AD82C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD830
+ ldr r1, _080AD834
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD838
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD83C
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x20
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD828: .4byte gStringVar1
+_080AD82C: .4byte gUnknown_02038572
+_080AD830: .4byte gStringVar4
+_080AD834: .4byte gUnknown_083CB00D
+_080AD838: .4byte gMenuWindow
+_080AD83C: .4byte gTasks
+_080AD840:
+ ldr r0, _080AD860
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD8CA
+ ldr r0, _080AD864
+ mov r4, r8
+ lsls r1, r4, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x15
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD860: .4byte gMenuWindow
+_080AD864: .4byte gTasks
+_080AD868:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080AD8CA
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ movs r0, 0x16
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+_080AD88C:
+ ldrb r0, [r6, 0x10]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r6, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080AD8B8
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ ldr r1, _080AD8B4
+ str r1, [r0]
+ b _080AD8C4
+ .align 2, 0
+_080AD8B4: .4byte sub_80AD960
+_080AD8B8:
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x8]
+_080AD8C4:
+ movs r0, 0
+ bl nullsub_18
+_080AD8CA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC2CC
+
+ thumb_func_start sub_80AD8DC
+sub_80AD8DC: @ 80AD8DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080AD8F8
+ ldrb r2, [r3, 0x7]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x7]
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD8F8: .4byte 0x02019204
+ thumb_func_end sub_80AD8DC
+
+ thumb_func_start sub_80AD8FC
+sub_80AD8FC: @ 80AD8FC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x24]
+ movs r3, 0x24
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ beq _080AD910
+ subs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080AD924
+_080AD910:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080AD924
+ strh r2, [r1, 0x2E]
+ ldr r0, _080AD928
+ str r0, [r1, 0x1C]
+_080AD924:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD928: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AD8FC
+
+ thumb_func_start sub_80AD92C
+sub_80AD92C: @ 80AD92C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x6
+ strh r0, [r2, 0x24]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080AD956
+ ldr r0, _080AD95C
+ str r0, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080AD956:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD95C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AD92C
+
+ thumb_func_start sub_80AD960
+sub_80AD960: @ 80AD960
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD984
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AD9F2
+ cmp r0, 0x1
+ bgt _080AD988
+ cmp r0, 0
+ beq _080AD98E
+ b _080ADA10
+ .align 2, 0
+_080AD984: .4byte gTasks
+_080AD988:
+ cmp r0, 0x2
+ beq _080ADA08
+ b _080ADA10
+_080AD98E:
+ ldr r0, _080AD9D8
+ ldrb r1, [r0]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD9E8
+ ldr r2, _080AD9DC
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD9B8
+ bl sub_80AF2FC
+ bl sub_80AF3C0
+_080AD9B8:
+ ldr r4, _080AD9E0
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD9E4
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ strh r6, [r5, 0x8]
+ b _080ADA10
+ .align 2, 0
+_080AD9D8: .4byte gUnknown_0203869A
+_080AD9DC: .4byte 0x02019204
+_080AD9E0: .4byte sub_80C8C80
+_080AD9E4: .4byte sub_80AD8DC
+_080AD9E8:
+ bl sub_80AF2FC
+ bl sub_80AF3C0
+ b _080AD9FE
+_080AD9F2:
+ ldr r0, _080ADA04
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADA10
+_080AD9FE:
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _080ADA10
+ .align 2, 0
+_080ADA04: .4byte 0x02019204
+_080ADA08:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080ADA18
+ str r0, [r5]
+_080ADA10:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA18: .4byte sub_80ADA1C
+ thumb_func_end sub_80AD960
+
+ thumb_func_start sub_80ADA1C
+sub_80ADA1C: @ 80ADA1C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B1FD0
+ ldr r1, _080ADA44
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080ADA48
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA44: .4byte gTasks
+_080ADA48: .4byte sub_80ADA4C
+ thumb_func_end sub_80ADA1C
+
+ thumb_func_start sub_80ADA4C
+sub_80ADA4C: @ 80ADA4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADA70
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080ADA92
+ cmp r5, 0x1
+ bgt _080ADA74
+ cmp r5, 0
+ beq _080ADA7A
+ b _080ADACE
+ .align 2, 0
+_080ADA70: .4byte gTasks
+_080ADA74:
+ cmp r5, 0x2
+ beq _080ADAC0
+ b _080ADACE
+_080ADA7A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080ADACE
+ movs r0, 0x2
+ bl sub_80B25E4
+ strh r5, [r4, 0xA]
+ b _080ADAB2
+_080ADA92:
+ ldr r0, _080ADABC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ADACE
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080ADACE
+ strh r1, [r4, 0xA]
+_080ADAB2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ADACE
+ .align 2, 0
+_080ADABC: .4byte 0x02019204
+_080ADAC0:
+ bl sub_80AFF10
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r0, _080ADAD4
+ str r0, [r4]
+_080ADACE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAD4: .4byte sub_80ADAD8
+ thumb_func_end sub_80ADA4C
+
+ thumb_func_start sub_80ADAD8
+sub_80ADAD8: @ 80ADAD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80AFF28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADAF6
+ ldr r0, _080ADAFC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADB00
+ str r0, [r1]
+_080ADAF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAFC: .4byte gTasks
+_080ADB00: .4byte sub_80ADB04
+ thumb_func_end sub_80ADAD8
+
+ thumb_func_start sub_80ADB04
+sub_80ADB04: @ 80ADB04
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADB30
+ ldr r3, _080ADB34
+ ldr r1, _080ADB38
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ ldr r2, _080ADB3C
+ str r2, [r1, 0x8]
+ ldr r1, [r1, 0x8]
+ ldr r2, _080ADB40
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ strh r0, [r1, 0xA]
+ ldr r0, _080ADB44
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080ADB30: .4byte 0x02018204
+_080ADB34: .4byte gPlttBufferUnfaded
+_080ADB38: .4byte 0x040000d4
+_080ADB3C: .4byte 0x84000100
+_080ADB40: .4byte gTasks
+_080ADB44: .4byte sub_80ADB48
+ thumb_func_end sub_80ADB04
+
+ thumb_func_start sub_80ADB48
+sub_80ADB48: @ 80ADB48
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADB80
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080ADB7A
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080ADB7A
+ ldr r0, _080ADB84
+ str r0, [r1]
+_080ADB7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADB80: .4byte gTasks
+_080ADB84: .4byte sub_80ADB88
+ thumb_func_end sub_80ADB48
+
+ thumb_func_start sub_80ADB88
+sub_80ADB88: @ 80ADB88
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080ADBEC
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080ADBF0
+ adds r0, r1
+ ldrb r4, [r0, 0x1A]
+ bl sub_80AF138
+ ldr r0, _080ADBF4
+ ldrb r1, [r6]
+ lsls r1, 6
+ ldr r2, _080ADBF8
+ adds r1, r2
+ bl StringCopy
+ ldr r6, _080ADBFC
+ ldr r0, _080ADC00
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ADC04
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ADC08
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADC0C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADBEC: .4byte gUnknown_02038695
+_080ADBF0: .4byte 0x02019260
+_080ADBF4: .4byte gStringVar1
+_080ADBF8: .4byte gUnknown_02038572
+_080ADBFC: .4byte gStringVar4
+_080ADC00: .4byte gUnknown_083CB2F0
+_080ADC04: .4byte gMenuWindow
+_080ADC08: .4byte gTasks
+_080ADC0C: .4byte sub_80ADC10
+ thumb_func_end sub_80ADB88
+
+ thumb_func_start sub_80ADC10
+sub_80ADC10: @ 80ADC10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ADC40
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ADC3A
+ ldr r1, _080ADC44
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADC48
+ str r1, [r0]
+ bl sub_80B0D7C
+_080ADC3A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC40: .4byte gMenuWindow
+_080ADC44: .4byte gTasks
+_080ADC48: .4byte sub_80ADC4C
+ thumb_func_end sub_80ADC10
+
+ thumb_func_start sub_80ADC4C
+sub_80ADC4C: @ 80ADC4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADC7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080ADC76
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl sub_80AFF10
+ ldr r0, _080ADC80
+ str r0, [r4]
+_080ADC76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC7C: .4byte gTasks
+_080ADC80: .4byte sub_80ADC84
+ thumb_func_end sub_80ADC4C
+
+ thumb_func_start sub_80ADC84
+sub_80ADC84: @ 80ADC84
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80AFF28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADCA6
+ ldr r1, _080ADCAC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADCB0
+ str r1, [r0]
+_080ADCA6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCAC: .4byte gTasks
+_080ADCB0: .4byte sub_80ADCB4
+ thumb_func_end sub_80ADC84
+
+ thumb_func_start sub_80ADCB4
+sub_80ADCB4: @ 80ADCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B2184
+ ldr r1, _080ADCD4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADCD8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCD4: .4byte gTasks
+_080ADCD8: .4byte sub_80B237C
+ thumb_func_end sub_80ADCB4
+
+ thumb_func_start sub_80ADCDC
+sub_80ADCDC: @ 80ADCDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B2280
+ ldr r1, _080ADCFC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADD00
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCFC: .4byte gTasks
+_080ADD00: .4byte sub_80ADD04
+ thumb_func_end sub_80ADCDC
+
+ thumb_func_start sub_80ADD04
+sub_80ADD04: @ 80ADD04
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, _080ADD40
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ ldr r2, _080ADD44
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldr r1, _080ADD48
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080ADD54
+ ldr r0, _080ADD4C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADD50
+ b _080ADD64
+ .align 2, 0
+_080ADD40: .4byte REG_BG0CNT
+_080ADD44: .4byte REG_BG2CNT
+_080ADD48: .4byte 0x02019204
+_080ADD4C: .4byte gTasks
+_080ADD50: .4byte sub_80ADDA4
+_080ADD54:
+ bl sub_80B1B14
+ ldr r0, _080ADD6C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADD70
+_080ADD64:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD6C: .4byte gTasks
+_080ADD70: .4byte sub_80ADD74
+ thumb_func_end sub_80ADD04
+
+ thumb_func_start sub_80ADD74
+sub_80ADD74: @ 80ADD74
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080ADD98
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADD94
+ ldr r0, _080ADD9C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADDA0
+ str r0, [r1]
+_080ADD94:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD98: .4byte 0x02019204
+_080ADD9C: .4byte gTasks
+_080ADDA0: .4byte sub_80ABB70
+ thumb_func_end sub_80ADD74
+
+ thumb_func_start sub_80ADDA4
+sub_80ADDA4: @ 80ADDA4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080ADE24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ADE28
+ strh r1, [r0]
+ ldr r3, _080ADE2C
+ ldr r2, _080ADE30
+ movs r1, 0x3
+_080ADDBC:
+ ldrh r0, [r3, 0x4]
+ strh r0, [r2]
+ adds r3, 0x1C
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080ADDBC
+ movs r5, 0
+ bl sub_80AF668
+ bl sub_80AF138
+ ldr r0, _080ADE34
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080ADE2C
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ bl sub_80BE23C
+ ldr r1, _080ADE38
+ ldr r0, _080ADE3C
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r4, _080ADE40
+ ldr r1, _080ADE44
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ADE48
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ADE4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xC]
+ ldr r1, _080ADE50
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADE24: .4byte gUnknown_030042A0
+_080ADE28: .4byte gUnknown_03004280
+_080ADE2C: .4byte 0x02019260
+_080ADE30: .4byte gUnknown_02038680
+_080ADE34: .4byte gUnknown_02038695
+_080ADE38: .4byte gUnknown_03005D28
+_080ADE3C: .4byte gRngValue
+_080ADE40: .4byte gStringVar4
+_080ADE44: .4byte gUnknown_083CB02C
+_080ADE48: .4byte gMenuWindow
+_080ADE4C: .4byte gTasks
+_080ADE50: .4byte sub_80ADE54
+ thumb_func_end sub_80ADDA4
+
+ thumb_func_start sub_80ADE54
+sub_80ADE54: @ 80ADE54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ADE98
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ADE92
+ bl sub_80B2184
+ ldr r1, _080ADE9C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080ADEA0
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0x62
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080ADEA4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADEA8
+ str r1, [r0]
+_080ADE92:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADE98: .4byte gMenuWindow
+_080ADE9C: .4byte gUnknown_030042C0
+_080ADEA0: .4byte gUnknown_030041B4
+_080ADEA4: .4byte gTasks
+_080ADEA8: .4byte sub_80ADEAC
+ thumb_func_end sub_80ADE54
+
+ thumb_func_start sub_80ADEAC
+sub_80ADEAC: @ 80ADEAC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080ADEE0
+ ldrh r0, [r1]
+ subs r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080ADEC4
+ movs r0, 0
+ strh r0, [r1]
+_080ADEC4:
+ ldrh r2, [r1]
+ cmp r2, 0
+ bne _080ADEDA
+ ldr r0, _080ADEE4
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADEE8
+ str r0, [r1]
+ strh r2, [r1, 0x8]
+_080ADEDA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADEE0: .4byte gUnknown_030041B4
+_080ADEE4: .4byte gTasks
+_080ADEE8: .4byte sub_80ADEEC
+ thumb_func_end sub_80ADEAC
+
+ thumb_func_start sub_80ADEEC
+sub_80ADEEC: @ 80ADEEC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADF20
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x31
+ ble _080ADF40
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080ADF24
+ ldrb r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080ADF2C
+ ldr r0, _080ADF28
+ b _080ADF3E
+ .align 2, 0
+_080ADF20: .4byte gTasks
+_080ADF24: .4byte gUnknown_0203869A
+_080ADF28: .4byte sub_80ADF4C
+_080ADF2C:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080ADF48
+_080ADF3E:
+ str r0, [r4]
+_080ADF40:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF48: .4byte sub_80ADFD8
+ thumb_func_end sub_80ADEEC
+
+ thumb_func_start sub_80ADF4C
+sub_80ADF4C: @ 80ADF4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080ADF88
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADF8C
+ adds r1, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080ADF90
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADF94
+ str r1, [r0]
+ bl sub_80AF860
+ movs r0, 0
+ bl sub_80AFFE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF88: .4byte sub_80C8AD0
+_080ADF8C: .4byte sub_80ADF98
+_080ADF90: .4byte gTasks
+_080ADF94: .4byte nullsub_89
+ thumb_func_end sub_80ADF4C
+
+ thumb_func_start sub_80ADF98
+sub_80ADF98: @ 80ADF98
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _080ADFCC
+ ldr r0, _080ADFD0
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080ADFD4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADFCC: .4byte gTasks
+_080ADFD0: .4byte 0x02019204
+_080ADFD4: .4byte sub_80ADFD8
+ thumb_func_end sub_80ADF98
+
+ thumb_func_start sub_80ADFD8
+sub_80ADFD8: @ 80ADFD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AE000
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADFFC
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080AE004
+ ldr r1, _080AE008
+ str r1, [r0]
+ ldr r0, _080AE00C
+ bl SetMainCallback2
+_080ADFFC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE000: .4byte gPaletteFade
+_080AE004: .4byte gUnknown_0300485C
+_080AE008: .4byte sub_80AE010
+_080AE00C: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80ADFD8
+
+ thumb_func_start sub_80AE010
+sub_80AE010: @ 80AE010
+ push {lr}
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE010
+
+ thumb_func_start sub_80AE020
+sub_80AE020: @ 80AE020
+ push {r4,lr}
+ adds r4, r0, 0
+ b _080AE028
+_080AE026:
+ adds r4, 0x1
+_080AE028:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080AE04C
+ cmp r0, 0xFC
+ bne _080AE026
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _080AE026
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r1, r4, 0x2
+ bl StringAppend
+_080AE04C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE020
+
+ thumb_func_start sub_80AE054
+sub_80AE054: @ 80AE054
+ push {lr}
+ ldr r0, _080AE06C
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AE068
+ ldr r1, _080AE070
+ movs r0, 0x3
+ strb r0, [r1]
+_080AE068:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE06C: .4byte gUnknown_0203869A
+_080AE070: .4byte gUnknown_02038695
+ thumb_func_end sub_80AE054
+
+ thumb_func_start sub_80AE074
+sub_80AE074: @ 80AE074
+ push {lr}
+ ldr r0, _080AE088
+ ldr r1, _080AE08C
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080AE090
+ movs r0, 0
+ b _080AE092
+ .align 2, 0
+_080AE088: .4byte gUnknown_02038695
+_080AE08C: .4byte gUnknown_0203869B
+_080AE090:
+ movs r0, 0x1
+_080AE092:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AE074
+
+ thumb_func_start sub_80AE098
+sub_80AE098: @ 80AE098
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _080AE0F0
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringCopy
+ mov r0, sp
+ bl SkipExtCtrlCodes
+ ldr r0, _080AE0F4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE0CE
+ mov r0, sp
+ ldrb r2, [r0, 0x5]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ strb r2, [r0, 0x7]
+_080AE0CE:
+ ldr r5, _080AE0F8
+ ldrb r0, [r5]
+ lsls r0, 6
+ ldr r4, _080AE0FC
+ adds r0, r4
+ mov r1, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrb r0, [r6, 0x8]
+ cmp r0, 0
+ bne _080AE100
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, r4, r0
+ movs r1, 0xD8
+ b _080AE108
+ .align 2, 0
+_080AE0F0: .4byte gSaveBlock2
+_080AE0F4: .4byte gUnknown_0203869A
+_080AE0F8: .4byte gUnknown_02038695
+_080AE0FC: .4byte gUnknown_0203857D
+_080AE100:
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, r4, r0
+ movs r1, 0xD9
+_080AE108:
+ strb r1, [r0, 0x8]
+ ldr r5, _080AE17C
+ ldr r4, _080AE180
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r1, r5, 0
+ adds r1, 0x18
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r0, r5
+ adds r0, 0x2C
+ strb r1, [r0]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080AE184
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r1, [r4]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ mov r0, sp
+ bl StringGetEnd10
+ ldr r0, _080AE188
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE19A
+ mov r0, sp
+ bl SkipExtCtrlCodes
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x1
+ bne _080AE18C
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ movs r0, 0xFC
+ strb r0, [r1, 0xA]
+ b _080AE19A
+ .align 2, 0
+_080AE17C: .4byte gUnknown_02038570
+_080AE180: .4byte gUnknown_02038695
+_080AE184: .4byte gPlayerParty
+_080AE188: .4byte gUnknown_0203869A
+_080AE18C:
+ mov r0, sp
+ ldrb r2, [r0, 0x5]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ strb r2, [r0, 0xA]
+_080AE19A:
+ ldr r5, _080AE2C4
+ ldrb r0, [r5]
+ lsls r0, 6
+ ldr r1, _080AE2C8
+ mov r8, r1
+ add r0, r8
+ mov r1, sp
+ movs r2, 0xB
+ bl memcpy
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, _080AE2CC
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl GetMonData
+ mov r6, r8
+ subs r6, 0x2
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x26
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x17
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x28
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x21
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x29
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x2A
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x30
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x2B
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ movs r1, 0xE
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x20]
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x24]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ mov r2, r8
+ adds r2, 0x36
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ movs r2, 0x3A
+ add r8, r2
+ add r1, r8
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r8, r2
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r3, [r0]
+ adds r0, 0x1
+ ldrb r4, [r0]
+ adds r0, 0x1
+ ldrb r5, [r0]
+ adds r0, 0x1
+ ldrb r6, [r0]
+ adds r0, 0x1
+ ldrb r7, [r0]
+ cmp r2, 0xFE
+ bne _080AE2D0
+ adds r3, 0x14
+ b _080AE31E
+ .align 2, 0
+_080AE2C4: .4byte gUnknown_02038695
+_080AE2C8: .4byte gUnknown_02038572
+_080AE2CC: .4byte gPlayerParty
+_080AE2D0:
+ cmp r2, 0xFF
+ bne _080AE2E0
+ lsls r0, r4, 16
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ b _080AE31E
+_080AE2E0:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r2, r0
+ bne _080AE2F4
+ lsls r0, r5, 16
+ movs r2, 0xA0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ b _080AE31E
+_080AE2F4:
+ ldr r0, _080AE308
+ cmp r2, r0
+ bne _080AE30C
+ lsls r0, r6, 16
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r6, r0, 16
+ b _080AE31E
+ .align 2, 0
+_080AE308: .4byte 0x00000101
+_080AE30C:
+ movs r0, 0x81
+ lsls r0, 1
+ cmp r8, r0
+ bne _080AE31E
+ lsls r0, r7, 16
+ movs r2, 0xA0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r7, r0, 16
+_080AE31E:
+ cmp r3, 0xFF
+ ble _080AE324
+ movs r3, 0xFF
+_080AE324:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE32E
+ movs r4, 0xFF
+_080AE32E:
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE338
+ movs r5, 0xFF
+_080AE338:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE342
+ movs r6, 0xFF
+_080AE342:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE34C
+ movs r7, 0xFF
+_080AE34C:
+ ldr r2, _080AE390
+ ldr r1, _080AE394
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x26
+ strb r3, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x27
+ strb r4, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x28
+ strb r5, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x29
+ strb r6, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x2A
+ strb r7, [r0]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE390: .4byte gUnknown_02038570
+_080AE394: .4byte gUnknown_02038695
+ thumb_func_end sub_80AE098
+
+ thumb_func_start sub_80AE398
+sub_80AE398: @ 80AE398
+ push {r4-r7,lr}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r6, 0
+ bl sub_80AE054
+ movs r5, 0
+ ldr r2, _080AE470
+_080AE3AE:
+ ldrb r1, [r2, 0x1C]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r7, r0
+ bne _080AE3FE
+ cmp r4, 0
+ bne _080AE3C2
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3C2:
+ cmp r4, 0x1
+ bne _080AE3CE
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 28
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3CE:
+ cmp r4, 0x2
+ bne _080AE3DA
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 27
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3DA:
+ cmp r4, 0x3
+ bne _080AE3E6
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 26
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3E6:
+ cmp r4, 0x4
+ bne _080AE3FE
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080AE3FE
+_080AE3F2:
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ add r0, sp
+ strb r5, [r0]
+_080AE3FE:
+ adds r2, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3B
+ ble _080AE3AE
+ mov r0, sp
+ adds r1, r0, r6
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r5, 0
+ ldr r7, _080AE470
+_080AE412:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080AE474
+ lsls r2, r5, 6
+ adds r2, r1
+ mov r1, sp
+ adds r4, r1, r0
+ ldrb r1, [r4]
+ lsls r1, 6
+ adds r1, r7
+ adds r0, r2, 0
+ movs r2, 0x40
+ bl memcpy
+ ldrb r0, [r4]
+ adds r2, r5, 0x1
+ subs r1, r6, 0x1
+ cmp r0, 0xFF
+ beq _080AE454
+ adds r3, r4, 0
+_080AE448:
+ ldrb r0, [r3, 0x1]
+ strb r0, [r3]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080AE448
+_080AE454:
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ adds r5, r2, 0
+ cmp r5, 0x2
+ ble _080AE412
+ ldr r0, _080AE478
+ ldrb r0, [r0]
+ bl sub_80AE098
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE470: .4byte gUnknown_083C9408
+_080AE474: .4byte gUnknown_02038570
+_080AE478: .4byte gUnknown_02038694
+ thumb_func_end sub_80AE398
+
+ thumb_func_start sub_80AE47C
+sub_80AE47C: @ 80AE47C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _080AE48E
+ movs r0, 0x3
+ b _080AE50A
+_080AE48E:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080AE49E
+ movs r0, 0x4
+ b _080AE50A
+_080AE49E:
+ ldr r0, _080AE4B0
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080AE4F2
+ lsls r0, 2
+ ldr r1, _080AE4B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE4B0: .4byte gUnknown_0203869C
+_080AE4B4: .4byte _080AE4B8
+ .align 2, 0
+_080AE4B8:
+ .4byte _080AE4CC
+ .4byte _080AE4D2
+ .4byte _080AE4D8
+ .4byte _080AE4DE
+ .4byte _080AE4E4
+_080AE4CC:
+ adds r0, r4, 0
+ movs r1, 0x32
+ b _080AE4E8
+_080AE4D2:
+ adds r0, r4, 0
+ movs r1, 0x33
+ b _080AE4E8
+_080AE4D8:
+ adds r0, r4, 0
+ movs r1, 0x34
+ b _080AE4E8
+_080AE4DE:
+ adds r0, r4, 0
+ movs r1, 0x35
+ b _080AE4E8
+_080AE4E4:
+ adds r0, r4, 0
+ movs r1, 0x36
+_080AE4E8:
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ b _080AE4F6
+_080AE4F2:
+ movs r0, 0
+ b _080AE50A
+_080AE4F6:
+ ldr r0, _080AE510
+ adds r2, r1, 0
+ ldrh r1, [r0]
+ movs r0, 0x2
+ cmp r2, r1
+ bhi _080AE50A
+ movs r0, 0
+ cmp r2, r1
+ bcc _080AE50A
+ movs r0, 0x1
+_080AE50A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE510: .4byte gUnknown_0203869E
+ thumb_func_end sub_80AE47C
+
+ thumb_func_start sub_80AE514
+sub_80AE514: @ 80AE514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r7, _080AE588
+ adds r0, r7, 0x1
+ mov r9, r0
+ ldr r6, _080AE58C
+ adds r3, r6, 0x1
+ mov r8, r3
+_080AE52C:
+ ldr r4, _080AE590
+ adds r4, r5, r4
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r1, r0, r7
+ ldrb r2, [r1]
+ mov r3, r9
+ adds r1, r0, r3
+ ldrb r3, [r1]
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrb r0, [r0]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080AE594
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r5, 0
+ bl sub_80AE5BC
+ adds r0, r5, 0
+ bl sub_80AE6CC
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AE52C
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE588: .4byte gUnknown_083CA308
+_080AE58C: .4byte gUnknown_083CA310
+_080AE590: .4byte gUnknown_02038696
+_080AE594: .4byte gUnknown_03004210
+ thumb_func_end sub_80AE514
+
+ thumb_func_start PutWindowTilemap
+PutWindowTilemap: @ 80AE598
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r1, _080AE5B8
+ bl StringCopy
+ strb r4, [r0]
+ adds r0, 0x1
+ adds r1, r5, 0
+ bl StringCopy
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE5B8: .4byte gUnknown_083CC59C
+ thumb_func_end PutWindowTilemap
+
+ thumb_func_start sub_80AE5BC
+sub_80AE5BC: @ 80AE5BC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r2, 0xA0
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_80AE5D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE5BC
+
+ thumb_func_start sub_80AE5D4
+sub_80AE5D4: @ 80AE5D4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080AE660
+ ldr r1, _080AE664
+ adds r0, r3, 0
+ bl PutWindowTilemap
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x6
+ strb r0, [r3, 0x1]
+ movs r0, 0x4
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ movs r0, 0xBA
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r0, _080AE668
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE67C
+ ldr r1, _080AE66C
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r1
+ ldrh r6, [r0, 0x1A]
+ cmp r6, 0x1
+ bne _080AE67C
+ adds r1, 0x8
+ adds r1, r2, r1
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r0, _080AE670
+ ldr r1, _080AE660
+ ldr r2, _080AE674
+ adds r2, r4, r2
+ ldrb r4, [r2]
+ movs r2, 0x16
+ muls r2, r4
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ ldr r5, _080AE678
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ lsls r3, 27
+ movs r7, 0xFB
+ lsls r7, 24
+ adds r3, r7
+ lsrs r3, 24
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 3
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ bl sub_8004D04
+ b _080AE6B0
+ .align 2, 0
+_080AE660: .4byte gUnknown_020238CC
+_080AE664: .4byte gEmptyString_81E72B0
+_080AE668: .4byte gUnknown_0203869A
+_080AE66C: .4byte gLinkPlayers
+_080AE670: .4byte gUnknown_03004210
+_080AE674: .4byte gUnknown_02038696
+_080AE678: .4byte gUnknown_083CA310
+_080AE67C:
+ lsls r1, r4, 6
+ ldr r0, _080AE6B8
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r0, _080AE6BC
+ ldr r1, _080AE6C0
+ ldr r2, _080AE6C4
+ adds r2, r4, r2
+ ldrb r4, [r2]
+ movs r2, 0x16
+ muls r2, r4
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ ldr r5, _080AE6C8
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ str r4, [sp]
+ bl sub_8003460
+_080AE6B0:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE6B8: .4byte gUnknown_0203857D
+_080AE6BC: .4byte gUnknown_03004210
+_080AE6C0: .4byte gUnknown_020238CC
+_080AE6C4: .4byte gUnknown_02038696
+_080AE6C8: .4byte gUnknown_083CA310
+ thumb_func_end sub_80AE5D4
+
+ thumb_func_start sub_80AE6CC
+sub_80AE6CC: @ 80AE6CC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r2, 0xA0
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_80AE6E4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE6CC
+
+ thumb_func_start sub_80AE6E4
+sub_80AE6E4: @ 80AE6E4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r2, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080AE75C
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x6
+ strb r0, [r3, 0x1]
+ movs r0, 0x4
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ lsls r1, r4, 6
+ ldr r0, _080AE760
+ adds r1, r0
+ adds r0, r3, 0
+ bl PutWindowTilemap
+ adds r3, r0, 0
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _080AE764
+ ldr r1, _080AE75C
+ ldr r2, _080AE768
+ adds r4, r2
+ ldrb r4, [r4]
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ ldr r5, _080AE76C
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ lsls r3, 27
+ movs r6, 0xFD
+ lsls r6, 24
+ adds r3, r6
+ lsrs r3, 24
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 3
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ bl sub_8004D04
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE75C: .4byte gUnknown_020238CC
+_080AE760: .4byte gUnknown_02038572
+_080AE764: .4byte gUnknown_03004210
+_080AE768: .4byte gUnknown_02038696
+_080AE76C: .4byte gUnknown_083CA308
+ thumb_func_end sub_80AE6E4
+
+ thumb_func_start sub_80AE770
+sub_80AE770: @ 80AE770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x4
+ bhi _080AE7FC
+ lsls r0, 2
+ ldr r1, _080AE788
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE788: .4byte _080AE78C
+ .align 2, 0
+_080AE78C:
+ .4byte _080AE7A0
+ .4byte _080AE7B8
+ .4byte _080AE7D0
+ .4byte _080AE7E0
+ .4byte _080AE7FC
+_080AE7A0:
+ ldr r0, _080AE7B4
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x26
+ ldrb r5, [r3]
+ adds r3, 0x4
+ ldrb r4, [r3]
+ adds r1, 0x27
+ b _080AE80E
+ .align 2, 0
+_080AE7B4: .4byte gUnknown_02038570
+_080AE7B8:
+ ldr r0, _080AE7CC
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x27
+ ldrb r5, [r3]
+ subs r3, 0x1
+ ldrb r4, [r3]
+ adds r1, 0x28
+ b _080AE80E
+ .align 2, 0
+_080AE7CC: .4byte gUnknown_02038570
+_080AE7D0:
+ ldr r1, _080AE7DC
+ lsls r2, 6
+ adds r3, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x28
+ b _080AE7EA
+ .align 2, 0
+_080AE7DC: .4byte gUnknown_02038570
+_080AE7E0:
+ ldr r1, _080AE7F8
+ lsls r2, 6
+ adds r3, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x29
+_080AE7EA:
+ ldrb r5, [r0]
+ subs r0, 0x1
+ ldrb r4, [r0]
+ adds r0, 0x2
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ b _080AE810
+ .align 2, 0
+_080AE7F8: .4byte gUnknown_02038570
+_080AE7FC:
+ ldr r0, _080AE828
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x2A
+ ldrb r5, [r3]
+ subs r3, 0x1
+ ldrb r4, [r3]
+ adds r1, 0x26
+_080AE80E:
+ ldrb r3, [r1]
+_080AE810:
+ adds r1, r2, r0
+ adds r1, 0x2B
+ adds r0, r4, r3
+ ldrb r1, [r1]
+ adds r0, r1
+ asrs r0, 1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE828: .4byte gUnknown_02038570
+ thumb_func_end sub_80AE770
+
+ thumb_func_start sub_80AE82C
+sub_80AE82C: @ 80AE82C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080AE854
+_080AE836:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80AE770
+ lsls r1, r4, 1
+ adds r1, r6
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AE836
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE854: .4byte gUnknown_02038670
+ thumb_func_end sub_80AE82C
+
+ thumb_func_start sub_80AE858
+sub_80AE858: @ 80AE858
+ push {r4,r5,lr}
+ ldr r0, _080AE8A0
+ bl LoadCompressedObjectPic
+ ldr r0, _080AE8A4
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080AE8A8
+ movs r1, 0x70
+ movs r2, 0x24
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080AE8AC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r5, r2, r4
+ ldrb r3, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ movs r3, 0x10
+ orrs r1, r3
+ strb r1, [r5, 0x5]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r1, _080AE8B0
+ str r1, [r2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE8A0: .4byte gUnknown_083CA4BC
+_080AE8A4: .4byte gContest2Pal
+_080AE8A8: .4byte gSpriteTemplate_83CA4A4
+_080AE8AC: .4byte gSprites
+_080AE8B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AE858
+
+ thumb_func_start sub_80AE8B4
+sub_80AE8B4: @ 80AE8B4
+ push {lr}
+ ldr r0, _080AE8F8
+ bl LoadCompressedObjectPic
+ ldr r0, _080AE8FC
+ bl LoadCompressedObjectPalette
+ ldr r0, _080AE900
+ movs r1, 0x60
+ movs r2, 0xA
+ movs r3, 0x1D
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AE904
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ movs r1, 0x3E
+ adds r1, r2
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r3, 0x4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ ldrh r1, [r2, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ strh r1, [r2, 0x2E]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE8F8: .4byte gUnknown_083CA4C4
+_080AE8FC: .4byte gUnknown_083CA4CC
+_080AE900: .4byte gUnknown_083CA4D4
+_080AE904: .4byte gSprites
+ thumb_func_end sub_80AE8B4
+
+ thumb_func_start unref_sub_80AE908
+unref_sub_80AE908: @ 80AE908
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _080AE9D4
+ mov r9, r0
+ ldr r1, _080AE9D8
+ mov r8, r1
+ ldrb r0, [r1]
+ lsls r0, 6
+ add r0, r9
+ ldrh r5, [r0]
+ lsls r6, r5, 3
+ ldr r0, _080AE9DC
+ adds r0, r6, r0
+ ldr r2, _080AE9E0
+ mov r10, r2
+ lsls r2, r5, 2
+ add r2, r10
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080AE9E4
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ ldr r0, _080AE9E8
+ adds r6, r0
+ ldr r0, [r6]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 6
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080AE9EC
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ add r1, r9
+ ldrh r1, [r1]
+ lsls r1, 2
+ add r1, r10
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x70
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080AE9F0
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r0, r3, r5
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x10
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r1, r3, r1
+ ldr r2, _080AE9F4
+ str r2, [r1]
+ adds r5, 0x10
+ adds r3, r5
+ ldr r1, _080AE9F8
+ str r1, [r3]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE9D4: .4byte gUnknown_02038570
+_080AE9D8: .4byte gUnknown_02038695
+_080AE9DC: .4byte gMonFrontPicTable
+_080AE9E0: .4byte gMonFrontPicCoords
+_080AE9E4: .4byte gUnknown_081FAF4C
+_080AE9E8: .4byte gMonPaletteTable
+_080AE9EC: .4byte gUnknown_02024E8C
+_080AE9F0: .4byte gSprites
+_080AE9F4: .4byte SpriteCallbackDummy
+_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18
+ thumb_func_end unref_sub_80AE908
+
+ thumb_func_start sub_80AE9FC
+sub_80AE9FC: @ 80AE9FC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ mov r8, r1
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80B2778
+ mov r9, r0
+ mov r5, r9
+ lsls r0, r5, 3
+ ldr r1, _080AEACC
+ adds r0, r1
+ ldr r1, _080AEAD0
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080AEAD4
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r6, 0
+ bl species_and_otid_get_pal
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r4, _080AEAD8
+ movs r0, 0x2
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8077E44
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ movs r1, 0x70
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080AEADC
+ mov r8, r0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ mov r0, r8
+ adds r4, r6, r0
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0x2
+ bl sub_8079E90
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080AEAE0
+ str r1, [r0]
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x32]
+ adds r0, r5, 0
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEAE8
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _080AEAE4
+ b _080AEAF0
+ .align 2, 0
+_080AEACC: .4byte gMonBackPicTable
+_080AEAD0: .4byte gMonBackPicCoords
+_080AEAD4: .4byte gUnknown_081FAF4C
+_080AEAD8: .4byte gUnknown_02024E8C
+_080AEADC: .4byte gSprites
+_080AEAE0: .4byte SpriteCallbackDummy
+_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18
+_080AEAE8:
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _080AEB14
+_080AEAF0:
+ str r1, [r0]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _080AEB18
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r0, r7, 0
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC
+_080AEB18: .4byte gSprites
+ thumb_func_end sub_80AE9FC
+
+ thumb_func_start sub_80AEB1C
+sub_80AEB1C: @ 80AEB1C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ beq _080AEB2A
+ movs r0, 0x1
+ b _080AEB2C
+_080AEB2A:
+ movs r0, 0
+_080AEB2C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEB1C
+
+ thumb_func_start sub_80AEB30
+sub_80AEB30: @ 80AEB30
+ push {lr}
+ ldr r0, _080AEB44
+ bl sub_80AEB4C
+ ldr r0, _080AEB48
+ bl sub_80AEB4C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEB44: .4byte 0x0600c000
+_080AEB48: .4byte 0x0600e000
+ thumb_func_end sub_80AEB30
+
+ thumb_func_start sub_80AEB4C
+sub_80AEB4C: @ 80AEB4C
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r2, r0, r1
+ ldr r1, _080AEB60
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080AEB64
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080AEB60: .4byte 0x040000d4
+_080AEB64: .4byte 0x80000140
+ thumb_func_end sub_80AEB4C
+
+ thumb_func_start sub_80AEB68
+sub_80AEB68: @ 80AEB68
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _080AEB90
+ ldr r1, _080AEB94
+ lsrs r0, 13
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080AEBD0
+ lsls r0, 2
+ ldr r1, _080AEB98
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AEB90: .4byte gContestEffects
+_080AEB94: .4byte gContestMoves
+_080AEB98: .4byte _080AEB9C
+ .align 2, 0
+_080AEB9C:
+ .4byte _080AEBC0
+ .4byte _080AEBC0
+ .4byte _080AEBC8
+ .4byte _080AEBC8
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBC0
+_080AEBC0:
+ ldr r0, _080AEBC4
+ b _080AEBD2
+ .align 2, 0
+_080AEBC4: .4byte 0x00009082
+_080AEBC8:
+ ldr r0, _080AEBCC
+ b _080AEBD2
+ .align 2, 0
+_080AEBCC: .4byte 0x00009088
+_080AEBD0:
+ ldr r0, _080AEBE8
+_080AEBD2:
+ lsls r1, r3, 12
+ movs r2, 0x90
+ lsls r2, 8
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEBE8: .4byte 0x00009086
+ thumb_func_end sub_80AEB68
+
+ thumb_func_start sub_80AEBEC
+sub_80AEBEC: @ 80AEBEC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080AEC74
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0x22
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x1F
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _080AEC78
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ ldr r1, _080AEC7C
+ cmp r0, 0
+ beq _080AEC34
+ adds r1, 0x5
+ cmp r0, 0x1
+ beq _080AEC34
+ adds r1, 0x5
+ cmp r0, 0x2
+ beq _080AEC34
+ adds r1, 0x40
+ cmp r0, 0x3
+ bne _080AEC34
+ subs r1, 0x20
+_080AEC34:
+ ldr r0, _080AEC74
+ mov r8, r0
+ ldr r6, _080AEC78
+ lsls r5, r4, 3
+ ldr r7, _080AEC80
+ ldr r0, _080AEC84
+ mov r9, r0
+ ldr r4, _080AEC88
+ ldr r3, _080AEC8C
+ movs r2, 0x4
+_080AEC48:
+ strh r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x10
+ strh r0, [r4]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080AEC48
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ bne _080AEC90
+ movs r0, 0
+ b _080AEC9C
+ .align 2, 0
+_080AEC74: .4byte gUnknown_03004210
+_080AEC78: .4byte gContestMoves
+_080AEC7C: .4byte 0x00004040
+_080AEC80: .4byte gContestEffects
+_080AEC84: .4byte gUnknown_083CADD4
+_080AEC88: .4byte 0x0600c816
+_080AEC8C: .4byte 0x0600c7d6
+_080AEC90:
+ ldrb r0, [r1, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_080AEC9C:
+ cmp r0, 0x8
+ bls _080AECA2
+ movs r0, 0x8
+_080AECA2:
+ movs r2, 0
+ ldr r1, _080AECB8
+ adds r4, r1, 0
+ adds r1, 0x23
+ adds r3, r1, 0
+ ldr r1, _080AECBC
+_080AECAE:
+ cmp r2, r0
+ bge _080AECC0
+ strh r4, [r1]
+ b _080AECC2
+ .align 2, 0
+_080AECB8: .4byte 0x00005012
+_080AECBC: .4byte 0x0600c7ea
+_080AECC0:
+ strh r3, [r1]
+_080AECC2:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080AECAE
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFF
+ bne _080AECDC
+ movs r0, 0
+ b _080AECE8
+_080AECDC:
+ ldrb r0, [r1, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_080AECE8:
+ cmp r0, 0x8
+ bls _080AECEE
+ movs r0, 0x8
+_080AECEE:
+ movs r2, 0
+ ldr r1, _080AED04
+ adds r4, r1, 0
+ adds r1, 0x22
+ adds r3, r1, 0
+ ldr r1, _080AED08
+_080AECFA:
+ cmp r2, r0
+ bge _080AED0C
+ strh r4, [r1]
+ b _080AED0E
+ .align 2, 0
+_080AED04: .4byte 0x00005014
+_080AED08: .4byte 0x0600c82a
+_080AED0C:
+ strh r3, [r1]
+_080AED0E:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080AECFA
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r9
+ ldr r1, [r0]
+ movs r2, 0xD9
+ lsls r2, 2
+ movs r0, 0x23
+ str r0, [sp]
+ mov r0, r8
+ movs r3, 0xB
+ bl sub_8003460
+ ldr r1, _080AED50
+ ldr r2, _080AED54
+ movs r0, 0x1F
+ str r0, [sp]
+ mov r0, r8
+ movs r3, 0x10
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AED50: .4byte gUnknown_083CC5A2
+_080AED54: .4byte 0x00000362
+ thumb_func_end sub_80AEBEC
+
+ thumb_func_start sub_80AED58
+sub_80AED58: @ 80AED58
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080AED78
+ movs r1, 0x1C
+ str r1, [sp]
+ movs r1, 0x28
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AED78: .4byte gUnknown_03004210
+ thumb_func_end sub_80AED58
+
+ thumb_func_start sub_80AED7C
+sub_80AED7C: @ 80AED7C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _080AEDD8
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AEDEC
+ cmp r6, 0
+ beq _080AEDEC
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80AEB68
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, r5, 6
+ ldr r1, _080AEDDC
+ adds r1, r3, r1
+ strh r0, [r1]
+ ldr r1, _080AEDE0
+ adds r1, r3, r1
+ adds r2, r0, 0x1
+ strh r2, [r1]
+ ldr r1, _080AEDE4
+ adds r2, r3, r1
+ adds r1, r0, 0
+ adds r1, 0x10
+ strh r1, [r2]
+ ldr r1, _080AEDE8
+ adds r3, r1
+ adds r0, 0x11
+ strh r0, [r3]
+ b _080AEE08
+ .align 2, 0
+_080AEDD8: .4byte gUnknown_02038696
+_080AEDDC: .4byte 0x0600c028
+_080AEDE0: .4byte 0x0600c02a
+_080AEDE4: .4byte 0x0600c068
+_080AEDE8: .4byte 0x0600c06a
+_080AEDEC:
+ lsls r1, r5, 6
+ ldr r0, _080AEE10
+ adds r0, r1, r0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _080AEE14
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r3, _080AEE18
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _080AEE1C
+ adds r1, r0
+ strh r2, [r1]
+_080AEE08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEE10: .4byte 0x0600c028
+_080AEE14: .4byte 0x0600c02a
+_080AEE18: .4byte 0x0600c068
+_080AEE1C: .4byte 0x0600c06a
+ thumb_func_end sub_80AED7C
+
+ thumb_func_start unref_sub_80AEE20
+unref_sub_80AEE20: @ 80AEE20
+ push {r4,lr}
+ movs r4, 0
+_080AEE24:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080AEE48
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ adds r1, r4, 0
+ bl sub_80AED7C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AEE24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEE48: .4byte 0x02019260
+ thumb_func_end unref_sub_80AEE20
+
+ thumb_func_start sub_80AEE4C
+sub_80AEE4C: @ 80AEE4C
+ ldr r0, _080AEE50
+ bx lr
+ .align 2, 0
+_080AEE50: .4byte 0x00002034
+ thumb_func_end sub_80AEE4C
+
+ thumb_func_start sub_80AEE54
+sub_80AEE54: @ 80AEE54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r5, r7, 3
+ subs r0, r5, r7
+ lsls r0, 2
+ ldr r1, _080AEE84
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ movs r2, 0x30
+ ands r2, r0
+ mov r10, r1
+ cmp r2, 0
+ bne _080AEE88
+ movs r0, 0
+ b _080AEF3C
+ .align 2, 0
+_080AEE84: .4byte 0x02019260
+_080AEE88:
+ ldr r0, _080AEEB0
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r2, 0x10
+ bne _080AEEF0
+ adds r0, r7, 0
+ bl sub_80AEE4C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r4, 0
+ adds r6, r5, 0
+ b _080AEEC4
+ .align 2, 0
+_080AEEB0: .4byte gUnknown_02038696
+_080AEEB4:
+ mov r1, r9
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r1, _080AEEE8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ adds r4, 0x1
+_080AEEC4:
+ subs r0, r6, r7
+ lsls r0, 2
+ ldr r1, _080AEEEC
+ adds r5, r0, r1
+ movs r0, 0xD
+ ldrsb r0, [r5, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r4
+ bgt _080AEEB4
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080AEF3A
+ movs r0, 0x5B
+ b _080AEF2C
+ .align 2, 0
+_080AEEE8: .4byte 0x0600c026
+_080AEEEC: .4byte 0x02019260
+_080AEEF0:
+ movs r1, 0
+ mov r8, r1
+ movs r4, 0x3
+ adds r6, r5, 0
+ b _080AEF0A
+_080AEEFA:
+ mov r1, r9
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r1, _080AEF4C
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ subs r4, 0x1
+_080AEF0A:
+ subs r0, r6, r7
+ lsls r0, 2
+ mov r1, r10
+ adds r5, r0, r1
+ movs r0, 0xD
+ ldrsb r0, [r5, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r4
+ blt _080AEEFA
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080AEF3A
+ movs r0, 0x26
+_080AEF2C:
+ bl PlaySE
+ ldrb r1, [r5, 0x10]
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x10]
+_080AEF3A:
+ movs r0, 0x1
+_080AEF3C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEF4C: .4byte 0x0600bfe6
+ thumb_func_end sub_80AEE54
+
+ thumb_func_start sub_80AEF50
+sub_80AEF50: @ 80AEF50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r5, 0
+_080AEF5A:
+ ldr r0, _080AEF80
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80AEE4C
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+ lsls r7, r5, 3
+ adds r2, r5, 0x1
+ b _080AEF92
+ .align 2, 0
+_080AEF80: .4byte gUnknown_02038696
+_080AEF84:
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r3, _080AEFE0
+ adds r0, r3
+ strh r6, [r0]
+ adds r4, 0x1
+_080AEF92:
+ subs r0, r7, r5
+ lsls r0, 2
+ ldr r1, _080AEFE4
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ str r2, [sp]
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ ldr r2, [sp]
+ cmp r4, r0
+ blt _080AEF84
+ movs r6, 0
+ cmp r4, 0x2
+ bgt _080AEFCE
+ lsls r0, r4, 6
+ ldr r1, _080AEFE0
+ adds r0, r1
+ mov r3, r8
+ lsls r1, r3, 6
+ adds r0, r1
+_080AEFC4:
+ strh r6, [r0]
+ adds r0, 0x40
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080AEFC4
+_080AEFCE:
+ adds r5, r2, 0
+ cmp r5, 0x3
+ ble _080AEF5A
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEFE0: .4byte 0x0600c026
+_080AEFE4: .4byte 0x02019260
+ thumb_func_end sub_80AEF50
+
+ thumb_func_start sub_80AEFE8
+sub_80AEFE8: @ 80AEFE8
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ cmp r1, 0x4
+ bhi _080AF02A
+ lsls r0, r1, 2
+ ldr r1, _080AF000
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AF000: .4byte _080AF004
+ .align 2, 0
+_080AF004:
+ .4byte _080AF018
+ .4byte _080AF01C
+ .4byte _080AF020
+ .4byte _080AF024
+ .4byte _080AF028
+_080AF018:
+ movs r0, 0x80
+ b _080AF02A
+_080AF01C:
+ movs r0, 0x84
+ b _080AF02A
+_080AF020:
+ movs r0, 0x86
+ b _080AF02A
+_080AF024:
+ movs r0, 0x88
+ b _080AF02A
+_080AF028:
+ movs r0, 0x82
+_080AF02A:
+ movs r1, 0x90
+ lsls r1, 8
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEFE8
+
+ thumb_func_start sub_80AF038
+sub_80AF038: @ 80AF038
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r5, 0x1
+ movs r4, 0
+ ldr r0, _080AF074
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ ldr r1, _080AF078
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, _080AF07C
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF06C
+ ldrb r0, [r2, 0xF]
+ cmp r0, 0
+ beq _080AF080
+_080AF06C:
+ adds r0, r3, 0
+ movs r1, 0
+ b _080AF0A6
+ .align 2, 0
+_080AF074: .4byte gUnknown_02038696
+_080AF078: .4byte 0x02019260
+_080AF07C: .4byte 0x00ff0003
+_080AF080:
+ ldrb r1, [r2, 0xC]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF090
+ adds r0, r3, 0
+ movs r1, 0x1
+ b _080AF0A6
+_080AF090:
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF0A2
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF0B0
+_080AF0A2:
+ adds r0, r3, 0
+ movs r1, 0x2
+_080AF0A6:
+ bl sub_80AEFE8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080AF0B2
+_080AF0B0:
+ movs r5, 0
+_080AF0B2:
+ cmp r5, 0
+ beq _080AF0EC
+ lsls r2, r6, 6
+ ldr r0, _080AF0DC
+ adds r0, r2, r0
+ strh r4, [r0]
+ ldr r0, _080AF0E0
+ adds r0, r2, r0
+ adds r1, r4, 0x1
+ strh r1, [r0]
+ ldr r0, _080AF0E4
+ adds r1, r2, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080AF0E8
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x11
+ strh r0, [r2]
+ b _080AF106
+ .align 2, 0
+_080AF0DC: .4byte 0x0600c028
+_080AF0E0: .4byte 0x0600c02a
+_080AF0E4: .4byte 0x0600c068
+_080AF0E8: .4byte 0x0600c06a
+_080AF0EC:
+ lsls r1, r6, 6
+ ldr r0, _080AF110
+ adds r0, r1, r0
+ strh r5, [r0]
+ ldr r0, _080AF114
+ adds r0, r1, r0
+ strh r5, [r0]
+ ldr r2, _080AF118
+ adds r0, r1, r2
+ strh r5, [r0]
+ ldr r0, _080AF11C
+ adds r1, r0
+ strh r5, [r1]
+_080AF106:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF110: .4byte 0x0600c028
+_080AF114: .4byte 0x0600c02a
+_080AF118: .4byte 0x0600c068
+_080AF11C: .4byte 0x0600c06a
+ thumb_func_end sub_80AF038
+
+ thumb_func_start sub_80AF120
+sub_80AF120: @ 80AF120
+ push {r4,lr}
+ movs r4, 0
+_080AF124:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80AF038
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AF124
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF120
+
+ thumb_func_start sub_80AF138
+sub_80AF138: @ 80AF138
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080AF158
+ movs r1, 0x11
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF158: .4byte gUnknown_03004210
+ thumb_func_end sub_80AF138
+
+ thumb_func_start sub_80AF15C
+sub_80AF15C: @ 80AF15C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF174
+ movs r0, 0
+ b _080AF1AA
+_080AF174:
+ ldr r0, _080AF190
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080AF198
+ adds r0, r4, 0
+ bl sub_81288F4
+ bl sub_8128944
+ lsls r0, 24
+ ldr r2, _080AF194
+ lsrs r0, 23
+ lsls r1, r4, 6
+ b _080AF1A2
+ .align 2, 0
+_080AF190: .4byte gUnknown_02038695
+_080AF194: .4byte gUnknown_02038570
+_080AF198:
+ ldr r2, _080AF1B0
+ ldr r0, _080AF1B4
+ ldrb r0, [r0]
+ lsls r0, 1
+ lsls r1, r5, 6
+_080AF1A2:
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+_080AF1AA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF1B0: .4byte gUnknown_02038570
+_080AF1B4: .4byte 0x02019204
+ thumb_func_end sub_80AF15C
+
+ thumb_func_start sub_80AF1B8
+sub_80AF1B8: @ 80AF1B8
+ push {r4,lr}
+ movs r4, 0
+_080AF1BC:
+ adds r0, r4, 0
+ bl sub_80AF15C
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _080AF1E0
+ adds r1, r2
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF1BC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF1E0: .4byte 0x02019260
+ thumb_func_end sub_80AF1B8
+
+ thumb_func_start sub_80AF1E4
+sub_80AF1E4: @ 80AF1E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _080AF1FC
+ adds r0, r5, 0
+ adds r0, 0xA
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080AF1FE
+_080AF1FC:
+ movs r3, 0xE
+_080AF1FE:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ ldr r1, _080AF21C
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ bne _080AF228
+ ldr r0, _080AF220
+ ldr r1, _080AF224
+ adds r2, r3, 0
+ bl PutWindowTilemap
+ b _080AF23A
+ .align 2, 0
+_080AF21C: .4byte 0x02019260
+_080AF220: .4byte gUnknown_020238CC
+_080AF224: .4byte gUnknownText_MissedTurn
+_080AF228:
+ ldr r0, _080AF270
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AF274
+ adds r1, r2
+ adds r2, r3, 0
+ bl PutWindowTilemap
+_080AF23A:
+ adds r0, r5, 0
+ bl sub_80AF2A0
+ ldr r0, _080AF278
+ ldr r1, _080AF270
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 18
+ movs r3, 0xAE
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ ldr r4, _080AF27C
+ lsls r5, 1
+ adds r3, r5, r4
+ ldrb r3, [r3]
+ adds r4, 0x1
+ adds r5, r4
+ ldrb r4, [r5]
+ str r4, [sp]
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF270: .4byte gUnknown_020238CC
+_080AF274: .4byte gMoveNames
+_080AF278: .4byte gUnknown_03004210
+_080AF27C: .4byte gUnknown_083CA318
+ thumb_func_end sub_80AF1E4
+
+ thumb_func_start unref_sub_80AF280
+unref_sub_80AF280: @ 80AF280
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080AF288:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80AF1E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF288
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AF280
+
+ thumb_func_start sub_80AF2A0
+sub_80AF2A0: @ 80AF2A0
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ ldr r4, _080AF2D8
+ ldr r1, _080AF2DC
+ lsrs r0, 23
+ adds r2, r0, r1
+ ldrb r2, [r2]
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ adds r0, r2, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF2D8: .4byte gUnknown_03004210
+_080AF2DC: .4byte gUnknown_083CA318
+ thumb_func_end sub_80AF2A0
+
+ thumb_func_start unref_sub_80AF2E0
+unref_sub_80AF2E0: @ 80AF2E0
+ push {r4,lr}
+ movs r4, 0
+_080AF2E4:
+ adds r0, r4, 0
+ bl sub_80AF2A0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF2E4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AF2E0
+
+ thumb_func_start sub_80AF2FC
+sub_80AF2FC: @ 80AF2FC
+ push {r4-r7,lr}
+ sub sp, 0x8
+ movs r4, 0
+ ldr r2, _080AF398
+_080AF304:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r0, 0x4]
+ adds r1, r3
+ strh r1, [r0, 0x4]
+ lsls r0, r4, 1
+ add r0, sp
+ strh r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF304
+ movs r4, 0
+_080AF326:
+ movs r2, 0x3
+ cmp r2, r4
+ bls _080AF354
+_080AF32C:
+ subs r5, r2, 0x1
+ lsls r0, r5, 1
+ mov r7, sp
+ adds r3, r7, r0
+ lsls r0, r2, 1
+ adds r2, r7, r0
+ ldrh r6, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AF34C
+ ldrh r0, [r2]
+ strh r6, [r2]
+ strh r0, [r3]
+_080AF34C:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bhi _080AF32C
+_080AF354:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080AF326
+ movs r4, 0
+ ldr r0, _080AF398
+ mov r12, r0
+ movs r7, 0x4
+ negs r7, r7
+ movs r6, 0x3
+_080AF36A:
+ movs r2, 0
+ lsls r0, r4, 3
+ adds r5, r4, 0x1
+ subs r0, r4
+ lsls r0, 2
+ mov r1, r12
+ adds r3, r0, r1
+ movs r4, 0x4
+ ldrsh r1, [r3, r4]
+_080AF37C:
+ lsls r0, r2, 1
+ add r0, sp
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ bne _080AF39C
+ ands r2, r6
+ ldrb r1, [r3, 0xB]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0xB]
+ b _080AF3A6
+ .align 2, 0
+_080AF398: .4byte 0x02019260
+_080AF39C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080AF37C
+_080AF3A6:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF36A
+ movs r0, 0x1
+ bl sub_80B0F28
+ bl sub_80B159C
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF2FC
+
+ thumb_func_start sub_80AF3C0
+sub_80AF3C0: @ 80AF3C0
+ push {lr}
+ ldr r2, _080AF3D0
+ adds r3, r2, 0
+_080AF3C6:
+ ldrh r0, [r2, 0x6]
+ cmp r0, 0
+ bne _080AF3D4
+ movs r1, 0x5
+ b _080AF3F2
+ .align 2, 0
+_080AF3D0: .4byte 0x02019260
+_080AF3D4:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r1, 0
+ cmp r0, 0
+ ble _080AF3F2
+ movs r1, 0x1
+ cmp r0, 0x1D
+ ble _080AF3F2
+ movs r1, 0x2
+ cmp r0, 0x3B
+ ble _080AF3F2
+ movs r1, 0x4
+ cmp r0, 0x4F
+ bgt _080AF3F2
+ movs r1, 0x3
+_080AF3F2:
+ strb r1, [r2, 0x1A]
+ adds r2, 0x1C
+ adds r0, r3, 0
+ adds r0, 0x54
+ cmp r2, r0
+ ble _080AF3C6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF3C0
+
+ thumb_func_start sub_80AF404
+sub_80AF404: @ 80AF404
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080AF42C
+ adds r2, r1, r0
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF428
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF430
+_080AF428:
+ movs r0, 0
+ b _080AF432
+ .align 2, 0
+_080AF42C: .4byte 0x02019260
+_080AF430:
+ movs r0, 0x1
+_080AF432:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF404
+
+ thumb_func_start sub_80AF438
+sub_80AF438: @ 80AF438
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r0, _080AF594
+ mov r10, r0
+ movs r1, 0
+ mov r12, r1
+ movs r0, 0x7
+ negs r0, r0
+ mov r9, r0
+ movs r1, 0x2
+ negs r1, r1
+ mov r8, r1
+_080AF458:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ mov r1, r10
+ adds r3, r0, r1
+ movs r0, 0
+ strh r0, [r3, 0x2]
+ strh r0, [r3]
+ mov r0, r12
+ strb r0, [r3, 0x12]
+ ldrb r2, [r3, 0xC]
+ movs r0, 0x6
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF48A
+ lsls r0, r2, 29
+ lsrs r0, 30
+ subs r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 1
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+_080AF48A:
+ mov r1, r12
+ strb r1, [r3, 0xE]
+ ldrb r0, [r3, 0x10]
+ mov r1, r8
+ ands r1, r0
+ mov r0, r12
+ strb r0, [r3, 0xF]
+ movs r0, 0x3
+ negs r0, r0
+ ands r1, r0
+ movs r6, 0x5
+ negs r6, r6
+ ands r1, r6
+ movs r7, 0x9
+ negs r7, r7
+ ands r1, r7
+ ldrb r0, [r3, 0xC]
+ mov r4, r8
+ ands r4, r0
+ strb r4, [r3, 0xC]
+ movs r0, 0xFF
+ strb r0, [r3, 0x13]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r3, 0x14]
+ subs r0, 0x30
+ ands r1, r0
+ strb r1, [r3, 0x10]
+ ldrb r2, [r3, 0x15]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ lsls r1, 2
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r8
+ ands r0, r1
+ strb r0, [r3, 0x15]
+ ldrb r0, [r3, 0x11]
+ movs r2, 0x4
+ negs r2, r2
+ ands r2, r0
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ strb r2, [r3, 0x11]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF500
+ adds r0, r4, 0
+ mov r1, r9
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3, 0xC]
+ adds r0, r2, 0
+ ands r0, r6
+ strb r0, [r3, 0x11]
+_080AF500:
+ ldrb r2, [r3, 0x11]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF518
+ ldrb r0, [r3, 0xB]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0xB]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r3, 0x11]
+_080AF518:
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x11]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AF458
+ movs r5, 0
+ mov r6, r10
+ mov r9, r5
+ adds r7, r6, 0
+ subs r7, 0x5C
+ movs r0, 0x18
+ negs r0, r0
+ adds r0, r6
+ mov r8, r0
+_080AF53E:
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ adds r4, r6
+ ldrh r2, [r4, 0x6]
+ strh r2, [r4, 0x8]
+ lsls r1, r5, 1
+ ldrb r0, [r7, 0x1]
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r6, 0
+ subs r0, 0x40
+ adds r0, r1
+ strh r2, [r0]
+ ldrh r0, [r4, 0x6]
+ bl contest_get_move_excitement
+ ldrb r1, [r7, 0x1]
+ lsls r1, 2
+ adds r1, r5, r1
+ add r1, r8
+ strb r0, [r1]
+ mov r1, r9
+ strh r1, [r4, 0x6]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AF53E
+ ldr r2, _080AF598
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF594: .4byte 0x02019260
+_080AF598: .4byte 0x02019328
+ thumb_func_end sub_80AF438
+
+ thumb_func_start sub_80AF59C
+sub_80AF59C: @ 80AF59C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080AF5C4
+ adds r2, r1, r0
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF5C0
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF5C8
+_080AF5C0:
+ movs r0, 0x1
+ b _080AF5CA
+ .align 2, 0
+_080AF5C4: .4byte 0x02019260
+_080AF5C8:
+ movs r0, 0
+_080AF5CA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF59C
+
+ thumb_func_start unref_sub_80AF5D0
+unref_sub_80AF5D0: @ 80AF5D0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r1, _080AF5E8
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080AF600
+_080AF5E2:
+ movs r0, 0x1
+ b _080AF626
+ .align 2, 0
+_080AF5E8: .4byte gUnknown_02038695
+_080AF5EC:
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x1
+ b _080AF5F6
+_080AF5F2:
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x2
+_080AF5F6:
+ orrs r0, r1
+ strb r0, [r4, 0x6]
+ b _080AF5E2
+_080AF5FC:
+ strb r3, [r2]
+ b _080AF5E2
+_080AF600:
+ movs r0, 0
+ ldr r4, _080AF62C
+ adds r5, r4, 0x2
+_080AF606:
+ cmp r3, 0x3
+ beq _080AF5EC
+ cmp r3, 0x4
+ beq _080AF5F2
+ adds r2, r0, r5
+ ldrb r1, [r2]
+ cmp r1, r3
+ beq _080AF5E2
+ cmp r1, 0xFF
+ beq _080AF5FC
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080AF606
+ movs r0, 0
+_080AF626:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF62C: .4byte 0x02019204
+ thumb_func_end unref_sub_80AF5D0
+
+ thumb_func_start sub_80AF630
+sub_80AF630: @ 80AF630
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80AF688
+ ldr r1, _080AF65C
+ lsls r4, 1
+ adds r1, r4, r1
+ strh r0, [r1]
+ ldr r2, _080AF660
+ adds r2, r4, r2
+ ldr r1, _080AF664
+ adds r4, r1
+ ldrh r4, [r4]
+ adds r0, r4
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF65C: .4byte gUnknown_02038688
+_080AF660: .4byte gUnknown_02038678
+_080AF664: .4byte gUnknown_02038670
+ thumb_func_end sub_80AF630
+
+ thumb_func_start sub_80AF668
+sub_80AF668: @ 80AF668
+ push {r4,lr}
+ movs r4, 0
+_080AF66C:
+ adds r0, r4, 0
+ bl sub_80AF630
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF66C
+ bl sub_80AF6A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF668
+
+ thumb_func_start sub_80AF688
+sub_80AF688: @ 80AF688
+ lsls r0, 24
+ ldr r1, _080AF69C
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 17
+ asrs r0, 16
+ bx lr
+ .align 2, 0
+_080AF69C: .4byte gUnknown_02038680
+ thumb_func_end sub_80AF688
+
+ thumb_func_start sub_80AF6A0
+sub_80AF6A0: @ 80AF6A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x70
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x8
+ str r1, [sp, 0x64]
+ mov r3, sp
+ adds r3, 0xC
+ str r3, [sp, 0x68]
+ mov r6, sp
+ adds r6, 0x14
+ str r6, [sp, 0x6C]
+ mov r4, sp
+_080AF6CE:
+ bl Random
+ strh r0, [r4]
+ movs r2, 0
+ cmp r2, r9
+ bge _080AF70C
+ mov r1, sp
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080AF6F0
+ subs r4, 0x2
+ movs r7, 0x1
+ negs r7, r7
+ add r9, r7
+ b _080AF70C
+_080AF6F0:
+ adds r2, 0x1
+ cmp r2, r9
+ bge _080AF70C
+ lsls r0, r2, 1
+ mov r3, sp
+ adds r1, r3, r0
+ ldrh r0, [r4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080AF6F0
+ subs r4, 0x2
+ movs r6, 0x1
+ negs r6, r6
+ add r9, r6
+_080AF70C:
+ adds r4, 0x2
+ movs r7, 0x1
+ add r9, r7
+ mov r0, r9
+ cmp r0, 0x3
+ ble _080AF6CE
+ movs r1, 0
+ mov r9, r1
+ mov r4, sp
+ ldr r6, _080AF81C
+ ldr r2, [sp, 0x64]
+ ldr r5, _080AF820
+ ldr r3, [sp, 0x68]
+_080AF726:
+ mov r7, r9
+ lsls r1, r7, 4
+ movs r7, 0
+ ldrsh r0, [r6, r7]
+ str r0, [r2]
+ movs r7, 0
+ ldrsh r0, [r5, r7]
+ str r0, [r3]
+ ldrh r0, [r4]
+ str r0, [r2, 0x8]
+ ldr r0, [sp, 0x6C]
+ adds r1, r0, r1
+ mov r7, r9
+ str r7, [r1]
+ adds r4, 0x2
+ adds r6, 0x2
+ adds r2, 0x10
+ adds r5, 0x2
+ adds r3, 0x10
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ ble _080AF726
+ movs r3, 0
+ mov r9, r3
+_080AF75A:
+ movs r4, 0x3
+ cmp r4, r9
+ ble _080AF7E4
+ add r7, sp, 0x48
+ ldr r6, [sp, 0x68]
+ str r6, [sp, 0x58]
+ ldr r0, [sp, 0x64]
+ adds r0, 0x8
+ str r0, [sp, 0x5C]
+ ldr r1, [sp, 0x6C]
+ str r1, [sp, 0x60]
+_080AF770:
+ subs r3, r4, 0x1
+ mov r10, r3
+ mov r0, r10
+ adds r1, r4, 0
+ ldr r2, [sp, 0x64]
+ bl sub_80AF828
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF7DE
+ mov r6, r10
+ lsls r2, r6, 4
+ ldr r0, [sp, 0x64]
+ adds r3, r0, r2
+ ldr r0, [r3]
+ str r0, [sp, 0x48]
+ ldr r1, [sp, 0x58]
+ adds r6, r1, r2
+ ldr r0, [r6]
+ str r0, [r7, 0x4]
+ ldr r0, [sp, 0x5C]
+ adds r0, r2
+ mov r8, r0
+ ldr r0, [r0]
+ str r0, [r7, 0x8]
+ ldr r1, [sp, 0x60]
+ adds r2, r1, r2
+ ldr r0, [r2]
+ str r0, [r7, 0xC]
+ lsls r1, r4, 4
+ ldr r0, [sp, 0x64]
+ adds r5, r0, r1
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r3, [sp, 0x58]
+ adds r4, r3, r1
+ ldr r0, [r4]
+ str r0, [r6]
+ ldr r6, [sp, 0x5C]
+ adds r3, r6, r1
+ ldr r0, [r3]
+ mov r6, r8
+ str r0, [r6]
+ ldr r0, [sp, 0x60]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, [sp, 0x48]
+ str r0, [r5]
+ ldr r0, [r7, 0x4]
+ str r0, [r4]
+ ldr r0, [r7, 0x8]
+ str r0, [r3]
+ ldr r0, [r7, 0xC]
+ str r0, [r1]
+_080AF7DE:
+ mov r4, r10
+ cmp r4, r9
+ bgt _080AF770
+_080AF7E4:
+ movs r1, 0x1
+ add r9, r1
+ mov r3, r9
+ cmp r3, 0x2
+ ble _080AF75A
+ movs r6, 0
+ mov r9, r6
+ ldr r2, _080AF824
+ ldr r1, [sp, 0x6C]
+_080AF7F6:
+ ldr r0, [r1]
+ adds r0, r2
+ mov r7, r9
+ strb r7, [r0]
+ adds r1, 0x10
+ movs r0, 0x1
+ add r9, r0
+ mov r3, r9
+ cmp r3, 0x3
+ ble _080AF7F6
+ add sp, 0x70
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF81C: .4byte gUnknown_02038678
+_080AF820: .4byte gUnknown_02038670
+_080AF824: .4byte gUnknown_02038690
+ thumb_func_end sub_80AF6A0
+
+ thumb_func_start sub_80AF828
+sub_80AF828: @ 80AF828
+ push {lr}
+ lsls r0, 4
+ adds r0, r2
+ lsls r1, 4
+ adds r3, r1, r2
+ ldr r2, [r0]
+ ldr r1, [r3]
+ cmp r2, r1
+ blt _080AF858
+ cmp r2, r1
+ bgt _080AF84A
+ ldr r2, [r0, 0x4]
+ ldr r1, [r3, 0x4]
+ cmp r2, r1
+ blt _080AF858
+ cmp r2, r1
+ ble _080AF84E
+_080AF84A:
+ movs r2, 0
+ b _080AF85A
+_080AF84E:
+ ldr r1, [r0, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r2, 0
+ cmp r1, r0
+ bge _080AF85A
+_080AF858:
+ movs r2, 0x1
+_080AF85A:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF828
+
+ thumb_func_start sub_80AF860
+sub_80AF860: @ 80AF860
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080AF88C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AF890
+ strh r1, [r0]
+ bl sub_80AF138
+ ldr r0, _080AF894
+ ldr r1, _080AF898
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF88C: .4byte gUnknown_030042A0
+_080AF890: .4byte gUnknown_03004280
+_080AF894: .4byte gMenuWindow
+_080AF898: .4byte gUnknownText_LinkStandbyAndWinner
+ thumb_func_end sub_80AF860
+
+ thumb_func_start unref_sub_80AF89C
+unref_sub_80AF89C: @ 80AF89C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r2, r3, 2
+ ldr r0, _080AF940
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r0, _080AF944
+ movs r1, 0x14
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80AFB74
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ asrs r6, 16
+ adds r4, r6
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80AFB74
+ adds r4, r0, 0
+ subs r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ bl sub_80AFB40
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080AF948
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ add r0, r8
+ strh r0, [r1, 0xC]
+ mov r0, r9
+ strh r0, [r1, 0xE]
+ cmp r6, 0
+ bge _080AF932
+ mov r0, r9
+ bl nullsub_19
+_080AF932:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF940: .4byte 0x02019338
+_080AF944: .4byte sub_80AF94C
+_080AF948: .4byte gTasks
+ thumb_func_end unref_sub_80AF89C
+
+ thumb_func_start sub_80AF94C
+sub_80AF94C: @ 80AF94C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AF988
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xE]
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ bne _080AF990
+ adds r0, r5, 0
+ bl nullsub_19
+ adds r0, r4, 0
+ bl DestroyTask
+ lsls r1, r5, 2
+ ldr r0, _080AF98C
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ b _080AFA56
+ .align 2, 0
+_080AF988: .4byte gTasks
+_080AF98C: .4byte 0x02019338
+_080AF990:
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080AFA56
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ cmp r1, 0
+ bge _080AF9BC
+ ldrh r0, [r2, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x8]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+ movs r0, 0x16
+ bl PlaySE
+ b _080AF9D0
+_080AF9BC:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xA]
+ movs r0, 0x15
+ bl PlaySE
+_080AF9D0:
+ ldr r3, _080AFA00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 3
+ adds r0, r2, r3
+ ldrh r1, [r0, 0xC]
+ ldr r0, _080AFA04
+ cmp r1, r0
+ beq _080AFA38
+ adds r0, r3, r2
+ adds r0, 0xC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 5
+ adds r1, 0x93
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r2, _080AFA08
+ adds r1, r2
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ b _080AFA56
+ .align 2, 0
+_080AFA00: .4byte gTasks
+_080AFA04: .4byte 0x0000ffff
+_080AFA08: .4byte 0x0600c000
+_080AFA0C:
+ adds r0, r2, r3
+ lsls r1, 1
+ adds r1, 0xE
+ adds r0, r1
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 5
+ adds r1, 0x93
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r7, _080AFA34
+ adds r1, r7
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080AFA56
+ .align 2, 0
+_080AFA34: .4byte 0x0600c000
+_080AFA38:
+ movs r1, 0
+ adds r3, 0x8
+_080AFA3C:
+ adds r0, r1, 0x4
+ lsls r0, 1
+ adds r0, r2
+ adds r4, r0, r3
+ movs r7, 0
+ ldrsh r0, [r4, r7]
+ cmp r0, 0
+ blt _080AFA0C
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080AFA3C
+_080AFA56:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF94C
+
+ thumb_func_start sub_80AFA5C
+sub_80AFA5C: @ 80AFA5C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ ldr r0, _080AFAAC
+ mov r12, r0
+ mov r4, sp
+ movs r6, 0
+ ldr r2, _080AFAB0
+ ldr r5, _080AFAB4
+_080AFA6E:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 5
+ adds r0, r1, 0
+ adds r0, 0x56
+ lsls r0, 1
+ add r0, r12
+ strh r6, [r4]
+ mov r7, sp
+ str r7, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x76
+ lsls r1, 1
+ add r1, r12
+ strh r6, [r4]
+ str r7, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080AFA6E
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFAAC: .4byte 0x0600c000
+_080AFAB0: .4byte 0x040000d4
+_080AFAB4: .4byte 0x81000008
+ thumb_func_end sub_80AFA5C
+
+ thumb_func_start unref_sub_80AFAB8
+unref_sub_80AFAB8: @ 80AFAB8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80AFB74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080AFAF4
+ cmp r4, 0
+ beq _080AFAE0
+ ldr r2, _080AFAF8
+ cmp r4, 0x1
+ beq _080AFAE0
+ ldr r2, _080AFAFC
+ cmp r4, 0x2
+ bne _080AFAE0
+ ldr r2, _080AFB00
+_080AFAE0:
+ movs r1, 0
+ lsls r3, r4, 2
+ movs r6, 0
+_080AFAE6:
+ cmp r1, r5
+ bcs _080AFB04
+ lsls r0, r1, 1
+ add r0, sp
+ strh r2, [r0]
+ b _080AFB0A
+ .align 2, 0
+_080AFAF4: .4byte 0x000050a2
+_080AFAF8: .4byte 0x000060a2
+_080AFAFC: .4byte 0x000080a2
+_080AFB00: .4byte 0x000070a2
+_080AFB04:
+ lsls r0, r1, 1
+ add r0, sp
+ strh r6, [r0]
+_080AFB0A:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x8
+ bls _080AFAE6
+ adds r0, r3, r4
+ lsls r0, 6
+ ldr r1, _080AFB34
+ adds r0, r1
+ ldr r1, _080AFB38
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080AFB3C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFB34: .4byte 0x0600c128
+_080AFB38: .4byte 0x040000d4
+_080AFB3C: .4byte 0x80000009
+ thumb_func_end unref_sub_80AFAB8
+
+ thumb_func_start sub_80AFB40
+sub_80AFB40: @ 80AFB40
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AFB64
+ cmp r0, 0
+ beq _080AFB5A
+ ldr r1, _080AFB68
+ cmp r0, 0x1
+ beq _080AFB5A
+ ldr r1, _080AFB6C
+ cmp r0, 0x2
+ bne _080AFB5A
+ ldr r1, _080AFB70
+_080AFB5A:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AFB64: .4byte 0x00005011
+_080AFB68: .4byte 0x00006011
+_080AFB6C: .4byte 0x00008011
+_080AFB70: .4byte 0x00007011
+ thumb_func_end sub_80AFB40
+
+ thumb_func_start sub_80AFB74
+sub_80AFB74: @ 80AFB74
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r2, r0, 24
+ cmp r2, 0x10
+ ble _080AFB8E
+ movs r1, 0x10
+ b _080AFB98
+_080AFB8E:
+ movs r0, 0x10
+ negs r0, r0
+ cmp r2, r0
+ bge _080AFB98
+ movs r1, 0xF0
+_080AFB98:
+ lsls r0, r1, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AFB74
+
+ thumb_func_start sub_80AFBA0
+sub_80AFBA0: @ 80AFBA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r2, r7, 2
+ ldr r0, _080AFC30
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r0, _080AFC34
+ movs r1, 0x14
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ bl sub_80AFB74
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r5, r0
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ bl sub_80AFB74
+ lsls r4, 24
+ asrs r4, 24
+ subs r0, r4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0
+ bl sub_80AFB40
+ ldr r2, _080AFC38
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r1, r0, r2
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080AFC14
+ negs r0, r4
+_080AFC14:
+ strh r0, [r1, 0x8]
+ lsls r0, r5, 24
+ asrs r0, 24
+ strh r0, [r1, 0xA]
+ cmp r4, 0
+ bgt _080AFC28
+ cmp r4, 0
+ bne _080AFC3C
+ cmp r0, 0
+ ble _080AFC3C
+_080AFC28:
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080AFC4A
+ .align 2, 0
+_080AFC30: .4byte 0x02019338
+_080AFC34: .4byte sub_80AFC74
+_080AFC38: .4byte gTasks
+_080AFC3C:
+ ldr r2, _080AFC6C
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080AFC70
+ strh r1, [r0, 0xC]
+_080AFC4A:
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r2
+ strh r7, [r0, 0xE]
+ mov r1, r8
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080AFC60
+ adds r0, r7, 0
+ bl nullsub_19
+_080AFC60:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AFC6C: .4byte gTasks
+_080AFC70: .4byte 0x0000ffff
+ thumb_func_end sub_80AFBA0
+
+ thumb_func_start sub_80AFC74
+sub_80AFC74: @ 80AFC74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _080AFCD4
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r7, [r4, 0xE]
+ ldrh r3, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bgt _080AFCA6
+ b _080AFE1C
+_080AFCA6:
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r2, [r4, 0xA]
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ bne _080AFCDC
+ adds r0, r7, 0
+ bl nullsub_19
+ mov r0, r8
+ bl DestroyTask
+ lsls r1, r7, 2
+ ldr r0, _080AFCD8
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ b _080AFE1C
+ .align 2, 0
+_080AFCD4: .4byte gTasks
+_080AFCD8: .4byte 0x02019338
+_080AFCDC:
+ cmp r3, 0
+ bne _080AFD28
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFCFA
+ adds r0, r7, 0
+ bl sub_80AFB40
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ b _080AFD08
+_080AFCFA:
+ adds r0, r7, 0
+ bl sub_80AFB40
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+_080AFD08:
+ strh r0, [r4, 0xA]
+ ldr r1, _080AFD24
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r2, r1, 0x1
+ strh r2, [r0, 0x8]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ b _080AFD94
+ .align 2, 0
+_080AFD24: .4byte gTasks
+_080AFD28:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080AFD62
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFD50
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ adds r0, r7, 0
+ bl sub_80AFB40
+ adds r0, 0x2
+ b _080AFD90
+_080AFD50:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ b _080AFD94
+_080AFD62:
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFD7C
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ b _080AFD94
+_080AFD7C:
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ adds r0, r7, 0
+ bl sub_80AFB40
+_080AFD90:
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080AFD94:
+ mov r10, r5
+ cmp r5, 0x7
+ bls _080AFDA2
+ adds r0, r5, 0
+ adds r0, 0x18
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080AFDA2:
+ mov r0, sp
+ strh r6, [r0]
+ ldr r0, _080AFDE8
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, 0x56
+ adds r1, r5, r1
+ lsls r1, 1
+ ldr r0, _080AFDEC
+ adds r1, r0
+ ldr r2, _080AFDF0
+ mov r0, sp
+ bl CpuSet
+ mov r2, r9
+ cmp r2, 0
+ ble _080AFDFC
+ movs r0, 0x60
+ bl PlaySE
+ ldr r4, _080AFDF4
+ adds r0, r4, 0
+ bl m4aMPlayImmInit
+ ldr r1, _080AFDF8
+ mov r3, r10
+ lsls r2, r3, 24
+ asrs r2, 16
+ adds r0, r4, 0
+ bl m4aMPlayPitchControl
+ b _080AFE02
+ .align 2, 0
+_080AFDE8: .4byte gUnknown_02038696
+_080AFDEC: .4byte 0x0600c000
+_080AFDF0: .4byte 0x01000001
+_080AFDF4: .4byte gMPlay_SE1
+_080AFDF8: .4byte 0x0000ffff
+_080AFDFC:
+ movs r0, 0x16
+ bl PlaySE
+_080AFE02:
+ cmp r5, 0
+ bne _080AFE1C
+ cmp r6, 0
+ bne _080AFE1C
+ ldr r0, _080AFE2C
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ negs r0, r0
+ strh r0, [r1, 0xC]
+_080AFE1C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFE2C: .4byte gTasks
+ thumb_func_end sub_80AFC74
+
+ thumb_func_start sub_80AFE30
+sub_80AFE30: @ 80AFE30
+ push {r4,r5,lr}
+ ldr r0, _080AFE64
+ bl LoadSpriteSheet
+ movs r4, 0
+ ldr r5, _080AFE68
+_080AFE3C:
+ ldr r0, _080AFE6C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r2, [r0]
+ ldr r0, _080AFE70
+ movs r1, 0xB4
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r1, r4, 2
+ ldr r2, _080AFE74
+ adds r1, r2
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AFE3C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFE64: .4byte gUnknown_083CA350
+_080AFE68: .4byte gUnknown_083CA338
+_080AFE6C: .4byte gUnknown_02038696
+_080AFE70: .4byte gSpriteTemplate_83CA3AC
+_080AFE74: .4byte 0x02019338
+ thumb_func_end sub_80AFE30
+
+ thumb_func_start sub_80AFE78
+sub_80AFE78: @ 80AFE78
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, r6, 2
+ ldr r3, _080AFEB0
+ adds r2, r3
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r7, [r2]
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ subs r3, 0xD8
+ adds r0, r3
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 17
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x38
+ ble _080AFEB4
+ movs r5, 0x38
+ b _080AFEBA
+ .align 2, 0
+_080AFEB0: .4byte 0x02019338
+_080AFEB4:
+ cmp r0, 0
+ bge _080AFEBA
+ movs r5, 0
+_080AFEBA:
+ ldr r2, _080AFEEC
+ lsls r3, r7, 4
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ strh r6, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r5, 0x24
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080AFEF0
+ movs r0, 0x1
+ b _080AFEF2
+ .align 2, 0
+_080AFEEC: .4byte gSprites
+_080AFEF0:
+ ldr r0, _080AFF08
+_080AFEF2:
+ strh r0, [r4, 0x32]
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080AFF0C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFF08: .4byte 0x0000ffff
+_080AFF0C: .4byte sub_80AFF60
+ thumb_func_end sub_80AFE78
+
+ thumb_func_start sub_80AFF10
+sub_80AFF10: @ 80AFF10
+ push {r4,lr}
+ movs r4, 0
+_080AFF14:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80AFE78
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AFF14
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFF10
+
+ thumb_func_start sub_80AFF28
+sub_80AFF28: @ 80AFF28
+ push {r4,lr}
+ movs r3, 0
+ ldr r2, _080AFF54
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AFF4C
+ movs r4, 0x1
+_080AFF3A:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _080AFF4C
+ ldrb r1, [r2, 0x2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFF3A
+_080AFF4C:
+ cmp r3, 0x4
+ beq _080AFF58
+ movs r0, 0
+ b _080AFF5A
+ .align 2, 0
+_080AFF54: .4byte 0x02019338
+_080AFF58:
+ movs r0, 0x1
+_080AFF5A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AFF28
+
+ thumb_func_start sub_80AFF60
+sub_80AFF60: @ 80AFF60
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ movs r4, 0x30
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ bne _080AFF94
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ ldr r0, _080AFF8C
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ ldr r0, _080AFF90
+ str r0, [r3, 0x1C]
+ b _080AFF9A
+ .align 2, 0
+_080AFF8C: .4byte 0x02019338
+_080AFF90: .4byte SpriteCallbackDummy
+_080AFF94:
+ ldrh r0, [r3, 0x32]
+ adds r0, r2, r0
+ strh r0, [r3, 0x24]
+_080AFF9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFF60
+
+ thumb_func_start sub_80AFFA0
+sub_80AFFA0: @ 80AFFA0
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r6, _080AFFD0
+ ldr r5, _080AFFD4
+ ldr r3, _080AFFD8
+ ldr r4, _080AFFDC
+_080AFFAC:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ strh r0, [r1, 0x22]
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080AFFAC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFFD0: .4byte gSprites
+_080AFFD4: .4byte gUnknown_083CA338
+_080AFFD8: .4byte 0x02019338
+_080AFFDC: .4byte gUnknown_02038696
+ thumb_func_end sub_80AFFA0
+
+ thumb_func_start sub_80AFFE0
+sub_80AFFE0: @ 80AFFE0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r6, _080B0008
+ ldr r4, _080B000C
+ ldr r2, _080B0010
+_080AFFEE:
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080B0024
+ cmp r5, 0
+ bne _080B0014
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0xB4
+ b _080B0022
+ .align 2, 0
+_080B0008: .4byte gUnknown_02038696
+_080B000C: .4byte gSprites
+_080B0010: .4byte 0x02019338
+_080B0014:
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x80
+ lsls r0, 1
+_080B0022:
+ strh r0, [r1, 0x20]
+_080B0024:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080AFFEE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFFE0
+
+ thumb_func_start sub_80B0034
+sub_80B0034: @ 80B0034
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080B00A8
+ bl LoadSpritePalette
+ movs r5, 0
+ ldr r0, _080B00AC
+ mov r8, r0
+ ldr r7, _080B00B0
+ movs r6, 0
+_080B004A:
+ lsls r0, r5, 3
+ ldr r1, _080B00B4
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ ldr r0, _080B00B8
+ adds r0, r6, r0
+ ldr r1, _080B00BC
+ adds r1, r5, r1
+ ldrb r1, [r1]
+ add r1, r8
+ ldrb r2, [r1]
+ movs r1, 0xCC
+ movs r3, 0
+ bl CreateSprite
+ lsls r4, r5, 2
+ ldr r1, _080B00C0
+ adds r4, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _080B00C4
+ bl SetSubspriteTables
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r6, 0x18
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B004A
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B00A8: .4byte gUnknown_083CA3E4
+_080B00AC: .4byte gUnknown_083CA33C
+_080B00B0: .4byte gSprites
+_080B00B4: .4byte gUnknown_083CA3C4
+_080B00B8: .4byte gSpriteTemplate_83CA3F4
+_080B00BC: .4byte gUnknown_02038696
+_080B00C0: .4byte 0x02019338
+_080B00C4: .4byte gUnknown_083CA464
+ thumb_func_end sub_80B0034
+
+ thumb_func_start sub_80B00C8
+sub_80B00C8: @ 80B00C8
+ push {lr}
+ ldr r0, _080B0104
+ bl LoadCompressedObjectPic
+ ldr r0, _080B0108
+ bl LoadSpritePalette
+ ldr r0, _080B010C
+ movs r1, 0x1E
+ movs r2, 0x2C
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B0110
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ ldr r1, _080B0114
+ adds r1, 0x58
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0104: .4byte gUnknown_083CA46C
+_080B0108: .4byte gUnknown_083CA474
+_080B010C: .4byte gSpriteTemplate_83CA484
+_080B0110: .4byte gSprites
+_080B0114: .4byte 0x02019204
+ thumb_func_end sub_80B00C8
+
+ thumb_func_start nullsub_18
+nullsub_18: @ 80B0118
+ bx lr
+ thumb_func_end nullsub_18
+
+ thumb_func_start unref_sub_80B011C
+unref_sub_80B011C: @ 80B011C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080B0198
+ bl LoadCompressedObjectPic
+ movs r4, 0
+ ldr r5, _080B019C
+_080B012C:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadCompressedObjectPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B012C
+ movs r4, 0
+ ldr r5, _080B01A0
+ adds r0, r5, 0x1
+ mov r8, r0
+ ldr r7, _080B01A4
+ ldr r6, _080B01A8
+_080B014A:
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 3
+ ldr r1, _080B01AC
+ adds r0, r1
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ movs r2, 0x3E
+ adds r2, r1
+ mov r12, r2
+ ldrb r2, [r2]
+ movs r3, 0x4
+ orrs r2, r3
+ mov r3, r12
+ strb r2, [r3]
+ strh r4, [r1, 0x2E]
+ adds r1, r4, r6
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B014A
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0198: .4byte gUnknown_083CC3AC
+_080B019C: .4byte gUnknown_083CC3B4
+_080B01A0: .4byte gUnknown_083CA330
+_080B01A4: .4byte gSprites
+_080B01A8: .4byte 0x0201920d
+_080B01AC: .4byte gSpriteTemplate_83CC454
+ thumb_func_end unref_sub_80B011C
+
+ thumb_func_start unref_sub_80B01B0
+unref_sub_80B01B0: @ 80B01B0
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, _080B01D4
+ ldr r4, _080B01D8
+ ldr r3, _080B01DC
+_080B01BA:
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B01BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B01D4: .4byte 0x0201920d
+_080B01D8: .4byte gSprites + 0x1C
+_080B01DC: .4byte ObjectCB_SwitchPocketRotatingBallInit
+ thumb_func_end unref_sub_80B01B0
+
+ thumb_func_start unref_sub_80B01E0
+unref_sub_80B01E0: @ 80B01E0
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r2, _080B0224
+ ldr r4, _080B0228
+ ldrb r1, [r4, 0x9]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080B022C
+ cmp r1, r0
+ bne _080B021A
+ adds r5, r4, 0
+ adds r5, 0x9
+ adds r4, r1, 0
+_080B0202:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _080B021A
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _080B0202
+_080B021A:
+ cmp r3, 0x4
+ beq _080B0230
+ movs r0, 0
+ b _080B0232
+ .align 2, 0
+_080B0224: .4byte gSprites
+_080B0228: .4byte 0x02019204
+_080B022C: .4byte SpriteCallbackDummy
+_080B0230:
+ movs r0, 0x1
+_080B0232:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80B01E0
+
+ thumb_func_start ObjectCB_SwitchPocketRotatingBallInit
+ObjectCB_SwitchPocketRotatingBallInit: @ 80B0238
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0268
+ ldr r0, _080B0264
+ b _080B0272
+ .align 2, 0
+_080B0264: .4byte sub_80B02A8
+_080B0268:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080B027C
+_080B0272:
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B027C: .4byte sub_80B0280
+ thumb_func_end ObjectCB_SwitchPocketRotatingBallInit
+
+ thumb_func_start sub_80B0280
+sub_80B0280: @ 80B0280
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B02A0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B02A4
+ str r0, [r3, 0x1C]
+_080B02A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B02A4: .4byte sub_80B02A8
+ thumb_func_end sub_80B0280
+
+ thumb_func_start sub_80B02A8
+sub_80B02A8: @ 80B02A8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080B02EC
+ adds r0, r1
+ ldrb r1, [r0, 0xB]
+ lsls r1, 30
+ lsrs r1, 30
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080B02F0
+ str r0, [r4, 0x1C]
+ movs r0, 0x18
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B02EC: .4byte 0x02019260
+_080B02F0: .4byte sub_80B02F4
+ thumb_func_end sub_80B02A8
+
+ thumb_func_start sub_80B02F4
+sub_80B02F4: @ 80B02F4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0318
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, _080B0320
+ str r0, [r4, 0x1C]
+_080B0318:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0320: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80B02F4
+
+ thumb_func_start sub_80B0324
+sub_80B0324: @ 80B0324
+ push {r4,lr}
+ ldr r0, _080B035C
+ movs r1, 0x1E
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B0360
+ strb r0, [r1, 0xD]
+ movs r2, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r4, _080B0364
+ movs r3, 0xFF
+_080B0342:
+ lsls r0, r2, 3
+ adds r0, r1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080B0342
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B035C: .4byte sub_80B0458
+_080B0360: .4byte 0x02019204
+_080B0364: .4byte gUnknown_03004B28
+ thumb_func_end sub_80B0324
+
+ thumb_func_start sub_80B0368
+sub_80B0368: @ 80B0368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080B03A0
+ ldr r5, _080B03A4
+ ldrb r2, [r5, 0xD]
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, 0x8
+ adds r1, r3
+ movs r4, 0
+ strh r4, [r1]
+ lsls r0, 2
+ adds r0, 0x1
+ lsls r0, 1
+ ldrb r2, [r5, 0xD]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r3
+ strh r4, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B03A0: .4byte gTasks
+_080B03A4: .4byte 0x02019204
+ thumb_func_end sub_80B0368
+
+ thumb_func_start sub_80B03A8
+sub_80B03A8: @ 80B03A8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B03D0
+ movs r1, 0x1F
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B03D4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B03D0: .4byte sub_80B03D8
+_080B03D4: .4byte gTasks
+ thumb_func_end sub_80B03A8
+
+ thumb_func_start sub_80B03D8
+sub_80B03D8: @ 80B03D8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r2, _080B044C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ adds r4, r0, 0
+ ldr r6, _080B0450
+ ldrb r1, [r6, 0xD]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r4
+ lsls r0, 3
+ adds r7, r2, 0
+ adds r7, 0x8
+ adds r1, r0, r7
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B040C
+ cmp r0, 0xFF
+ bne _080B0444
+_080B040C:
+ movs r3, 0
+ movs r0, 0xFF
+ strh r0, [r1]
+ lsls r1, r4, 2
+ adds r1, 0x1
+ lsls r1, 1
+ ldrb r2, [r6, 0xD]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r7
+ strh r3, [r1]
+ adds r0, r6, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 4
+ adds r0, 0x6
+ ldr r3, _080B0454
+ movs r1, 0x2
+ movs r2, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl DestroyTask
+_080B0444:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B044C: .4byte gTasks
+_080B0450: .4byte 0x02019204
+_080B0454: .4byte 0x00004bff
+ thumb_func_end sub_80B03D8
+
+ thumb_func_start sub_80B0458
+sub_80B0458: @ 80B0458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ mov r9, r1
+ lsls r7, r1, 3
+ ldr r0, _080B04A8
+ mov r8, r0
+ movs r1, 0x8
+ negs r1, r1
+ add r1, r8
+ mov r10, r1
+_080B047C:
+ lsls r0, r6, 26
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r7
+ mov r4, r8
+ adds r2, r0, r4
+ ldrh r4, [r2]
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0xFF
+ beq _080B04F6
+ adds r0, r3, 0x1
+ lsls r1, r0, 1
+ adds r1, r7
+ add r1, r8
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _080B04AC
+ adds r0, r4, 0x1
+ b _080B04AE
+ .align 2, 0
+_080B04A8: .4byte gUnknown_03004B28
+_080B04AC:
+ subs r0, r4, 0x1
+_080B04AE:
+ strh r0, [r2]
+ lsls r1, r3, 1
+ mov r0, r9
+ lsls r2, r0, 3
+ adds r0, r1, r2
+ mov r3, r10
+ adds r3, 0x8
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ beq _080B04CC
+ cmp r0, 0
+ bne _080B04DA
+_080B04CC:
+ lsls r0, r5, 1
+ adds r0, r2
+ adds r0, r3
+ ldrh r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0]
+_080B04DA:
+ ldr r0, _080B0510
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 4
+ adds r0, 0x6
+ adds r1, r4, r7
+ add r1, r8
+ ldrb r2, [r1]
+ movs r1, 0x2
+ ldr r3, _080B0514
+ bl BlendPalette
+_080B04F6:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080B047C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0510: .4byte 0x02019204
+_080B0514: .4byte 0x00004bff
+ thumb_func_end sub_80B0458
+
+ thumb_func_start sub_80B0518
+sub_80B0518: @ 80B0518
+ push {r4,lr}
+ ldr r0, _080B0540
+ movs r1, 0x1E
+ bl CreateTask
+ ldr r1, _080B0544
+ strb r0, [r1, 0xE]
+ movs r4, 0
+_080B0528:
+ adds r0, r4, 0
+ bl sub_80B0548
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0528
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0540: .4byte sub_80B05FC
+_080B0544: .4byte 0x02019204
+ thumb_func_end sub_80B0518
+
+ thumb_func_start sub_80B0548
+sub_80B0548: @ 80B0548
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080B0580
+ ldr r4, _080B0584
+ ldrb r2, [r4, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, 0x8
+ adds r1, r3
+ movs r5, 0
+ movs r2, 0xFF
+ strh r2, [r1]
+ lsls r0, 2
+ adds r0, 0x1
+ lsls r0, 1
+ ldrb r2, [r4, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r3
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0580: .4byte gTasks
+_080B0584: .4byte 0x02019204
+ thumb_func_end sub_80B0548
+
+ thumb_func_start sub_80B0588
+sub_80B0588: @ 80B0588
+ push {r4,lr}
+ movs r4, 0
+_080B058C:
+ adds r0, r4, 0
+ bl sub_80B05A4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B058C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0588
+
+ thumb_func_start sub_80B05A4
+sub_80B05A4: @ 80B05A4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80B0548
+ adds r0, r4, 0x5
+ lsls r2, r0, 5
+ ldr r3, _080B05E8
+ adds r6, r2, r3
+ ldr r5, _080B05EC
+ adds r2, r5
+ ldr r1, _080B05F0
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ ldr r2, _080B05F4
+ str r2, [r1, 0x8]
+ ldr r6, [r1, 0x8]
+ lsls r0, 4
+ adds r4, 0xC
+ adds r0, r4
+ lsls r0, 1
+ subs r3, 0x14
+ adds r3, r0, r3
+ subs r5, 0x14
+ adds r0, r5
+ str r3, [r1]
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B05E8: .4byte gPlttBufferUnfaded + 0x14
+_080B05EC: .4byte gPlttBufferFaded + 0x14
+_080B05F0: .4byte 0x040000d4
+_080B05F4: .4byte 0x80000001
+ thumb_func_end sub_80B05A4
+
+ thumb_func_start nullsub_19
+nullsub_19: @ 80B05F8
+ bx lr
+ thumb_func_end nullsub_19
+
+ thumb_func_start sub_80B05FC
+sub_80B05FC: @ 80B05FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r7, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ mov r9, r1
+ lsls r6, r1, 3
+ ldr r0, _080B0664
+ mov r8, r0
+ ldr r1, _080B0668
+ mov r10, r1
+_080B061C:
+ lsls r0, r7, 26
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r6
+ mov r4, r8
+ adds r2, r0, r4
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0xFF
+ beq _080B06C2
+ adds r0, r3, 0x2
+ lsls r0, 1
+ adds r0, r6
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B06C2
+ strh r4, [r1]
+ adds r0, r3, 0x1
+ lsls r1, r0, 1
+ adds r1, r6
+ add r1, r8
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080B066C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080B0670
+ .align 2, 0
+_080B0664: .4byte gUnknown_03004B28
+_080B0668: .4byte 0x00004bff
+_080B066C:
+ ldrh r0, [r2]
+ subs r0, 0x1
+_080B0670:
+ strh r0, [r2]
+ lsls r1, r3, 1
+ mov r5, r9
+ lsls r2, r5, 3
+ adds r0, r1, r2
+ ldr r3, _080B06DC
+ adds r3, 0x8
+ adds r0, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ adds r5, r1, 0
+ cmp r0, 0x10
+ beq _080B068E
+ cmp r0, 0
+ bne _080B069C
+_080B068E:
+ lsls r0, r4, 1
+ adds r0, r2
+ adds r0, r3
+ ldrh r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0]
+_080B069C:
+ adds r4, r7, 0x5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r0, 0xA
+ adds r5, r6
+ add r5, r8
+ ldrb r2, [r5]
+ movs r1, 0x1
+ mov r3, r10
+ bl BlendPalette
+ adds r4, 0xC
+ adds r4, r7
+ ldrb r2, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ mov r3, r10
+ bl BlendPalette
+_080B06C2:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _080B061C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B06DC: .4byte gTasks
+ thumb_func_end sub_80B05FC
+
+ thumb_func_start unref_sub_80B06E0
+unref_sub_80B06E0: @ 80B06E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ ldr r0, _080B073C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _080B0740
+ mov r8, r0
+ ldr r1, _080B0744
+ mov r12, r1
+_080B0704:
+ lsls r4, r3, 2
+ lsls r0, r3, 26
+ lsrs r0, 23
+ adds r0, r6
+ add r0, r8
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ strh r1, [r0]
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080B0726
+ mov r1, r12
+ adds r0, r4, r1
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x2]
+_080B0726:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080B0704
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B073C: .4byte sub_80B0748
+_080B0740: .4byte gUnknown_03004B28
+_080B0744: .4byte 0x02019338
+ thumb_func_end unref_sub_80B06E0
+
+ thumb_func_start sub_80B0748
+sub_80B0748: @ 80B0748
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r2, _080B07F4
+ movs r1, 0x8
+ adds r1, r2
+ mov r10, r1
+ ldr r3, [sp]
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r1, [sp]
+ adds r0, r3, r1
+ lsls r0, 3
+ str r0, [sp, 0xC]
+_080B0774:
+ ldr r0, _080B07F8
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r0
+ ldrb r4, [r0]
+ lsls r0, r4, 26
+ lsrs r1, r0, 24
+ lsls r0, r1, 1
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r6, r0, 3
+ ldr r3, [sp, 0x8]
+ adds r0, r3, r6
+ add r0, r10
+ mov r9, r0
+ ldrb r7, [r0]
+ cmp r7, 0
+ bne _080B079C
+ b _080B0910
+_080B079C:
+ adds r3, r1, 0x1
+ lsls r0, r3, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, r1, 0x2
+ lsls r0, r2, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r5, [r0]
+ adds r1, 0x3
+ lsls r0, r1, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r6, [r0]
+ str r3, [sp, 0x10]
+ str r2, [sp, 0x14]
+ str r1, [sp, 0x18]
+ cmp r7, 0x1
+ bne _080B0818
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ beq _080B07D2
+ b _080B08EA
+_080B07D2:
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r0, 0x1
+ movs r1, 0x3
+ adds r2, r5, 0
+ ldr r3, _080B07FC
+ bl BlendPalette
+ cmp r5, 0
+ bne _080B0800
+ mov r0, r8
+ cmp r0, 0x4
+ bne _080B0800
+ mov r1, r9
+ strh r6, [r1]
+ b _080B08EA
+ .align 2, 0
+_080B07F4: .4byte gTasks
+_080B07F8: .4byte gUnknown_02038696
+_080B07FC: .4byte 0x00007fff
+_080B0800:
+ adds r0, r5, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xD
+ bls _080B08EA
+ movs r5, 0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ b _080B08EA
+_080B0818:
+ cmp r7, 0x2
+ beq _080B0820
+ cmp r7, 0x4
+ bne _080B0896
+_080B0820:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bne _080B08EA
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r0, 0x1
+ ldr r2, _080B0854
+ lsls r1, r4, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl BlendPalette
+ cmp r5, 0
+ bne _080B0858
+ mov r2, r8
+ cmp r2, 0x2
+ bne _080B0858
+ mov r3, r9
+ strh r6, [r3]
+ b _080B08EA
+ .align 2, 0
+_080B0854: .4byte gUnknown_083CC5A4
+_080B0858:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xE
+ bne _080B08EA
+ movs r5, 0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r7, 0x4
+ bne _080B08EA
+ cmp r0, 0x1
+ bne _080B08EA
+ adds r4, 0x9
+ lsls r4, 4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0
+ bl BlendPalette
+ adds r4, 0x5
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0
+ bl BlendPalette
+ b _080B08EA
+_080B0896:
+ cmp r7, 0x3
+ bne _080B08EA
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xC
+ bne _080B08EA
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r4, r0, 0x1
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bne _080B08EA
+ ldr r0, _080B0930
+ lsls r1, r4, 1
+ adds r0, r1, r0
+ ldrh r2, [r0]
+ ldr r0, _080B0934
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, _080B0938
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ movs r0, 0x80
+ lsls r0, 24
+ orrs r7, r0
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp, 0xC]
+ adds r0, r1, r2
+ add r0, r10
+ strh r6, [r0]
+_080B08EA:
+ ldr r3, [sp, 0x10]
+ lsls r0, r3, 1
+ ldr r1, [sp, 0xC]
+ adds r0, r1
+ add r0, r10
+ mov r2, r8
+ strh r2, [r0]
+ ldr r3, [sp, 0x14]
+ lsls r0, r3, 1
+ adds r0, r1
+ add r0, r10
+ strh r5, [r0]
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 1
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ add r0, r10
+ strh r6, [r0]
+ ldr r2, _080B093C
+_080B0910:
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ cmp r0, 0x3
+ bhi _080B0920
+ b _080B0774
+_080B0920:
+ movs r4, 0
+ ldr r3, [sp, 0x1C]
+ ldr r1, [sp]
+ adds r0, r3, r1
+ lsls r1, r0, 3
+ adds r2, 0x8
+ adds r0, r1, r2
+ b _080B0950
+ .align 2, 0
+_080B0930: .4byte gPlttBufferFaded
+_080B0934: .4byte gPlttBufferUnfaded
+_080B0938: .4byte 0x040000d4
+_080B093C: .4byte gTasks
+_080B0940:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bhi _080B0958
+ lsls r0, r4, 3
+ adds r0, r1
+ adds r0, r2
+_080B0950:
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ beq _080B0940
+_080B0958:
+ cmp r4, 0x4
+ bne _080B0980
+ movs r4, 0
+ ldr r3, _080B0990
+ movs r5, 0x3
+ negs r5, r5
+_080B0964:
+ lsls r1, r4, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x2]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0964
+ ldr r0, [sp]
+ bl DestroyTask
+_080B0980:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0990: .4byte 0x02019338
+ thumb_func_end sub_80B0748
+
+ thumb_func_start unref_sub_80B0994
+unref_sub_80B0994: @ 80B0994
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B09A6
+ ldr r0, _080B09AC
+ ldrb r1, [r0, 0x6]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x6]
+_080B09A6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B09AC: .4byte 0x02019204
+ thumb_func_end unref_sub_80B0994
+
+ thumb_func_start sub_80B09B0
+sub_80B09B0: @ 80B09B0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r1, _080B09D4
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B09D8
+ adds r0, r2, 0
+ bl sub_80B0368
+ b _080B09DE
+ .align 2, 0
+_080B09D4: .4byte 0x02019260
+_080B09D8:
+ adds r0, r2, 0
+ bl sub_80B03A8
+_080B09DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B09B0
+
+ thumb_func_start sub_80B09E4
+sub_80B09E4: @ 80B09E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r9, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080B0B2C
+ mov r1, r9
+ adds r7, r1, r0
+ ldrb r0, [r7]
+ lsls r5, r0, 2
+ adds r5, r0
+ lsls r5, 27
+ movs r2, 0x80
+ lsls r2, 22
+ adds r5, r2
+ lsrs r5, 24
+ lsls r4, r1, 3
+ ldr r0, _080B0B30
+ adds r0, r4, r0
+ bl LoadCompressedObjectPic
+ ldr r0, _080B0B34
+ adds r4, r0
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r3, r9
+ lsls r4, r3, 1
+ add r4, r9
+ lsls r4, 3
+ ldr r0, _080B0B38
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB8
+ adds r2, r5, 0
+ movs r3, 0x1D
+ bl CreateSprite
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0xF8
+ adds r2, r5, 0
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080B0B3C
+ mov r10, r1
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ add r5, r10
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r3, _080B0B40
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B0B44
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldrb r0, [r7]
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 6
+ ldr r0, _080B0B48
+ adds r3, r0
+ mov r1, r8
+ lsls r4, r1, 4
+ add r4, r8
+ lsls r4, 2
+ add r4, r10
+ ldrh r0, [r4, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r2, _080B0B4C
+ mov r10, r2
+ add r0, r10
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0xC0
+ lsls r2, 19
+ bl sub_8040F80
+ ldrb r0, [r7]
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 6
+ ldr r7, _080B0B50
+ adds r3, r7
+ ldrh r0, [r5, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ add r0, r10
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0xC0
+ lsls r2, 19
+ bl sub_8040F80
+ ldrh r0, [r4, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1
+ add r0, r10
+ movs r2, 0
+ str r2, [sp, 0x8]
+ ldr r1, _080B0B54
+ add r3, sp, 0x8
+ mov r12, r3
+ str r3, [r1]
+ str r0, [r1, 0x4]
+ ldr r3, _080B0B58
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strb r2, [r0]
+ strb r2, [r0]
+ ldrh r0, [r5, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ movs r7, 0xA0
+ lsls r7, 3
+ adds r0, r7
+ add r0, r10
+ str r2, [sp, 0x8]
+ mov r2, r12
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ strh r6, [r4, 0x2E]
+ mov r3, r8
+ strh r3, [r5, 0x2E]
+ mov r7, r9
+ strh r7, [r4, 0x30]
+ mov r0, r9
+ strh r0, [r5, 0x30]
+ mov r0, r8
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B0B2C: .4byte gUnknown_02038696
+_080B0B30: .4byte gUnknown_083CC4B4
+_080B0B34: .4byte gUnknown_083CC4D4
+_080B0B38: .4byte gSpriteTemplate_83CC53C
+_080B0B3C: .4byte gSprites
+_080B0B40: .4byte 0x000003ff
+_080B0B44: .4byte 0xfffffc00
+_080B0B48: .4byte 0x0600e026
+_080B0B4C: .4byte 0x06010000
+_080B0B50: .4byte 0x0600e036
+_080B0B54: .4byte 0x040000d4
+_080B0B58: .4byte 0x850000c0
+ thumb_func_end sub_80B09E4
+
+ thumb_func_start sub_80B0B5C
+sub_80B0B5C: @ 80B0B5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B0B94
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ adds r5, r1
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0B94: .4byte gSprites
+ thumb_func_end sub_80B0B5C
+
+ thumb_func_start sub_80B0B98
+sub_80B0B98: @ 80B0B98
+ ldr r1, _080B0BAC
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080B0BB0
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080B0BAC: .4byte REG_BLDCNT
+_080B0BB0: .4byte 0x00000907
+ thumb_func_end sub_80B0B98
+
+ thumb_func_start sub_80B0BB4
+sub_80B0BB4: @ 80B0BB4
+ ldr r0, _080B0BC0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080B0BC0: .4byte REG_BLDCNT
+ thumb_func_end sub_80B0BB4
+
+ thumb_func_start sub_80B0BC4
+sub_80B0BC4: @ 80B0BC4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ mov r9, r1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl sub_80B0B98
+ ldr r1, _080B0C38
+ mov r8, r1
+ lsls r6, r4, 4
+ adds r6, r4
+ lsls r6, 2
+ adds r0, r6, r1
+ movs r1, 0x30
+ ldrsh r2, [r0, r1]
+ lsls r2, 2
+ ldr r1, _080B0C3C
+ adds r2, r1
+ ldrb r1, [r2, 0x2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2, 0x2]
+ ldrh r5, [r0, 0x2E]
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ mov r1, r8
+ adds r0, r4, r1
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0x1C
+ add r8, r0
+ add r6, r8
+ ldr r0, _080B0C40
+ str r0, [r6]
+ add r4, r8
+ ldr r0, _080B0C44
+ str r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ bne _080B0C48
+ movs r0, 0x65
+ bl PlaySE
+ b _080B0C4E
+ .align 2, 0
+_080B0C38: .4byte gSprites
+_080B0C3C: .4byte 0x02019338
+_080B0C40: .4byte sub_80B0C5C
+_080B0C44: .4byte SpriteCallbackDummy
+_080B0C48:
+ movs r0, 0x2
+ bl PlaySE
+_080B0C4E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0BC4
+
+ thumb_func_start sub_80B0C5C
+sub_80B0C5C: @ 80B0C5C
+ push {lr}
+ mov r12, r0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0CA4
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080B0CA8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080B0CA4
+ mov r3, r12
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080B0CAC
+ mov r1, r12
+ str r0, [r1, 0x1C]
+_080B0CA4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0CA8: .4byte gSprites
+_080B0CAC: .4byte sub_80B0CB0
+ thumb_func_end sub_80B0C5C
+
+ thumb_func_start sub_80B0CB0
+sub_80B0CB0: @ 80B0CB0
+ push {lr}
+ movs r1, 0x30
+ ldrsh r2, [r0, r1]
+ lsls r2, 2
+ ldr r1, _080B0CD8
+ adds r2, r1
+ ldrb r3, [r2, 0x2]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2, 0x2]
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B0B5C
+ bl sub_80B0BB4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0CD8: .4byte 0x02019338
+ thumb_func_end sub_80B0CB0
+
+ thumb_func_start sub_80B0CDC
+sub_80B0CDC: @ 80B0CDC
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080B0CF0
+ adds r0, r1
+ ldrb r2, [r0, 0x2]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_080B0CF0: .4byte 0x02019338
+ thumb_func_end sub_80B0CDC
+
+ thumb_func_start unref_sub_80B0CF4
+unref_sub_80B0CF4: @ 80B0CF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r0, _080B0D5C
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ cmp r1, 0
+ bne _080B0D6C
+ movs r4, 0
+ ldr r6, _080B0D60
+ adds r3, r6, 0x1
+ mov r8, r3
+ ldr r5, _080B0D64
+ adds r7, r5, 0x1
+_080B0D1C:
+ lsls r1, r4, 1
+ adds r0, r1, r6
+ ldrb r2, [r0]
+ mov r3, r8
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r1, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080B0D68
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0D1C
+ bl sub_80AE514
+ bl sub_80AEB30
+ b _080B0D70
+ .align 2, 0
+_080B0D5C: .4byte 0x02000000
+_080B0D60: .4byte gUnknown_083CA308
+_080B0D64: .4byte gUnknown_083CA310
+_080B0D68: .4byte gUnknown_03004210
+_080B0D6C:
+ bl sub_80B0D7C
+_080B0D70:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80B0CF4
+
+ thumb_func_start sub_80B0D7C
+sub_80B0D7C: @ 80B0D7C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ movs r5, 0
+ ldr r0, _080B0ED0
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B0D98
+ b _080B0EC2
+_080B0D98:
+ movs r4, 0
+ ldr r7, _080B0ED4
+ adds r3, r7, 0x1
+ mov r9, r3
+ ldr r6, _080B0ED8
+ adds r0, r6, 0x1
+ mov r8, r0
+_080B0DA6:
+ lsls r1, r4, 1
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ mov r3, r9
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ add r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080B0EDC
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0DA6
+ movs r4, 0
+ ldr r6, _080B0ED8
+ adds r7, r6, 0x1
+_080B0DE2:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B0EE0
+ adds r0, r1
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080B0E08
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ add r1, sp, 0x8
+ movs r0, 0xAE
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080B0E08:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x8
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B0EE4
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ movs r1, 0x16
+ adds r2, r0, 0
+ muls r2, r1
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ lsls r0, 1
+ adds r1, r0, r6
+ ldrb r3, [r1]
+ adds r0, r7
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, _080B0EDC
+ add r1, sp, 0x8
+ bl sub_8003460
+ movs r5, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0DE2
+ movs r4, 0
+ ldr r6, _080B0ED4
+ adds r7, r6, 0x1
+_080B0E52:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B0EE0
+ adds r0, r1
+ ldrh r2, [r0, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080B0E78
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ add r1, sp, 0x8
+ movs r0, 0xAE
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080B0E78:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x8
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B0EE4
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ lsls r1, 1
+ adds r0, r1, r6
+ ldrb r3, [r0]
+ adds r1, r7
+ ldrb r0, [r1]
+ str r0, [sp]
+ ldr r0, _080B0EDC
+ add r1, sp, 0x8
+ bl sub_8003460
+ movs r5, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0E52
+ bl sub_80AEB30
+_080B0EC2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0ED0: .4byte 0x02000000
+_080B0ED4: .4byte gUnknown_083CA308
+_080B0ED8: .4byte gUnknown_083CA310
+_080B0EDC: .4byte gUnknown_03004210
+_080B0EE0: .4byte 0x02019260
+_080B0EE4: .4byte gUnknown_02038696
+ thumb_func_end sub_80B0D7C
+
+ thumb_func_start unref_sub_80B0EE8
+unref_sub_80B0EE8: @ 80B0EE8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ subs r0, r1, 0x1
+ cmp r4, r0
+ bge _080B0F20
+ adds r6, r0, 0
+_080B0EF6:
+ adds r3, r0, 0
+ adds r5, r4, 0x1
+ cmp r0, r4
+ ble _080B0F18
+ lsls r0, 2
+ subs r0, 0x4
+ adds r0, r7
+_080B0F04:
+ ldr r1, [r0]
+ ldr r2, [r0, 0x4]
+ cmp r1, r2
+ ble _080B0F10
+ str r1, [r0, 0x4]
+ str r2, [r0]
+_080B0F10:
+ subs r0, 0x4
+ subs r3, 0x1
+ cmp r3, r4
+ bgt _080B0F04
+_080B0F18:
+ adds r4, r5, 0
+ adds r0, r6, 0
+ cmp r4, r0
+ blt _080B0EF6
+_080B0F20:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80B0EE8
+
+ thumb_func_start sub_80B0F28
+sub_80B0F28: @ 80B0F28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ add r4, sp, 0x4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r5, 0
+ add r4, sp, 0x4
+ adds r6, r4, 0
+ movs r7, 0
+_080B0F4E:
+ bl Random
+ adds r1, r0, 0
+ mov r0, sp
+ adds r0, r7
+ adds r0, 0x4
+ strh r1, [r0]
+ movs r2, 0
+ cmp r2, r5
+ bge _080B0F86
+ lsls r0, r1, 16
+ lsrs r0, 16
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ beq _080B0F80
+_080B0F6E:
+ adds r2, 0x1
+ cmp r2, r5
+ bge _080B0F86
+ lsls r0, r2, 1
+ adds r0, r4, r0
+ ldrh r1, [r6]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080B0F6E
+_080B0F80:
+ subs r6, 0x2
+ subs r7, 0x2
+ subs r5, 0x1
+_080B0F86:
+ adds r6, 0x2
+ adds r7, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B0F4E
+ mov r2, r8
+ cmp r2, 0
+ bne _080B1050
+ movs r5, 0
+ ldr r3, _080B1008
+ mov r8, r3
+_080B0F9C:
+ mov r6, r8
+ strb r5, [r6]
+ movs r4, 0
+ cmp r4, r5
+ bge _080B1018
+ ldr r7, _080B100C
+ mov r9, r7
+ lsls r0, r5, 1
+ adds r1, r0, 0
+ add r1, r9
+ mov r12, r1
+ mov r2, sp
+ adds r2, 0x4
+ str r2, [sp, 0xC]
+ add r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ ldr r3, _080B1008
+ adds r6, r3, 0
+ mov r10, r6
+_080B0FC4:
+ ldrb r0, [r3]
+ lsls r2, r0, 1
+ mov r7, r9
+ adds r0, r2, r7
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ mov r7, r12
+ movs r6, 0
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080B0FEC
+ cmp r1, r0
+ bne _080B1010
+ ldr r7, [sp, 0xC]
+ adds r0, r7, r2
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x10]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _080B1010
+_080B0FEC:
+ adds r2, r5, 0
+ cmp r5, r4
+ ble _080B1004
+ subs r0, r5, 0x1
+ mov r6, r10
+ adds r1, r0, r6
+_080B0FF8:
+ ldrb r0, [r1]
+ strb r0, [r1, 0x1]
+ subs r1, 0x1
+ subs r2, 0x1
+ cmp r2, r4
+ bgt _080B0FF8
+_080B1004:
+ strb r5, [r3]
+ b _080B1018
+ .align 2, 0
+_080B1008: .4byte gUnknown_02038696
+_080B100C: .4byte gUnknown_02038670
+_080B1010:
+ adds r3, 0x1
+ adds r4, 0x1
+ cmp r4, r5
+ blt _080B0FC4
+_080B1018:
+ cmp r4, r5
+ bne _080B1020
+ mov r7, r8
+ strb r5, [r7]
+_080B1020:
+ movs r0, 0x1
+ add r8, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B0F9C
+ ldr r4, _080B104C
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ movs r5, 0
+_080B1038:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ adds r0, r4
+ strb r5, [r0]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1038
+ b _080B10FC
+ .align 2, 0
+_080B104C: .4byte gUnknown_02038696
+_080B1050:
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x4
+ bl memset
+ movs r5, 0
+ ldr r3, _080B1070
+ movs r6, 0
+_080B1060:
+ ldr r0, _080B1074
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xB]
+ lsls r0, 30
+ lsrs r2, r0, 30
+ mov r7, sp
+ adds r1, r7, r2
+ b _080B1082
+ .align 2, 0
+_080B1070: .4byte gUnknown_02038696
+_080B1074: .4byte 0x02019260
+_080B1078:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r0, sp
+ adds r1, r0, r2
+_080B1082:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080B1078
+ strb r5, [r1]
+ strb r2, [r3]
+ adds r3, 0x1
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1060
+ movs r5, 0
+_080B1098:
+ movs r4, 0x3
+ adds r1, r5, 0x1
+ mov r10, r1
+ cmp r4, r5
+ ble _080B10F6
+ mov r9, r4
+ ldr r2, _080B110C
+ mov r8, r2
+ add r3, sp, 0x4
+ mov r12, r3
+_080B10AC:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r6, _080B1110
+ adds r1, r0, r6
+ ldrb r2, [r1, 0xB]
+ ldr r7, _080B1114
+ adds r0, r7
+ ldrb r3, [r0, 0xB]
+ mov r1, r9
+ ands r1, r2
+ mov r0, r9
+ ands r0, r3
+ subs r3, r4, 0x1
+ cmp r1, r0
+ bne _080B10F0
+ mov r0, r8
+ adds r7, r3, r0
+ adds r2, r4, r0
+ ldrb r6, [r7]
+ ldrb r1, [r2]
+ cmp r6, r1
+ bcs _080B10F0
+ lsls r0, r3, 1
+ add r0, r12
+ lsls r1, r4, 1
+ add r1, r12
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _080B10F0
+ ldrb r0, [r2]
+ strb r6, [r2]
+ strb r0, [r7]
+_080B10F0:
+ adds r4, r3, 0
+ cmp r4, r5
+ bgt _080B10AC
+_080B10F6:
+ mov r5, r10
+ cmp r5, 0x2
+ ble _080B1098
+_080B10FC:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B110C: .4byte gUnknown_02038696
+_080B1110: .4byte 0x02019244
+_080B1114: .4byte 0x02019260
+ thumb_func_end sub_80B0F28
+
+ thumb_func_start sub_80B1118
+sub_80B1118: @ 80B1118
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0xA0
+_080B111E:
+ ldr r0, _080B1144
+ adds r0, r5, r0
+ ldr r1, _080B1148
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ adds r1, 0x5
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x20
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B111E
+ bl sub_80AE514
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1144: .4byte 0x02018004
+_080B1148: .4byte gUnknown_02038696
+ thumb_func_end sub_80B1118
+
+ thumb_func_start sub_80B114C
+sub_80B114C: @ 80B114C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r7, r6, 3
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r4, _080B11B8
+ adds r5, r0, r4
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_80AF404
+ lsls r0, 24
+ mov r8, r4
+ cmp r0, 0
+ bne _080B1176
+ b _080B13DC
+_080B1176:
+ ldrh r0, [r5, 0x6]
+ ldr r1, _080B11BC
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r12, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ strb r0, [r5, 0xA]
+ ldrh r0, [r5, 0x6]
+ ldrh r1, [r5, 0x8]
+ cmp r0, r1
+ bne _080B11C0
+ cmp r0, 0
+ beq _080B11C0
+ ldrb r0, [r5, 0x15]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x15]
+ ldrb r2, [r5, 0xB]
+ lsls r1, r2, 25
+ lsrs r1, 29
+ adds r1, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 4
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0xB]
+ b _080B11D8
+ .align 2, 0
+_080B11B8: .4byte 0x02019260
+_080B11BC: .4byte gContestMoves
+_080B11C0:
+ lsls r4, r6, 3
+ subs r1, r4, r6
+ lsls r1, 2
+ ldr r3, _080B1264
+ adds r1, r3
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ adds r7, r4, 0
+ mov r8, r3
+_080B11D8:
+ subs r0, r7, r6
+ lsls r0, 2
+ add r0, r8
+ ldr r2, _080B1268
+ mov r1, r12
+ lsls r3, r1, 2
+ adds r2, r3, r2
+ ldrb r1, [r2, 0x1]
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ mov r0, r8
+ adds r0, 0x70
+ ldrb r1, [r2, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strb r6, [r0, 0x11]
+ movs r2, 0
+ adds r4, r3, 0
+ movs r1, 0
+ mov r5, r8
+ adds r5, 0x7D
+ mov r3, r8
+_080B1204:
+ strb r1, [r3, 0xE]
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B1204
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1264
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B123C
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r5, 0x6]
+ bl AreMovesContestCombo
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B123C
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x15]
+_080B123C:
+ ldr r0, _080B126C
+ adds r0, r4, r0
+ ldr r0, [r0]
+ bl _call_via_r0
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1264
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0x10
+ bne _080B1270
+ ldrh r1, [r2, 0x2]
+ subs r1, 0xA
+ movs r0, 0xD
+ ldrsb r0, [r2, r0]
+ b _080B128A
+ .align 2, 0
+_080B1264: .4byte 0x02019260
+_080B1268: .4byte gContestEffects
+_080B126C: .4byte gContestEffectFuncs
+_080B1270:
+ ldrb r1, [r2, 0x11]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1284
+ movs r1, 0xD
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ b _080B1288
+_080B1284:
+ movs r0, 0xD
+ ldrsb r0, [r2, r0]
+_080B1288:
+ ldrh r1, [r2, 0x2]
+_080B128A:
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B12E8
+ adds r4, r0, r1
+ movs r0, 0
+ strb r0, [r4, 0x16]
+ ldrb r1, [r4, 0x15]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r4, 0x15]
+ adds r0, r6, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1322
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x6]
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080B12EC
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B12EC
+ strb r2, [r4, 0x16]
+ movs r0, 0x40
+ orrs r1, r0
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ ldrb r0, [r4, 0x16]
+ muls r0, r2
+ strb r0, [r4, 0x17]
+ movs r0, 0x8
+ orrs r1, r0
+ strb r1, [r4, 0x15]
+ b _080B1322
+ .align 2, 0
+_080B12E8: .4byte 0x02019260
+_080B12EC:
+ ldr r2, _080B1310
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1314
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x6]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080B1318
+ ldrb r0, [r3, 0x15]
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ b _080B1320
+ .align 2, 0
+_080B1310: .4byte gContestMoves
+_080B1314: .4byte 0x02019260
+_080B1318:
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+_080B1320:
+ strb r0, [r3, 0x15]
+_080B1322:
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B139C
+ mov r8, r1
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1348
+ ldrb r0, [r4, 0xB]
+ lsls r0, 25
+ lsrs r0, 29
+ adds r0, 0x1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ strb r1, [r4, 0x18]
+_080B1348:
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1362
+ ldrb r0, [r4, 0x15]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4, 0x15]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ strh r0, [r4]
+_080B1362:
+ ldrh r0, [r4, 0x6]
+ bl contest_get_move_excitement
+ mov r2, r8
+ adds r2, 0xC8
+ strb r0, [r2]
+ ldrb r1, [r4, 0x11]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B137A
+ strb r5, [r2]
+_080B137A:
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ ble _080B13A4
+ mov r0, r8
+ subs r0, 0x5C
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ adds r0, r1
+ cmp r0, 0x4
+ ble _080B13A0
+ movs r0, 0x3C
+ b _080B13A6
+ .align 2, 0
+_080B139C: .4byte 0x02019260
+_080B13A0:
+ movs r0, 0xA
+ b _080B13A6
+_080B13A4:
+ movs r0, 0
+_080B13A6:
+ strb r0, [r2, 0x2]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ b _080B13CA
+_080B13BE:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080B13C4:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B13D2
+_080B13CA:
+ cmp r2, r6
+ beq _080B13C4
+ cmp r0, 0
+ bne _080B13BE
+_080B13D2:
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B13E8
+ adds r0, r1
+ strb r2, [r0, 0x1B]
+_080B13DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B13E8: .4byte 0x02019260
+ thumb_func_end sub_80B114C
+
+ thumb_func_start sub_80B13EC
+sub_80B13EC: @ 80B13EC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B1400
+ adds r2, r0
+ strb r1, [r2, 0x13]
+ bx lr
+ .align 2, 0
+_080B1400: .4byte 0x02019260
+ thumb_func_end sub_80B13EC
+
+ thumb_func_start sub_80B1404
+sub_80B1404: @ 80B1404
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B1418
+ adds r2, r0
+ strb r1, [r2, 0x14]
+ bx lr
+ .align 2, 0
+_080B1418: .4byte 0x02019260
+ thumb_func_end sub_80B1404
+
+ thumb_func_start sub_80B141C
+sub_80B141C: @ 80B141C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x3B
+ bls _080B1436
+ movs r1, 0x35
+ bl sub_80B13EC
+ b _080B1466
+_080B1436:
+ cmp r1, 0x27
+ bls _080B1442
+ movs r1, 0x34
+ bl sub_80B13EC
+ b _080B1466
+_080B1442:
+ cmp r1, 0x1D
+ bls _080B144E
+ movs r1, 0x33
+ bl sub_80B13EC
+ b _080B1466
+_080B144E:
+ cmp r1, 0x13
+ bls _080B145A
+ movs r1, 0x32
+ bl sub_80B13EC
+ b _080B1466
+_080B145A:
+ cmp r2, 0x9
+ bls _080B1466
+ adds r0, r3, 0
+ movs r1, 0x31
+ bl sub_80B13EC
+_080B1466:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B141C
+
+ thumb_func_start sub_80B146C
+sub_80B146C: @ 80B146C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080B14C8
+ lsls r1, r4, 6
+ ldr r2, _080B14CC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080B14D0
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r4, _080B14D4
+ adds r1, r4
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080B14D8
+ adds r1, r2
+ bl StringCopy
+ ldr r2, _080B14DC
+ adds r0, r4, 0
+ adds r0, 0x70
+ ldrb r1, [r0, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ lsls r1, r0, 29
+ cmp r1, 0
+ bne _080B14E8
+ ldr r0, _080B14E0
+ ldr r1, _080B14E4
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B14C8: .4byte gStringVar1
+_080B14CC: .4byte gUnknown_02038572
+_080B14D0: .4byte gStringVar2
+_080B14D4: .4byte 0x02019260
+_080B14D8: .4byte gMoveNames
+_080B14DC: .4byte gContestMoves
+_080B14E0: .4byte gStringVar3
+_080B14E4: .4byte gUnknown_083CC280
+_080B14E8:
+ lsrs r0, r1, 29
+ cmp r0, 0x1
+ bne _080B1500
+ ldr r0, _080B14F8
+ ldr r1, _080B14FC
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B14F8: .4byte gStringVar3
+_080B14FC: .4byte gUnknown_083CC288
+_080B1500:
+ lsrs r0, r1, 29
+ cmp r0, 0x2
+ bne _080B1518
+ ldr r0, _080B1510
+ ldr r1, _080B1514
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B1510: .4byte gStringVar3
+_080B1514: .4byte gUnknown_083CC290
+_080B1518:
+ lsrs r0, r1, 29
+ cmp r0, 0x3
+ bne _080B1530
+ ldr r0, _080B1528
+ ldr r1, _080B152C
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B1528: .4byte gStringVar3
+_080B152C: .4byte gUnknown_083CC299
+_080B1530:
+ ldr r0, _080B1568
+ ldr r1, _080B156C
+ bl StringCopy
+_080B1538:
+ ldr r4, _080B1570
+ ldr r1, _080B1574
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ bl sub_80AF138
+ ldr r0, _080B1578
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1568: .4byte gStringVar3
+_080B156C: .4byte gUnknown_083CC2A3
+_080B1570: .4byte gStringVar4
+_080B1574: .4byte gUnknown_083CC188
+_080B1578: .4byte gMenuWindow
+ thumb_func_end sub_80B146C
+
+ thumb_func_start sub_80B157C
+sub_80B157C: @ 80B157C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B1598
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1, 0xC]
+ movs r0, 0
+ strh r0, [r1, 0x6]
+ bx lr
+ .align 2, 0
+_080B1598: .4byte 0x02019260
+ thumb_func_end sub_80B157C
+
+ thumb_func_start sub_80B159C
+sub_80B159C: @ 80B159C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ movs r4, 0
+ ldr r1, _080B1600
+ mov r9, r1
+ add r2, sp, 0x4
+ mov r6, r9
+ movs r5, 0
+ adds r3, r2, 0
+_080B15B8:
+ mov r0, sp
+ adds r1, r0, r4
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, r4
+ strb r5, [r0]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B15B8
+ movs r4, 0
+ ldr r7, _080B1604
+ adds r5, r2, 0
+ movs r1, 0x1
+ mov r8, r1
+_080B15D6:
+ movs r2, 0
+ adds r1, r7, 0
+_080B15DA:
+ ldrb r0, [r1, 0x19]
+ cmp r0, r4
+ beq _080B1608
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B15DA
+_080B15E8:
+ cmp r2, 0x4
+ bne _080B1680
+ movs r2, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080B1616
+ ldrb r0, [r7, 0x19]
+ cmp r0, 0xFF
+ bne _080B1616
+ mov r12, r2
+ movs r2, 0x1
+ b _080B163A
+ .align 2, 0
+_080B1600: .4byte gUnknown_02038696
+_080B1604: .4byte 0x02019260
+_080B1608:
+ mov r1, sp
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r0, r5, r2
+ mov r1, r8
+ strb r1, [r0]
+ b _080B15E8
+_080B1616:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B1672
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B1616
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0xFF
+ bne _080B1616
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r12, r0
+ adds r2, 0x1
+_080B163A:
+ cmp r2, 0x3
+ bgt _080B1672
+ ldr r6, _080B16C8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r3, r0, 2
+_080B1646:
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B166A
+ adds r0, r3, r7
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0xFF
+ bne _080B166A
+ mov r1, r12
+ adds r0, r1, r6
+ adds r1, r2, r6
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B166A
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r12, r0
+_080B166A:
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B1646
+_080B1672:
+ mov r0, sp
+ add r0, r12
+ strb r4, [r0]
+ mov r1, r12
+ adds r0, r5, r1
+ mov r1, r8
+ strb r1, [r0]
+_080B1680:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B15D6
+ movs r4, 0
+ ldr r5, _080B16CC
+ adds r3, r5, 0
+ subs r3, 0x60
+ movs r6, 0xFF
+ movs r7, 0x3F
+_080B1692:
+ adds r1, r4, r5
+ mov r0, sp
+ adds r2, r0, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrb r0, [r3, 0x9]
+ orrs r0, r6
+ strb r0, [r3, 0x9]
+ ldrb r1, [r3]
+ adds r0, r7, 0
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r9
+ adds r1, r4, r0
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B1692
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B16C8: .4byte gUnknown_02038696
+_080B16CC: .4byte 0x020192d0
+ thumb_func_end sub_80B159C
+
+ thumb_func_start sub_80B16D0
+sub_80B16D0: @ 80B16D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x54
+ ble _080B1702
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r0, _080B1708
+ str r0, [r2, 0x1C]
+ ldr r2, _080B170C
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x6]
+_080B1702:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1708: .4byte SpriteCallbackDummy
+_080B170C: .4byte 0x02019204
+ thumb_func_end sub_80B16D0
+
+ thumb_func_start sub_80B1710
+sub_80B1710: @ 80B1710
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080B172C
+ ldrb r5, [r0, 0x12]
+ cmp r1, 0x8
+ bls _080B1720
+ b _080B18C0
+_080B1720:
+ lsls r0, r1, 2
+ ldr r1, _080B1730
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B172C: .4byte 0x02019204
+_080B1730: .4byte _080B1734
+ .align 2, 0
+_080B1734:
+ .4byte _080B1758
+ .4byte _080B1758
+ .4byte _080B1788
+ .4byte _080B17BC
+ .4byte _080B17F0
+ .4byte _080B1824
+ .4byte _080B1858
+ .4byte _080B18C0
+ .4byte _080B188C
+_080B1758:
+ ldr r0, _080B177C
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2E]
+ ldr r2, _080B1780
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1784
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x20
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B177C: .4byte gSprites
+_080B1780: .4byte 0x000003ff
+_080B1784: .4byte 0xfffffc00
+_080B1788:
+ ldr r0, _080B17B0
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x4
+ ldr r3, _080B17B4
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B17B8
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x1F
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B17B0: .4byte gSprites
+_080B17B4: .4byte 0x000003ff
+_080B17B8: .4byte 0xfffffc00
+_080B17BC:
+ ldr r0, _080B17E4
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x8
+ ldr r3, _080B17E8
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B17EC
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x1F
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B17E4: .4byte gSprites
+_080B17E8: .4byte 0x000003ff
+_080B17EC: .4byte 0xfffffc00
+_080B17F0:
+ ldr r0, _080B1818
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0xC
+ ldr r3, _080B181C
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1820
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B1818: .4byte gSprites
+_080B181C: .4byte 0x000003ff
+_080B1820: .4byte 0xfffffc00
+_080B1824:
+ ldr r0, _080B184C
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0xC
+ ldr r3, _080B1850
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1854
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B184C: .4byte gSprites
+_080B1850: .4byte 0x000003ff
+_080B1854: .4byte 0xfffffc00
+_080B1858:
+ ldr r0, _080B1880
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x10
+ ldr r3, _080B1884
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1888
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B1880: .4byte gSprites
+_080B1884: .4byte 0x000003ff
+_080B1888: .4byte 0xfffffc00
+_080B188C:
+ ldr r0, _080B18B4
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x18
+ ldr r3, _080B18B8
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B18BC
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0xC3
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B18B4: .4byte gSprites
+_080B18B8: .4byte 0x000003ff
+_080B18BC: .4byte 0xfffffc00
+_080B18C0:
+ ldr r0, _080B1914
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x14
+ ldr r3, _080B1918
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B191C
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+_080B18E4:
+ adds r2, r4, 0
+ ldr r4, _080B1914
+ adds r2, r5
+ lsls r2, 2
+ adds r1, r2, r4
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ subs r0, 0x5
+ ands r0, r3
+ strb r0, [r1]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, _080B1920
+ str r0, [r2]
+ ldr r2, _080B1924
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1914: .4byte gSprites
+_080B1918: .4byte 0x000003ff
+_080B191C: .4byte 0xfffffc00
+_080B1920: .4byte sub_80B16D0
+_080B1924: .4byte 0x02019204
+ thumb_func_end sub_80B1710
+
+ thumb_func_start sub_80B1928
+sub_80B1928: @ 80B1928
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080B19BC
+ ldr r0, _080B19C0
+ mov r10, r0
+ movs r1, 0x58
+ adds r1, r6
+ mov r9, r1
+ ldr r0, _080B19C4
+ mov r8, r0
+ ldr r7, _080B19C8
+_080B1946:
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ ldr r4, _080B19CC
+ cmp r5, r0
+ bge _080B1952
+ adds r4, 0x40
+_080B1952:
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r0, r5, 0
+ adds r0, 0x11
+ adds r1, r0
+ lsls r1, 5
+ add r1, r8
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r0, r4, 0
+ adds r0, 0x20
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r10
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r2, r5, 0
+ adds r2, 0x19
+ adds r1, r2
+ lsls r1, 5
+ add r1, r8
+ adds r2, r7, 0
+ bl CpuSet
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ ble _080B19A8
+ bl sub_80B1A2C
+_080B19A8:
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080B1946
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B19BC: .4byte 0x02019204
+_080B19C0: .4byte gSprites
+_080B19C4: .4byte 0x06010000
+_080B19C8: .4byte REG_BG0CNT
+_080B19CC: .4byte gContestApplauseMeterGfx
+ thumb_func_end sub_80B1928
+
+ thumb_func_start unref_sub_80B19D0
+unref_sub_80B19D0: @ 80B19D0
+ push {lr}
+ sub sp, 0x18
+ ldr r1, _080B19F4
+ add r0, sp, 0x4
+ bl StringCopy
+ ldr r0, _080B19F8
+ movs r2, 0xAA
+ lsls r2, 2
+ movs r1, 0
+ str r1, [sp]
+ add r1, sp, 0x4
+ movs r3, 0
+ bl sub_8003460
+ add sp, 0x18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B19F4: .4byte gUnknown_083CC2EC
+_080B19F8: .4byte gUnknown_03004210
+ thumb_func_end unref_sub_80B19D0
+
+ thumb_func_start contest_get_move_excitement
+contest_get_move_excitement: @ 80B19FC
+ lsls r0, 16
+ ldr r3, _080B1A20
+ ldr r1, _080B1A24
+ lsrs r0, 13
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ lsls r1, 29
+ lsrs r1, 29
+ ldr r0, _080B1A28
+ ldrh r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r1, r0
+ adds r1, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ bx lr
+ .align 2, 0
+_080B1A20: .4byte gContestExcitementTable
+_080B1A24: .4byte gContestMoves
+_080B1A28: .4byte gUnknown_0203869C
+ thumb_func_end contest_get_move_excitement
+
+ thumb_func_start sub_80B1A2C
+sub_80B1A2C: @ 80B1A2C
+ push {r4,r5,lr}
+ ldr r0, _080B1A60
+ movs r1, 0xA
+ bl CreateTask
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B1A64
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _080B1A68
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B1A60: .4byte c3_08130B10
+_080B1A64: .4byte gTasks
+_080B1A68: .4byte 0x0000abe2
+ thumb_func_end sub_80B1A2C
+
+ thumb_func_start c3_08130B10
+c3_08130B10: @ 80B1A6C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B1A9C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080B1B06
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080B1AA0
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ b _080B1AA4
+ .align 2, 0
+_080B1A9C: .4byte gTasks
+_080B1AA0:
+ ldrh r0, [r2, 0x10]
+ subs r0, 0x1
+_080B1AA4:
+ strh r0, [r2, 0x10]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r6, r3, 0
+ adds r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldr r3, _080B1B0C
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B1AD6
+ cmp r0, 0x10
+ bne _080B1B06
+_080B1AD6:
+ ldrh r0, [r4, 0xE]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0xE]
+ ldr r0, _080B1B10
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bgt _080B1B06
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ adds r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1F
+ bl BlendPalette
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1B06:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1B0C: .4byte 0x00007fff
+_080B1B10: .4byte 0x02019204
+ thumb_func_end c3_08130B10
+
+ thumb_func_start sub_80B1B14
+sub_80B1B14: @ 80B1B14
+ push {r4,lr}
+ ldr r0, _080B1B58
+ movs r1, 0xA
+ bl CreateTask
+ ldr r4, _080B1B5C
+ ldr r3, _080B1B60
+ adds r2, r3, 0
+ adds r2, 0x58
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080B1B64
+ strh r1, [r0, 0x24]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3, 0x6]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1B58: .4byte sub_80B1B68
+_080B1B5C: .4byte gSprites
+_080B1B60: .4byte 0x02019204
+_080B1B64: .4byte 0x0000ffba
+ thumb_func_end sub_80B1B14
+
+ thumb_func_start sub_80B1B68
+sub_80B1B68: @ 80B1B68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r4, _080B1BD0
+ adds r0, r4, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B1BD4
+ adds r2, r0, r1
+ ldr r0, _080B1BD8
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r5, 0xD0
+ lsls r5, 3
+ adds r0, r5, 0
+ ldrh r5, [r1, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r5, [r2, 0x24]
+ adds r0, r5
+ strh r0, [r2, 0x24]
+ ldrb r0, [r1, 0x1C]
+ strh r0, [r1, 0x1C]
+ movs r1, 0x24
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080B1BB2
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_080B1BB2:
+ movs r5, 0x24
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080B1BCA
+ ldrb r1, [r4, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x6]
+ adds r0, r3, 0
+ bl DestroyTask
+_080B1BCA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1BD0: .4byte 0x02019204
+_080B1BD4: .4byte gSprites
+_080B1BD8: .4byte gTasks
+ thumb_func_end sub_80B1B68
+
+ thumb_func_start sub_80B1BDC
+sub_80B1BDC: @ 80B1BDC
+ push {r4-r6,lr}
+ ldr r6, _080B1C04
+ ldr r4, _080B1C08
+ adds r5, r4, 0
+ adds r5, 0x58
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080B1C0C
+ ldrb r1, [r4, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ b _080B1C28
+ .align 2, 0
+_080B1C04: .4byte gSprites
+_080B1C08: .4byte 0x02019204
+_080B1C0C:
+ ldr r0, _080B1C30
+ movs r1, 0xA
+ bl CreateTask
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x40
+ orrs r0, r1
+_080B1C28:
+ strb r0, [r4, 0x6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1C30: .4byte sub_80B1C34
+ thumb_func_end sub_80B1BDC
+
+ thumb_func_start sub_80B1C34
+sub_80B1C34: @ 80B1C34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r5, _080B1CAC
+ adds r0, r5, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B1CB0
+ adds r3, r0, r1
+ ldr r0, _080B1CB4
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r0
+ movs r1, 0xD0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r1, [r2, 0x1C]
+ adds r0, r1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x24]
+ subs r1, r0
+ strh r1, [r3, 0x24]
+ ldrb r0, [r2, 0x1C]
+ strh r0, [r2, 0x1C]
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ movs r1, 0x46
+ negs r1, r1
+ cmp r0, r1
+ bge _080B1C82
+ ldr r0, _080B1CB8
+ strh r0, [r3, 0x24]
+_080B1C82:
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ cmp r0, r1
+ bne _080B1CA6
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r5, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x6]
+ adds r0, r4, 0
+ bl DestroyTask
+_080B1CA6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1CAC: .4byte 0x02019204
+_080B1CB0: .4byte gSprites
+_080B1CB4: .4byte gTasks
+_080B1CB8: .4byte 0x0000ffba
+ thumb_func_end sub_80B1C34
+
+ thumb_func_start sub_80B1CBC
+sub_80B1CBC: @ 80B1CBC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B1CF0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B1CF4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ ldr r2, _080B1CF8
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1CF0: .4byte sub_80B1CFC
+_080B1CF4: .4byte gTasks
+_080B1CF8: .4byte 0x02019204
+ thumb_func_end sub_80B1CBC
+
+ thumb_func_start sub_80B1CFC
+sub_80B1CFC: @ 80B1CFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B1D20
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B1D30
+ cmp r0, 0x1
+ bgt _080B1D24
+ cmp r0, 0
+ beq _080B1D2A
+ b _080B1D78
+ .align 2, 0
+_080B1D20: .4byte gTasks
+_080B1D24:
+ cmp r0, 0x2
+ beq _080B1D50
+ b _080B1D78
+_080B1D2A:
+ bl sub_80B1B14
+ b _080B1D44
+_080B1D30:
+ ldr r0, _080B1D4C
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080B1D78
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl nullsub_18
+_080B1D44:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _080B1D78
+ .align 2, 0
+_080B1D4C: .4byte 0x02019204
+_080B1D50:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B1D78
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ bl sub_80B1928
+ ldr r2, _080B1D80
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x6]
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1D78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1D80: .4byte 0x02019204
+ thumb_func_end sub_80B1CFC
+
+ thumb_func_start unref_sub_80B1D84
+unref_sub_80B1D84: @ 80B1D84
+ ldr r3, _080B1DB0
+ ldr r2, _080B1DB4
+ adds r2, 0x58
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080B1DB0: .4byte gSprites
+_080B1DB4: .4byte 0x02019204
+ thumb_func_end unref_sub_80B1D84
+
+ thumb_func_start unref_sub_80B1DB8
+unref_sub_80B1DB8: @ 80B1DB8
+ ldr r2, _080B1DD4
+ ldr r0, _080B1DD8
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080B1DD4: .4byte gSprites
+_080B1DD8: .4byte 0x02019204
+ thumb_func_end unref_sub_80B1DB8
+
+ thumb_func_start sub_80B1DDC
+sub_80B1DDC: @ 80B1DDC
+ push {lr}
+ ldr r0, _080B1DF4
+ movs r1, 0xF
+ bl CreateTask
+ ldr r2, _080B1DF8
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1DF4: .4byte sub_80B1DFC
+_080B1DF8: .4byte 0x02019204
+ thumb_func_end sub_80B1DDC
+
+ thumb_func_start sub_80B1DFC
+sub_80B1DFC: @ 80B1DFC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080B1E3C
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x6
+ ble _080B1E8E
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080B1E50
+ ldr r1, _080B1E40
+ ldr r2, _080B1E44
+ ldr r0, _080B1E48
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B1E4C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080B1E66
+ .align 2, 0
+_080B1E3C: .4byte gTasks
+_080B1E40: .4byte 0x02016800
+_080B1E44: .4byte 0x06002000
+_080B1E48: .4byte 0x040000d4
+_080B1E4C: .4byte 0x84000400
+_080B1E50:
+ ldr r1, _080B1E94
+ ldr r2, _080B1E98
+ ldr r0, _080B1E9C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B1EA0
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+_080B1E66:
+ adds r0, r4, 0
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x1E]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0x1E]
+ movs r1, 0x20
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x9
+ bne _080B1E8E
+ ldr r2, _080B1EA4
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x6]
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1E8E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1E94: .4byte 0x02015800
+_080B1E98: .4byte 0x06002000
+_080B1E9C: .4byte 0x040000d4
+_080B1EA0: .4byte 0x84000400
+_080B1EA4: .4byte 0x02019204
+ thumb_func_end sub_80B1DFC
+
+ thumb_func_start sub_80B1EA8
+sub_80B1EA8: @ 80B1EA8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080B1EE4
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ cmp r4, 0
+ ble _080B1F08
+ ldr r7, _080B1EE8
+ lsls r0, r5, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _080B1EF0
+ movs r5, 0
+ ldr r2, _080B1EEC
+ movs r1, 0x13
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080B1F1E
+ .align 2, 0
+_080B1EE4: .4byte sub_80B1F4C
+_080B1EE8: .4byte 0x0000237e
+_080B1EEC: .4byte 0x02019204
+_080B1EF0:
+ ldr r2, _080B1F04
+ movs r1, 0x13
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ b _080B1F1E
+ .align 2, 0
+_080B1F04: .4byte 0x02019204
+_080B1F08:
+ movs r7, 0
+ lsls r0, r5, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _080B1F18
+ movs r5, 0
+ movs r3, 0xC
+ b _080B1F1C
+_080B1F18:
+ movs r5, 0xC
+ movs r3, 0
+_080B1F1C:
+ ldr r2, _080B1F44
+_080B1F1E:
+ ldr r1, _080B1F48
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x8]
+ strh r5, [r0, 0xA]
+ asrs r1, r4, 24
+ strh r1, [r0, 0xC]
+ strh r3, [r0, 0xE]
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1F44: .4byte 0x02019204
+_080B1F48: .4byte gTasks
+ thumb_func_end sub_80B1EA8
+
+ thumb_func_start sub_80B1F4C
+sub_80B1F4C: @ 80B1F4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080B1F7C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B1FC4
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _080B1F80
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ b _080B1F84
+ .align 2, 0
+_080B1F7C: .4byte gTasks
+_080B1F80:
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+_080B1F84:
+ strh r0, [r3, 0xA]
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r2
+ ldrb r2, [r4, 0xA]
+ ldrh r3, [r4, 0x8]
+ movs r0, 0x11
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldrh r3, [r4, 0x8]
+ movs r0, 0x1A
+ movs r1, 0x1
+ bl BlendPalette
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B1FC4
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r2, _080B1FCC
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+_080B1FC4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1FCC: .4byte 0x02019204
+ thumb_func_end sub_80B1F4C
+
+ thumb_func_start sub_80B1FD0
+sub_80B1FD0: @ 80B1FD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080B204C
+ ldr r6, _080B2050
+ adds r4, r0, 0
+ adds r4, 0xD8
+ adds r7, r0, 0
+_080B1FE8:
+ ldrb r1, [r7, 0x10]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2064
+ mov r0, r8
+ cmp r0, 0
+ beq _080B2064
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80B208C
+ ldrb r2, [r4, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, _080B2054
+ adds r1, r2
+ ldr r2, _080B2058
+ bl CpuSet
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r2, _080B205C
+ ldr r0, _080B2060
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x22]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ b _080B2076
+ .align 2, 0
+_080B204C: .4byte 0x02019260
+_080B2050: .4byte gSprites
+_080B2054: .4byte 0x060100a0
+_080B2058: .4byte REG_BG0HOFS
+_080B205C: .4byte gUnknown_083CA33C
+_080B2060: .4byte gUnknown_02038696
+_080B2064:
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080B2076:
+ strb r1, [r0]
+ adds r4, 0x4
+ adds r7, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1FE8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1FD0
+
+ thumb_func_start sub_80B208C
+sub_80B208C: @ 80B208C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B20B0
+ adds r2, r1, r0
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080B20B8
+ ldrb r0, [r2, 0x19]
+ lsls r0, 6
+ ldr r1, _080B20B4
+ adds r0, r1
+ b _080B20BA
+ .align 2, 0
+_080B20B0: .4byte 0x02019260
+_080B20B4: .4byte gContestNextTurnNumbersGfx
+_080B20B8:
+ ldr r0, _080B20C0
+_080B20BA:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B20C0: .4byte gContestNextTurnRandomGfx
+ thumb_func_end sub_80B208C
+
+ thumb_func_start unref_sub_80B20C4
+unref_sub_80B20C4: @ 80B20C4
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r7, _080B2134
+_080B20CA:
+ adds r0, r6, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B2126
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2126
+ ldr r0, _080B2138
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_80AEFE8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 6
+ ldr r2, _080B213C
+ adds r1, r4, r2
+ strh r0, [r1]
+ ldr r1, _080B2140
+ adds r2, r4, r1
+ adds r1, r0, 0x1
+ strh r1, [r2]
+ ldr r1, _080B2144
+ adds r2, r4, r1
+ adds r1, r0, 0
+ adds r1, 0x10
+ strh r1, [r2]
+ ldr r2, _080B2148
+ adds r4, r2
+ adds r0, 0x11
+ strh r0, [r4]
+ movs r0, 0x63
+ bl PlaySE
+_080B2126:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B20CA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2134: .4byte 0x020192dd
+_080B2138: .4byte gUnknown_02038696
+_080B213C: .4byte 0x0600c028
+_080B2140: .4byte 0x0600c02a
+_080B2144: .4byte 0x0600c068
+_080B2148: .4byte 0x0600c06a
+ thumb_func_end unref_sub_80B20C4
+
+ thumb_func_start sub_80B214C
+sub_80B214C: @ 80B214C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B2178
+ adds r2, r1, r0
+ ldrb r1, [r2, 0x15]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B2172
+ ldrb r1, [r2, 0xC]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B217C
+_080B2172:
+ movs r0, 0
+ b _080B217E
+ .align 2, 0
+_080B2178: .4byte 0x02019260
+_080B217C:
+ movs r0, 0x1
+_080B217E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B214C
+
+ thumb_func_start sub_80B2184
+sub_80B2184: @ 80B2184
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _080B2250
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080B2254
+ movs r2, 0xF0
+ strh r2, [r0]
+ ldr r0, _080B2258
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080B225C
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080B2260
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _080B2264
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080B2268
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080B226C
+ bl LZDecompressVram
+ ldrb r1, [r4]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r4]
+ movs r4, 0
+ ldr r6, _080B2270
+ adds r7, r2, 0
+ movs r5, 0x4
+ ldr r3, _080B2274
+_080B21EE:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ ldrb r0, [r3, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B21EE
+ ldr r3, _080B2278
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r3]
+ ldr r2, _080B227C
+ ldrb r0, [r2]
+ ands r1, r0
+ orrs r1, r4
+ strb r1, [r2]
+ adds r2, 0x2
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2250: .4byte REG_BG1CNT
+_080B2254: .4byte gUnknown_030042C0
+_080B2258: .4byte gUnknown_030041B4
+_080B225C: .4byte REG_BG1HOFS
+_080B2260: .4byte 0x0600f000
+_080B2264: .4byte 0x040000d4
+_080B2268: .4byte 0x85000400
+_080B226C: .4byte gUnknown_08D17C3C
+_080B2270: .4byte gSprites
+_080B2274: .4byte 0x02019338
+_080B2278: .4byte REG_BG2CNT
+_080B227C: .4byte REG_BG0CNT
+ thumb_func_end sub_80B2184
+
+ thumb_func_start sub_80B2280
+sub_80B2280: @ 80B2280
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r2, _080B2358
+ movs r3, 0x80
+ lsls r3, 6
+ ldr r0, _080B235C
+ mov r12, r0
+ ldr r0, _080B2360
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080B2364
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080B2368
+ movs r7, 0x85
+ lsls r7, 24
+_080B22A4:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080B22A4
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _080B236C
+ movs r2, 0
+ str r2, [sp]
+ ldr r0, _080B2364
+ mov r3, sp
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080B2368
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ strh r2, [r0]
+ mov r3, r8
+ strh r2, [r3]
+ ldr r2, _080B2370
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r3, 0xD
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ movs r4, 0
+ ldr r5, _080B2374
+ adds r6, r3, 0
+ ldr r3, _080B2378
+_080B231E:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldrb r0, [r3, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B231E
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2358: .4byte 0x06008000
+_080B235C: .4byte gUnknown_030042C0
+_080B2360: .4byte gUnknown_030041B4
+_080B2364: .4byte 0x040000d4
+_080B2368: .4byte 0x85000400
+_080B236C: .4byte 0x0600f000
+_080B2370: .4byte REG_BG1CNT
+_080B2374: .4byte gSprites
+_080B2378: .4byte 0x02019338
+ thumb_func_end sub_80B2280
+
+ thumb_func_start sub_80B237C
+sub_80B237C: @ 80B237C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080B23AC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080B23B0
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0x62
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080B23B4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B23B8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B23AC: .4byte gUnknown_030042C0
+_080B23B0: .4byte gUnknown_030041B4
+_080B23B4: .4byte gTasks
+_080B23B8: .4byte sub_80B23BC
+ thumb_func_end sub_80B237C
+
+ thumb_func_start sub_80B23BC
+sub_80B23BC: @ 80B23BC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080B23F4
+ ldrh r0, [r1]
+ subs r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080B23D4
+ movs r0, 0
+ strh r0, [r1]
+_080B23D4:
+ ldrh r2, [r1]
+ cmp r2, 0
+ bne _080B23EE
+ ldr r0, _080B23F8
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldr r0, _080B23FC
+ str r0, [r1]
+_080B23EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B23F4: .4byte gUnknown_030041B4
+_080B23F8: .4byte gTasks
+_080B23FC: .4byte sub_80B2400
+ thumb_func_end sub_80B23BC
+
+ thumb_func_start sub_80B2400
+sub_80B2400: @ 80B2400
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080B2424
+ lsls r3, r4, 2
+ adds r0, r3, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _080B247C
+ cmp r1, 0x1
+ bgt _080B2428
+ cmp r1, 0
+ beq _080B2432
+ b _080B24FC
+ .align 2, 0
+_080B2424: .4byte gTasks
+_080B2428:
+ cmp r1, 0x2
+ beq _080B24D6
+ cmp r1, 0x3
+ beq _080B24EC
+ b _080B24FC
+_080B2432:
+ movs r2, 0
+ adds r6, r3, 0
+ ldr r5, _080B2470
+ ldr r3, _080B2474
+_080B243A:
+ adds r0, r2, r5
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B243A
+ bl sub_80AFA5C
+ bl sub_80B0588
+ bl sub_80AEF50
+ bl sub_80B1118
+ movs r0, 0x1
+ bl sub_80B1FD0
+ bl sub_80AFFA0
+ ldr r0, _080B2478
+ adds r1, r6, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B2470: .4byte 0x02019218
+_080B2474: .4byte gUnknown_02038696
+_080B2478: .4byte gTasks
+_080B247C:
+ ldr r0, _080B24C0
+ ldrb r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080B24D0
+ ldr r2, _080B24C4
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B249E
+ bl sub_80AF438
+_080B249E:
+ ldr r4, _080B24C8
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B24CC
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B24C0: .4byte gUnknown_0203869A
+_080B24C4: .4byte 0x02019204
+_080B24C8: .4byte sub_80C8C80
+_080B24CC: .4byte sub_80AD8DC
+_080B24D0:
+ bl sub_80AF438
+ b _080B24E2
+_080B24D6:
+ ldr r0, _080B24E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080B24FC
+_080B24E2:
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B24E8: .4byte 0x02019204
+_080B24EC:
+ bl sub_80AF120
+ bl sub_80AEB30
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080B2504
+ str r0, [r5]
+_080B24FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2504: .4byte sub_80B253C
+ thumb_func_end sub_80B2400
+
+ thumb_func_start sub_80B2508
+sub_80B2508: @ 80B2508
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080B2530
+ ldrh r0, [r1]
+ adds r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA0
+ ble _080B252C
+ ldr r0, _080B2534
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080B2538
+ str r0, [r1]
+_080B252C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2530: .4byte gUnknown_030041B4
+_080B2534: .4byte gTasks
+_080B2538: .4byte sub_80ADCDC
+ thumb_func_end sub_80B2508
+
+ thumb_func_start sub_80B253C
+sub_80B253C: @ 80B253C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B255C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x9
+ bgt _080B2560
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080B259C
+ .align 2, 0
+_080B255C: .4byte gTasks
+_080B2560:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _080B257E
+ ldrh r2, [r1, 0x8]
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x10
+ bne _080B257A
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080B259C
+_080B257A:
+ adds r0, r2, 0x1
+ b _080B259A
+_080B257E:
+ ldrh r0, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080B2598
+ strh r2, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldr r0, _080B2594
+ str r0, [r1]
+ b _080B259C
+ .align 2, 0
+_080B2594: .4byte sub_80B25A4
+_080B2598:
+ subs r0, 0x1
+_080B259A:
+ strh r0, [r1, 0x8]
+_080B259C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B253C
+
+ thumb_func_start sub_80B25A4
+sub_80B25A4: @ 80B25A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B25C4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080B25C8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ b _080B25D8
+ .align 2, 0
+_080B25C4: .4byte gTasks
+_080B25C8:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r0, 0x61
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _080B25E0
+ str r0, [r4]
+_080B25D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B25E0: .4byte sub_80B2508
+ thumb_func_end sub_80B25A4
+
+ thumb_func_start sub_80B25E4
+sub_80B25E4: @ 80B25E4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r6, 0
+ ldr r5, _080B26B4
+_080B25F6:
+ bl AllocOamMatrix
+ lsls r1, r6, 2
+ ldr r2, _080B26B8
+ mov r8, r2
+ adds r4, r1, r2
+ ldrb r1, [r4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r3, 0x3]
+ movs r7, 0x3F
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r2, [r0, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r7, r9
+ cmp r7, 0x2
+ bne _080B267A
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl AnimateSprite
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+_080B267A:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B25F6
+ ldr r0, _080B26BC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B26C0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r7, r9
+ strh r7, [r1, 0x8]
+ ldr r2, _080B26C4
+ add r2, r8
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B26B4: .4byte gSprites
+_080B26B8: .4byte 0x02019338
+_080B26BC: .4byte sub_80B26C8
+_080B26C0: .4byte gTasks
+_080B26C4: .4byte 0xfffffecc
+ thumb_func_end sub_80B25E4
+
+ thumb_func_start sub_80B26C8
+sub_80B26C8: @ 80B26C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080B2750
+ ldr r4, _080B2754
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080B274A
+ ldr r0, _080B2758
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ bne _080B2718
+ adds r5, r2, 0
+ movs r3, 0x4
+ adds r2, r4, 0
+ movs r4, 0x3
+_080B26FE:
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ adds r2, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080B26FE
+_080B2718:
+ movs r4, 0
+_080B271A:
+ lsls r0, r4, 2
+ ldr r5, _080B2754
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B2750
+ adds r0, r1
+ bl FreeSpriteOamMatrix
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B271A
+ ldr r0, _080B275C
+ adds r2, r5, r0
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+ adds r0, r6, 0
+ bl DestroyTask
+_080B274A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2750: .4byte gSprites
+_080B2754: .4byte 0x02019338
+_080B2758: .4byte gTasks
+_080B275C: .4byte 0xfffffecc
+ thumb_func_end sub_80B26C8
+
+ thumb_func_start sub_80B2760
+sub_80B2760: @ 80B2760
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _080B2770
+ movs r1, 0x1
+_080B2770:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2760
+
+ thumb_func_start sub_80B2778
+sub_80B2778: @ 80B2778
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080B278C
+ cmp r1, r0
+ bls _080B2786
+ movs r1, 0
+_080B2786:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B278C: .4byte 0x0000019b
+ thumb_func_end sub_80B2778
+
+ thumb_func_start sub_80B2790
+sub_80B2790: @ 80B2790
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r4, _080B27F0
+ adds r0, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_80B2760
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080B27F4
+ lsls r0, r6, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80B2778
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, 0xE8
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ bl sub_8075624
+ ldr r1, _080B27F8
+ movs r2, 0
+ adds r0, r1, 0x3
+_080B27D0:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080B27D0
+ cmp r5, 0x90
+ beq _080B2848
+ cmp r5, 0x90
+ bgt _080B2806
+ cmp r5, 0x4C
+ beq _080B2898
+ cmp r5, 0x4C
+ bgt _080B27FC
+ cmp r5, 0xD
+ beq _080B2898
+ b _080B28BE
+ .align 2, 0
+_080B27F0: .4byte 0x02019260
+_080B27F4: .4byte gUnknown_02038570
+_080B27F8: .4byte gUnknown_02024E84
+_080B27FC:
+ cmp r5, 0x82
+ beq _080B2898
+ cmp r5, 0x8F
+ beq _080B2898
+ b _080B28BE
+_080B2806:
+ cmp r5, 0xD8
+ beq _080B2880
+ cmp r5, 0xD8
+ bgt _080B2814
+ cmp r5, 0xAE
+ beq _080B2822
+ b _080B28BE
+_080B2814:
+ cmp r5, 0xDA
+ beq _080B288C
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r5, r0
+ beq _080B2848
+ b _080B28BE
+_080B2822:
+ ldr r0, _080B2840
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x7
+ beq _080B2838
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0x7
+ bne _080B28B8
+_080B2838:
+ ldr r1, _080B2844
+ movs r0, 0
+ b _080B28BC
+ .align 2, 0
+_080B2840: .4byte gBaseStats
+_080B2844: .4byte gUnknown_0202F7C4
+_080B2848:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r4, _080B2878
+ adds r0, r4
+ ldrb r5, [r0, 0x1B]
+ ldr r6, _080B287C
+ lsls r5, 6
+ adds r0, r5, r6
+ ldrh r0, [r0]
+ bl sub_80B2778
+ adds r4, 0xE8
+ strh r0, [r4, 0x2]
+ adds r6, 0x38
+ adds r5, r6
+ ldr r0, [r5]
+ str r0, [r4, 0x10]
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x4]
+ b _080B28BE
+ .align 2, 0
+_080B2878: .4byte 0x02019260
+_080B287C: .4byte gUnknown_02038570
+_080B2880:
+ ldr r1, _080B2888
+ movs r0, 0xFF
+ b _080B28BC
+ .align 2, 0
+_080B2888: .4byte gUnknown_0202F7BE
+_080B288C:
+ ldr r1, _080B2894
+ movs r0, 0
+ b _080B28BC
+ .align 2, 0
+_080B2894: .4byte gUnknown_0202F7BE
+_080B2898:
+ ldr r0, _080B28B0
+ adds r2, r0, 0
+ adds r2, 0x5A
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne _080B28B8
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r0, _080B28B4
+ strb r1, [r0]
+ b _080B28BE
+ .align 2, 0
+_080B28B0: .4byte 0x02019204
+_080B28B4: .4byte gUnknown_0202F7C4
+_080B28B8:
+ ldr r1, _080B28C8
+ movs r0, 0x1
+_080B28BC:
+ strb r0, [r1]
+_080B28BE:
+ bl sub_80B2968
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B28C8: .4byte gUnknown_0202F7C4
+ thumb_func_end sub_80B2790
+
+ thumb_func_start unref_sub_80B28CC
+unref_sub_80B28CC: @ 80B28CC
+ push {r4,lr}
+ ldr r4, _080B28EC
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ subs r4, 0xEA
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080B28E6
+ subs r0, 0x1
+ strb r0, [r4]
+_080B28E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B28EC: .4byte 0x02019348
+ thumb_func_end unref_sub_80B28CC
+
+ thumb_func_start sub_80B28F0
+sub_80B28F0: @ 80B28F0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _080B2924
+ strb r4, [r6, 0x5]
+ ldr r5, _080B2928
+ lsls r4, 6
+ adds r0, r4, r5
+ ldrh r0, [r0]
+ bl sub_80B2778
+ strh r0, [r6]
+ adds r0, r5, 0
+ adds r0, 0x38
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r6, 0x8]
+ adds r5, 0x3C
+ adds r4, r5
+ ldr r0, [r4]
+ str r0, [r6, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2924: .4byte 0x02019348
+_080B2928: .4byte gUnknown_02038570
+ thumb_func_end sub_80B28F0
+
+ thumb_func_start sub_80B292C
+sub_80B292C: @ 80B292C
+ push {lr}
+ ldr r0, _080B2958
+ bl object_new_hidden_with_callback
+ ldr r1, _080B295C
+ strb r0, [r1, 0x3]
+ ldr r0, _080B2960
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B2964
+ adds r0, r1
+ bl InitSpriteAffineAnim
+ bl sub_80B2968
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2958: .4byte SpriteCallbackDummy
+_080B295C: .4byte gUnknown_02024BE0
+_080B2960: .4byte gUnknown_02024C08
+_080B2964: .4byte gSprites
+ thumb_func_end sub_80B292C
+
+ thumb_func_start sub_80B2968
+sub_80B2968: @ 80B2968
+ push {r4,lr}
+ ldr r0, _080B29AC
+ ldrb r0, [r0, 0x3]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080B29B0
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B29AC: .4byte gUnknown_02024BE0
+_080B29B0: .4byte gSprites
+ thumb_func_end sub_80B2968
+
+ thumb_func_start sub_80B29B4
+sub_80B29B4: @ 80B29B4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080B29D4
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x20
+ bhi _080B2A6C
+ lsls r0, 2
+ ldr r1, _080B29D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B29D4: .4byte gBattleMoves
+_080B29D8: .4byte _080B29DC
+ .align 2, 0
+_080B29DC:
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A60
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A60
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+_080B2A60:
+ ldr r1, _080B2A68
+ movs r0, 0x2
+ b _080B2A70
+ .align 2, 0
+_080B2A68: .4byte gUnknown_02024C08
+_080B2A6C:
+ ldr r1, _080B2A78
+ movs r0, 0x3
+_080B2A70:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2A78: .4byte gUnknown_02024C08
+ thumb_func_end sub_80B29B4
+
+ thumb_func_start sub_80B2A7C
+sub_80B2A7C: @ 80B2A7C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r1, _080B2AC8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080B2AB6
+_080B2AA8:
+ adds r6, 0x1
+ cmp r6, 0x2
+ bgt _080B2AB6
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B2AA8
+_080B2AB6:
+ mov r0, r9
+ cmp r0, 0xFF
+ bne _080B2AD0
+ ldr r0, _080B2ACC
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080B2AD0
+ movs r0, 0
+ b _080B2C38
+ .align 2, 0
+_080B2AC8: .4byte gUnknown_02038690
+_080B2ACC: .4byte gUnknown_02038695
+_080B2AD0:
+ ldr r0, _080B2AE4
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080B2B16
+ lsls r0, 2
+ ldr r1, _080B2AE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B2AE4: .4byte gUnknown_0203869C
+_080B2AE8: .4byte _080B2AEC
+ .align 2, 0
+_080B2AEC:
+ .4byte _080B2B16
+ .4byte _080B2B00
+ .4byte _080B2B04
+ .4byte _080B2B08
+ .4byte _080B2B0E
+_080B2B00:
+ adds r0, r7, 0x3
+ b _080B2B12
+_080B2B04:
+ adds r0, r7, 0x6
+ b _080B2B12
+_080B2B08:
+ adds r0, r7, 0
+ adds r0, 0x9
+ b _080B2B12
+_080B2B0E:
+ adds r0, r7, 0
+ adds r0, 0xC
+_080B2B12:
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B2B16:
+ mov r1, r9
+ cmp r1, 0xFE
+ beq _080B2BC4
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_80B2C4C
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r2, _080B2B98
+ lsrs r4, 19
+ ldr r0, _080B2B9C
+ adds r1, r2, r0
+ adds r1, r4, r1
+ ldr r5, _080B2BA0
+ lsls r6, 6
+ adds r0, r5, 0
+ adds r0, 0x38
+ adds r0, r6, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r4, r2
+ mov r8, r1
+ adds r0, r6, r5
+ ldrh r1, [r0]
+ ldr r0, _080B2BA4
+ add r0, r8
+ strh r1, [r0]
+ movs r0, 0xB8
+ lsls r0, 6
+ adds r1, r2, r0
+ adds r1, r4, r1
+ adds r0, r5, 0
+ adds r0, 0x3C
+ adds r0, r6, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _080B2BA8
+ adds r0, r2, r1
+ adds r0, r4, r0
+ adds r1, r5, 0x2
+ adds r1, r6, r1
+ str r2, [sp]
+ bl StringCopy
+ ldr r2, [sp]
+ ldr r0, _080B2BAC
+ adds r2, r0
+ adds r4, r2
+ adds r5, 0xD
+ adds r6, r5
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl StringCopy
+ mov r1, r9
+ cmp r1, 0xFF
+ beq _080B2BB8
+ ldr r0, _080B2BB0
+ ldrh r1, [r0]
+ ldr r0, _080B2BB4
+ add r0, r8
+ strb r1, [r0]
+ b _080B2C36
+ .align 2, 0
+_080B2B98: .4byte gSaveBlock1
+_080B2B9C: .4byte 0x00002dfc
+_080B2BA0: .4byte gUnknown_02038570
+_080B2BA4: .4byte 0x00002e04
+_080B2BA8: .4byte 0x00002e07
+_080B2BAC: .4byte 0x00002e12
+_080B2BB0: .4byte gUnknown_0203869C
+_080B2BB4: .4byte 0x00002e06
+_080B2BB8:
+ ldr r0, _080B2BC0
+ add r0, r8
+ strb r7, [r0]
+ b _080B2C36
+ .align 2, 0
+_080B2BC0: .4byte 0x00002e06
+_080B2BC4:
+ ldr r5, _080B2C14
+ ldr r2, _080B2C18
+ lsls r4, r6, 6
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r5]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r5, 0x4]
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ strh r0, [r5, 0x8]
+ adds r0, r5, 0
+ adds r0, 0xB
+ adds r1, r2, 0x2
+ adds r1, r4, r1
+ str r2, [sp]
+ bl StringCopy
+ ldr r0, _080B2C1C
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r2, [sp]
+ cmp r0, 0
+ beq _080B2C24
+ adds r0, r5, 0
+ adds r0, 0x16
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _080B2C20
+ adds r1, r2
+ bl StringCopy
+ b _080B2C32
+ .align 2, 0
+_080B2C14: .4byte 0x02015de0
+_080B2C18: .4byte gUnknown_02038570
+_080B2C1C: .4byte gUnknown_0203869A
+_080B2C20: .4byte gLinkPlayers + 0x8
+_080B2C24:
+ adds r0, r5, 0
+ adds r0, 0x16
+ adds r1, r2, 0
+ adds r1, 0xD
+ adds r1, r4, r1
+ bl StringCopy
+_080B2C32:
+ ldr r0, _080B2C48
+ strb r7, [r0, 0xA]
+_080B2C36:
+ movs r0, 0x1
+_080B2C38:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B2C48: .4byte 0x02015de0
+ thumb_func_end sub_80B2A7C
+
+ thumb_func_start sub_80B2C4C
+sub_80B2C4C: @ 80B2C4C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r0, 0x2
+ beq _080B2C6E
+ cmp r0, 0x2
+ ble _080B2C66
+ cmp r0, 0x3
+ beq _080B2CA0
+ b _080B2CD4
+_080B2C66:
+ cmp r2, 0
+ blt _080B2CD4
+ adds r0, r2, 0
+ b _080B2D16
+_080B2C6E:
+ cmp r1, 0
+ beq _080B2C98
+ movs r2, 0x4
+ ldr r0, _080B2C9C
+ adds r4, r0, 0
+ adds r4, 0x60
+ adds r3, r0, 0
+ adds r3, 0x80
+_080B2C7E:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ subs r4, 0x20
+ subs r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0x2
+ bgt _080B2C7E
+_080B2C98:
+ movs r0, 0x2
+ b _080B2D16
+ .align 2, 0
+_080B2C9C: .4byte gSaveBlock1 + 0x2DFC
+_080B2CA0:
+ cmp r1, 0
+ beq _080B2CCA
+ movs r2, 0x7
+ ldr r0, _080B2CD0
+ adds r4, r0, 0
+ adds r4, 0xC0
+ adds r3, r0, 0
+ adds r3, 0xE0
+_080B2CB0:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r7}
+ stm r1!, {r5,r7}
+ subs r4, 0x20
+ subs r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0x5
+ bgt _080B2CB0
+_080B2CCA:
+ movs r0, 0x5
+ b _080B2D16
+ .align 2, 0
+_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
+_080B2CD4:
+ ldr r0, _080B2CE8
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080B2D14
+ lsls r0, 2
+ ldr r1, _080B2CEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B2CE8: .4byte gUnknown_0203869C
+_080B2CEC: .4byte _080B2CF0
+ .align 2, 0
+_080B2CF0:
+ .4byte _080B2D04
+ .4byte _080B2D08
+ .4byte _080B2D0C
+ .4byte _080B2D10
+ .4byte _080B2D14
+_080B2D04:
+ movs r0, 0x8
+ b _080B2D16
+_080B2D08:
+ movs r0, 0x9
+ b _080B2D16
+_080B2D0C:
+ movs r0, 0xA
+ b _080B2D16
+_080B2D10:
+ movs r0, 0xB
+ b _080B2D16
+_080B2D14:
+ movs r0, 0xC
+_080B2D16:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2C4C
+
+ thumb_func_start sub_80B2D1C
+sub_80B2D1C: @ 80B2D1C
+ push {r4-r7,lr}
+ ldr r0, _080B2D48
+ ldr r4, _080B2D4C
+ ldr r1, _080B2D50
+ adds r3, r0, r1
+ movs r2, 0x7
+_080B2D28:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ adds r4, 0x20
+ adds r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080B2D28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2D48: .4byte gSaveBlock1
+_080B2D4C: .4byte gUnknown_083CC5D0
+_080B2D50: .4byte 0x00002dfc
+ thumb_func_end sub_80B2D1C
+
+ thumb_func_start CreateShopMenu
+CreateShopMenu: @ 80B2D54
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ ldr r1, _080B2D90
+ movs r0, 0
+ strb r4, [r1, 0xC]
+ strb r0, [r1, 0x9]
+ cmp r4, 0
+ bne _080B2D9C
+ movs r0, 0x2
+ strb r0, [r1, 0xA]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x7
+ bl MenuDrawTextWindow
+ ldr r3, _080B2D94
+ ldr r0, _080B2D98
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x3
+ bl PrintMenuItemsReordered
+ b _080B2DBC
+ .align 2, 0
+_080B2D90: .4byte gUnknown_03000708
+_080B2D94: .4byte gUnknown_083CC6D0
+_080B2D98: .4byte gUnknown_083CC6E8
+_080B2D9C:
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r3, _080B2DEC
+ ldr r0, _080B2DF0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x2
+ bl PrintMenuItemsReordered
+_080B2DBC:
+ ldr r0, _080B2DF4
+ ldrb r3, [r0, 0xA]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl InitMenu
+ ldr r0, _080B2DF8
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B2DEC: .4byte gUnknown_083CC6D0
+_080B2DF0: .4byte gUnknown_083CC6EB
+_080B2DF4: .4byte gUnknown_03000708
+_080B2DF8: .4byte sub_80B2E38
+ thumb_func_end CreateShopMenu
+
+ thumb_func_start SetShopMenuCallback
+SetShopMenuCallback: @ 80B2DFC
+ ldr r1, _080B2E04
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B2E04: .4byte gUnknown_03000708
+ thumb_func_end SetShopMenuCallback
+
+ thumb_func_start SetShopItemsForSale
+SetShopItemsForSale: @ 80B2E08
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0
+ ldr r3, _080B2E34
+ str r1, [r3, 0x4]
+ strb r2, [r3, 0x8]
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080B2E30
+_080B2E1A:
+ ldrb r0, [r3, 0x8]
+ adds r0, 0x1
+ strb r0, [r3, 0x8]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080B2E1A
+_080B2E30:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2E34: .4byte gUnknown_03000708
+ thumb_func_end SetShopItemsForSale
+
+ thumb_func_start sub_80B2E38
+sub_80B2E38: @ 80B2E38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080B2E60
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2E68
+ ldr r4, _080B2E64
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _080B2EF4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080B2E82
+ .align 2, 0
+_080B2E60: .4byte gMain
+_080B2E64: .4byte gUnknown_03000708
+_080B2E68:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2E90
+ ldr r4, _080B2E8C
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ cmp r0, r1
+ beq _080B2EF4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080B2E82:
+ bl MoveMenuCursor
+ strb r0, [r4, 0x9]
+ b _080B2EF4
+ .align 2, 0
+_080B2E8C: .4byte gUnknown_03000708
+_080B2E90:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2EE0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r3, _080B2EB0
+ ldrb r0, [r3, 0xC]
+ cmp r0, 0
+ bne _080B2EBC
+ ldr r1, _080B2EB4
+ ldr r2, _080B2EB8
+ b _080B2EC0
+ .align 2, 0
+_080B2EB0: .4byte gUnknown_03000708
+_080B2EB4: .4byte gUnknown_083CC6D0
+_080B2EB8: .4byte gUnknown_083CC6E8
+_080B2EBC:
+ ldr r1, _080B2ED8
+ ldr r2, _080B2EDC
+_080B2EC0:
+ ldrb r0, [r3, 0x9]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080B2EF4
+ .align 2, 0
+_080B2ED8: .4byte gUnknown_083CC6D0
+_080B2EDC: .4byte gUnknown_083CC6EB
+_080B2EE0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2EF4
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl HandleShopMenuQuit
+_080B2EF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B2E38
+
+ thumb_func_start sub_80B2EFC
+sub_80B2EFC: @ 80B2EFC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B2F24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080B2F28
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080B2F2C
+ str r0, [r1]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2F24: .4byte gTasks
+_080B2F28: .4byte BuyMenuDrawGraphics
+_080B2F2C: .4byte sub_80B2FA0
+ thumb_func_end sub_80B2EFC
+
+ thumb_func_start sub_80B2F30
+sub_80B2F30: @ 80B2F30
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B2F58
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080B2F5C
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080B2F60
+ str r0, [r1]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2F58: .4byte gTasks
+_080B2F5C: .4byte sub_80A6300
+_080B2F60: .4byte sub_80B2FA0
+ thumb_func_end sub_80B2F30
+
+ thumb_func_start HandleShopMenuQuit
+HandleShopMenuQuit: @ 80B2F64
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ bl sub_80BE3BC
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080B2F9C
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080B2F96
+ bl _call_via_r0
+_080B2F96:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2F9C: .4byte gUnknown_03000708
+ thumb_func_end HandleShopMenuQuit
+
+ thumb_func_start sub_80B2FA0
+sub_80B2FA0: @ 80B2FA0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B2FD4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B2FCE
+ ldr r0, _080B2FD8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ lsls r0, 16
+ ldrh r1, [r1, 0x1A]
+ orrs r0, r1
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_080B2FCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2FD4: .4byte gPaletteFade
+_080B2FD8: .4byte gTasks
+ thumb_func_end sub_80B2FA0
+
+ thumb_func_start ReturnToShopMenuAfterExitingSellMenu
+ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B2FF8
+ ldrb r0, [r0, 0xC]
+ bl CreateShopMenu
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2FF8: .4byte gUnknown_03000708
+ thumb_func_end ReturnToShopMenuAfterExitingSellMenu
+
+ thumb_func_start Task_ExitSellMenu
+Task_ExitSellMenu: @ 80B2FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B3040
+ ldr r0, _080B3028
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0x2
+ bne _080B3034
+ ldr r1, _080B302C
+ ldr r2, _080B3030
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080B3040
+ .align 2, 0
+_080B3028: .4byte gUnknown_03000708
+_080B302C: .4byte gOtherText_CanIHelpYou
+_080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu
+_080B3034:
+ ldr r1, _080B3048
+ ldr r2, _080B304C
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080B3040:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3048: .4byte gOtherText_AnythingElse
+_080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu
+ thumb_func_end Task_ExitSellMenu
+
+ thumb_func_start sub_80B3050
+sub_80B3050: @ 80B3050
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _080B3064
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3064: .4byte Task_ExitSellMenu
+ thumb_func_end sub_80B3050
+
+ thumb_func_start sub_80B3068
+sub_80B3068: @ 80B3068
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl Task_ExitSellMenu
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3068
+
+ thumb_func_start unref_sub_80B3078
+unref_sub_80B3078: @ 80B3078
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B308C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080B3090
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B308C: .4byte gTasks
+_080B3090: .4byte Task_ExitSellMenu
+ thumb_func_end unref_sub_80B3078
+
+ thumb_func_start sub_80B3094
+sub_80B3094: @ 80B3094
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3094
+
+ thumb_func_start sub_80B30AC
+sub_80B30AC: @ 80B30AC
+ push {r4,lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r3, _080B30F0
+ ldr r1, _080B30F4
+ ldr r0, _080B30F8
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r4, _080B30FC
+ str r4, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r3, r2
+ ldr r2, _080B3100
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ str r4, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r3, r1
+ ldr r1, _080B3104
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ str r4, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B30F0: .4byte gBG1TilemapBuffer
+_080B30F4: .4byte 0x0600e800
+_080B30F8: .4byte 0x040000d4
+_080B30FC: .4byte 0x80000400
+_080B3100: .4byte 0x0600e000
+_080B3104: .4byte 0x0600f000
+ thumb_func_end sub_80B30AC
+
+ thumb_func_start BuyMenuDrawGraphics
+BuyMenuDrawGraphics: @ 80B3108
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ bl sub_80F9438
+ bl remove_some_task
+ ldr r0, _080B3204
+ movs r5, 0
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r0, _080B3208
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ movs r1, 0xE0
+ lsls r1, 19
+ movs r6, 0
+ str r6, [sp, 0x4]
+ ldr r0, _080B320C
+ add r2, sp, 0x4
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080B3210
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080B3214
+ ldr r1, _080B3218
+ bl LZDecompressVram
+ ldr r0, _080B321C
+ ldr r1, _080B3220
+ bl sub_800D238
+ ldr r0, _080B3224
+ movs r1, 0xC0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl FreeAllSpritePalettes
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ ldr r4, _080B3228
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl BuyMenuDrawMapGraphics
+ ldr r0, _080B322C
+ strb r6, [r0, 0x9]
+ strb r5, [r0, 0xB]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x20
+ movs r3, 0x20
+ bl MenuZeroFillWindowRect
+ ldr r0, _080B3230
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7C14
+ movs r0, 0
+ movs r1, 0x7
+ bl sub_80B3764
+ bl sub_80B37EC
+ bl sub_80B3270
+ ldr r0, _080B3234
+ movs r1, 0x8
+ bl CreateTask
+ bl sub_80B3240
+ movs r0, 0x1
+ negs r0, r0
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ mov r2, r8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080B3238
+ bl SetVBlankCallback
+ ldr r0, _080B323C
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3204: .4byte REG_BG1HOFS
+_080B3208: .4byte gPaletteFade
+_080B320C: .4byte 0x040000d4
+_080B3210: .4byte 0x85000100
+_080B3214: .4byte gBuyMenuFrame_Gfx
+_080B3218: .4byte 0x06007c00
+_080B321C: .4byte gBuyMenuFrame_Tilemap
+_080B3220: .4byte 0x02018000
+_080B3224: .4byte gMenuMoneyPal
+_080B3228: .4byte gWindowConfig_81E6DFC
+_080B322C: .4byte gUnknown_03000708
+_080B3230: .4byte gSaveBlock1
+_080B3234: .4byte sub_80B40E8
+_080B3238: .4byte sub_80B30AC
+_080B323C: .4byte sub_80B3094
+ thumb_func_end BuyMenuDrawGraphics
+
+ thumb_func_start sub_80B3240
+sub_80B3240: @ 80B3240
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080B326C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B326C: .4byte gUnknown_083CC710
+ thumb_func_end sub_80B3240
+
+ thumb_func_start sub_80B3270
+sub_80B3270: @ 80B3270
+ push {lr}
+ bl sub_80F944C
+ ldr r0, _080B32A0
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x7
+ bls _080B329A
+ movs r0, 0
+ movs r1, 0xAC
+ movs r2, 0xC
+ bl sub_80F953C
+ movs r0, 0x1
+ movs r1, 0xAC
+ movs r2, 0x94
+ bl sub_80F953C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_080B329A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B32A0: .4byte gUnknown_03000708
+ thumb_func_end sub_80B3270
+
+ thumb_func_start sub_80B32A4
+sub_80B32A4: @ 80B32A4
+ push {lr}
+ ldr r0, _080B32B8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ bne _080B32BC
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+ b _080B32C4
+ .align 2, 0
+_080B32B8: .4byte gUnknown_03000708
+_080B32BC:
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+_080B32C4:
+ ldr r1, _080B32DC
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x7
+ ldrb r1, [r1, 0x8]
+ cmp r0, r1
+ blt _080B32E0
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ b _080B32E8
+ .align 2, 0
+_080B32DC: .4byte gUnknown_03000708
+_080B32E0:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+_080B32E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B32A4
+
+ thumb_func_start sub_80B32EC
+sub_80B32EC: @ 80B32EC
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r2
+ lsls r1, 1
+ adds r1, r0
+ ldr r2, _080B3304
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_080B3304: .4byte 0x0000c3e1
+ thumb_func_end sub_80B32EC
+
+ thumb_func_start BuyMenuDrawMapMetatileLayer
+BuyMenuDrawMapMetatileLayer: @ 80B3308
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r2
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r1, 0x2]
+ adds r2, r1, 0
+ adds r2, 0x40
+ ldrh r0, [r3, 0x4]
+ strh r0, [r2]
+ adds r1, 0x42
+ ldrh r0, [r3, 0x6]
+ strh r0, [r1]
+ bx lr
+ thumb_func_end BuyMenuDrawMapMetatileLayer
+
+ thumb_func_start BuyMenuDrawMapMetatile
+BuyMenuDrawMapMetatile: @ 80B3330
+ push {r4-r7,lr}
+ adds r7, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r2, r3, 0
+ lsls r0, 17
+ lsrs r0, 16
+ lsls r1, 22
+ movs r4, 0x80
+ lsls r4, 15
+ adds r1, r4
+ lsrs r1, 16
+ cmp r3, 0x1
+ beq _080B3364
+ cmp r3, 0x1
+ bgt _080B3356
+ cmp r3, 0
+ beq _080B335C
+ b _080B33C0
+_080B3356:
+ cmp r2, 0x2
+ beq _080B3398
+ b _080B33C0
+_080B335C:
+ ldr r5, _080B3360
+ b _080B3366
+ .align 2, 0
+_080B3360: .4byte gBG2TilemapBuffer
+_080B3364:
+ ldr r5, _080B3390
+_080B3366:
+ lsls r6, r0, 16
+ asrs r6, 16
+ lsls r4, r1, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl BuyMenuDrawMapMetatileLayer
+ ldr r0, _080B3394
+ adds r5, r0
+ adds r3, r7, 0
+ adds r3, 0x8
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl BuyMenuDrawMapMetatileLayer
+ b _080B33C0
+ .align 2, 0
+_080B3390: .4byte gBG3TilemapBuffer
+_080B3394: .4byte 0xfffff800
+_080B3398:
+ ldr r5, _080B33C8
+ lsls r6, r0, 16
+ asrs r6, 16
+ lsls r4, r1, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl BuyMenuDrawMapMetatileLayer
+ ldr r0, _080B33CC
+ adds r5, r0
+ adds r3, r7, 0
+ adds r3, 0x8
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl BuyMenuDrawMapMetatileLayer
+_080B33C0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B33C8: .4byte gBG3TilemapBuffer
+_080B33CC: .4byte 0xfffff000
+ thumb_func_end BuyMenuDrawMapMetatile
+
+ thumb_func_start sub_80B33D0
+sub_80B33D0: @ 80B33D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ mov r8, r2
+ lsls r4, 22
+ ldr r5, _080B3418
+ lsls r6, 17
+ asrs r6, 16
+ movs r0, 0x80
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl BuyMenuDrawMapMetatileLayer
+ ldr r0, _080B341C
+ adds r5, r0
+ movs r0, 0x8
+ add r8, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl BuyMenuDrawMapMetatileLayer
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3418: .4byte gBG3TilemapBuffer
+_080B341C: .4byte 0xfffff800
+ thumb_func_end sub_80B33D0
+
+ thumb_func_start sub_80B3420
+sub_80B3420: @ 80B3420
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r1, sp
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x3
+ strh r0, [r1]
+ ldrh r0, [r4]
+ subs r0, 0x3
+ strh r0, [r4]
+ movs r1, 0
+ ldr r0, _080B34A8
+ mov r10, r0
+ ldr r2, _080B34AC
+ mov r9, r2
+_080B3452:
+ movs r4, 0
+ lsls r1, 16
+ mov r8, r1
+ asrs r7, r1, 16
+_080B345A:
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r4, 16
+ asrs r6, r4, 16
+ adds r0, r6
+ mov r2, sp
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ adds r1, r7
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r7, 0x5
+ beq _080B34D0
+ cmp r6, 0x6
+ beq _080B34D0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, r6
+ mov r2, sp
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ adds r1, r7
+ bl MapGridGetMetatileLayerTypeAt
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r5, r10
+ bhi _080B34B0
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r0, [r0, 0x10]
+ lsls r1, r5, 4
+ ldr r2, [r0, 0xC]
+ adds r2, r1
+ b _080B34C0
+ .align 2, 0
+_080B34A8: .4byte 0x000001ff
+_080B34AC: .4byte gMapHeader
+_080B34B0:
+ mov r2, r9
+ ldr r0, [r2]
+ ldr r1, [r0, 0x14]
+ ldr r2, _080B34CC
+ adds r0, r5, r2
+ lsls r0, 4
+ ldr r2, [r1, 0xC]
+ adds r2, r0
+_080B34C0:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl BuyMenuDrawMapMetatile
+ b _080B3506
+ .align 2, 0
+_080B34CC: .4byte 0xfffffe00
+_080B34D0:
+ cmp r5, r10
+ bhi _080B34EC
+ asrs r0, r4, 16
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r1, [r1, 0x10]
+ lsls r3, r5, 4
+ ldr r2, [r1, 0xC]
+ adds r2, r3
+ mov r3, r8
+ asrs r1, r3, 16
+ bl sub_80B33D0
+ b _080B3506
+_080B34EC:
+ asrs r0, r4, 16
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r2, [r1, 0x14]
+ ldr r3, _080B354C
+ adds r1, r5, r3
+ lsls r1, 4
+ ldr r2, [r2, 0xC]
+ adds r2, r1
+ mov r3, r8
+ asrs r1, r3, 16
+ bl sub_80B33D0
+_080B3506:
+ cmp r7, 0
+ bne _080B3520
+ asrs r1, r4, 16
+ cmp r1, 0
+ beq _080B3520
+ cmp r1, 0x6
+ beq _080B3520
+ lsls r1, 17
+ asrs r1, 16
+ ldr r0, _080B3550
+ movs r2, 0x40
+ bl sub_80B32EC
+_080B3520:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080B345A
+ adds r0, r1, 0
+ add r0, r8
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080B3452
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B354C: .4byte 0xfffffe00
+_080B3550: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80B3420
+
+ thumb_func_start BuyMenuDrawMapGraphics
+BuyMenuDrawMapGraphics: @ 80B3554
+ push {lr}
+ bl sub_80F9020
+ bl sub_80B356C
+ bl sub_80B368C
+ bl sub_80B3420
+ pop {r0}
+ bx r0
+ thumb_func_end BuyMenuDrawMapGraphics
+
+ thumb_func_start sub_80B356C
+sub_80B356C: @ 80B356C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r8, r0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ bl PlayerGetZCoord
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r5, 0
+ ldr r2, _080B3674
+ movs r1, 0x10
+_080B3598:
+ lsls r0, r5, 3
+ adds r0, r2
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080B3598
+ movs r5, 0
+ ldr r7, _080B3678
+ subs r1, r7, 0x6
+ mov r9, r1
+_080B35B0:
+ movs r4, 0
+ adds r2, r5, 0x1
+ mov r10, r2
+_080B35B6:
+ mov r1, sp
+ ldr r3, _080B367C
+ adds r0, r3, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ adds r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080B3680
+ adds r1, r2, 0
+ mov r3, sp
+ ldrh r3, [r3, 0x2]
+ adds r1, r3
+ adds r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x10
+ beq _080B3650
+ mov r0, r8
+ lsls r3, r0, 3
+ mov r1, r9
+ adds r0, r3, r1
+ movs r6, 0
+ strh r2, [r0]
+ mov r0, r9
+ adds r0, 0x2
+ adds r0, r3, r0
+ strh r4, [r0]
+ ldr r1, _080B3684
+ adds r0, r3, r1
+ strh r5, [r0]
+ ldr r1, _080B3688
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ bne _080B3616
+ adds r0, r3, r7
+ strh r6, [r0]
+_080B3616:
+ ldrb r0, [r2, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x2
+ bne _080B3626
+ adds r1, r3, r7
+ movs r0, 0x1
+ strh r0, [r1]
+_080B3626:
+ ldrb r0, [r2, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x3
+ bne _080B3636
+ adds r1, r3, r7
+ movs r0, 0x2
+ strh r0, [r1]
+_080B3636:
+ ldrb r0, [r2, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ bne _080B3646
+ adds r1, r3, r7
+ movs r0, 0x3
+ strh r0, [r1]
+_080B3646:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080B3650:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bls _080B35B6
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080B35B0
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3674: .4byte gUnknown_020386A4
+_080B3678: .4byte gUnknown_020386AA
+_080B367C: .4byte 0x0000fffd
+_080B3680: .4byte 0x0000fffe
+_080B3684: .4byte gUnknown_020386A8
+_080B3688: .4byte gMapObjects
+ thumb_func_end sub_80B356C
+
+ thumb_func_start sub_80B368C
+sub_80B368C: @ 80B368C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r5, 0
+ ldr r6, _080B3710
+ adds r0, r6, 0x6
+ mov r8, r0
+ ldr r7, _080B3714
+_080B369E:
+ lsls r4, r5, 3
+ adds r1, r4, r6
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x10
+ beq _080B36F8
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0x2
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ lsls r2, 4
+ adds r2, 0x8
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r6, 0x4
+ adds r1, r4, r1
+ ldrh r3, [r1]
+ lsls r3, 20
+ movs r1, 0x80
+ lsls r1, 14
+ adds r3, r1
+ asrs r3, 16
+ movs r1, 0x2
+ str r1, [sp]
+ ldr r1, _080B3718
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080B371C
+ adds r2, r0
+ mov r1, r8
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_080B36F8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080B369E
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3710: .4byte gUnknown_020386A4
+_080B3714: .4byte gMapObjects
+_080B3718: .4byte SpriteCallbackDummy
+_080B371C: .4byte gSprites
+ thumb_func_end sub_80B368C
+
+ thumb_func_start sub_80B3720
+sub_80B3720: @ 80B3720
+ push {r4-r6,lr}
+ movs r1, 0
+ ldr r6, _080B3754
+ ldr r5, _080B3758
+ ldr r4, _080B375C
+ ldr r0, _080B3760
+ adds r3, r0, 0
+_080B372E:
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080B3742
+ adds r1, r6
+ adds r0, r3
+ strh r0, [r1]
+_080B3742:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ ble _080B372E
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3754: .4byte gBG1TilemapBuffer
+_080B3758: .4byte 0x000003ff
+_080B375C: .4byte 0x02018000
+_080B3760: .4byte 0x0000c3e0
+ thumb_func_end sub_80B3720
+
+ thumb_func_start sub_80B3764
+sub_80B3764: @ 80B3764
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_80B3720
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80B39D0
+ ldr r0, _080B3798
+ ldrb r0, [r0, 0x9]
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x2
+ movs r3, 0x8
+ bl InitMenu
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3798: .4byte gUnknown_03000708
+ thumb_func_end sub_80B3764
+
+ thumb_func_start sub_80B379C
+sub_80B379C: @ 80B379C
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r0, _080B37E0
+ mov r12, r0
+ ldr r7, _080B37E4
+ ldr r0, _080B37E8
+ adds r6, r0, 0
+_080B37AA:
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r5, r1, 0x1
+ lsls r4, r0, 5
+ lsls r3, r1, 5
+_080B37B6:
+ adds r1, r4, r2
+ lsls r1, 1
+ add r1, r12
+ adds r0, r3, r2
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ adds r0, r6, r0
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xD
+ bls _080B37B6
+ lsls r0, r5, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _080B37AA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B37E0: .4byte gBG1TilemapBuffer
+_080B37E4: .4byte 0x02018300
+_080B37E8: .4byte 0x0000c3e0
+ thumb_func_end sub_80B379C
+
+ thumb_func_start sub_80B37EC
+sub_80B37EC: @ 80B37EC
+ push {lr}
+ bl sub_80B3A70
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B37EC
+
+ thumb_func_start sub_80B37F8
+sub_80B37F8: @ 80B37F8
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080B3884
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r1, 0x9]
+ adds r0, r2
+ ldr r1, [r1, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetPriceReduction
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r4, r0
+ ldr r0, _080B3888
+ lsls r5, r6, 2
+ adds r5, r6
+ lsls r5, 3
+ adds r5, r0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ muls r0, r4
+ movs r1, 0x6
+ movs r2, 0x6
+ movs r3, 0xB
+ bl sub_80B7A94
+ ldr r0, _080B388C
+ movs r1, 0xFC
+ strb r1, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x6
+ strb r1, [r0, 0x2]
+ adds r0, 0x3
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B3890
+ movs r1, 0x1
+ movs r2, 0xB
+ bl MenuPrint
+ ldr r0, _080B3894
+ movs r1, 0x2
+ str r1, [sp]
+ ldr r1, _080B3898
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xB
+ movs r3, 0xC
+ bl sub_80A3FA0
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3884: .4byte gUnknown_03000708
+_080B3888: .4byte gTasks
+_080B388C: .4byte gStringVar1
+_080B3890: .4byte gOtherText_xString1
+_080B3894: .4byte gBG1TilemapBuffer
+_080B3898: .4byte 0x0000c3e1
+ thumb_func_end sub_80B37F8
+
+ thumb_func_start sub_80B389C
+sub_80B389C: @ 80B389C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r9, r2
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r5, _080B392C
+ mov r0, r8
+ cmp r0, 0
+ beq _080B38C8
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+_080B38C8:
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl itemid_copy_name
+ ldr r6, _080B392C
+ lsls r7, r4, 3
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r6, 0
+ movs r1, 0x70
+ adds r2, r7, 0
+ movs r3, 0x58
+ bl sub_8072A18
+ adds r5, r6, 0
+ mov r0, r8
+ cmp r0, 0
+ beq _080B38EE
+ adds r5, r6, 0x3
+_080B38EE:
+ mov r0, r9
+ bl itemid_get_market_price
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetPriceReduction
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl sub_80B79F8
+ adds r0, r6, 0
+ movs r1, 0xCA
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80729D8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B392C: .4byte gStringVar1
+ thumb_func_end sub_80B389C
+
+ thumb_func_start sub_80B3930
+sub_80B3930: @ 80B3930
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r2, _080B39A0
+ cmp r4, 0
+ beq _080B395A
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+_080B395A:
+ lsls r6, r3, 5
+ ldr r0, _080B39A4
+ mov r8, r0
+ adds r1, r6, r0
+ adds r0, r2, 0
+ bl StringCopy
+ ldr r5, _080B39A0
+ mov r0, r9
+ lsls r7, r0, 3
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x70
+ adds r2, r7, 0
+ movs r3, 0x58
+ bl sub_8072A18
+ adds r2, r5, 0
+ cmp r4, 0
+ beq _080B3986
+ adds r2, r5, 0x3
+_080B3986:
+ mov r0, r8
+ subs r0, 0x1
+ adds r3, r6, r0
+ ldrh r1, [r3, 0x14]
+ ldr r0, _080B39A8
+ cmp r1, r0
+ bne _080B39AC
+ movs r0, 0x19
+ mov r1, r9
+ adds r2, r4, 0
+ bl sub_80B7B34
+ b _080B39C2
+ .align 2, 0
+_080B39A0: .4byte gStringVar1
+_080B39A4: .4byte gDecorations + 0x1
+_080B39A8: .4byte 0x00002710
+_080B39AC:
+ ldrh r1, [r3, 0x14]
+ adds r0, r2, 0
+ movs r2, 0x4
+ bl sub_80B79F8
+ adds r0, r5, 0
+ movs r1, 0xCA
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80729D8
+_080B39C2:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3930
+
+ thumb_func_start sub_80B39D0
+sub_80B39D0: @ 80B39D0
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ adds r5, r2, 0
+ b _080B3A1A
+_080B39D8:
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0
+ bne _080B39FC
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ ldr r1, [r1, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r4, 25
+ movs r2, 0x80
+ lsls r2, 18
+ adds r1, r2
+ lsrs r1, 24
+ adds r2, r5, 0
+ bl sub_80B389C
+ b _080B3A18
+_080B39FC:
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ ldr r1, [r1, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r4, 25
+ movs r2, 0x80
+ lsls r2, 18
+ adds r1, r2
+ lsrs r1, 24
+ adds r2, r5, 0
+ bl sub_80B3930
+_080B3A18:
+ adds r0, r4, 0x1
+_080B3A1A:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bgt _080B3A2E
+ ldr r1, _080B3A68
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ ldrb r2, [r1, 0x8]
+ cmp r0, r2
+ blt _080B39D8
+_080B3A2E:
+ cmp r4, 0x8
+ beq _080B3A60
+ ldr r1, _080B3A68
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ ldrb r1, [r1, 0x8]
+ cmp r0, r1
+ bne _080B3A60
+ lsls r3, r4, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xE
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080B3A6C
+ movs r1, 0xE
+ adds r2, r4, 0
+ bl MenuPrint
+_080B3A60:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3A68: .4byte gUnknown_03000708
+_080B3A6C: .4byte gOtherText_CancelNoTerminator
+ thumb_func_end sub_80B39D0
+
+ thumb_func_start sub_80B3A70
+sub_80B3A70: @ 80B3A70
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r2, _080B3A9C
+ ldrb r1, [r2, 0xB]
+ ldrb r0, [r2, 0x9]
+ adds r0, r1, r0
+ ldrb r1, [r2, 0x8]
+ cmp r0, r1
+ beq _080B3ACC
+ ldrb r4, [r2, 0xC]
+ cmp r4, 0
+ bne _080B3AA0
+ ldr r1, [r2, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_get_description
+ movs r1, 0x30
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ b _080B3ABA
+ .align 2, 0
+_080B3A9C: .4byte gUnknown_03000708
+_080B3AA0:
+ ldr r1, _080B3AC8
+ ldr r2, [r2, 0x4]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 5
+ adds r1, 0x18
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x30
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+_080B3ABA:
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ b _080B3AE0
+ .align 2, 0
+_080B3AC8: .4byte gDecorations
+_080B3ACC:
+ ldr r0, _080B3AE8
+ movs r1, 0x30
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x4
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+_080B3AE0:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3AE8: .4byte gOtherText_QuitShopping
+ thumb_func_end sub_80B3A70
+
+ thumb_func_start sub_80B3AEC
+sub_80B3AEC: @ 80B3AEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B3B5C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B3B06
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3B7A
+_080B3B06:
+ ldr r4, _080B3B60
+ ldrb r1, [r4, 0x9]
+ adds r0, r1, 0
+ movs r2, 0
+ bl sub_80B39D0
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ adds r0, r1
+ ldr r1, [r4, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bne _080B3B74
+ ldr r0, _080B3B64
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x9
+ ble _080B3B74
+ movs r0, 0xC
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B3B74
+ ldr r1, _080B3B68
+ ldr r2, _080B3B6C
+ ldr r3, _080B3B70
+ adds r0, r5, 0
+ bl DisplayItemMessageOnField
+ b _080B3B7A
+ .align 2, 0
+_080B3B5C: .4byte gMain
+_080B3B60: .4byte gUnknown_03000708
+_080B3B64: .4byte gTasks
+_080B3B68: .4byte gOtherText_FreePremierBall
+_080B3B6C: .4byte sub_80B4378
+_080B3B70: .4byte 0x0000c3e1
+_080B3B74:
+ adds r0, r5, 0
+ bl sub_80B4378
+_080B3B7A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3AEC
+
+ thumb_func_start sub_80B3B80
+sub_80B3B80: @ 80B3B80
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x26
+ bl sav12_xor_increment
+ ldr r5, _080B3BC0
+ ldr r0, _080B3BC4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_80B79E0
+ movs r0, 0x5F
+ bl PlaySE
+ ldr r0, [r5]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B7BEC
+ ldr r1, _080B3BC8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B3BCC
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3BC0: .4byte gSaveBlock1 + 0x490
+_080B3BC4: .4byte gUnknown_020386A0
+_080B3BC8: .4byte gTasks
+_080B3BCC: .4byte sub_80B3AEC
+ thumb_func_end sub_80B3B80
+
+ thumb_func_start sub_80B3BD0
+sub_80B3BD0: @ 80B3BD0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B3BF0
+ ldrb r1, [r0, 0x9]
+ adds r0, r1, 0
+ movs r2, 0
+ bl sub_80B39D0
+ adds r0, r4, 0
+ bl sub_80B4378
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3BF0: .4byte gUnknown_03000708
+ thumb_func_end sub_80B3BD0
+
+ thumb_func_start sub_80B3BF4
+sub_80B3BF4: @ 80B3BF4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080B3C7C
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x9
+ movs r3, 0x4
+ bl sub_80A3FA0
+ bl sub_80B379C
+ bl sub_80B3420
+ ldr r0, _080B3C80
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080B3C84
+ ldr r1, [r1]
+ bl IsEnoughMoney
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3D18
+ ldr r4, _080B3C88
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0
+ bne _080B3CAC
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ adds r0, r1
+ ldr r1, [r4, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r2, _080B3C8C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r1, [r1, 0xA]
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3C9C
+ ldr r1, _080B3C90
+ ldr r2, _080B3C94
+ ldr r3, _080B3C98
+ adds r0, r5, 0
+ bl DisplayItemMessageOnField
+ adds r0, r5, 0
+ bl sub_80B4470
+ b _080B3D24
+ .align 2, 0
+_080B3C7C: .4byte gBG1TilemapBuffer
+_080B3C80: .4byte gSaveBlock1
+_080B3C84: .4byte gUnknown_020386A0
+_080B3C88: .4byte gUnknown_03000708
+_080B3C8C: .4byte gTasks
+_080B3C90: .4byte gOtherText_HereYouGo
+_080B3C94: .4byte sub_80B3B80
+_080B3C98: .4byte 0x0000c3e1
+_080B3C9C:
+ ldr r1, _080B3CA4
+ ldr r2, _080B3CA8
+ b _080B3CD8
+ .align 2, 0
+_080B3CA4: .4byte gOtherText_NoRoomFor
+_080B3CA8: .4byte sub_80B3BD0
+_080B3CAC:
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ adds r0, r1
+ ldr r1, [r4, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl IsThereStorageSpaceForDecoration
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B3CF0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ bne _080B3CD4
+ ldr r1, _080B3CD0
+ b _080B3CD6
+ .align 2, 0
+_080B3CD0: .4byte gOtherText_HereYouGo2
+_080B3CD4:
+ ldr r1, _080B3CE4
+_080B3CD6:
+ ldr r2, _080B3CE8
+_080B3CD8:
+ ldr r3, _080B3CEC
+ adds r0, r5, 0
+ bl DisplayItemMessageOnField
+ b _080B3D24
+ .align 2, 0
+_080B3CE4: .4byte gOtherText_HereYouGo3
+_080B3CE8: .4byte sub_80B3B80
+_080B3CEC: .4byte 0x0000c3e1
+_080B3CF0:
+ ldr r4, _080B3D08
+ ldr r1, _080B3D0C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080B3D10
+ ldr r3, _080B3D14
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _080B3D24
+ .align 2, 0
+_080B3D08: .4byte gStringVar4
+_080B3D0C: .4byte gOtherText_SpaceForIsFull
+_080B3D10: .4byte sub_80B3BD0
+_080B3D14: .4byte 0x0000c3e1
+_080B3D18:
+ ldr r1, _080B3D2C
+ ldr r2, _080B3D30
+ ldr r3, _080B3D34
+ adds r0, r5, 0
+ bl DisplayItemMessageOnField
+_080B3D24:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3D2C: .4byte gOtherText_NotEnoughMoney
+_080B3D30: .4byte sub_80B3BD0
+_080B3D34: .4byte 0x0000c3e1
+ thumb_func_end sub_80B3BF4
+
+ thumb_func_start sub_80B3D38
+sub_80B3D38: @ 80B3D38
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _080B3D70
+ movs r1, 0x4
+ str r1, [sp]
+ ldr r1, _080B3D74
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x9
+ movs r3, 0x4
+ bl sub_80A3FA0
+ ldr r1, _080B3D78
+ adds r0, r4, 0
+ bl sub_80F914C
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3D70: .4byte gBG1TilemapBuffer
+_080B3D74: .4byte 0x0000c3e1
+_080B3D78: .4byte gUnknown_083CC708
+ thumb_func_end sub_80B3D38
+
+ thumb_func_start sub_80B3D7C
+sub_80B3D7C: @ 80B3D7C
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B3DC0
+ ldrb r1, [r0, 0x9]
+ adds r0, r1, 0
+ movs r2, 0
+ bl sub_80B39D0
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080B3DC4
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x9
+ movs r3, 0x4
+ bl sub_80A3FA0
+ adds r0, r4, 0
+ bl sub_80B4378
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3DC0: .4byte gUnknown_03000708
+_080B3DC4: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80B3D7C
+
+ thumb_func_start sub_80B3DC8
+sub_80B3DC8: @ 80B3DC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r6, 0
+ ldr r7, _080B3EA8
+ ldrb r1, [r7, 0xD]
+ adds r0, r6, 0
+ bl sub_80A52C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B3DEE
+ adds r0, r6, 0
+ bl sub_80B37F8
+_080B3DEE:
+ ldr r0, _080B3EAC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3ED8
+ ldr r0, _080B3EB0
+ mov r8, r0
+ ldrb r0, [r7, 0xB]
+ ldrb r1, [r7, 0x9]
+ adds r0, r1
+ ldr r1, [r7, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetPriceReduction
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r4, r0
+ ldr r0, _080B3EB4
+ lsls r5, r6, 2
+ adds r5, r6
+ lsls r5, 3
+ adds r5, r0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ muls r0, r4
+ mov r2, r8
+ str r0, [r2]
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080B3EB8
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xB
+ movs r3, 0xC
+ bl sub_80A3FA0
+ bl sub_80B379C
+ bl sub_80B3420
+ ldrb r0, [r7, 0xB]
+ ldrb r1, [r7, 0x9]
+ adds r0, r1
+ ldr r1, [r7, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _080B3EBC
+ bl itemid_copy_name
+ ldr r0, _080B3EC0
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B3EC4
+ mov r2, r8
+ ldr r1, [r2]
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080B3EC8
+ ldr r1, _080B3ECC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080B3ED0
+ ldr r3, _080B3ED4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _080B3EF0
+ .align 2, 0
+_080B3EA8: .4byte gUnknown_03000708
+_080B3EAC: .4byte gMain
+_080B3EB0: .4byte gUnknown_020386A0
+_080B3EB4: .4byte gTasks
+_080B3EB8: .4byte gBG1TilemapBuffer
+_080B3EBC: .4byte gStringVar1
+_080B3EC0: .4byte gStringVar2
+_080B3EC4: .4byte gStringVar3
+_080B3EC8: .4byte gStringVar4
+_080B3ECC: .4byte gOtherText_ThatWillBe
+_080B3ED0: .4byte sub_80B3D38
+_080B3ED4: .4byte 0x0000c3e1
+_080B3ED8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B3EF0
+ ldrb r1, [r7, 0x9]
+ adds r0, r1, 0
+ movs r2, 0
+ bl sub_80B39D0
+ adds r0, r4, 0
+ bl sub_80B4378
+_080B3EF0:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B3DC8
+
+ thumb_func_start sub_80B3EFC
+sub_80B3EFC: @ 80B3EFC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B3F78
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0xA]
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ bl sub_80B37F8
+ ldr r6, _080B3F7C
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldr r1, [r6, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetPriceReduction
+ ldr r1, _080B3F80
+ movs r2, 0x92
+ lsls r2, 3
+ adds r1, r2
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r4, r0
+ ldr r0, [r1]
+ adds r1, r4, 0
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x63
+ bls _080B3F62
+ movs r0, 0x63
+_080B3F62:
+ strb r0, [r6, 0xD]
+ ldr r0, _080B3F78
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080B3F84
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B3F78: .4byte gTasks
+_080B3F7C: .4byte gUnknown_03000708
+_080B3F80: .4byte gSaveBlock1
+_080B3F84: .4byte sub_80B3DC8
+ thumb_func_end sub_80B3EFC
+
+ thumb_func_start sub_80B3F88
+sub_80B3F88: @ 80B3F88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080B4020
+ mov r8, r0
+ ldr r1, [r0, 0x28]
+ ldr r3, _080B4024
+ adds r1, r3
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldr r7, [r0, 0x24]
+ mov r10, r7
+ ldr r0, _080B4028
+ mov r9, r0
+ movs r6, 0xD
+_080B3FAC:
+ adds r3, r2, 0
+ subs r3, 0x40
+ str r3, [sp]
+ movs r7, 0x40
+ negs r7, r7
+ adds r7, r1
+ mov r12, r7
+ adds r3, r2, 0
+ adds r4, r1, 0
+ movs r5, 0xE
+_080B3FC0:
+ ldrh r2, [r4]
+ mov r1, r9
+ ands r1, r2
+ mov r7, r8
+ ldrh r0, [r7, 0x1A]
+ adds r0, 0x1
+ cmp r1, r0
+ ble _080B3FD4
+ adds r0, r2, 0
+ adds r0, 0x3C
+_080B3FD4:
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r4, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080B3FC0
+ ldr r2, [sp]
+ mov r1, r12
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B3FAC
+ ldr r1, _080B402C
+ add r1, r10
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r2, r1, r0
+ ldr r3, _080B4030
+ ldr r5, _080B4034
+ ldr r4, _080B4038
+ movs r6, 0xD
+_080B3FFC:
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ str r5, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ adds r2, r4
+ adds r1, r4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B3FFC
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4020: .4byte gMenuWindow
+_080B4024: .4byte 0x000003de
+_080B4028: .4byte 0x000003ff
+_080B402C: .4byte 0x00003a20
+_080B4030: .4byte 0x040000d4
+_080B4034: .4byte 0x800000f0
+_080B4038: .4byte 0xfffffc40
+ thumb_func_end sub_80B3F88
+
+ thumb_func_start sub_80B403C
+sub_80B403C: @ 80B403C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080B40D8
+ mov r8, r0
+ ldr r2, [r0, 0x28]
+ adds r1, r2, 0
+ adds r1, 0x9E
+ adds r2, r1, 0
+ adds r1, 0x80
+ ldr r3, [r0, 0x24]
+ mov r10, r3
+ ldr r7, _080B40DC
+ mov r9, r7
+ movs r6, 0xD
+_080B4060:
+ adds r0, r2, 0
+ adds r0, 0x40
+ str r0, [sp]
+ movs r3, 0x40
+ adds r3, r1
+ mov r12, r3
+ adds r3, r2, 0
+ adds r4, r1, 0
+ movs r5, 0xE
+_080B4072:
+ ldrh r2, [r4]
+ mov r1, r9
+ ands r1, r2
+ mov r7, r8
+ ldrh r0, [r7, 0x1A]
+ adds r0, 0x1
+ cmp r1, r0
+ ble _080B4086
+ adds r0, r2, 0
+ subs r0, 0x3C
+_080B4086:
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r4, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080B4072
+ ldr r2, [sp]
+ mov r1, r12
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B4060
+ movs r1, 0x96
+ lsls r1, 4
+ add r1, r10
+ adds r2, r1, 0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080B40E0
+ ldr r5, _080B40E4
+ movs r4, 0xF0
+ lsls r4, 2
+ movs r6, 0xD
+_080B40B4:
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ str r5, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ adds r2, r4
+ adds r1, r4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B40B4
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B40D8: .4byte gMenuWindow
+_080B40DC: .4byte 0x000003ff
+_080B40E0: .4byte 0x040000d4
+_080B40E4: .4byte 0x800000f0
+ thumb_func_end sub_80B403C
+
+ thumb_func_start sub_80B40E8
+sub_80B40E8: @ 80B40E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r8, r7
+ ldr r0, _080B4134
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080B4102
+ b _080B436C
+_080B4102:
+ ldr r2, _080B4138
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _080B414C
+ ldr r4, _080B413C
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ bne _080B4140
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _080B411E
+ b _080B436C
+_080B411E:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0xB]
+ subs r0, 0x1
+ strb r0, [r4, 0xB]
+ bl sub_80B3F88
+ movs r0, 0
+ movs r1, 0
+ b _080B417A
+ .align 2, 0
+_080B4134: .4byte gPaletteFade
+_080B4138: .4byte gMain
+_080B413C: .4byte gUnknown_03000708
+_080B4140:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080B41A0
+_080B414C:
+ cmp r1, 0x80
+ bne _080B41AC
+ ldr r4, _080B418C
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0x7
+ bne _080B4190
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ adds r0, r1
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ bne _080B4166
+ b _080B436C
+_080B4166:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0xB]
+ adds r0, 0x1
+ strb r0, [r4, 0xB]
+ bl sub_80B403C
+ movs r0, 0x7
+ movs r1, 0x7
+_080B417A:
+ movs r2, 0
+ bl sub_80B39D0
+ bl sub_80B3A70
+ bl sub_80B32A4
+ b _080B436C
+ .align 2, 0
+_080B418C: .4byte gUnknown_03000708
+_080B4190:
+ ldrb r2, [r4, 0x8]
+ cmp r0, r2
+ bne _080B4198
+ b _080B436C
+_080B4198:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080B41A0:
+ bl MoveMenuCursor
+ strb r0, [r4, 0x9]
+ bl sub_80B3A70
+ b _080B436C
+_080B41AC:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B41B8
+ b _080B4358
+_080B41B8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r6, _080B426C
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldrb r1, [r6, 0x8]
+ cmp r0, r1
+ bne _080B41CE
+ b _080B4350
+_080B41CE:
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldrb r1, [r6, 0x9]
+ adds r0, r1, 0
+ movs r2, 0x1
+ bl sub_80B39D0
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldrb r0, [r6, 0xC]
+ cmp r0, 0
+ bne _080B428C
+ ldr r5, _080B4270
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldr r1, [r6, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetPriceReduction
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r4, r0
+ str r4, [r5]
+ ldr r0, _080B4274
+ movs r2, 0x92
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl IsEnoughMoney
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B42BA
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldr r1, [r6, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _080B4278
+ bl itemid_copy_name
+ ldr r4, _080B427C
+ ldr r1, _080B4280
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080B4284
+ ldr r3, _080B4288
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _080B436C
+ .align 2, 0
+_080B426C: .4byte gUnknown_03000708
+_080B4270: .4byte gUnknown_020386A0
+_080B4274: .4byte gSaveBlock1
+_080B4278: .4byte gStringVar1
+_080B427C: .4byte gStringVar4
+_080B4280: .4byte gOtherText_HowManyYouWant
+_080B4284: .4byte sub_80B3EFC
+_080B4288: .4byte 0x0000c3e1
+_080B428C:
+ ldr r5, _080B42C8
+ ldr r4, _080B42CC
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldr r1, [r6, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ ldrh r1, [r0, 0x14]
+ str r1, [r5]
+ ldr r0, _080B42D0
+ movs r2, 0x92
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ bl IsEnoughMoney
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B42E0
+_080B42BA:
+ ldr r1, _080B42D4
+ ldr r2, _080B42D8
+ ldr r3, _080B42DC
+ adds r0, r7, 0
+ bl DisplayItemMessageOnField
+ b _080B436C
+ .align 2, 0
+_080B42C8: .4byte gUnknown_020386A0
+_080B42CC: .4byte gDecorations
+_080B42D0: .4byte gSaveBlock1
+_080B42D4: .4byte gOtherText_NotEnoughMoney
+_080B42D8: .4byte sub_80B3BD0
+_080B42DC: .4byte 0x0000c3e1
+_080B42E0:
+ ldr r0, _080B4318
+ ldrb r1, [r6, 0xB]
+ ldrb r2, [r6, 0x9]
+ adds r1, r2
+ ldr r2, [r6, 0x4]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ lsls r1, 5
+ adds r2, r4, 0x1
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080B431C
+ ldr r1, [r5]
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r6, 0xC]
+ cmp r0, 0x1
+ bne _080B4328
+ ldr r0, _080B4320
+ ldr r1, _080B4324
+ bl StringExpandPlaceholders
+ b _080B4330
+ .align 2, 0
+_080B4318: .4byte gStringVar1
+_080B431C: .4byte gStringVar2
+_080B4320: .4byte gStringVar4
+_080B4324: .4byte gOtherText_ThatWillBe2
+_080B4328:
+ ldr r0, _080B4340
+ ldr r1, _080B4344
+ bl StringExpandPlaceholders
+_080B4330:
+ ldr r1, _080B4340
+ ldr r2, _080B4348
+ ldr r3, _080B434C
+ mov r0, r8
+ bl DisplayItemMessageOnField
+ b _080B436C
+ .align 2, 0
+_080B4340: .4byte gStringVar4
+_080B4344: .4byte gOtherText_ThatWillBe3
+_080B4348: .4byte sub_80B3D38
+_080B434C: .4byte 0x0000c3e1
+_080B4350:
+ adds r0, r7, 0
+ bl sub_80B43F0
+ b _080B436C
+_080B4358:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B436C
+ movs r0, 0x5
+ bl PlaySE
+ mov r0, r8
+ bl sub_80B43F0
+_080B436C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B40E8
+
+ thumb_func_start sub_80B4378
+sub_80B4378: @ 80B4378
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080B43E4
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xB
+ movs r3, 0xC
+ bl sub_80A3FA0
+ bl sub_80B3420
+ movs r0, 0x6
+ movs r1, 0x7
+ bl sub_80B3764
+ bl sub_80B37EC
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ bl sub_80B32A4
+ ldr r1, _080B43E8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B43EC
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B43E4: .4byte gBG1TilemapBuffer
+_080B43E8: .4byte gTasks
+_080B43EC: .4byte sub_80B40E8
+ thumb_func_end sub_80B4378
+
+ thumb_func_start sub_80B43F0
+sub_80B43F0: @ 80B43F0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080B4428
+ ldr r0, _080B442C
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080B4430
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B4434
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4428: .4byte gUnknown_0300485C
+_080B442C: .4byte sub_80B3050
+_080B4430: .4byte gTasks
+_080B4434: .4byte Task_ExitBuyMenu
+ thumb_func_end sub_80B43F0
+
+ thumb_func_start Task_ExitBuyMenu
+Task_ExitBuyMenu: @ 80B4438
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B4468
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B4462
+ movs r0, 0
+ movs r1, 0
+ bl RemoveMoneyLabelObject
+ bl BuyMenuFreeMemory
+ ldr r0, _080B446C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_080B4462:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4468: .4byte gPaletteFade
+_080B446C: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end Task_ExitBuyMenu
+
+ thumb_func_start sub_80B4470
+sub_80B4470: @ 80B4470
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0
+ ldr r0, _080B44C8
+ mov r12, r0
+ ldr r6, _080B44CC
+ mov r8, r12
+ adds r4, r6, 0
+ ldr r1, _080B44D0
+ mov r9, r1
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r7, r0, 3
+_080B4492:
+ lsls r0, r2, 2
+ mov r1, r8
+ adds r3, r0, r1
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ adds r0, r1
+ ldr r1, [r4, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r3]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080B44DC
+ ldrh r0, [r3, 0x2]
+ cmp r0, 0
+ beq _080B44DC
+ adds r2, r0, 0
+ mov r4, r9
+ adds r1, r7, r4
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ adds r0, r2, r0
+ cmp r0, 0xFF
+ ble _080B44D4
+ movs r0, 0xFF
+ strh r0, [r3, 0x2]
+ b _080B451E
+ .align 2, 0
+_080B44C8: .4byte gUnknown_02038724
+_080B44CC: .4byte gUnknown_03000708
+_080B44D0: .4byte gTasks
+_080B44D4:
+ ldrh r0, [r1, 0xA]
+ adds r0, r2, r0
+ strh r0, [r3, 0x2]
+ b _080B451E
+_080B44DC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x2
+ bls _080B4492
+ ldr r3, _080B452C
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bhi _080B451E
+ adds r2, r0, 0
+ lsls r2, 2
+ add r2, r12
+ ldrb r0, [r6, 0xB]
+ ldrb r1, [r6, 0x9]
+ adds r0, r1
+ ldr r1, [r6, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrb r1, [r3]
+ lsls r1, 2
+ add r1, r12
+ ldr r2, _080B4530
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ strh r0, [r1, 0x2]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+_080B451E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B452C: .4byte gUnknown_02038730
+_080B4530: .4byte gTasks
+ thumb_func_end sub_80B4470
+
+ thumb_func_start ClearItemPurchases
+ClearItemPurchases: @ 80B4534
+ push {lr}
+ ldr r0, _080B4548
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080B454C
+ movs r1, 0x3
+ bl sub_80A9684
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4548: .4byte gUnknown_02038730
+_080B454C: .4byte gUnknown_02038724
+ thumb_func_end ClearItemPurchases
+
+ thumb_func_start CreatePokemartMenu
+CreatePokemartMenu: @ 80B4550
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl CreateShopMenu
+ adds r0, r4, 0
+ bl SetShopItemsForSale
+ bl ClearItemPurchases
+ ldr r0, _080B4570
+ bl SetShopMenuCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4570: .4byte EnableBothScriptContexts
+ thumb_func_end CreatePokemartMenu
+
+ thumb_func_start CreateDecorationShop1Menu
+CreateDecorationShop1Menu: @ 80B4574
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl CreateShopMenu
+ adds r0, r4, 0
+ bl SetShopItemsForSale
+ ldr r0, _080B4590
+ bl SetShopMenuCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4590: .4byte EnableBothScriptContexts
+ thumb_func_end CreateDecorationShop1Menu
+
+ thumb_func_start CreateDecorationShop2Menu
+CreateDecorationShop2Menu: @ 80B4594
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2
+ bl CreateShopMenu
+ adds r0, r4, 0
+ bl SetShopItemsForSale
+ ldr r0, _080B45B0
+ bl SetShopMenuCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B45B0: .4byte EnableBothScriptContexts
+ thumb_func_end CreateDecorationShop2Menu
+
+ thumb_func_start sub_80B45B4
+sub_80B45B4: @ 80B45B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r9, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ ldr r2, _080B4648
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r4, [r1, 0xA]
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B4678
+ movs r2, 0
+ lsls r5, 16
+ str r5, [sp, 0xC]
+ lsls r0, r3, 16
+ lsls r1, r4, 16
+ asrs r0, 16
+ str r0, [sp]
+ asrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r0, r1, 1
+ mov r1, r9
+ adds r7, r0, r1
+_080B4608:
+ movs r4, 0
+ lsls r2, 16
+ mov r8, r2
+ asrs r0, r2, 16
+ ldr r2, [sp]
+ adds r6, r2, r0
+_080B4614:
+ ldr r0, [sp, 0xC]
+ asrs r1, r0, 16
+ lsls r4, 16
+ asrs r0, r4, 16
+ adds r5, r1, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridGetMetatileIdAt
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080B465C
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x2
+ beq _080B464C
+ ldrh r0, [r7, 0x2]
+ mov r2, r10
+ orrs r2, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ b _080B465C
+ .align 2, 0
+_080B4648: .4byte gTasks
+_080B464C:
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r2, r10
+ orrs r2, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+_080B465C:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r4, r2
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B4614
+ adds r0, r2, 0
+ add r0, r8
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B4608
+ b _080B4700
+_080B4678:
+ movs r2, 0
+ lsls r5, 16
+ str r5, [sp, 0xC]
+ lsls r0, r3, 16
+ lsls r1, r4, 16
+ asrs r0, 16
+ str r0, [sp, 0x8]
+ asrs r7, r1, 16
+_080B4688:
+ movs r4, 0
+ lsls r2, 16
+ mov r8, r2
+ asrs r0, r2, 16
+ ldr r1, [sp, 0x8]
+ adds r6, r1, r0
+_080B4694:
+ ldr r2, [sp, 0xC]
+ asrs r1, r2, 16
+ lsls r4, 16
+ asrs r0, r4, 16
+ adds r5, r1, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x2
+ subs r1, r7
+ lsls r1, 1
+ add r1, r9
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080B46E6
+ cmp r7, 0x2
+ beq _080B46D6
+ movs r0, 0x1
+ subs r0, r7
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r2, r10
+ orrs r2, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ b _080B46E6
+_080B46D6:
+ mov r1, r9
+ ldrh r0, [r1, 0x4]
+ mov r2, r10
+ orrs r2, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+_080B46E6:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r4, r2
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B4694
+ adds r0, r2, 0
+ add r0, r8
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B4688
+_080B4700:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B45B4
+
+ thumb_func_start sub_80B4710
+sub_80B4710: @ 80B4710
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080B4738
+ adds r4, r0, r1
+ movs r0, 0x1
+ strh r0, [r4, 0x6]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bhi _080B47AA
+ lsls r0, 2
+ ldr r1, _080B473C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4738: .4byte gUnknown_03004B28
+_080B473C: .4byte _080B4740
+ .align 2, 0
+_080B4740:
+ .4byte _080B475C
+ .4byte _080B4764
+ .4byte _080B476C
+ .4byte _080B4774
+ .4byte _080B477C
+ .4byte _080B4790
+ .4byte _080B47A0
+_080B475C:
+ ldr r1, _080B4760
+ b _080B4792
+ .align 2, 0
+_080B4760: .4byte gUnknown_083CC714
+_080B4764:
+ ldr r1, _080B4768
+ b _080B4792
+ .align 2, 0
+_080B4768: .4byte gUnknown_083CC71A
+_080B476C:
+ ldr r1, _080B4770
+ b _080B477E
+ .align 2, 0
+_080B4770: .4byte gUnknown_083CC720
+_080B4774:
+ ldr r1, _080B4778
+ b _080B4792
+ .align 2, 0
+_080B4778: .4byte gUnknown_083CC726
+_080B477C:
+ ldr r1, _080B478C
+_080B477E:
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r3, 0
+ bl sub_80B45B4
+ b _080B47AA
+ .align 2, 0
+_080B478C: .4byte gUnknown_083CC72C
+_080B4790:
+ ldr r1, _080B479C
+_080B4792:
+ adds r0, r3, 0
+ movs r2, 0
+ bl sub_80B45B4
+ b _080B47AA
+ .align 2, 0
+_080B479C: .4byte gUnknown_083CC732
+_080B47A0:
+ ldr r1, _080B47D4
+ adds r0, r3, 0
+ movs r2, 0
+ bl sub_80B45B4
+_080B47AA:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r4]
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080B47CE
+ bl DrawWholeMapView
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ strh r0, [r4, 0x2]
+ strh r5, [r4, 0x6]
+_080B47CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B47D4: .4byte gUnknown_083CC738
+ thumb_func_end sub_80B4710
+
+ thumb_func_start sub_80B47D8
+sub_80B47D8: @ 80B47D8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _080B481C
+ adds r0, r6, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080B4820
+ adds r7, r0, r1
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r1, r7, 0
+ adds r1, 0xA
+ bl PlayerGetDestCoords
+ movs r0, 0
+ strh r0, [r7]
+ strh r0, [r7, 0x2]
+ strh r5, [r7, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r6
+ adds r0, r4, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B481C: .4byte sub_80B4710
+_080B4820: .4byte gUnknown_03004B28
+ thumb_func_end sub_80B47D8
+
+ thumb_func_start sub_80B4824
+sub_80B4824: @ 80B4824
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B47D8
+ ldr r1, _080B4838
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4838: .4byte gUnknown_02038731
+ thumb_func_end sub_80B4824
+
+ thumb_func_start sub_80B483C
+sub_80B483C: @ 80B483C
+ push {lr}
+ ldr r0, _080B484C
+ ldrb r0, [r0]
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B484C: .4byte gUnknown_02038731
+ thumb_func_end sub_80B483C
+
+ thumb_func_start sub_80B4850
+sub_80B4850: @ 80B4850
+ push {lr}
+ ldr r2, _080B4874
+ ldr r0, _080B4878
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B487C
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ bne _080B487C
+ movs r0, 0
+ b _080B487E
+ .align 2, 0
+_080B4874: .4byte gTasks
+_080B4878: .4byte gUnknown_02038731
+_080B487C:
+ movs r0, 0x1
+_080B487E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4850
+
+ thumb_func_start unref_sub_80B4884
+unref_sub_80B4884: @ 80B4884
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080B48A0
+ ldr r2, _080B48A4
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B48A0: .4byte gSaveBlock1 + 0x3160
+_080B48A4: .4byte 0x01000298
+ thumb_func_end unref_sub_80B4884
+
+ thumb_func_start sub_80B48A8
+sub_80B48A8: @ 80B48A8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r3, _080B48E0
+ movs r2, 0
+ ldr r6, _080B48E4
+ ldr r0, _080B48E8
+ adds r4, r3, r0
+_080B48B6:
+ adds r0, r3, r2
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r6
+ bls _080B48B6
+ ldr r2, _080B48EC
+ adds r1, r4, r2
+ ldr r2, _080B48F0
+ adds r0, r4, r2
+ str r0, [r1]
+ ldr r0, _080B48F4
+ adds r1, r4, r0
+ adds r2, 0x2D
+ adds r0, r4, r2
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B48E0: .4byte gSaveBlock1 + 0x3160
+_080B48E4: .4byte 0x0000052f
+_080B48E8: .4byte 0xffffcea0
+_080B48EC: .4byte 0x0000316c
+_080B48F0: .4byte 0x0000361c
+_080B48F4: .4byte 0x00003170
+ thumb_func_end sub_80B48A8
+
+ thumb_func_start sub_80B48F8
+sub_80B48F8: @ 80B48F8
+ push {r4-r7,lr}
+ ldr r3, _080B4934
+ ldr r1, _080B4938
+ adds r4, r3, r1
+ ldr r6, [r4]
+ adds r1, 0x4
+ adds r2, r3, r1
+ ldr r7, [r2]
+ movs r1, 0
+ str r1, [r4]
+ str r1, [r2]
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _080B493C
+_080B4914:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r1, 0x1
+ cmp r1, r5
+ bls _080B4914
+ ldr r1, _080B4938
+ adds r0, r3, r1
+ str r6, [r0]
+ adds r1, 0x4
+ adds r0, r3, r1
+ str r7, [r0]
+ adds r0, r2, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B4934: .4byte gSaveBlock1
+_080B4938: .4byte 0x0000316c
+_080B493C: .4byte 0x0000052b
+ thumb_func_end sub_80B48F8
+
+ thumb_func_start sub_80B4940
+sub_80B4940: @ 80B4940
+ push {r4,lr}
+ ldr r4, _080B4970
+ ldr r1, _080B4974
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B4984
+ ldr r2, _080B4978
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B4984
+ ldr r1, _080B497C
+ adds r0, r4, r1
+ bl sub_80B48F8
+ ldr r2, _080B4980
+ adds r1, r4, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _080B4984
+ movs r0, 0x1
+ b _080B4986
+ .align 2, 0
+_080B4970: .4byte gSaveBlock1
+_080B4974: .4byte 0x00003174
+_080B4978: .4byte 0x0000316a
+_080B497C: .4byte 0x00003160
+_080B4980: .4byte 0x0000368c
+_080B4984:
+ movs r0, 0
+_080B4986:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B4940
+
+ thumb_func_start GetBerryInfo
+GetBerryInfo: @ 80B498C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2B
+ bne _080B49A8
+ bl sub_80B4940
+ cmp r0, 0
+ beq _080B49A8
+ ldr r0, _080B49A4
+ b _080B49BE
+ .align 2, 0
+_080B49A4: .4byte gSaveBlock1 + 0x3160
+_080B49A8:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2A
+ bls _080B49B4
+ movs r4, 0x1
+_080B49B4:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B49C4
+ adds r0, r1
+_080B49BE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B49C4: .4byte gBerries - 0x1C
+ thumb_func_end GetBerryInfo
+
+ thumb_func_start GetBerryTreeInfo
+GetBerryTreeInfo: @ 80B49C8
+ lsls r0, 24
+ lsrs r0, 21
+ ldr r1, _080B49D4
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080B49D4: .4byte gSaveBlock1 + 0x1608
+ thumb_func_end GetBerryTreeInfo
+
+ thumb_func_start FieldObjectInteractionWaterBerryTree
+FieldObjectInteractionWaterBerryTree: @ 80B49D8
+ push {lr}
+ ldr r0, _080B4A00
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x1]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x2
+ beq _080B4A14
+ cmp r0, 0x2
+ bgt _080B4A04
+ cmp r0, 0x1
+ beq _080B4A0E
+ b _080B4A2A
+ .align 2, 0
+_080B4A00: .4byte gSelectedMapObject
+_080B4A04:
+ cmp r0, 0x3
+ beq _080B4A1A
+ cmp r0, 0x4
+ beq _080B4A20
+ b _080B4A2A
+_080B4A0E:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x10
+ b _080B4A24
+_080B4A14:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x20
+ b _080B4A24
+_080B4A1A:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x40
+ b _080B4A24
+_080B4A20:
+ ldrb r0, [r2, 0x5]
+ movs r1, 0x80
+_080B4A24:
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ b _080B4A2E
+_080B4A2A:
+ movs r0, 0
+ b _080B4A30
+_080B4A2E:
+ movs r0, 0x1
+_080B4A30:
+ pop {r1}
+ bx r1
+ thumb_func_end FieldObjectInteractionWaterBerryTree
+
+ thumb_func_start IsPlayerFacingPlantedBerryTree
+IsPlayerFacingPlantedBerryTree: @ 80B4A34
+ push {lr}
+ bl GetFieldObjectScriptPointerForComparison
+ ldr r1, _080B4A5C
+ cmp r0, r1
+ bne _080B4A64
+ ldr r0, _080B4A60
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStageByBerryTreeId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B4A64
+ movs r0, 0x1
+ b _080B4A66
+ .align 2, 0
+_080B4A5C: .4byte BerryTreeScript
+_080B4A60: .4byte gSelectedMapObject
+_080B4A64:
+ movs r0, 0
+_080B4A66:
+ pop {r1}
+ bx r1
+ thumb_func_end IsPlayerFacingPlantedBerryTree
+
+ thumb_func_start WaterBerryTree
+WaterBerryTree: @ 80B4A6C
+ push {lr}
+ bl GetFieldObjectScriptPointerForComparison
+ ldr r1, _080B4A84
+ cmp r0, r1
+ bne _080B4A88
+ bl FieldObjectInteractionWaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B4A8A
+ .align 2, 0
+_080B4A84: .4byte BerryTreeScript
+_080B4A88:
+ movs r0, 0
+_080B4A8A:
+ pop {r1}
+ bx r1
+ thumb_func_end WaterBerryTree
+
+ thumb_func_start sub_80B4A90
+sub_80B4A90: @ 80B4A90
+ push {r4,lr}
+ ldr r1, _080B4AB4
+ ldr r0, _080B4AB8
+ ldr r3, [r0]
+ ldr r4, [r0, 0x4]
+ movs r2, 0x7F
+ movs r0, 0xD0
+ lsls r0, 5
+ adds r1, r0
+_080B4AA2:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ subs r1, 0x8
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080B4AA2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4AB4: .4byte gSaveBlock1
+_080B4AB8: .4byte gUnknown_083CD780
+ thumb_func_end sub_80B4A90
+
+ thumb_func_start BerryTreeGrow
+BerryTreeGrow: @ 80B4ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080B4ACE
+_080B4ACA:
+ movs r0, 0
+ b _080B4B5A
+_080B4ACE:
+ lsls r0, r1, 25
+ lsrs r0, 25
+ cmp r0, 0x5
+ bhi _080B4B58
+ lsls r0, 2
+ ldr r1, _080B4AE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B4AE0: .4byte _080B4AE4
+ .align 2, 0
+_080B4AE4:
+ .4byte _080B4ACA
+ .4byte _080B4B04
+ .4byte _080B4B04
+ .4byte _080B4B04
+ .4byte _080B4AFC
+ .4byte _080B4B1C
+_080B4AFC:
+ adds r0, r4, 0
+ bl CalcBerryYield
+ strb r0, [r4, 0x4]
+_080B4B04:
+ ldrb r2, [r4, 0x1]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ adds r1, 0x1
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ b _080B4B58
+_080B4B1C:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ subs r0, 0x20
+ ands r1, r0
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ ldrb r2, [r4, 0x1]
+ subs r0, 0x80
+ ands r0, r2
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ adds r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ strb r1, [r4, 0x5]
+ cmp r1, 0xA
+ bne _080B4B58
+ ldr r0, _080B4B60
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+_080B4B58:
+ movs r0, 0x1
+_080B4B5A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B4B60: .4byte gUnknown_083CD780
+ thumb_func_end BerryTreeGrow
+
+ thumb_func_start BerryTreeTimeUpdate
+BerryTreeTimeUpdate: @ 80B4B64
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r2, 0
+_080B4B6A:
+ lsls r0, r2, 3
+ ldr r1, _080B4BAC
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ adds r7, r2, 0x1
+ cmp r0, 0
+ beq _080B4BF8
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0
+ beq _080B4BF8
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B4BF8
+ ldrb r0, [r4]
+ bl GetStageDurationByBerryType
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ subs r1, r0
+ cmp r6, r1
+ blt _080B4BB4
+ ldr r0, _080B4BB0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ b _080B4BF8
+ .align 2, 0
+_080B4BAC: .4byte gSaveBlock1 + 0x1608
+_080B4BB0: .4byte gUnknown_083CD780
+_080B4BB4:
+ adds r5, r6, 0
+ cmp r5, 0
+ beq _080B4BF8
+ ldrh r1, [r4, 0x2]
+ cmp r1, r5
+ ble _080B4BC4
+ subs r0, r1, r5
+ b _080B4BF6
+_080B4BC4:
+ subs r5, r1
+ ldrb r0, [r4]
+ bl GetStageDurationByBerryType
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl BerryTreeGrow
+ cmp r0, 0
+ beq _080B4BF8
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x5
+ bne _080B4BE8
+ ldrh r0, [r4, 0x2]
+ lsls r0, 2
+ strh r0, [r4, 0x2]
+_080B4BE8:
+ cmp r5, 0
+ beq _080B4BF8
+ ldrh r0, [r4, 0x2]
+ adds r1, r0, 0
+ cmp r0, r5
+ ble _080B4BC4
+ subs r0, r5
+_080B4BF6:
+ strh r0, [r4, 0x2]
+_080B4BF8:
+ adds r2, r7, 0
+ cmp r2, 0x7F
+ ble _080B4B6A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end BerryTreeTimeUpdate
+
+ thumb_func_start PlantBerryTree
+PlantBerryTree: @ 80B4C04
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ bl GetBerryTreeInfo
+ adds r6, r0, 0
+ ldr r0, _080B4C68
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+ strb r4, [r6]
+ adds r0, r4, 0
+ bl GetStageDurationByBerryType
+ strh r0, [r6, 0x2]
+ movs r1, 0x7F
+ ands r1, r5
+ ldrb r2, [r6, 0x1]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ cmp r5, 0x5
+ bne _080B4C56
+ adds r0, r6, 0
+ bl CalcBerryYield
+ strb r0, [r6, 0x4]
+ ldrh r0, [r6, 0x2]
+ lsls r0, 2
+ strh r0, [r6, 0x2]
+_080B4C56:
+ cmp r7, 0
+ bne _080B4C62
+ ldrb r0, [r6, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+_080B4C62:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4C68: .4byte gUnknown_083CD780
+ thumb_func_end PlantBerryTree
+
+ thumb_func_start RemoveBerryTree
+RemoveBerryTree: @ 80B4C6C
+ lsls r0, 24
+ ldr r1, _080B4C84
+ lsrs r0, 21
+ ldr r2, _080B4C88
+ adds r1, r2
+ adds r0, r1
+ ldr r1, _080B4C8C
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080B4C84: .4byte gSaveBlock1
+_080B4C88: .4byte 0x00001608
+_080B4C8C: .4byte gUnknown_083CD780
+ thumb_func_end RemoveBerryTree
+
+ thumb_func_start GetBerryTypeByBerryTreeId
+GetBerryTypeByBerryTreeId: @ 80B4C90
+ lsls r0, 24
+ ldr r1, _080B4CA0
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4CA4
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B4CA0: .4byte gSaveBlock1
+_080B4CA4: .4byte 0x00001608
+ thumb_func_end GetBerryTypeByBerryTreeId
+
+ thumb_func_start GetStageByBerryTreeId
+GetStageByBerryTreeId: @ 80B4CA8
+ lsls r0, 24
+ ldr r1, _080B4CBC
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4CC0
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 25
+ bx lr
+ .align 2, 0
+_080B4CBC: .4byte gSaveBlock1
+_080B4CC0: .4byte 0x00001609
+ thumb_func_end GetStageByBerryTreeId
+
+ thumb_func_start ItemIdToBerryType
+ItemIdToBerryType: @ 80B4CC4
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080B4CE0
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0x2A
+ bhi _080B4CE4
+ adds r0, r1, 0
+ adds r0, 0x7C
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B4CE6
+ .align 2, 0
+_080B4CE0: .4byte 0xff7b0000
+_080B4CE4:
+ movs r0, 0x1
+_080B4CE6:
+ pop {r1}
+ bx r1
+ thumb_func_end ItemIdToBerryType
+
+ thumb_func_start BerryTypeToItemId
+BerryTypeToItemId: @ 80B4CEC
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080B4D08
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0x2A
+ bhi _080B4D0C
+ adds r0, r1, 0
+ adds r0, 0x84
+ lsls r0, 16
+ lsrs r0, 16
+ b _080B4D0E
+ .align 2, 0
+_080B4D08: .4byte 0xffff0000
+_080B4D0C:
+ movs r0, 0x85
+_080B4D0E:
+ pop {r1}
+ bx r1
+ thumb_func_end BerryTypeToItemId
+
+ thumb_func_start GetBerryNameByBerryType
+GetBerryNameByBerryType: @ 80B4D14
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl memcpy
+ movs r0, 0xFF
+ strb r0, [r4, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetBerryNameByBerryType
+
+ thumb_func_start ResetBerryTreeSparkleFlag
+ResetBerryTreeSparkleFlag: @ 80B4D34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ pop {r0}
+ bx r0
+ thumb_func_end ResetBerryTreeSparkleFlag
+
+ thumb_func_start BerryTreeGetNumStagesWatered
+BerryTreeGetNumStagesWatered: @ 80B4D4C
+ push {lr}
+ ldrb r2, [r0, 0x5]
+ movs r0, 0x10
+ ands r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D66
+ adds r1, 0x1
+_080B4D66:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D74
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_080B4D74:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080B4D82
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_080B4D82:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end BerryTreeGetNumStagesWatered
+
+ thumb_func_start GetNumStagesWateredByBerryTreeId
+GetNumStagesWateredByBerryTreeId: @ 80B4D88
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryTreeInfo
+ bl BerryTreeGetNumStagesWatered
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetNumStagesWateredByBerryTreeId
+
+ thumb_func_start CalcBerryYieldInternal
+CalcBerryYieldInternal: @ 80B4DA0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ bne _080B4DB6
+ lsls r0, r6, 24
+ b _080B4DEA
+_080B4DB6:
+ subs r1, r0, r6
+ subs r0, r2, 0x1
+ adds r5, r1, 0
+ muls r5, r0
+ adds r4, r1, 0
+ muls r4, r2
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ subs r4, r5
+ adds r4, 0x1
+ adds r1, r4, 0
+ bl __umodsi3
+ adds r5, r0
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0x1
+ bls _080B4DE4
+ lsrs r0, r5, 2
+ adds r0, 0x1
+ b _080B4DE6
+_080B4DE4:
+ lsrs r0, r5, 2
+_080B4DE6:
+ adds r0, r6
+ lsls r0, 24
+_080B4DEA:
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CalcBerryYieldInternal
+
+ thumb_func_start CalcBerryYield
+CalcBerryYield: @ 80B4DF4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ bl GetBerryInfo
+ ldrb r6, [r0, 0xB]
+ ldrb r5, [r0, 0xA]
+ adds r0, r4, 0
+ bl BerryTreeGetNumStagesWatered
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CalcBerryYieldInternal
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CalcBerryYield
+
+ thumb_func_start GetBerryCountByBerryTreeId
+GetBerryCountByBerryTreeId: @ 80B4E20
+ lsls r0, 24
+ ldr r1, _080B4E30
+ lsrs r0, 21
+ adds r0, r1
+ ldr r1, _080B4E34
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B4E30: .4byte gSaveBlock1
+_080B4E34: .4byte 0x0000160c
+ thumb_func_end GetBerryCountByBerryTreeId
+
+ thumb_func_start GetStageDurationByBerryType
+GetStageDurationByBerryType: @ 80B4E38
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 18
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end GetStageDurationByBerryType
+
+ thumb_func_start FieldObjectInteractionGetBerryTreeData
+FieldObjectInteractionGetBerryTreeData: @ 80B4E50
+ push {r4-r6,lr}
+ ldr r0, _080B4E8C
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl GetBerryTypeByBerryTreeId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ bl ResetBerryTreeSparkleFlag
+ ldr r0, _080B4E90
+ ldrb r0, [r0]
+ ldr r2, _080B4E94
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_8060234
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B4E9C
+ ldr r1, _080B4E98
+ movs r0, 0xFF
+ strh r0, [r1]
+ b _080B4EAA
+ .align 2, 0
+_080B4E8C: .4byte gSelectedMapObject
+_080B4E90: .4byte gUnknown_0202E8DE
+_080B4E94: .4byte gSaveBlock1
+_080B4E98: .4byte gUnknown_0202E8CC
+_080B4E9C:
+ ldr r4, _080B4ED4
+ adds r0, r5, 0
+ bl GetStageByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080B4EAA:
+ ldr r4, _080B4ED8
+ adds r0, r5, 0
+ bl GetNumStagesWateredByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r4, _080B4EDC
+ adds r0, r5, 0
+ bl GetBerryCountByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r1, _080B4EE0
+ adds r0, r6, 0
+ bl GetBerryNameByBerryType
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4ED4: .4byte gUnknown_0202E8CC
+_080B4ED8: .4byte gUnknown_0202E8CE
+_080B4EDC: .4byte gUnknown_0202E8D0
+_080B4EE0: .4byte gStringVar1
+ thumb_func_end FieldObjectInteractionGetBerryTreeData
+
+ thumb_func_start sub_80B4EE4
+sub_80B4EE4: @ 80B4EE4
+ push {lr}
+ ldr r0, _080B4EF0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4EF0: .4byte sub_80A68CC
+ thumb_func_end sub_80B4EE4
+
+ thumb_func_start FieldObjectInteractionPlantBerryTree
+FieldObjectInteractionPlantBerryTree: @ 80B4EF4
+ push {r4,lr}
+ ldr r0, _080B4F24
+ ldrh r0, [r0]
+ bl ItemIdToBerryType
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B4F28
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl PlantBerryTree
+ bl FieldObjectInteractionGetBerryTreeData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F24: .4byte word_203855E
+_080B4F28: .4byte gSelectedMapObject
+ thumb_func_end FieldObjectInteractionPlantBerryTree
+
+ thumb_func_start FieldObjectInteractionPickBerryTree
+FieldObjectInteractionPickBerryTree: @ 80B4F2C
+ push {r4-r6,lr}
+ ldr r0, _080B4F70
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl GetBerryTypeByBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080B4F74
+ bl BerryTypeToItemId
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetBerryCountByBerryTreeId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F70: .4byte gSelectedMapObject
+_080B4F74: .4byte gUnknown_0202E8CC
+ thumb_func_end FieldObjectInteractionPickBerryTree
+
+ thumb_func_start FieldObjectInteractionRemoveBerryTree
+FieldObjectInteractionRemoveBerryTree: @ 80B4F78
+ push {lr}
+ ldr r0, _080B4F9C
+ ldrb r0, [r0]
+ bl FieldObjectGetBerryTreeId
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveBerryTree
+ ldr r0, _080B4FA0
+ ldrb r0, [r0]
+ ldr r2, _080B4FA4
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_8060288
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B4F9C: .4byte gSelectedMapObject
+_080B4FA0: .4byte gUnknown_0202E8DE
+_080B4FA4: .4byte gSaveBlock1
+ thumb_func_end FieldObjectInteractionRemoveBerryTree
+
+ thumb_func_start PlayerHasBerries
+PlayerHasBerries: @ 80B4FA8
+ push {lr}
+ movs r0, 0x4
+ bl IsBagPocketNonEmpty
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end PlayerHasBerries
+
+ thumb_func_start ResetBerryTreeSparkleFlags
+ResetBerryTreeSparkleFlags: @ 80B4FB8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetCameraCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ ldrh r1, [r4]
+ adds r1, 0x3
+ adds r3, r2, 0
+ adds r3, 0xE
+ lsls r1, 16
+ movs r5, 0x80
+ lsls r5, 12
+ adds r0, r1, r5
+ lsrs r0, 16
+ mov r10, r0
+ mov r5, sp
+ lsls r2, 16
+ asrs r2, 16
+ mov r9, r2
+ ldr r4, _080B5050
+ lsls r3, 16
+ asrs r3, 16
+ mov r8, r3
+ asrs r7, r1, 16
+ movs r6, 0xF
+_080B4FFC:
+ ldrb r0, [r4]
+ lsls r0, 31
+ cmp r0, 0
+ beq _080B5038
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0xC
+ bne _080B5038
+ ldrh r0, [r4, 0x10]
+ strh r0, [r5]
+ ldrh r0, [r4, 0x12]
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ cmp r9, r1
+ bgt _080B5038
+ cmp r1, r8
+ bgt _080B5038
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r7, r1
+ bgt _080B5038
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ bgt _080B5038
+ ldrb r0, [r4, 0x1D]
+ bl ResetBerryTreeSparkleFlag
+_080B5038:
+ adds r4, 0x24
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080B4FFC
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5050: .4byte gMapObjects
+ thumb_func_end ResetBerryTreeSparkleFlags
+
+ thumb_func_start sub_80B5054
+sub_80B5054: @ 80B5054
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B5098
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B50A4
+ ldr r1, _080B509C
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B50A0
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B5138
+ movs r0, 0x1
+ b _080B50A6
+ .align 2, 0
+_080B5098: .4byte sub_80B52B4
+_080B509C: .4byte gScriptResult
+_080B50A0: .4byte gMultichoiceLists
+_080B50A4:
+ movs r0, 0
+_080B50A6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5054
+
+ thumb_func_start sub_80B50B0
+sub_80B50B0: @ 80B50B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B5100
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B510C
+ ldr r1, _080B5104
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B5108
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80B5138
+ movs r0, 0x1
+ b _080B510E
+ .align 2, 0
+_080B5100: .4byte sub_80B52B4
+_080B5104: .4byte gScriptResult
+_080B5108: .4byte gMultichoiceLists
+_080B510C:
+ movs r0, 0
+_080B510E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B50B0
+
+ thumb_func_start GetStringWidthInTilesForScriptMenu
+GetStringWidthInTilesForScriptMenu: @ 80B511C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080B5134
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0x7
+ lsrs r0, r1, 3
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5134: .4byte gWindowConfig_81E6CE4
+ thumb_func_end GetStringWidthInTilesForScriptMenu
+
+ thumb_func_start sub_80B5138
+sub_80B5138: @ 80B5138
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r3
+ ldr r3, [sp, 0x34]
+ ldr r4, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ mov r1, r10
+ ldr r0, [r1]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1
+ cmp r4, r8
+ bcs _080B5198
+_080B517A:
+ lsls r0, r4, 3
+ add r0, r10
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ bcs _080B518E
+ adds r5, r0, 0
+_080B518E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bcc _080B517A
+_080B5198:
+ lsls r0, r5, 24
+ lsrs r7, r0, 24
+ mov r1, r9
+ adds r0, r7, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1D
+ bls _080B51B8
+ mov r0, r9
+ adds r0, 0x1D
+ subs r0, r7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0x1D
+_080B51B8:
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, 0x1
+ ldr r1, [sp, 0x8]
+ lsls r4, r1, 24
+ asrs r4, 24
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl MenuDrawTextWindow
+ mov r6, r9
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r5, [sp, 0x8]
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ mov r3, r10
+ bl PrintMenuItems
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ mov r1, r9
+ subs r0, r7, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl InitMenu
+ ldr r0, [sp, 0xC]
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl sub_80B5230
+ 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_80B5138
+
+ thumb_func_start sub_80B5230
+sub_80B5230: @ 80B5230
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x1C]
+ mov r8, r0
+ ldr r0, [sp, 0x20]
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080B5298
+ movs r1, 0x50
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B529C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ ldr r3, [sp]
+ strh r3, [r1, 0xE]
+ mov r0, r8
+ strh r0, [r1, 0x10]
+ mov r0, r9
+ cmp r0, 0x3
+ bls _080B52A0
+ movs r0, 0x1
+ b _080B52A2
+ .align 2, 0
+_080B5298: .4byte sub_80B52B4
+_080B529C: .4byte gTasks
+_080B52A0:
+ movs r0, 0
+_080B52A2:
+ strh r0, [r1, 0x12]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5230
+
+ thumb_func_start sub_80B52B4
+sub_80B52B4: @ 80B52B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080B52E0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B534E
+ ldr r2, _080B52E4
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _080B52E8
+ bl ProcessMenuInputNoWrap
+ b _080B52EC
+ .align 2, 0
+_080B52E0: .4byte gPaletteFade
+_080B52E4: .4byte gTasks
+_080B52E8:
+ bl ProcessMenuInput
+_080B52EC:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B534E
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B5328
+ ldr r0, _080B5320
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080B534E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5324
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B532C
+ .align 2, 0
+_080B5320: .4byte gTasks
+_080B5324: .4byte gScriptResult
+_080B5328:
+ ldr r0, _080B5354
+ strh r1, [r0]
+_080B532C:
+ bl sub_8072DEC
+ ldr r0, _080B5358
+ adds r3, r5, r4
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B534E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5354: .4byte gScriptResult
+_080B5358: .4byte gTasks
+ thumb_func_end sub_80B52B4
+
+ thumb_func_start Multichoice
+Multichoice: @ 80B535C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, _080B539C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B53A8
+ ldr r1, _080B53A0
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, _080B53A4
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldr r3, [r0]
+ str r5, [sp]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80B53B4
+ movs r0, 0x1
+ b _080B53AA
+ .align 2, 0
+_080B539C: .4byte sub_80B52B4
+_080B53A0: .4byte gScriptResult
+_080B53A4: .4byte gMultichoiceLists
+_080B53A8:
+ movs r0, 0
+_080B53AA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end Multichoice
+
+ thumb_func_start sub_80B53B4
+sub_80B53B4: @ 80B53B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r3, 0
+ ldr r3, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ ldr r0, [r7]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0x1
+ cmp r5, r6
+ bcs _080B5408
+_080B53EA:
+ lsls r0, r5, 3
+ adds r0, r7
+ ldr r0, [r0]
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bcs _080B53FE
+ adds r4, r0, 0
+_080B53FE:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _080B53EA
+_080B5408:
+ lsls r4, 24
+ lsrs r4, 24
+ add r4, r8
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r6, 1
+ adds r0, 0x1
+ mov r1, r9
+ lsls r5, r1, 24
+ asrs r5, 24
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r8
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ mov r1, r8
+ subs r0, r4, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r2, r9
+ adds r3, r6, 0
+ bl InitMenu
+ mov r0, r10
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ mov r1, r9
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_80B5230
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B53B4
+
+ thumb_func_start yes_no_box
+yes_no_box: @ 80B546C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r6, _080B54B4
+ adds r0, r6, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B54C0
+ ldr r1, _080B54B8
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B54BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ movs r0, 0x1
+ b _080B54C2
+ .align 2, 0
+_080B54B4: .4byte task_yes_no_maybe
+_080B54B8: .4byte gScriptResult
+_080B54BC: .4byte gTasks
+_080B54C0:
+ movs r0, 0
+_080B54C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end yes_no_box
+
+ thumb_func_start unref_sub_80B54C8
+unref_sub_80B54C8: @ 80B54C8
+ push {lr}
+ ldr r0, _080B54D8
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ beq _080B54DC
+ movs r0, 0x1
+ b _080B54DE
+ .align 2, 0
+_080B54D8: .4byte gScriptResult
+_080B54DC:
+ movs r0, 0
+_080B54DE:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80B54C8
+
+ thumb_func_start task_yes_no_maybe
+task_yes_no_maybe: @ 80B54E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080B5504
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x4
+ bgt _080B5508
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080B556A
+ .align 2, 0
+_080B5504: .4byte gTasks
+_080B5508:
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B552C
+ cmp r1, r0
+ bgt _080B5524
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080B556A
+ b _080B5542
+_080B5524:
+ cmp r1, 0
+ beq _080B553C
+ cmp r1, 0x1
+ bne _080B5542
+_080B552C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B5538
+ movs r0, 0
+ b _080B5540
+ .align 2, 0
+_080B5538: .4byte gScriptResult
+_080B553C:
+ ldr r1, _080B5570
+ movs r0, 0x1
+_080B5540:
+ strh r0, [r1]
+_080B5542:
+ ldr r0, _080B5574
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ ldrb r1, [r1, 0xA]
+ adds r2, r0, 0x6
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B556A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5570: .4byte gScriptResult
+_080B5574: .4byte gTasks
+ thumb_func_end task_yes_no_maybe
+
+ thumb_func_start sub_80B5578
+sub_80B5578: @ 80B5578
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r4, [sp, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 24
+ lsrs r5, r4, 24
+ movs r7, 0
+ ldr r0, _080B55B8
+ mov r10, r0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B55BC
+ movs r0, 0
+ b _080B5670
+ .align 2, 0
+_080B55B8: .4byte sub_80B5684
+_080B55BC:
+ ldr r1, _080B5620
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r0, _080B5624
+ lsls r4, r6, 3
+ adds r0, r4, r0
+ ldrb r6, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_807274C
+ mov r0, r10
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ cmp r0, r5
+ bcc _080B55FE
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _080B5606
+_080B55FE:
+ cmp r5, 0x1
+ beq _080B5606
+ cmp r1, r5
+ bne _080B5628
+_080B5606:
+ ldr r0, _080B5624
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x4]
+ adds r1, r5, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x1
+ mov r2, r8
+ lsls r1, r2, 24
+ b _080B563A
+ .align 2, 0
+_080B5620: .4byte gScriptResult
+_080B5624: .4byte gMultichoiceLists
+_080B5628:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x3
+ mov r3, r8
+ lsls r1, r3, 24
+_080B563A:
+ asrs r1, 24
+ adds r1, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ adds r0, r5, 0
+ bl sub_807288C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B5680
+ mov r3, r10
+ lsls r1, r3, 2
+ add r1, r10
+ lsls r1, 3
+ adds r1, r2
+ mov r2, r9
+ strh r2, [r1, 0x8]
+ mov r3, r8
+ strh r3, [r1, 0xA]
+ add r0, r9
+ adds r0, 0x2
+ strh r0, [r1, 0xC]
+ strh r7, [r1, 0xE]
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ strh r0, [r1, 0x10]
+ movs r0, 0x1
+_080B5670:
+ 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
+_080B5680: .4byte gTasks
+ thumb_func_end sub_80B5578
+
+ thumb_func_start sub_80B5684
+sub_80B5684: @ 80B5684
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80727CC
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080B56F4
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080B56CC
+ ldr r2, _080B56C4
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x10
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080B56F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B56C8
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _080B56D2
+ .align 2, 0
+_080B56C4: .4byte gTasks
+_080B56C8: .4byte gScriptResult
+_080B56CC:
+ ldr r0, _080B56FC
+ strh r1, [r0]
+ lsls r4, r5, 2
+_080B56D2:
+ bl sub_8072DEC
+ ldr r0, _080B5700
+ adds r3, r4, r5
+ lsls r3, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x8]
+ ldrb r1, [r3, 0xA]
+ ldrb r2, [r3, 0xC]
+ ldrb r3, [r3, 0xE]
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B56F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B56FC: .4byte gScriptResult
+_080B5700: .4byte gTasks
+ thumb_func_end sub_80B5684
+
+ thumb_func_start sp109_CreatePCMenu
+sp109_CreatePCMenu: @ 80B5704
+ push {lr}
+ ldr r0, _080B5724
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B572C
+ ldr r1, _080B5728
+ movs r0, 0xFF
+ strh r0, [r1]
+ bl CreatePCMenu
+ movs r0, 0x1
+ b _080B572E
+ .align 2, 0
+_080B5724: .4byte sub_80B52B4
+_080B5728: .4byte gScriptResult
+_080B572C:
+ movs r0, 0
+_080B572E:
+ pop {r1}
+ bx r1
+ thumb_func_end sp109_CreatePCMenu
+
+ thumb_func_start CreatePCMenu
+CreatePCMenu: @ 80B5734
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080B5758
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080B575C
+ bl GetStringWidthInTilesForScriptMenu
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bls _080B5760
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ b _080B5762
+ .align 2, 0
+_080B5758: .4byte gPCText_PlayersPC
+_080B575C: .4byte gPCText_SomeonesPC
+_080B5760:
+ movs r5, 0x8
+_080B5762:
+ ldr r0, _080B5798
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57A4
+ movs r7, 0x4
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r0, _080B579C
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, _080B57A0
+ movs r1, 0x1
+ movs r2, 0x7
+ bl MenuPrint
+ b _080B57C0
+ .align 2, 0
+_080B5798: .4byte 0x00000804
+_080B579C: .4byte gPCText_HallOfFame
+_080B57A0: .4byte gPCText_LogOff
+_080B57A4:
+ movs r7, 0x3
+ adds r4, r5, 0x2
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x7
+ bl MenuDrawTextWindow
+ ldr r0, _080B57DC
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+_080B57C0:
+ adds r6, r4, 0
+ ldr r0, _080B57E0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B57E8
+ ldr r0, _080B57E4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ b _080B57F2
+ .align 2, 0
+_080B57DC: .4byte gPCText_LogOff
+_080B57E0: .4byte 0x0000084b
+_080B57E4: .4byte gPCText_LanettesPC
+_080B57E8:
+ ldr r0, _080B5830
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+_080B57F2:
+ ldr r0, _080B5834
+ movs r1, 0x1
+ movs r2, 0x3
+ bl MenuPrint
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ adds r3, r7, 0
+ bl InitMenu
+ lsls r2, r6, 24
+ lsrs r2, 24
+ lsls r3, r7, 1
+ adds r3, 0x1
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B5230
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5830: .4byte gPCText_SomeonesPC
+_080B5834: .4byte gPCText_PlayersPC
+ thumb_func_end CreatePCMenu
+
+ thumb_func_start sub_80B5838
+sub_80B5838: @ 80B5838
+ push {lr}
+ bl MenuDisplayMessageBox
+ ldr r0, _080B584C
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B584C: .4byte gUnknown_081A0A01
+ thumb_func_end sub_80B5838
+
+ thumb_func_start task_picbox
+task_picbox: @ 80B5850
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B5874
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B58BE
+ cmp r0, 0x1
+ bgt _080B5878
+ cmp r0, 0
+ beq _080B5894
+ b _080B58BE
+ .align 2, 0
+_080B5874: .4byte gTasks
+_080B5878:
+ cmp r0, 0x2
+ beq _080B5882
+ cmp r0, 0x3
+ beq _080B58A0
+ b _080B58BE
+_080B5882:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B589C
+ adds r0, r1
+ bl sub_8085C44
+_080B5894:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B58BE
+ .align 2, 0
+_080B589C: .4byte gSprites
+_080B58A0:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080B58BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end task_picbox
+
+ thumb_func_start sub_80B58C4
+sub_80B58C4: @ 80B58C4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, _080B595C
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080B596C
+ adds r2, r6, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B5960
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r7, [r4, 0xA]
+ lsls r1, r6, 19
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r5, 19
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl sub_8085AD4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ strh r6, [r4, 0xE]
+ strh r5, [r4, 0x10]
+ ldr r3, _080B5964
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080B5968
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _080B596E
+ .align 2, 0
+_080B595C: .4byte task_picbox
+_080B5960: .4byte gTasks
+_080B5964: .4byte gSprites
+_080B5968: .4byte SpriteCallbackDummy
+_080B596C:
+ movs r0, 0
+_080B596E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B58C4
+
+ thumb_func_start picbox_close
+picbox_close: @ 80B5974
+ push {lr}
+ ldr r0, _080B5998
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080B59A4
+ ldr r0, _080B599C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r0, _080B59A0
+ b _080B59A6
+ .align 2, 0
+_080B5998: .4byte task_picbox
+_080B599C: .4byte gTasks
+_080B59A0: .4byte sub_80B59AC
+_080B59A4:
+ movs r0, 0
+_080B59A6:
+ pop {r1}
+ bx r1
+ thumb_func_end picbox_close
+
+ thumb_func_start sub_80B59AC
+sub_80B59AC: @ 80B59AC
+ push {lr}
+ ldr r0, _080B59C0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B59C4
+ movs r0, 0
+ b _080B59C6
+ .align 2, 0
+_080B59C0: .4byte task_picbox
+_080B59C4:
+ movs r0, 0x1
+_080B59C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B59AC
+
+ thumb_func_start DoNamingScreen
+DoNamingScreen: @ 80B59CC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl AddNamingScreenTask
+ ldr r0, _080B59F8
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B59F8: .4byte C2_NamingScreen
+ thumb_func_end DoNamingScreen
+
+ thumb_func_start C2_NamingScreen
+C2_NamingScreen: @ 80B59FC
+ push {lr}
+ ldr r0, _080B5A14
+ ldr r1, _080B5A18
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _080B5A96
+ lsls r0, 2
+ ldr r1, _080B5A1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B5A14: .4byte gMain
+_080B5A18: .4byte 0x0000043c
+_080B5A1C: .4byte _080B5A20
+ .align 2, 0
+_080B5A20:
+ .4byte _080B5A40
+ .4byte _080B5A4A
+ .4byte _080B5A50
+ .4byte _080B5A56
+ .4byte _080B5A5C
+ .4byte _080B5A62
+ .4byte _080B5A68
+ .4byte _080B5A84
+_080B5A40:
+ bl NamingScreen_TurnOffScreen
+ bl NamingScreen_Init
+ b _080B5A6C
+_080B5A4A:
+ bl NamingScreen_ClearVram
+ b _080B5A6C
+_080B5A50:
+ bl NamingScreen_ClearOam
+ b _080B5A6C
+_080B5A56:
+ bl NamingScreen_SetUpVideoRegs
+ b _080B5A6C
+_080B5A5C:
+ bl sub_80B5DC8
+ b _080B5A6C
+_080B5A62:
+ bl NamingScreen_ResetObjects
+ b _080B5A6C
+_080B5A68:
+ bl sub_80B5DFC
+_080B5A6C:
+ ldr r1, _080B5A7C
+ ldr r0, _080B5A80
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080B5A96
+ .align 2, 0
+_080B5A7C: .4byte gMain
+_080B5A80: .4byte 0x0000043c
+_080B5A84:
+ bl sub_80B5E20
+ bl sub_80B5E3C
+ bl sub_80B5C04
+ ldr r0, _080B5A9C
+ bl SetMainCallback2
+_080B5A96:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5A9C: .4byte sub_80B5AA0
+ thumb_func_end C2_NamingScreen
+
+ thumb_func_start sub_80B5AA0
+sub_80B5AA0: @ 80B5AA0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5AA0
+
+ thumb_func_start sub_80B5AB8
+sub_80B5AB8: @ 80B5AB8
+ push {r4,lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _080B5B00
+ ldr r4, _080B5B04
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1]
+ ldr r2, _080B5B08
+ ldrh r1, [r2]
+ ldr r3, _080B5B0C
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0x8]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ ands r3, r0
+ strh r3, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0xA]
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B00: .4byte REG_BG1VOFS
+_080B5B04: .4byte 0x02000000
+_080B5B08: .4byte REG_BG1CNT
+_080B5B0C: .4byte 0x0000fffc
+ thumb_func_end sub_80B5AB8
+
+ thumb_func_start AddNamingScreenTask
+AddNamingScreenTask: @ 80B5B10
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r7, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080B5B74
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B5B78
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ lsrs r0, r7, 16
+ strh r0, [r4, 0xE]
+ strh r7, [r4, 0x10]
+ adds r0, r4, 0
+ adds r0, 0x12
+ mov r1, r9
+ bl StoreWordInTwoHalfwords
+ adds r4, 0x16
+ adds r0, r4, 0
+ ldr r1, [sp, 0x20]
+ bl StoreWordInTwoHalfwords
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B74: .4byte NamingScreenDummyTask
+_080B5B78: .4byte gTasks
+ thumb_func_end AddNamingScreenTask
+
+ thumb_func_start GetNamingScreenParameters
+GetNamingScreenParameters: @ 80B5B7C
+ push {r4-r6,lr}
+ ldr r0, _080B5BD8
+ bl FindTaskIdByFunc
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080B5BDC
+ adds r4, r0
+ ldr r6, _080B5BE0
+ ldrh r0, [r4, 0x8]
+ strb r0, [r6, 0x1]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x3E]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ adds r0, 0x40
+ strh r1, [r0]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r0, 16
+ ldrh r1, [r4, 0x10]
+ orrs r0, r1
+ str r0, [r6, 0x44]
+ adds r0, r4, 0
+ adds r0, 0x12
+ adds r1, r6, 0
+ adds r1, 0x38
+ bl LoadWordFromTwoHalfwords
+ adds r4, 0x16
+ adds r1, r6, 0
+ adds r1, 0x48
+ adds r0, r4, 0
+ bl LoadWordFromTwoHalfwords
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5BD8: .4byte NamingScreenDummyTask
+_080B5BDC: .4byte gTasks
+_080B5BE0: .4byte 0x02000000
+ thumb_func_end GetNamingScreenParameters
+
+ thumb_func_start NamingScreenDummyTask
+NamingScreenDummyTask: @ 80B5BE4
+ bx lr
+ thumb_func_end NamingScreenDummyTask
+
+ thumb_func_start NamingScreen_TurnOffScreen
+NamingScreen_TurnOffScreen: @ 80B5BE8
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_TurnOffScreen
+
+ thumb_func_start sub_80B5C04
+sub_80B5C04: @ 80B5C04
+ push {r4,lr}
+ ldr r0, _080B5C3C
+ bl SetVBlankCallback
+ ldr r3, _080B5C40
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _080B5C44
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _080B5C48
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C3C: .4byte sub_80B5AB8
+_080B5C40: .4byte 0x04000208
+_080B5C44: .4byte 0x04000200
+_080B5C48: .4byte REG_DISPSTAT
+ thumb_func_end sub_80B5C04
+
+ thumb_func_start NamingScreen_ClearVram
+NamingScreen_ClearVram: @ 80B5C4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _080B5C98
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080B5C9C
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080B5C6A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _080B5C6A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C98: .4byte 0x040000d4
+_080B5C9C: .4byte 0x81000800
+ thumb_func_end NamingScreen_ClearVram
+
+ thumb_func_start NamingScreen_ClearOam
+NamingScreen_ClearOam: @ 80B5CA0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080B5CBC
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B5CC0
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_080B5CBC: .4byte 0x040000d4
+_080B5CC0: .4byte 0x81000200
+ thumb_func_end NamingScreen_ClearOam
+
+ thumb_func_start NamingScreen_SetUpVideoRegs
+NamingScreen_SetUpVideoRegs: @ 80B5CC4
+ push {r4,r5,lr}
+ ldr r5, _080B5D2C
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _080B5D30
+ strh r1, [r2]
+ ldr r3, _080B5D34
+ strh r1, [r3]
+ ldr r4, _080B5D38
+ strh r1, [r4]
+ ldr r0, _080B5D3C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r1, 0xF8
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _080B5D40
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _080B5D44
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _080B5D48
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, _080B5D4C
+ movs r2, 0xC8
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080B5D50
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5D2C: .4byte REG_BG0CNT
+_080B5D30: .4byte REG_BG1CNT
+_080B5D34: .4byte REG_BG2CNT
+_080B5D38: .4byte REG_BG3CNT
+_080B5D3C: .4byte REG_BG0HOFS
+_080B5D40: .4byte 0x00001c01
+_080B5D44: .4byte 0x00001d0a
+_080B5D48: .4byte 0x00001e03
+_080B5D4C: .4byte REG_BLDCNT
+_080B5D50: .4byte 0x0000080c
+ thumb_func_end NamingScreen_SetUpVideoRegs
+
+ thumb_func_start NamingScreen_Init
+NamingScreen_Init: @ 80B5D54
+ push {r4-r6,lr}
+ bl GetNamingScreenParameters
+ ldr r4, _080B5DBC
+ movs r0, 0
+ strb r0, [r4]
+ movs r2, 0
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ movs r1, 0x1
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ strb r2, [r4, 0xC]
+ strb r1, [r4, 0xD]
+ ldr r1, _080B5DC0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x34]
+ ldrb r1, [r0, 0x4]
+ strb r1, [r4, 0xE]
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 1
+ movs r0, 0xE
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ ldr r6, _080B5DC4
+ ldrh r0, [r6]
+ strh r0, [r4, 0x3C]
+ adds r5, r4, 0
+ adds r5, 0x11
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x10
+ bl memset
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B5DB2
+ ldr r1, [r4, 0x38]
+ adds r0, r5, 0
+ bl StringCopy
+_080B5DB2:
+ movs r0, 0x10
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DBC: .4byte 0x02000000
+_080B5DC0: .4byte gUnknown_083CE398
+_080B5DC4: .4byte gKeyRepeatStartDelay
+ thumb_func_end NamingScreen_Init
+
+ thumb_func_start sub_80B5DC8
+sub_80B5DC8: @ 80B5DC8
+ push {r4,lr}
+ ldr r4, _080B5DE0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DE0: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B5DC8
+
+ thumb_func_start NamingScreen_ResetObjects
+NamingScreen_ResetObjects: @ 80B5DE4
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_ResetObjects
+
+ thumb_func_start sub_80B5DFC
+sub_80B5DFC: @ 80B5DFC
+ push {lr}
+ bl sub_80B7558
+ bl sub_80B753C
+ bl sub_80B7680
+ bl sub_80B75C4
+ bl sub_80B7794
+ bl sub_80B78A8
+ bl sub_80B7960
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5DFC
+
+ thumb_func_start sub_80B5E20
+sub_80B5E20: @ 80B5E20
+ push {lr}
+ bl sub_80B6774
+ bl sub_80B6A80
+ bl sub_80B6CA8
+ bl sub_80B6D04
+ bl sub_80B6E44
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E20
+
+ thumb_func_start sub_80B5E3C
+sub_80B5E3C: @ 80B5E3C
+ push {lr}
+ bl sub_80B61D8
+ bl sub_80B6438
+ bl sub_80B5E50
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E3C
+
+ thumb_func_start sub_80B5E50
+sub_80B5E50: @ 80B5E50
+ push {r4,lr}
+ ldr r4, _080B5E6C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E6C: .4byte sub_80B5E70
+ thumb_func_end sub_80B5E50
+
+ thumb_func_start sub_80B5E70
+sub_80B5E70: @ 80B5E70
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _080B5E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _080B5EA0
+ ldr r5, _080B5EA4
+_080B5E82:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5E82
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E9C: .4byte gUnknown_083CE218
+_080B5EA0: .4byte 0x02000000
+_080B5EA4: .4byte gTasks
+ thumb_func_end sub_80B5E70
+
+ thumb_func_start sub_80B5EA8
+sub_80B5EA8: @ 80B5EA8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080B5ECC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5ECC: .4byte 0x02000000
+ thumb_func_end sub_80B5EA8
+
+ thumb_func_start sub_80B5ED0
+sub_80B5ED0: @ 80B5ED0
+ push {lr}
+ ldr r0, _080B5EF8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B5EF2
+ movs r0, 0x1
+ bl sub_80B6210
+ movs r0, 0x1
+ bl sub_80B68D8
+ ldr r1, _080B5EFC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B5EF2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5EF8: .4byte gPaletteFade
+_080B5EFC: .4byte 0x02000000
+ thumb_func_end sub_80B5ED0
+
+ thumb_func_start sub_80B5F00
+sub_80B5F00: @ 80B5F00
+ push {lr}
+ bl sub_80B60B8
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5F00
+
+ thumb_func_start sub_80B5F10
+sub_80B5F10: @ 80B5F10
+ push {lr}
+ bl sub_80B6938
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5F2C
+ movs r0, 0x1
+ bl sub_80B6210
+ bl sub_80B6878
+ ldr r1, _080B5F34
+ movs r0, 0x2
+ strb r0, [r1]
+_080B5F2C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F34: .4byte 0x02000000
+ thumb_func_end sub_80B5F10
+
+ thumb_func_start sub_80B5F38
+sub_80B5F38: @ 80B5F38
+ push {lr}
+ movs r0, 0
+ bl sub_80B6210
+ bl sub_80B6B14
+ bl sub_80B65F0
+ movs r0, 0x1
+ bl sub_80B6888
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ movs r0, 0x6
+ bl PlaySE
+ ldr r1, _080B5F6C
+ movs r0, 0x5
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F6C: .4byte 0x02000000
+ thumb_func_end sub_80B5F38
+
+ thumb_func_start sub_80B5F70
+sub_80B5F70: @ 80B5F70
+ push {r4,r5,lr}
+ sub sp, 0x4
+ bl sub_80B6610
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5FDC
+ ldr r4, _080B5FE8
+ movs r0, 0x2
+ strb r0, [r4]
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ strb r0, [r4, 0xE]
+ ldrb r0, [r4, 0xE]
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0xE]
+ bl sub_80B7614
+ bl sub_80B77F8
+ movs r0, 0x1
+ bl sub_80B6210
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0x2
+ bne _080B5FC8
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B5FC8
+ mov r1, sp
+ movs r0, 0x5
+ strh r0, [r1]
+_080B5FC8:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B680C
+ movs r0, 0
+ bl sub_80B6888
+_080B5FDC:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5FE8: .4byte 0x02000000
+ thumb_func_end sub_80B5F70
+
+ thumb_func_start pokemon_store
+pokemon_store: @ 80B5FEC
+ push {r4,lr}
+ bl sub_80B74B0
+ movs r0, 0
+ bl sub_80B6210
+ movs r0, 0
+ bl sub_80B68D8
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ ldr r0, _080B6030
+ ldr r4, _080B6034
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _080B6038
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080B6038
+ bl sub_80B74FC
+ movs r0, 0x7
+ strb r0, [r4]
+ movs r0, 0
+ b _080B6040
+ .align 2, 0
+_080B6030: .4byte gKeyRepeatStartDelay
+_080B6034: .4byte 0x02000000
+_080B6038:
+ ldr r1, _080B6048
+ movs r0, 0x8
+ strb r0, [r1]
+ movs r0, 0x1
+_080B6040:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6048: .4byte 0x02000000
+ thumb_func_end pokemon_store
+
+ thumb_func_start sub_80B604C
+sub_80B604C: @ 80B604C
+ push {lr}
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B6060
+ ldr r1, _080B6068
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B6060:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6068: .4byte 0x02000000
+ thumb_func_end sub_80B604C
+
+ thumb_func_start sub_80B606C
+sub_80B606C: @ 80B606C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080B6090
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6090: .4byte 0x02000000
+ thumb_func_end sub_80B606C
+
+ thumb_func_start sub_80B6094
+sub_80B6094: @ 80B6094
+ push {lr}
+ ldr r0, _080B60B0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B60AA
+ ldr r0, _080B60B4
+ ldr r0, [r0, 0x48]
+ bl SetMainCallback2
+_080B60AA:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B60B0: .4byte gPaletteFade
+_080B60B4: .4byte 0x02000000
+ thumb_func_end sub_80B6094
+
+ thumb_func_start sub_80B60B8
+sub_80B60B8: @ 80B60B8
+ push {r4,r5,lr}
+ bl sub_80B61EC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0x8
+ bne _080B60D6
+ bl sub_80B61C8
+ b _080B60F2
+_080B60D6:
+ cmp r4, 0x6
+ bne _080B60E0
+ bl sub_80B6FBC
+ b _080B6100
+_080B60E0:
+ cmp r5, 0x7
+ beq _080B60FC
+ ldr r1, _080B60F8
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080B60F2:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B6102
+ .align 2, 0
+_080B60F8: .4byte gUnknown_083CE240
+_080B60FC:
+ bl sub_80B7090
+_080B6100:
+ movs r0, 0
+_080B6102:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B60B8
+
+ thumb_func_start sub_80B6108
+sub_80B6108: @ 80B6108
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B613C
+ bl sub_80B7004
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6914
+ cmp r4, 0
+ beq _080B613C
+ movs r0, 0
+ bl sub_80B6210
+ ldr r1, _080B6144
+ movs r0, 0x3
+ strb r0, [r1]
+_080B613C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6144: .4byte 0x02000000
+ thumb_func_end sub_80B6108
+
+ thumb_func_start sub_80B6148
+sub_80B6148: @ 80B6148
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B6162
+ movs r0, 0
+ b _080B616A
+_080B6162:
+ bl sub_80B61C8
+ lsls r0, 24
+ lsrs r0, 24
+_080B616A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6148
+
+ thumb_func_start sub_80B6170
+sub_80B6170: @ 80B6170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B618A
+ bl sub_80B6FBC
+_080B618A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6170
+
+ thumb_func_start sub_80B6194
+sub_80B6194: @ 80B6194
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B61AE
+ movs r0, 0
+ b _080B61BC
+_080B61AE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B61C4
+ movs r0, 0x6
+ strb r0, [r1]
+ movs r0, 0x1
+_080B61BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B61C4: .4byte 0x02000000
+ thumb_func_end sub_80B6194
+
+ thumb_func_start sub_80B61C8
+sub_80B61C8: @ 80B61C8
+ ldr r1, _080B61D4
+ movs r0, 0x4
+ strb r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_080B61D4: .4byte 0x02000000
+ thumb_func_end sub_80B61C8
+
+ thumb_func_start sub_80B61D8
+sub_80B61D8: @ 80B61D8
+ push {lr}
+ ldr r0, _080B61E8
+ movs r1, 0x1
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B61E8: .4byte sub_80B623C
+ thumb_func_end sub_80B61D8
+
+ thumb_func_start sub_80B61EC
+sub_80B61EC: @ 80B61EC
+ push {lr}
+ ldr r0, _080B6208
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B620C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6208: .4byte sub_80B623C
+_080B620C: .4byte gTasks
+ thumb_func_end sub_80B61EC
+
+ thumb_func_start sub_80B6210
+sub_80B6210: @ 80B6210
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B6234
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6238
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6234: .4byte sub_80B623C
+_080B6238: .4byte gTasks
+ thumb_func_end sub_80B6210
+
+ thumb_func_start sub_80B623C
+sub_80B623C: @ 80B623C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080B6264
+ ldr r2, _080B6268
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6264: .4byte gUnknown_083CE250
+_080B6268: .4byte gTasks
+ thumb_func_end sub_80B623C
+
+ thumb_func_start sub_80B626C
+sub_80B626C: @ 80B626C
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ bx lr
+ thumb_func_end sub_80B626C
+
+ thumb_func_start sub_80B6274
+sub_80B6274: @ 80B6274
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldr r0, _080B6290
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6294
+ movs r0, 0x5
+ strh r0, [r2, 0xA]
+ b _080B62C8
+ .align 2, 0
+_080B6290: .4byte gMain
+_080B6294:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62A2
+ movs r0, 0x6
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62A2:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62B0
+ movs r0, 0x8
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62B0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62C2
+ movs r0, 0x9
+ strh r0, [r2, 0xA]
+ bl sub_80B6878
+ b _080B62C8
+_080B62C2:
+ adds r0, r2, 0
+ bl sub_80B62CC
+_080B62C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6274
+
+ thumb_func_start sub_80B62CC
+sub_80B62CC: @ 80B62CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80B6858
+ ldr r0, _080B6374
+ ldrh r2, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080B62F8
+ movs r1, 0x2
+_080B62F8:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080B6302
+ movs r1, 0x3
+_080B6302:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080B630C
+ movs r1, 0x4
+_080B630C:
+ mov r0, sp
+ ldrh r6, [r0]
+ mov r2, sp
+ ldr r0, _080B6378
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ adds r0, r6, r3
+ strh r0, [r2]
+ ldr r0, _080B637C
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080B633A
+ mov r1, sp
+ movs r0, 0x8
+ strh r0, [r1]
+_080B633A:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ ble _080B634A
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+_080B634A:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B63CA
+ ldr r0, _080B6380
+ ldrb r0, [r0, 0xE]
+ cmp r0, 0x2
+ bne _080B638A
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B638A
+ cmp r1, 0
+ ble _080B6384
+ mov r1, sp
+ movs r0, 0x8
+ b _080B6388
+ .align 2, 0
+_080B6374: .4byte gMain
+_080B6378: .4byte gUnknown_083CE258
+_080B637C: .4byte gUnknown_083CE262
+_080B6380: .4byte 0x02000000
+_080B6384:
+ mov r1, sp
+ movs r0, 0x5
+_080B6388:
+ strh r0, [r1]
+_080B638A:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x8
+ bne _080B63AC
+ ldrh r0, [r4]
+ strh r0, [r5, 0xC]
+ ldr r1, _080B63A8
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ b _080B63C8
+ .align 2, 0
+_080B63A8: .4byte gUnknown_083CE26C
+_080B63AC:
+ cmp r6, 0x8
+ bne _080B63CA
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B63BC
+ ldrh r0, [r5, 0xC]
+ b _080B63C8
+_080B63BC:
+ ldr r0, _080B63FC
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_080B63C8:
+ strh r0, [r4]
+_080B63CA:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ bne _080B6408
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080B63E0
+ movs r0, 0x2
+ strh r0, [r4]
+_080B63E0:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _080B63EC
+ movs r0, 0
+ strh r0, [r4]
+_080B63EC:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B6400
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _080B6420
+ .align 2, 0
+_080B63FC: .4byte gUnknown_083CE274
+_080B6400:
+ cmp r0, 0x2
+ bne _080B6420
+ strh r0, [r5, 0xC]
+ b _080B6420
+_080B6408:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080B6414
+ movs r0, 0x3
+ strh r0, [r4]
+_080B6414:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080B6420
+ movs r0, 0
+ strh r0, [r4]
+_080B6420:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_80B680C
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B62CC
+
+ thumb_func_start sub_80B6438
+sub_80B6438: @ 80B6438
+ push {lr}
+ ldr r0, _080B6458
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B645C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6458: .4byte sub_80B64D4
+_080B645C: .4byte gTasks
+ thumb_func_end sub_80B6438
+
+ thumb_func_start sub_80B6460
+sub_80B6460: @ 80B6460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _080B6498
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B649C
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _080B64A0
+ cmp r6, 0
+ bne _080B64A0
+ strh r7, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080B64CC
+ .align 2, 0
+_080B6498: .4byte sub_80B64D4
+_080B649C: .4byte gTasks
+_080B64A0:
+ cmp r5, 0x3
+ bne _080B64B0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B64B0
+ cmp r6, 0
+ beq _080B64CC
+_080B64B0:
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B64C2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B65AC
+_080B64C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_80B65D4
+_080B64CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6460
+
+ thumb_func_start sub_80B64D4
+sub_80B64D4: @ 80B64D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B6548
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B6540
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6540
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r3, [r4, 0xE]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085C7C
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6520
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6540
+_080B6520:
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0xE]
+ adds r0, r1, r2
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B653C
+ cmp r0, 0
+ bne _080B6540
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+_080B653C:
+ negs r0, r1
+ strh r0, [r4, 0x10]
+_080B6540:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6548: .4byte gTasks
+ thumb_func_end sub_80B64D4
+
+ thumb_func_start sub_80B654C
+sub_80B654C: @ 80B654C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x87
+ lsls r1, 1
+ adds r5, r1, 0
+ adds r0, r5
+ add r6, sp, 0x8
+ strh r0, [r6]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ adds r1, 0xA
+ strh r0, [r1]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r5
+ add r1, sp, 0xC
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x6
+ bl memcpy
+ lsls r4, 1
+ mov r1, sp
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B654C
+
+ thumb_func_start sub_80B65AC
+sub_80B65AC: @ 80B65AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ ldr r2, _080B65CC
+ lsrs r0, 15
+ adds r2, r0, r2
+ ldr r1, _080B65D0
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B65CC: .4byte gPlttBufferFaded
+_080B65D0: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80B65AC
+
+ thumb_func_start sub_80B65D4
+sub_80B65D4: @ 80B65D4
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r2, 0x1
+ strh r2, [r0, 0xC]
+ movs r1, 0xF
+ strh r1, [r0, 0xE]
+ strh r2, [r0, 0x10]
+ strh r3, [r0, 0x12]
+ bx lr
+ thumb_func_end sub_80B65D4
+
+ thumb_func_start sub_80B65F0
+sub_80B65F0: @ 80B65F0
+ push {r4,lr}
+ ldr r4, _080B660C
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B660C: .4byte sub_80B6630
+ thumb_func_end sub_80B65F0
+
+ thumb_func_start sub_80B6610
+sub_80B6610: @ 80B6610
+ push {lr}
+ ldr r0, _080B6624
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B6628
+ movs r0, 0
+ b _080B662A
+ .align 2, 0
+_080B6624: .4byte sub_80B6630
+_080B6628:
+ movs r0, 0x1
+_080B662A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6610
+
+ thumb_func_start sub_80B6630
+sub_80B6630: @ 80B6630
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B6660
+ ldr r2, _080B6664
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080B6642:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6642
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6660: .4byte gUnknown_083CE27C
+_080B6664: .4byte gTasks
+ thumb_func_end sub_80B6630
+
+ thumb_func_start sub_80B6668
+sub_80B6668: @ 80B6668
+ ldr r2, _080B667C
+ movs r1, 0
+ strh r1, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_080B667C: .4byte 0x02000000
+ thumb_func_end sub_80B6668
+
+ thumb_func_start sub_80B6680
+sub_80B6680: @ 80B6680
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B66E4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B66E8
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ ble _080B66DA
+ ldrb r1, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B66DA:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B66E4: .4byte gUnknown_083CE28C
+_080B66E8: .4byte 0x02000000
+ thumb_func_end sub_80B6680
+
+ thumb_func_start sub_80B66EC
+sub_80B66EC: @ 80B66EC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B6750
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B6754
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080B6746
+ ldrb r1, [r5, 0xC]
+ ldrb r0, [r5, 0xD]
+ strb r0, [r5, 0xC]
+ strb r1, [r5, 0xD]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B6746:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6750: .4byte gUnknown_083CE28C
+_080B6754: .4byte 0x02000000
+ thumb_func_end sub_80B66EC
+
+ thumb_func_start sub_80B6758
+sub_80B6758: @ 80B6758
+ push {lr}
+ ldr r0, _080B6770
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6770: .4byte sub_80B6630
+ thumb_func_end sub_80B6758
+
+ thumb_func_start sub_80B6774
+sub_80B6774: @ 80B6774
+ push {r4,r5,lr}
+ ldr r0, _080B67E0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _080B67E4
+ strb r0, [r4, 0xF]
+ ldr r5, _080B67E8
+ ldrb r0, [r4, 0xF]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x3A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B680C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B67E0: .4byte gSpriteTemplate_83CE640
+_080B67E4: .4byte 0x02000000
+_080B67E8: .4byte gSprites
+ thumb_func_end sub_80B6774
+
+ thumb_func_start sub_80B67EC
+sub_80B67EC: @ 80B67EC
+ ldr r3, _080B6804
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _080B6808
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 3
+ adds r1, r2
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B6804: .4byte gUnknown_083CE294
+_080B6808: .4byte 0x02000000
+ thumb_func_end sub_80B67EC
+
+ thumb_func_start sub_80B680C
+sub_80B680C: @ 80B680C
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r1, _080B6850
+ ldrb r1, [r1, 0xF]
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r1, _080B6854
+ adds r4, r1
+ lsrs r6, r0, 16
+ asrs r0, 16
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, 0x1B
+ strh r0, [r4, 0x20]
+ lsls r0, r5, 16
+ asrs r0, 12
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6850: .4byte 0x02000000
+_080B6854: .4byte gSprites
+ thumb_func_end sub_80B680C
+
+ thumb_func_start sub_80B6858
+sub_80B6858: @ 80B6858
+ ldr r2, _080B6870
+ ldrb r3, [r2, 0xF]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080B6874
+ adds r2, r3
+ ldrh r3, [r2, 0x2E]
+ strh r3, [r0]
+ ldrh r0, [r2, 0x30]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080B6870: .4byte 0x02000000
+_080B6874: .4byte gSprites
+ thumb_func_end sub_80B6858
+
+ thumb_func_start sub_80B6878
+sub_80B6878: @ 80B6878
+ push {lr}
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80B680C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6878
+
+ thumb_func_start sub_80B6888
+sub_80B6888: @ 80B6888
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B68CC
+ ldr r4, _080B68D0
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ ldr r1, _080B68D4
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B68CC: .4byte gSprites
+_080B68D0: .4byte 0x02000000
+_080B68D4: .4byte 0xffffff00
+ thumb_func_end sub_80B6888
+
+ thumb_func_start sub_80B68D8
+sub_80B68D8: @ 80B68D8
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, _080B690C
+ ldr r4, _080B6910
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ movs r1, 0xFF
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsrs r0, 16
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B690C: .4byte gSprites
+_080B6910: .4byte 0x02000000
+ thumb_func_end sub_80B68D8
+
+ thumb_func_start sub_80B6914
+sub_80B6914: @ 80B6914
+ push {lr}
+ ldr r0, _080B6930
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6934
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6930: .4byte 0x02000000
+_080B6934: .4byte gSprites
+ thumb_func_end sub_80B6914
+
+ thumb_func_start sub_80B6938
+sub_80B6938: @ 80B6938
+ ldr r2, _080B6950
+ ldr r0, _080B6954
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080B6950: .4byte gSprites
+_080B6954: .4byte 0x02000000
+ thumb_func_end sub_80B6938
+
+ thumb_func_start sub_80B6958
+sub_80B6958: @ 80B6958
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r1, _080B6988
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r4, sp, 0x4
+ mov r5, sp
+ adds r5, 0x6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B6858
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ ble _080B698C
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ b _080B698E
+ .align 2, 0
+_080B6988: .4byte gUnknown_083CE2AF
+_080B698C:
+ movs r0, 0
+_080B698E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6958
+
+ thumb_func_start sub_80B6998
+sub_80B6998: @ 80B6998
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B69B0
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_080B69B0:
+ ldrh r1, [r4, 0x36]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080B69DA
+ movs r0, 0x4
+ orrs r2, r0
+ strb r2, [r3]
+_080B69DA:
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080B6A0A
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A0A
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B6A0A
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080B6A16
+_080B6A0A:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ movs r0, 0x1
+ strh r0, [r4, 0x3A]
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A16:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6A3E
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x38]
+ adds r0, r1, r2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B6A36
+ cmp r0, 0
+ bne _080B6A3A
+_080B6A36:
+ negs r0, r1
+ strh r0, [r4, 0x3A]
+_080B6A3A:
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A3E:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A74
+ ldrh r4, [r4, 0x38]
+ lsls r5, r4, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 17
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _080B6A7C
+ adds r0, r2
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r5, 0
+ bl sub_8085C7C
+_080B6A74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6A7C: .4byte 0x01010000
+ thumb_func_end sub_80B6998
+
+ thumb_func_start sub_80B6A80
+sub_80B6A80: @ 80B6A80
+ push {r4,r5,lr}
+ ldr r0, _080B6AF8
+ movs r1, 0xCC
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6AFC
+ strb r0, [r1, 0x10]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _080B6B00
+ adds r4, r5
+ ldr r1, _080B6B04
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B08
+ movs r1, 0xCC
+ movs r2, 0x4C
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3A]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldr r1, _080B6B0C
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B10
+ movs r1, 0xCC
+ movs r2, 0x4B
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ strh r0, [r4, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6AF8: .4byte gSpriteTemplate_83CE5C8
+_080B6AFC: .4byte 0x02000000
+_080B6B00: .4byte gSprites
+_080B6B04: .4byte gUnknown_083CE558
+_080B6B08: .4byte gSpriteTemplate_83CE5F8
+_080B6B0C: .4byte gUnknown_083CE560
+_080B6B10: .4byte gSpriteTemplate_83CE5E0
+ thumb_func_end sub_80B6A80
+
+ thumb_func_start sub_80B6B14
+sub_80B6B14: @ 80B6B14
+ ldr r2, _080B6B2C
+ ldrb r1, [r2, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6B30
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0xE]
+ strh r1, [r0, 0x30]
+ bx lr
+ .align 2, 0
+_080B6B2C: .4byte 0x02000000
+_080B6B30: .4byte gSprites
+ thumb_func_end sub_80B6B14
+
+ thumb_func_start sub_80B6B34
+sub_80B6B34: @ 80B6B34
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B6B58
+_080B6B3A:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6B3A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6B58: .4byte gUnknown_083CE2B4
+ thumb_func_end sub_80B6B34
+
+ thumb_func_start sub_80B6B5C
+sub_80B6B5C: @ 80B6B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r3, _080B6B90
+ adds r1, r3
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _080B6B94
+ ldrb r0, [r0, 0xE]
+ bl sub_80B6C48
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6B90: .4byte gSprites
+_080B6B94: .4byte 0x02000000
+ thumb_func_end sub_80B6B5C
+
+ thumb_func_start sub_80B6B98
+sub_80B6B98: @ 80B6B98
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80B6B98
+
+ thumb_func_start sub_80B6B9C
+sub_80B6B9C: @ 80B6B9C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080B6C00
+ adds r4, r0, r2
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080B6BF8
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _080B6C04
+ strh r0, [r4, 0x26]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B6C48
+_080B6BF8:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C00: .4byte gSprites
+_080B6C04: .4byte 0x0000fffc
+ thumb_func_end sub_80B6B9C
+
+ thumb_func_start sub_80B6C08
+sub_80B6C08: @ 80B6C08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6C44
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B6C3C
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080B6C3C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C44: .4byte gSprites
+ thumb_func_end sub_80B6C08
+
+ thumb_func_start sub_80B6C48
+sub_80B6C48: @ 80B6C48
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B6CA0
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ mov r1, r8
+ ldrb r2, [r1, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0, 0x5]
+ ldr r0, _080B6CA4
+ adds r4, r0
+ ldrh r0, [r4]
+ bl GetSpriteTileStartByTag
+ adds r1, r6, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r6, 0x42
+ movs r1, 0x3F
+ ands r1, r5
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CA0: .4byte gUnknown_083CE2C4
+_080B6CA4: .4byte gUnknown_083CE2CA
+ thumb_func_end sub_80B6C48
+
+ thumb_func_start sub_80B6CA8
+sub_80B6CA8: @ 80B6CA8
+ push {r4,r5,lr}
+ ldr r0, _080B6CF4
+ movs r1, 0xCC
+ movs r2, 0x6C
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080B6CF8
+ adds r0, r4
+ ldr r5, _080B6CFC
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6D00
+ movs r1, 0xCC
+ movs r2, 0x84
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CF4: .4byte gSpriteTemplate_83CE610
+_080B6CF8: .4byte gSprites
+_080B6CFC: .4byte gUnknown_083CE578
+_080B6D00: .4byte gSpriteTemplate_83CE628
+ thumb_func_end sub_80B6CA8
+
+ thumb_func_start sub_80B6D04
+sub_80B6D04: @ 80B6D04
+ push {r4-r6,lr}
+ ldr r4, _080B6D8C
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x1
+ lsls r1, 3
+ adds r1, 0x4
+ ldr r0, _080B6D90
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x28
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080B6D94
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrh r0, [r4, 0x2]
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r5, 0
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcs _080B6D86
+ adds r6, r3, 0
+_080B6D4A:
+ lsls r4, r1, 16
+ asrs r4, 16
+ ldr r0, _080B6D98
+ adds r1, r4, 0
+ movs r2, 0x2C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x8
+ lsls r4, 16
+ lsrs r1, r4, 16
+ ldr r0, _080B6D8C
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcc _080B6D4A
+_080B6D86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6D8C: .4byte 0x02000000
+_080B6D90: .4byte gSpriteTemplate_83CE658
+_080B6D94: .4byte gSprites
+_080B6D98: .4byte gSpriteTemplate_83CE670
+ thumb_func_end sub_80B6D04
+
+ thumb_func_start sub_80B6D9C
+sub_80B6D9C: @ 80B6D9C
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6DE4
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6DC0
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6DCE
+_080B6DC0:
+ movs r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+_080B6DCE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6DE4: .4byte gUnknown_083CE2D0
+ thumb_func_end sub_80B6D9C
+
+ thumb_func_start sub_80B6DE8
+sub_80B6DE8: @ 80B6DE8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6E10
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl sub_80B6F44
+ lsls r0, 24
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ cmp r0, r1
+ beq _080B6E14
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x30]
+ b _080B6E3A
+ .align 2, 0
+_080B6E10: .4byte gUnknown_083CE2D8
+_080B6E14:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080B6E3C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r0, 0
+_080B6E3A:
+ strh r0, [r4, 0x32]
+_080B6E3C:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6DE8
+
+ thumb_func_start sub_80B6E44
+sub_80B6E44: @ 80B6E44
+ push {lr}
+ ldr r1, _080B6E5C
+ ldr r0, _080B6E60
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6E5C: .4byte gUnknown_083CE2E0
+_080B6E60: .4byte 0x02000000
+ thumb_func_end sub_80B6E44
+
+ thumb_func_start nullsub_40
+nullsub_40: @ 80B6E64
+ bx lr
+ thumb_func_end nullsub_40
+
+ thumb_func_start sub_80B6E68
+sub_80B6E68: @ 80B6E68
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080B6EB0
+ ldrh r1, [r0, 0x3E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6EB4
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x38
+ movs r3, 0x18
+ bl AddPseudoFieldObject
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080B6EB8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x4
+ bl StartSpriteAnim
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EB0: .4byte 0x02000000
+_080B6EB4: .4byte SpriteCallbackDummy
+_080B6EB8: .4byte gSprites
+ thumb_func_end sub_80B6E68
+
+ thumb_func_start sub_80B6EBC
+sub_80B6EBC: @ 80B6EBC
+ push {r4,lr}
+ ldr r0, _080B6EF0
+ movs r1, 0x34
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080B6EF4
+ adds r4, r0
+ ldr r1, _080B6EF8
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EF0: .4byte gSpriteTemplate_83CE688
+_080B6EF4: .4byte gSprites
+_080B6EF8: .4byte gUnknown_083CE580
+ thumb_func_end sub_80B6EBC
+
+ thumb_func_start sub_80B6EFC
+sub_80B6EFC: @ 80B6EFC
+ push {lr}
+ sub sp, 0x8
+ bl sub_809D51C
+ ldr r3, _080B6F38
+ ldrh r0, [r3, 0x3E]
+ ldr r1, _080B6F3C
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, [r3, 0x44]
+ str r2, [sp, 0x4]
+ movs r2, 0x34
+ movs r3, 0x18
+ bl sub_809D2FC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6F40
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6F38: .4byte 0x02000000
+_080B6F3C: .4byte SpriteCallbackDummy
+_080B6F40: .4byte gSprites
+ thumb_func_end sub_80B6EFC
+
+ thumb_func_start sub_80B6F44
+sub_80B6F44: @ 80B6F44
+ push {r4,lr}
+ movs r2, 0
+ ldr r1, _080B6F64
+ ldr r0, [r1, 0x34]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, r0
+ bcs _080B6F72
+ adds r1, 0x11
+ adds r3, r0, 0
+_080B6F58:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B6F68
+ adds r0, r2, 0
+ b _080B6F7C
+ .align 2, 0
+_080B6F64: .4byte 0x02000000
+_080B6F68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _080B6F58
+_080B6F72:
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080B6F7C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F44
+
+ thumb_func_start sub_80B6F84
+sub_80B6F84: @ 80B6F84
+ push {lr}
+ ldr r2, _080B6FA8
+ ldr r0, [r2, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ ble _080B6FB4
+ adds r3, r2, 0
+ adds r3, 0x11
+_080B6F98:
+ asrs r2, r1, 24
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B6FAC
+ lsrs r0, r1, 24
+ b _080B6FB6
+ .align 2, 0
+_080B6FA8: .4byte 0x02000000
+_080B6FAC:
+ subs r0, r2, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ bgt _080B6F98
+_080B6FB4:
+ movs r0, 0
+_080B6FB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F84
+
+ thumb_func_start sub_80B6FBC
+sub_80B6FBC: @ 80B6FBC
+ push {r4,lr}
+ bl sub_80B6F84
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B7000
+ adds r0, 0x11
+ adds r4, r0
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80B7960
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080B6FEA
+ cmp r0, 0x2
+ bne _080B6FF4
+_080B6FEA:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+_080B6FF4:
+ movs r0, 0x17
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7000: .4byte 0x02000000
+ thumb_func_end sub_80B6FBC
+
+ thumb_func_start sub_80B7004
+sub_80B7004: @ 80B7004
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ mov r4, sp
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B7768
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ movs r4, 0x1
+ cmp r0, 0xFF
+ bne _080B7046
+ bl sub_80B7104
+ b _080B704E
+_080B7046:
+ cmp r0, 0xFE
+ bne _080B7054
+ bl sub_80B713C
+_080B704E:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _080B705A
+_080B7054:
+ adds r0, r1, 0
+ bl sub_80B7174
+_080B705A:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ cmp r4, 0
+ beq _080B7084
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7080
+ ldr r1, [r1, 0x34]
+ ldrb r1, [r1, 0x1]
+ subs r1, 0x1
+ cmp r0, r1
+ bne _080B7084
+ movs r0, 0x1
+ b _080B7086
+ .align 2, 0
+_080B7080: .4byte 0x02000000
+_080B7084:
+ movs r0, 0
+_080B7086:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7004
+
+ thumb_func_start sub_80B7090
+sub_80B7090: @ 80B7090
+ push {r4-r7,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _080B70C8
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80B7198
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70D6
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70CC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ b _080B70F4
+ .align 2, 0
+_080B70C8: .4byte 0x02000000
+_080B70CC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B73CC
+ b _080B70F4
+_080B70D6:
+ adds r0, r4, 0
+ bl sub_80B71E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70EC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7474
+ b _080B70F4
+_080B70EC:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80B72A4
+_080B70F4:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7090
+
+ thumb_func_start sub_80B7104
+sub_80B7104: @ 80B7104
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7128
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B720C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B712C
+ movs r0, 0
+ b _080B7136
+ .align 2, 0
+_080B7128: .4byte 0x02000000
+_080B712C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B72A4
+ movs r0, 0x1
+_080B7136:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7104
+
+ thumb_func_start sub_80B713C
+sub_80B713C: @ 80B713C
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7160
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7164
+ movs r0, 0
+ b _080B716E
+ .align 2, 0
+_080B7160: .4byte 0x02000000
+_080B7164:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ movs r0, 0x1
+_080B716E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B713C
+
+ thumb_func_start sub_80B7174
+sub_80B7174: @ 80B7174
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6F44
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7194
+ adds r1, 0x11
+ adds r0, r1
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7194: .4byte 0x02000000
+ thumb_func_end sub_80B7174
+
+ thumb_func_start sub_80B7198
+sub_80B7198: @ 80B7198
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC9
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B71DE
+_080B71DA:
+ movs r0, 0x1
+ b _080B71E0
+_080B71DE:
+ movs r0, 0
+_080B71E0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7198
+
+ thumb_func_start sub_80B71E4
+sub_80B71E4: @ 80B71E4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xB5
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7202
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7206
+_080B7202:
+ movs r0, 0x1
+ b _080B7208
+_080B7206:
+ movs r0, 0
+_080B7208:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B71E4
+
+ thumb_func_start sub_80B720C
+sub_80B720C: @ 80B720C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFA
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B725E
+_080B725A:
+ movs r0, 0x1
+ b _080B7260
+_080B725E:
+ movs r0, 0
+_080B7260:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B720C
+
+ thumb_func_start sub_80B7264
+sub_80B7264: @ 80B7264
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xE6
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B729E
+_080B729A:
+ movs r0, 0x1
+ b _080B72A0
+_080B729E:
+ movs r0, 0
+_080B72A0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7264
+
+ thumb_func_start sub_80B72A4
+sub_80B72A4: @ 80B72A4
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xFA
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72C0
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72C0:
+ adds r0, r2, 0
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72D2
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72D2:
+ adds r0, r2, 0
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72E4
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72E4:
+ adds r0, r2, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72F6
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B72F6:
+ adds r0, r2, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7356
+ adds r0, r2, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7314
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7314:
+ adds r0, r2, 0
+ subs r0, 0x5B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7326
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7326:
+ adds r0, r2, 0
+ subs r0, 0x60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7338
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7338:
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B734A
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B734A:
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B735E
+_080B7356:
+ adds r0, r2, 0
+ adds r0, 0xFB
+_080B735A:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B735E:
+ ldr r0, _080B736C
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B736C: .4byte 0x02000000
+ thumb_func_end sub_80B72A4
+
+ thumb_func_start sub_80B7370
+sub_80B7370: @ 80B7370
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xE6
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B738C
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B738C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B73B6
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73AA
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B73AA:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73BC
+_080B73B6:
+ adds r0, r2, 0x5
+_080B73B8:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B73BC:
+ ldr r0, _080B73C8
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B73C8: .4byte 0x02000000
+ thumb_func_end sub_80B7370
+
+ thumb_func_start sub_80B73CC
+sub_80B73CC: @ 80B73CC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xC9
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73E8
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73E8:
+ adds r0, r2, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73FA
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73FA:
+ adds r0, r2, 0
+ subs r0, 0x41
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B740C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B740C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B745A
+ adds r0, r2, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B742A
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B742A:
+ adds r0, r2, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B743C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B743C:
+ adds r0, r2, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B744E
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B744E:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7462
+_080B745A:
+ adds r0, r2, 0
+ adds r0, 0xD4
+_080B745E:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7462:
+ ldr r0, _080B7470
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7470: .4byte 0x02000000
+ thumb_func_end sub_80B73CC
+
+ thumb_func_start sub_80B7474
+sub_80B7474: @ 80B7474
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xB5
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7496
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B749E
+_080B7496:
+ adds r0, r2, 0
+ adds r0, 0xCF
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B749E:
+ ldr r0, _080B74AC
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B74AC: .4byte 0x02000000
+ thumb_func_end sub_80B7474
+
+ thumb_func_start sub_80B74B0
+sub_80B74B0: @ 80B74B0
+ push {r4,lr}
+ movs r1, 0
+ ldr r3, _080B74E4
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcs _080B74F6
+ adds r2, r3, 0
+ adds r4, r3, 0
+ adds r4, 0x11
+_080B74C4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B74E8
+ cmp r0, 0xFF
+ beq _080B74E8
+ ldr r0, [r2, 0x38]
+ ldr r1, [r2, 0x34]
+ ldrb r2, [r1, 0x1]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, 0
+ bl StringCopyN
+ b _080B74F6
+ .align 2, 0
+_080B74E4: .4byte 0x02000000
+_080B74E8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcc _080B74C4
+_080B74F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B74B0
+
+ thumb_func_start sub_80B74FC
+sub_80B74FC: @ 80B74FC
+ push {r4,lr}
+ ldr r0, _080B7528
+ ldr r1, _080B752C
+ ldr r1, [r1, 0x38]
+ bl StringCopy
+ ldr r4, _080B7530
+ ldr r1, _080B7534
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080B7538
+ bl BasicInitMenuWindow
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ bl sub_8072044
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7528: .4byte gStringVar1
+_080B752C: .4byte 0x02000000
+_080B7530: .4byte gStringVar4
+_080B7534: .4byte gOtherText_SentToPC
+_080B7538: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B74FC
+
+ thumb_func_start sub_80B753C
+sub_80B753C: @ 80B753C
+ push {lr}
+ ldr r0, _080B7550
+ bl LoadSpriteSheets
+ ldr r0, _080B7554
+ bl LoadSpritePalettes
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7550: .4byte gUnknown_083CE6A0
+_080B7554: .4byte gUnknown_083CE708
+ thumb_func_end sub_80B753C
+
+ thumb_func_start sub_80B7558
+sub_80B7558: @ 80B7558
+ push {lr}
+ bl sub_80B7568
+ bl sub_80B75B0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7558
+
+ thumb_func_start sub_80B7568
+sub_80B7568: @ 80B7568
+ push {r4,lr}
+ ldr r4, _080B759C
+ ldr r3, _080B75A0
+ ldrh r0, [r3]
+ lsls r0, 5
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ ldr r1, _080B75A4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r2, _080B75A8
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrh r0, [r3]
+ lsls r0, 5
+ ldr r3, _080B75AC
+ adds r0, r3
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B759C: .4byte gNamingScreenMenu_Gfx
+_080B75A0: .4byte gMenuMessageBoxContentTileOffset
+_080B75A4: .4byte 0x040000d4
+_080B75A8: .4byte 0x80000400
+_080B75AC: .4byte 0x06008000
+ thumb_func_end sub_80B7568
+
+ thumb_func_start sub_80B75B0
+sub_80B75B0: @ 80B75B0
+ push {lr}
+ ldr r0, _080B75C0
+ movs r1, 0
+ movs r2, 0x80
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B75C0: .4byte gNamingScreenPalettes
+ thumb_func_end sub_80B75B0
+
+ thumb_func_start sub_80B75C4
+sub_80B75C4: @ 80B75C4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080B7608
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, _080B760C
+ ldr r5, _080B7610
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r5, 0xC]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r4, 0x4
+ adds r1, r4
+ ldrb r0, [r5, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7608: .4byte gUnknown_083CE308
+_080B760C: .4byte gUnknown_083CE2F0
+_080B7610: .4byte 0x02000000
+ thumb_func_end sub_80B75C4
+
+ thumb_func_start sub_80B7614
+sub_80B7614: @ 80B7614
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080B7644
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080B7648
+ ldr r2, _080B764C
+ ldrb r1, [r2, 0xE]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r2, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7644: .4byte gUnknown_083CE308
+_080B7648: .4byte gUnknown_083CE2F0
+_080B764C: .4byte 0x02000000
+ thumb_func_end sub_80B7614
+
+ thumb_func_start sub_80B7650
+sub_80B7650: @ 80B7650
+ push {lr}
+ ldr r1, _080B765C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B765C: .4byte gUnknown_083CE748
+ thumb_func_end sub_80B7650
+
+ thumb_func_start sub_80B7660
+sub_80B7660: @ 80B7660
+ push {lr}
+ ldr r1, _080B766C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B766C: .4byte gUnknown_083CEBF8
+ thumb_func_end sub_80B7660
+
+ thumb_func_start sub_80B7670
+sub_80B7670: @ 80B7670
+ push {lr}
+ ldr r1, _080B767C
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B767C: .4byte gUnknown_083CF0A8
+ thumb_func_end sub_80B7670
+
+ thumb_func_start sub_80B7680
+sub_80B7680: @ 80B7680
+ push {lr}
+ ldr r0, _080B7690
+ ldr r1, _080B7694
+ bl sub_80B76E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7690: .4byte 0x0600f000
+_080B7694: .4byte gUnknown_08E86258
+ thumb_func_end sub_80B7680
+
+ thumb_func_start sub_80B7698
+sub_80B7698: @ 80B7698
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B76DC
+ ldrh r6, [r0]
+_080B76A4:
+ movs r1, 0
+ lsls r4, 16
+ asrs r5, r4, 11
+_080B76AA:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76AA
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76A4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B76DC: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B7698
+
+ thumb_func_start sub_80B76E0
+sub_80B76E0: @ 80B76E0
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B7728
+ ldrh r6, [r0]
+_080B76EC:
+ movs r1, 0
+ lsls r5, r4, 16
+ asrs r4, r5, 11
+_080B76F2:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r4, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76F2
+ adds r3, 0x4
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7728: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B76E0
+
+ thumb_func_start sub_80B772C
+sub_80B772C: @ 80B772C
+ push {lr}
+ ldr r1, _080B773C
+ ldrb r0, [r1, 0xE]
+ ldrb r1, [r1, 0xC]
+ bl nullsub_20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B773C: .4byte 0x02000000
+ thumb_func_end sub_80B772C
+
+ thumb_func_start sub_80B7740
+sub_80B7740: @ 80B7740
+ push {r4,lr}
+ ldr r4, _080B7760
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0xD]
+ bl nullsub_20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7760: .4byte 0x02000000
+ thumb_func_end sub_80B7740
+
+ thumb_func_start nullsub_20
+nullsub_20: @ 80B7764
+ bx lr
+ thumb_func_end nullsub_20
+
+ thumb_func_start sub_80B7768
+sub_80B7768: @ 80B7768
+ ldr r3, _080B778C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, _080B7790
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B778C: .4byte gUnknown_083CE3A8
+_080B7790: .4byte 0x02000000
+ thumb_func_end sub_80B7768
+
+ thumb_func_start sub_80B7794
+sub_80B7794: @ 80B7794
+ push {r4-r6,lr}
+ ldr r6, _080B77EC
+ ldr r4, _080B77F0
+ ldrb r0, [r4, 0xC]
+ lsls r0, 2
+ ldrb r1, [r4, 0xE]
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldr r0, [r0]
+ bl BasicInitMenuWindow
+ ldr r5, _080B77F4
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r6, 0x8
+ adds r1, r6
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r5, 0x4
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B772C
+ bl sub_80B7740
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B77EC: .4byte gUnknown_083CE328
+_080B77F0: .4byte 0x02000000
+_080B77F4: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B7794
+
+ thumb_func_start sub_80B77F8
+sub_80B77F8: @ 80B77F8
+ push {r4,lr}
+ ldr r2, _080B782C
+ ldr r4, _080B7830
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r2, 0x8
+ adds r1, r2
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldr r1, _080B7834
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B7740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B782C: .4byte gUnknown_083CE328
+_080B7830: .4byte 0x02000000
+_080B7834: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B77F8
+
+ thumb_func_start sub_80B7838
+sub_80B7838: @ 80B7838
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7838
+
+ thumb_func_start sub_80B7844
+sub_80B7844: @ 80B7844
+ push {lr}
+ movs r0, 0
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7844
+
+ thumb_func_start sub_80B7850
+sub_80B7850: @ 80B7850
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7850
+
+ thumb_func_start sub_80B785C
+sub_80B785C: @ 80B785C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ movs r5, 0x9
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 4
+_080B786C:
+ lsls r4, r2, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080B78A4
+ adds r0, r1
+ adds r0, r6, r0
+ lsls r2, r5, 24
+ lsrs r2, 24
+ movs r1, 0x3
+ bl MenuPrint
+ adds r4, 0x1
+ lsls r4, 16
+ lsls r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 10
+ adds r0, r1
+ lsrs r5, r0, 16
+ lsrs r2, r4, 16
+ asrs r4, 16
+ cmp r4, 0x3
+ ble _080B786C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78A4: .4byte gUnknown_083CE3A8
+ thumb_func_end sub_80B785C
+
+ thumb_func_start sub_80B78A8
+sub_80B78A8: @ 80B78A8
+ push {r4,lr}
+ ldr r0, _080B78E4
+ bl BasicInitMenuWindow
+ ldr r1, _080B78E8
+ ldr r4, _080B78EC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _080B78F0
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, [r4, 0x34]
+ ldr r0, [r0, 0x8]
+ movs r1, 0x9
+ movs r2, 0x2
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78E4: .4byte gWindowConfig_81E6F4C
+_080B78E8: .4byte gUnknown_083CE358
+_080B78EC: .4byte 0x02000000
+_080B78F0: .4byte gUnknown_083CE368
+ thumb_func_end sub_80B78A8
+
+ thumb_func_start nullsub_61
+nullsub_61: @ 80B78F4
+ bx lr
+ thumb_func_end nullsub_61
+
+ thumb_func_start sub_80B78F8
+sub_80B78F8: @ 80B78F8
+ push {lr}
+ ldr r0, _080B7914
+ ldr r1, _080B7918
+ movs r3, 0x3E
+ ldrsh r2, [r1, r3]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080B791C
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7914: .4byte gStringVar1
+_080B7918: .4byte 0x02000000
+_080B791C: .4byte gSpeciesNames
+ thumb_func_end sub_80B78F8
+
+ thumb_func_start nullsub_62
+nullsub_62: @ 80B7920
+ bx lr
+ thumb_func_end nullsub_62
+
+ thumb_func_start sub_80B7924
+sub_80B7924: @ 80B7924
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080B7958
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldr r0, _080B795C
+ adds r0, 0x40
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ beq _080B7952
+ cmp r0, 0xFE
+ bne _080B7948
+ mov r1, sp
+ movs r0, 0xB6
+ strb r0, [r1]
+_080B7948:
+ mov r0, sp
+ movs r1, 0x14
+ movs r2, 0x4
+ bl MenuPrint
+_080B7952:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7958: .4byte gUnknown_083CE370
+_080B795C: .4byte 0x02000000
+ thumb_func_end sub_80B7924
+
+ thumb_func_start sub_80B7960
+sub_80B7960: @ 80B7960
+ push {r4,lr}
+ ldr r0, _080B799C
+ movs r2, 0xFC
+ strb r2, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x8
+ strb r1, [r0, 0x2]
+ strb r2, [r0, 0x3]
+ movs r1, 0x11
+ strb r1, [r0, 0x4]
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ adds r0, 0x6
+ ldr r4, _080B79A0
+ adds r1, r4, 0
+ bl StringCopy
+ ldr r0, _080B79A4
+ bl BasicInitMenuWindow
+ ldr r0, _080B799C
+ subs r4, 0x11
+ ldrb r1, [r4, 0x2]
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B799C: .4byte gStringVar1
+_080B79A0: .4byte 0x02000011
+_080B79A4: .4byte gWindowConfig_81E6F4C
+ thumb_func_end sub_80B7960
+
+ thumb_func_start IsEnoughMoney
+IsEnoughMoney: @ 80B79A8
+ push {lr}
+ cmp r0, r1
+ bcs _080B79B2
+ movs r0, 0
+ b _080B79B4
+_080B79B2:
+ movs r0, 0x1
+_080B79B4:
+ pop {r1}
+ bx r1
+ thumb_func_end IsEnoughMoney
+
+ thumb_func_start sub_80B79B8
+sub_80B79B8: @ 80B79B8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ adds r1, r0, r1
+ cmp r0, r1
+ bls _080B79CC
+ ldr r0, _080B79C8
+ b _080B79D4
+ .align 2, 0
+_080B79C8: .4byte 0x000f423f
+_080B79CC:
+ str r1, [r2]
+ ldr r0, _080B79DC
+ cmp r1, r0
+ bls _080B79D6
+_080B79D4:
+ str r0, [r2]
+_080B79D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B79DC: .4byte 0x000f423f
+ thumb_func_end sub_80B79B8
+
+ thumb_func_start sub_80B79E0
+sub_80B79E0: @ 80B79E0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2]
+ cmp r0, r1
+ bcs _080B79EE
+ movs r0, 0
+ b _080B79F0
+_080B79EE:
+ subs r0, r1
+_080B79F0:
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B79E0
+
+ thumb_func_start sub_80B79F8
+sub_80B79F8: @ 80B79F8
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r0, _080B7A0C
+ cmp r1, r0
+ bls _080B7A10
+ movs r2, 0x7
+ b _080B7A46
+ .align 2, 0
+_080B7A0C: .4byte 0x000f423f
+_080B7A10:
+ ldr r0, _080B7A1C
+ cmp r1, r0
+ bls _080B7A20
+ movs r2, 0x6
+ b _080B7A46
+ .align 2, 0
+_080B7A1C: .4byte 0x0001869f
+_080B7A20:
+ ldr r0, _080B7A2C
+ cmp r1, r0
+ bls _080B7A30
+ movs r2, 0x5
+ b _080B7A46
+ .align 2, 0
+_080B7A2C: .4byte 0x00002710
+_080B7A30:
+ ldr r0, _080B7A90
+ movs r2, 0x4
+ cmp r1, r0
+ bhi _080B7A46
+ movs r2, 0x3
+ cmp r1, 0x63
+ bhi _080B7A46
+ movs r2, 0x1
+ cmp r1, 0x9
+ bls _080B7A46
+ movs r2, 0x2
+_080B7A46:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ movs r0, 0
+ subs r2, r4, r2
+ cmp r0, r2
+ bge _080B7A6C
+ movs r4, 0
+_080B7A5E:
+ strb r4, [r3]
+ adds r3, 0x1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ blt _080B7A5E
+_080B7A6C:
+ movs r0, 0xB7
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7A90: .4byte 0x000003e7
+ thumb_func_end sub_80B79F8
+
+ thumb_func_start sub_80B7A94
+sub_80B7A94: @ 80B7A94
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B79F8
+ mov r0, sp
+ bl sub_8072CA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 3
+ cmp r2, r0
+ blt _080B7ACE
+ mov r0, sp
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl MenuPrint
+ b _080B7AE4
+_080B7ACE:
+ adds r1, r6, 0x1
+ adds r1, r5
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r7, 3
+ mov r0, sp
+ movs r3, 0x1
+ bl sub_80729D8
+_080B7AE4:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7A94
+
+ thumb_func_start sub_80B7AEC
+sub_80B7AEC: @ 80B7AEC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ movs r0, 0xB7
+ strb r0, [r6]
+ adds r6, 0x1
+ adds r0, r6, 0
+ adds r1, r3, 0
+ bl ConvertIntToDecimalString
+ adds r6, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8072B4C
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x14
+ strb r0, [r6, 0x1]
+ movs r0, 0
+ strb r0, [r6, 0x2]
+ movs r0, 0xFF
+ strb r0, [r6, 0x3]
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7AEC
+
+ thumb_func_start sub_80B7B34
+sub_80B7B34: @ 80B7B34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r9
+ lsls r1, 8
+ mov r9, r1
+ ldr r4, _080B7BD8
+ adds r0, r1, r4
+ lsls r6, r5, 4
+ subs r6, r5
+ lsls r1, r6, 6
+ mov r3, r8
+ adds r3, 0x1
+ lsls r3, 5
+ ldr r2, _080B7BDC
+ adds r3, r2
+ adds r1, r3
+ movs r2, 0x20
+ str r3, [sp]
+ bl CpuFastSet
+ adds r4, 0x80
+ add r9, r4
+ adds r0, r5, 0x1
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r1, r4, 6
+ ldr r3, [sp]
+ adds r1, r3
+ mov r0, r9
+ movs r2, 0x20
+ bl CpuFastSet
+ movs r3, 0
+ lsls r5, 5
+ mov r0, r8
+ adds r7, r5, r0
+ lsls r6, 1
+ adds r6, 0x1
+ add r6, r8
+ ldr r1, _080B7BE0
+ adds r5, r1, 0
+ ldr r0, _080B7BE4
+ mov r12, r0
+ ldr r1, _080B7BE8
+ mov r9, r1
+ lsls r4, 1
+ adds r4, 0x1
+ add r4, r8
+_080B7BAA:
+ adds r1, r7, r3
+ lsls r1, 1
+ mov r0, r12
+ adds r2, r1, r0
+ adds r0, r3, r6
+ adds r0, r5
+ strh r0, [r2]
+ add r1, r9
+ adds r0, r3, r4
+ adds r0, r5
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B7BAA
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7BD8: .4byte gDecoration10000_Gfx
+_080B7BDC: .4byte 0x06008000
+_080B7BE0: .4byte 0xfffff000
+_080B7BE4: .4byte 0x0600f800
+_080B7BE8: .4byte 0x0600f840
+ thumb_func_end sub_80B7B34
+
+ thumb_func_start sub_80B7BEC
+sub_80B7BEC: @ 80B7BEC
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r4, r1
+ lsrs r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r3, r1
+ lsrs r3, 24
+ movs r1, 0x6
+ adds r2, r4, 0
+ bl sub_80B7A94
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7BEC
+
+ thumb_func_start sub_80B7C14
+sub_80B7C14: @ 80B7C14
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r6, r4, 24
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r4, r0
+ lsrs r4, 24
+ lsrs r5, r3, 24
+ movs r1, 0xC0
+ lsls r1, 18
+ adds r3, r1
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ mov r0, r8
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80B7BEC
+ ldr r0, _080B7C88
+ bl LoadCompressedObjectPic
+ ldr r0, _080B7C8C
+ bl LoadCompressedObjectPalette
+ ldr r0, _080B7C90
+ lsls r6, 19
+ movs r1, 0x98
+ lsls r1, 13
+ adds r6, r1
+ asrs r6, 16
+ lsls r5, 19
+ movs r1, 0xB0
+ lsls r1, 12
+ adds r5, r1
+ asrs r5, 16
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080B7C94
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7C88: .4byte gUnknown_083CF584
+_080B7C8C: .4byte gUnknown_083CF58C
+_080B7C90: .4byte gSpriteTemplate_83CF56C
+_080B7C94: .4byte gUnknown_02038734
+ thumb_func_end sub_80B7C14
+
+ thumb_func_start RemoveMoneyLabelObject
+RemoveMoneyLabelObject: @ 80B7C98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B7CDC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B7CE0
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r0, _080B7CE4
+ bl FreeSpritePaletteByTag
+ adds r2, r4, 0
+ adds r2, 0xD
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r5, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MenuZeroFillWindowRect
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7CDC: .4byte gUnknown_02038734
+_080B7CE0: .4byte gSprites
+_080B7CE4: .4byte 0x00002722
+ thumb_func_end RemoveMoneyLabelObject
+
+ thumb_func_start sub_80B7CE8
+sub_80B7CE8: @ 80B7CE8
+ push {lr}
+ ldr r0, _080B7D04
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080B7D08
+ ldrh r1, [r1]
+ bl IsEnoughMoney
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B7D04: .4byte gSaveBlock1
+_080B7D08: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7CE8
+
+ thumb_func_start sub_80B7D0C
+sub_80B7D0C: @ 80B7D0C
+ push {lr}
+ ldr r0, _080B7D1C
+ ldr r1, _080B7D20
+ ldrh r1, [r1]
+ bl sub_80B79E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7D1C: .4byte gSaveBlock1 + 0x490
+_080B7D20: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80B7D0C
+
+ thumb_func_start AreMovesContestCombo
+AreMovesContestCombo: @ 80B7D24
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsls r1, 16
+ ldr r2, _080B7D78
+ lsrs r0, 13
+ adds r0, r2
+ ldrb r4, [r0, 0x2]
+ mov r3, sp
+ lsrs r1, 13
+ adds r1, r2
+ ldrb r0, [r1, 0x3]
+ strb r0, [r3]
+ mov r2, sp
+ ldrb r0, [r1, 0x4]
+ strb r0, [r2, 0x1]
+ ldrb r0, [r1, 0x5]
+ strb r0, [r2, 0x2]
+ mov r0, sp
+ ldrb r1, [r1, 0x6]
+ strb r1, [r0, 0x3]
+ cmp r4, 0
+ beq _080B7D80
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r4, r0
+ beq _080B7D6E
+ cmp r4, r1
+ bne _080B7D80
+_080B7D6E:
+ ldr r0, _080B7D7C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ b _080B7D82
+ .align 2, 0
+_080B7D78: .4byte gContestMoves
+_080B7D7C: .4byte gComboStarterLookupTable
+_080B7D80:
+ movs r0, 0
+_080B7D82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end AreMovesContestCombo
+
+ thumb_func_start ContestEffect_00
+ContestEffect_00: @ 80B7D8C
+ bx lr
+ thumb_func_end ContestEffect_00
+
+ thumb_func_start ContestEffect_01
+ContestEffect_01: @ 80B7D90
+ push {lr}
+ ldr r3, _080B7DB8
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_01
+
+ thumb_func_start ContestEffect_02
+ContestEffect_02: @ 80B7DBC
+ push {lr}
+ ldr r3, _080B7DE4
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x1
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DE4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_02
+
+ thumb_func_start ContestEffect_03
+ContestEffect_03: @ 80B7DE8
+ push {r4,lr}
+ ldr r3, _080B7E30
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x15]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x15]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E30: .4byte 0x020192d0
+ thumb_func_end ContestEffect_03
+
+ thumb_func_start ContestEffect_04
+ContestEffect_04: @ 80B7E34
+ push {lr}
+ ldr r2, _080B7E58
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0, 0x12]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x2
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E58: .4byte 0x020192d0
+ thumb_func_end ContestEffect_04
+
+ thumb_func_start ContestEffect_05
+ContestEffect_05: @ 80B7E5C
+ push {lr}
+ ldr r3, _080B7E84
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x3
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E84: .4byte 0x020192d0
+ thumb_func_end ContestEffect_05
+
+ thumb_func_start ContestEffect_06
+ContestEffect_06: @ 80B7E88
+ push {lr}
+ ldr r2, _080B7EAC
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x14
+ strb r1, [r0, 0xF]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x4
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7EAC: .4byte 0x020192d0
+ thumb_func_end ContestEffect_06
+
+ thumb_func_start ContestEffect_07
+ContestEffect_07: @ 80B7EB0
+ push {lr}
+ ldr r3, _080B7ED8
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x5
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7ED8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_07
+
+ thumb_func_start ContestEffect_08
+ContestEffect_08: @ 80B7EDC
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080B7F38
+ ldrb r0, [r3, 0x11]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080B7F1A
+ subs r0, 0x1
+ ldrb r4, [r3]
+ cmp r0, r4
+ beq _080B7F0A
+ adds r4, r3, 0
+ adds r3, r1, 0
+_080B7EF8:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B7F0A
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B7EF8
+_080B7F0A:
+ ldr r1, _080B7F38
+ strb r2, [r1, 0x8]
+ movs r0, 0xFF
+ strb r0, [r1, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F1A:
+ cmp r2, 0
+ bne _080B7F28
+ ldr r0, _080B7F38
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F28:
+ ldr r0, _080B7F38
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F38: .4byte 0x020192d0
+ thumb_func_end ContestEffect_08
+
+ thumb_func_start ContestEffect_09
+ContestEffect_09: @ 80B7F3C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r1, _080B7F9C
+ ldrb r0, [r1, 0x11]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080B7F7C
+ movs r3, 0
+ adds r5, r1, 0
+ adds r6, r5, 0
+ adds r6, 0x8
+_080B7F54:
+ adds r1, r2, r5
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B7F64
+ adds r0, r3, r6
+ strb r2, [r0]
+ adds r3, 0x1
+_080B7F64:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B7F54
+ ldr r0, _080B7F9C
+ adds r0, 0x8
+ adds r0, r3, r0
+ movs r1, 0xFF
+ strb r1, [r0]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F7C:
+ cmp r2, 0
+ bne _080B7F8A
+ ldr r0, _080B7F9C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F8A:
+ ldr r0, _080B7F9C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F9C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_09
+
+ thumb_func_start ContestEffect_14
+ContestEffect_14: @ 80B7FA0
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x14
+ cmp r0, 0x1
+ bls _080B7FC2
+ movs r1, 0x3C
+ cmp r0, 0x7
+ bhi _080B7FC2
+ movs r1, 0x28
+_080B7FC2:
+ ldr r0, _080B7FD0
+ strh r1, [r0, 0x4]
+ bl ContestEffect_08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7FD0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_14
+
+ thumb_func_start ContestEffect_15
+ContestEffect_15: @ 80B7FD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _080B806C
+ ldrb r6, [r0, 0x11]
+ adds r1, r6, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B804A
+ movs r5, 0
+ mov r4, r8
+_080B7FEE:
+ adds r0, r6, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8044
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r0, 0
+ beq _080B8032
+ movs r1, 0xA
+ cmp r0, 0x2
+ bls _080B8032
+ movs r1, 0x14
+ cmp r0, 0x4
+ bls _080B8032
+ movs r1, 0x1E
+ cmp r0, 0x6
+ bls _080B8032
+ movs r1, 0x3C
+ cmp r0, 0x8
+ bhi _080B8032
+ movs r1, 0x28
+_080B8032:
+ strh r1, [r4, 0x4]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8044
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8044:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B7FEE
+_080B804A:
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B8062
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8062:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B806C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_15
+
+ thumb_func_start ContestEffect_16
+ContestEffect_16: @ 80B8070
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8108
+ ldrb r7, [r0, 0x11]
+ adds r1, r7, r0
+ ldrb r1, [r1]
+ mov r10, r0
+ cmp r1, 0
+ beq _080B80E0
+ movs r6, 0
+ mov r8, r10
+ mov r5, r10
+ subs r5, 0x5B
+_080B8094:
+ mov r1, r8
+ adds r0, r7, r1
+ adds r1, r6, r1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B80D8
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B80D8
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B80D8
+ ldrb r0, [r5]
+ movs r2, 0x11
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_80B13EC
+ movs r0, 0x1
+ mov r9, r0
+_080B80D8:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8094
+_080B80E0:
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x7
+ bl sub_80B13EC
+ mov r2, r9
+ cmp r2, 0
+ bne _080B80FA
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B80FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8108: .4byte 0x020192d0
+ thumb_func_end ContestEffect_16
+
+ thumb_func_start ContestEffect_17
+ContestEffect_17: @ 80B810C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8150
+ ldrb r1, [r0, 0x11]
+ mov r8, r1
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080B817C
+ movs r5, 0
+ adds r4, r6, 0
+ movs r7, 0
+_080B812E:
+ mov r2, r8
+ adds r0, r2, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8172
+ adds r0, r6, 0
+ subs r0, 0x70
+ adds r0, r7, r0
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8154
+ movs r0, 0x32
+ b _080B8156
+ .align 2, 0
+_080B8150: .4byte 0x020192d0
+_080B8154:
+ movs r0, 0xA
+_080B8156:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8172
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B8172:
+ adds r7, 0x1C
+ adds r5, 0x1
+ ldr r6, _080B81A0
+ cmp r5, 0x3
+ ble _080B812E
+_080B817C:
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ mov r0, r9
+ cmp r0, 0
+ bne _080B8192
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8192:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81A0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_17
+
+ thumb_func_start ContestEffect_18
+ContestEffect_18: @ 80B81A4
+ push {r4,lr}
+ ldr r4, _080B81D0
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ bl ContestEffect_09
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81D0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_18
+
+ thumb_func_start ContestEffect_19
+ContestEffect_19: @ 80B81D4
+ push {r4,lr}
+ ldr r4, _080B8208
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ ldr r1, _080B820C
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ bl sub_80B9038
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8208: .4byte 0x020192d0
+_080B820C: .4byte gContestMoves
+ thumb_func_end ContestEffect_19
+
+ thumb_func_start ContestEffect_20
+ContestEffect_20: @ 80B8210
+ push {lr}
+ movs r0, 0
+ bl sub_80B9038
+ ldr r0, _080B8228
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8228: .4byte 0x020192d0
+ thumb_func_end ContestEffect_20
+
+ thumb_func_start ContestEffect_21
+ContestEffect_21: @ 80B822C
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B9038
+ ldr r0, _080B8244
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8244: .4byte 0x020192d0
+ thumb_func_end ContestEffect_21
+
+ thumb_func_start ContestEffect_22
+ContestEffect_22: @ 80B8248
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B9038
+ ldr r0, _080B8260
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8260: .4byte 0x020192d0
+ thumb_func_end ContestEffect_22
+
+ thumb_func_start ContestEffect_23
+ContestEffect_23: @ 80B8264
+ push {lr}
+ movs r0, 0x3
+ bl sub_80B9038
+ ldr r0, _080B827C
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B827C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_23
+
+ thumb_func_start ContestEffect_24
+ContestEffect_24: @ 80B8280
+ push {lr}
+ movs r0, 0x4
+ bl sub_80B9038
+ ldr r0, _080B8298
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8298: .4byte 0x020192d0
+ thumb_func_end ContestEffect_24
+
+ thumb_func_start ContestEffect_25
+ContestEffect_25: @ 80B829C
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080B82E0
+ ldrb r1, [r0, 0x11]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x3
+ beq _080B82F4
+ movs r5, 0
+ adds r6, r7, 0
+_080B82B2:
+ ldrb r0, [r6, 0x11]
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, 0x1
+ adds r1, r5, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B82EE
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B82E4
+ adds r0, r4, 0
+ bl sub_80B157C
+ adds r0, r4, 0
+ movs r1, 0xA
+ b _080B82E8
+ .align 2, 0
+_080B82E0: .4byte 0x020192d0
+_080B82E4:
+ adds r0, r4, 0
+ movs r1, 0x3C
+_080B82E8:
+ bl sub_80B13EC
+ movs r4, 0x1
+_080B82EE:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B82B2
+_080B82F4:
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x9
+ bl sub_80B13EC
+ cmp r4, 0
+ bne _080B8308
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8308:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_25
+
+ thumb_func_start ContestEffect_26
+ContestEffect_26: @ 80B8310
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0
+ str r1, [sp, 0x18]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x5
+ bl memset
+ movs r6, 0
+ movs r4, 0
+ add r2, sp, 0x10
+ mov r8, r2
+ add r3, sp, 0x8
+ mov r10, r3
+ ldr r5, _080B8384
+ adds r7, r5, 0
+ subs r7, 0x70
+_080B8340:
+ ldrb r0, [r5, 0x11]
+ adds r0, r5
+ adds r1, r6, r5
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080B836E
+ ldrb r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B836E
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B836E
+ mov r1, sp
+ adds r0, r1, r4
+ strb r6, [r0]
+ adds r4, 0x1
+_080B836E:
+ adds r7, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8340
+ cmp r4, 0x1
+ bne _080B8388
+ movs r0, 0x3C
+ mov r2, r8
+ strh r0, [r2]
+ b _080B83B6
+ .align 2, 0
+_080B8384: .4byte 0x020192d0
+_080B8388:
+ cmp r4, 0x2
+ bne _080B8396
+ movs r0, 0x1E
+ mov r3, r8
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ b _080B83B6
+_080B8396:
+ cmp r4, 0x3
+ bne _080B83A6
+ movs r0, 0x14
+ mov r7, r8
+ strh r0, [r7]
+ strh r0, [r7, 0x2]
+ strh r0, [r7, 0x4]
+ b _080B83B6
+_080B83A6:
+ mov r1, r8
+ movs r2, 0
+ mov r0, r8
+ adds r0, 0x6
+_080B83AE:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _080B83AE
+_080B83B6:
+ movs r6, 0
+ movs r7, 0
+ mov r4, r10
+_080B83BC:
+ ldr r0, _080B83F0
+ adds r5, r7, r0
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B83FC
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B83FC
+ ldr r1, _080B83F4
+ ldrh r0, [r5, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r1, _080B83F8
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ b _080B83FE
+ .align 2, 0
+_080B83F0: .4byte 0x02019260
+_080B83F4: .4byte gContestMoves
+_080B83F8: .4byte gComboStarterLookupTable
+_080B83FC:
+ movs r0, 0
+_080B83FE:
+ strh r0, [r4]
+ ldr r5, _080B8494
+ adds r0, r7, r5
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4]
+ subs r0, r1
+ strh r0, [r4]
+ adds r7, 0x1C
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B83BC
+ mov r2, r8
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080B84CA
+ movs r6, 0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B84CA
+ adds r5, 0x7D
+ mov r4, sp
+_080B8442:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 1
+ add r1, r8
+ movs r7, 0
+ ldrsh r2, [r1, r7]
+ ldrb r3, [r4]
+ lsls r1, r3, 1
+ add r1, r10
+ movs r7, 0
+ ldrsh r1, [r1, r7]
+ adds r2, r1
+ cmp r0, r2
+ bge _080B8498
+ adds r0, r3, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B84A2
+ ldrb r0, [r4]
+ bl sub_80B157C
+ ldrb r0, [r4]
+ movs r1, 0xA
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _080B849C
+ .align 2, 0
+_080B8494: .4byte 0x02019260
+_080B8498:
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+_080B849C:
+ ldr r1, [sp, 0x18]
+ cmp r1, 0
+ beq _080B84B8
+_080B84A2:
+ movs r2, 0
+ str r2, [sp, 0x18]
+ ldrb r0, [r4]
+ movs r1, 0x3C
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B84B8:
+ ldrb r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r6, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080B8442
+_080B84CA:
+ ldr r4, _080B84F4
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xB
+ bl sub_80B13EC
+ mov r3, r9
+ cmp r3, 0
+ bne _080B84E2
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B84E2:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B84F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_26
+
+ thumb_func_start ContestEffect_27
+ContestEffect_27: @ 80B84F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ ldr r7, _080B8580
+ adds r5, r7, 0
+ subs r5, 0x63
+_080B850A:
+ ldrb r0, [r7, 0x11]
+ adds r0, r7
+ adds r1, r6, r7
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8556
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ ble _080B8556
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8556
+ movs r0, 0
+ strb r0, [r5]
+ ldrb r1, [r5, 0x3]
+ movs r2, 0x31
+ negs r2, r2
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl sub_80B13EC
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080B8556:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B850A
+ ldr r4, _080B8580
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xC
+ bl sub_80B13EC
+ mov r0, r8
+ cmp r0, 0
+ bne _080B8576
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B8576:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8580: .4byte 0x020192d0
+ thumb_func_end ContestEffect_27
+
+ thumb_func_start ContestEffect_28
+ContestEffect_28: @ 80B8584
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B85B0
+ movs r6, 0
+_080B858E:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B85CE
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080B85B4
+ movs r0, 0x28
+ b _080B85B6
+ .align 2, 0
+_080B85B0: .4byte 0x020192d0
+_080B85B4:
+ movs r0, 0xA
+_080B85B6:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B85CE
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B85CE:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B858E
+ ldr r4, _080B85F4
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xE
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B85EC
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B85EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B85F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_28
+
+ thumb_func_start ContestEffect_29
+ContestEffect_29: @ 80B85F8
+ push {r4,lr}
+ ldr r0, _080B863C
+ ldr r4, _080B8640
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B8636
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8644
+ ldr r2, _080B8648
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xF
+ bl sub_80B13EC
+_080B8636:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B863C: .4byte gUnknown_02038696
+_080B8640: .4byte 0x020192d0
+_080B8644: .4byte gContestEffects
+_080B8648: .4byte gContestMoves
+ thumb_func_end ContestEffect_29
+
+ thumb_func_start ContestEffect_30
+ContestEffect_30: @ 80B864C
+ push {r4,lr}
+ ldr r0, _080B8690
+ ldr r4, _080B8694
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080B868A
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8698
+ ldr r2, _080B869C
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x10
+ bl sub_80B13EC
+_080B868A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8690: .4byte gUnknown_02038696
+_080B8694: .4byte 0x020192d0
+_080B8698: .4byte gContestEffects
+_080B869C: .4byte gContestMoves
+ thumb_func_end ContestEffect_30
+
+ thumb_func_start ContestEffect_31
+ContestEffect_31: @ 80B86A0
+ push {r4-r7,lr}
+ movs r1, 0
+ movs r3, 0
+ ldr r4, _080B86EC
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ ldrb r5, [r0]
+ movs r2, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+_080B86B4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080B86C4
+ adds r0, r2, r6
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ adds r3, r0
+_080B86C4:
+ adds r2, 0x1C
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _080B86B4
+ cmp r3, 0
+ bge _080B86D2
+ movs r3, 0
+_080B86D2:
+ ldr r4, _080B86EC
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B86E2
+ cmp r3, 0
+ bne _080B86F0
+_080B86E2:
+ adds r0, r2, 0
+ movs r1, 0x12
+ bl sub_80B13EC
+ b _080B8710
+ .align 2, 0
+_080B86EC: .4byte 0x020192d0
+_080B86F0:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ lsrs r0, r3, 31
+ adds r0, r3, r0
+ asrs r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x11
+ bl sub_80B13EC
+_080B8710:
+ ldr r4, _080B873C
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r0, r5
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ bl sub_80B9224
+ ldrb r2, [r4, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B873C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_31
+
+ thumb_func_start ContestEffect_32
+ContestEffect_32: @ 80B8740
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r0, _080B8794
+ ldrb r1, [r0, 0x11]
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080B8788
+ movs r2, 0
+ adds r7, r4, 0
+ adds r0, r1, 0
+ subs r1, r0, 0x1
+ movs r3, 0
+ adds r5, r4, 0
+ subs r5, 0x70
+_080B8760:
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080B876C
+ adds r0, r3, r5
+ ldrh r6, [r0, 0x2]
+_080B876C:
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B8760
+ adds r0, r4, 0
+ ldrb r2, [r0, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8788
+ lsls r0, r6, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bgt _080B8798
+_080B8788:
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x14
+ bl sub_80B13EC
+ b _080B87B2
+ .align 2, 0
+_080B8794: .4byte 0x020192d0
+_080B8798:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, r3, r0
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x13
+ bl sub_80B13EC
+_080B87B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_32
+
+ thumb_func_start ContestEffect_33
+ContestEffect_33: @ 80B87B8
+ push {lr}
+ ldr r0, _080B87D8
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r3, [r1]
+ mov r12, r0
+ cmp r3, 0
+ bne _080B87DC
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0xA
+ b _080B87EE
+ .align 2, 0
+_080B87D8: .4byte 0x020192d0
+_080B87DC:
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+_080B87EE:
+ strh r1, [r0, 0x2]
+ cmp r3, 0
+ bne _080B8800
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x15
+ bl sub_80B13EC
+ b _080B882A
+_080B8800:
+ cmp r3, 0x1
+ bne _080B8810
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x16
+ bl sub_80B13EC
+ b _080B882A
+_080B8810:
+ cmp r3, 0x2
+ bne _080B8820
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x17
+ bl sub_80B13EC
+ b _080B882A
+_080B8820:
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x18
+ bl sub_80B13EC
+_080B882A:
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_33
+
+ thumb_func_start ContestEffect_34
+ContestEffect_34: @ 80B8830
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ bhi _080B885C
+ movs r4, 0xA
+ ldr r0, _080B8858
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8858: .4byte 0x020192d0
+_080B885C:
+ cmp r0, 0x5
+ bhi _080B8874
+ movs r4, 0x14
+ ldr r0, _080B8870
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8870: .4byte 0x020192d0
+_080B8874:
+ cmp r0, 0x7
+ bhi _080B888C
+ movs r4, 0x28
+ ldr r0, _080B8888
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8888: .4byte 0x020192d0
+_080B888C:
+ cmp r1, 0x8
+ bhi _080B88A4
+ movs r4, 0x3C
+ ldr r0, _080B88A0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B88A0: .4byte 0x020192d0
+_080B88A4:
+ movs r4, 0x50
+ ldr r0, _080B88C8
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B88B0:
+ ldr r0, _080B88C8
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B88C8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_34
+
+ thumb_func_start ContestEffect_35
+ContestEffect_35: @ 80B88CC
+ push {r4-r7,lr}
+ ldr r1, _080B8940
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r12, r1
+ cmp r2, 0
+ beq _080B8994
+ ldrb r5, [r1]
+ mov r6, r12
+ subs r6, 0x70
+_080B88EA:
+ movs r2, 0
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ adds r4, r0, 0
+ cmp r5, r1
+ beq _080B8910
+ ldr r3, _080B8940
+_080B88F8:
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080B8910
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080B88F8
+_080B8910:
+ lsls r2, 24
+ asrs r1, r2, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ ldrb r1, [r3, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ adds r7, r2, 0
+ cmp r0, 0
+ bne _080B8932
+ ldrb r1, [r3, 0xC]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8944
+_080B8932:
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r4, r1
+ lsrs r4, r0, 24
+ cmp r0, 0
+ blt _080B8994
+ b _080B88EA
+ .align 2, 0
+_080B8940: .4byte 0x020192d0
+_080B8944:
+ mov r2, r12
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r3, r12
+ subs r3, 0x70
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x6]
+ ldr r4, _080B899C
+ lsls r0, 3
+ adds r6, r0, r4
+ ldrb r2, [r6, 0x1]
+ lsls r2, 29
+ asrs r1, r7, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r2, r0
+ bne _080B8994
+ ldr r1, _080B89A0
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x2]
+ mov r2, r12
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x1F
+ bl sub_80B13EC
+_080B8994:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B899C: .4byte gContestMoves
+_080B89A0: .4byte gContestEffects
+ thumb_func_end ContestEffect_35
+
+ thumb_func_start ContestEffect_36
+ContestEffect_36: @ 80B89A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080B8A28
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B8A3C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r8
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ mov r9, r0
+ movs r4, 0
+ mov r6, r8
+ ldr r0, _080B8A2C
+ mov r12, r0
+ movs r7, 0
+_080B89D4:
+ ldrb r2, [r6, 0x11]
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8A34
+ mov r1, r9
+ lsls r0, r1, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrb r1, [r3, 0x1]
+ lsls r1, 29
+ mov r5, r8
+ subs r5, 0x70
+ adds r0, r7, r5
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r12
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r1, r0
+ beq _080B8A34
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldr r2, _080B8A30
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x20
+ bl sub_80B13EC
+ b _080B8A3C
+ .align 2, 0
+_080B8A28: .4byte 0x020192d0
+_080B8A2C: .4byte gContestMoves
+_080B8A30: .4byte gContestEffects
+_080B8A34:
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B89D4
+_080B8A3C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_36
+
+ thumb_func_start ContestEffect_37
+ContestEffect_37: @ 80B8A48
+ push {r4-r7,lr}
+ ldr r1, _080B8A94
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8AB0
+ movs r5, 0
+ adds r4, r1, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+ adds r7, r6, 0
+_080B8A60:
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8AA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r2, r0, r7
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r3, 0x2
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _080B8A98
+ adds r0, r1, 0
+ lsls r0, 1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x21
+ bl sub_80B13EC
+ b _080B8AA8
+ .align 2, 0
+_080B8A94: .4byte 0x020192d0
+_080B8A98:
+ cmp r1, r0
+ bge _080B8AA8
+ movs r0, 0
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x22
+ bl sub_80B13EC
+_080B8AA8:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8A60
+_080B8AB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_37
+
+ thumb_func_start ContestEffect_38
+ContestEffect_38: @ 80B8AB8
+ push {r4,r5,lr}
+ ldr r4, _080B8AFC
+ ldrb r2, [r4, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r1, r0, r5
+ ldrb r3, [r1, 0xD]
+ movs r0, 0xD
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1D
+ bgt _080B8B00
+ adds r0, r3, 0
+ adds r0, 0xA
+ strb r0, [r1, 0xD]
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r2, [r0, 0x10]
+ movs r1, 0x31
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x10
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x23
+ bl sub_80B13EC
+ b _080B8B08
+ .align 2, 0
+_080B8AFC: .4byte 0x020192d0
+_080B8B00:
+ adds r0, r2, 0
+ movs r1, 0x3A
+ bl sub_80B13EC
+_080B8B08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_38
+
+ thumb_func_start ContestEffect_39
+ContestEffect_39: @ 80B8B10
+ push {r4,lr}
+ ldr r3, _080B8B48
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080B8B4C
+ adds r0, r1, 0
+ movs r1, 0x24
+ bl sub_80B13EC
+ b _080B8B54
+ .align 2, 0
+_080B8B48: .4byte 0x020192d0
+_080B8B4C:
+ adds r0, r1, 0
+ movs r1, 0x3B
+ bl sub_80B13EC
+_080B8B54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_39
+
+ thumb_func_start ContestEffect_40
+ContestEffect_40: @ 80B8B5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _080B8BE4
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8B6E
+ b _080B8C76
+_080B8B6E:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8B78:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8B78
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+_080B8BAE:
+ movs r5, 0
+_080B8BB0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r0, r12
+ ldrb r0, [r0, 0x11]
+ cmp r2, r0
+ beq _080B8BE8
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r1, sp
+ adds r4, r1, r2
+ ldrb r0, [r4]
+ cmp r3, r0
+ bne _080B8BE8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8BE8
+ adds r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8BF8
+ .align 2, 0
+_080B8BE4: .4byte 0x02019204
+_080B8BE8:
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BB0
+_080B8BF8:
+ cmp r5, 0x4
+ beq _080B8C0C
+ lsls r0, r6, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BAE
+_080B8C0C:
+ ldrb r0, [r7, 0x11]
+ mov r4, sp
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8C32:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8C32
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x25
+ bl sub_80B13EC
+_080B8C76:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_40
+
+ thumb_func_start ContestEffect_41
+ContestEffect_41: @ 80B8C84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _080B8D14
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8C98
+ b _080B8DA6
+_080B8C98:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8CA2:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8CA2
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0x3
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+_080B8CDE:
+ movs r5, 0
+_080B8CE0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r1, r12
+ ldrb r1, [r1, 0x11]
+ cmp r2, r1
+ beq _080B8D18
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r0, sp
+ adds r4, r0, r2
+ ldrb r1, [r4]
+ cmp r3, r1
+ bne _080B8D18
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8D18
+ subs r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8D28
+ .align 2, 0
+_080B8D14: .4byte 0x02019204
+_080B8D18:
+ lsls r0, r5, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8CE0
+_080B8D28:
+ cmp r5, 0x4
+ beq _080B8D3C
+ lsls r0, r6, 24
+ movs r4, 0xFF
+ lsls r4, 24
+ adds r0, r4
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, r9
+ bgt _080B8CDE
+_080B8D3C:
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8D62:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8D62
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x26
+ bl sub_80B13EC
+_080B8DA6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_41
+
+ thumb_func_start ContestEffect_42
+ContestEffect_42: @ 80B8DB4
+ bx lr
+ thumb_func_end ContestEffect_42
+
+ thumb_func_start ContestEffect_43
+ContestEffect_43: @ 80B8DB8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _080B8E30
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _080B8EAE
+ movs r6, 0
+ add r3, sp, 0x4
+ adds r5, r1, 0
+ adds r5, 0x5C
+ adds r4, r3, 0
+_080B8DCE:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8DCE
+ movs r6, 0
+ adds r7, r3, 0
+_080B8DF6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r6, 24
+ asrs r2, 24
+ movs r1, 0x4
+ subs r1, r2
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0
+_080B8E10:
+ lsls r0, r1, 24
+ asrs r2, r0, 24
+ adds r3, r7, r2
+ ldrb r1, [r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080B8E3A
+ cmp r4, 0
+ bne _080B8E34
+ mov r1, sp
+ adds r0, r1, r2
+ strb r6, [r0]
+ movs r0, 0xFF
+ strb r0, [r3]
+ b _080B8E48
+ .align 2, 0
+_080B8E30: .4byte 0x02019204
+_080B8E34:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080B8E3A:
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r5, r3
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8E10
+_080B8E48:
+ lsls r0, r6, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8DF6
+ movs r6, 0
+ ldr r4, _080B8EB8
+ adds r7, r4, 0
+ subs r7, 0x70
+ movs r3, 0x3F
+ mov r12, r3
+ movs r5, 0x80
+_080B8E66:
+ lsls r2, r6, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ mov r3, sp
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x19]
+ ldrb r3, [r1, 0x10]
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x10]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ asrs r2, 24
+ cmp r2, 0x3
+ ble _080B8E66
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x27
+ bl sub_80B13EC
+_080B8EAE:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_43
+
+ thumb_func_start ContestEffect_44
+ContestEffect_44: @ 80B8EBC
+ push {lr}
+ ldr r3, _080B8EF0
+ ldr r1, _080B8EF4
+ ldrb r2, [r1, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x6]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ ldr r1, _080B8EF8
+ lsrs r0, 29
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _080B8EEA
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+_080B8EEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EF0: .4byte gContestMoves
+_080B8EF4: .4byte 0x020192d0
+_080B8EF8: .4byte gUnknown_0203869C
+ thumb_func_end ContestEffect_44
+
+ thumb_func_start ContestEffect_45
+ContestEffect_45: @ 80B8EFC
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B8F34
+ movs r6, 0
+_080B8F06:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8F52
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r6, r0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ ble _080B8F38
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_80B9268
+ b _080B8F3A
+ .align 2, 0
+_080B8F34: .4byte 0x020192d0
+_080B8F38:
+ movs r0, 0xA
+_080B8F3A:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8F52
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8F52:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8F06
+ cmp r7, 0
+ bne _080B8F68
+ ldr r0, _080B8F78
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8F68:
+ ldr r0, _080B8F78
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8F78: .4byte 0x020192d0
+ thumb_func_end ContestEffect_45
+
+ thumb_func_start ContestEffect_46
+ContestEffect_46: @ 80B8F7C
+ push {r4,lr}
+ ldr r0, _080B8F98
+ movs r1, 0x13
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ bne _080B8F9C
+ movs r4, 0xA
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B8FDE
+ .align 2, 0
+_080B8F98: .4byte 0x02019204
+_080B8F9C:
+ cmp r1, 0x1
+ bne _080B8FAE
+ movs r4, 0x14
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FAE:
+ cmp r1, 0x2
+ bne _080B8FC0
+ movs r4, 0x1E
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FC0:
+ cmp r1, 0x3
+ bne _080B8FD2
+ movs r4, 0x32
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FD2:
+ movs r4, 0x3C
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B8FDE:
+ ldr r0, _080B8FF4
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8FF4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_46
+
+ thumb_func_start ContestEffect_47
+ContestEffect_47: @ 80B8FF8
+ push {lr}
+ ldr r3, _080B9034
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080B902E
+ movs r0, 0x1
+ orrs r2, r0
+ movs r0, 0x58
+ negs r0, r0
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0, 0x11]
+ movs r0, 0x7
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0xF
+ negs r1, r1
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3, 0x1]
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x3D
+ bl sub_80B13EC
+_080B902E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9034: .4byte 0x02019328
+ thumb_func_end ContestEffect_47
+
+ thumb_func_start sub_80B9038
+sub_80B9038: @ 80B9038
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B907C
+ ldr r0, _080B9080
+ mov r9, r0
+ movs r6, 0
+_080B9052:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B909A
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ cmp r8, r0
+ bne _080B9084
+ movs r0, 0x28
+ b _080B9086
+ .align 2, 0
+_080B907C: .4byte 0x020192d0
+_080B9080: .4byte gContestMoves
+_080B9084:
+ movs r0, 0xA
+_080B9086:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B909A
+ adds r7, 0x1
+_080B909A:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B9052
+ cmp r7, 0
+ bne _080B90B0
+ ldr r0, _080B90BC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B90B0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B90BC: .4byte 0x020192d0
+ thumb_func_end sub_80B9038
+
+ thumb_func_start sub_80B90C0
+sub_80B90C0: @ 80B90C0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080B90EC
+ adds r0, r2, 0
+ adds r0, 0xD
+ adds r0, r3, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ subs r2, 0x70
+ adds r2, r0, r2
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B90F0
+ adds r0, r3, 0
+ movs r1, 0x2D
+ b _080B9116
+ .align 2, 0
+_080B90EC: .4byte 0x020192d0
+_080B90F0:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ bne _080B910E
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ movs r0, 0x1
+ b _080B911C
+_080B910E:
+ subs r0, 0x1
+ strb r0, [r2, 0x12]
+ adds r0, r3, 0
+ movs r1, 0x2C
+_080B9116:
+ bl sub_80B13EC
+_080B911A:
+ movs r0, 0
+_080B911C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B90C0
+
+ thumb_func_start sub_80B9120
+sub_80B9120: @ 80B9120
+ push {r4-r7,lr}
+ sub sp, 0xC
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r7, 0
+ ldr r1, _080B918C
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0xFF
+ beq _080B91D8
+ adds r5, r1, 0
+_080B913A:
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ str r1, [sp, 0x8]
+ bl sub_80B90C0
+ lsls r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r0, 0
+ beq _080B91C8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B9174
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ strh r0, [r5, 0x6]
+_080B9174:
+ ldrb r0, [r2, 0x10]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _080B9190
+ movs r0, 0xA
+ strh r0, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl sub_80B13EC
+ b _080B91C8
+ .align 2, 0
+_080B918C: .4byte 0x020192d0
+_080B9190:
+ ldrb r1, [r2, 0xF]
+ ldrh r0, [r5, 0x6]
+ subs r0, r1
+ adds r1, r0, 0
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B91AC
+ strh r3, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl sub_80B13EC
+ b _080B91C8
+_080B91AC:
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_80B9200
+ ldrb r1, [r5, 0x6]
+ adds r0, r6, 0
+ bl sub_80B141C
+ lsls r0, r6, 1
+ mov r2, sp
+ adds r1, r2, r0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+_080B91C8:
+ adds r7, 0x1
+ ldr r1, _080B91E8
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B913A
+_080B91D8:
+ movs r7, 0
+ mov r1, sp
+_080B91DC:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B91EC
+ movs r0, 0x1
+ b _080B91F6
+ .align 2, 0
+_080B91E8: .4byte 0x020192d0
+_080B91EC:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080B91DC
+ movs r0, 0
+_080B91F6:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9120
+
+ thumb_func_start sub_80B9200
+sub_80B9200: @ 80B9200
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B9220
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r2, 0xE]
+ adds r1, r0
+ strb r1, [r2, 0xE]
+ bx lr
+ .align 2, 0
+_080B9220: .4byte 0x02019260
+ thumb_func_end sub_80B9200
+
+ thumb_func_start sub_80B9224
+sub_80B9224: @ 80B9224
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9234
+ negs r0, r4
+_080B9234:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, 0
+ bge _080B9252
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B925C
+ adds r0, r4, 0
+ subs r0, 0xA
+ adds r0, r1, r0
+ b _080B9258
+_080B9252:
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r4, r0
+_080B9258:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B925C:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9224
+
+ thumb_func_start sub_80B9268
+sub_80B9268: @ 80B9268
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9278
+ negs r0, r4
+_080B9278:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B9290
+ adds r0, r4, 0
+ adds r0, 0xA
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B9290:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9268
+
+ thumb_func_start sub_80B929C
+sub_80B929C: @ 80B929C
+ push {lr}
+ ldr r0, _080B92A8
+ bl sub_8083A84
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B92A8: .4byte sub_80B9484
+ thumb_func_end sub_80B929C
+
+ thumb_func_start sub_80B92AC
+sub_80B92AC: @ 80B92AC
+ push {r4-r6,lr}
+ bl sub_80BC300
+ bl sub_80C045C
+ ldr r6, _080B9364
+ ldr r0, _080B9368
+ ldr r1, [r0]
+ movs r2, 0xC8
+ lsls r2, 4
+ adds r0, r6, 0
+ bl memcpy
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r6, r1
+ ldr r1, _080B936C
+ ldr r1, [r1]
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ ldr r2, _080B9370
+ adds r0, r6, r2
+ ldr r1, _080B9374
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080B9378
+ adds r0, r6, r1
+ ldr r1, _080B937C
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r2, _080B9380
+ adds r0, r6, r2
+ ldr r1, _080B9384
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r5, _080B9388
+ ldr r4, _080B938C
+ ldr r0, _080B9390
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9394
+ adds r1, r4, r2
+ adds r0, r5, 0
+ adds r0, 0x38
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, _080B9398
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8041324
+ ldr r1, _080B939C
+ adds r0, r6, r1
+ ldr r1, _080B93A0
+ ldr r1, [r1]
+ movs r2, 0x78
+ bl memcpy
+ ldr r2, _080B93A4
+ adds r0, r6, r2
+ ldr r1, _080B93A8
+ ldr r1, [r1]
+ movs r2, 0xA4
+ bl memcpy
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B935C
+ bl sub_8126338
+ ldr r2, _080B93AC
+ adds r1, r6, r2
+ strh r0, [r1]
+_080B935C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9364: .4byte 0x02018000
+_080B9368: .4byte gUnknown_083D026C
+_080B936C: .4byte gUnknown_083D0270
+_080B9370: .4byte 0x00001004
+_080B9374: .4byte gUnknown_083D0274
+_080B9378: .4byte 0x00001044
+_080B937C: .4byte gUnknown_083D0278
+_080B9380: .4byte 0x00001084
+_080B9384: .4byte gUnknown_083D027C
+_080B9388: .4byte gUnknown_02038738
+_080B938C: .4byte gSaveBlock1
+_080B9390: .4byte 0x0000303c
+_080B9394: .4byte 0x00003074
+_080B9398: .4byte 0x00002f9c
+_080B939C: .4byte 0x000010ac
+_080B93A0: .4byte gUnknown_083D0280
+_080B93A4: .4byte 0x00001124
+_080B93A8: .4byte gUnknown_083D0284
+_080B93AC: .4byte 0x000011c8
+ thumb_func_end sub_80B92AC
+
+ thumb_func_start sub_80B93B0
+sub_80B93B0: @ 80B93B0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080B9430
+ ldr r6, _080B9434
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BD674
+ movs r0, 0xC8
+ lsls r0, 4
+ adds r0, r5
+ mov r8, r0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BFD44
+ ldr r1, _080B9438
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80C0514
+ ldr r1, _080B943C
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B1C
+ ldr r1, _080B9440
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80FA4E4
+ ldr r1, _080B9444
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl sub_80B9C6C
+ ldr r1, _080B9448
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B70
+ ldr r0, _080B944C
+ adds r5, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80B9F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9430: .4byte 0x02008000
+_080B9434: .4byte 0x00001230
+_080B9438: .4byte 0x00001004
+_080B943C: .4byte 0x00001044
+_080B9440: .4byte 0x00001084
+_080B9444: .4byte 0x000010ac
+_080B9448: .4byte 0x00001124
+_080B944C: .4byte 0x000011c8
+ thumb_func_end sub_80B93B0
+
+ thumb_func_start sub_80B9450
+sub_80B9450: @ 80B9450
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9480
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _080B9478
+ movs r0, 0xE2
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080B9478:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9480: .4byte gTasks
+ thumb_func_end sub_80B9450
+
+ thumb_func_start sub_80B9484
+sub_80B9484: @ 80B9484
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B94A8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080B949E
+ b _080B95E6
+_080B949E:
+ lsls r0, 2
+ ldr r1, _080B94AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B94A8: .4byte gUnknown_03004B28
+_080B94AC: .4byte _080B94B0
+ .align 2, 0
+_080B94B0:
+ .4byte _080B94C8
+ .4byte _080B951C
+ .4byte _080B9550
+ .4byte _080B9570
+ .4byte _080B95AC
+ .4byte _080B95C0
+_080B94C8:
+ ldr r0, _080B950C
+ ldrb r0, [r0]
+ bl sub_8007270
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ bl VarSet
+ ldr r1, _080B9510
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80B92AC
+ bl sub_80C71D8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080B9514
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ ldr r0, _080B9518
+ movs r1, 0x51
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ b _080B95E6
+ .align 2, 0
+_080B950C: .4byte gUnknown_0202E8CE
+_080B9510: .4byte gUnknown_03000718
+_080B9514: .4byte sub_80B95F0
+_080B9518: .4byte sub_80B9450
+_080B951C:
+ ldr r2, _080B9548
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ movs r0, 0x2
+ strh r0, [r4]
+ ldr r0, _080B954C
+ bl FlagSet
+ bl sub_80C7240
+ ldrb r0, [r4, 0x1E]
+ bl DestroyTask
+ b _080B95E6
+ .align 2, 0
+_080B9548: .4byte gTasks
+_080B954C: .4byte 0x00000834
+_080B9550:
+ ldr r0, _080B956C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0xE0
+ bl PlaySE
+ b _080B95E6
+ .align 2, 0
+_080B956C: .4byte sub_80BA00C
+_080B9570:
+ ldr r2, _080B95A4
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080B95E6
+ movs r0, 0x4
+ strh r0, [r4]
+ bl sub_8083664
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ bl sub_80720B0
+ ldr r0, _080B95A8
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ strh r5, [r4, 0x10]
+ b _080B95E6
+ .align 2, 0
+_080B95A4: .4byte gTasks
+_080B95A8: .4byte gOtherText_MixingComplete
+_080B95AC:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B95E6
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080B95E6
+_080B95C0:
+ ldr r2, _080B95EC
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ bl sub_8055588
+ bl MenuZeroFillScreen
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B95E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B95EC: .4byte gTasks
+ thumb_func_end sub_80B9484
+
+ thumb_func_start sub_80B95F0
+sub_80B95F0: @ 80B95F0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r7, _080B961C
+ adds r5, r0, r7
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x64
+ beq _080B9678
+ cmp r1, 0x64
+ bgt _080B962E
+ cmp r1, 0x1
+ bne _080B9612
+ b _080B9734
+_080B9612:
+ cmp r1, 0x1
+ bgt _080B9620
+ cmp r1, 0
+ beq _080B9650
+ b _080B97D6
+ .align 2, 0
+_080B961C: .4byte gTasks
+_080B9620:
+ cmp r1, 0x2
+ bne _080B9626
+ b _080B9760
+_080B9626:
+ cmp r1, 0x5
+ bne _080B962C
+ b _080B97C0
+_080B962C:
+ b _080B97D6
+_080B962E:
+ cmp r1, 0xC9
+ beq _080B96D0
+ cmp r1, 0xC9
+ bgt _080B963C
+ cmp r1, 0x65
+ beq _080B9690
+ b _080B97D6
+_080B963C:
+ ldr r0, _080B964C
+ cmp r1, r0
+ beq _080B9706
+ adds r0, 0x63
+ cmp r1, r0
+ beq _080B971C
+ b _080B97D6
+ .align 2, 0
+_080B964C: .4byte 0x0000012d
+_080B9650:
+ bl sub_80B9A78
+ bl MenuDisplayMessageBox
+ ldr r0, _080B9674
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0xE1
+ lsls r0, 3
+ strh r0, [r5, 0x18]
+ movs r0, 0xC8
+ lsls r0, 1
+ strh r0, [r5, 0x8]
+ bl ClearLinkCallback_2
+ b _080B97D6
+ .align 2, 0
+_080B9674: .4byte gOtherText_MixingRecordsWithFriend
+_080B9678:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080B9688
+ b _080B97D6
+_080B9688:
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ movs r0, 0x65
+ b _080B97D4
+_080B9690:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkMaster
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B96C2
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _080B96B2
+ b _080B97D6
+_080B96B2:
+ movs r0, 0x15
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xC9
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0x20]
+ b _080B97D6
+_080B96C2:
+ movs r0, 0x16
+ bl PlaySE
+ ldr r0, _080B96CC
+ b _080B97D4
+ .align 2, 0
+_080B96CC: .4byte 0x0000012d
+_080B96D0:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ ldrh r4, [r5, 0x20]
+ adds r4, 0x1
+ strh r4, [r5, 0x20]
+ lsls r4, 16
+ asrs r4, 16
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ cmp r4, r1
+ ble _080B97D6
+ bl sub_8007F4C
+ movs r0, 0x1
+ b _080B97D4
+_080B9706:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ movs r0, 0x1
+ b _080B97D4
+_080B971C:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B97D6
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ b _080B97D6
+_080B9734:
+ ldr r0, _080B9758
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B97D6
+ ldr r4, _080B975C
+ bl sub_80B9A58
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x5
+ b _080B97D4
+ .align 2, 0
+_080B9758: .4byte gReceivedRemoteLinkPlayers
+_080B975C: .4byte gStringVar1
+_080B9760:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x8]
+ bl sub_80B9A58
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldr r0, _080B97B0
+ str r0, [r5]
+ ldr r4, _080B97B4
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ bl sub_80B9A50
+ ldr r0, _080B97B8
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r7
+ strh r6, [r0, 0x8]
+ ldr r0, _080B97BC
+ adds r4, r0
+ adds r1, r7, r1
+ adds r1, 0x12
+ adds r0, r4, 0
+ bl sub_80B9A50
+ b _080B97D6
+ .align 2, 0
+_080B97B0: .4byte sub_80B97DC
+_080B97B4: .4byte 0x02018000
+_080B97B8: .4byte sub_80B9890
+_080B97BC: .4byte 0xffff0000
+_080B97C0:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B97D6
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ movs r0, 0x2
+_080B97D4:
+ strh r0, [r5, 0x8]
+_080B97D6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B95F0
+
+ thumb_func_start sub_80B97DC
+sub_80B97DC: @ 80B97DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9800
+ adds r4, r1, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080B9884
+ lsls r0, r1, 2
+ ldr r1, _080B9804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B9800: .4byte gTasks
+_080B9804: .4byte _080B9808
+ .align 2, 0
+_080B9808:
+ .4byte _080B981C
+ .4byte _080B9840
+ .4byte _080B9884
+ .4byte _080B9852
+ .4byte _080B986E
+_080B981C:
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80B9A44
+ adds r1, r0, 0
+ movs r0, 0x10
+ ldrsh r2, [r4, r0]
+ movs r0, 0xC8
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _080B983C
+ movs r2, 0xC8
+ bl memcpy
+ b _080B9860
+ .align 2, 0
+_080B983C: .4byte gBlockSendBuffer
+_080B9840:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9860
+ movs r0, 0x1
+ bl sub_8007E9C
+ b _080B9860
+_080B9852:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9868
+_080B9860:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B9868:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B986E:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080B9884
+ ldr r0, _080B988C
+ str r0, [r4]
+_080B9884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B988C: .4byte sub_80B9A1C
+ thumb_func_end sub_80B97DC
+
+ thumb_func_start sub_80B9890
+sub_80B9890: @ 80B9890
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r0, 2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080B98D0
+ adds r0, r1
+ mov r10, r0
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ bl sub_8008198
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bne _080B998A
+ movs r0, 0
+ b _080B9966
+ .align 2, 0
+_080B98D0: .4byte gTasks
+_080B98D4:
+ ldr r1, [sp, 0x4]
+ mov r2, r9
+ asrs r1, r2
+ movs r0, 0x1
+ ands r1, r0
+ movs r3, 0x1
+ add r3, r9
+ mov r8, r3
+ cmp r1, 0
+ beq _080B9960
+ mov r0, r10
+ adds r0, 0x12
+ bl sub_80B9A44
+ mov r1, r8
+ lsls r4, r1, 1
+ mov r5, r10
+ adds r5, 0x8
+ adds r4, r5, r4
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0xC8
+ muls r1, r3
+ adds r0, r1
+ ldr r7, _080B9930
+ mov r1, r9
+ muls r1, r7
+ adds r6, r0, r1
+ mov r0, r9
+ str r3, [sp, 0xC]
+ bl sub_80B9A68
+ adds r1, r0, 0
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ adds r0, r2, 0x1
+ ldr r3, [sp, 0xC]
+ muls r0, r3
+ cmp r0, r7
+ bls _080B9934
+ muls r2, r3
+ subs r2, r7, r2
+ adds r0, r6, 0
+ bl memcpy
+ b _080B993C
+ .align 2, 0
+_080B9930: .4byte 0x00001230
+_080B9934:
+ adds r0, r6, 0
+ movs r2, 0xC8
+ bl memcpy
+_080B993C:
+ mov r0, r9
+ bl ResetBlockReceivedFlag
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r1, r5, r1
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9960
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_080B9960:
+ mov r3, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+_080B9966:
+ mov r9, r0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r9, r0
+ bcc _080B98D4
+ ldr r2, _080B99B0
+ mov r0, r10
+ movs r3, 0x8
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080B998A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r1, r0
+ bne _080B999E
+ ldr r0, [sp]
+ bl DestroyTask
+_080B999E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99B0: .4byte gTasks
+ thumb_func_end sub_80B9890
+
+ thumb_func_start sub_80B99B4
+sub_80B99B4: @ 80B99B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r2, _080B99E4
+ adds r0, r2
+ movs r4, 0x1C
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B99DC
+ adds r0, r3, 0
+ bl DestroyTask
+_080B99DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99E4: .4byte gTasks
+ thumb_func_end sub_80B99B4
+
+ thumb_func_start sub_80B99E8
+sub_80B99E8: @ 80B99E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9A10
+ adds r1, r0
+ ldr r0, _080B9A14
+ str r0, [r1]
+ ldr r0, _080B9A18
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9A0C
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ bl sub_80B93B0
+_080B9A0C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9A10: .4byte gTasks
+_080B9A14: .4byte sub_80B99B4
+_080B9A18: .4byte gUnknown_03000718
+ thumb_func_end sub_80B99E8
+
+ thumb_func_start sub_80B9A1C
+sub_80B9A1C: @ 80B9A1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9A38
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080B9A3C
+ str r0, [r1]
+ ldr r1, _080B9A40
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A38: .4byte gTasks
+_080B9A3C: .4byte sub_80B99E8
+_080B9A40: .4byte gUnknown_03000718
+ thumb_func_end sub_80B9A1C
+
+ thumb_func_start sub_80B9A44
+sub_80B9A44: @ 80B9A44
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ ldrh r1, [r1, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80B9A44
+
+ thumb_func_start sub_80B9A50
+sub_80B9A50: @ 80B9A50
+ strh r0, [r1]
+ lsrs r0, 16
+ strh r0, [r1, 0x2]
+ bx lr
+ thumb_func_end sub_80B9A50
+
+ thumb_func_start sub_80B9A58
+sub_80B9A58: @ 80B9A58
+ push {lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9A58
+
+ thumb_func_start sub_80B9A68
+sub_80B9A68: @ 80B9A68
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, _080B9A74
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080B9A74: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80B9A68
+
+ thumb_func_start sub_80B9A78
+sub_80B9A78: @ 80B9A78
+ ldr r1, _080B9A80
+ ldr r0, _080B9A84
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A80: .4byte gUnknown_03005D2C
+_080B9A84: .4byte 0x00001230
+ thumb_func_end sub_80B9A78
+
+ thumb_func_start sub_80B9A88
+sub_80B9A88: @ 80B9A88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080B9AC0
+ cmp r0, 0x3
+ bhi _080B9AA2
+ cmp r0, 0x2
+ beq _080B9AA8
+ b _080B9B10
+_080B9AA2:
+ cmp r0, 0x4
+ beq _080B9AEC
+ b _080B9B10
+_080B9AA8:
+ movs r2, 0
+ ldr r3, _080B9ABC
+_080B9AAC:
+ adds r0, r4, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x1
+ bls _080B9AAC
+ b _080B9B10
+ .align 2, 0
+_080B9ABC: .4byte gUnknown_083D0288
+_080B9AC0:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ adds r3, r0, 0
+ movs r0, 0x1
+ ands r3, r0
+ movs r2, 0
+ ldr r1, _080B9AE8
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r3, r0, r1
+_080B9AD6:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x2
+ bls _080B9AD6
+ b _080B9B10
+ .align 2, 0
+_080B9AE8: .4byte gUnknown_083D028A
+_080B9AEC:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ movs r1, 0x9
+ bl __umodsi3
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080B9B18
+ lsls r0, r3, 2
+ adds r3, r0, r1
+_080B9B02:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080B9B02
+_080B9B10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B18: .4byte gUnknown_083D0290
+ thumb_func_end sub_80B9A88
+
+ thumb_func_start sub_80B9B1C
+sub_80B9B1C: @ 80B9B1C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r8, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80B9A88
+ mov r0, r8
+ muls r0, r4
+ adds r0, r5, r0
+ ldr r1, _080B9B6C
+ ldr r6, [r1]
+ adds r1, r6, 0
+ movs r2, 0x40
+ bl memcpy
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x40
+ bl memcpy
+ bl sub_80F7F30
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B6C: .4byte gUnknown_083D0278
+ thumb_func_end sub_80B9B1C
+
+ thumb_func_start sub_80B9B70
+sub_80B9B70: @ 80B9B70
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r0, _080B9BB8
+ mov r8, r0
+ bl sub_80B9A88
+ mov r5, r9
+ muls r5, r4
+ adds r5, r6, r5
+ add r4, r8
+ ldrb r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0xA4
+ bl memcpy
+ adds r0, r5, 0
+ bl sub_8134AC0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9BB8: .4byte gUnknown_0300071C
+ thumb_func_end sub_80B9B70
+
+ thumb_func_start sub_80B9BBC
+sub_80B9BBC: @ 80B9BBC
+ ldrh r0, [r0, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_80B9BBC
+
+ thumb_func_start sub_80B9BC4
+sub_80B9BC4: @ 80B9BC4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x38
+ mov r8, r0
+ mov r10, r1
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x54]
+ lsls r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsrs r4, 23
+ add r4, r9
+ ldrb r0, [r4]
+ mov r6, r10
+ muls r6, r0
+ add r6, r8
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r6, r1
+ mov r0, sp
+ movs r2, 0x38
+ bl memcpy
+ lsls r5, 1
+ add r5, r9
+ ldrb r0, [r5]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r8, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r6, r0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ add r1, r8
+ adds r0, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ add r8, r0
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x38
+ bl memcpy
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9BC4
+
+ thumb_func_start sub_80B9C4C
+sub_80B9C4C: @ 80B9C4C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ movs r1, 0
+_080B9C54:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r0, r2, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r1, 0xFF
+ ble _080B9C54
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9C4C
+
+ thumb_func_start sub_80B9C6C
+sub_80B9C6C: @ 80B9C6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0x2C]
+ str r1, [sp, 0x30]
+ str r3, [sp, 0x38]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x34]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x40]
+ ldr r0, _080B9DA8
+ ldrh r0, [r0, 0x4]
+ bl SeedRng
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ add r0, sp, 0x1C
+ mov r9, r0
+ movs r1, 0x1D
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0xC
+ str r2, [sp, 0x4C]
+ movs r7, 0xFF
+ add r4, sp, 0x8
+ movs r2, 0
+ mov r6, r9
+ mov r5, r10
+_080B9CBC:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x4
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ adds r0, r4, r3
+ strb r2, [r0]
+ lsls r1, r3, 1
+ adds r0, r6, r1
+ strb r2, [r0]
+ adds r1, r5, r1
+ strb r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9CBC
+ movs r4, 0
+ str r4, [sp, 0x3C]
+ movs r3, 0
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ str r0, [sp, 0x50]
+ ldr r4, [sp, 0x30]
+ ldr r0, [sp, 0x34]
+ adds r2, r4, 0
+ muls r2, r0
+ str r2, [sp, 0x48]
+ ldr r2, [sp, 0x3C]
+ cmp r2, r1
+ bcs _080B9D46
+ mov r8, r1
+_080B9D00:
+ ldr r4, [sp, 0x30]
+ adds r0, r4, 0
+ muls r0, r3
+ ldr r1, [sp, 0x2C]
+ adds r6, r1, r0
+ ldr r0, [r6, 0x70]
+ cmp r0, 0
+ beq _080B9D3C
+ movs r7, 0
+ cmp r7, r0
+ bcs _080B9D3C
+ adds r4, r6, 0
+ adds r4, 0x74
+ mov r2, r9
+ lsls r1, r3, 1
+ movs r5, 0x1
+_080B9D20:
+ lsls r0, r7, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080B9D30
+ adds r0, r7, r1
+ adds r0, r2, r0
+ strb r5, [r0]
+_080B9D30:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, [r6, 0x70]
+ cmp r7, r0
+ bcc _080B9D20
+_080B9D3C:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ bcc _080B9D00
+_080B9D46:
+ movs r7, 0
+ movs r3, 0
+ ldr r2, [sp, 0x50]
+ cmp r2, 0
+ beq _080B9E3E
+ mov r4, sp
+ adds r4, 0x24
+ str r4, [sp, 0x44]
+ movs r0, 0x25
+ add r0, sp
+ mov r8, r0
+_080B9D5C:
+ ldr r1, [sp, 0x30]
+ adds r0, r1, 0
+ muls r0, r3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ lsls r1, r3, 1
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080B9D7C
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9D86
+_080B9D7C:
+ ldr r0, [sp, 0x3C]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x3C]
+_080B9D86:
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9DAC
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080B9DAC
+_080B9D9A:
+ lsls r1, r7, 1
+ ldr r4, [sp, 0x44]
+ adds r0, r4, r1
+ strb r3, [r0]
+ add r1, r8
+ strb r2, [r1]
+ b _080B9E2C
+ .align 2, 0
+_080B9DA8: .4byte gLinkPlayers
+_080B9DAC:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B9DC0
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _080B9D9A
+_080B9DC0:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ lsls r5, r7, 1
+ ldr r1, [sp, 0x44]
+ adds r0, r1, r5
+ strb r3, [r0]
+ adds r0, r6, 0
+ str r3, [sp, 0x54]
+ bl sub_80B9BBC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r0, 0x38
+ bl sub_80B9BBC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [sp, 0x54]
+ cmp r4, 0
+ bne _080B9E0A
+ cmp r1, 0
+ beq _080B9E0E
+ mov r2, r8
+ adds r1, r2, r5
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080B9E2C
+_080B9E0A:
+ cmp r1, 0
+ beq _080B9E26
+_080B9E0E:
+ str r3, [sp, 0x54]
+ bl Random
+ mov r4, r8
+ adds r2, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ ldr r3, [sp, 0x54]
+ b _080B9E2C
+_080B9E26:
+ mov r2, r8
+ adds r0, r2, r5
+ strb r1, [r0]
+_080B9E2C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080B9E32:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r4, [sp, 0x50]
+ cmp r0, r4
+ bcc _080B9D5C
+_080B9E3E:
+ movs r3, 0
+ ldr r1, [sp, 0x48]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ ldr r1, [sp, 0x4C]
+_080B9E4E:
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ str r6, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9E4E
+ ldr r0, [sp, 0x38]
+ bl sub_80B9C4C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r4, [sp, 0x3C]
+ cmp r4, 0x3
+ beq _080B9E9C
+ cmp r4, 0x3
+ bgt _080B9E82
+ cmp r4, 0x2
+ beq _080B9E8A
+ b _080B9EF0
+_080B9E82:
+ ldr r0, [sp, 0x3C]
+ cmp r0, 0x4
+ beq _080B9EBC
+ b _080B9EF0
+_080B9E8A:
+ add r2, sp, 0x24
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ movs r3, 0
+ bl sub_80B9BC4
+ b _080B9EF0
+_080B9E9C:
+ ldr r0, _080B9EB8
+ lsls r1, 1
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ add r2, sp, 0x24
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ bl sub_80B9BC4
+ b _080B9EF0
+ .align 2, 0
+_080B9EB8: .4byte gUnknown_083D02B4
+_080B9EBC:
+ add r6, sp, 0x24
+ ldr r4, _080B9F2C
+ lsls r5, r1, 2
+ adds r0, r5, r4
+ ldrb r3, [r0]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+ adds r0, r4, 0x2
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r5, r4
+ ldrb r0, [r5]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+_080B9EF0:
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x48]
+ adds r6, r1, r2
+ ldr r4, _080B9F30
+ ldr r1, _080B9F34
+ adds r0, r4, r1
+ adds r1, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9F38
+ adds r4, r2
+ adds r1, r6, 0
+ adds r1, 0x38
+ adds r0, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [sp, 0x40]
+ bl SeedRng
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9F2C: .4byte gUnknown_083D02BA
+_080B9F30: .4byte gSaveBlock1
+_080B9F34: .4byte 0x0000303c
+_080B9F38: .4byte 0x00003074
+ thumb_func_end sub_80B9C6C
+
+ thumb_func_start sub_80B9F3C
+sub_80B9F3C: @ 80B9F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ beq _080BA000
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080BA000
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080B9FC8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A92D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B9FB8
+ ldr r0, _080B9FA4
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FA8
+ ldr r1, _080B9FAC
+ bl StringCopy
+ ldrh r1, [r4]
+ ldr r0, _080B9FB0
+ cmp r1, r0
+ bne _080BA000
+ ldr r0, _080B9FB4
+ bl FlagSet
+ b _080BA000
+ .align 2, 0
+_080B9FA4: .4byte 0x00004001
+_080B9FA8: .4byte gStringVar1
+_080B9FAC: .4byte gLinkPlayers + 0x8
+_080B9FB0: .4byte 0x00000113
+_080B9FB4: .4byte 0x00000853
+_080B9FB8:
+ ldr r0, _080B9FC4
+ movs r1, 0
+ bl VarSet
+ b _080BA000
+ .align 2, 0
+_080B9FC4: .4byte 0x00004001
+_080B9FC8:
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B9FF8
+ ldr r0, _080B9FEC
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FF0
+ ldr r1, _080B9FF4
+ bl StringCopy
+ b _080BA000
+ .align 2, 0
+_080B9FEC: .4byte 0x00004001
+_080B9FF0: .4byte gStringVar1
+_080B9FF4: .4byte gLinkPlayers + 0x8
+_080B9FF8:
+ ldr r0, _080BA008
+ movs r1, 0
+ bl VarSet
+_080BA000:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA008: .4byte 0x00004001
+ thumb_func_end sub_80B9F3C
+
+ thumb_func_start sub_80BA00C
+sub_80BA00C: @ 80BA00C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080BA030
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _080BA09C
+ lsls r0, 2
+ ldr r1, _080BA034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA030: .4byte gTasks
+_080BA034: .4byte _080BA038
+ .align 2, 0
+_080BA038:
+ .4byte _080BA086
+ .4byte _080BA086
+ .4byte _080BA050
+ .4byte _080BA05A
+ .4byte _080BA074
+ .4byte _080BA08E
+_080BA050:
+ bl sub_8047A1C
+ bl sub_8125E2C
+ b _080BA086
+_080BA05A:
+ bl sub_8125E6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA09C
+ bl sub_8047A34
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ b _080BA09C
+_080BA074:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080BA09C
+ bl sub_800832C
+_080BA086:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BA09C
+_080BA08E:
+ ldr r0, _080BA0A4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BA09C
+ adds r0, r2, 0
+ bl DestroyTask
+_080BA09C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0A4: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80BA00C
+
+ thumb_func_start sub_80BA0A8
+sub_80BA0A8: @ 80BA0A8
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA0A8
+
+ thumb_func_start sub_80BA0C0
+sub_80BA0C0: @ 80BA0C0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, _080BA0E8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BA0E2
+ bl m4aSoundMain
+ bl m4aSoundMain
+ bl m4aSoundMain
+_080BA0E2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0E8: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA0C0
+
+ thumb_func_start unref_sub_80BA0EC
+unref_sub_80BA0EC: @ 80BA0EC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _080BA20C
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x10
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ ldr r1, _080BA210
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA214
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA218
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA21C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080BA220
+ bl SetUpWindowConfig
+ ldr r0, _080BA224
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BA228
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ ldr r1, _080BA22C
+ ldr r2, _080BA230
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x31
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xE1
+ strh r0, [r1]
+ ldr r0, _080BA234
+ strh r4, [r0]
+ adds r1, 0x4
+ movs r0, 0x7
+ strh r0, [r1]
+ ldr r1, _080BA238
+ movs r2, 0x1
+ strh r2, [r1]
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r2, _080BA23C
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080BA240
+ bl SetVBlankCallback
+ ldr r0, _080BA244
+ bl SetMainCallback2
+ ldr r1, _080BA248
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _080BA24C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BA250
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r4, [r1, 0xE]
+ ldr r0, _080BA254
+ strb r5, [r0]
+ strh r4, [r1, 0xE]
+ bl m4aSoundInit
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA20C: .4byte REG_BG2CNT
+_080BA210: .4byte 0x040000d4
+_080BA214: .4byte 0x8100c000
+_080BA218: .4byte 0x85000100
+_080BA21C: .4byte 0x81000200
+_080BA220: .4byte gWindowConfig_81E6C3C
+_080BA224: .4byte gWindowConfig_81E6CE4
+_080BA228: .4byte REG_WIN0H
+_080BA22C: .4byte REG_WININ
+_080BA230: .4byte 0x00001111
+_080BA234: .4byte REG_BLDALPHA
+_080BA238: .4byte 0x04000200
+_080BA23C: .4byte REG_DISPSTAT
+_080BA240: .4byte sub_80BA0C0
+_080BA244: .4byte sub_80BA0A8
+_080BA248: .4byte 0x00007140
+_080BA24C: .4byte sub_80BA258
+_080BA250: .4byte gTasks
+_080BA254: .4byte gUnknown_020387B0
+ thumb_func_end unref_sub_80BA0EC
+
+ thumb_func_start sub_80BA258
+sub_80BA258: @ 80BA258
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080BA354
+ mov r0, sp
+ movs r2, 0x9
+ bl memcpy
+ add r7, sp, 0xC
+ ldr r1, _080BA358
+ adds r0, r7, 0
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x10
+ mov r8, r0
+ ldr r1, _080BA35C
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x14
+ ldr r1, _080BA360
+ adds r0, r5, 0
+ movs r2, 0xD
+ bl memcpy
+ add r4, sp, 0x24
+ ldr r1, _080BA364
+ adds r0, r4, 0
+ movs r2, 0xC
+ bl memcpy
+ add r6, sp, 0x30
+ ldr r1, _080BA368
+ adds r0, r6, 0
+ movs r2, 0xE
+ bl memcpy
+ ldr r0, _080BA36C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA344
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x1B
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0x5
+ movs r2, 0x1B
+ movs r3, 0xA
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0xC
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x4
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x4
+ movs r2, 0x6
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0x6
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xE
+ movs r2, 0x12
+ bl MenuPrint
+ ldr r1, _080BA370
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA374
+ str r1, [r0]
+ ldr r1, _080BA378
+ ldr r2, _080BA37C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA380
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BA344:
+ add sp, 0x40
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA354: .4byte gDebugText_SoundCheckJap
+_080BA358: .4byte gDebugText_BGM
+_080BA35C: .4byte gDebugText_SE
+_080BA360: .4byte gUnknown_083D02D9
+_080BA364: .4byte gDebugText_UpDown
+_080BA368: .4byte gDebugText_DriverTest
+_080BA36C: .4byte gPaletteFade
+_080BA370: .4byte gTasks
+_080BA374: .4byte sub_80BA384
+_080BA378: .4byte REG_WIN0H
+_080BA37C: .4byte 0x000011df
+_080BA380: .4byte 0x0000011f
+ thumb_func_end sub_80BA258
+
+ thumb_func_start sub_80BA384
+sub_80BA384: @ 80BA384
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BA3EC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x8]
+ bl sub_80BA6B8
+ ldr r1, _080BA3F0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0xA]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ movs r2, 0x8
+ bl sub_80BA700
+ ldr r1, _080BA3F4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0x8
+ bl sub_80BA79C
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x7
+ movs r2, 0xF
+ bl sub_80BA700
+ ldr r1, _080BA3F8
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl sub_80BA79C
+ ldr r0, _080BA3FC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA3EC: .4byte gTasks
+_080BA3F0: .4byte 0x0000015d
+_080BA3F4: .4byte gBGMNames
+_080BA3F8: .4byte gSENames
+_080BA3FC: .4byte Task_HandleMainMenuInput
+ thumb_func_end sub_80BA384
+
+ thumb_func_start sub_80BA400
+sub_80BA400: @ 80BA400
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080BA428
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA434
+ ldr r0, _080BA42C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA430
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA428: .4byte gMain
+_080BA42C: .4byte gTasks
+_080BA430: .4byte sub_80BA800
+_080BA434:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA458
+ ldr r0, _080BA450
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA454
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA450: .4byte gTasks
+_080BA454: .4byte sub_80BAF84
+_080BA458:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA478
+ ldr r0, _080BA470
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA474
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA470: .4byte gTasks
+_080BA474: .4byte sub_80BB25C
+_080BA478:
+ movs r6, 0x1
+ movs r5, 0x1
+ ands r5, r1
+ cmp r5, 0
+ beq _080BA538
+ ldr r0, _080BA4AC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r5, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BA4D0
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA4BA
+ movs r3, 0xC
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA4B0
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ b _080BA4C4
+ .align 2, 0
+_080BA4AC: .4byte gTasks
+_080BA4B0:
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ strh r4, [r5, 0x10]
+ b _080BA64C
+_080BA4BA:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ cmp r0, 0
+ bne _080BA4C4
+ b _080BA64C
+_080BA4C4:
+ ldrh r0, [r5, 0xC]
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xC]
+ strh r0, [r5, 0x10]
+ b _080BA64C
+_080BA4D0:
+ ldrh r1, [r5, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA514
+ movs r3, 0xA
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA500
+ ldr r0, _080BA4FC
+ adds r4, r0, 0
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ ldrh r1, [r5, 0xA]
+ adds r4, r1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ b _080BA528
+ .align 2, 0
+_080BA4FC: .4byte 0x0000015d
+_080BA500:
+ ldr r2, _080BA510
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ strh r4, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA510: .4byte 0x0000015d
+_080BA514:
+ ldrh r1, [r5, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ bne _080BA520
+ b _080BA64C
+_080BA520:
+ ldr r4, _080BA534
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+_080BA528:
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA534: .4byte 0x0000015d
+_080BA538:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA570
+ movs r0, 0x5
+ bl m4aSongNumStart
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080BA568
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA56C
+ str r1, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA568: .4byte gTasks
+_080BA56C: .4byte sub_80BA68C
+_080BA570:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA582
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA59C
+_080BA582:
+ ldr r0, _080BA598
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ eors r0, r6
+ strh r0, [r1, 0x8]
+_080BA592:
+ movs r0, 0x1
+ b _080BA64E
+ .align 2, 0
+_080BA598: .4byte gTasks
+_080BA59C:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BA5EA
+ ldr r0, _080BA5CC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BA5D6
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080BA5D0
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA5CC: .4byte gTasks
+_080BA5D0:
+ movs r0, 0xF7
+ strh r0, [r1, 0xC]
+ b _080BA592
+_080BA5D6:
+ ldrh r2, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ ble _080BA5E4
+ subs r0, r2, 0x1
+ b _080BA5E6
+_080BA5E4:
+ movs r0, 0x75
+_080BA5E6:
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA5EA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA630
+ ldr r1, _080BA614
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080BA61C
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0xF6
+ bgt _080BA618
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA614: .4byte gTasks
+_080BA618:
+ strh r3, [r1, 0xC]
+ b _080BA592
+_080BA61C:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x74
+ bgt _080BA62C
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA62C:
+ strh r2, [r1, 0xA]
+ b _080BA592
+_080BA630:
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080BA648
+ ldr r0, _080BA644
+ strb r6, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA644: .4byte gUnknown_020387B0
+_080BA648:
+ ldr r0, _080BA658
+ strb r1, [r0]
+_080BA64C:
+ movs r0, 0
+_080BA64E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BA658: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA400
+
+ thumb_func_start Task_HandleMainMenuInput
+Task_HandleMainMenuInput: @ 80BA65C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80BA400
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA67C
+ ldr r0, _080BA684
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA688
+ str r0, [r1]
+_080BA67C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA684: .4byte gTasks
+_080BA688: .4byte sub_80BA384
+ thumb_func_end Task_HandleMainMenuInput
+
+ thumb_func_start sub_80BA68C
+sub_80BA68C: @ 80BA68C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BA6B0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA6AA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080BA6B4
+ bl SetMainCallback2
+_080BA6AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6B0: .4byte gPaletteFade
+_080BA6B4: .4byte CB2_InitTitleScreen
+ thumb_func_end sub_80BA68C
+
+ thumb_func_start sub_80BA6B8
+sub_80BA6B8: @ 80BA6B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA6C6
+ cmp r0, 0x1
+ beq _080BA6E0
+_080BA6C6:
+ ldr r1, _080BA6D4
+ ldr r2, _080BA6D8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6DC
+ b _080BA6EC
+ .align 2, 0
+_080BA6D4: .4byte REG_WIN1H
+_080BA6D8: .4byte 0x000011df
+_080BA6DC: .4byte 0x00002957
+_080BA6E0:
+ ldr r1, _080BA6F4
+ ldr r2, _080BA6F8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6FC
+_080BA6EC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6F4: .4byte REG_WIN1H
+_080BA6F8: .4byte 0x000011df
+_080BA6FC: .4byte 0x0000618f
+ thumb_func_end sub_80BA6B8
+
+ thumb_func_start sub_80BA700
+sub_80BA700: @ 80BA700
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r1, 0
+ movs r2, 0
+_080BA714:
+ mov r3, sp
+ adds r0, r3, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080BA714
+ mov r1, sp
+ movs r0, 0xB0
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ movs r4, 0
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA748
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r4, 0x1
+_080BA748:
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080BA766
+ cmp r4, 0
+ beq _080BA76C
+_080BA766:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1, 0x1]
+_080BA76C:
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4, 0x2]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA700
+
+ thumb_func_start sub_80BA79C
+sub_80BA79C: @ 80BA79C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r3, 0
+ movs r1, 0
+_080BA7AE:
+ mov r2, sp
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bls _080BA7AE
+ mov r0, sp
+ movs r1, 0xFF
+ strb r1, [r0, 0xA]
+ movs r3, 0
+ ldrb r0, [r4]
+ lsls r2, r6, 24
+ lsls r5, 24
+ cmp r0, 0xFF
+ beq _080BA7EC
+_080BA7D0:
+ mov r0, sp
+ adds r1, r0, r3
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080BA7EC
+ cmp r3, 0x9
+ bls _080BA7D0
+_080BA7EC:
+ lsrs r1, r2, 24
+ lsrs r2, r5, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA79C
+
+ thumb_func_start sub_80BA800
+sub_80BA800: @ 80BA800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xCC
+ lsls r0, 24
+ str r0, [sp, 0xB0]
+ lsrs r2, r0, 24
+ str r2, [sp, 0xAC]
+ ldr r1, _080BA9E8
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0xB4]
+ ldr r1, _080BA9EC
+ movs r2, 0xB
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0xB8]
+ ldr r1, _080BA9F0
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x24
+ str r0, [sp, 0xBC]
+ ldr r1, _080BA9F4
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x30
+ str r2, [sp, 0xC0]
+ ldr r1, _080BA9F8
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x3C
+ str r0, [sp, 0xC4]
+ ldr r1, _080BA9FC
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x48
+ str r2, [sp, 0xC8]
+ ldr r1, _080BAA00
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ add r4, sp, 0x54
+ ldr r1, _080BAA04
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ add r7, sp, 0x60
+ ldr r1, _080BAA08
+ adds r0, r7, 0
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x6C
+ mov r10, r0
+ ldr r1, _080BAA0C
+ movs r2, 0xA
+ bl memcpy
+ add r2, sp, 0x78
+ mov r9, r2
+ ldr r1, _080BAA10
+ mov r0, r9
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x84
+ mov r8, r0
+ ldr r1, _080BAA14
+ movs r2, 0x9
+ bl memcpy
+ add r6, sp, 0x90
+ ldr r1, _080BAA18
+ adds r0, r6, 0
+ movs r2, 0x9
+ bl memcpy
+ add r5, sp, 0x9C
+ ldr r1, _080BAA1C
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x13
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, [sp, 0xB4]
+ movs r1, 0x13
+ movs r2, 0x2
+ bl MenuPrint
+ ldr r0, [sp, 0xB8]
+ movs r1, 0x2
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, [sp, 0xBC]
+ movs r1, 0x2
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, [sp, 0xC0]
+ movs r1, 0x2
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, [sp, 0xC4]
+ movs r1, 0x2
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, [sp, 0xC8]
+ movs r1, 0x2
+ movs r2, 0x9
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ mov r0, r10
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ mov r0, r9
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x13
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x13
+ movs r2, 0xE
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x13
+ movs r2, 0xC
+ bl MenuPrint
+ ldr r1, _080BAA20
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080BAA24
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080BAA28
+ strb r1, [r0]
+ ldr r0, _080BAA2C
+ strb r1, [r0]
+ ldr r0, _080BAA30
+ movs r2, 0
+ str r2, [r0]
+ ldr r0, _080BAA34
+ strb r2, [r0]
+ ldr r1, _080BAA38
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080BAA3C
+ str r2, [r0]
+ movs r1, 0x78
+ str r1, [r0, 0x4]
+ str r2, [r0, 0x8]
+ movs r1, 0xF0
+ lsls r1, 6
+ str r1, [r0, 0xC]
+ movs r1, 0xB4
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x18]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x1C]
+ movs r1, 0x2
+ str r1, [r0, 0x20]
+ bl sub_80BAD5C
+ movs r0, 0
+ movs r1, 0
+ bl sub_80BAE10
+ ldr r1, _080BAA40
+ ldr r2, [sp, 0xAC]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAA44
+ str r1, [r0]
+ add sp, 0xCC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA9E8: .4byte gUnknown_083D0312
+_080BA9EC: .4byte gUnknown_083D031C
+_080BA9F0: .4byte gDebugText_Voice
+_080BA9F4: .4byte gDebugText_Volume
+_080BA9F8: .4byte gDebugText_Panpot
+_080BA9FC: .4byte gDebugText_Pitch
+_080BAA00: .4byte gDebugText_Length
+_080BAA04: .4byte gDebugText_Release
+_080BAA08: .4byte gDebugText_Progress
+_080BAA0C: .4byte gDebugText_Chorus
+_080BAA10: .4byte gDebugText_Priority
+_080BAA14: .4byte gUnknown_083D0381
+_080BAA18: .4byte gUnknown_083D038A
+_080BAA1C: .4byte gUnknown_083D0393
+_080BAA20: .4byte REG_WIN0H
+_080BAA24: .4byte gUnknown_020387B3
+_080BAA28: .4byte gUnknown_020387B1
+_080BAA2C: .4byte gUnknown_020387B2
+_080BAA30: .4byte gUnknown_03005D30
+_080BAA34: .4byte gUnknown_020387D8
+_080BAA38: .4byte gUnknown_020387D9
+_080BAA3C: .4byte gUnknown_020387B4
+_080BAA40: .4byte gTasks
+_080BAA44: .4byte sub_80BAA48
+ thumb_func_end sub_80BA800
+
+ thumb_func_start sub_80BAA48
+sub_80BAA48: @ 80BAA48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BAA90
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAAA8
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BAA94
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BAA98
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BAA9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BAAA0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAAA4
+ str r1, [r0]
+ b _080BACC6
+ .align 2, 0
+_080BAA90: .4byte gMain
+_080BAA94: .4byte 0x00007140
+_080BAA98: .4byte 0x000011df
+_080BAA9C: .4byte 0x0000011f
+_080BAAA0: .4byte gTasks
+_080BAAA4: .4byte sub_80BA258
+_080BAAA8:
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BAAD0
+ ldr r1, _080BAACC
+ ldrb r2, [r1]
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080BAAEA
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080BAAEA
+ .align 2, 0
+_080BAACC: .4byte gUnknown_020387B3
+_080BAAD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAAF8
+ ldr r1, _080BAAF4
+ ldrb r2, [r1]
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x8
+ ble _080BAAEA
+ strb r3, [r1]
+_080BAAEA:
+ ldrb r1, [r1]
+ adds r0, r2, 0
+ bl sub_80BAE10
+ b _080BACC6
+ .align 2, 0
+_080BAAF4: .4byte gUnknown_020387B3
+_080BAAF8:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB14
+ ldr r0, _080BAB10
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ bl sub_80BAD5C
+ b _080BACC6
+ .align 2, 0
+_080BAB10: .4byte gUnknown_020387D8
+_080BAB14:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB38
+ ldr r4, _080BAB34
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ bl sub_80BAD5C
+ ldrb r0, [r4]
+ bl SetPokemonCryStereo
+ b _080BACC6
+ .align 2, 0
+_080BAB34: .4byte gUnknown_020387D9
+_080BAB38:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB46
+ movs r0, 0xA
+ b _080BAB6E
+_080BAB46:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB56
+ movs r0, 0xA
+ negs r0, r0
+ b _080BAB6E
+_080BAB56:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB64
+ movs r0, 0x1
+ negs r0, r0
+ b _080BAB6E
+_080BAB64:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB78
+ movs r0, 0x1
+_080BAB6E:
+ bl sub_80BACDC
+ bl sub_80BAD5C
+ b _080BACC6
+_080BAB78:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080BAB82
+ b _080BACA2
+_080BAB82:
+ ldr r4, _080BABE4
+ ldrb r0, [r4, 0x4]
+ bl SetPokemonCryVolume
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryPanpot
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ bl SetPokemonCryPitch
+ ldrh r0, [r4, 0x10]
+ bl SetPokemonCryLength
+ ldr r0, [r4, 0x18]
+ bl SetPokemonCryProgress
+ ldrb r0, [r4, 0x14]
+ bl SetPokemonCryRelease
+ movs r0, 0x1C
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryChorus
+ ldr r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPokemonCryPriority
+ ldr r4, [r4]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080BABC8
+ adds r0, 0x7F
+_080BABC8:
+ asrs r2, r0, 7
+ lsls r0, r2, 7
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BAC1C
+ cmp r0, 0x1
+ bgt _080BABE8
+ cmp r0, 0
+ beq _080BABF2
+ b _080BACA2
+ .align 2, 0
+_080BABE4: .4byte gUnknown_020387B4
+_080BABE8:
+ cmp r0, 0x2
+ beq _080BAC48
+ cmp r0, 0x3
+ beq _080BAC74
+ b _080BACA2
+_080BABF2:
+ ldr r0, _080BAC04
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC0C
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC08
+ b _080BAC98
+ .align 2, 0
+_080BAC04: .4byte gUnknown_020387D8
+_080BAC08: .4byte voicegroup_84537C0
+_080BAC0C:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC18
+ b _080BAC98
+ .align 2, 0
+_080BAC18: .4byte voicegroup_8452590
+_080BAC1C:
+ ldr r0, _080BAC30
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC38
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC34
+ b _080BAC98
+ .align 2, 0
+_080BAC30: .4byte gUnknown_020387D8
+_080BAC34: .4byte voicegroup_8453DC0
+_080BAC38:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC44
+ b _080BAC98
+ .align 2, 0
+_080BAC44: .4byte voicegroup_8452B90
+_080BAC48:
+ ldr r0, _080BAC5C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC64
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC60
+ b _080BAC98
+ .align 2, 0
+_080BAC5C: .4byte gUnknown_020387D8
+_080BAC60: .4byte voicegroup_84543C0
+_080BAC64:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC70
+ b _080BAC98
+ .align 2, 0
+_080BAC70: .4byte voicegroup_8453190
+_080BAC74:
+ ldr r0, _080BAC88
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC90
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC8C
+ b _080BAC98
+ .align 2, 0
+_080BAC88: .4byte gUnknown_020387D8
+_080BAC8C: .4byte voicegroup_84549C0
+_080BAC90:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BACCC
+_080BAC98:
+ adds r0, r1
+ bl SetPokemonCryTone
+ ldr r1, _080BACD0
+ str r0, [r1]
+_080BACA2:
+ ldr r0, _080BACD0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080BACC6
+ ldr r5, _080BACD4
+ bl IsPokemonCryPlaying
+ strb r0, [r5]
+ ldr r4, _080BACD8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ cmp r0, r2
+ beq _080BACC2
+ bl sub_80BAD5C
+_080BACC2:
+ ldrb r0, [r5]
+ strb r0, [r4]
+_080BACC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACCC: .4byte voicegroup_8453790
+_080BACD0: .4byte gUnknown_03005D30
+_080BACD4: .4byte gUnknown_020387B1
+_080BACD8: .4byte gUnknown_020387B2
+ thumb_func_end sub_80BAA48
+
+ thumb_func_start sub_80BACDC
+sub_80BACDC: @ 80BACDC
+ push {r4-r6,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BAD50
+ mov r0, sp
+ movs r2, 0x40
+ bl memcpy
+ ldr r6, _080BAD54
+ ldr r5, _080BAD58
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 2
+ adds r1, r6
+ lsls r4, 24
+ asrs r4, 24
+ ldr r0, [r1]
+ adds r0, r4
+ str r0, [r1]
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080BAD26
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD26:
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080BAD46
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD46:
+ add sp, 0x40
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAD50: .4byte gUnknown_083D039C
+_080BAD54: .4byte gUnknown_020387B4
+_080BAD58: .4byte gUnknown_020387B3
+ thumb_func_end sub_80BACDC
+
+ thumb_func_start sub_80BAD5C
+sub_80BAD5C: @ 80BAD5C
+ push {r4,lr}
+ ldr r4, _080BAE00
+ ldr r0, [r4]
+ adds r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x1
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x4]
+ movs r1, 0xB
+ movs r2, 0x3
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x8]
+ movs r1, 0xB
+ movs r2, 0x5
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0xC]
+ movs r1, 0xB
+ movs r2, 0x7
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x10]
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x14]
+ movs r1, 0xB
+ movs r2, 0xB
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x18]
+ movs r1, 0xB
+ movs r2, 0xD
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x1C]
+ movs r1, 0xB
+ movs r2, 0xF
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x20]
+ movs r1, 0xB
+ movs r2, 0x11
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, _080BAE04
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE08
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE0C
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xC
+ movs r3, 0x1
+ bl sub_80BAE78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE00: .4byte gUnknown_020387B4
+_080BAE04: .4byte gUnknown_020387B1
+_080BAE08: .4byte gUnknown_020387D8
+_080BAE0C: .4byte gUnknown_020387D9
+ thumb_func_end sub_80BAD5C
+
+ thumb_func_start sub_80BAE10
+sub_80BAE10: @ 80BAE10
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080BAE6C
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _080BAE70
+ movs r2, 0x2
+ bl memcpy
+ ldr r6, _080BAE74
+ lsls r4, 1
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ adds r4, 0x1
+ adds r4, r6
+ ldrb r2, [r4]
+ mov r0, r8
+ bl MenuPrint
+ lsls r5, 1
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r5, 0x1
+ adds r5, r6
+ ldrb r2, [r5]
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE6C: .4byte gUnknown_083D03DC
+_080BAE70: .4byte gUnknown_083D03DE
+_080BAE74: .4byte gUnknown_083D0300
+ thumb_func_end sub_80BAE10
+
+ thumb_func_start sub_80BAE78
+sub_80BAE78: @ 80BAE78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r1, sp
+ ldr r0, _080BAF80
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ movs r5, 0
+ add r0, sp, 0x18
+ mov r9, r0
+ cmp r5, r7
+ bgt _080BAEC0
+ mov r4, r9
+ movs r3, 0
+_080BAEAC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ adds r1, r4, r0
+ strb r3, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, r7
+ ble _080BAEAC
+_080BAEC0:
+ adds r0, r7, 0x1
+ add r0, r9
+ movs r1, 0xFF
+ strb r1, [r0]
+ movs r1, 0
+ mov r3, r8
+ cmp r3, 0
+ bge _080BAED6
+ negs r3, r3
+ mov r8, r3
+ movs r1, 0x1
+_080BAED6:
+ movs r4, 0
+ mov r10, r4
+ cmp r7, 0x1
+ bne _080BAEE2
+ movs r5, 0x1
+ mov r10, r5
+_080BAEE2:
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 24
+ lsls r6, 24
+ str r6, [sp, 0x24]
+ lsls r2, 24
+ str r2, [sp, 0x28]
+ cmp r0, 0
+ blt _080BAF62
+ str r1, [sp, 0x20]
+_080BAEF8:
+ asrs r6, r0, 24
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r0, 0
+ bne _080BAF1A
+ mov r0, r10
+ cmp r0, 0
+ bne _080BAF1A
+ lsls r4, r5, 24
+ cmp r6, 0
+ bne _080BAF46
+_080BAF1A:
+ lsls r4, r5, 24
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _080BAF34
+ mov r5, r10
+ cmp r5, 0
+ bne _080BAF34
+ asrs r0, r4, 24
+ subs r0, r7, r0
+ subs r0, 0x1
+ add r0, r9
+ movs r1, 0xAE
+ strb r1, [r0]
+_080BAF34:
+ asrs r1, r4, 24
+ subs r1, r7, r1
+ add r1, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ subs r0, 0x5F
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r10, r0
+_080BAF46:
+ asrs r4, 24
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __modsi3
+ mov r8, r0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _080BAEF8
+_080BAF62:
+ ldr r3, [sp, 0x24]
+ lsrs r1, r3, 24
+ ldr r4, [sp, 0x28]
+ lsrs r2, r4, 24
+ mov r0, r9
+ bl MenuPrint
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF80: .4byte gUnknown_083D03E0
+ thumb_func_end sub_80BAE78
+
+ thumb_func_start sub_80BAF84
+sub_80BAF84: @ 80BAF84
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BB01C
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r6, sp, 0x4
+ ldr r1, _080BB020
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB024
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x3
+ movs r2, 0x2
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r1, _080BB028
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _080BB02C
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ str r0, [r1, 0x1C]
+ str r0, [r1, 0x18]
+ str r0, [r1, 0x14]
+ bl sub_80BB1D4
+ ldr r1, _080BB030
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB034
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB01C: .4byte gOtherText_SE
+_080BB020: .4byte gOtherText_Pan
+_080BB024: .4byte gUnknown_083D0381
+_080BB028: .4byte REG_WIN0H
+_080BB02C: .4byte gUnknown_020387B4
+_080BB030: .4byte gTasks
+_080BB034: .4byte sub_80BB038
+ thumb_func_end sub_80BAF84
+
+ thumb_func_start sub_80BB038
+sub_80BB038: @ 80BB038
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80BB1D4
+ ldr r2, _080BB058
+ ldr r0, [r2, 0x18]
+ cmp r0, 0
+ beq _080BB0A2
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ beq _080BB05C
+ subs r0, 0x1
+ str r0, [r2, 0x14]
+ b _080BB0A2
+ .align 2, 0
+_080BB058: .4byte gUnknown_020387B4
+_080BB05C:
+ ldr r0, _080BB088
+ ldr r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB08C
+ cmp r1, 0x7F
+ bne _080BB0A2
+ ldr r0, [r2, 0x1C]
+ adds r0, 0x2
+ str r0, [r2, 0x1C]
+ cmp r0, 0x3E
+ bgt _080BB0A2
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ b _080BB0A2
+ .align 2, 0
+_080BB088: .4byte gUnknown_083D03F8
+_080BB08C:
+ ldr r0, [r2, 0x1C]
+ subs r1, r0, 0x2
+ str r1, [r2, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ ble _080BB0A2
+ lsls r0, r1, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_080BB0A2:
+ ldr r1, _080BB0EC
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r1, 0
+ cmp r4, 0
+ beq _080BB104
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB0F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB0F4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB0F8
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB0FC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB100
+ str r1, [r0]
+ b _080BB1C8
+ .align 2, 0
+_080BB0EC: .4byte gMain
+_080BB0F0: .4byte 0x00007140
+_080BB0F4: .4byte 0x000011df
+_080BB0F8: .4byte 0x0000011f
+_080BB0FC: .4byte gTasks
+_080BB100: .4byte sub_80BA258
+_080BB104:
+ movs r6, 0x1
+ adds r2, r6, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _080BB15E
+ ldr r0, _080BB138
+ ldr r5, _080BB13C
+ ldr r1, [r5, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB140
+ cmp r1, 0x7F
+ bne _080BB154
+ ldrh r0, [r5]
+ movs r4, 0x40
+ negs r4, r4
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x1C]
+ b _080BB14C
+ .align 2, 0
+_080BB138: .4byte gUnknown_083D03F8
+_080BB13C: .4byte gUnknown_020387B4
+_080BB140:
+ ldrh r0, [r5]
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ movs r0, 0x3F
+ str r0, [r5, 0x1C]
+_080BB14C:
+ str r6, [r5, 0x18]
+ movs r0, 0x1E
+ str r0, [r5, 0x14]
+ b _080BB1C8
+_080BB154:
+ ldrh r0, [r5]
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x18]
+ b _080BB1C8
+_080BB15E:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r3
+ cmp r0, 0
+ beq _080BB176
+ ldr r1, _080BB1AC
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0x4
+ ble _080BB176
+ str r2, [r1, 0x8]
+_080BB176:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB192
+ ldr r1, _080BB1AC
+ ldr r0, [r1, 0x8]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0
+ bge _080BB192
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+_080BB192:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1B0
+ ldr r1, _080BB1AC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xF7
+ ble _080BB1C8
+ movs r0, 0
+ b _080BB1C6
+ .align 2, 0
+_080BB1AC: .4byte gUnknown_020387B4
+_080BB1B0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1C8
+ ldr r1, _080BB1D0
+ ldr r0, [r1]
+ subs r0, 0x1
+ str r0, [r1]
+ cmp r0, 0
+ bge _080BB1C8
+ movs r0, 0xF7
+_080BB1C6:
+ str r0, [r1]
+_080BB1C8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB1D0: .4byte gUnknown_020387B4
+ thumb_func_end sub_80BB038
+
+ thumb_func_start sub_80BB1D4
+sub_80BB1D4: @ 80BB1D4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r1, _080BB218
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB21C
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl memcpy
+ ldr r4, _080BB220
+ ldr r0, [r4]
+ movs r1, 0x7
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80BAE78
+ ldr r1, _080BB224
+ ldr r0, [r4, 0x8]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB228
+ cmp r1, 0x7F
+ bne _080BB234
+ mov r0, sp
+ b _080BB22A
+ .align 2, 0
+_080BB218: .4byte gOtherText_LR
+_080BB21C: .4byte gOtherText_RL
+_080BB220: .4byte gUnknown_020387B4
+_080BB224: .4byte gUnknown_083D03F8
+_080BB228:
+ adds r0, r5, 0
+_080BB22A:
+ movs r1, 0x7
+ movs r2, 0x4
+ bl MenuPrint
+ b _080BB240
+_080BB234:
+ adds r0, r1, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ movs r3, 0x3
+ bl sub_80BAE78
+_080BB240:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80BAE78
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB1D4
+
+ thumb_func_start sub_80BB25C
+sub_80BB25C: @ 80BB25C
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB374
+ bl SetUpWindowConfig
+ ldr r0, _080BB378
+ bl InitMenuWindow
+ ldr r1, _080BB37C
+ movs r0, 0x1
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _080BB380
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ ldr r1, _080BB384
+ ands r0, r1
+ movs r1, 0xE8
+ lsls r1, 13
+ orrs r0, r1
+ ldr r1, _080BB388
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, _080BB38C
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 5
+ orrs r0, r1
+ ldr r1, _080BB390
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldr r0, _080BB394
+ strb r1, [r0]
+ add r4, sp, 0xC
+_080BB2BE:
+ add r0, sp, 0x4
+ movs r1, 0x3
+ bl sub_8119E3C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB2BE
+ ldr r1, _080BB380
+ ldr r0, [sp, 0xC]
+ ands r0, r1
+ ldr r1, _080BB384
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _080BB388
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r1, _080BB390
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0xC
+ orrs r0, r1
+ ldr r1, _080BB38C
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldr r0, _080BB394
+ strb r1, [r0]
+ lsls r5, r6, 2
+_080BB306:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_811A3CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB306
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_80BB494
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BB398
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _080BB39C
+ ldr r2, _080BB3A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080BB3A4
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ adds r2, 0x3D
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080BB3A8
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ ldr r1, _080BB3AC
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB3B0
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB374: .4byte gWindowConfig_81E6C3C
+_080BB378: .4byte gWindowConfig_81E6CE4
+_080BB37C: .4byte gUnknown_03005D34
+_080BB380: .4byte 0xffff0000
+_080BB384: .4byte 0xff00ffff
+_080BB388: .4byte 0x00ffffff
+_080BB38C: .4byte 0xffff00ff
+_080BB390: .4byte 0xffffff00
+_080BB394: .4byte gUnknown_03005E98
+_080BB398: .4byte REG_BG2HOFS
+_080BB39C: .4byte REG_BG2CNT
+_080BB3A0: .4byte 0x00000f01
+_080BB3A4: .4byte 0x00001d03
+_080BB3A8: .4byte gMPlay_BGM
+_080BB3AC: .4byte gTasks
+_080BB3B0: .4byte sub_80BB3B4
+ thumb_func_end sub_80BB25C
+
+ thumb_func_start sub_80BB3B4
+sub_80BB3B4: @ 80BB3B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8119F88
+ ldr r4, _080BB478
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3D4
+ ldr r0, _080BB47C
+ ldrh r0, [r0]
+ bl sub_811A050
+_080BB3D4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3E4
+ bl StopCryAndClearCrySongs
+_080BB3E4:
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB408
+ ldr r1, _080BB47C
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BB404
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BB404:
+ bl sub_80BB494
+_080BB408:
+ ldr r0, _080BB478
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB42E
+ ldr r2, _080BB47C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 17
+ cmp r0, r1
+ bls _080BB42A
+ movs r0, 0x1
+ strh r0, [r2]
+_080BB42A:
+ bl sub_80BB494
+_080BB42E:
+ ldr r0, _080BB478
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB472
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB480
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB484
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB488
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB48C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB490
+ str r1, [r0]
+ bl sub_811A4F8
+_080BB472:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB478: .4byte gMain
+_080BB47C: .4byte gUnknown_03005D34
+_080BB480: .4byte 0x00007140
+_080BB484: .4byte 0x000011df
+_080BB488: .4byte 0x0000011f
+_080BB48C: .4byte gTasks
+_080BB490: .4byte sub_80BA258
+ thumb_func_end sub_80BB3B4
+
+ thumb_func_start sub_80BB494
+sub_80BB494: @ 80BB494
+ push {lr}
+ ldr r0, _080BB4A8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ movs r2, 0x11
+ movs r3, 0x3
+ bl sub_80BAE78
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB4A8: .4byte gUnknown_03005D34
+ thumb_func_end sub_80BB494
+
+ thumb_func_start sub_80BB4AC
+sub_80BB4AC: @ 80BB4AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ movs r0, 0
+ strb r0, [r3]
+ movs r2, 0
+ adds r4, r3, 0x2
+ movs r5, 0xFF
+_080BB4C4:
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x6
+ bls _080BB4C4
+ movs r2, 0
+ adds r5, r3, 0
+ adds r5, 0x12
+ adds r6, r3, 0
+ adds r6, 0x22
+ adds r7, r3, 0
+ adds r7, 0x4C
+ adds r0, r3, 0
+ adds r0, 0x34
+ str r0, [sp]
+ adds r1, r3, 0
+ adds r1, 0x9A
+ str r1, [sp, 0x4]
+ movs r0, 0x7C
+ adds r0, r3
+ mov r10, r0
+ movs r1, 0x88
+ adds r1, r3
+ mov r9, r1
+ movs r0, 0x94
+ adds r0, r3
+ mov r8, r0
+ adds r1, r3, 0
+ adds r1, 0x9
+ movs r4, 0
+_080BB508:
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080BB508
+ movs r0, 0
+ movs r1, 0
+ strh r1, [r3, 0xE]
+ strb r0, [r3, 0x10]
+ strb r0, [r3, 0x11]
+ movs r0, 0
+ strb r0, [r3, 0x1]
+ movs r2, 0
+ adds r4, r5, 0
+ adds r3, r6, 0
+_080BB52A:
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080BB52A
+ movs r2, 0
+ mov r12, r7
+ movs r5, 0
+_080BB542:
+ movs r1, 0
+ adds r7, r2, 0x1
+ lsls r4, r2, 2
+ lsls r6, r2, 1
+ adds r3, r4, 0
+_080BB54C:
+ adds r0, r3, r1
+ lsls r0, 1
+ add r0, r12
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080BB54C
+ ldr r1, [sp]
+ adds r0, r1, r4
+ str r5, [r0]
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r2
+ strb r5, [r0]
+ mov r1, r10
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r9
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r8
+ adds r0, r1, r2
+ strb r5, [r0]
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080BB542
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB4AC
+
+ thumb_func_start sub_80BB594
+sub_80BB594: @ 80BB594
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ ldr r1, _080BB5B0
+ adds r0, r1
+ bl sub_80BB4AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB5B0: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BB594
+
+ thumb_func_start sub_80BB5B4
+sub_80BB5B4: @ 80BB5B4
+ push {r4,lr}
+ movs r4, 0
+_080BB5B8:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BB594
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BB5B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB5B4
+
+ thumb_func_start sub_80BB5D0
+sub_80BB5D0: @ 80BB5D0
+ ldr r0, _080BB5DC
+ ldr r1, _080BB5E0
+ ldrh r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BB5DC: .4byte gUnknown_020387DC
+_080BB5E0: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BB5D0
+
+ thumb_func_start sub_80BB5E4
+sub_80BB5E4: @ 80BB5E4
+ push {r4,lr}
+ ldr r0, _080BB5F4
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, r0, 0
+ b _080BB5FE
+ .align 2, 0
+_080BB5F4: .4byte gScriptResult
+_080BB5F8:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080BB5FE:
+ cmp r3, 0x13
+ bhi _080BB626
+ ldr r2, _080BB62C
+ ldr r1, _080BB630
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BB634
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080BB5F8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080BB638
+ adds r1, r3, 0
+ bl VarSet
+_080BB626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB62C: .4byte gUnknown_020387DC
+_080BB630: .4byte gSaveBlock1
+_080BB634: .4byte 0x00001a08
+_080BB638: .4byte 0x00004054
+ thumb_func_end sub_80BB5E4
+
+ thumb_func_start sub_80BB63C
+sub_80BB63C: @ 80BB63C
+ push {lr}
+ ldr r0, _080BB654
+ ldr r1, _080BB658
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080BB660
+ ldr r1, _080BB65C
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080BB664
+ .align 2, 0
+_080BB654: .4byte gSaveBlock1
+_080BB658: .4byte 0x00001a08
+_080BB65C: .4byte gScriptResult
+_080BB660:
+ ldr r0, _080BB668
+ strh r1, [r0]
+_080BB664:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB668: .4byte gScriptResult
+ thumb_func_end sub_80BB63C
+
+ thumb_func_start sub_80BB66C
+sub_80BB66C: @ 80BB66C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r1, r0, 0
+ ldr r2, _080BB6A4
+ adds r0, r2, 0
+ ands r1, r0
+ adds r0, r1, 0
+ subs r0, 0x90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6A8
+ movs r0, 0x1
+ b _080BB702
+ .align 2, 0
+_080BB6A4: .4byte 0x00000fff
+_080BB6A8:
+ adds r0, r1, 0
+ subs r0, 0x92
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6B8
+ movs r0, 0x2
+ b _080BB702
+_080BB6B8:
+ adds r0, r1, 0
+ subs r0, 0x9A
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6C8
+ movs r0, 0x3
+ b _080BB702
+_080BB6C8:
+ adds r0, r1, 0
+ subs r0, 0x94
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6D8
+ movs r0, 0x4
+ b _080BB702
+_080BB6D8:
+ adds r0, r1, 0
+ subs r0, 0x96
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB6EC
+ cmp r1, 0x9C
+ beq _080BB6EC
+ cmp r1, 0x9D
+ bne _080BB6F0
+_080BB6EC:
+ movs r0, 0x5
+ b _080BB702
+_080BB6F0:
+ adds r0, r1, 0
+ subs r0, 0x98
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB700
+ movs r0, 0
+ b _080BB702
+_080BB700:
+ movs r0, 0x6
+_080BB702:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB66C
+
+ thumb_func_start sub_80BB70C
+sub_80BB70C: @ 80BB70C
+ push {r4,lr}
+ ldr r4, _080BB720
+ bl sub_80BB66C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB720: .4byte gUnknown_0202E8D2
+ thumb_func_end sub_80BB70C
+
+ thumb_func_start unref_sub_80BB724
+unref_sub_80BB724: @ 80BB724
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ movs r2, 0
+ ldr r6, _080BB748
+ lsrs r3, r1, 24
+ ldr r5, _080BB74C
+_080BB732:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, r3
+ bne _080BB750
+ lsls r0, r2, 16
+ asrs r0, 16
+ b _080BB75E
+ .align 2, 0
+_080BB748: .4byte 0x00000fff
+_080BB74C: .4byte 0x000001ff
+_080BB750:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bls _080BB732
+ movs r0, 0x1
+ negs r0, r0
+_080BB75E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80BB724
+
+ thumb_func_start sub_80BB764
+sub_80BB764: @ 80BB764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ movs r0, 0
+ mov r12, r0
+ ldr r1, _080BB7C8
+ ldr r0, [r1]
+ ldr r3, [r0, 0x4]
+ cmp r12, r3
+ bge _080BB7EE
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r3, [sp]
+_080BB78E:
+ movs r2, 0
+ mov r1, r12
+ lsls r7, r1, 16
+ ldr r0, [sp, 0x4]
+ cmp r2, r0
+ bge _080BB7DC
+ ldr r0, _080BB7C8
+ ldr r1, [r0]
+ asrs r0, r7, 16
+ ldr r4, [r1]
+ adds r6, r0, 0
+ muls r6, r4
+ ldr r5, [r1, 0xC]
+_080BB7A8:
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ adds r0, r6, r3
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080BB7CC
+ ands r0, r1
+ cmp r0, r8
+ bne _080BB7D0
+ mov r1, r9
+ strh r2, [r1]
+ mov r1, r12
+ mov r0, r10
+ strh r1, [r0]
+ b _080BB7EE
+ .align 2, 0
+_080BB7C8: .4byte gMapHeader
+_080BB7CC: .4byte 0x000003ff
+_080BB7D0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ blt _080BB7A8
+_080BB7DC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r1, r0, 16
+ mov r12, r1
+ asrs r0, 16
+ ldr r1, [sp]
+ cmp r0, r1
+ blt _080BB78E
+_080BB7EE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB764
+
+ thumb_func_start sub_80BB800
+sub_80BB800: @ 80BB800
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ movs r5, 0
+ mov r12, r4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r1, _080BB84C
+ mov r8, r1
+ adds r7, r0, 0
+ mov r4, sp
+ mov r6, r12
+_080BB834:
+ ldr r0, _080BB84C
+ lsls r1, r5, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _080BB850
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r2, 0x2]
+ b _080BB878
+ .align 2, 0
+_080BB84C: .4byte gUnknown_083D1358
+_080BB850:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB834
+ movs r5, 0
+ mov r4, sp
+ mov r6, r12
+_080BB860:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x2]
+ asrs r0, r7, 16
+ cmp r1, r0
+ bne _080BB892
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r3]
+_080BB878:
+ movs r5, 0xC0
+ lsls r5, 4
+ adds r2, r5, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080BB89C
+_080BB892:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB860
+_080BB89C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB800
+
+ thumb_func_start sub_80BB8A8
+sub_80BB8A8: @ 80BB8A8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BB8AE:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BB8BA
+ adds r0, r1, 0
+ b _080BB8C6
+_080BB8BA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _080BB8AE
+ movs r0, 0x7
+_080BB8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB8A8
+
+ thumb_func_start sub_80BB8CC
+sub_80BB8CC: @ 80BB8CC
+ push {r4-r6,lr}
+ ldr r2, _080BB948
+ ldr r0, _080BB94C
+ ldrb r1, [r0]
+ ldr r3, _080BB950
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r3, 0
+ ldr r0, _080BB954
+ adds r2, r0
+ ldr r4, _080BB958
+_080BB8E2:
+ adds r1, r3, r2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080BB8E2
+ ldr r0, _080BB95C
+ movs r1, 0
+ bl VarSet
+ ldr r6, _080BB960
+ adds r0, r6, 0
+ bl sub_80BB8A8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080BB964
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ ldrb r0, [r6, 0x8]
+ subs r5, 0x1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r0, _080BB968
+ ldr r1, _080BB96C
+ ldrb r1, [r1, 0x14]
+ bl VarSet
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB948: .4byte gSaveBlock1
+_080BB94C: .4byte gUnknown_020387DC
+_080BB950: .4byte 0x00001a08
+_080BB954: .4byte 0x00001a11
+_080BB958: .4byte gSaveBlock2 + 0xA
+_080BB95C: .4byte 0x00004054
+_080BB960: .4byte gSaveBlock2
+_080BB964: .4byte gSaveBlock1 + 0x1A0A
+_080BB968: .4byte 0x00004026
+_080BB96C: .4byte gMapHeader
+ thumb_func_end sub_80BB8CC
+
+ thumb_func_start sub_80BB970
+sub_80BB970: @ 80BB970
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r2, 0
+ b _080BBA06
+_080BB978:
+ ldr r0, [r5, 0x10]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x5]
+ adds r7, r2, 0x1
+ cmp r0, 0x8
+ bne _080BBA02
+ movs r2, 0
+ ldr r4, _080BB9E0
+ adds r6, r1, 0
+_080BB990:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BB9E4
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, [r3, 0x8]
+ cmp r1, r0
+ bne _080BB9F8
+ ldrh r0, [r3]
+ adds r0, 0x7
+ ldrh r1, [r3, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r3, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+_080BB9B6:
+ ldr r0, _080BB9E8
+ lsls r1, r3, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _080BB9EC
+ ldr r1, [r5, 0x10]
+ adds r1, r6, r1
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r2, 0x2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BBA02
+ .align 2, 0
+_080BB9E0: .4byte gSaveBlock1
+_080BB9E4: .4byte 0x00001a08
+_080BB9E8: .4byte gUnknown_083D1358
+_080BB9EC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6
+ bls _080BB9B6
+ b _080BBA02
+_080BB9F8:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _080BB990
+_080BBA02:
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+_080BBA06:
+ ldrb r0, [r5, 0x3]
+ cmp r2, r0
+ bcc _080BB978
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB970
+
+ thumb_func_start sub_80BBA14
+sub_80BBA14: @ 80BBA14
+ push {lr}
+ ldr r0, _080BBA40
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r2, _080BBA44
+ lsls r0, 26
+ asrs r0, 24
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, 0x1
+ adds r0, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0x19
+ bl warp1_set_2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBA40: .4byte gUnknown_020387DC
+_080BBA44: .4byte gUnknown_083D1374
+ thumb_func_end sub_80BBA14
+
+ thumb_func_start sub_80BBA48
+sub_80BBA48: @ 80BBA48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BBA6C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080BBA7C
+ cmp r0, 0x1
+ bgt _080BBA70
+ cmp r0, 0
+ beq _080BBA76
+ b _080BBAD0
+ .align 2, 0
+_080BBA6C: .4byte gTasks
+_080BBA70:
+ cmp r0, 0x2
+ beq _080BBA94
+ b _080BBAD0
+_080BBA76:
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+_080BBA7C:
+ ldr r0, _080BBA90
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBAD0
+ movs r0, 0x2
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+ .align 2, 0
+_080BBA90: .4byte gPaletteFade
+_080BBA94:
+ ldr r0, _080BBAD8
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080BBADC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BBAE0
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _080BBAB6
+ adds r0, 0x1
+ strb r0, [r1]
+_080BBAB6:
+ bl sub_80BBA14
+ bl warp_in
+ ldr r0, _080BBAE4
+ ldr r1, _080BBAE8
+ str r1, [r0]
+ ldr r0, _080BBAEC
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBAD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBAD8: .4byte 0x00004054
+_080BBADC: .4byte gSaveBlock1
+_080BBAE0: .4byte 0x00001a18
+_080BBAE4: .4byte gUnknown_0300485C
+_080BBAE8: .4byte sub_8080990
+_080BBAEC: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBA48
+
+ thumb_func_start sub_80BBAF0
+sub_80BBAF0: @ 80BBAF0
+ push {lr}
+ ldr r0, _080BBB1C
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, _080BBB20
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB1C: .4byte sub_80BBA48
+_080BBB20: .4byte gSaveBlock1
+ thumb_func_end sub_80BBAF0
+
+ thumb_func_start sub_80BBB24
+sub_80BBB24: @ 80BBB24
+ push {lr}
+ ldr r0, _080BBB40
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ bne _080BBB48
+ ldr r0, _080BBB44
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BBB48
+ movs r0, 0
+ b _080BBB4A
+ .align 2, 0
+_080BBB40: .4byte gMapHeader
+_080BBB44: .4byte 0x00004097
+_080BBB48:
+ movs r0, 0x1
+_080BBB4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BBB24
+
+ thumb_func_start sub_80BBB50
+sub_80BBB50: @ 80BBB50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BBB88
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BBB8C
+ adds r0, r1
+ movs r1, 0x2
+ bl FieldObjectTurn
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBB80
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBB80:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB88: .4byte gPlayerAvatar
+_080BBB8C: .4byte gMapObjects
+ thumb_func_end sub_80BBB50
+
+ thumb_func_start sub_80BBB90
+sub_80BBB90: @ 80BBB90
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl HideMapNamePopUpWindow
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ bl CurrentMapDrawMetatileAt
+ bl pal_fill_black
+ ldr r0, _080BBBE8
+ movs r1, 0
+ bl CreateTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBBE8: .4byte sub_80BBB50
+ thumb_func_end sub_80BBB90
+
+ thumb_func_start sub_80BBBEC
+sub_80BBBEC: @ 80BBBEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BBC5C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBC52
+ ldr r0, _080BBC60
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r1, _080BBC64
+ movs r5, 0x4
+ ldrsb r5, [r1, r5]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r4, _080BBC68
+ lsls r0, 26
+ asrs r0, 24
+ adds r3, r0, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ adds r0, 0x3
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ adds r0, r5, 0
+ bl warp1_set
+ bl warp_in
+ ldr r1, _080BBC6C
+ ldr r0, _080BBC70
+ str r0, [r1]
+ ldr r0, _080BBC74
+ bl SetMainCallback2
+ adds r0, r6, 0
+ bl DestroyTask
+_080BBC52:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBC5C: .4byte gPaletteFade
+_080BBC60: .4byte gUnknown_020387DC
+_080BBC64: .4byte gSaveBlock1
+_080BBC68: .4byte gUnknown_083D1374
+_080BBC6C: .4byte gUnknown_0300485C
+_080BBC70: .4byte sub_80BBB90
+_080BBC74: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBBEC
+
+ thumb_func_start sub_80BBC78
+sub_80BBC78: @ 80BBC78
+ push {lr}
+ ldr r0, _080BBCA0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BBCA4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBCA0: .4byte sub_80BBBEC
+_080BBCA4: .4byte gTasks
+ thumb_func_end sub_80BBC78
+
+ thumb_func_start CurrentMapIsSecretBase
+CurrentMapIsSecretBase: @ 80BBCA8
+ push {lr}
+ ldr r1, _080BBCC0
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x19
+ bne _080BBCC4
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0x17
+ bhi _080BBCC4
+ movs r0, 0x1
+ b _080BBCC6
+ .align 2, 0
+_080BBCC0: .4byte gSaveBlock1
+_080BBCC4:
+ movs r0, 0
+_080BBCC6:
+ pop {r1}
+ bx r1
+ thumb_func_end CurrentMapIsSecretBase
+
+ thumb_func_start sub_80BBCCC
+sub_80BBCCC: @ 80BBCCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBDBC
+ ldr r0, _080BBD70
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ ldr r6, _080BBD74
+ mov r4, sp
+ ldr r0, _080BBD78
+ adds r7, r6, r0
+_080BBCFC:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ ldrh r1, [r4]
+ adds r2, r0, r1
+ ldr r1, _080BBD7C
+ adds r0, r6, r1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x77
+ bhi _080BBD3A
+ ldr r0, _080BBD80
+ ldrb r3, [r1]
+ lsls r1, r3, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ beq _080BBD3A
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ lsrs r0, r2, 4
+ adds r0, 0x7
+ movs r1, 0xF
+ ands r1, r2
+ adds r1, 0x7
+ adds r2, r3, 0
+ bl sub_80FF394
+_080BBD3A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4]
+ cmp r0, 0xF
+ bls _080BBCFC
+ cmp r5, 0
+ beq _080BBD88
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBD84
+ bl MapGridSetMetatileIdAt
+ b _080BBDBC
+ .align 2, 0
+_080BBD70: .4byte 0x00004054
+_080BBD74: .4byte gSaveBlock1
+_080BBD78: .4byte 0x00001a2a
+_080BBD7C: .4byte 0x00001a1a
+_080BBD80: .4byte gDecorations
+_080BBD84: .4byte 0x00000e21
+_080BBD88:
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080BBDBC
+ ldr r0, _080BBDC8
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080BBDBC
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBDCC
+ bl MapGridSetMetatileIdAt
+_080BBDBC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBDC8: .4byte 0x00004089
+_080BBDCC: .4byte 0x00000e0a
+ thumb_func_end sub_80BBCCC
+
+ thumb_func_start sub_80BBDD0
+sub_80BBDD0: @ 80BBDD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080BBE00
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBE08
+ ldr r0, _080BBE04
+ str r0, [sp, 0x4]
+ adds r0, 0xC
+ str r0, [sp, 0x8]
+ movs r1, 0xC
+ str r1, [sp, 0xC]
+ b _080BBE1E
+ .align 2, 0
+_080BBE00: .4byte 0x00004054
+_080BBE04: .4byte gSaveBlock1 + 0x2688
+_080BBE08:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 5
+ ldr r0, _080BBF7C
+ adds r2, r1, r0
+ str r2, [sp, 0x4]
+ adds r0, 0x10
+ adds r1, r0
+ str r1, [sp, 0x8]
+ movs r3, 0x10
+ str r3, [sp, 0xC]
+_080BBE1E:
+ movs r6, 0
+ ldr r4, [sp, 0xC]
+ cmp r6, r4
+ bcc _080BBE28
+ b _080BBF6C
+_080BBE28:
+ ldr r5, _080BBF80
+ mov r10, r5
+_080BBE2C:
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r9, r0
+ adds r2, r6, 0x1
+ str r2, [sp, 0x10]
+ cmp r1, 0
+ bne _080BBE3E
+ b _080BBF5E
+_080BBE3E:
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r3, _080BBF84
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _080BBE4E
+ b _080BBF5E
+_080BBE4E:
+ movs r5, 0
+ ldr r0, _080BBF88
+ ldr r2, [r0, 0x4]
+ ldrb r3, [r2]
+ mov r8, r0
+ cmp r5, r3
+ bcs _080BBE8E
+ ldr r0, [r2, 0x4]
+ ldrh r1, [r0, 0x14]
+ ldr r4, _080BBF8C
+ ldrh r0, [r4]
+ adds r0, 0xAE
+ adds r7, r4, 0
+ cmp r1, r0
+ beq _080BBE8E
+ adds r4, r2, 0
+ adds r2, r3, 0
+_080BBE70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r2
+ bcs _080BBE8E
+ ldr r1, [r4, 0x4]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x14]
+ ldrh r0, [r7]
+ adds r0, 0xAE
+ cmp r1, r0
+ bne _080BBE70
+_080BBE8E:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080BBF5E
+ ldr r7, _080BBF90
+ ldr r2, [sp, 0x8]
+ adds r1, r2, r6
+ ldrb r0, [r1]
+ lsrs r0, 4
+ strh r0, [r7]
+ ldr r6, _080BBF94
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ strh r0, [r6]
+ ldrh r0, [r7]
+ adds r0, 0x7
+ ldrh r1, [r6]
+ adds r1, 0x7
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BBEDA
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBF5E
+_080BBEDA:
+ mov r3, r8
+ ldr r0, [r3, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r5, _080BBF98
+ adds r0, r5, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080BBF9C
+ strh r0, [r1]
+ ldrh r0, [r1]
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r3, _080BBFA0
+ adds r1, r3
+ ldr r1, [r1]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ ldr r1, _080BBF9C
+ strh r0, [r1]
+ ldr r2, _080BBF8C
+ ldrh r0, [r2]
+ adds r0, 0xAE
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagReset
+ ldr r3, _080BBF9C
+ ldrb r0, [r3]
+ mov r4, r10
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ bl show_sprite
+ ldr r5, _080BBF9C
+ ldrb r0, [r5]
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ ldrsh r3, [r7, r4]
+ movs r5, 0
+ ldrsh r4, [r6, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ ldr r1, _080BBF9C
+ ldrb r0, [r1]
+ mov r2, r10
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805C78C
+ ldr r3, _080BBF8C
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080BBF5E:
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ ldr r5, [sp, 0xC]
+ cmp r6, r5
+ bcs _080BBF6C
+ b _080BBE2C
+_080BBF6C:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
+_080BBF80: .4byte gSaveBlock1
+_080BBF84: .4byte gDecorations
+_080BBF88: .4byte gMapHeader
+_080BBF8C: .4byte gUnknown_0202E8CC
+_080BBF90: .4byte gUnknown_0202E8D0
+_080BBF94: .4byte gUnknown_0202E8D2
+_080BBF98: .4byte 0x00003f20
+_080BBF9C: .4byte gScriptResult
+_080BBFA0: .4byte gDecorations + 0x1C
+ thumb_func_end sub_80BBDD0
+
+ thumb_func_start sub_80BBFA4
+sub_80BBFA4: @ 80BBFA4
+ push {r4,r5,lr}
+ ldr r0, _080BBFCC
+ bl VarGet
+ ldr r5, _080BBFD0
+ ldr r4, _080BBFD4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl VarSet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBFCC: .4byte 0x00004054
+_080BBFD0: .4byte 0x0000401f
+_080BBFD4: .4byte gUnknown_083D13EC
+ thumb_func_end sub_80BBFA4
+
+ thumb_func_start sub_80BBFD8
+sub_80BBFD8: @ 80BBFD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r3, 0
+ ldrb r0, [r4, 0x3]
+ cmp r3, r0
+ bge _080BC030
+ ldr r6, _080BC01C
+_080BBFE8:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r4, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x8
+ bne _080BC020
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ ldr r0, [r2, 0x8]
+ strb r0, [r6]
+ b _080BC030
+ .align 2, 0
+_080BC01C: .4byte gUnknown_020387DC
+_080BC020:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ blt _080BBFE8
+_080BC030:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BBFD8
+
+ thumb_func_start sub_80BC038
+sub_80BC038: @ 80BC038
+ push {lr}
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ ldr r0, _080BC04C
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC04C: .4byte gUnknown_081A2E14
+ thumb_func_end sub_80BC038
+
+ thumb_func_start sub_80BC050
+sub_80BC050: @ 80BC050
+ push {lr}
+ bl sub_80BB5D0
+ bl sub_80BB5E4
+ ldr r0, _080BC068
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BC06C
+ movs r0, 0x1
+ b _080BC06E
+ .align 2, 0
+_080BC068: .4byte gScriptResult
+_080BC06C:
+ movs r0, 0
+_080BC06E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC050
+
+ thumb_func_start sub_80BC074
+sub_80BC074: @ 80BC074
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BC098
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BC0AC
+ cmp r0, 0x1
+ bgt _080BC09C
+ cmp r0, 0
+ beq _080BC0A2
+ b _080BC0E4
+ .align 2, 0
+_080BC098: .4byte gTasks
+_080BC09C:
+ cmp r0, 0x2
+ beq _080BC0C4
+ b _080BC0E4
+_080BC0A2:
+ bl ScriptContext2_Enable
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+_080BC0AC:
+ ldr r0, _080BC0C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BC0E4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+ .align 2, 0
+_080BC0C0: .4byte gPaletteFade
+_080BC0C4:
+ movs r0, 0x7E
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl warp_in
+ ldr r0, _080BC0EC
+ ldr r1, _080BC0F0
+ str r1, [r0]
+ ldr r0, _080BC0F4
+ bl SetMainCallback2
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_080BC0E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0EC: .4byte gUnknown_0300485C
+_080BC0F0: .4byte mapldr_default
+_080BC0F4: .4byte CB2_LoadMap
+ thumb_func_end sub_80BC074
+
+ thumb_func_start sub_80BC0F8
+sub_80BC0F8: @ 80BC0F8
+ push {lr}
+ ldr r0, _080BC110
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC110: .4byte sub_80BC074
+ thumb_func_end sub_80BC0F8
+
+ thumb_func_start sub_80BC114
+sub_80BC114: @ 80BC114
+ push {lr}
+ ldr r0, _080BC12C
+ ldr r1, _080BC130
+ adds r0, r1
+ ldr r1, _080BC134
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BC13C
+ ldr r1, _080BC138
+ movs r0, 0x1
+ b _080BC140
+ .align 2, 0
+_080BC12C: .4byte gSaveBlock1
+_080BC130: .4byte 0x00001a08
+_080BC134: .4byte gUnknown_020387DC
+_080BC138: .4byte gScriptResult
+_080BC13C:
+ ldr r1, _080BC148
+ movs r0, 0
+_080BC140:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC148: .4byte gScriptResult
+ thumb_func_end sub_80BC114
+
+ thumb_func_start sub_80BC14C
+sub_80BC14C: @ 80BC14C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r5, _080BC174
+ ldr r4, _080BC178
+_080BC158:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BC17C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BC18A
+ .align 2, 0
+_080BC174: .4byte gSaveBlock1
+_080BC178: .4byte 0x00001a08
+_080BC17C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC158
+ movs r0, 0
+_080BC18A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC14C
+
+ thumb_func_start sub_80BC190
+sub_80BC190: @ 80BC190
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 5
+ ldr r0, _080BC1C8
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, _080BC1CC
+ adds r0, r5, 0
+ bl StringAppend
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
+_080BC1CC: .4byte gOtherText_PlayersBase
+ thumb_func_end sub_80BC190
+
+ thumb_func_start GetSecretBaseMapName
+GetSecretBaseMapName: @ 80BC1D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ ldr r6, _080BC214
+ ldr r5, _080BC218
+ ldr r4, _080BC21C
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r5
+ ldr r0, _080BC220
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r6]
+ adds r0, r4, 0
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_80BC190
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC214: .4byte gUnknown_020387DC
+_080BC218: .4byte gSaveBlock1
+_080BC21C: .4byte 0x00004054
+_080BC220: .4byte 0x00001a08
+ thumb_func_end GetSecretBaseMapName
+
+ thumb_func_start sub_80BC224
+sub_80BC224: @ 80BC224
+ push {r4,r5,lr}
+ ldr r0, _080BC25C
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ ldr r0, _080BC260
+ adds r4, r0
+ ldr r5, _080BC264
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC25C: .4byte 0x00004054
+_080BC260: .4byte gSaveBlock1 + 0x1A0A
+_080BC264: .4byte gStringVar1
+ thumb_func_end sub_80BC224
+
+ thumb_func_start sub_80BC268
+sub_80BC268: @ 80BC268
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC288
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC28C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 6
+ cmp r0, 0
+ bne _080BC290
+ movs r0, 0
+ b _080BC292
+ .align 2, 0
+_080BC288: .4byte gSaveBlock1
+_080BC28C: .4byte 0x00001a09
+_080BC290:
+ movs r0, 0x1
+_080BC292:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC268
+
+ thumb_func_start sub_80BC298
+sub_80BC298: @ 80BC298
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1F
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC298
+
+ thumb_func_start sub_80BC300
+sub_80BC300: @ 80BC300
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ mov r9, r6
+_080BC314:
+ movs r4, 0
+ lsls r3, r6, 2
+ lsls r2, r6, 1
+ ldr r7, _080BC424
+ adds r1, r6, 0x1
+ str r1, [sp]
+ adds r1, r3, 0
+_080BC322:
+ adds r0, r1, r4
+ lsls r0, 1
+ ldr r5, _080BC428
+ adds r0, r5, r0
+ mov r5, r9
+ strh r5, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080BC322
+ ldr r1, _080BC42C
+ adds r0, r1, r2
+ strh r5, [r0]
+ ldr r5, _080BC430
+ adds r0, r5, r2
+ mov r1, r9
+ strh r1, [r0]
+ ldr r2, _080BC434
+ adds r0, r2, r6
+ mov r5, r9
+ strb r5, [r0]
+ ldr r1, _080BC438
+ adds r0, r1, r3
+ mov r2, r9
+ str r2, [r0]
+ ldr r3, _080BC43C
+ adds r0, r3, r6
+ strb r2, [r0]
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ adds r4, r5, r7
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080BC408
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080BC408
+ movs r4, 0
+ mov r0, r10
+ lsls r0, 2
+ mov r8, r0
+ mov r1, r10
+ lsls r7, r1, 1
+ adds r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r2, _080BC424
+_080BC38E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, r2
+ str r2, [sp, 0x8]
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r4
+ lsls r1, 1
+ ldr r3, _080BC428
+ adds r1, r3, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r4, 0x3
+ bls _080BC38E
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080BC424
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r5, _080BC42C
+ adds r1, r5, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ ldr r2, _080BC430
+ adds r1, r2, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, _080BC434
+ add r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _080BC438
+ add r1, r8
+ str r0, [r1]
+ adds r0, r4, 0
+ bl sub_80BC298
+ ldr r1, _080BC43C
+ add r1, r10
+ strb r0, [r1]
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r10, r0
+_080BC408:
+ ldr r5, [sp]
+ lsls r0, r5, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080BC314
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC424: .4byte gPlayerParty
+_080BC428: .4byte gSaveBlock1 + 0x1A54
+_080BC42C: .4byte gSaveBlock1 + 0x1A84
+_080BC430: .4byte gSaveBlock1 + 0x1A90
+_080BC434: .4byte gSaveBlock1 + 0x1A9C
+_080BC438: .4byte gSaveBlock1 + 0x1A3C
+_080BC43C: .4byte gSaveBlock1 + 0x1AA2
+ thumb_func_end sub_80BC300
+
+ thumb_func_start sub_80BC440
+sub_80BC440: @ 80BC440
+ push {r4,r5,lr}
+ ldr r4, _080BC45C
+ ldr r0, _080BC460
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ bl sub_80BC0F8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC45C: .4byte gSaveBlock1
+_080BC460: .4byte 0x00001a16
+ thumb_func_end sub_80BC440
+
+ thumb_func_start sub_80BC464
+sub_80BC464: @ 80BC464
+ push {lr}
+ movs r0, 0x14
+ bl sav12_xor_increment
+ bl sub_80BC440
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC464
+
+ thumb_func_start sub_80BC474
+sub_80BC474: @ 80BC474
+ push {r4-r7,lr}
+ ldr r0, _080BC4CC
+ ldr r4, [r0, 0x4]
+ movs r6, 0
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcs _080BC504
+ ldr r3, _080BC4D0
+_080BC484:
+ ldr r2, [r4, 0x10]
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ adds r7, r1, 0
+ cmp r0, 0x8
+ bne _080BC4F8
+ ldrb r1, [r3]
+ ldr r0, [r2, 0x8]
+ cmp r1, r0
+ bne _080BC4F8
+ ldrh r0, [r2]
+ adds r0, 0x7
+ ldrh r1, [r2, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0
+ ldr r5, _080BC4D4
+ lsls r0, 16
+ asrs r2, r0, 16
+_080BC4B2:
+ lsls r0, r1, 2
+ adds r3, r0, r5
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ beq _080BC4D8
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x6
+ bls _080BC4B2
+_080BC4C6:
+ bl DrawWholeMapView
+ b _080BC504
+ .align 2, 0
+_080BC4CC: .4byte gMapHeader
+_080BC4D0: .4byte gSaveBlock1 + 0x1A08
+_080BC4D4: .4byte gUnknown_083D1358
+_080BC4D8:
+ ldr r0, [r4, 0x10]
+ adds r1, r7, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r3]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BC4C6
+_080BC4F8:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcc _080BC484
+_080BC504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC474
+
+ thumb_func_start sub_80BC50C
+sub_80BC50C: @ 80BC50C
+ push {r4,r5,lr}
+ bl sub_80BC474
+ movs r0, 0x14
+ bl sav12_xor_increment
+ ldr r4, _080BC530
+ ldr r0, _080BC534
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC530: .4byte gSaveBlock1
+_080BC534: .4byte 0x00001a16
+ thumb_func_end sub_80BC50C
+
+ thumb_func_start sub_80BC538
+sub_80BC538: @ 80BC538
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0x1
+_080BC53E:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC554
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC554:
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC53E
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC538
+
+ thumb_func_start sub_80BC56C
+sub_80BC56C: @ 80BC56C
+ push {lr}
+ ldr r0, _080BC58C
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080BC594
+ ldr r0, _080BC590
+ strh r1, [r0]
+ b _080BC5B2
+ .align 2, 0
+_080BC58C: .4byte gUnknown_020387DC
+_080BC590: .4byte gScriptResult
+_080BC594:
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080BC5AC
+ ldr r1, _080BC5A8
+ movs r0, 0x2
+ b _080BC5B0
+ .align 2, 0
+_080BC5A8: .4byte gScriptResult
+_080BC5AC:
+ ldr r1, _080BC5B8
+ movs r0, 0
+_080BC5B0:
+ strh r0, [r1]
+_080BC5B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5B8: .4byte gScriptResult
+ thumb_func_end sub_80BC56C
+
+ thumb_func_start sub_80BC5BC
+sub_80BC5BC: @ 80BC5BC
+ push {lr}
+ ldr r0, _080BC5F8
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ ldr r2, _080BC5FC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC600
+ adds r1, r0
+ ldrb r3, [r1]
+ lsrs r2, r3, 6
+ movs r0, 0x1
+ eors r2, r0
+ lsls r2, 6
+ movs r0, 0x3F
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r0, 0x86
+ lsls r0, 1
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5F8: .4byte gUnknown_020387DC
+_080BC5FC: .4byte gSaveBlock1
+_080BC600: .4byte 0x00001a09
+ thumb_func_end sub_80BC5BC
+
+ thumb_func_start sub_80BC604
+sub_80BC604: @ 80BC604
+ push {lr}
+ ldr r0, _080BC614
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC614: .4byte sub_80FE264
+ thumb_func_end sub_80BC604
+
+ thumb_func_start sub_80BC618
+sub_80BC618: @ 80BC618
+ push {lr}
+ ldr r0, _080BC628
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC628: .4byte sub_80BC62C
+ thumb_func_end sub_80BC618
+
+ thumb_func_start sub_80BC62C
+sub_80BC62C: @ 80BC62C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl ScriptContext2_Enable
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC688
+ adds r4, r0, r1
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080BC694
+ cmp r1, 0x7
+ ble _080BC65E
+ movs r0, 0x7
+_080BC65E:
+ strh r0, [r4, 0x6]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ ldr r1, _080BC68C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC690
+ str r1, [r0]
+ b _080BC6A0
+ .align 2, 0
+_080BC688: .4byte gUnknown_03004B28
+_080BC68C: .4byte gTasks
+_080BC690: .4byte sub_80BC824
+_080BC694:
+ ldr r1, _080BC6A8
+ ldr r2, _080BC6AC
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080BC6A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC6A8: .4byte gSecretBaseText_NoRegistry
+_080BC6AC: .4byte sub_80BCC54
+ thumb_func_end sub_80BC62C
+
+ thumb_func_start sub_80BC6B0
+sub_80BC6B0: @ 80BC6B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BC6D8
+ adds r1, r0
+ mov r8, r1
+ movs r4, 0
+ movs r6, 0
+ movs r5, 0x1
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r6, r0
+ bne _080BC6DC
+ movs r4, 0x1
+ b _080BC706
+ .align 2, 0
+_080BC6D8: .4byte gUnknown_03004B28
+_080BC6DC:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC6F0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BC6F0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bhi _080BC706
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r4, r0
+ bne _080BC6DC
+ adds r4, r5, 0
+_080BC706:
+ adds r5, r4, 0
+ cmp r5, 0x13
+ bhi _080BC75A
+ ldr r7, _080BC7A0
+_080BC70E:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC750
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80BC190
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r7, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x8
+ beq _080BC75A
+_080BC750:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BC70E
+_080BC75A:
+ cmp r6, 0x7
+ bhi _080BC7A8
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080BC7A4
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r6, 0x7
+ beq _080BC7B2
+ lsls r1, r6, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x12
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ b _080BC7B2
+ .align 2, 0
+_080BC7A0: .4byte gStringVar1
+_080BC7A4: .4byte gUnknownText_Exit
+_080BC7A8:
+ movs r0, 0x1
+ movs r1, 0xBC
+ movs r2, 0x98
+ bl sub_80F953C
+_080BC7B2:
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BC7C4
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ b _080BC7CE
+_080BC7C4:
+ movs r0, 0
+ movs r1, 0xBC
+ movs r2, 0x8
+ bl sub_80F953C
+_080BC7CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC6B0
+
+ thumb_func_start sub_80BC7D8
+sub_80BC7D8: @ 80BC7D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BC820
+ adds r4, r0
+ movs r0, 0x11
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldrb r3, [r4, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC820: .4byte gUnknown_03004B28
+ thumb_func_end sub_80BC7D8
+
+ thumb_func_start sub_80BC824
+sub_80BC824: @ 80BC824
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC858
+ adds r4, r0, r1
+ ldr r2, _080BC85C
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC874
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BC860
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080BC8B6
+ .align 2, 0
+_080BC858: .4byte gUnknown_03004B28
+_080BC85C: .4byte gMain
+_080BC860:
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ b _080BC8A4
+_080BC874:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC8C2
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080BC8AE
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+_080BC8A4:
+ strh r0, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ b _080BC940
+_080BC8AE:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080BC8B6:
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2]
+ b _080BC940
+_080BC8C2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC91C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080BC8FC
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BCC54
+ b _080BC940
+_080BC8FC:
+ bl sub_8072DEC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC948
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl sub_80BC980
+ b _080BC940
+_080BC91C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_80BCC54
+_080BC940:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC824
+
+ thumb_func_start sub_80BC948
+sub_80BC948: @ 80BC948
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0x1
+_080BC952:
+ adds r0, r4, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC96E
+ cmp r6, r5
+ bne _080BC968
+ adds r0, r4, 0
+ b _080BC97A
+_080BC968:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC96E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _080BC952
+ movs r0, 0
+_080BC97A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC948
+
+ thumb_func_start sub_80BC980
+sub_80BC980: @ 80BC980
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r3, _080BC9D8
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x2
+ bl InitMenu
+ ldr r1, _080BC9DC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC9E0
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC9D8: .4byte gUnknown_083D13D4
+_080BC9DC: .4byte gTasks
+_080BC9E0: .4byte sub_80BC9E4
+ thumb_func_end sub_80BC980
+
+ thumb_func_start sub_80BC9E4
+sub_80BC9E4: @ 80BC9E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _080BCA14
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA18
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080BCA7C
+ .align 2, 0
+_080BCA14: .4byte gMain
+_080BCA18:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA3A
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080BCA7C
+_080BCA3A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080BCA64
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 21
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _080BCA7C
+ .align 2, 0
+_080BCA64: .4byte gUnknown_083D13D4
+_080BCA68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80BCBF8
+_080BCA7C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC9E4
+
+ thumb_func_start sub_80BCA84
+sub_80BCA84: @ 80BCA84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BCAD8
+ adds r4, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _080BCADC
+ ldrb r1, [r4, 0x8]
+ bl sub_80BC190
+ ldr r4, _080BCAE0
+ ldr r1, _080BCAE4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080BCAE8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCAD8: .4byte gUnknown_03004B28
+_080BCADC: .4byte gStringVar1
+_080BCAE0: .4byte gStringVar4
+_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
+_080BCAE8: .4byte sub_80BCAEC
+ thumb_func_end sub_80BCA84
+
+ thumb_func_start sub_80BCAEC
+sub_80BCAEC: @ 80BCAEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _080BCB0C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB0C: .4byte gUnknown_083D13E4
+ thumb_func_end sub_80BCAEC
+
+ thumb_func_start sub_80BCB10
+sub_80BCB10: @ 80BCB10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _080BCB80
+ adds r4, r6, r7
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _080BCB84
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r2
+ ldr r1, _080BCB88
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldrh r1, [r4, 0x4]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080BCB5C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x4]
+_080BCB5C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bgt _080BCB6A
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+_080BCB6A:
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _080BCB8C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB80: .4byte gUnknown_03004B28
+_080BCB84: .4byte gSaveBlock1
+_080BCB88: .4byte 0x00001a09
+_080BCB8C: .4byte sub_80BC824
+ thumb_func_end sub_80BCB10
+
+ thumb_func_start sub_80BCB90
+sub_80BCB90: @ 80BCB90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BCBB8
+ ldr r2, _080BCBBC
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
+_080BCBBC: .4byte sub_80BCB10
+ thumb_func_end sub_80BCB90
+
+ thumb_func_start sub_80BCBC0
+sub_80BCBC0: @ 80BCBC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80BC7D8
+ ldr r1, _080BCBF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BCBF4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBF0: .4byte gTasks
+_080BCBF4: .4byte sub_80BC824
+ thumb_func_end sub_80BCBC0
+
+ thumb_func_start sub_80BCBF8
+sub_80BCBF8: @ 80BCBF8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, _080BCC4C
+ adds r0, r4, r5
+ ldrb r3, [r0, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r0, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ subs r5, 0x8
+ adds r4, r5
+ ldr r0, _080BCC50
+ str r0, [r4]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCC4C: .4byte gUnknown_03004B28
+_080BCC50: .4byte sub_80BC824
+ thumb_func_end sub_80BCBF8
+
+ thumb_func_start sub_80BCC54
+sub_80BCC54: @ 80BCC54
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BCC84
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r4, 0
+ bne _080BCC8C
+ ldr r0, _080BCC88
+ bl ScriptContext1_SetupScript
+ b _080BCC92
+ .align 2, 0
+_080BCC84: .4byte 0x00004054
+_080BCC88: .4byte gUnknown_0815F399
+_080BCC8C:
+ ldr r0, _080BCCA0
+ bl ScriptContext1_SetupScript
+_080BCC92:
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCCA0: .4byte gUnknown_0815F49A
+ thumb_func_end sub_80BCC54
+
+ thumb_func_start sub_80BCCA4
+sub_80BCCA4: @ 80BCCA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BCCDC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r1
+ ldr r1, _080BCCE0
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r1, 0x5
+ bl __umodsi3
+ ldr r1, _080BCCE4
+ adds r4, r1
+ ldrb r2, [r4]
+ lsls r2, 27
+ lsrs r2, 31
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCCDC: .4byte gSaveBlock1
+_080BCCE0: .4byte 0x00001a11
+_080BCCE4: .4byte 0x00001a09
+ thumb_func_end sub_80BCCA4
+
+ thumb_func_start sub_80BCCE8
+sub_80BCCE8: @ 80BCCE8
+ push {lr}
+ ldr r0, _080BCD08
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ bne _080BCD10
+ ldr r0, _080BCD0C
+ b _080BCD72
+ .align 2, 0
+_080BCD08: .4byte 0x00004054
+_080BCD0C: .4byte UnknownString_81A1BB2
+_080BCD10:
+ cmp r0, 0x1
+ bne _080BCD1C
+ ldr r0, _080BCD18
+ b _080BCD72
+ .align 2, 0
+_080BCD18: .4byte UnknownString_81A1F67
+_080BCD1C:
+ cmp r0, 0x2
+ bne _080BCD28
+ ldr r0, _080BCD24
+ b _080BCD72
+ .align 2, 0
+_080BCD24: .4byte UnknownString_81A2254
+_080BCD28:
+ cmp r0, 0x3
+ bne _080BCD34
+ ldr r0, _080BCD30
+ b _080BCD72
+ .align 2, 0
+_080BCD30: .4byte UnknownString_81A25C3
+_080BCD34:
+ cmp r0, 0x4
+ bne _080BCD40
+ ldr r0, _080BCD3C
+ b _080BCD72
+ .align 2, 0
+_080BCD3C: .4byte UnknownString_81A2925
+_080BCD40:
+ cmp r0, 0x5
+ bne _080BCD4C
+ ldr r0, _080BCD48
+ b _080BCD72
+ .align 2, 0
+_080BCD48: .4byte UnknownString_81A1D74
+_080BCD4C:
+ cmp r0, 0x6
+ bne _080BCD58
+ ldr r0, _080BCD54
+ b _080BCD72
+ .align 2, 0
+_080BCD54: .4byte UnknownString_81A20C9
+_080BCD58:
+ cmp r0, 0x7
+ bne _080BCD64
+ ldr r0, _080BCD60
+ b _080BCD72
+ .align 2, 0
+_080BCD60: .4byte UnknownString_81A2439
+_080BCD64:
+ cmp r1, 0x8
+ beq _080BCD70
+ ldr r0, _080BCD6C
+ b _080BCD72
+ .align 2, 0
+_080BCD6C: .4byte UnknownString_81A2B2A
+_080BCD70:
+ ldr r0, _080BCD78
+_080BCD72:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCD78: .4byte UnknownString_81A2754
+ thumb_func_end sub_80BCCE8
+
+ thumb_func_start unref_sub_80BCD7C
+unref_sub_80BCD7C: @ 80BCD7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ ldr r7, _080BCDFC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 5
+ ldr r0, _080BCE00
+ adds r0, r7
+ mov r10, r0
+ ldr r1, _080BCE04
+ adds r1, r7
+ mov r9, r1
+ ldr r2, _080BCE08
+ adds r2, r7
+ mov r8, r2
+ ldr r0, _080BCE0C
+ mov r12, r0
+_080BCDAA:
+ lsls r4, r5, 2
+ adds r0, r4, r6
+ add r0, r10
+ adds r3, r5, 0x1
+ str r3, [r0]
+ lsls r0, r5, 3
+ adds r0, r6
+ add r0, r9
+ strh r3, [r0]
+ lsls r1, r5, 1
+ adds r1, r6
+ mov r2, r8
+ adds r0, r1, r2
+ mov r2, r12
+ strh r2, [r0]
+ ldr r2, _080BCE10
+ adds r0, r7, r2
+ adds r1, r0
+ strh r3, [r1]
+ adds r2, r5, r6
+ ldr r1, _080BCE14
+ adds r0, r7, r1
+ adds r0, r2, r0
+ adds r1, r5, 0x5
+ strb r1, [r0]
+ ldr r1, _080BCE18
+ adds r0, r7, r1
+ adds r2, r0
+ adds r4, r5
+ strb r4, [r2]
+ lsls r3, 16
+ lsrs r5, r3, 16
+ cmp r5, 0
+ beq _080BCDAA
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCDFC: .4byte gSaveBlock1
+_080BCE00: .4byte 0x00001a3c
+_080BCE04: .4byte 0x00001a54
+_080BCE08: .4byte 0x00001a84
+_080BCE0C: .4byte 0x00000115
+_080BCE10: .4byte 0x00001a90
+_080BCE14: .4byte 0x00001a9c
+_080BCE18: .4byte 0x00001aa2
+ thumb_func_end unref_sub_80BCD7C
+
+ thumb_func_start sub_80BCE1C
+sub_80BCE1C: @ 80BCE1C
+ push {r4,lr}
+ ldr r0, _080BCE44
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x1
+ bl sub_810FB10
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ ldr r1, _080BCE48
+ adds r0, r1
+ bl CreateSecretBaseEnemyParty
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE44: .4byte 0x00004054
+_080BCE48: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BCE1C
+
+ thumb_func_start sub_80BCE4C
+sub_80BCE4C: @ 80BCE4C
+ push {lr}
+ ldr r0, _080BCE80
+ bl VarGet
+ ldr r2, _080BCE84
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BCE88
+ ldrb r0, [r0]
+ ldr r2, _080BCE8C
+ adds r1, r2
+ movs r2, 0x1
+ ands r2, r0
+ lsls r2, 5
+ ldrb r3, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE80: .4byte 0x00004054
+_080BCE84: .4byte gSaveBlock1
+_080BCE88: .4byte gScriptResult
+_080BCE8C: .4byte 0x00001a09
+ thumb_func_end sub_80BCE4C
+
+ thumb_func_start sub_80BCE90
+sub_80BCE90: @ 80BCE90
+ push {r4-r7,lr}
+ ldr r0, _080BCF04
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080BCF08
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BCED4
+ movs r3, 0
+ ldr r7, _080BCF0C
+ ldr r4, _080BCF10
+ movs r6, 0x21
+ negs r6, r6
+_080BCEB2:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 5
+ adds r1, r7
+ adds r1, r4
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x13
+ bls _080BCEB2
+ ldr r0, _080BCF08
+ bl FlagSet
+_080BCED4:
+ ldr r4, _080BCF14
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r2, _080BCF18
+ ldr r1, _080BCF0C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BCF10
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 31
+ strh r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCF04: .4byte 0x00004054
+_080BCF08: .4byte 0x000008c2
+_080BCF0C: .4byte gSaveBlock1
+_080BCF10: .4byte 0x00001a09
+_080BCF14: .4byte gUnknown_0202E8CC
+_080BCF18: .4byte gScriptResult
+ thumb_func_end sub_80BCE90
+
+ thumb_func_start sub_80BCF1C
+sub_80BCF1C: @ 80BCF1C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BCF40
+ adds r4, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BCF54
+ cmp r0, 0x1
+ bgt _080BCF44
+ cmp r0, 0
+ beq _080BCF4A
+ b _080BD02C
+ .align 2, 0
+_080BCF40: .4byte gUnknown_03004B28
+_080BCF44:
+ cmp r0, 0x2
+ beq _080BD01C
+ b _080BD02C
+_080BCF4A:
+ adds r0, r4, 0x4
+ adds r1, r4, 0x6
+ bl PlayerGetDestCoords
+ b _080BD028
+_080BCF54:
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080BCF7C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _080BD02C
+_080BCF7C:
+ strh r2, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFA8
+ bl sub_80C6C90
+ b _080BD02C
+_080BCFA8:
+ adds r0, r4, 0
+ bl sub_8057314
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFD8
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ bl sub_80C68A4
+ b _080BD02C
+_080BCFD8:
+ adds r0, r4, 0
+ bl sub_8057328
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFF6
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80C6A54
+ b _080BD02C
+_080BCFF6:
+ adds r0, r4, 0
+ bl sub_805733C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD02C
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80C6C30
+ b _080BD02C
+_080BD01C:
+ ldrb r0, [r4, 0x8]
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD02C
+_080BD028:
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+_080BD02C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BCF1C
+
+ thumb_func_start sub_80BD034
+sub_80BD034: @ 80BD034
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BD064
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r2
+ ldr r2, _080BD068
+ adds r0, r4, r2
+ movs r2, 0xA0
+ bl memcpy
+ ldr r0, _080BD06C
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD064: .4byte gSaveBlock1
+_080BD068: .4byte 0x00001a08
+_080BD06C: .4byte 0x00001a09
+ thumb_func_end sub_80BD034
+
+ thumb_func_start sub_80BD070
+sub_80BD070: @ 80BD070
+ push {r4,lr}
+ movs r2, 0
+ adds r4, r0, 0
+ adds r4, 0x9
+ adds r3, r1, 0
+ adds r3, 0x9
+_080BD07C:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD08C
+ movs r0, 0
+ b _080BD098
+_080BD08C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD07C
+ movs r0, 0x1
+_080BD098:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD070
+
+ thumb_func_start sub_80BD0A0
+sub_80BD0A0: @ 80BD0A0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r3, 0
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080BD0E2
+_080BD0B4:
+ adds r2, r6, 0x2
+ adds r0, r2, r3
+ adds r4, r5, 0x2
+ adds r1, r4, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD0C8
+ movs r0, 0
+ b _080BD0E4
+_080BD0C8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bhi _080BD0E2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+_080BD0E2:
+ movs r0, 0x1
+_080BD0E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0A0
+
+ thumb_func_start sub_80BD0EC
+sub_80BD0EC: @ 80BD0EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r2, [r4, 0x1]
+ movs r0, 0x10
+ adds r1, r0, 0
+ ands r1, r2
+ ldrb r2, [r5, 0x1]
+ ands r0, r2
+ cmp r1, r0
+ bne _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD070
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD0A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ movs r0, 0x1
+ b _080BD124
+_080BD122:
+ movs r0, 0
+_080BD124:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0EC
+
+ thumb_func_start sub_80BD12C
+sub_80BD12C: @ 80BD12C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r4, _080BD150
+ ldr r3, _080BD154
+_080BD138:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BD158
+ adds r0, r1, 0
+ b _080BD168
+ .align 2, 0
+_080BD150: .4byte gSaveBlock1
+_080BD154: .4byte 0x00001a08
+_080BD158:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD138
+ movs r0, 0x1
+ negs r0, r0
+_080BD168:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD12C
+
+ thumb_func_start sub_80BD170
+sub_80BD170: @ 80BD170
+ push {r4,lr}
+ movs r2, 0x1
+ ldr r4, _080BD194
+ ldr r3, _080BD198
+_080BD178:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD19C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BD1AA
+ .align 2, 0
+_080BD194: .4byte gSaveBlock1
+_080BD198: .4byte 0x00001a08
+_080BD19C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD178
+ movs r0, 0
+_080BD1AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD170
+
+ thumb_func_start sub_80BD1B0
+sub_80BD1B0: @ 80BD1B0
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r4, _080BD1DC
+_080BD1B6:
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BD1E0
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 6
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ b _080BD1F4
+ .align 2, 0
+_080BD1DC: .4byte gSaveBlock1
+_080BD1E0: .4byte 0x00001a09
+_080BD1E4:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r2, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD1B6
+ movs r0, 0
+_080BD1F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1B0
+
+ thumb_func_start sub_80BD1FC
+sub_80BD1FC: @ 80BD1FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD278
+ ldrb r0, [r5]
+ bl sub_80BD12C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ beq _080BD278
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _080BD254
+ ldr r0, _080BD24C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 5
+ adds r1, r0
+ ldr r0, _080BD250
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ beq _080BD278
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD246
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080BD278
+_080BD246:
+ lsls r4, 24
+ lsrs r4, 24
+ b _080BD26C
+ .align 2, 0
+_080BD24C: .4byte gSaveBlock1
+_080BD250: .4byte 0x00001a09
+_080BD254:
+ bl sub_80BD170
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BD26C
+ bl sub_80BD1B0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080BD278
+_080BD26C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD034
+ adds r0, r4, 0
+ b _080BD27A
+_080BD278:
+ movs r0, 0
+_080BD27A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1FC
+
+ thumb_func_start sub_80BD280
+sub_80BD280: @ 80BD280
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xA0
+ ldr r0, _080BD324
+ mov r8, r0
+ movs r2, 0x1
+_080BD290:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r9, r1
+ cmp r5, 0x13
+ bhi _080BD30C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ mov r1, r8
+ adds r6, r0, r1
+ movs r7, 0xC0
+_080BD2A8:
+ ldrb r0, [r6, 0x1]
+ adds r3, r7, 0
+ ands r3, r0
+ cmp r3, 0
+ bne _080BD2C6
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x40
+ beq _080BD2DE
+_080BD2C6:
+ cmp r3, 0x80
+ bne _080BD302
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x80
+ beq _080BD302
+_080BD2DE:
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r4, r5
+ lsls r4, 5
+ add r4, r8
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xA0
+ bl memcpy
+_080BD302:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD2A8
+_080BD30C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bls _080BD290
+ add sp, 0xA0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD324: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD280
+
+ thumb_func_start sub_80BD328
+sub_80BD328: @ 80BD328
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r4, 0x1
+_080BD332:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x1]
+ lsrs r0, 6
+ cmp r0, r5
+ bne _080BD348
+ adds r0, r1, 0
+ bl sub_80BD1FC
+_080BD348:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BD332
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD328
+
+ thumb_func_start sub_80BD358
+sub_80BD358: @ 80BD358
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD372
+ ldrb r0, [r5, 0x1]
+ lsls r0, 27
+ ldr r1, _080BD378
+ lsrs r0, 31
+ adds r4, r1, 0
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ beq _080BD37C
+_080BD372:
+ movs r0, 0
+ b _080BD3D4
+ .align 2, 0
+_080BD378: .4byte gSaveBlock2
+_080BD37C:
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x9
+ adds r6, r4, 0
+ adds r6, 0xA
+_080BD386:
+ adds r0, r3, r2
+ adds r1, r2, r6
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD386
+ movs r2, 0
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080BD3D2
+_080BD3AA:
+ adds r3, r5, 0x2
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x6
+ bhi _080BD3D2
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+_080BD3D2:
+ movs r0, 0x1
+_080BD3D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD358
+
+ thumb_func_start sub_80BD3DC
+sub_80BD3DC: @ 80BD3DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ movs r5, 0
+ movs r6, 0
+_080BD3F0:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD41A
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r10
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD41A
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ orrs r5, r0
+_080BD41A:
+ movs r7, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD448
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD448
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD448:
+ movs r7, 0x4
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD476
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD476
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD476:
+ cmp r5, 0x7
+ beq _080BD484
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x13
+ bls _080BD3F0
+_080BD484:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD3DC
+
+ thumb_func_start sub_80BD494
+sub_80BD494: @ 80BD494
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r5, 0
+_080BD4A4:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD4FE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80BD0EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD4FE
+ cmp r7, 0
+ bne _080BD4D0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4D0:
+ ldrh r0, [r6, 0xE]
+ ldrh r3, [r4, 0xE]
+ cmp r0, r3
+ bls _080BD4E0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4E0:
+ ldrb r0, [r6, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x10
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ adds r0, r6, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ b _080BD50A
+_080BD4FE:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD4A4
+_080BD508:
+ movs r0, 0
+_080BD50A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD494
+
+ thumb_func_start sub_80BD514
+sub_80BD514: @ 80BD514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ movs r5, 0x1
+_080BD526:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD578
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080BD54E
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+_080BD54E:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD578:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD526
+ movs r5, 0
+_080BD584:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r4, r0, r7
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD5B8
+ ldrb r0, [r4, 0x1]
+ movs r2, 0x21
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD5B8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5B8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD584
+ movs r5, 0
+ movs r0, 0x21
+ negs r0, r0
+ adds r7, r0, 0
+_080BD5CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r4, r0, 5
+ mov r2, r8
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5EA
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5EA:
+ adds r1, r4, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5F8
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+_080BD5F8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD5CA
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD514
+
+ thumb_func_start sub_80BD610
+sub_80BD610: @ 80BD610
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl sub_80BD3DC
+ ldr r0, _080BD670
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80BD514
+ adds r0, r4, 0
+ bl sub_80BD1FC
+ adds r0, r5, 0
+ bl sub_80BD1FC
+ adds r0, r6, 0
+ bl sub_80BD1FC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80BD328
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD670: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD610
+
+ thumb_func_start sub_80BD674
+sub_80BD674: @ 80BD674
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0x60
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD68C
+ b _080BD790
+_080BD68C:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080BD69E
+ cmp r0, 0x3
+ beq _080BD6BA
+ b _080BD6C8
+_080BD69E:
+ lsls r4, r5, 1
+ adds r0, r6, r4
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r4, r5
+ adds r4, r6, r4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ b _080BD6C8
+_080BD6BA:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+_080BD6C8:
+ cmp r7, 0x1
+ beq _080BD6F0
+ cmp r7, 0x1
+ bgt _080BD6D6
+ cmp r7, 0
+ beq _080BD6E0
+ b _080BD71C
+_080BD6D6:
+ cmp r7, 0x2
+ beq _080BD700
+ cmp r7, 0x3
+ beq _080BD710
+ b _080BD71C
+_080BD6E0:
+ adds r0, r6, r5
+ lsls r2, r5, 1
+ adds r1, r6, r2
+ adds r2, r5
+ adds r2, r6, r2
+ bl sub_80BD610
+ b _080BD71C
+_080BD6F0:
+ lsls r1, r5, 1
+ adds r0, r6, r1
+ adds r1, r5
+ adds r1, r6, r1
+ adds r2, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD700:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ adds r2, r6, r5
+ adds r1, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD710:
+ adds r1, r6, r5
+ lsls r2, r5, 1
+ adds r2, r6, r2
+ adds r0, r6, 0
+ bl sub_80BD610
+_080BD71C:
+ movs r3, 0x1
+ ldr r6, _080BD798
+ movs r5, 0x10
+ negs r5, r5
+ ldr r4, _080BD79C
+_080BD726:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r6
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ bne _080BD746
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ ands r0, r5
+ strb r0, [r2]
+_080BD746:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD726
+ bl sub_80BD280
+ movs r3, 0x1
+ ldr r4, _080BD798
+ ldr r6, _080BD79C
+ adds r7, r4, 0
+ movs r5, 0x3F
+_080BD75E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r4
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD776
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2]
+_080BD776:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD75E
+ ldr r0, _080BD7A0
+ adds r2, r7, r0
+ ldrh r1, [r2]
+ ldr r0, _080BD7A4
+ cmp r1, r0
+ beq _080BD790
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_080BD790:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD798: .4byte gSaveBlock1
+_080BD79C: .4byte 0x00001a09
+_080BD7A0: .4byte 0x00001a16
+_080BD7A4: .4byte 0x0000ffff
+ thumb_func_end sub_80BD674
+
+ thumb_func_start sub_80BD7A8
+sub_80BD7A8: @ 80BD7A8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r6, _080BD7F0
+ movs r4, 0
+ ldr r0, _080BD7F4
+ adds r5, r6, r0
+_080BD7B4:
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 2
+ adds r1, r2, r6
+ ldr r7, _080BD7F8
+ adds r0, r1, r7
+ strb r4, [r0]
+ ldr r0, _080BD7FC
+ adds r1, r0
+ strb r4, [r1]
+ movs r1, 0
+ adds r3, 0x1
+_080BD7CC:
+ adds r0, r1, r2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BD7CC
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x18
+ bls _080BD7B4
+ bl sub_80BEBF4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD7F0: .4byte gSaveBlock1
+_080BD7F4: .4byte 0x0000273a
+_080BD7F8: .4byte 0x00002738
+_080BD7FC: .4byte 0x00002739
+ thumb_func_end sub_80BD7A8
+
+ thumb_func_start special_0x44
+special_0x44: @ 80BD800
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0x5
+ ldr r1, _080BD874
+ ldr r2, _080BD878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BD834
+ adds r2, r1, 0
+ ldr r1, _080BD87C
+_080BD81A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bhi _080BD834
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD81A
+_080BD834:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ ldr r7, _080BD874
+ ldr r0, _080BD87C
+ adds r0, r7
+ mov r9, r0
+_080BD850:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r6, r0, 2
+ adds r5, r6, r7
+ ldr r1, _080BD87C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _080BD884
+ ldr r2, _080BD880
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ b _080BD890
+ .align 2, 0
+_080BD874: .4byte gSaveBlock1
+_080BD878: .4byte 0x000027ec
+_080BD87C: .4byte 0x00002738
+_080BD880: .4byte 0x00002739
+_080BD884:
+ mov r0, r9
+ adds r1, r6, r0
+ ldrh r0, [r1, 0x16]
+ cmp r0, 0
+ bne _080BD898
+ ldrb r0, [r1, 0x1]
+_080BD890:
+ cmp r0, 0x1
+ bne _080BD898
+ adds r0, r4, 0
+ b _080BD8AC
+_080BD898:
+ cmp r4, 0
+ bne _080BD8A0
+ movs r4, 0x17
+ b _080BD8A6
+_080BD8A0:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BD8A6:
+ cmp r4, r8
+ bne _080BD850
+ movs r0, 0xFF
+_080BD8AC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x44
+
+ thumb_func_start sub_80BD8B8
+sub_80BD8B8: @ 80BD8B8
+ push {lr}
+ bl special_0x44
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BD8CA
+ movs r0, 0xFF
+ b _080BD902
+_080BD8CA:
+ ldr r2, _080BD8F4
+ ldr r3, _080BD8F8
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BD900
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, _080BD8FC
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BD900
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BD902
+ .align 2, 0
+_080BD8F4: .4byte gSaveBlock1
+_080BD8F8: .4byte 0x00002afc
+_080BD8FC: .4byte 0x00002738
+_080BD900:
+ adds r0, r1, 0
+_080BD902:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD8B8
+
+ thumb_func_start UpdateTVScreensOnMap
+UpdateTVScreensOnMap: @ 80BD908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, _080BD938
+ bl FlagSet
+ bl CheckForBigMovieOrEmergencyNewsOnTV
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BD92C
+ cmp r0, 0x2
+ beq _080BD97E
+ ldr r0, _080BD93C
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0xD
+ bne _080BD940
+_080BD92C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+ b _080BD97E
+ .align 2, 0
+_080BD938: .4byte 0x00000831
+_080BD93C: .4byte gSaveBlock1
+_080BD940:
+ ldr r0, _080BD984
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+ bl sub_80BD8B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl IsTVShowInSearchOfTrainersAiring
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+_080BD96E:
+ ldr r0, _080BD988
+ bl FlagReset
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+_080BD97E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD984: .4byte 0x00000832
+_080BD988: .4byte 0x00000831
+ thumb_func_end UpdateTVScreensOnMap
+
+ thumb_func_start SetTVMetatilesOnMap
+SetTVMetatilesOnMap: @ 80BD98C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r5, 0
+ cmp r5, r10
+ bge _080BD9E0
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ mov r8, r2
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+_080BD9B2:
+ movs r4, 0
+ adds r7, r5, 0x1
+ cmp r4, r9
+ bge _080BD9DA
+ mov r0, r8
+ lsls r6, r0, 16
+_080BD9BE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ cmp r0, 0x86
+ bne _080BD9D4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ lsrs r2, r6, 16
+ bl MapGridSetMetatileIdAt
+_080BD9D4:
+ adds r4, 0x1
+ cmp r4, r9
+ blt _080BD9BE
+_080BD9DA:
+ adds r5, r7, 0
+ cmp r5, r10
+ blt _080BD9B2
+_080BD9E0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end SetTVMetatilesOnMap
+
+ thumb_func_start TurnOffTVScreen
+TurnOffTVScreen: @ 80BD9F0
+ push {lr}
+ ldr r1, _080BDA08
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ movs r2, 0x2
+ bl SetTVMetatilesOnMap
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDA08: .4byte gUnknown_03004870
+ thumb_func_end TurnOffTVScreen
+
+ thumb_func_start sub_80BDA0C
+sub_80BDA0C: @ 80BDA0C
+ ldr r2, _080BDA24
+ ldr r0, _080BDA28
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BDA2C
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080BDA24: .4byte gSaveBlock1
+_080BDA28: .4byte gUnknown_0202E8CC
+_080BDA2C: .4byte 0x00002738
+ thumb_func_end sub_80BDA0C
+
+ thumb_func_start sub_80BDA30
+sub_80BDA30: @ 80BDA30
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BDA5C
+_080BDA36:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldr r4, _080BDA60
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDA64
+ cmp r0, 0x29
+ beq _080BDA64
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BDA64
+ adds r0, r2, 0
+ b _080BDA70
+ .align 2, 0
+_080BDA5C: .4byte gSaveBlock1
+_080BDA60: .4byte 0x00002738
+_080BDA64:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BDA36
+ movs r0, 0xFF
+_080BDA70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDA30
+
+ thumb_func_start special_0x4a
+special_0x4a: @ 80BDA78
+ push {lr}
+ ldr r2, _080BDAA4
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDAA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BDAAC
+ movs r3, 0xF1
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BDAAC
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BDAAE
+ .align 2, 0
+_080BDAA4: .4byte gUnknown_0202E8CC
+_080BDAA8: .4byte gSaveBlock1 + 0x2738
+_080BDAAC:
+ ldrb r0, [r2]
+_080BDAAE:
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x4a
+
+ thumb_func_start sub_80BDAB4
+sub_80BDAB4: @ 80BDAB4
+ push {r4,lr}
+ ldr r2, _080BDAF8
+ ldr r1, _080BDAFC
+ adds r0, r2, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080BDB00
+ adds r0, r2, r4
+ strh r1, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB04
+ adds r1, r2, r0
+ ldr r0, _080BDB08
+ strh r0, [r1]
+ adds r4, 0x6
+ adds r1, r2, r4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080BDB0C
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BDB10
+ adds r0, r2, r1
+ strb r3, [r0]
+ subs r4, 0x1
+ adds r2, r4
+ strb r3, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDAF8: .4byte gSaveBlock1
+_080BDAFC: .4byte 0x00002b10
+_080BDB00: .4byte 0x00002b12
+_080BDB04: .4byte 0x00002b16
+_080BDB08: .4byte 0x0000ffff
+_080BDB0C: .4byte 0x00002b1b
+_080BDB10: .4byte 0x00002b18
+ thumb_func_end sub_80BDAB4
+
+ thumb_func_start GabbyAndTyBeforeInterview
+GabbyAndTyBeforeInterview: @ 80BDB14
+ push {r4,r5,lr}
+ ldr r2, _080BDB68
+ ldr r3, _080BDB6C
+ ldrh r1, [r3, 0x6]
+ ldr r4, _080BDB70
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x26]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x22]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB74
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _080BDB44
+ adds r0, r1, 0x1
+ strb r0, [r4]
+_080BDB44:
+ ldrb r0, [r3, 0x5]
+ lsls r0, 31
+ ldr r1, _080BDB78
+ adds r4, r5, r1
+ lsrs r0, 31
+ ldrb r1, [r4]
+ movs r2, 0x2
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BDB7C
+ movs r0, 0x2
+ orrs r2, r0
+ b _080BDB82
+ .align 2, 0
+_080BDB68: .4byte gSaveBlock1
+_080BDB6C: .4byte gUnknown_030042E0
+_080BDB70: .4byte 0x00002b10
+_080BDB74: .4byte 0x00002b19
+_080BDB78: .4byte 0x00002b1a
+_080BDB7C:
+ movs r0, 0x3
+ negs r0, r0
+ ands r2, r0
+_080BDB82:
+ strb r2, [r4]
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _080BDB9C
+ ldr r4, _080BDB98
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080BDBAA
+ .align 2, 0
+_080BDB98: .4byte 0x00002b1a
+_080BDB9C:
+ ldr r0, _080BDBDC
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080BDBAA:
+ ldrb r1, [r3, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDBE0
+ movs r1, 0
+ adds r0, r3, 0
+ adds r0, 0x36
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BDBE0
+_080BDBC0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BDBEC
+ adds r0, r3, 0
+ adds r0, 0x36
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDBC0
+ ldr r4, _080BDBDC
+ adds r0, r5, r4
+ b _080BDBE4
+ .align 2, 0
+_080BDBDC: .4byte 0x00002b1a
+_080BDBE0:
+ ldr r1, _080BDC08
+ adds r0, r5, r1
+_080BDBE4:
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_080BDBEC:
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+ ldr r0, _080BDC0C
+ ldr r4, _080BDC10
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BDC02
+ movs r0, 0x1
+ bl FlagSet
+_080BDC02:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC08: .4byte 0x00002b1a
+_080BDC0C: .4byte gSaveBlock1
+_080BDC10: .4byte 0x00002b14
+ thumb_func_end GabbyAndTyBeforeInterview
+
+ thumb_func_start sub_80BDC14
+sub_80BDC14: @ 80BDC14
+ push {r4-r6,lr}
+ ldr r4, _080BDC70
+ ldr r0, _080BDC74
+ adds r6, r4, r0
+ ldrb r3, [r6]
+ lsls r1, r3, 31
+ adds r0, 0x1
+ adds r5, r4, r0
+ lsrs r1, 31
+ ldrb r2, [r5]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x2
+ ands r1, r3
+ movs r2, 0x3
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x4
+ ands r1, r3
+ subs r2, 0x2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x8
+ ands r1, r3
+ subs r2, 0x4
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ movs r0, 0x10
+ orrs r3, r0
+ strb r3, [r6]
+ ldr r0, _080BDC78
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080BDC7C
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x6
+ bl sav12_xor_increment
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC70: .4byte gSaveBlock1
+_080BDC74: .4byte 0x00002b1a
+_080BDC78: .4byte gMapHeader
+_080BDC7C: .4byte 0x00002b18
+ thumb_func_end sub_80BDC14
+
+ thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
+TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
+ ldr r0, _080BDC94
+ ldr r1, _080BDC98
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BDC94: .4byte gSaveBlock1
+_080BDC98: .4byte 0x00002b1a
+ thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
+
+ thumb_func_start GabbyAndTyGetBattleNum
+GabbyAndTyGetBattleNum: @ 80BDC9C
+ push {lr}
+ ldr r0, _080BDCBC
+ ldr r2, _080BDCC0
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bls _080BDCB8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+_080BDCB8:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BDCBC: .4byte gSaveBlock1
+_080BDCC0: .4byte 0x00002b19
+ thumb_func_end GabbyAndTyGetBattleNum
+
+ thumb_func_start IsTVShowInSearchOfTrainersAiring
+IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
+ ldr r0, _080BDCD4
+ ldr r1, _080BDCD8
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080BDCD4: .4byte gSaveBlock1
+_080BDCD8: .4byte 0x00002b1a
+ thumb_func_end IsTVShowInSearchOfTrainersAiring
+
+ thumb_func_start GabbyAndTyGetLastQuote
+GabbyAndTyGetLastQuote: @ 80BDCDC
+ push {r4,r5,lr}
+ ldr r0, _080BDD00
+ ldr r1, _080BDD04
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ ldr r5, _080BDD08
+ cmp r0, r5
+ beq _080BDD10
+ ldr r0, _080BDD0C
+ ldrh r1, [r4]
+ bl sub_80EB3FC
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080BDD12
+ .align 2, 0
+_080BDD00: .4byte gSaveBlock1
+_080BDD04: .4byte 0x00002b16
+_080BDD08: .4byte 0x0000ffff
+_080BDD0C: .4byte gStringVar1
+_080BDD10:
+ movs r0, 0
+_080BDD12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GabbyAndTyGetLastQuote
+
+ thumb_func_start sub_80BDD18
+sub_80BDD18: @ 80BDD18
+ push {lr}
+ ldr r0, _080BDD30
+ ldr r1, _080BDD34
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD38
+ movs r0, 0x1
+ b _080BDD5E
+ .align 2, 0
+_080BDD30: .4byte gSaveBlock1
+_080BDD34: .4byte 0x00002b1b
+_080BDD38:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD44
+ movs r0, 0x2
+ b _080BDD5E
+_080BDD44:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD50
+ movs r0, 0x3
+ b _080BDD5E
+_080BDD50:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD5C
+ movs r0, 0
+ b _080BDD5E
+_080BDD5C:
+ movs r0, 0x4
+_080BDD5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDD18
+
+ thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
+GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
+ push {lr}
+ bl GabbyAndTyGetBattleNum
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _080BDE3C
+ lsls r0, 2
+ ldr r1, _080BDD80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDD80: .4byte _080BDD84
+ .align 2, 0
+_080BDD84:
+ .4byte _080BDDA4
+ .4byte _080BDDB8
+ .4byte _080BDDCC
+ .4byte _080BDDE0
+ .4byte _080BDDF4
+ .4byte _080BDE08
+ .4byte _080BDE1C
+ .4byte _080BDE30
+_080BDDA4:
+ ldr r1, _080BDDB0
+ movs r0, 0xE
+ strh r0, [r1]
+ ldr r1, _080BDDB4
+ movs r0, 0xD
+ b _080BDE3A
+ .align 2, 0
+_080BDDB0: .4byte gUnknown_0202E8CC
+_080BDDB4: .4byte gUnknown_0202E8CE
+_080BDDB8:
+ ldr r1, _080BDDC4
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _080BDDC8
+ movs r0, 0x6
+ b _080BDE3A
+ .align 2, 0
+_080BDDC4: .4byte gUnknown_0202E8CC
+_080BDDC8: .4byte gUnknown_0202E8CE
+_080BDDCC:
+ ldr r1, _080BDDD8
+ movs r0, 0x12
+ strh r0, [r1]
+ ldr r1, _080BDDDC
+ movs r0, 0x11
+ b _080BDE3A
+ .align 2, 0
+_080BDDD8: .4byte gUnknown_0202E8CC
+_080BDDDC: .4byte gUnknown_0202E8CE
+_080BDDE0:
+ ldr r1, _080BDDEC
+ movs r0, 0x15
+ strh r0, [r1]
+ ldr r1, _080BDDF0
+ movs r0, 0x16
+ b _080BDE3A
+ .align 2, 0
+_080BDDEC: .4byte gUnknown_0202E8CC
+_080BDDF0: .4byte gUnknown_0202E8CE
+_080BDDF4:
+ ldr r1, _080BDE00
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080BDE04
+ movs r0, 0x9
+ b _080BDE3A
+ .align 2, 0
+_080BDE00: .4byte gUnknown_0202E8CC
+_080BDE04: .4byte gUnknown_0202E8CE
+_080BDE08:
+ ldr r1, _080BDE14
+ movs r0, 0x13
+ strh r0, [r1]
+ ldr r1, _080BDE18
+ movs r0, 0x14
+ b _080BDE3A
+ .align 2, 0
+_080BDE14: .4byte gUnknown_0202E8CC
+_080BDE18: .4byte gUnknown_0202E8CE
+_080BDE1C:
+ ldr r1, _080BDE28
+ movs r0, 0x17
+ strh r0, [r1]
+ ldr r1, _080BDE2C
+ movs r0, 0x18
+ b _080BDE3A
+ .align 2, 0
+_080BDE28: .4byte gUnknown_0202E8CC
+_080BDE2C: .4byte gUnknown_0202E8CE
+_080BDE30:
+ ldr r1, _080BDE40
+ movs r0, 0xA
+ strh r0, [r1]
+ ldr r1, _080BDE44
+ movs r0, 0xB
+_080BDE3A:
+ strh r0, [r1]
+_080BDE3C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDE40: .4byte gUnknown_0202E8CC
+_080BDE44: .4byte gUnknown_0202E8CE
+ thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
+
+ thumb_func_start sub_80BDE48
+sub_80BDE48: @ 80BDE48
+ push {lr}
+ ldr r0, _080BDE60
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BDEA6
+ lsls r0, 2
+ ldr r1, _080BDE64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDE60: .4byte gUnknown_0202E8CE
+_080BDE64: .4byte _080BDE68
+ .align 2, 0
+_080BDE68:
+ .4byte _080BDE84
+ .4byte _080BDE8A
+ .4byte _080BDE90
+ .4byte _080BDE96
+ .4byte _080BDEA6
+ .4byte _080BDE9C
+ .4byte _080BDEA2
+_080BDE84:
+ bl sub_80BE5FC
+ b _080BDEA6
+_080BDE8A:
+ bl sub_80BE65C
+ b _080BDEA6
+_080BDE90:
+ bl sub_80BE6A0
+ b _080BDEA6
+_080BDE96:
+ bl nullsub_21
+ b _080BDEA6
+_080BDE9C:
+ bl sub_80BE188
+ b _080BDEA6
+_080BDEA2:
+ bl sub_80BE320
+_080BDEA6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BDE48
+
+ thumb_func_start sub_80BDEAC
+sub_80BDEAC: @ 80BDEAC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _080BDEC0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _080BDEC0
+ movs r2, 0x1
+_080BDEC0:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDEAC
+
+ thumb_func_start sub_80BDEC8
+sub_80BDEC8: @ 80BDEC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ bl sub_80BEB20
+ bl sub_80BE778
+ ldr r5, _080BDEE8
+ ldrh r0, [r5, 0x28]
+ cmp r0, 0
+ bne _080BDEEC
+ bl sub_80BE074
+ b _080BE012
+ .align 2, 0
+_080BDEE8: .4byte gUnknown_030042E0
+_080BDEEC:
+ bl sub_80BE028
+ ldr r0, _080BDF98
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BDEFE
+ b _080BE012
+_080BDEFE:
+ ldrh r1, [r5, 0x28]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080BDF9C
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0x2A
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080BDF16
+ b _080BE012
+_080BDF16:
+ ldr r0, _080BDFA0
+ bl sub_80BF74C
+ ldr r1, _080BDFA4
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE012
+ movs r0, 0x15
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE012
+ movs r2, 0
+ adds r7, r5, 0
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDF42:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDF42
+ cmp r4, 0
+ bne _080BDF64
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BE012
+_080BDF64:
+ movs r4, 0
+ ldr r0, _080BDFA4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDFA0
+ adds r5, r0, r1
+ movs r0, 0x15
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDFAC
+ movs r4, 0x1
+ movs r0, 0x1
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BDFA8
+ mov r8, r1
+ adds r6, r5, 0x4
+ b _080BDFDE
+ .align 2, 0
+_080BDF98: .4byte 0x0000ffff
+_080BDF9C: .4byte gSpeciesNames
+_080BDFA0: .4byte gSaveBlock1 + 0x2738
+_080BDFA4: .4byte gUnknown_03005D38
+_080BDFA8: .4byte gSaveBlock2
+_080BDFAC:
+ movs r2, 0
+ ldr r0, _080BE01C
+ mov r12, r0
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BE020
+ mov r8, r1
+ adds r6, r5, 0x4
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDFC0:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDFC0
+ cmp r4, 0xFF
+ bls _080BDFDA
+ movs r4, 0xFF
+_080BDFDA:
+ mov r1, r12
+ ldrh r0, [r1]
+_080BDFDE:
+ strb r4, [r5, 0x12]
+ strb r0, [r5, 0xF]
+ adds r0, r3, 0
+ mov r1, r8
+ bl StringCopy
+ ldr r4, _080BE024
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCopy
+ subs r4, 0x2A
+ ldrh r0, [r4, 0x28]
+ strh r0, [r5, 0x10]
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ adds r0, r6, 0
+ bl sub_80BDEAC
+ strb r0, [r5, 0x3]
+ adds r0, r6, 0
+ bl SkipExtCtrlCodes
+_080BE012:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE01C: .4byte gUnknown_02024C04
+_080BE020: .4byte gSaveBlock2
+_080BE024: .4byte gUnknown_0300430A
+ thumb_func_end sub_80BDEC8
+
+ thumb_func_start sub_80BE028
+sub_80BE028: @ 80BE028
+ push {r4,lr}
+ ldr r4, _080BE064
+ ldrb r0, [r4]
+ cmp r0, 0x19
+ beq _080BE048
+ ldr r1, _080BE068
+ adds r0, r4, r1
+ movs r1, 0x18
+ bl sub_80BF55C
+ movs r0, 0x5
+ bl sub_8053108
+ strh r0, [r4, 0x6]
+ movs r0, 0x19
+ strb r0, [r4]
+_080BE048:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r1, _080BE06C
+ ldrh r0, [r1, 0x28]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldr r0, _080BE070
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE064: .4byte gSaveBlock1 + 0x2A98
+_080BE068: .4byte 0xfffffca0
+_080BE06C: .4byte gUnknown_030042E0
+_080BE070: .4byte gMapHeader
+ thumb_func_end sub_80BE028
+
+ thumb_func_start sub_80BE074
+sub_80BE074: @ 80BE074
+ push {r4-r7,lr}
+ ldr r0, _080BE118
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BE112
+ movs r1, 0
+ movs r5, 0
+ ldr r2, _080BE11C
+_080BE088:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bls _080BE088
+ cmp r5, 0xFF
+ bls _080BE0A2
+ movs r5, 0xFF
+_080BE0A2:
+ cmp r5, 0x2
+ bls _080BE112
+ ldr r7, _080BE120
+ ldrb r0, [r7]
+ cmp r0, 0x1
+ bne _080BE112
+ ldr r6, _080BE124
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r4, _080BE128
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE112
+ movs r0, 0x17
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE112
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0
+ movs r0, 0x17
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BE12C
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r4, 0xE]
+ strb r5, [r4, 0x10]
+ ldrb r0, [r7]
+ strb r0, [r4, 0x11]
+ ldr r0, _080BE130
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BE134
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+_080BE112:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE118: .4byte 0x0000ffff
+_080BE11C: .4byte gUnknown_03004316
+_080BE120: .4byte gUnknown_02024D26
+_080BE124: .4byte gSaveBlock1 + 0x2738
+_080BE128: .4byte gUnknown_03005D38
+_080BE12C: .4byte gUnknown_030042E0
+_080BE130: .4byte gMapHeader
+_080BE134: .4byte gSaveBlock2
+ thumb_func_end sub_80BE074
+
+ thumb_func_start sub_80BE138
+sub_80BE138: @ 80BE138
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ strb r0, [r4, 0x1E]
+ lsrs r2, r0, 8
+ strb r2, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ adds r1, 0x1
+ strb r2, [r1]
+ adds r1, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE138
+
+ thumb_func_start sub_80BE160
+sub_80BE160: @ 80BE160
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ lsrs r1, r0, 8
+ adds r2, r4, 0
+ adds r2, 0x21
+ strb r1, [r2]
+ adds r2, 0x1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE160
+
+ thumb_func_start sub_80BE188
+sub_80BE188: @ 80BE188
+ push {r4-r6,lr}
+ ldr r6, _080BE22C
+ ldrb r1, [r6]
+ cmp r1, 0x6
+ bne _080BE224
+ ldr r0, _080BE230
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r2, _080BE234
+ adds r0, r6, r2
+ adds r4, r0
+ strb r1, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ adds r0, 0x16
+ ldr r1, _080BE238
+ bl StringCopy
+ adds r5, r4, 0
+ adds r5, 0x8
+ adds r1, r6, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ bl StringCopy
+ ldrb r0, [r6, 0x13]
+ lsls r0, 29
+ lsrs r0, 29
+ ldrb r2, [r4, 0x13]
+ movs r3, 0x8
+ negs r3, r3
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x13]
+ ldrb r2, [r6, 0x13]
+ movs r0, 0x18
+ ands r0, r2
+ movs r2, 0x19
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4, 0x13]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x14]
+ ldrb r0, [r6, 0x13]
+ movs r1, 0x60
+ ands r1, r0
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ ldrb r1, [r6, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+_080BE224:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE22C: .4byte gSaveBlock1 + 0x2A98
+_080BE230: .4byte gUnknown_03005D38
+_080BE234: .4byte 0xfffffca0
+_080BE238: .4byte gSaveBlock2
+ thumb_func_end sub_80BE188
+
+ thumb_func_start sub_80BE23C
+sub_80BE23C: @ 80BE23C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _080BE278
+ bl sub_80BF484
+ ldr r0, _080BE27C
+ adds r5, r4, r0
+ adds r0, r5, 0
+ bl sub_80BF720
+ ldr r1, _080BE280
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE270
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl sub_80BF55C
+ strh r6, [r4, 0x14]
+ movs r0, 0x6
+ strb r0, [r4]
+_080BE270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE278: .4byte gSaveBlock1 + 0x2A98
+_080BE27C: .4byte 0xfffffca0
+_080BE280: .4byte gUnknown_03005D38
+ thumb_func_end sub_80BE23C
+
+ thumb_func_start sub_80BE284
+sub_80BE284: @ 80BE284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r7, _080BE304
+ ldr r1, _080BE308
+ adds r0, r7, r1
+ bl sub_80BF720
+ ldr r1, _080BE30C
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE2FE
+ movs r3, 0x3
+ adds r1, r4, 0
+ ands r1, r3
+ lsls r1, 5
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE310
+ ldrb r2, [r1]
+ movs r1, 0x7
+ ands r1, r2
+ movs r2, 0x8
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE314
+ ldrb r1, [r1]
+ ands r3, r1
+ lsls r3, 3
+ movs r1, 0x19
+ negs r1, r1
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r7, 0x13]
+ ldr r6, _080BE318
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BE31C
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ adds r2, r7, 0
+ adds r2, 0x8
+ movs r1, 0x2
+ bl GetMonData
+_080BE2FE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE304: .4byte gSaveBlock1 + 0x2A98
+_080BE308: .4byte 0xfffffca0
+_080BE30C: .4byte gUnknown_03005D38
+_080BE310: .4byte gUnknown_0203869C
+_080BE314: .4byte gUnknown_0203869E
+_080BE318: .4byte gUnknown_02038694
+_080BE31C: .4byte gPlayerParty
+ thumb_func_end sub_80BE284
+
+ thumb_func_start sub_80BE320
+sub_80BE320: @ 80BE320
+ push {r4-r6,lr}
+ ldr r0, _080BE384
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BE388
+ adds r6, r0, r1
+ movs r0, 0x7
+ strb r0, [r6]
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ adds r0, r6, 0x2
+ ldr r4, _080BE38C
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r6, 0
+ adds r0, 0xC
+ ldr r2, _080BE390
+ adds r1, r4, r2
+ bl StringCopy
+ movs r1, 0x90
+ lsls r1, 3
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ strh r0, [r6, 0xA]
+ ldr r2, _080BE394
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ strh r0, [r6, 0x14]
+ movs r0, 0xAF
+ lsls r0, 3
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_8135D3C
+ strh r0, [r6, 0x16]
+ ldr r1, _080BE398
+ adds r4, r1
+ ldrb r0, [r4]
+ strb r0, [r6, 0x1C]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080BE39C
+ movs r0, 0x32
+ b _080BE39E
+ .align 2, 0
+_080BE384: .4byte gUnknown_03005D38
+_080BE388: .4byte gSaveBlock1 + 0x2738
+_080BE38C: .4byte gSaveBlock2
+_080BE390: .4byte 0x00000484
+_080BE394: .4byte 0x00000482
+_080BE398: .4byte 0x00000555
+_080BE39C:
+ movs r0, 0x64
+_080BE39E:
+ strb r0, [r6, 0x1A]
+ ldr r0, _080BE3B8
+ ldrh r0, [r0]
+ strb r0, [r6, 0x1B]
+ adds r0, r6, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r6, 0x1D]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE3B8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BE320
+
+ thumb_func_start sub_80BE3BC
+sub_80BE3BC: @ 80BE3BC
+ push {r4-r7,lr}
+ ldr r0, _080BE460
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BE458
+ ldr r6, _080BE464
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r5, _080BE468
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE458
+ movs r0, 0x16
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE458
+ bl sub_80BF20C
+ ldr r2, _080BE46C
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bls _080BE458
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r6
+ movs r0, 0x16
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldr r0, _080BE470
+ ldrb r0, [r0, 0x14]
+ strb r0, [r5, 0x12]
+ movs r4, 0
+ adds r7, r5, 0x6
+ mov r12, r2
+ adds r6, r5, 0
+ adds r6, 0xC
+_080BE420:
+ lsls r2, r4, 1
+ adds r3, r7, r2
+ lsls r1, r4, 2
+ add r1, r12
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r2, r6, r2
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080BE420
+ movs r0, 0x1
+ bl GetPriceReduction
+ strb r0, [r5, 0x2]
+ adds r0, r5, 0
+ adds r0, 0x13
+ ldr r1, _080BE474
+ bl StringCopy
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x3]
+_080BE458:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE460: .4byte 0x00005555
+_080BE464: .4byte gSaveBlock1 + 0x2738
+_080BE468: .4byte gUnknown_03005D38
+_080BE46C: .4byte gUnknown_02038724
+_080BE470: .4byte gMapHeader
+_080BE474: .4byte gSaveBlock2
+ thumb_func_end sub_80BE3BC
+
+ thumb_func_start sub_80BE478
+sub_80BE478: @ 80BE478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_80BF478
+ ldr r0, _080BE554
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BE548
+ ldr r0, _080BE558
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r6, _080BE55C
+ adds r0, r6
+ ldr r4, _080BE560
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r1, _080BE564
+ mov r9, r1
+ mov r0, r9
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ ldr r0, _080BE568
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE56C
+ adds r4, r0
+ movs r0, 0x5
+ strb r0, [r4]
+ movs r5, 0x1
+ strb r5, [r4, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0x1A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r5
+ strb r0, [r4, 0x1B]
+ ldrh r0, [r4, 0x2]
+ bl sub_80BF674
+ strh r0, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r0, 0xF
+ mov r1, r9
+ bl StringCopy
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ adds r5, r4, 0x4
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+_080BE548:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE554: .4byte gScriptResult
+_080BE558: .4byte gUnknown_0202E8CC
+_080BE55C: .4byte gPlayerParty
+_080BE560: .4byte gStringVar1
+_080BE564: .4byte gSaveBlock2
+_080BE568: .4byte gUnknown_03005D38
+_080BE56C: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BE478
+
+ thumb_func_start StartMassOutbreak
+StartMassOutbreak: @ 80BE570
+ push {r4,lr}
+ ldr r0, _080BE5F0
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080BE5F4
+ adds r0, r2
+ ldrh r3, [r0, 0xC]
+ movs r4, 0xF1
+ lsls r4, 2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x10]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x11]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x14]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x2]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrh r3, [r0, 0xE]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x4]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x6]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x8]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0xA]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x3]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r1, [r0, 0x13]
+ ldr r3, _080BE5F8
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r4, 0x2
+ adds r2, r4
+ movs r0, 0x2
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE5F0: .4byte gUnknown_0202E8CC
+_080BE5F4: .4byte gSaveBlock1 + 0x2738
+_080BE5F8: .4byte 0x000003d5
+ thumb_func_end StartMassOutbreak
+
+ thumb_func_start sub_80BE5FC
+sub_80BE5FC: @ 80BE5FC
+ push {r4,lr}
+ ldr r0, _080BE64C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE650
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE654
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BE658
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE64C: .4byte gUnknown_03005D38
+_080BE650: .4byte gSaveBlock1 + 0x2738
+_080BE654: .4byte gSaveBlock2
+_080BE658: .4byte gPlayerParty
+ thumb_func_end sub_80BE5FC
+
+ thumb_func_start sub_80BE65C
+sub_80BE65C: @ 80BE65C
+ push {r4-r6,lr}
+ ldr r0, _080BE694
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE698
+ adds r4, r0
+ movs r6, 0
+ movs r5, 0x2
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE69C
+ bl StringCopy
+ strh r6, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ strb r5, [r4, 0x18]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE694: .4byte gUnknown_03005D38
+_080BE698: .4byte gSaveBlock1 + 0x2738
+_080BE69C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE65C
+
+ thumb_func_start sub_80BE6A0
+sub_80BE6A0: @ 80BE6A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080BE760
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE764
+ adds r4, r0
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BE768
+ adds r0, r6
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 4
+ movs r1, 0xF
+ ands r0, r1
+ ldrb r2, [r4, 0x4]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ ldr r0, _080BE76C
+ ldrb r0, [r0]
+ lsls r0, 4
+ movs r2, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ adds r0, r4, 0x5
+ ldr r1, _080BE770
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r5, r4, 0
+ adds r5, 0x10
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0xD]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl SkipExtCtrlCodes
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE760: .4byte gUnknown_03005D38
+_080BE764: .4byte gSaveBlock1 + 0x2738
+_080BE768: .4byte gPlayerParty
+_080BE76C: .4byte gUnknown_0202E8D2
+_080BE770: .4byte gSaveBlock2
+ thumb_func_end sub_80BE6A0
+
+ thumb_func_start nullsub_21
+nullsub_21: @ 80BE774
+ bx lr
+ thumb_func_end nullsub_21
+
+ thumb_func_start sub_80BE778
+sub_80BE778: @ 80BE778
+ push {r4-r6,lr}
+ ldr r0, _080BE83C
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE836
+ movs r1, 0
+ ldr r3, _080BE840
+ ldr r2, _080BE844
+_080BE78C:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ beq _080BE836
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x17
+ bls _080BE78C
+ ldr r0, _080BE848
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080BE836
+ ldr r6, _080BE84C
+ adds r0, r6, 0
+ bl sub_80BF720
+ ldr r4, _080BE850
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE836
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r4, r1, 3
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0x29
+ strb r1, [r4]
+ movs r3, 0x1
+ strb r3, [r4, 0x1]
+ ldr r2, _080BE854
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ strb r0, [r4, 0x14]
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x3]
+ ldrh r0, [r1]
+ movs r2, 0
+ strh r0, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x6]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1, 0xB]
+ strb r0, [r4, 0x10]
+ strb r2, [r4, 0x11]
+ strb r2, [r4, 0x12]
+ movs r0, 0x32
+ strb r0, [r4, 0x13]
+ strb r2, [r4, 0x15]
+ strh r3, [r4, 0x16]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+_080BE836:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE83C: .4byte 0x00000804
+_080BE840: .4byte gSaveBlock1
+_080BE844: .4byte 0x00002738
+_080BE848: .4byte 0x00000147
+_080BE84C: .4byte gSaveBlock1 + 0x2738
+_080BE850: .4byte gUnknown_03005D38
+_080BE854: .4byte gUnknown_083D13F8
+ thumb_func_end sub_80BE778
+
+ thumb_func_start EndMassOutbreak
+EndMassOutbreak: @ 80BE858
+ push {r4,lr}
+ ldr r0, _080BE8B4
+ ldr r2, _080BE8B8
+ adds r1, r0, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r1]
+ ldr r4, _080BE8BC
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ ldr r1, _080BE8C0
+ adds r0, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE8B4: .4byte gSaveBlock1
+_080BE8B8: .4byte 0x00002afc
+_080BE8BC: .4byte 0x00002afe
+_080BE8C0: .4byte 0x00002b0e
+ thumb_func_end EndMassOutbreak
+
+ thumb_func_start sub_80BE8C4
+sub_80BE8C4: @ 80BE8C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_80BE8EC
+ adds r0, r4, 0
+ bl UpdateMassOutbreakTimeLeft
+ adds r0, r4, 0
+ bl sub_80BEE84
+ adds r0, r4, 0
+ bl sub_80BEA5C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8C4
+
+ thumb_func_start sub_80BE8EC
+sub_80BE8EC: @ 80BE8EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080BE930
+ ldr r2, _080BE934
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BE94C
+ movs r3, 0
+ adds r5, r1, 0
+ ldr r7, _080BE938
+ adds r6, r5, r7
+_080BE906:
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r2, r0, 2
+ adds r1, r2, r5
+ ldr r7, _080BE938
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BE942
+ adds r7, 0x1
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BE942
+ adds r1, r2, r6
+ ldrh r0, [r1, 0x16]
+ cmp r0, r4
+ bcs _080BE93C
+ movs r0, 0
+ strh r0, [r1, 0x16]
+ b _080BE94C
+ .align 2, 0
+_080BE930: .4byte gSaveBlock1
+_080BE934: .4byte 0x00002afc
+_080BE938: .4byte 0x00002738
+_080BE93C:
+ subs r0, r4
+ strh r0, [r1, 0x16]
+ b _080BE94C
+_080BE942:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x17
+ bls _080BE906
+_080BE94C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8EC
+
+ thumb_func_start UpdateMassOutbreakTimeLeft
+UpdateMassOutbreakTimeLeft: @ 80BE954
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080BE96C
+ ldr r3, _080BE970
+ adds r2, r0, r3
+ ldrh r0, [r2]
+ cmp r0, r1
+ bhi _080BE974
+ bl EndMassOutbreak
+ b _080BE978
+ .align 2, 0
+_080BE96C: .4byte gSaveBlock1
+_080BE970: .4byte 0x00002b0e
+_080BE974:
+ subs r0, r1
+ strh r0, [r2]
+_080BE978:
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMassOutbreakTimeLeft
+
+ thumb_func_start sub_80BE97C
+sub_80BE97C: @ 80BE97C
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE9A4
+ ldr r4, _080BE9A0
+ ldrh r0, [r4]
+ lsrs r0, 8
+ cmp r0, 0x4
+ bls _080BE992
+ bl sub_80BE9D4
+_080BE992:
+ ldrb r0, [r4]
+ strh r0, [r4]
+ cmp r0, 0xFF
+ beq _080BE9C8
+ adds r0, 0x1
+ b _080BE9C6
+ .align 2, 0
+_080BE9A0: .4byte gUnknown_020387E2
+_080BE9A4:
+ ldr r4, _080BE9D0
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bls _080BE9B0
+ bl sub_80BE9D4
+_080BE9B0:
+ ldrh r0, [r4]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ strh r1, [r4]
+ lsrs r0, r1, 8
+ cmp r0, 0xFF
+ beq _080BE9C8
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+_080BE9C6:
+ strh r0, [r4]
+_080BE9C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE9D0: .4byte gUnknown_020387E2
+ thumb_func_end sub_80BE97C
+
+ thumb_func_start sub_80BE9D4
+sub_80BE9D4: @ 80BE9D4
+ push {r4,r5,lr}
+ ldr r5, _080BEA3C
+ adds r0, r5, 0
+ bl sub_80BF74C
+ ldr r4, _080BEA40
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEA36
+ movs r0, 0x18
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEA36
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r5
+ movs r1, 0
+ movs r0, 0x18
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BEA44
+ ldrh r0, [r1]
+ strb r0, [r4, 0x2]
+ ldrh r0, [r1]
+ lsrs r0, 8
+ strb r0, [r4, 0x3]
+ ldr r0, _080BEA48
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEA4C
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x6]
+_080BEA36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEA3C: .4byte gSaveBlock1 + 0x2738
+_080BEA40: .4byte gUnknown_03005D38
+_080BEA44: .4byte gUnknown_020387E2
+_080BEA48: .4byte gUnknown_020387E0
+_080BEA4C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE9D4
+
+ thumb_func_start sub_80BEA50
+sub_80BEA50: @ 80BEA50
+ ldr r1, _080BEA58
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BEA58: .4byte gUnknown_020387E0
+ thumb_func_end sub_80BEA50
+
+ thumb_func_start sub_80BEA5C
+sub_80BEA5C: @ 80BEA5C
+ push {lr}
+ ldr r1, _080BEA78
+ ldrb r0, [r1]
+ cmp r0, 0x19
+ bne _080BEA84
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0x13
+ bhi _080BEA80
+ ldr r2, _080BEA7C
+ adds r0, r1, r2
+ movs r1, 0x18
+ bl sub_80BF55C
+ b _080BEA84
+ .align 2, 0
+_080BEA78: .4byte gSaveBlock1 + 0x2A98
+_080BEA7C: .4byte 0xfffffca0
+_080BEA80:
+ bl sub_80BEA88
+_080BEA84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEA5C
+
+ thumb_func_start sub_80BEA88
+sub_80BEA88: @ 80BEA88
+ push {r4-r7,lr}
+ ldr r5, _080BEB0C
+ ldr r0, _080BEB10
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080BEB04
+ ldr r0, _080BEB14
+ adds r7, r5, r0
+ adds r0, r7, 0
+ bl sub_80BF74C
+ ldr r4, _080BEB18
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEB04
+ movs r0, 0x19
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEB04
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r7
+ movs r0, 0x19
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ bl sub_8053108
+ ldrh r1, [r5, 0x6]
+ subs r0, r1
+ strh r0, [r4, 0x6]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r5, 0xA]
+ strb r0, [r4, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEB1C
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0xB]
+_080BEB04:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEB0C: .4byte gSaveBlock1 + 0x2A98
+_080BEB10: .4byte 0x0000ffff
+_080BEB14: .4byte 0xfffffca0
+_080BEB18: .4byte gUnknown_03005D38
+_080BEB1C: .4byte gSaveBlock2
+ thumb_func_end sub_80BEA88
+
+ thumb_func_start sub_80BEB20
+sub_80BEB20: @ 80BEB20
+ push {r4-r6,lr}
+ ldr r0, _080BEBAC
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BEBA6
+ ldr r6, _080BEBB0
+ adds r0, r6, 0
+ bl sub_80BEBC8
+ ldr r5, _080BEBB4
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEBA6
+ ldr r0, _080BEBB8
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BEE48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ ldr r1, _080BEBBC
+ adds r2, r6, r1
+ adds r0, r6, r0
+ strb r4, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC0
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080BEBA6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEBAC: .4byte 0x00000804
+_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
+_080BEBB4: .4byte gUnknown_03005D38
+_080BEBB8: .4byte 0x0000028f
+_080BEBBC: .4byte 0xffffd544
+_080BEBC0: .4byte 0x00002abe
+_080BEBC4: .4byte 0x00002abd
+ thumb_func_end sub_80BEB20
+
+ thumb_func_start sub_80BEBC8
+sub_80BEBC8: @ 80BEBC8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BEBCE:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BEBE0
+ adds r0, r1, 0
+ b _080BEBF0
+_080BEBE0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0xF
+ ble _080BEBCE
+ movs r0, 0x1
+ negs r0, r0
+_080BEBF0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BEBC8
+
+ thumb_func_start sub_80BEBF4
+sub_80BEBF4: @ 80BEBF4
+ push {r4,lr}
+ movs r4, 0
+_080BEBF8:
+ adds r0, r4, 0
+ bl sub_80BEC10
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080BEBF8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEBF4
+
+ thumb_func_start sub_80BEC10
+sub_80BEC10: @ 80BEC10
+ lsls r0, 24
+ ldr r1, _080BEC30
+ lsrs r0, 22
+ adds r0, r1
+ ldr r2, _080BEC34
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _080BEC38
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _080BEC3C
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080BEC30: .4byte gSaveBlock1
+_080BEC34: .4byte 0x00002abc
+_080BEC38: .4byte 0x00002abd
+_080BEC3C: .4byte 0x00002abe
+ thumb_func_end sub_80BEC10
+
+ thumb_func_start sub_80BEC40
+sub_80BEC40: @ 80BEC40
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r6, _080BEC80
+_080BEC46:
+ ldr r3, _080BEC80
+ lsls r2, r1, 2
+ adds r0, r2, r3
+ ldr r4, _080BEC84
+ adds r0, r4
+ ldrb r0, [r0]
+ adds r5, r1, 0x1
+ cmp r0, 0
+ bne _080BEC92
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bhi _080BEC92
+ adds r4, r3, r4
+ adds r3, r2, r4
+_080BEC64:
+ lsls r2, r1, 2
+ adds r0, r2, r6
+ ldr r7, _080BEC84
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BEC88
+ adds r0, r2, r4
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r0, r1, 0
+ bl sub_80BEC10
+ b _080BEC92
+ .align 2, 0
+_080BEC80: .4byte gSaveBlock1
+_080BEC84: .4byte 0x00002abc
+_080BEC88:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEC64
+_080BEC92:
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080BEC46
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEC40
+
+ thumb_func_start sub_80BECA0
+sub_80BECA0: @ 80BECA0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BECCC
+_080BECA6:
+ lsls r0, r2, 2
+ adds r1, r0, r3
+ ldr r4, _080BECD0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bhi _080BECD4
+ adds r0, r2, 0
+ b _080BECE0
+ .align 2, 0
+_080BECCC: .4byte gSaveBlock1
+_080BECD0: .4byte 0x00002abc
+_080BECD4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BECA6
+ movs r0, 0xFF
+_080BECE0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BECA0
+
+ thumb_func_start sub_80BECE8
+sub_80BECE8: @ 80BECE8
+ push {r4,lr}
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BED00
+ ldr r1, _080BECFC
+ movs r0, 0
+ b _080BED86
+ .align 2, 0
+_080BECFC: .4byte gScriptResult
+_080BED00:
+ ldr r0, _080BED2C
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r0, _080BED30
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080BED5C
+ ldr r2, _080BED34
+ adds r1, r4, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080BED38
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x13
+ bgt _080BED40
+ ldr r1, _080BED3C
+ subs r2, 0x1
+ b _080BED44
+ .align 2, 0
+_080BED2C: .4byte gSaveBlock1
+_080BED30: .4byte 0x00002abe
+_080BED34: .4byte 0x00002abd
+_080BED38: .4byte gLocalTime
+_080BED3C: .4byte gUnknown_083D1444
+_080BED40:
+ ldr r1, _080BED54
+ ldr r2, _080BED58
+_080BED44:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ b _080BED82
+ .align 2, 0
+_080BED54: .4byte gUnknown_083D1454
+_080BED58: .4byte 0x00002abc
+_080BED5C:
+ ldrh r1, [r1]
+ ldr r0, _080BED90
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080BED94
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BED98
+ ldr r2, _080BED9C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+_080BED82:
+ ldr r1, _080BEDA0
+ movs r0, 0x1
+_080BED86:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BED90: .4byte gStringVar1
+_080BED94: .4byte 0x00002abd
+_080BED98: .4byte gUnknown_083D1434
+_080BED9C: .4byte 0x00002abc
+_080BEDA0: .4byte gScriptResult
+ thumb_func_end sub_80BECE8
+
+ thumb_func_start GetPriceReduction
+GetPriceReduction: @ 80BEDA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080BEDB4
+ b _080BEDF6
+_080BEDB0:
+ movs r0, 0x1
+ b _080BEDF8
+_080BEDB4:
+ movs r2, 0
+ ldr r4, _080BEDE0
+_080BEDB8:
+ lsls r0, r2, 2
+ adds r1, r0, r4
+ ldr r5, _080BEDE4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BEDEC
+ ldr r2, _080BEDE8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080BEDF6
+ adds r0, r3, 0
+ bl IsPriceDiscounted
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BEDB0
+ b _080BEDF6
+ .align 2, 0
+_080BEDE0: .4byte gSaveBlock1
+_080BEDE4: .4byte 0x00002abc
+_080BEDE8: .4byte 0x00002abd
+_080BEDEC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BEDB8
+_080BEDF6:
+ movs r0, 0
+_080BEDF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetPriceReduction
+
+ thumb_func_start IsPriceDiscounted
+IsPriceDiscounted: @ 80BEE00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEE12
+ cmp r0, 0x3
+ beq _080BEE30
+_080BEE0E:
+ movs r0, 0x1
+ b _080BEE3C
+_080BEE12:
+ ldr r0, _080BEE28
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _080BEE3A
+ ldr r0, _080BEE2C
+ ldrh r0, [r0]
+ cmp r0, 0x1A
+ beq _080BEE0E
+ b _080BEE3A
+ .align 2, 0
+_080BEE28: .4byte gSaveBlock1
+_080BEE2C: .4byte gUnknown_0202E8DE
+_080BEE30:
+ ldr r0, _080BEE40
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080BEE44
+ cmp r1, r0
+ beq _080BEE0E
+_080BEE3A:
+ movs r0, 0
+_080BEE3C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE40: .4byte gSaveBlock1
+_080BEE44: .4byte 0x0000160d
+ thumb_func_end IsPriceDiscounted
+
+ thumb_func_start sub_80BEE48
+sub_80BEE48: @ 80BEE48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080BEE56
+_080BEE52:
+ movs r0, 0x1
+ b _080BEE74
+_080BEE56:
+ movs r1, 0
+ ldr r4, _080BEE7C
+ ldr r3, _080BEE80
+_080BEE5C:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _080BEE52
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEE5C
+ movs r0, 0
+_080BEE74:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE7C: .4byte gSaveBlock1
+_080BEE80: .4byte 0x00002abc
+ thumb_func_end sub_80BEE48
+
+ thumb_func_start sub_80BEE84
+sub_80BEE84: @ 80BEE84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ ldr r0, _080BEEB8
+ mov r8, r0
+_080BEE94:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r2, r0, r1
+ ldr r3, _080BEEBC
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080BEEEC
+ ldr r1, _080BEEC0
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ bcs _080BEEC4
+ adds r0, r5, 0
+ bl sub_80BEC10
+ b _080BEEEC
+ .align 2, 0
+_080BEEB8: .4byte gSaveBlock1
+_080BEEBC: .4byte 0x00002abc
+_080BEEC0: .4byte 0x00002abe
+_080BEEC4:
+ ldr r3, _080BEF04
+ adds r4, r2, r3
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080BEEDE
+ ldr r0, _080BEF08
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BEEDE
+ strb r0, [r4]
+_080BEEDE:
+ mov r0, r8
+ adds r1, r6, r0
+ ldr r3, _080BEF0C
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, r7
+ strh r0, [r1]
+_080BEEEC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080BEE94
+ bl sub_80BEC40
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF04: .4byte 0x00002abd
+_080BEF08: .4byte 0x00000804
+_080BEF0C: .4byte 0x00002abe
+ thumb_func_end sub_80BEE84
+
+ thumb_func_start sub_80BEF10
+sub_80BEF10: @ 80BEF10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _080BEF50
+ cmp r1, 0x1
+ bgt _080BEF2A
+ cmp r1, 0
+ beq _080BEF34
+ b _080BEF98
+_080BEF2A:
+ cmp r2, 0x2
+ beq _080BEF6C
+ cmp r2, 0x3
+ beq _080BEF88
+ b _080BEF98
+_080BEF34:
+ ldr r1, _080BEF48
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF4C
+ ldr r1, [r1, 0x14]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF48: .4byte gUnknown_083D1464
+_080BEF4C: .4byte gUnknown_083CE048
+_080BEF50:
+ ldr r1, _080BEF64
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF68
+ ldr r1, [r1, 0x18]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF64: .4byte gUnknown_083D1464
+_080BEF68: .4byte gUnknown_083CE048
+_080BEF6C:
+ ldr r1, _080BEF80
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF84
+ ldr r1, [r1, 0x1C]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF80: .4byte gUnknown_083D1464
+_080BEF84: .4byte gUnknown_083CE048
+_080BEF88:
+ ldr r1, _080BEF9C
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFA0
+ ldr r1, [r1, 0x20]
+ bl StringCopy
+_080BEF98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF9C: .4byte gUnknown_083D1464
+_080BEFA0: .4byte gUnknown_083CE048
+ thumb_func_end sub_80BEF10
+
+ thumb_func_start CopyContestCategoryToStringVar
+CopyContestCategoryToStringVar: @ 80BEFA4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x4
+ bhi _080BF054
+ lsls r0, 2
+ ldr r1, _080BEFBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BEFBC: .4byte _080BEFC0
+ .align 2, 0
+_080BEFC0:
+ .4byte _080BEFD4
+ .4byte _080BEFF0
+ .4byte _080BF00C
+ .4byte _080BF028
+ .4byte _080BF044
+_080BEFD4:
+ ldr r1, _080BEFE8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFEC
+ ldr r1, [r1]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BEFE8: .4byte gUnknown_083D1464
+_080BEFEC: .4byte gUnknown_083CE048
+_080BEFF0:
+ ldr r1, _080BF004
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF008
+ ldr r1, [r1, 0x4]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF004: .4byte gUnknown_083D1464
+_080BF008: .4byte gUnknown_083CE048
+_080BF00C:
+ ldr r1, _080BF020
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF024
+ ldr r1, [r1, 0x8]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF020: .4byte gUnknown_083D1464
+_080BF024: .4byte gUnknown_083CE048
+_080BF028:
+ ldr r1, _080BF03C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF040
+ ldr r1, [r1, 0xC]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF03C: .4byte gUnknown_083D1464
+_080BF040: .4byte gUnknown_083CE048
+_080BF044:
+ ldr r1, _080BF058
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF05C
+ ldr r1, [r1, 0x10]
+ bl StringCopy
+_080BF054:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF058: .4byte gUnknown_083D1464
+_080BF05C: .4byte gUnknown_083CE048
+ thumb_func_end CopyContestCategoryToStringVar
+
+ thumb_func_start SetContestCategoryStringVarForInterview
+SetContestCategoryStringVarForInterview: @ 80BF060
+ push {lr}
+ ldr r0, _080BF080
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF084
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF080: .4byte gUnknown_0202E8CC
+_080BF084: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end SetContestCategoryStringVarForInterview
+
+ thumb_func_start sub_80BF088
+sub_80BF088: @ 80BF088
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ ldr r0, _080BF0B4
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF0B4: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF088
+
+ thumb_func_start sub_80BF0B8
+sub_80BF0B8: @ 80BF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF144
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0D6
+ movs r0, 0x2
+ b _080BF14E
+_080BF0D6:
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0E8
+ movs r0, 0x3
+ b _080BF14E
+_080BF0E8:
+ ldr r1, _080BF0F8
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0FC
+ movs r0, 0x4
+ b _080BF14E
+ .align 2, 0
+_080BF0F8: .4byte 0x00002710
+_080BF0FC:
+ ldr r1, _080BF10C
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF110
+ movs r0, 0x5
+ b _080BF14E
+ .align 2, 0
+_080BF10C: .4byte 0x000186a0
+_080BF110:
+ ldr r1, _080BF120
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF124
+ movs r0, 0x6
+ b _080BF14E
+ .align 2, 0
+_080BF120: .4byte 0x000f4240
+_080BF124:
+ ldr r1, _080BF134
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF138
+ movs r0, 0x7
+ b _080BF14E
+ .align 2, 0
+_080BF134: .4byte 0x00989680
+_080BF138:
+ ldr r1, _080BF148
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF14C
+_080BF144:
+ movs r0, 0x1
+ b _080BF14E
+ .align 2, 0
+_080BF148: .4byte 0x05f5e100
+_080BF14C:
+ movs r0, 0x8
+_080BF14E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF0B8
+
+ thumb_func_start sub_80BF154
+sub_80BF154: @ 80BF154
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+_080BF166:
+ lsls r4, r5, 1
+ adds r0, r6, 0x6
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080BF186
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r1, 0xC
+ adds r1, r4
+ ldrh r1, [r1]
+ muls r0, r1
+ adds r7, r0
+_080BF186:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF166
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x1
+ bne _080BF1A0
+ asrs r1, r7, 1
+ mov r0, r8
+ bl sub_80BF088
+ b _080BF1A8
+_080BF1A0:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80BF088
+_080BF1A8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF154
+
+ thumb_func_start sub_80BF1B4
+sub_80BF1B4: @ 80BF1B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _080BF1F4
+ bl sub_80BFB94
+ adds r5, r0, 0
+ movs r4, 0x5
+_080BF1C4:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _080BF1F8
+ movs r3, 0xFF
+ adds r0, r5, 0
+ ands r0, r3
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _080BF1F8
+ lsrs r0, r5, 8
+ ands r0, r3
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BF1F8
+ movs r0, 0x1
+ b _080BF204
+ .align 2, 0
+_080BF1F4: .4byte gSaveBlock1 + 0x2738
+_080BF1F8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bls _080BF1C4
+ movs r0, 0
+_080BF204:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF1B4
+
+ thumb_func_start sub_80BF20C
+sub_80BF20C: @ 80BF20C
+ push {r4-r7,lr}
+ movs r2, 0
+_080BF210:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ adds r7, r1, 0
+ cmp r5, 0x2
+ bhi _080BF248
+ ldr r6, _080BF258
+ lsls r0, r2, 2
+ adds r4, r0, r6
+_080BF222:
+ lsls r0, r5, 2
+ adds r3, r0, r6
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r3, 0x2]
+ cmp r0, r1
+ bcs _080BF23E
+ ldrh r1, [r4]
+ adds r2, r0, 0
+ ldrh r0, [r3]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r4, 0x2]
+ strh r1, [r3]
+ strh r2, [r3, 0x2]
+_080BF23E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF222
+_080BF248:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bls _080BF210
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF258: .4byte gUnknown_02038724
+ thumb_func_end sub_80BF20C
+
+ thumb_func_start sub_80BF25C
+sub_80BF25C: @ 80BF25C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0
+ ldr r3, _080BF28C
+ ldr r0, _080BF290
+ adds r4, r3, r0
+_080BF26A:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldr r6, _080BF290
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _080BF2AE
+ ldr r3, _080BF294
+ adds r0, r2, r3
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _080BF29C
+ ldr r0, _080BF298
+ strh r2, [r0]
+ b _080BF2BC
+ .align 2, 0
+_080BF28C: .4byte gSaveBlock1
+_080BF290: .4byte 0x00002738
+_080BF294: .4byte 0x00002739
+_080BF298: .4byte gScriptResult
+_080BF29C:
+ adds r0, r4, 0
+ bl sub_80BF55C
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80BF6D8
+ b _080BF2BC
+_080BF2AE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF26A
+ bl sub_80BF6D8
+_080BF2BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF25C
+
+ thumb_func_start sub_80BF2C4
+sub_80BF2C4: @ 80BF2C4
+ push {lr}
+ ldr r1, _080BF2E0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080BF2E4
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BF330
+ lsls r0, 2
+ ldr r1, _080BF2E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BF2E0: .4byte gScriptResult
+_080BF2E4: .4byte gUnknown_0202E8CE
+_080BF2E8: .4byte _080BF2EC
+ .align 2, 0
+_080BF2EC:
+ .4byte _080BF308
+ .4byte _080BF30E
+ .4byte _080BF314
+ .4byte _080BF31A
+ .4byte _080BF320
+ .4byte _080BF326
+ .4byte _080BF32C
+_080BF308:
+ bl sub_80BF334
+ b _080BF330
+_080BF30E:
+ bl sub_80BF3A4
+ b _080BF330
+_080BF314:
+ bl sub_80BF3DC
+ b _080BF330
+_080BF31A:
+ bl sub_80BF46C
+ b _080BF330
+_080BF320:
+ bl sub_80BF478
+ b _080BF330
+_080BF326:
+ bl sub_80BF484
+ b _080BF330
+_080BF32C:
+ bl sub_80BF4BC
+_080BF330:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF2C4
+
+ thumb_func_start sub_80BF334
+sub_80BF334: @ 80BF334
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_80BF25C
+ ldr r0, _080BF38C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF384
+ ldr r4, _080BF390
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BF394
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF398
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _080BF39C
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3A0
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF384:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF38C: .4byte gScriptResult
+_080BF390: .4byte gStringVar1
+_080BF394: .4byte gPlayerParty
+_080BF398: .4byte gSpeciesNames
+_080BF39C: .4byte gUnknown_03005D38
+_080BF3A0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF334
+
+ thumb_func_start sub_80BF3A4
+sub_80BF3A4: @ 80BF3A4
+ push {lr}
+ movs r0, 0x2
+ bl sub_80BF25C
+ ldr r0, _080BF3D0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF3CC
+ ldr r0, _080BF3D4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3D8
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF3CC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF3D0: .4byte gScriptResult
+_080BF3D4: .4byte gUnknown_03005D38
+_080BF3D8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3A4
+
+ thumb_func_start sub_80BF3DC
+sub_80BF3DC: @ 80BF3DC
+ push {r4-r6,lr}
+ movs r0, 0x3
+ bl sub_80BF25C
+ ldr r0, _080BF450
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF448
+ ldr r6, _080BF454
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BF458
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF45C
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ adds r0, r4
+ ldr r4, _080BF460
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ ldr r0, _080BF464
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF468
+ adds r0, r1
+ adds r0, 0x1C
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF448:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF450: .4byte gScriptResult
+_080BF454: .4byte gStringVar1
+_080BF458: .4byte gPlayerParty
+_080BF45C: .4byte gSpeciesNames
+_080BF460: .4byte gStringVar2
+_080BF464: .4byte gUnknown_03005D38
+_080BF468: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3DC
+
+ thumb_func_start sub_80BF46C
+sub_80BF46C: @ 80BF46C
+ ldr r1, _080BF474
+ movs r0, 0x1
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BF474: .4byte gScriptResult
+ thumb_func_end sub_80BF46C
+
+ thumb_func_start sub_80BF478
+sub_80BF478: @ 80BF478
+ push {lr}
+ movs r0, 0x5
+ bl sub_80BF25C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF478
+
+ thumb_func_start sub_80BF484
+sub_80BF484: @ 80BF484
+ push {lr}
+ movs r0, 0x6
+ bl sub_80BF25C
+ ldr r0, _080BF4B0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4AC
+ ldr r0, _080BF4B4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4B8
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF4AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4B0: .4byte gScriptResult
+_080BF4B4: .4byte gUnknown_03005D38
+_080BF4B8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF484
+
+ thumb_func_start sub_80BF4BC
+sub_80BF4BC: @ 80BF4BC
+ push {lr}
+ movs r0, 0x7
+ bl sub_80BF25C
+ ldr r0, _080BF4E8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4E4
+ ldr r0, _080BF4EC
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4F0
+ adds r0, r1
+ adds r0, 0x18
+ movs r1, 0x1
+ bl sub_80EB6FC
+_080BF4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4E8: .4byte gScriptResult
+_080BF4EC: .4byte gUnknown_03005D38
+_080BF4F0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF4BC
+
+ thumb_func_start sub_80BF4F4
+sub_80BF4F4: @ 80BF4F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080BF530
+ adds r4, r0
+ ldr r5, _080BF534
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r0, r1
+ ldr r1, _080BF538
+ adds r0, r1
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF53C
+ movs r0, 0x1
+ b _080BF53E
+ .align 2, 0
+_080BF530: .4byte gPlayerParty
+_080BF534: .4byte gStringVar1
+_080BF538: .4byte gSpeciesNames
+_080BF53C:
+ movs r0, 0
+_080BF53E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF4F4
+
+ thumb_func_start sub_80BF544
+sub_80BF544: @ 80BF544
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BF4F4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF544
+
+ thumb_func_start sub_80BF55C
+sub_80BF55C: @ 80BF55C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ movs r0, 0
+ strb r0, [r2]
+ strb r0, [r2, 0x1]
+ movs r1, 0
+ adds r2, 0x2
+ movs r3, 0
+_080BF576:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BF576
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF55C
+
+ thumb_func_start sub_80BF588
+sub_80BF588: @ 80BF588
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+_080BF58E:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF5D2
+ adds r0, r5, 0x1
+ b _080BF5CA
+_080BF5A0:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF5C8
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF5D2
+_080BF5C8:
+ adds r0, r2, 0x1
+_080BF5CA:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _080BF5A0
+_080BF5D2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080BF58E
+ movs r5, 0x5
+_080BF5DE:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ adds r5, 0x1
+ cmp r0, 0
+ bne _080BF62A
+ lsls r0, r5, 24
+ b _080BF624
+_080BF5F2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF620
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldr r0, _080BF61C
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF62A
+ .align 2, 0
+_080BF61C: .4byte gSaveBlock1 + 0x2738
+_080BF620:
+ adds r0, r2, 0x1
+ lsls r0, 24
+_080BF624:
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BF5F2
+_080BF62A:
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x17
+ bls _080BF5DE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF588
+
+ thumb_func_start sub_80BF638
+sub_80BF638: @ 80BF638
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80BF674
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080BF66C
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ muls r1, r5
+ ldr r2, _080BF670
+ adds r1, r2
+ bl StringCopy
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BF66C: .4byte gUnknown_083D1464
+_080BF670: .4byte gSpeciesNames
+ thumb_func_end sub_80BF638
+
+ thumb_func_start sub_80BF674
+sub_80BF674: @ 80BF674
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080BF694
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ b _080BF6B2
+ .align 2, 0
+_080BF694: .4byte 0x0000019b
+_080BF698:
+ cmp r4, 0x1
+ bne _080BF6A4
+ ldr r4, _080BF6A0
+ b _080BF6AA
+ .align 2, 0
+_080BF6A0: .4byte 0x0000019b
+_080BF6A4:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080BF6AA:
+ cmp r4, r6
+ bne _080BF6B2
+ adds r4, r5, 0
+ b _080BF6CE
+_080BF6B2:
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080BF698
+ cmp r4, r5
+ beq _080BF698
+_080BF6CE:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF674
+
+ thumb_func_start sub_80BF6D8
+sub_80BF6D8: @ 80BF6D8
+ push {lr}
+ ldr r0, _080BF700
+ bl sub_80BF720
+ ldr r1, _080BF704
+ strb r0, [r1]
+ ldr r2, _080BF708
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ strh r1, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080BF710
+ ldr r1, _080BF70C
+ movs r0, 0x1
+ b _080BF714
+ .align 2, 0
+_080BF700: .4byte gSaveBlock1 + 0x2738
+_080BF704: .4byte gUnknown_03005D38
+_080BF708: .4byte gUnknown_0202E8D0
+_080BF70C: .4byte gScriptResult
+_080BF710:
+ ldr r1, _080BF71C
+ movs r0, 0
+_080BF714:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF71C: .4byte gScriptResult
+ thumb_func_end sub_80BF6D8
+
+ thumb_func_start sub_80BF720
+sub_80BF720: @ 80BF720
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BF726:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF73A
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _080BF748
+_080BF73A:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF726
+ movs r0, 0x1
+ negs r0, r0
+_080BF748:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF720
+
+ thumb_func_start sub_80BF74C
+sub_80BF74C: @ 80BF74C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x5
+_080BF752:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF768
+ adds r0, r1, 0
+ b _080BF778
+_080BF768:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080BF752
+ movs r0, 0x1
+ negs r0, r0
+_080BF778:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF74C
+
+ thumb_func_start sub_80BF77C
+sub_80BF77C: @ 80BF77C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bls _080BF794
+ movs r0, 0x1
+ b _080BF796
+_080BF794:
+ movs r0, 0
+_080BF796:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF77C
+
+ thumb_func_start sub_80BF79C
+sub_80BF79C: @ 80BF79C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r4, 0x4
+ ldr r6, _080BF7B8
+ b _080BF7C2
+ .align 2, 0
+_080BF7B8: .4byte 0x0000ffff
+_080BF7BC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080BF7C2:
+ cmp r2, 0x6
+ bne _080BF7C8
+ movs r2, 0
+_080BF7C8:
+ lsls r1, r2, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r3, r4, 0x4
+ cmp r0, r6
+ beq _080BF7BC
+ ldr r0, _080BF7E4
+ adds r1, r3, r1
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF7E4: .4byte gStringVar3
+ thumb_func_end sub_80BF79C
+
+ thumb_func_start sub_80BF7E8
+sub_80BF7E8: @ 80BF7E8
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0xFF
+ beq _080BF814
+ adds r2, 0x4
+_080BF7F8:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BF814
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BF7F8
+_080BF814:
+ movs r0, 0x7
+ ands r3, r0
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF7E8
+
+ thumb_func_start sub_80BF820
+sub_80BF820: @ 80BF820
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0
+ movs r7, 0xFF
+_080BF844:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080BF844
+ cmp r3, 0
+ bne _080BF8A6
+ ldr r4, [sp, 0x20]
+ adds r4, 0xF
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF874
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF874:
+ cmp r6, 0x1
+ bne _080BF880
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF880:
+ cmp r6, 0x2
+ bne _080BF892
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF892:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8A6:
+ cmp r3, 0x1
+ bne _080BF8F4
+ ldr r4, [sp, 0x20]
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF8C2
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF8C2:
+ cmp r6, 0x1
+ bne _080BF8CE
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF8CE:
+ cmp r6, 0x2
+ bne _080BF8E0
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF8E0:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8F4:
+ movs r0, 0xB
+ muls r4, r0
+ ldr r7, _080BF910
+ adds r0, r4, r7
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF914
+ mov r0, sp
+ adds r1, r5, r4
+ b _080BF91E
+ .align 2, 0
+_080BF910: .4byte gSpeciesNames
+_080BF914:
+ cmp r6, 0x1
+ bne _080BF926
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4
+_080BF91E:
+ adds r1, r7
+_080BF920:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080BF954
+_080BF926:
+ cmp r6, 0x2
+ bne _080BF93A
+ mov r1, sp
+ adds r0, r5, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ b _080BF94E
+_080BF93A:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4
+_080BF94E:
+ adds r0, r7
+_080BF950:
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+_080BF954:
+ ldr r0, _080BF970
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r1, sp
+ bl StringCopy
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF970: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF820
+
+ thumb_func_start sub_80BF974
+sub_80BF974: @ 80BF974
+ push {r4,lr}
+ movs r1, 0
+ ldr r4, _080BF994
+ ldr r0, _080BF998
+ ldrh r2, [r0]
+ ldr r3, _080BF99C
+_080BF980:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BF9A0
+ movs r0, 0x1
+ b _080BF9AC
+ .align 2, 0
+_080BF994: .4byte gSaveBlock1
+_080BF998: .4byte gUnknown_0202E8CC
+_080BF99C: .4byte 0x00002738
+_080BF9A0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF980
+ movs r0, 0
+_080BF9AC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF974
+
+ thumb_func_start sub_80BF9B4
+sub_80BF9B4: @ 80BF9B4
+ push {r4,lr}
+ ldr r0, _080BF9E0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BF9E4
+ adds r0, r1
+ ldr r4, _080BF9E8
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _080BF9EC
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF9F0
+ bl sub_80BE478
+ movs r0, 0x1
+ b _080BF9F2
+ .align 2, 0
+_080BF9E0: .4byte gUnknown_0202E8CC
+_080BF9E4: .4byte gPlayerParty
+_080BF9E8: .4byte gStringVar1
+_080BF9EC: .4byte gStringVar3
+_080BF9F0:
+ movs r0, 0
+_080BF9F2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF9B4
+
+ thumb_func_start sub_80BF9F8
+sub_80BF9F8: @ 80BF9F8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _080BFAA0
+ mov r9, r0
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BFAA4
+ adds r0, r6
+ ldr r2, _080BFAA8
+ movs r1, 0x2
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ ldr r1, _080BFAAC
+ mov r10, r1
+ movs r1, 0x2
+ mov r2, r10
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl GetMonGender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _080BFAB0
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DoNamingScreen
+ 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
+_080BFAA0: .4byte gUnknown_0202E8CC
+_080BFAA4: .4byte gPlayerParty
+_080BFAA8: .4byte gStringVar3
+_080BFAAC: .4byte gStringVar2
+_080BFAB0: .4byte c2_080CC144
+ thumb_func_end sub_80BF9F8
+
+ thumb_func_start c2_080CC144
+c2_080CC144: @ 80BFAB4
+ push {lr}
+ ldr r0, _080BFAD4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFAD8
+ adds r0, r1
+ ldr r2, _080BFADC
+ movs r1, 0x2
+ bl SetMonData
+ bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFAD4: .4byte gUnknown_0202E8CC
+_080BFAD8: .4byte gPlayerParty
+_080BFADC: .4byte gStringVar2
+ thumb_func_end c2_080CC144
+
+ thumb_func_start sub_80BFAE0
+sub_80BFAE0: @ 80BFAE0
+ push {r4,lr}
+ ldr r0, _080BFB04
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB08
+ adds r0, r1
+ ldr r4, _080BFB0C
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB04: .4byte gUnknown_0202E8CC
+_080BFB08: .4byte gPlayerParty
+_080BFB0C: .4byte gStringVar1
+ thumb_func_end sub_80BFAE0
+
+ thumb_func_start sub_80BFB10
+sub_80BFB10: @ 80BFB10
+ push {r4,lr}
+ bl sub_80BFB94
+ adds r4, r0, 0
+ ldr r0, _080BFB38
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB3C
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ bne _080BFB44
+ ldr r1, _080BFB40
+ movs r0, 0
+ b _080BFB48
+ .align 2, 0
+_080BFB38: .4byte gUnknown_0202E8CC
+_080BFB3C: .4byte gPlayerParty
+_080BFB40: .4byte gScriptResult
+_080BFB44:
+ ldr r1, _080BFB50
+ movs r0, 0x1
+_080BFB48:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB50: .4byte gScriptResult
+ thumb_func_end sub_80BFB10
+
+ thumb_func_start sub_80BFB54
+sub_80BFB54: @ 80BFB54
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ beq _080BFB8A
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB6E
+ movs r0, 0x2
+ b _080BFB90
+_080BFB6E:
+ adds r0, r1, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB7E
+ movs r0, 0x3
+ b _080BFB90
+_080BFB7E:
+ adds r0, r2, 0
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080BFB8E
+_080BFB8A:
+ movs r0, 0
+ b _080BFB90
+_080BFB8E:
+ movs r0, 0x4
+_080BFB90:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BFB54
+
+ thumb_func_start sub_80BFB94
+sub_80BFB94: @ 80BFB94
+ ldr r2, _080BFBAC
+ ldrb r0, [r2, 0xD]
+ lsls r0, 24
+ ldrb r1, [r2, 0xC]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0xB]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0xA]
+ orrs r0, r1
+ bx lr
+ .align 2, 0
+_080BFBAC: .4byte gSaveBlock2
+ thumb_func_end sub_80BFB94
+
+ thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
+CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
+ push {lr}
+ ldr r1, _080BFBD0
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFBCC
+ ldr r0, _080BFBD4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFBD8
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080BFBE0
+_080BFBCC:
+ movs r0, 0
+ b _080BFC0A
+ .align 2, 0
+_080BFBD0: .4byte gSaveBlock1
+_080BFBD4: .4byte gSaveBlock2
+_080BFBD8:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFBCC
+_080BFBE0:
+ ldr r0, _080BFC04
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFBFE
+ movs r0, 0x83
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFC08
+_080BFBFE:
+ movs r0, 0x1
+ b _080BFC0A
+ .align 2, 0
+_080BFC04: .4byte 0x0000085d
+_080BFC08:
+ movs r0, 0x2
+_080BFC0A:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
+
+ thumb_func_start GetMomOrDadStringForTVMessage
+GetMomOrDadStringForTVMessage: @ 80BFC10
+ push {r4,lr}
+ ldr r1, _080BFC40
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFC6C
+ ldr r0, _080BFC44
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFC54
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080BFC6C
+ ldr r0, _080BFC48
+ ldr r1, _080BFC4C
+ bl StringCopy
+ ldr r0, _080BFC50
+ movs r1, 0x1
+ bl VarSet
+ b _080BFC6C
+ .align 2, 0
+_080BFC40: .4byte gSaveBlock1
+_080BFC44: .4byte gSaveBlock2
+_080BFC48: .4byte gStringVar1
+_080BFC4C: .4byte gOtherText_Mom
+_080BFC50: .4byte 0x00004003
+_080BFC54:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFC6C
+ ldr r0, _080BFCB4
+ ldr r1, _080BFCB8
+ bl StringCopy
+ ldr r0, _080BFCBC
+ movs r1, 0x1
+ bl VarSet
+_080BFC6C:
+ ldr r4, _080BFCBC
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080BFCAA
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _080BFCC0
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080BFCD4
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BFCC0
+_080BFCAA:
+ ldr r0, _080BFCB4
+ ldr r1, _080BFCB8
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCB4: .4byte gStringVar1
+_080BFCB8: .4byte gOtherText_Mom
+_080BFCBC: .4byte 0x00004003
+_080BFCC0:
+ ldr r0, _080BFCCC
+ ldr r1, _080BFCD0
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCCC: .4byte gStringVar1
+_080BFCD0: .4byte gOtherText_Dad
+_080BFCD4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BFD00
+ ldr r0, _080BFCF8
+ ldr r1, _080BFCFC
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl VarSet
+ b _080BFD10
+ .align 2, 0
+_080BFCF8: .4byte gStringVar1
+_080BFCFC: .4byte gOtherText_Mom
+_080BFD00:
+ ldr r0, _080BFD18
+ ldr r1, _080BFD1C
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl VarSet
+_080BFD10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD18: .4byte gStringVar1
+_080BFD1C: .4byte gOtherText_Dad
+ thumb_func_end GetMomOrDadStringForTVMessage
+
+ thumb_func_start sub_80BFD20
+sub_80BFD20: @ 80BFD20
+ push {lr}
+ ldr r0, _080BFD3C
+ movs r1, 0
+ bl VarSet
+ ldr r0, _080BFD40
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x5
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD3C: .4byte 0x000040bc
+_080BFD40: .4byte gSaveBlock1
+ thumb_func_end sub_80BFD20
+
+ thumb_func_start sub_80BFD44
+sub_80BFD44: @ 80BFD44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r4, 0
+_080BFD54:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 5
+ adds r0, r4
+ lsls r0, 2
+ ldr r5, _080BFD8C
+ adds r0, r5
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080BFD54
+ adds r4, r5, 0
+ cmp r6, 0x1
+ beq _080BFDBC
+ cmp r6, 0x1
+ bgt _080BFD90
+ cmp r6, 0
+ beq _080BFD9A
+ b _080BFDFC
+ .align 2, 0
+_080BFD8C: .4byte 0x02007000
+_080BFD90:
+ cmp r6, 0x2
+ beq _080BFDCC
+ cmp r6, 0x3
+ beq _080BFDE8
+ b _080BFDFC
+_080BFD9A:
+ ldr r0, _080BFDB4
+ movs r2, 0xE1
+ lsls r2, 2
+ adds r1, r4, r2
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r4, r3
+ ldr r5, _080BFDB8
+ adds r3, r4, r5
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDB4: .4byte gSaveBlock1 + 0x2738
+_080BFDB8: .4byte 0x00000a8c
+_080BFDBC:
+ ldr r1, _080BFDC8
+ movs r0, 0xE1
+ lsls r0, 3
+ adds r2, r4, r0
+ b _080BFDD4
+ .align 2, 0
+_080BFDC8: .4byte gSaveBlock1 + 0x2738
+_080BFDCC:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r4, r0
+ ldr r2, _080BFDE0
+_080BFDD4:
+ ldr r5, _080BFDE4
+ adds r3, r4, r5
+ adds r0, r4, 0
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDE0: .4byte gSaveBlock1 + 0x2738
+_080BFDE4: .4byte 0x00000a8c
+_080BFDE8:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r5, r0
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r5, r3
+ ldr r3, _080BFE20
+ adds r0, r5, 0
+ bl sub_80BFE24
+_080BFDFC:
+ ldr r4, _080BFE20
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C04A0
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C01D4
+ bl sub_80C0408
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFE20: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BFD44
+
+ thumb_func_start sub_80BFE24
+sub_80BFE24: @ 80BFE24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080BFEA0
+ strb r0, [r1]
+_080BFE50:
+ movs r6, 0
+ ldr r0, _080BFEA0
+ ldrb r1, [r0]
+ cmp r6, r1
+ bcs _080BFE50
+ mov r10, r0
+_080BFE5C:
+ cmp r6, 0
+ bne _080BFE64
+ ldr r2, _080BFEA4
+ strb r6, [r2]
+_080BFE64:
+ lsls r4, r6, 2
+ mov r3, sp
+ adds r0, r3, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80C019C
+ ldr r1, _080BFEA8
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r7, r4, 0
+ cmp r0, r1
+ bne _080BFEAC
+ ldr r1, _080BFEA4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080BFF58
+ adds r6, 0x1
+ mov r9, r6
+ b _080BFF3C
+ .align 2, 0
+_080BFEA0: .4byte gUnknown_03000720
+_080BFEA4: .4byte gUnknown_020387E4
+_080BFEA8: .4byte gUnknown_03000722
+_080BFEAC:
+ movs r5, 0
+ mov r3, r10
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r2, r6, 0x1
+ mov r9, r2
+ cmp r5, r0
+ bge _080BFF22
+ ldr r3, _080BFF4C
+ mov r8, r3
+_080BFEC0:
+ adds r0, r6, r5
+ adds r4, r0, 0x1
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BF74C
+ ldr r1, _080BFF50
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BFF12
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl __modsi3
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r3, sp
+ adds r1, r3, r7
+ ldr r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80BFF68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFF22
+_080BFF12:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080BFEC0
+_080BFF22:
+ mov r2, r10
+ ldrb r0, [r2]
+ subs r0, 0x1
+ cmp r5, r0
+ bne _080BFF3C
+ mov r3, sp
+ adds r0, r3, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldr r1, _080BFF54
+ ldrb r1, [r1]
+ bl sub_80BF55C
+_080BFF3C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r6, r2
+ bcc _080BFE5C
+ b _080BFE50
+ .align 2, 0
+_080BFF4C: .4byte gUnknown_03000720
+_080BFF50: .4byte gUnknown_03005D38
+_080BFF54: .4byte gUnknown_03000722
+_080BFF58:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BFE24
+
+ thumb_func_start sub_80BFF68
+sub_80BFF68: @ 80BFF68
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r4, [r0]
+ ldr r6, [r1]
+ movs r5, 0
+ ldr r2, _080BFFA4
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0]
+ str r2, [sp]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ ldr r2, [sp]
+ cmp r0, 0x3
+ beq _080BFFD8
+ cmp r0, 0x3
+ bgt _080BFFA8
+ cmp r0, 0x2
+ beq _080BFFAE
+ b _080C0026
+ .align 2, 0
+_080BFFA4: .4byte gUnknown_03000722
+_080BFFA8:
+ cmp r1, 0x4
+ beq _080C0000
+ b _080C0026
+_080BFFAE:
+ ldr r0, _080BFFD4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C004C
+ b _080C0022
+ .align 2, 0
+_080BFFD4: .4byte gUnknown_03005D38
+_080BFFD8:
+ ldr r0, _080BFFFC
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C00B4
+ b _080C0022
+ .align 2, 0
+_080BFFFC: .4byte gUnknown_03005D38
+_080C0000:
+ ldr r0, _080C0030
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C0134
+_080C0022:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C0026:
+ cmp r5, 0x1
+ beq _080C0034
+ movs r0, 0
+ b _080C0040
+ .align 2, 0
+_080C0030: .4byte gUnknown_03005D38
+_080C0034:
+ ldr r0, _080C0048
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80BF55C
+ movs r0, 0x1
+_080C0040:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C0048: .4byte gUnknown_03000722
+ thumb_func_end sub_80BFF68
+
+ thumb_func_start sub_80C004C
+sub_80C004C: @ 80C004C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ movs r0, 0
+ b _080C00AC
+_080C007C:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C00AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C004C
+
+ thumb_func_start sub_80C00B4
+sub_80C00B4: @ 80C00B4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r2, r0, 0
+ movs r3, 0xFF
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C00E0
+ lsrs r0, r2, 8
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C0100
+_080C00E0:
+ movs r3, 0xFF
+ adds r0, r2, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x22
+ lsrs r5, r2, 8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+ adds r0, r5, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+_080C0100:
+ movs r0, 0
+ b _080C012C
+_080C0104:
+ ldrb r1, [r4, 0x1E]
+ adds r0, r4, 0
+ adds r0, 0x20
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x21
+ strb r0, [r1]
+ strb r2, [r4, 0x1E]
+ strb r5, [r4, 0x1F]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C012C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C00B4
+
+ thumb_func_start sub_80C0134
+sub_80C0134: @ 80C0134
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ movs r0, 0
+ b _080C0196
+_080C0164:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x16]
+_080C0196:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0134
+
+ thumb_func_start sub_80C019C
+sub_80C019C: @ 80C019C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+_080C01A2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080C01C2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _080C01C2
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C01D0
+_080C01C2:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080C01A2
+ movs r0, 0x1
+ negs r0, r0
+_080C01D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C019C
+
+ thumb_func_start sub_80C01D4
+sub_80C01D4: @ 80C01D4
+ push {r4-r6,lr}
+ movs r6, 0
+_080C01D8:
+ ldr r0, _080C01F8
+ lsls r2, r6, 3
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080C01FC
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x29
+ bls _080C01EE
+ b _080C038C
+_080C01EE:
+ lsls r0, 2
+ ldr r1, _080C0200
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C01F8: .4byte gSaveBlock1
+_080C01FC: .4byte 0x00002738
+_080C0200: .4byte _080C0204
+ .align 2, 0
+_080C0204:
+ .4byte _080C0394
+ .4byte _080C02AC
+ .4byte _080C0394
+ .4byte _080C02BC
+ .4byte _080C02CC
+ .4byte _080C02DC
+ .4byte _080C02F8
+ .4byte _080C0308
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0324
+ .4byte _080C0394
+ .4byte _080C0334
+ .4byte _080C0350
+ .4byte _080C0368
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0394
+_080C02AC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02B8
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02B8: .4byte gSaveBlock1 + 0x2738
+_080C02BC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02C8
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02C8: .4byte gSaveBlock1 + 0x2738
+_080C02CC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02D8
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ b _080C035A
+ .align 2, 0
+_080C02D8: .4byte gSaveBlock1 + 0x2738
+_080C02DC:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C02F4
+ adds r4, r0
+ ldrh r0, [r4, 0x2]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x1C]
+ b _080C037E
+ .align 2, 0
+_080C02F4: .4byte gSaveBlock1 + 0x2738
+_080C02F8:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0304
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C0304: .4byte gSaveBlock1 + 0x2738
+_080C0308:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0320
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x14]
+ b _080C037E
+ .align 2, 0
+_080C0320: .4byte gSaveBlock1 + 0x2738
+_080C0324:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0330
+ adds r0, r1
+ ldrh r0, [r0, 0x10]
+ b _080C035A
+ .align 2, 0
+_080C0330: .4byte gSaveBlock1 + 0x2738
+_080C0334:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C034C
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0xE]
+ b _080C037E
+ .align 2, 0
+_080C034C: .4byte gSaveBlock1 + 0x2738
+_080C0350:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0364
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+_080C035A:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0364: .4byte gSaveBlock1 + 0x2738
+_080C0368:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0388
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x4]
+_080C037E:
+ adds r1, r5, 0
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0388: .4byte gSaveBlock1 + 0x2738
+_080C038C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80C03A8
+_080C0394:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x17
+ bhi _080C03A0
+ b _080C01D8
+_080C03A0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C01D4
+
+ thumb_func_start sub_80C03A8
+sub_80C03A8: @ 80C03A8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C03C0
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080C03C4
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C03C0: .4byte gSaveBlock1
+_080C03C4: .4byte 0x00002739
+ thumb_func_end sub_80C03A8
+
+ thumb_func_start sub_80C03C8
+sub_80C03C8: @ 80C03C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r2, 0
+ bne _080C03F8
+ ldr r1, _080C0400
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080C0404
+ adds r0, r1
+ strb r2, [r0]
+_080C03F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0400: .4byte gSaveBlock1
+_080C0404: .4byte 0x00002739
+ thumb_func_end sub_80C03C8
+
+ thumb_func_start sub_80C0408
+sub_80C0408: @ 80C0408
+ push {r4-r6,lr}
+ ldr r0, _080C044C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C0444
+ movs r2, 0
+ ldr r6, _080C0450
+ ldr r4, _080C0454
+ movs r3, 0
+ ldr r5, _080C0458
+_080C0422:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080C0436
+ cmp r0, 0x29
+ bne _080C043A
+_080C0436:
+ adds r0, r1, r4
+ strb r3, [r0]
+_080C043A:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x17
+ bls _080C0422
+_080C0444:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C044C: .4byte 0x00000804
+_080C0450: .4byte gSaveBlock1
+_080C0454: .4byte 0x00002739
+_080C0458: .4byte 0x00002738
+ thumb_func_end sub_80C0408
+
+ thumb_func_start sub_80C045C
+sub_80C045C: @ 80C045C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _080C0494
+_080C0462:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ adds r4, r0, r6
+ ldr r1, _080C0498
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C0484
+ ldr r0, _080C049C
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+_080C0484:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080C0462
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0494: .4byte gSaveBlock1
+_080C0498: .4byte 0x00002738
+_080C049C: .4byte 0x00002739
+ thumb_func_end sub_80C045C
+
+ thumb_func_start sub_80C04A0
+sub_80C04A0: @ 80C04A0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0x5
+ ldr r5, _080C0508
+ ldr r4, _080C050C
+_080C04AA:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C04C8
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+_080C04C8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080C04AA
+ movs r2, 0
+ lsls r0, r3, 24
+ asrs r0, 24
+ movs r1, 0x5
+ subs r0, r1, r0
+ cmp r2, r0
+ bge _080C0502
+ adds r5, r0, 0
+_080C04E4:
+ lsls r1, r2, 24
+ asrs r4, r1, 24
+ movs r0, 0xA0
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ ldr r0, _080C0510
+ bl sub_80BF55C
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r2, r4, 24
+ asrs r4, 24
+ cmp r4, r5
+ blt _080C04E4
+_080C0502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0508: .4byte gSaveBlock1
+_080C050C: .4byte 0x00002738
+_080C0510: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80C04A0
+
+ thumb_func_start sub_80C0514
+sub_80C0514: @ 80C0514
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r4, 0
+_080C0524:
+ lsls r0, r4, 6
+ ldr r6, _080C0550
+ adds r0, r6
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080C0524
+ adds r4, r6, 0
+ cmp r5, 0x1
+ beq _080C0578
+ cmp r5, 0x1
+ bgt _080C0554
+ cmp r5, 0
+ beq _080C055E
+ b _080C05AC
+ .align 2, 0
+_080C0550: .4byte 0x02007000
+_080C0554:
+ cmp r5, 0x2
+ beq _080C0584
+ cmp r5, 0x3
+ beq _080C059C
+ b _080C05AC
+_080C055E:
+ ldr r0, _080C0574
+ adds r1, r4, 0
+ adds r1, 0x40
+ adds r2, r4, 0
+ adds r2, 0x80
+ adds r3, r4, 0
+ adds r3, 0xC0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0574: .4byte gSaveBlock1 + 0x2ABC
+_080C0578:
+ ldr r1, _080C0580
+ adds r2, r4, 0
+ adds r2, 0x80
+ b _080C058A
+ .align 2, 0
+_080C0580: .4byte gSaveBlock1 + 0x2ABC
+_080C0584:
+ adds r1, r4, 0
+ adds r1, 0x40
+ ldr r2, _080C0598
+_080C058A:
+ adds r3, r4, 0
+ adds r3, 0xC0
+ adds r0, r4, 0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0598: .4byte gSaveBlock1 + 0x2ABC
+_080C059C:
+ adds r1, r6, 0
+ adds r1, 0x40
+ adds r2, r6, 0
+ adds r2, 0x80
+ ldr r3, _080C05C0
+ adds r0, r6, 0
+ bl sub_80C05C4
+_080C05AC:
+ bl sub_80C0750
+ bl sub_80C0788
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C05C0: .4byte gSaveBlock1 + 0x2ABC
+ thumb_func_end sub_80C0514
+
+ thumb_func_start sub_80C05C4
+sub_80C05C4: @ 80C05C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080C0600
+ strb r0, [r1]
+ movs r0, 0
+ mov r10, r0
+_080C05F4:
+ movs r7, 0
+ mov r1, r10
+ adds r1, 0x1
+ str r1, [sp, 0x20]
+ b _080C068C
+ .align 2, 0
+_080C0600: .4byte gUnknown_03000721
+_080C0604:
+ lsls r4, r7, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_80C0730
+ ldr r1, _080C06B0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r4
+ adds r1, r7, 0x1
+ mov r9, r1
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0686
+ movs r5, 0
+ ldr r1, _080C06B4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ bge _080C0686
+ adds r6, r1, 0
+_080C0638:
+ adds r0, r7, r5
+ adds r4, r0, 0x1
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BEBC8
+ ldr r1, _080C06B8
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0678
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r1, sp
+ add r1, r8
+ ldr r1, [r1]
+ bl sub_80C06BC
+_080C0678:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080C0638
+_080C0686:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+_080C068C:
+ ldr r0, _080C06B4
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080C0604
+ ldr r1, [sp, 0x20]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0xF
+ bls _080C05F4
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06B0: .4byte gUnknown_03000722
+_080C06B4: .4byte gUnknown_03000721
+_080C06B8: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C05C4
+
+ thumb_func_start sub_80C06BC
+sub_80C06BC: @ 80C06BC
+ push {lr}
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _080C06E0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r2, 2
+ adds r1, r2
+ ldr r2, _080C06E4
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ bl sub_80C06E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06E0: .4byte gUnknown_03000722
+_080C06E4: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C06BC
+
+ thumb_func_start sub_80C06E8
+sub_80C06E8: @ 80C06E8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ cmp r0, 0
+ bne _080C06FE
+_080C06FA:
+ movs r0, 0
+ b _080C072A
+_080C06FE:
+ movs r1, 0
+ adds r2, r3, 0
+ adds r3, r0, 0
+_080C0704:
+ lsls r0, r1, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _080C06FA
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C0704
+ lsls r0, r6, 24
+ asrs r0, 22
+ adds r0, r4
+ strb r2, [r0]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ ldrh r1, [r5, 0x2]
+ strh r1, [r0, 0x2]
+ movs r0, 0x1
+_080C072A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C06E8
+
+ thumb_func_start sub_80C0730
+sub_80C0730: @ 80C0730
+ push {lr}
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r1, r2, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C0746
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C074A
+_080C0746:
+ movs r0, 0x1
+ negs r0, r0
+_080C074A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0730
+
+ thumb_func_start sub_80C0750
+sub_80C0750: @ 80C0750
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C0780
+_080C0756:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r1, _080C0784
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _080C076A
+ adds r0, r4, 0
+ bl sub_80BEC10
+_080C076A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080C0756
+ bl sub_80BEC40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0780: .4byte gSaveBlock1
+_080C0784: .4byte 0x00002abc
+ thumb_func_end sub_80C0750
+
+ thumb_func_start sub_80C0788
+sub_80C0788: @ 80C0788
+ push {r4,lr}
+ ldr r0, _080C07B8
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C07B2
+ movs r1, 0
+ ldr r4, _080C07BC
+ ldr r3, _080C07C0
+ movs r2, 0
+_080C07A0:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C07A0
+_080C07B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C07B8: .4byte 0x00000804
+_080C07BC: .4byte gSaveBlock1
+_080C07C0: .4byte 0x00002abd
+ thumb_func_end sub_80C0788
+
+ thumb_func_start sub_80C07C4
+sub_80C07C4: @ 80C07C4
+ push {lr}
+ ldr r2, _080C07F8
+ ldr r0, _080C07FC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldr r2, _080C0800
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C07E0
+ b _080C08F8
+_080C07E0:
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x28
+ bls _080C07EE
+ b _080C08F8
+_080C07EE:
+ lsls r0, 2
+ ldr r1, _080C0804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C07F8: .4byte gSaveBlock1
+_080C07FC: .4byte gUnknown_0202E8CC
+_080C0800: .4byte 0x00002739
+_080C0804: .4byte _080C0808
+ .align 2, 0
+_080C0808:
+ .4byte _080C08AC
+ .4byte _080C08B2
+ .4byte _080C08B8
+ .4byte _080C08BE
+ .4byte _080C08E2
+ .4byte _080C08CA
+ .4byte _080C08D0
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08D6
+ .4byte _080C08DC
+ .4byte _080C08E8
+ .4byte _080C08EE
+ .4byte _080C08F4
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08C4
+_080C08AC:
+ bl DoTVShowPokemonFanClubLetter
+ b _080C08F8
+_080C08B2:
+ bl DoTVShowRecentHappenings
+ b _080C08F8
+_080C08B8:
+ bl DoTVShowPokemonFanClubOpinions
+ b _080C08F8
+_080C08BE:
+ bl nullsub_22
+ b _080C08F8
+_080C08C4:
+ bl DoTVShowPokemonNewsMassOutbreak
+ b _080C08F8
+_080C08CA:
+ bl DoTVShowBravoTrainerPokemonProfile
+ b _080C08F8
+_080C08D0:
+ bl sub_80C0B9C
+ b _080C08F8
+_080C08D6:
+ bl DoTVShowPokemonTodaySuccessfulCapture
+ b _080C08F8
+_080C08DC:
+ bl DoTVShowTodaysSmartShopper
+ b _080C08F8
+_080C08E2:
+ bl DoTVShowTheNameRaterShow
+ b _080C08F8
+_080C08E8:
+ bl DoTVShowPokemonTodayFailedCapture
+ b _080C08F8
+_080C08EE:
+ bl DoTVShowPokemonAngler
+ b _080C08F8
+_080C08F4:
+ bl DoTVShowTheWorldOfMasters
+_080C08F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C07C4
+
+ thumb_func_start sub_80C08FC
+sub_80C08FC: @ 80C08FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ bl StringCopy
+ cmp r4, 0x1
+ bhi _080C0914
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C0914:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C08FC
+
+ thumb_func_start DoTVShowBravoTrainerPokemonProfile
+DoTVShowBravoTrainerPokemonProfile: @ 80C091C
+ push {r4,r5,lr}
+ ldr r0, _080C0948
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C094C
+ adds r4, r0, r1
+ ldr r1, _080C0950
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0954
+ ldrb r5, [r0]
+ cmp r5, 0x8
+ bls _080C093C
+ b _080C0B7A
+_080C093C:
+ lsls r0, r5, 2
+ ldr r1, _080C0958
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0948: .4byte gUnknown_0202E8CC
+_080C094C: .4byte gSaveBlock1 + 0x2738
+_080C0950: .4byte gScriptResult
+_080C0954: .4byte gUnknown_020387E8
+_080C0958: .4byte _080C095C
+ .align 2, 0
+_080C095C:
+ .4byte _080C0980
+ .4byte _080C09D8
+ .4byte _080C0A10
+ .4byte _080C0A40
+ .4byte _080C0A74
+ .4byte _080C0AA8
+ .4byte _080C0AEC
+ .4byte _080C0B34
+ .4byte _080C0B64
+_080C0980:
+ ldr r0, _080C09C0
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldrb r1, [r4, 0x13]
+ lsls r1, 27
+ lsrs r1, 30
+ movs r0, 0x2
+ bl sub_80BEF10
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080C09C4
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080C09CC
+ ldr r1, _080C09C8
+ movs r0, 0x8
+ b _080C0B78
+ .align 2, 0
+_080C09C0: .4byte gStringVar1
+_080C09C4: .4byte gSpeciesNames
+_080C09C8: .4byte gUnknown_020387E8
+_080C09CC:
+ ldr r1, _080C09D4
+ movs r0, 0x1
+ b _080C0B78
+ .align 2, 0
+_080C09D4: .4byte gUnknown_020387E8
+_080C09D8:
+ ldr r0, _080C0A04
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0A08
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0A0C
+ adds r1, r4, 0
+ adds r1, 0x8
+ ldrb r2, [r4, 0x1F]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x2
+ bl CopyContestCategoryToStringVar
+ b _080C0B74
+ .align 2, 0
+_080C0A04: .4byte gStringVar1
+_080C0A08: .4byte gSpeciesNames
+_080C0A0C: .4byte gStringVar2
+_080C0A10:
+ ldr r0, _080C0A2C
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _080C0A34
+ ldr r1, _080C0A30
+ movs r0, 0x3
+ b _080C0B78
+ .align 2, 0
+_080C0A2C: .4byte gStringVar1
+_080C0A30: .4byte gUnknown_020387E8
+_080C0A34:
+ ldr r1, _080C0A3C
+ movs r0, 0x4
+ b _080C0B78
+ .align 2, 0
+_080C0A3C: .4byte gUnknown_020387E8
+_080C0A40:
+ ldr r0, _080C0A68
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0A6C
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0A70
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A68: .4byte gStringVar1
+_080C0A6C: .4byte gStringVar2
+_080C0A70: .4byte gUnknown_020387E8
+_080C0A74:
+ ldr r0, _080C0A9C
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0AA0
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0AA4
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A9C: .4byte gStringVar1
+_080C0AA0: .4byte gStringVar2
+_080C0AA4: .4byte gUnknown_020387E8
+_080C0AA8:
+ ldr r0, _080C0AD4
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldr r0, _080C0AD8
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldrh r0, [r4, 0x14]
+ cmp r0, 0
+ beq _080C0AE0
+ ldr r1, _080C0ADC
+ movs r0, 0x6
+ b _080C0B78
+ .align 2, 0
+_080C0AD4: .4byte gStringVar1
+_080C0AD8: .4byte gStringVar3
+_080C0ADC: .4byte gUnknown_020387E8
+_080C0AE0:
+ ldr r1, _080C0AE8
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0AE8: .4byte gUnknown_020387E8
+_080C0AEC:
+ ldr r0, _080C0B1C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B20
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B24
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C0B28
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B2C
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldr r1, _080C0B30
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0B1C: .4byte gStringVar1
+_080C0B20: .4byte gSpeciesNames
+_080C0B24: .4byte gStringVar2
+_080C0B28: .4byte gMoveNames
+_080C0B2C: .4byte gStringVar3
+_080C0B30: .4byte gUnknown_020387E8
+_080C0B34:
+ ldr r0, _080C0B58
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0B5C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B60
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ b _080C0B7A
+ .align 2, 0
+_080C0B58: .4byte gStringVar1
+_080C0B5C: .4byte gStringVar2
+_080C0B60: .4byte gSpeciesNames
+_080C0B64:
+ ldr r0, _080C0B8C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B90
+ adds r1, r2
+ bl StringCopy
+_080C0B74:
+ ldr r1, _080C0B94
+ movs r0, 0x2
+_080C0B78:
+ strb r0, [r1]
+_080C0B7A:
+ ldr r0, _080C0B98
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0B8C: .4byte gStringVar1
+_080C0B90: .4byte gSpeciesNames
+_080C0B94: .4byte gUnknown_020387E8
+_080C0B98: .4byte gUnknown_083D1524
+ thumb_func_end DoTVShowBravoTrainerPokemonProfile
+
+ thumb_func_start sub_80C0B9C
+sub_80C0B9C: @ 80C0B9C
+ push {r4,r5,lr}
+ ldr r0, _080C0BC8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0BCC
+ adds r4, r0, r1
+ ldr r1, _080C0BD0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0BD4
+ ldrb r5, [r0]
+ adds r2, r0, 0
+ cmp r5, 0xE
+ bls _080C0BBE
+ b _080C0DDE
+_080C0BBE:
+ lsls r0, r5, 2
+ ldr r1, _080C0BD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0BC8: .4byte gUnknown_0202E8CC
+_080C0BCC: .4byte gSaveBlock1 + 0x2738
+_080C0BD0: .4byte gScriptResult
+_080C0BD4: .4byte gUnknown_020387E8
+_080C0BD8: .4byte _080C0BDC
+ .align 2, 0
+_080C0BDC:
+ .4byte _080C0C18
+ .4byte _080C0C5C
+ .4byte _080C0C8C
+ .4byte _080C0CB0
+ .4byte _080C0CDC
+ .4byte _080C0D24
+ .4byte _080C0D30
+ .4byte _080C0D3C
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D5C
+ .4byte _080C0D88
+ .4byte _080C0D88
+ .4byte _080C0DC0
+_080C0C18:
+ ldr r0, _080C0C40
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0C44
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0C48
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0x6
+ bls _080C0C50
+ ldr r1, _080C0C4C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C40: .4byte gStringVar1
+_080C0C44: .4byte gStringVar2
+_080C0C48: .4byte gSpeciesNames
+_080C0C4C: .4byte gUnknown_020387E8
+_080C0C50:
+ ldr r1, _080C0C58
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C58: .4byte gUnknown_020387E8
+_080C0C5C:
+ ldrb r1, [r4, 0x1A]
+ movs r0, 0
+ bl sub_80BF088
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0x1
+ bne _080C0C80
+ ldr r1, _080C0C7C
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C7C: .4byte gUnknown_020387E8
+_080C0C80:
+ ldr r1, _080C0C88
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C88: .4byte gUnknown_020387E8
+_080C0C8C:
+ ldr r0, _080C0CAC
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x16]
+ adds r1, 0x1
+ movs r0, 0x1
+ bl sub_80BF088
+_080C0CA2:
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ beq _080C0CFE
+ b _080C0D18
+ .align 2, 0
+_080C0CAC: .4byte gStringVar1
+_080C0CB0:
+ ldr r0, _080C0CD0
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0CD4
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0CD8
+ adds r1, r2
+ bl StringCopy
+ b _080C0CA2
+ .align 2, 0
+_080C0CD0: .4byte gStringVar1
+_080C0CD4: .4byte gStringVar2
+_080C0CD8: .4byte gSpeciesNames
+_080C0CDC:
+ ldr r0, _080C0D08
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0D0C
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0D10
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D18
+_080C0CFE:
+ ldr r1, _080C0D14
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D08: .4byte gStringVar1
+_080C0D0C: .4byte gStringVar2
+_080C0D10: .4byte gSpeciesNames
+_080C0D14: .4byte gUnknown_020387E8
+_080C0D18:
+ ldr r1, _080C0D20
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D20: .4byte gUnknown_020387E8
+_080C0D24:
+ ldr r0, _080C0D2C
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D2C: .4byte gStringVar1
+_080C0D30:
+ ldr r0, _080C0D38
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D38: .4byte gStringVar1
+_080C0D3C:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C0DDE
+_080C0D42:
+ ldr r0, _080C0D54
+ adds r1, r4, 0x2
+_080C0D46:
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0D58
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D54: .4byte gStringVar1
+_080C0D58: .4byte gUnknown_020387E8
+_080C0D5C:
+ ldr r0, _080C0D74
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D7C
+ ldr r1, _080C0D78
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D74: .4byte gStringVar1
+_080C0D78: .4byte gUnknown_020387E8
+_080C0D7C:
+ ldr r1, _080C0D84
+ movs r0, 0xD
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D84: .4byte gUnknown_020387E8
+_080C0D88:
+ ldr r0, _080C0DB0
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldr r0, _080C0DB4
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DB8
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0DBC
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0DB0: .4byte gStringVar1
+_080C0DB4: .4byte gStringVar2
+_080C0DB8: .4byte gStringVar3
+_080C0DBC: .4byte gUnknown_020387E8
+_080C0DC0:
+ ldr r0, _080C0DF0
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DF4
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0DF8
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C0DDE:
+ ldr r0, _080C0DFC
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0DF0: .4byte gStringVar1
+_080C0DF4: .4byte gStringVar2
+_080C0DF8: .4byte gSpeciesNames
+_080C0DFC: .4byte gUnknown_083D1548
+ thumb_func_end sub_80C0B9C
+
+ thumb_func_start DoTVShowTodaysSmartShopper
+DoTVShowTodaysSmartShopper: @ 80C0E00
+ push {r4-r6,lr}
+ ldr r0, _080C0E2C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0E30
+ adds r5, r0, r1
+ ldr r1, _080C0E34
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0E38
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xC
+ bls _080C0E22
+ b _080C1014
+_080C0E22:
+ lsls r0, r6, 2
+ ldr r1, _080C0E3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0E2C: .4byte gUnknown_0202E8CC
+_080C0E30: .4byte gSaveBlock1 + 0x2738
+_080C0E34: .4byte gScriptResult
+_080C0E38: .4byte gUnknown_020387E8
+_080C0E3C: .4byte _080C0E40
+ .align 2, 0
+_080C0E40:
+ .4byte _080C0E74
+ .4byte _080C0EB0
+ .4byte _080C0EF8
+ .4byte _080C0F0A
+ .4byte _080C0EF8
+ .4byte _080C0EF8
+ .4byte _080C0F34
+ .4byte _080C0F64
+ .4byte _080C0F94
+ .4byte _080C0FA0
+ .4byte _080C0FAE
+ .4byte _080C0FC0
+ .4byte _080C1004
+_080C0E74:
+ ldr r0, _080C0E98
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r0, _080C0E9C
+ ldrb r1, [r5, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0EA4
+ ldr r1, _080C0EA0
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0E98: .4byte gStringVar1
+_080C0E9C: .4byte gStringVar2
+_080C0EA0: .4byte gUnknown_020387E8
+_080C0EA4:
+ ldr r1, _080C0EAC
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0EAC: .4byte gUnknown_020387E8
+_080C0EB0:
+ ldr r0, _080C0EEC
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0EF0
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xC]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r4, _080C0EF4
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C1014
+ .align 2, 0
+_080C0EEC: .4byte gStringVar1
+_080C0EF0: .4byte gStringVar2
+_080C0EF4: .4byte gUnknown_020387E8
+_080C0EF8:
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F04
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1014
+_080C0F04:
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C1014
+_080C0F0A:
+ ldrh r1, [r5, 0xC]
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F28
+ ldr r1, _080C0F24
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F24: .4byte gUnknown_020387E8
+_080C0F28:
+ ldr r1, _080C0F30
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F30: .4byte gUnknown_020387E8
+_080C0F34:
+ ldr r4, _080C0F5C
+ ldrh r0, [r5, 0x8]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xE]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0xA]
+ cmp r0, 0
+ beq _080C0F7C
+ ldr r1, _080C0F60
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F5C: .4byte gStringVar2
+_080C0F60: .4byte gUnknown_020387E8
+_080C0F64:
+ ldr r4, _080C0F8C
+ ldrh r0, [r5, 0xA]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF088
+_080C0F7C:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ beq _080C0FE2
+ ldr r1, _080C0F90
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F8C: .4byte gStringVar2
+_080C0F90: .4byte gUnknown_020387E8
+_080C0F94:
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0FBA
+ movs r0, 0xC
+ strb r0, [r2]
+ b _080C1014
+_080C0FA0:
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl sub_80BF154
+ bl TVShowDone
+ b _080C1014
+_080C0FAE:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FBA
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1014
+_080C0FBA:
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C1014
+_080C0FC0:
+ ldr r0, _080C0FEC
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0FF0
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FF8
+_080C0FE2:
+ ldr r1, _080C0FF4
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0FEC: .4byte gStringVar1
+_080C0FF0: .4byte gStringVar2
+_080C0FF4: .4byte gUnknown_020387E8
+_080C0FF8:
+ ldr r1, _080C1000
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C1000: .4byte gUnknown_020387E8
+_080C1004:
+ ldr r0, _080C1028
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C1014:
+ ldr r0, _080C102C
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1028: .4byte gStringVar1
+_080C102C: .4byte gUnknown_083D14F0
+ thumb_func_end DoTVShowTodaysSmartShopper
+
+ thumb_func_start DoTVShowTheNameRaterShow
+DoTVShowTheNameRaterShow: @ 80C1030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080C1060
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1064
+ adds r6, r0, r1
+ ldr r1, _080C1068
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C106C
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x12
+ bls _080C1054
+ b _080C138A
+_080C1054:
+ lsls r0, r7, 2
+ ldr r1, _080C1070
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1060: .4byte gUnknown_0202E8CC
+_080C1064: .4byte gSaveBlock1 + 0x2738
+_080C1068: .4byte gScriptResult
+_080C106C: .4byte gUnknown_020387E8
+_080C1070: .4byte _080C1074
+ .align 2, 0
+_080C1074:
+ .4byte _080C10C0
+ .4byte _080C1108
+ .4byte _080C112A
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C136C
+ .4byte _080C11CC
+ .4byte _080C1228
+ .4byte _080C127C
+ .4byte _080C12D4
+ .4byte _080C1314
+ .4byte _080C1370
+_080C10C0:
+ ldr r0, _080C10F4
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C10F8
+ ldrh r2, [r6, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C10FC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1100
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r4, _080C1104
+ adds r0, r6, 0
+ bl sub_80BF7E8
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080C138A
+ .align 2, 0
+_080C10F4: .4byte gStringVar1
+_080C10F8: .4byte gStringVar2
+_080C10FC: .4byte gSpeciesNames
+_080C1100: .4byte gStringVar3
+_080C1104: .4byte gUnknown_020387E8
+_080C1108:
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C1114
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C138A
+_080C1114:
+ cmp r0, 0x1
+ bne _080C111E
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C138A
+_080C111E:
+ cmp r0, 0x2
+ beq _080C1124
+ b _080C138A
+_080C1124:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C138A
+_080C112A:
+ ldr r0, _080C1144
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C114C
+ ldr r1, _080C1148
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1144: .4byte gStringVar1
+_080C1148: .4byte gUnknown_020387E8
+_080C114C:
+ cmp r0, 0x1
+ bne _080C115C
+ ldr r1, _080C1158
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1158: .4byte gUnknown_020387E8
+_080C115C:
+ cmp r0, 0x2
+ beq _080C1162
+ b _080C138A
+_080C1162:
+ ldr r1, _080C116C
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C116C: .4byte gUnknown_020387E8
+_080C1170:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11BC
+ ldr r4, _080C11C0
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11C4
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C11C8
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C11BC: .4byte gStringVar3
+_080C11C0: .4byte gStringVar1
+_080C11C4: .4byte gStringVar2
+_080C11C8: .4byte gUnknown_020387E8
+_080C11CC:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1218
+ ldr r4, _080C121C
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1220
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C1224
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1218: .4byte gStringVar3
+_080C121C: .4byte gStringVar1
+_080C1220: .4byte gStringVar2
+_080C1224: .4byte gUnknown_020387E8
+_080C1228:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1270
+ ldr r4, _080C1274
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1278
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ b _080C1354
+ .align 2, 0
+_080C1270: .4byte gStringVar3
+_080C1274: .4byte gStringVar1
+_080C1278: .4byte gStringVar2
+_080C127C:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C12C4
+ ldr r4, _080C12C8
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r1, [r6, 0x2]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C12CC
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C12D0
+ movs r0, 0x10
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C12C4: .4byte gStringVar1
+_080C12C8: .4byte gStringVar2
+_080C12CC: .4byte gSpeciesNames
+_080C12D0: .4byte gUnknown_020387E8
+_080C12D4:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1308
+ ldr r1, _080C130C
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C1310
+ movs r0, 0x11
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1308: .4byte gStringVar3
+_080C130C: .4byte gStringVar1
+_080C1310: .4byte gUnknown_020387E8
+_080C1314:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C135C
+ ldr r4, _080C1360
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x1C]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldrh r1, [r6, 0x1C]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C1364
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+_080C1354:
+ ldr r1, _080C1368
+ movs r0, 0x12
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C135C: .4byte gStringVar1
+_080C1360: .4byte gStringVar2
+_080C1364: .4byte gSpeciesNames
+_080C1368: .4byte gUnknown_020387E8
+_080C136C:
+ movs r7, 0x12
+ strb r7, [r2]
+_080C1370:
+ ldr r0, _080C13A0
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r0, _080C13A4
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C138A:
+ ldr r0, _080C13A8
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C13A0: .4byte gStringVar1
+_080C13A4: .4byte gStringVar2
+_080C13A8: .4byte gUnknown_083D1584
+ thumb_func_end DoTVShowTheNameRaterShow
+
+ thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
+DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
+ push {r4-r6,lr}
+ ldr r0, _080C13D8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C13DC
+ adds r5, r0, r1
+ ldr r1, _080C13E0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C13E4
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xB
+ bls _080C13CE
+ b _080C15DC
+_080C13CE:
+ lsls r0, r6, 2
+ ldr r1, _080C13E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C13D8: .4byte gUnknown_0202E8CC
+_080C13DC: .4byte gSaveBlock1 + 0x2738
+_080C13E0: .4byte gScriptResult
+_080C13E4: .4byte gUnknown_020387E8
+_080C13E8: .4byte _080C13EC
+ .align 2, 0
+_080C13EC:
+ .4byte _080C141C
+ .4byte _080C1470
+ .4byte _080C1476
+ .4byte _080C14B0
+ .4byte _080C14E8
+ .4byte _080C14EE
+ .4byte _080C1524
+ .4byte _080C1578
+ .4byte _080C1578
+ .4byte _080C15A8
+ .4byte _080C15A8
+ .4byte _080C15D8
+_080C141C:
+ ldr r0, _080C1450
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1454
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1458
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C145C
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrb r0, [r5, 0xF]
+ cmp r0, 0x1
+ bne _080C1464
+ ldr r1, _080C1460
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1450: .4byte gStringVar1
+_080C1454: .4byte gStringVar2
+_080C1458: .4byte gSpeciesNames
+_080C145C: .4byte gStringVar3
+_080C1460: .4byte gUnknown_020387E8
+_080C1464:
+ ldr r1, _080C146C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C146C: .4byte gUnknown_020387E8
+_080C1470:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C15DC
+_080C1476:
+ ldr r4, _080C149C
+ ldrb r0, [r5, 0xF]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r1, [r5, 0x12]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrb r0, [r5, 0x12]
+ cmp r0, 0x3
+ bhi _080C14A4
+ ldr r1, _080C14A0
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C149C: .4byte gStringVar2
+_080C14A0: .4byte gUnknown_020387E8
+_080C14A4:
+ ldr r1, _080C14AC
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C14AC: .4byte gUnknown_020387E8
+_080C14B0:
+ ldr r0, _080C14D8
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C14DC
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C14E0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C14E4
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ b _080C150A
+ .align 2, 0
+_080C14D8: .4byte gStringVar1
+_080C14DC: .4byte gStringVar2
+_080C14E0: .4byte gSpeciesNames
+_080C14E4: .4byte gStringVar3
+_080C14E8:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C15DC
+_080C14EE:
+ ldr r0, _080C1514
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1518
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C151C
+ adds r1, r2
+ bl StringCopy
+_080C150A:
+ ldr r1, _080C1520
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1514: .4byte gStringVar1
+_080C1518: .4byte gStringVar2
+_080C151C: .4byte gSpeciesNames
+_080C1520: .4byte gUnknown_020387E8
+_080C1524:
+ ldr r0, _080C1564
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1568
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C156C
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1570
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C1574
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C15DC
+ .align 2, 0
+_080C1564: .4byte gStringVar1
+_080C1568: .4byte gStringVar2
+_080C156C: .4byte gSpeciesNames
+_080C1570: .4byte gStringVar3
+_080C1574: .4byte gUnknown_020387E8
+_080C1578:
+ ldr r0, _080C159C
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15A0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15A4
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF638
+ b _080C15C2
+ .align 2, 0
+_080C159C: .4byte gStringVar1
+_080C15A0: .4byte gSpeciesNames
+_080C15A4: .4byte gStringVar2
+_080C15A8:
+ ldr r0, _080C15C8
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15CC
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15D0
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+_080C15C2:
+ ldr r0, _080C15D4
+ strb r4, [r0]
+ b _080C15DC
+ .align 2, 0
+_080C15C8: .4byte gStringVar1
+_080C15CC: .4byte gSpeciesNames
+_080C15D0: .4byte gStringVar2
+_080C15D4: .4byte gUnknown_020387E8
+_080C15D8:
+ bl TVShowDone
+_080C15DC:
+ ldr r0, _080C15F0
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C15F0: .4byte gUnknown_083D14C0
+ thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
+
+ thumb_func_start DoTVShowPokemonTodayFailedCapture
+DoTVShowPokemonTodayFailedCapture: @ 80C15F4
+ push {r4,r5,lr}
+ ldr r0, _080C1620
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1624
+ adds r4, r0, r1
+ ldr r1, _080C1628
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C162C
+ ldrb r5, [r0]
+ cmp r5, 0x6
+ bls _080C1614
+ b _080C173C
+_080C1614:
+ lsls r0, r5, 2
+ ldr r1, _080C1630
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1620: .4byte gUnknown_0202E8CC
+_080C1624: .4byte gSaveBlock1 + 0x2738
+_080C1628: .4byte gScriptResult
+_080C162C: .4byte gUnknown_020387E8
+_080C1630: .4byte _080C1634
+ .align 2, 0
+_080C1634:
+ .4byte _080C1650
+ .4byte _080C1684
+ .4byte _080C16D8
+ .4byte _080C16D8
+ .4byte _080C171C
+ .4byte _080C171C
+ .4byte _080C1738
+_080C1650:
+ ldr r0, _080C1674
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1678
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C167C
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1680
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1674: .4byte gStringVar1
+_080C1678: .4byte gStringVar2
+_080C167C: .4byte gSpeciesNames
+_080C1680: .4byte gUnknown_020387E8
+_080C1684:
+ ldr r0, _080C16B8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C16BC
+ ldrb r1, [r4, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C16C0
+ ldrh r2, [r4, 0xE]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C16C4
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x1
+ bne _080C16CC
+ ldr r1, _080C16C8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16B8: .4byte gStringVar1
+_080C16BC: .4byte gStringVar2
+_080C16C0: .4byte gStringVar3
+_080C16C4: .4byte gSpeciesNames
+_080C16C8: .4byte gUnknown_020387E8
+_080C16CC:
+ ldr r1, _080C16D4
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16D4: .4byte gUnknown_020387E8
+_080C16D8:
+ ldr r0, _080C1708
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ bl sub_80BF088
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C1710
+ ldr r1, _080C170C
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1708: .4byte gStringVar1
+_080C170C: .4byte gUnknown_020387E8
+_080C1710:
+ ldr r1, _080C1718
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1718: .4byte gUnknown_020387E8
+_080C171C:
+ ldr r0, _080C1730
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r1, _080C1734
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1730: .4byte gStringVar1
+_080C1734: .4byte gUnknown_020387E8
+_080C1738:
+ bl TVShowDone
+_080C173C:
+ ldr r0, _080C1750
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1750: .4byte gUnknown_083D15D0
+ thumb_func_end DoTVShowPokemonTodayFailedCapture
+
+ thumb_func_start DoTVShowPokemonFanClubLetter
+DoTVShowPokemonFanClubLetter: @ 80C1754
+ push {r4-r7,lr}
+ ldr r0, _080C1780
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1784
+ adds r5, r0, r1
+ ldr r1, _080C1788
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C178C
+ ldrb r7, [r0]
+ adds r6, r0, 0
+ cmp r7, 0x33
+ bls _080C1776
+ b _080C1960
+_080C1776:
+ lsls r0, r7, 2
+ ldr r1, _080C1790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1780: .4byte gUnknown_0202E8CC
+_080C1784: .4byte gSaveBlock1 + 0x2738
+_080C1788: .4byte gScriptResult
+_080C178C: .4byte gUnknown_020387E8
+_080C1790: .4byte _080C1794
+ .align 2, 0
+_080C1794:
+ .4byte _080C1864
+ .4byte _080C1898
+ .4byte _080C18C4
+ .4byte _080C18CA
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18F4
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1916
+ .4byte _080C193C
+_080C1864:
+ ldr r0, _080C1888
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ ldr r0, _080C188C
+ ldrh r2, [r5, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1890
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1894
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C1888: .4byte gStringVar1
+_080C188C: .4byte gStringVar2
+_080C1890: .4byte gSpeciesNames
+_080C1894: .4byte gUnknown_020387E8
+_080C1898:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r2, r0, 0x1
+ cmp r2, 0x1
+ bne _080C18B8
+ ldr r1, _080C18B4
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18B4: .4byte gUnknown_020387E8
+_080C18B8:
+ ldr r1, _080C18C0
+ adds r0, r2, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18C0: .4byte gUnknown_020387E8
+_080C18C4:
+ movs r0, 0x33
+ strb r0, [r6]
+ b _080C1960
+_080C18CA:
+ bl Random
+ ldrb r4, [r6]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r6]
+ b _080C1960
+_080C18E2:
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C18F0
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18F0: .4byte gUnknown_020387E8
+_080C18F4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ bl __umodsi3
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0x2
+ adds r1, r2, 0
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1960
+_080C1916:
+ ldr r4, _080C1934
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1938
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1934: .4byte gStringVar4
+_080C1938: .4byte gUnknown_020387E8
+_080C193C:
+ ldr r4, _080C1958
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C195C
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1958: .4byte gStringVar4
+_080C195C: .4byte gUnknown_020387E8
+_080C1960:
+ ldr r0, _080C1974
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C196C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1974: .4byte gUnknown_083D1470
+ thumb_func_end DoTVShowPokemonFanClubLetter
+
+ thumb_func_start DoTVShowRecentHappenings
+DoTVShowRecentHappenings: @ 80C1978
+ push {r4-r7,lr}
+ ldr r0, _080C19A4
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C19A8
+ adds r5, r0, r1
+ ldr r1, _080C19AC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C19B0
+ ldrb r6, [r0]
+ adds r7, r0, 0
+ cmp r6, 0x32
+ bls _080C199A
+ b _080C1AF0
+_080C199A:
+ lsls r0, r6, 2
+ ldr r1, _080C19B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C19A4: .4byte gUnknown_0202E8CC
+_080C19A8: .4byte gSaveBlock1 + 0x2738
+_080C19AC: .4byte gScriptResult
+_080C19B0: .4byte gUnknown_020387E8
+_080C19B4: .4byte _080C19B8
+ .align 2, 0
+_080C19B8:
+ .4byte _080C1A84
+ .4byte _080C1AA8
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC6
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1ACC
+_080C1A84:
+ ldr r0, _080C1AA0
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C1AA4
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1AF0
+ .align 2, 0
+_080C1AA0: .4byte gStringVar1
+_080C1AA4: .4byte gUnknown_020387E8
+_080C1AA8:
+ bl Random
+ ldrb r4, [r7]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC0:
+ movs r0, 0x5
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC6:
+ bl TVShowDone
+ b _080C1AF0
+_080C1ACC:
+ ldr r4, _080C1AE8
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1AEC
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1AFC
+ .align 2, 0
+_080C1AE8: .4byte gStringVar4
+_080C1AEC: .4byte gUnknown_020387E8
+_080C1AF0:
+ ldr r0, _080C1B04
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C1AFC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1B04: .4byte gUnknown_083D1490
+ thumb_func_end DoTVShowRecentHappenings
+
+ thumb_func_start DoTVShowPokemonFanClubOpinions
+DoTVShowPokemonFanClubOpinions: @ 80C1B08
+ push {r4-r6,lr}
+ ldr r0, _080C1B30
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1B34
+ adds r4, r0, r1
+ ldr r1, _080C1B38
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1B3C
+ ldrb r5, [r6]
+ cmp r5, 0x3
+ bgt _080C1B40
+ cmp r5, 0x1
+ bge _080C1B88
+ cmp r5, 0
+ beq _080C1B46
+ b _080C1BD6
+ .align 2, 0
+_080C1B30: .4byte gUnknown_0202E8CC
+_080C1B34: .4byte gSaveBlock1 + 0x2738
+_080C1B38: .4byte gScriptResult
+_080C1B3C: .4byte gUnknown_020387E8
+_080C1B40:
+ cmp r5, 0x4
+ beq _080C1BC0
+ b _080C1BD6
+_080C1B46:
+ ldr r0, _080C1B78
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1B7C
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1B80
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1B84
+ adds r1, r4, 0
+ adds r1, 0x10
+ ldrb r2, [r4, 0xE]
+ bl sub_80C08FC
+ ldrb r0, [r4, 0x4]
+ lsrs r0, 4
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1B78: .4byte gStringVar1
+_080C1B7C: .4byte gStringVar2
+_080C1B80: .4byte gSpeciesNames
+_080C1B84: .4byte gStringVar3
+_080C1B88:
+ ldr r0, _080C1BB0
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BB4
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1BB8
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1BBC
+ ldrh r1, [r4, 0x1C]
+ bl sub_80EB3FC
+ movs r0, 0x4
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1BB0: .4byte gStringVar1
+_080C1BB4: .4byte gStringVar2
+_080C1BB8: .4byte gSpeciesNames
+_080C1BBC: .4byte gStringVar3
+_080C1BC0:
+ ldr r0, _080C1BE8
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BEC
+ ldrh r1, [r4, 0x1E]
+ bl sub_80EB3FC
+ bl TVShowDone
+_080C1BD6:
+ ldr r0, _080C1BF0
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1BE8: .4byte gStringVar1
+_080C1BEC: .4byte gStringVar3
+_080C1BF0: .4byte gUnknown_083D14A8
+ thumb_func_end DoTVShowPokemonFanClubOpinions
+
+ thumb_func_start nullsub_22
+nullsub_22: @ 80C1BF4
+ bx lr
+ thumb_func_end nullsub_22
+
+ thumb_func_start DoTVShowPokemonNewsMassOutbreak
+DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
+ push {r4,lr}
+ ldr r0, _080C1C40
+ ldrh r0, [r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C1C44
+ adds r4, r0
+ ldr r0, _080C1C48
+ ldrb r1, [r4, 0x10]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1C4C
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1C50
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ bl StartMassOutbreak
+ ldr r1, _080C1C54
+ ldr r0, _080C1C58
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1C40: .4byte gUnknown_0202E8CC
+_080C1C44: .4byte gSaveBlock1 + 0x2738
+_080C1C48: .4byte gStringVar1
+_080C1C4C: .4byte gStringVar2
+_080C1C50: .4byte gSpeciesNames
+_080C1C54: .4byte gUnknown_083D14BC
+_080C1C58: .4byte gUnknown_020387E8
+ thumb_func_end DoTVShowPokemonNewsMassOutbreak
+
+ thumb_func_start DoTVShowInSearchOfTrainers
+DoTVShowInSearchOfTrainers: @ 80C1C5C
+ push {r4-r7,lr}
+ ldr r0, _080C1C7C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080C1C80
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x8
+ bls _080C1C70
+ b _080C1DF8
+_080C1C70:
+ lsls r0, r7, 2
+ ldr r1, _080C1C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1C7C: .4byte gScriptResult
+_080C1C80: .4byte gUnknown_020387E8
+_080C1C84: .4byte _080C1C88
+ .align 2, 0
+_080C1C88:
+ .4byte _080C1CAC
+ .4byte _080C1CF0
+ .4byte _080C1CF6
+ .4byte _080C1D44
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB6
+_080C1CAC:
+ ldr r0, _080C1CD0
+ ldr r4, _080C1CD4
+ ldr r2, _080C1CD8
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1CDC
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bls _080C1CE4
+ ldr r1, _080C1CE0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CD0: .4byte gStringVar1
+_080C1CD4: .4byte gSaveBlock1
+_080C1CD8: .4byte 0x00002b18
+_080C1CDC: .4byte 0x00002b19
+_080C1CE0: .4byte gUnknown_020387E8
+_080C1CE4:
+ ldr r1, _080C1CEC
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CEC: .4byte gUnknown_020387E8
+_080C1CF0:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C1DF8
+_080C1CF6:
+ ldr r0, _080C1D0C
+ ldr r1, _080C1D10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C1D14
+ movs r0, 0x4
+ strb r0, [r2]
+ b _080C1DF8
+ .align 2, 0
+_080C1D0C: .4byte gSaveBlock1
+_080C1D10: .4byte 0x00002b1a
+_080C1D14:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D22
+ movs r0, 0x5
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D22:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D30
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D3E
+ movs r0, 0x7
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D3E:
+ movs r0, 0x3
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D44:
+ ldr r0, _080C1D88
+ ldr r4, _080C1D8C
+ ldr r2, _080C1D90
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1D94
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1D98
+ ldr r2, _080C1D9C
+ adds r1, r4, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C1DA0
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1DA4
+ ldr r1, _080C1DA8
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1DAC
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1D88: .4byte gStringVar1
+_080C1D8C: .4byte gSaveBlock1
+_080C1D90: .4byte 0x00002b10
+_080C1D94: .4byte gSpeciesNames
+_080C1D98: .4byte gStringVar2
+_080C1D9C: .4byte 0x00002b14
+_080C1DA0: .4byte gMoveNames
+_080C1DA4: .4byte gStringVar3
+_080C1DA8: .4byte 0x00002b12
+_080C1DAC: .4byte gUnknown_020387E8
+_080C1DB0:
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1DF8
+_080C1DB6:
+ ldr r0, _080C1E0C
+ ldr r4, _080C1E10
+ ldr r2, _080C1E14
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ ldr r0, _080C1E18
+ ldr r2, _080C1E1C
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1E20
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1E24
+ ldr r1, _080C1E28
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1E2C
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C1E30
+ movs r0, 0
+ strb r0, [r1]
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+_080C1DF8:
+ ldr r0, _080C1E34
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1E0C: .4byte gStringVar1
+_080C1E10: .4byte gSaveBlock1
+_080C1E14: .4byte 0x00002b16
+_080C1E18: .4byte gStringVar2
+_080C1E1C: .4byte 0x00002b10
+_080C1E20: .4byte gSpeciesNames
+_080C1E24: .4byte gStringVar3
+_080C1E28: .4byte 0x00002b12
+_080C1E2C: .4byte gScriptResult
+_080C1E30: .4byte gUnknown_020387E8
+_080C1E34: .4byte gUnknown_083D1600
+ thumb_func_end DoTVShowInSearchOfTrainers
+
+ thumb_func_start DoTVShowPokemonAngler
+DoTVShowPokemonAngler: @ 80C1E38
+ push {r4,r5,lr}
+ ldr r0, _080C1E5C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1E60
+ adds r4, r0, r1
+ ldr r0, _080C1E64
+ movs r1, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0x2]
+ ldrb r2, [r4, 0x3]
+ cmp r0, r2
+ bcs _080C1E6C
+ ldr r0, _080C1E68
+ strb r1, [r0]
+ b _080C1E74
+ .align 2, 0
+_080C1E5C: .4byte gUnknown_0202E8CC
+_080C1E60: .4byte gSaveBlock1 + 0x2738
+_080C1E64: .4byte gScriptResult
+_080C1E68: .4byte gUnknown_020387E8
+_080C1E6C:
+ ldr r1, _080C1E80
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_080C1E74:
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _080C1E84
+ cmp r5, 0x1
+ beq _080C1EBC
+ b _080C1EE4
+ .align 2, 0
+_080C1E80: .4byte gUnknown_020387E8
+_080C1E84:
+ ldr r0, _080C1EB0
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EB4
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1EB8
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1EE4
+ .align 2, 0
+_080C1EB0: .4byte gStringVar1
+_080C1EB4: .4byte gStringVar2
+_080C1EB8: .4byte gSpeciesNames
+_080C1EBC:
+ ldr r0, _080C1EF8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EFC
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F00
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+_080C1EE4:
+ ldr r0, _080C1F04
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1EF8: .4byte gStringVar1
+_080C1EFC: .4byte gStringVar2
+_080C1F00: .4byte gSpeciesNames
+_080C1F04: .4byte gUnknown_083D15EC
+ thumb_func_end DoTVShowPokemonAngler
+
+ thumb_func_start DoTVShowTheWorldOfMasters
+DoTVShowTheWorldOfMasters: @ 80C1F08
+ push {r4-r6,lr}
+ ldr r0, _080C1F30
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1F34
+ adds r4, r0, r1
+ ldr r1, _080C1F38
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1F3C
+ ldrb r5, [r6]
+ cmp r5, 0x1
+ beq _080C1F6C
+ cmp r5, 0x1
+ bgt _080C1F40
+ cmp r5, 0
+ beq _080C1F46
+ b _080C1FB6
+ .align 2, 0
+_080C1F30: .4byte gUnknown_0202E8CC
+_080C1F34: .4byte gSaveBlock1 + 0x2738
+_080C1F38: .4byte gScriptResult
+_080C1F3C: .4byte gUnknown_020387E8
+_080C1F40:
+ cmp r5, 0x2
+ beq _080C1F8C
+ b _080C1FB6
+_080C1F46:
+ ldr r0, _080C1F68
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x6]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrh r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F68: .4byte gStringVar1
+_080C1F6C:
+ ldr r0, _080C1F84
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F88
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0x2
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F84: .4byte gStringVar1
+_080C1F88: .4byte gSpeciesNames
+_080C1F8C:
+ ldr r0, _080C1FC8
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldr r0, _080C1FCC
+ ldrb r1, [r4, 0xA]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1FD0
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1FD4
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C1FB6:
+ ldr r0, _080C1FD8
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1FC8: .4byte gStringVar1
+_080C1FCC: .4byte gStringVar2
+_080C1FD0: .4byte gStringVar3
+_080C1FD4: .4byte gSpeciesNames
+_080C1FD8: .4byte gUnknown_083D15F4
+ thumb_func_end DoTVShowTheWorldOfMasters
+
+ thumb_func_start TVShowDone
+TVShowDone: @ 80C1FDC
+ ldr r1, _080C2000
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C2004
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _080C2008
+ ldr r0, _080C200C
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080C2010
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080C2000: .4byte gScriptResult
+_080C2004: .4byte gUnknown_020387E8
+_080C2008: .4byte gSaveBlock1
+_080C200C: .4byte gUnknown_0202E8CC
+_080C2010: .4byte 0x00002739
+ thumb_func_end TVShowDone
+
+ thumb_func_start sub_80C2014
+sub_80C2014: @ 80C2014
+ ldr r1, _080C201C
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C201C: .4byte gUnknown_020387E8
+ thumb_func_end sub_80C2014
+
+ thumb_func_start sub_80C2020
+sub_80C2020: @ 80C2020
+ push {r4,r5,lr}
+ movs r5, 0x80
+ lsls r5, 19
+ movs r0, 0x40
+ strh r0, [r5]
+ ldr r4, _080C20F0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080C20F4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _080C20F8
+ movs r2, 0xF8
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C20FC
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080C2100
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C2104
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2108
+ movs r2, 0
+ strh r2, [r0]
+ adds r1, 0x3A
+ ldr r3, _080C210C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r3, 0x11
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2110
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, 0xA
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0x44
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldrh r0, [r5]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r5]
+ ldr r0, _080C2114
+ strh r2, [r0]
+ ldr r0, _080C2118
+ strh r2, [r0]
+ ldr r0, _080C211C
+ strh r2, [r0]
+ ldr r0, _080C2120
+ strh r2, [r0]
+ ldr r0, _080C2124
+ strh r2, [r0]
+ ldr r0, _080C2128
+ strh r2, [r0]
+ ldr r0, _080C212C
+ strh r2, [r0]
+ ldr r0, _080C2130
+ strh r2, [r0]
+ ldr r0, _080C2134
+ strh r2, [r0]
+ ldr r0, _080C2138
+ strh r2, [r0]
+ ldr r0, _080C213C
+ strh r2, [r0]
+ ldr r0, _080C2140
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C20F0: .4byte gWindowConfig_81E6FA0
+_080C20F4: .4byte gMenuWindow
+_080C20F8: .4byte REG_BG0CNT
+_080C20FC: .4byte 0x00001803
+_080C2100: .4byte 0x00001c03
+_080C2104: .4byte 0x00003a03
+_080C2108: .4byte REG_MOSAIC
+_080C210C: .4byte 0x00003f3f
+_080C2110: .4byte REG_WIN0H
+_080C2114: .4byte gUnknown_030042A4
+_080C2118: .4byte gUnknown_030042A0
+_080C211C: .4byte gUnknown_030042C0
+_080C2120: .4byte gUnknown_030041B4
+_080C2124: .4byte gUnknown_03004288
+_080C2128: .4byte gUnknown_03004280
+_080C212C: .4byte gUnknown_030041B0
+_080C2130: .4byte gUnknown_030041B8
+_080C2134: .4byte gUnknown_030042C4
+_080C2138: .4byte gUnknown_03004240
+_080C213C: .4byte gUnknown_03004200
+_080C2140: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2020
+
+ thumb_func_start sub_80C2144
+sub_80C2144: @ 80C2144
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ ldr r0, _080C220C
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C2210
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080C2214
+ movs r7, 0x85
+ lsls r7, 24
+_080C2162:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080C2162
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r12
+ bl LZDecompressVram
+ ldr r0, _080C2218
+ ldr r1, _080C221C
+ bl LZDecompressVram
+ ldr r0, _080C2220
+ ldr r1, _080C2224
+ bl LZDecompressVram
+ ldr r0, _080C2228
+ ldr r1, _080C222C
+ bl LZDecompressVram
+ bl sub_80C37E4
+ ldr r0, _080C2230
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, _080C2234
+ bl LoadFontDefaultPalette
+ movs r6, 0
+_080C21C0:
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ movs r5, 0
+ lsls r1, r6, 1
+ adds r2, r6, 0x1
+ mov r12, r2
+ lsls r4, 24
+ asrs r7, r4, 24
+ adds r1, r6
+ lsls r1, 6
+ lsls r4, r0, 24
+_080C21EC:
+ ldr r6, _080C2238
+ cmp r5, r7
+ bge _080C21F4
+ adds r6, 0x2
+_080C21F4:
+ asrs r2, r4, 24
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _080C21FE
+ negs r0, r2
+_080C21FE:
+ cmp r5, r0
+ bge _080C2240
+ ldr r3, _080C223C
+ cmp r2, 0
+ bge _080C2242
+ adds r3, 0x2
+ b _080C2242
+ .align 2, 0
+_080C220C: .4byte gUnknown_08D1977C
+_080C2210: .4byte 0x040000d4
+_080C2214: .4byte 0x85000400
+_080C2218: .4byte gUnknown_08D1A490
+_080C221C: .4byte 0x0600d000
+_080C2220: .4byte gUnknown_08D1A364
+_080C2224: .4byte 0x0600e000
+_080C2228: .4byte gUnknown_08D1A250
+_080C222C: .4byte 0x0600f000
+_080C2230: .4byte gUnknown_08D1A618
+_080C2234: .4byte gWindowConfig_81E6FA0
+_080C2238: .4byte 0x000060b2
+_080C223C: .4byte 0x000060a4
+_080C2240:
+ ldr r3, _080C2264
+_080C2242:
+ ldr r2, _080C2268
+ adds r0, r1, r2
+ strh r6, [r0]
+ adds r2, 0x40
+ adds r0, r1, r2
+ strh r3, [r0]
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, 0x9
+ ble _080C21EC
+ mov r6, r12
+ cmp r6, 0x3
+ ble _080C21C0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2264: .4byte 0x000060a2
+_080C2268: .4byte 0x0600c166
+ thumb_func_end sub_80C2144
+
+ thumb_func_start sub_80C226C
+sub_80C226C: @ 80C226C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C2288
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _080C2294
+ ldr r0, _080C228C
+ ldr r1, _080C2290
+ bl StringCopy
+ adds r2, r0, 0
+ b _080C2296
+ .align 2, 0
+_080C2288: .4byte gUnknown_02038695
+_080C228C: .4byte gUnknown_020238CC
+_080C2290: .4byte gUnknown_083D17DC
+_080C2294:
+ ldr r2, _080C22E8
+_080C2296:
+ movs r4, 0xFC
+ strb r4, [r2]
+ movs r0, 0x6
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r6, r5, 6
+ ldr r7, _080C22EC
+ adds r1, r6, r7
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r4, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x32
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r1, _080C22F0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080C22F4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C22FC
+ lsls r4, r5, 3
+ subs r1, r4, r5
+ lsls r1, 2
+ ldr r0, _080C22F8
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ b _080C230A
+ .align 2, 0
+_080C22E8: .4byte gUnknown_020238CC
+_080C22EC: .4byte gUnknown_02038572
+_080C22F0: .4byte gUnknown_083D17E0
+_080C22F4: .4byte gUnknown_0203869A
+_080C22F8: .4byte gLinkPlayers + 0x8
+_080C22FC:
+ adds r1, r7, 0
+ adds r1, 0xB
+ adds r1, r6, r1
+ adds r0, r2, 0
+ bl StringCopy
+ lsls r4, r5, 3
+_080C230A:
+ ldr r0, _080C2334
+ ldr r1, _080C2338
+ adds r2, r4, r5
+ lsls r2, 18
+ ldr r3, _080C233C
+ adds r2, r3
+ lsrs r2, 16
+ lsls r3, r5, 1
+ adds r3, r5
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x7
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2334: .4byte gMenuWindow
+_080C2338: .4byte gUnknown_020238CC
+_080C233C: .4byte 0x03020000
+ thumb_func_end sub_80C226C
+
+ thumb_func_start sub_80C2340
+sub_80C2340: @ 80C2340
+ push {r4,lr}
+ movs r4, 0
+_080C2344:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80C226C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2344
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2340
+
+ thumb_func_start sub_80C2358
+sub_80C2358: @ 80C2358
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080C240C
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80C2020
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80C2144
+ bl sub_80C310C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80C30D4
+ bl sub_80C2340
+ ldr r4, _080C2410
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x18
+ movs r1, 0
+ movs r2, 0x50
+ bl memset
+ bl sub_80C33DC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrb r1, [r5, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ ldr r0, _080C2414
+ movs r1, 0x5
+ bl CreateTask
+ strb r0, [r4, 0x2]
+ ldr r0, _080C2418
+ bl SetMainCallback2
+ ldr r1, _080C241C
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2420
+ ldr r2, _080C2424
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080C2428
+ movs r1, 0x14
+ bl CreateTask
+ bl sub_80C3F00
+ movs r0, 0xDF
+ lsls r0, 1
+ bl PlayBGM
+ ldr r0, _080C242C
+ bl SetVBlankCallback
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C240C: .4byte gPaletteFade
+_080C2410: .4byte 0x02018000
+_080C2414: .4byte sub_80C24F4
+_080C2418: .4byte sub_80C2430
+_080C241C: .4byte gUnknown_03004200
+_080C2420: .4byte gUnknown_03004244
+_080C2424: .4byte 0x000080a0
+_080C2428: .4byte sub_80C2F28
+_080C242C: .4byte sub_80C2448
+ thumb_func_end sub_80C2358
+
+ thumb_func_start sub_80C2430
+sub_80C2430: @ 80C2430
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2430
+
+ thumb_func_start sub_80C2448
+sub_80C2448: @ 80C2448
+ push {lr}
+ ldr r1, _080C24C0
+ ldr r0, _080C24C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24C8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24CC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24DC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24E0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080C24E4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24E8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080C24EC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24F0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C24C0: .4byte REG_BG0HOFS
+_080C24C4: .4byte gUnknown_030042A4
+_080C24C8: .4byte gUnknown_030042A0
+_080C24CC: .4byte gUnknown_030042C0
+_080C24D0: .4byte gUnknown_030041B4
+_080C24D4: .4byte gUnknown_03004288
+_080C24D8: .4byte gUnknown_03004280
+_080C24DC: .4byte gUnknown_030041B0
+_080C24E0: .4byte gUnknown_030041B8
+_080C24E4: .4byte gUnknown_030042C4
+_080C24E8: .4byte gUnknown_03004240
+_080C24EC: .4byte gUnknown_03004200
+_080C24F0: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2448
+
+ thumb_func_start sub_80C24F4
+sub_80C24F4: @ 80C24F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ ldr r0, _080C252C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C254E
+ ldr r0, _080C2530
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2540
+ ldr r0, _080C2534
+ bl sub_80C3698
+ ldr r1, _080C2538
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C253C
+ str r1, [r0]
+ b _080C254E
+ .align 2, 0
+_080C252C: .4byte gPaletteFade
+_080C2530: .4byte gUnknown_0203869A
+_080C2534: .4byte gOtherText_LinkStandby
+_080C2538: .4byte gTasks
+_080C253C: .4byte sub_80C255C
+_080C2540:
+ ldr r0, _080C2554
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2558
+ str r0, [r1]
+_080C254E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2554: .4byte gTasks
+_080C2558: .4byte sub_80C2600
+ thumb_func_end sub_80C24F4
+
+ thumb_func_start sub_80C255C
+sub_80C255C: @ 80C255C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2594
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C258C
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C258C
+ ldr r0, _080C2598
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080C259C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C25A0
+ str r1, [r0]
+_080C258C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2594: .4byte gReceivedRemoteLinkPlayers
+_080C2598: .4byte sub_80C25A4
+_080C259C: .4byte gTasks
+_080C25A0: .4byte TaskDummy
+ thumb_func_end sub_80C255C
+
+ thumb_func_start sub_80C25A4
+sub_80C25A4: @ 80C25A4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C25B8
+ ldr r2, _080C25BC
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25B8: .4byte sub_80C89DC
+_080C25BC: .4byte sub_80C25C0
+ thumb_func_end sub_80C25A4
+
+ thumb_func_start sub_80C25C0
+sub_80C25C0: @ 80C25C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C25EC
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r2, _080C25F4
+ ldr r0, _080C25F8
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080C25FC
+ str r1, [r0]
+ bl sub_80C3764
+_080C25EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25F4: .4byte gTasks
+_080C25F8: .4byte 0x02018000
+_080C25FC: .4byte sub_80C2600
+ thumb_func_end sub_80C25C0
+
+ thumb_func_start sub_80C2600
+sub_80C2600: @ 80C2600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2644
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrh r1, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080C2654
+ ldr r0, _080C2648
+ movs r1, 0x14
+ bl CreateTask
+ ldr r4, _080C264C
+ ldr r0, _080C2650
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ movs r2, 0x78
+ b _080C26A6
+ .align 2, 0
+_080C2644: .4byte gTasks
+_080C2648: .4byte sub_80C2F64
+_080C264C: .4byte gContestText_AnnounceResults
+_080C2650: .4byte 0x02018000
+_080C2654:
+ cmp r0, 0x1
+ bne _080C2668
+ ldr r0, _080C2664
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080C26D4
+ b _080C267C
+ .align 2, 0
+_080C2664: .4byte 0x02018000
+_080C2668:
+ cmp r0, 0x2
+ bne _080C2684
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C26D4
+ movs r0, 0
+_080C267C:
+ strh r0, [r5, 0xA]
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+_080C2684:
+ cmp r0, 0x3
+ bne _080C26C0
+ ldr r4, _080C26B4
+ ldr r0, _080C26B8
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C26BC
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+_080C26A6:
+ bl sub_80C34CC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+ .align 2, 0
+_080C26B4: .4byte gContestText_PreliminaryResults
+_080C26B8: .4byte 0x02018000
+_080C26BC: .4byte 0x0000ffff
+_080C26C0:
+ cmp r0, 0x4
+ bne _080C26D4
+ ldr r0, _080C26DC
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x2
+ bne _080C26D4
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080C26E0
+ str r0, [r5]
+_080C26D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C26DC: .4byte 0x02018000
+_080C26E0: .4byte sub_80C26E4
+ thumb_func_end sub_80C2600
+
+ thumb_func_start sub_80C26E4
+sub_80C26E4: @ 80C26E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2708
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C2744
+ cmp r0, 0x1
+ bgt _080C270C
+ cmp r0, 0
+ beq _080C2712
+ b _080C2766
+ .align 2, 0
+_080C2708: .4byte gTasks
+_080C270C:
+ cmp r0, 0x2
+ beq _080C2754
+ b _080C2766
+_080C2712:
+ ldr r5, _080C2738
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C2766
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C273C
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2738: .4byte 0x02018000
+_080C273C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2766
+_080C2744:
+ ldr r0, _080C2750
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C2766
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2750: .4byte 0x02018000
+_080C2754:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xC]
+ ldr r0, _080C276C
+ str r0, [r4]
+_080C2766:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C276C: .4byte sub_80C2770
+ thumb_func_end sub_80C26E4
+
+ thumb_func_start sub_80C2770
+sub_80C2770: @ 80C2770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r5, _080C27BC
+ ldrb r3, [r5, 0x4]
+ cmp r3, 0
+ bne _080C27CC
+ ldr r1, _080C27C0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C27DE
+ strh r3, [r1, 0xA]
+ ldr r4, _080C27C4
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C27C8
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+ b _080C27DE
+ .align 2, 0
+_080C27BC: .4byte 0x02018000
+_080C27C0: .4byte gTasks
+_080C27C4: .4byte gContestText_Round2Results
+_080C27C8: .4byte 0x0000ffff
+_080C27CC:
+ cmp r3, 0x2
+ bne _080C27DE
+ ldr r0, _080C27E4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C27E8
+ str r0, [r1]
+_080C27DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C27E4: .4byte gTasks
+_080C27E8: .4byte sub_80C27EC
+ thumb_func_end sub_80C2770
+
+ thumb_func_start sub_80C27EC
+sub_80C27EC: @ 80C27EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2810
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C284C
+ cmp r0, 0x1
+ bgt _080C2814
+ cmp r0, 0
+ beq _080C281A
+ b _080C286C
+ .align 2, 0
+_080C2810: .4byte gTasks
+_080C2814:
+ cmp r0, 0x2
+ beq _080C285C
+ b _080C286C
+_080C281A:
+ ldr r5, _080C2840
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C286C
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C2844
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2840: .4byte 0x02018000
+_080C2844:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C286C
+_080C284C:
+ ldr r0, _080C2858
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C286C
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2858: .4byte 0x02018000
+_080C285C:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080C2874
+ str r0, [r4]
+_080C286C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2874: .4byte sub_80C2878
+ thumb_func_end sub_80C27EC
+
+ thumb_func_start sub_80C2878
+sub_80C2878: @ 80C2878
+ push {r4-r7,lr}
+ sub sp, 0x64
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C28A0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _080C2896
+ b _080C2A80
+_080C2896:
+ lsls r0, 2
+ ldr r1, _080C28A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C28A0: .4byte gTasks
+_080C28A4: .4byte _080C28A8
+ .align 2, 0
+_080C28A8:
+ .4byte _080C28C0
+ .4byte _080C28E0
+ .4byte _080C28FE
+ .4byte _080C2938
+ .4byte _080C299C
+ .4byte _080C2A70
+_080C28C0:
+ ldr r0, _080C28DC
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080C28CA
+ b _080C2A80
+_080C28CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C28DC: .4byte 0x02018000
+_080C28E0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C28F8
+ b _080C2A80
+_080C28F8:
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _080C2A4A
+_080C28FE:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r7, _080C292C
+_080C2904:
+ ldr r0, _080C2930
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _080C2934
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2904
+ b _080C2A42
+ .align 2, 0
+_080C292C: .4byte gTasks
+_080C2930: .4byte sub_80C3A5C
+_080C2934: .4byte gUnknown_02038690
+_080C2938:
+ ldr r0, _080C2990
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _080C2942
+ b _080C2A80
+_080C2942:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C295A
+ b _080C2A80
+_080C295A:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldr r0, _080C2994
+ movs r1, 0xA
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r4, 0
+ ldr r1, _080C2998
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C2984
+_080C2976:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C2984
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2976
+_080C2984:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0xE
+ bl sub_80C3E60
+ b _080C2A80
+ .align 2, 0
+_080C2990: .4byte 0x02018000
+_080C2994: .4byte sub_80C3B30
+_080C2998: .4byte gUnknown_02038690
+_080C299C:
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r1, 0
+ cmp r0, 0x15
+ bne _080C2A80
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ movs r4, 0
+ ldr r2, _080C29F4
+ ldrb r0, [r2]
+ ldr r1, _080C29F8
+ ldr r3, _080C29FC
+ cmp r0, 0
+ beq _080C29D4
+_080C29C6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C29D4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C29C6
+_080C29D4:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2A04
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r0, _080C2A00
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r4, 6
+ b _080C2A10
+ .align 2, 0
+_080C29F4: .4byte gUnknown_02038690
+_080C29F8: .4byte gUnknown_0203869A
+_080C29FC: .4byte gStringVar1
+_080C2A00: .4byte gLinkPlayers + 0x8
+_080C2A04:
+ lsls r4, 6
+ ldr r1, _080C2A54
+ adds r1, r4, r1
+ adds r0, r3, 0
+ bl StringCopy
+_080C2A10:
+ ldr r0, _080C2A58
+ ldr r1, _080C2A5C
+ adds r1, r4, r1
+ bl StringCopy
+ ldr r1, _080C2A60
+ mov r0, sp
+ bl StringExpandPlaceholders
+ ldr r0, _080C2A64
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_80C3158
+ mov r0, sp
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C2A68
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+_080C2A42:
+ ldr r0, _080C2A6C
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+_080C2A4A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C2A54: .4byte gUnknown_0203857D
+_080C2A58: .4byte gStringVar2
+_080C2A5C: .4byte gUnknown_02038572
+_080C2A60: .4byte gContestText_PokeWon
+_080C2A64: .4byte 0x02018000
+_080C2A68: .4byte 0x0000ffff
+_080C2A6C: .4byte gTasks
+_080C2A70:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2A88
+ str r1, [r0]
+_080C2A80:
+ add sp, 0x64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2A88: .4byte sub_80C2A8C
+ thumb_func_end sub_80C2878
+
+ thumb_func_start sub_80C2A8C
+sub_80C2A8C: @ 80C2A8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C2ABC
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080C2AB2
+ b _080C2D04
+_080C2AB2:
+ lsls r0, 2
+ ldr r1, _080C2AC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C2ABC: .4byte gTasks
+_080C2AC0: .4byte _080C2AC4
+ .align 2, 0
+_080C2AC4:
+ .4byte _080C2ADC
+ .4byte _080C2C04
+ .4byte _080C2C54
+ .4byte _080C2C64
+ .4byte _080C2CA8
+ .4byte _080C2CE8
+_080C2ADC:
+ ldr r1, _080C2BC4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2BC8
+ ldr r3, _080C2BCC
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r1, 0
+ ldr r3, _080C2BD0
+ ldrb r0, [r3]
+ lsls r4, r7, 2
+ mov r10, r4
+ ldr r2, _080C2BD4
+ ldr r5, _080C2BD8
+ mov r12, r5
+ ldr r4, _080C2BDC
+ mov r8, r4
+ ldr r5, _080C2BE0
+ mov r9, r5
+ cmp r0, 0
+ beq _080C2B14
+_080C2B06:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080C2B14
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2B06
+_080C2B14:
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r1, r0
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ lsls r0, r6, 3
+ add r0, r12
+ lsls r2, r6, 2
+ add r2, r8
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ mov r5, r9
+ ldr r3, [r5, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r3, _080C2BE4
+ bl sub_800D334
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ adds r2, r4, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C2BE8
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080C2BEC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r3, r2, r5
+ strh r6, [r3, 0x30]
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ strb r1, [r3, 0x5]
+ adds r5, 0x1C
+ adds r2, r5
+ ldr r1, _080C2BF0
+ str r1, [r2]
+ ldr r2, _080C2BE4
+ movs r3, 0xC0
+ lsls r3, 9
+ adds r1, r2, r3
+ strb r0, [r1, 0x8]
+ ldr r0, _080C2BF4
+ bl LoadCompressedObjectPic
+ ldr r0, _080C2BF8
+ bl LoadCompressedObjectPalette
+ ldr r0, _080C2BFC
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _080C2C00
+ mov r4, r10
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2BC4: .4byte gUnknown_030042C4
+_080C2BC8: .4byte gUnknown_03004240
+_080C2BCC: .4byte 0x00005050
+_080C2BD0: .4byte gUnknown_02038690
+_080C2BD4: .4byte gUnknown_02038570
+_080C2BD8: .4byte gMonFrontPicTable
+_080C2BDC: .4byte gMonFrontPicCoords
+_080C2BE0: .4byte gUnknown_081FAF4C
+_080C2BE4: .4byte 0x02000000
+_080C2BE8: .4byte gUnknown_02024E8C
+_080C2BEC: .4byte gSprites
+_080C2BF0: .4byte sub_80C3C44
+_080C2BF4: .4byte gUnknown_083D17CC
+_080C2BF8: .4byte gUnknown_083D17D4
+_080C2BFC: .4byte sub_80C3D04
+_080C2C00: .4byte gTasks
+_080C2C04:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080C2C30
+ movs r0, 0x20
+ strh r0, [r4, 0xC]
+_080C2C30:
+ ldrb r2, [r4, 0xC]
+ ldr r3, _080C2C50
+ movs r0, 0x50
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r2, 0
+ adds r1, 0x50
+ orrs r0, r1
+ strh r0, [r3]
+ cmp r2, 0x20
+ bne _080C2D04
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C50: .4byte gUnknown_03004240
+_080C2C54:
+ ldr r0, _080C2C60
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _080C2D04
+ b _080C2CD0
+ .align 2, 0
+_080C2C60: .4byte 0x02018000
+_080C2C64:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x79
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldr r2, _080C2C9C
+ ldr r0, _080C2CA0
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080C2CA4
+ str r1, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C9C: .4byte gSprites
+_080C2CA0: .4byte 0x02018000
+_080C2CA4: .4byte sub_80C3CB8
+_080C2CA8:
+ ldr r0, _080C2CE0
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ ldr r3, _080C2CE4
+ ldrh r0, [r3]
+ lsrs r2, r0, 8
+ adds r0, r2, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x50
+ bls _080C2CC2
+ movs r2, 0x50
+_080C2CC2:
+ lsls r1, r2, 8
+ movs r0, 0xA0
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+ cmp r2, 0x50
+ bne _080C2D04
+_080C2CD0:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2CE0: .4byte 0x02018000
+_080C2CE4: .4byte gUnknown_03004240
+_080C2CE8:
+ ldr r2, _080C2D14
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x9]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2D18
+ str r1, [r0]
+_080C2D04:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D14: .4byte 0x02018000
+_080C2D18: .4byte sub_80C2D1C
+ thumb_func_end sub_80C2A8C
+
+ thumb_func_start sub_80C2D1C
+sub_80C2D1C: @ 80C2D1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080C2D6C
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2D66
+ ldr r0, _080C2D70
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r6, r7, 2
+ cmp r0, 0
+ bne _080C2D5A
+ ldr r5, _080C2D74
+ movs r4, 0x3
+_080C2D42:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C2D42
+_080C2D5A:
+ ldr r0, _080C2D78
+ adds r1, r6, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2D7C
+ str r0, [r1]
+_080C2D66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D6C: .4byte gMain
+_080C2D70: .4byte gUnknown_0203869A
+_080C2D74: .4byte gUnknown_02038570
+_080C2D78: .4byte gTasks
+_080C2D7C: .4byte sub_80C2D80
+ thumb_func_end sub_80C2D1C
+
+ thumb_func_start sub_80C2D80
+sub_80C2D80: @ 80C2D80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2DAC
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2DBC
+ ldr r0, _080C2DB0
+ bl sub_80C3698
+ bl sub_800832C
+ ldr r1, _080C2DB4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2DB8
+ str r1, [r0]
+ b _080C2DCA
+ .align 2, 0
+_080C2DAC: .4byte gUnknown_0203869A
+_080C2DB0: .4byte gOtherText_LinkStandby
+_080C2DB4: .4byte gTasks
+_080C2DB8: .4byte sub_80C2DD8
+_080C2DBC:
+ ldr r0, _080C2DD0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2DD4
+ str r0, [r1]
+_080C2DCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2DD0: .4byte gTasks
+_080C2DD4: .4byte sub_80C2E14
+ thumb_func_end sub_80C2D80
+
+ thumb_func_start sub_80C2DD8
+sub_80C2DD8: @ 80C2DD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2E04
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C2DFC
+ ldr r0, _080C2E08
+ strb r1, [r0]
+ bl sub_80C3764
+ ldr r1, _080C2E0C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E10
+ str r1, [r0]
+_080C2DFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E04: .4byte gReceivedRemoteLinkPlayers
+_080C2E08: .4byte gUnknown_0203869A
+_080C2E0C: .4byte gTasks
+_080C2E10: .4byte sub_80C2E14
+ thumb_func_end sub_80C2DD8
+
+ thumb_func_start sub_80C2E14
+sub_80C2E14: @ 80C2E14
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080C2E80
+ ldr r0, _080C2E84
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80BE284
+ movs r0, 0x2
+ bl sub_810FB10
+ ldr r0, _080C2E88
+ ldrb r0, [r0]
+ bl sub_80B2A7C
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ ldr r4, _080C2E8C
+ ldr r0, _080C2E90
+ adds r1, r4, r0
+ movs r6, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C2E94
+ adds r4, r1
+ strb r0, [r4]
+ str r6, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _080C2E98
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E9C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E80: .4byte gUnknown_02038690
+_080C2E84: .4byte gUnknown_02038695
+_080C2E88: .4byte gUnknown_0203869E
+_080C2E8C: .4byte 0x02000000
+_080C2E90: .4byte 0x00015ddf
+_080C2E94: .4byte 0x00015dde
+_080C2E98: .4byte gTasks
+_080C2E9C: .4byte sub_80C2EA0
+ thumb_func_end sub_80C2E14
+
+ thumb_func_start sub_80C2EA0
+sub_80C2EA0: @ 80C2EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ ldr r0, _080C2ED8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080C2F18
+ ldr r1, _080C2EDC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C2EE8
+ ldr r0, _080C2EE0
+ ldrb r0, [r0, 0x3]
+ bl DestroyTask
+ ldr r0, _080C2EE4
+ b _080C2EEE
+ .align 2, 0
+_080C2ED8: .4byte gPaletteFade
+_080C2EDC: .4byte gTasks
+_080C2EE0: .4byte 0x02018000
+_080C2EE4: .4byte 0x0000ffff
+_080C2EE8:
+ cmp r0, 0x1
+ bne _080C2F04
+ ldr r0, _080C2F00
+_080C2EEE:
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080C2F18
+ .align 2, 0
+_080C2F00: .4byte 0xffff0000
+_080C2F04:
+ ldr r0, _080C2F20
+ strh r3, [r0]
+ adds r0, 0x4
+ strh r3, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _080C2F24
+ bl SetMainCallback2
+_080C2F18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F20: .4byte REG_BLDCNT
+_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C2EA0
+
+ thumb_func_start sub_80C2F28
+sub_80C2F28: @ 80C2F28
+ push {r4,r5,lr}
+ ldr r2, _080C2F5C
+ ldrh r3, [r2]
+ adds r0, r3, 0x2
+ strh r0, [r2]
+ ldr r4, _080C2F60
+ ldrh r5, [r4]
+ adds r1, r5, 0x1
+ strh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F48
+ adds r0, r3, 0
+ subs r0, 0xFD
+ strh r0, [r2]
+_080C2F48:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F56
+ adds r0, r5, 0
+ subs r0, 0xFE
+ strh r0, [r4]
+_080C2F56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F5C: .4byte gUnknown_030041B0
+_080C2F60: .4byte gUnknown_030041B8
+ thumb_func_end sub_80C2F28
+
+ thumb_func_start sub_80C2F64
+sub_80C2F64: @ 80C2F64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C2F94
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080C2FE6
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080C2F98
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ b _080C2F9C
+ .align 2, 0
+_080C2F94: .4byte gTasks
+_080C2F98:
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+_080C2F9C:
+ strh r0, [r2, 0xA]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x10
+ bne _080C2FB2
+ movs r0, 0x1
+ b _080C2FB6
+_080C2FB2:
+ cmp r0, 0
+ bne _080C2FB8
+_080C2FB6:
+ strh r0, [r1, 0xC]
+_080C2FB8:
+ ldr r0, _080C3000
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3004
+ movs r0, 0x6B
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3008
+ movs r0, 0x68
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C300C
+ movs r0, 0x6E
+ movs r1, 0x1
+ bl BlendPalette
+_080C2FE6:
+ ldr r1, _080C3000
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r4, [r0, r3]
+ cmp r4, 0
+ bne _080C3014
+ ldr r0, _080C3010
+ strb r4, [r0, 0xA]
+ b _080C301A
+ .align 2, 0
+_080C3000: .4byte gTasks
+_080C3004: .4byte 0x00002ede
+_080C3008: .4byte 0x00007fff
+_080C300C: .4byte 0x000077be
+_080C3010: .4byte 0x02018000
+_080C3014:
+ ldr r1, _080C3020
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+_080C301A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3020: .4byte 0x02018000
+ thumb_func_end sub_80C2F64
+
+ thumb_func_start sub_80C3024
+sub_80C3024: @ 80C3024
+ push {r4-r6,lr}
+ ldr r6, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ cmp r3, 0
+ beq _080C30B0
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30A0
+ adds r1, r2
+ ldr r2, _080C30A4
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080C30A8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xA
+ lsls r1, 28
+ lsls r0, r4, 20
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ orrs r0, r1
+ lsrs r1, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 21
+ movs r2, 0x83
+ lsls r2, 16
+ adds r0, r2
+ lsrs r5, r0, 16
+ movs r2, 0
+ ldr r6, _080C30AC
+_080C307C:
+ lsls r0, r2, 5
+ adds r4, r2, 0x1
+ adds r0, r5
+ movs r3, 0x3
+ lsls r0, 1
+ adds r2, r0, r6
+_080C3088:
+ strh r1, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3088
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _080C307C
+ b _080C30CA
+ .align 2, 0
+_080C30A0: .4byte 0x06004000
+_080C30A4: .4byte 0x040000d4
+_080C30A8: .4byte 0x84000060
+_080C30AC: .4byte 0x0600c000
+_080C30B0:
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30D0
+ adds r1, r2
+ movs r2, 0xC0
+ lsls r2, 1
+ bl RequestSpriteCopy
+_080C30CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C30D0: .4byte 0x06004000
+ thumb_func_end sub_80C3024
+
+ thumb_func_start sub_80C30D4
+sub_80C30D4: @ 80C30D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r5, 0
+ ldr r4, _080C3108
+_080C30E4:
+ ldrh r0, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r2, [r4, 0x38]
+ str r2, [sp]
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_80C3024
+ adds r4, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080C30E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3108: .4byte gUnknown_02038570
+ thumb_func_end sub_80C30D4
+
+ thumb_func_start sub_80C310C
+sub_80C310C: @ 80C310C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080C314C
+ movs r5, 0xA0
+ lsls r5, 16
+_080C3116:
+ ldr r1, _080C3150
+ lsls r0, r4, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080C3154
+ adds r0, r1
+ lsrs r1, r5, 16
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 13
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C3116
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C314C: .4byte gMonIconPaletteIndices
+_080C3150: .4byte gUnknown_02038570
+_080C3154: .4byte gMonIconPalettes
+ thumb_func_end sub_80C310C
+
+ thumb_func_start sub_80C3158
+sub_80C3158: @ 80C3158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r3, _080C32C0
+ adds r2, r3
+ mov r1, sp
+ ldrh r0, [r2, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1]
+ mov r4, sp
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x2]
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x4]
+ movs r0, 0x32
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x6]
+ ldr r1, _080C32C4
+ mov r8, r1
+ ldr r7, _080C32C8
+ ldr r2, _080C32CC
+ ldr r6, _080C32D0
+ mov r1, sp
+ movs r5, 0
+ add r3, sp, 0x8
+ movs r4, 0x3
+_080C31CE:
+ ldrh r0, [r1]
+ lsls r0, 5
+ adds r0, r7
+ str r5, [sp, 0x8]
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r6, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C31CE
+ mov r0, r8
+ mov r1, r9
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080C32D4
+ ldr r1, _080C32D8
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ mvns r0, r5
+ adds r1, r0, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3218
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ lsrs r0, r1, 1
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+_080C3218:
+ adds r6, r5, 0x7
+ movs r1, 0x8
+ negs r1, r1
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r6, 24
+ lsrs r5, r6, 24
+ adds r0, r2, 0
+ mov r1, r9
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ strb r5, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080C32DC
+ mov r10, r0
+ ldr r1, _080C32D4
+ bl sub_80034D4
+ mov r0, sp
+ ldrh r4, [r0]
+ lsls r4, 5
+ ldr r1, _080C32C8
+ adds r7, r4, r1
+ ldr r0, _080C32E0
+ mov r9, r0
+ ldr r1, _080C32E4
+ mov r8, r1
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ mov r5, r9
+ adds r5, 0x80
+ ldr r0, _080C32E8
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ ldr r0, _080C32EC
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, r9
+ adds r0, 0x40
+ ldr r1, _080C32F0
+ adds r4, r1
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ lsrs r5, r6, 27
+ movs r4, 0
+ cmp r4, r5
+ bgt _080C3382
+ mov r6, sp
+ mov r0, r10
+ adds r0, 0x20
+ str r0, [sp, 0xC]
+ mov r1, r10
+ str r1, [sp, 0x10]
+ ldr r0, _080C32F4
+ str r0, [sp, 0x14]
+ ldr r1, _080C32F8
+ str r1, [sp, 0x18]
+ ldr r0, _080C32FC
+ mov r10, r0
+ ldr r1, _080C3300
+ mov r9, r1
+_080C32B2:
+ cmp r4, 0x6
+ bgt _080C3304
+ ldrh r0, [r6]
+ lsls r0, 5
+ mov r1, r9
+ b _080C3322
+ .align 2, 0
+_080C32C0: .4byte gSprites
+_080C32C4: .4byte gWindowConfig_81E7278
+_080C32C8: .4byte 0x06010000
+_080C32CC: .4byte 0x040000d4
+_080C32D0: .4byte 0x85000100
+_080C32D4: .4byte gUnknown_020238CC
+_080C32D8: .4byte gUnknown_083D17E2
+_080C32DC: .4byte 0x02018068
+_080C32E0: .4byte gUnknown_083D1624
+_080C32E4: .4byte REG_BG0CNT
+_080C32E8: .4byte 0x06010100
+_080C32EC: .4byte 0x06010200
+_080C32F0: .4byte 0x06010300
+_080C32F4: .4byte 0x0600fd20
+_080C32F8: .4byte 0x0600fe20
+_080C32FC: .4byte 0x0600ff20
+_080C3300: .4byte 0x06010020
+_080C3304:
+ cmp r4, 0xE
+ bgt _080C3310
+ ldrh r0, [r6, 0x2]
+ lsls r0, 5
+ mov r1, r10
+ b _080C3322
+_080C3310:
+ cmp r4, 0x16
+ bgt _080C331C
+ ldrh r0, [r6, 0x4]
+ lsls r0, 5
+ ldr r1, [sp, 0x18]
+ b _080C3322
+_080C331C:
+ ldrh r0, [r6, 0x6]
+ lsls r0, 5
+ ldr r1, [sp, 0x14]
+_080C3322:
+ adds r7, r0, r1
+ cmp r4, r5
+ beq _080C3382
+ ldr r0, _080C33D0
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, _080C33D0
+ adds r0, 0x20
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ ldr r0, [sp, 0x10]
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, [sp, 0xC]
+ mov r2, r8
+ bl CpuSet
+ ldr r1, [sp, 0xC]
+ adds r1, 0x40
+ str r1, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ adds r0, 0x40
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ adds r1, 0x20
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x20
+ add r10, r1
+ add r9, r1
+ adds r4, 0x1
+ cmp r4, r5
+ ble _080C32B2
+_080C3382:
+ ldr r4, _080C33D4
+ ldr r5, _080C33D8
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r6, r4, 0
+ adds r6, 0x80
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r4, 0x40
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C33D0: .4byte gUnknown_083D16E4
+_080C33D4: .4byte gUnknown_083D1644
+_080C33D8: .4byte REG_BG0CNT
+ thumb_func_end sub_80C3158
+
+ thumb_func_start sub_80C33DC
+sub_80C33DC: @ 80C33DC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ mov r1, sp
+ ldr r0, _080C3498
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ add r5, sp, 0x18
+ ldr r6, _080C349C
+ movs r4, 0x7
+_080C33F2:
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r6, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C33F2
+ ldr r0, _080C34A0
+ bl LoadSpritePalette
+ movs r4, 0
+ mov r6, sp
+_080C340A:
+ mov r0, sp
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ adds r1, r5, r4
+ strb r0, [r1]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080C340A
+ ldr r2, _080C34A4
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x1]
+ movs r3, 0
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x2]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x3]
+ strh r1, [r0, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x5]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x6]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x7]
+ strh r1, [r0, 0x32]
+ ldr r1, _080C34A8
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r1, 0x4]
+ ldrb r0, [r5, 0x4]
+ strb r0, [r1, 0x1]
+ bl sub_80C3764
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3498: .4byte gSpriteTemplate_83D174C
+_080C349C: .4byte gUnknown_083D1764
+_080C34A0: .4byte gUnknown_083D17A4
+_080C34A4: .4byte gSprites
+_080C34A8: .4byte 0x02018000
+ thumb_func_end sub_80C33DC
+
+ thumb_func_start sub_80C34AC
+sub_80C34AC: @ 80C34AC
+ push {lr}
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 25
+ lsrs r1, 25
+ movs r0, 0x70
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C34AC
+
+ thumb_func_start sub_80C34CC
+sub_80C34CC: @ 80C34CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, _080C3514
+ mov r8, r4
+ ldrb r5, [r4]
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r5, _080C3518
+ adds r4, r5
+ movs r6, 0
+ movs r5, 0x88
+ lsls r5, 1
+ strh r5, [r4, 0x20]
+ strh r1, [r4, 0x22]
+ strh r6, [r4, 0x24]
+ strh r6, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ strh r3, [r4, 0x3A]
+ strh r6, [r4, 0x3C]
+ ldr r0, _080C351C
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1, 0x4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3514: .4byte 0x02018000
+_080C3518: .4byte gSprites
+_080C351C: .4byte sub_80C3588
+ thumb_func_end sub_80C34CC
+
+ thumb_func_start sub_80C3520
+sub_80C3520: @ 80C3520
+ push {r4,r5,lr}
+ ldr r4, _080C3558
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _080C355C
+ adds r1, r2
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ movs r3, 0
+ strh r2, [r1, 0x20]
+ ldrh r2, [r1, 0x26]
+ ldrh r5, [r1, 0x22]
+ adds r2, r5
+ strh r2, [r1, 0x22]
+ strh r3, [r1, 0x26]
+ strh r3, [r1, 0x24]
+ strh r0, [r1, 0x3A]
+ strh r3, [r1, 0x3C]
+ ldr r0, _080C3560
+ str r0, [r1, 0x1C]
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3558: .4byte 0x02018000
+_080C355C: .4byte gSprites
+_080C3560: .4byte sub_80C3630
+ thumb_func_end sub_80C3520
+
+ thumb_func_start sub_80C3564
+sub_80C3564: @ 80C3564
+ movs r3, 0
+ movs r2, 0
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r1, 0x90
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x26]
+ strh r2, [r0, 0x24]
+ ldr r1, _080C3580
+ str r1, [r0, 0x1C]
+ ldr r0, _080C3584
+ strb r3, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080C3580: .4byte SpriteCallbackDummy
+_080C3584: .4byte 0x02018000
+ thumb_func_end sub_80C3564
+
+ thumb_func_start sub_80C3588
+sub_80C3588: @ 80C3588
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r3, 0x36]
+ movs r4, 0x36
+ ldrsh r1, [r3, r4]
+ cmp r0, r1
+ bge _080C35B2
+ strh r2, [r3, 0x20]
+_080C35B2:
+ movs r4, 0
+ ldr r6, _080C35F4
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C35BC:
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C35BC
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ bne _080C35EC
+ ldr r0, _080C35F8
+ str r0, [r3, 0x1C]
+_080C35EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C35F4: .4byte gSprites
+_080C35F8: .4byte sub_80C35FC
+ thumb_func_end sub_80C3588
+
+ thumb_func_start sub_80C35FC
+sub_80C35FC: @ 80C35FC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080C3628
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ ldrh r3, [r2, 0x38]
+ ldr r1, _080C362C
+ lsrs r0, r1, 16
+ cmp r3, r0
+ beq _080C3624
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _080C3624
+ ldrh r0, [r2, 0x3A]
+ bl sub_80C3520
+_080C3624:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3628: .4byte 0x02018000
+_080C362C: .4byte 0xffff0000
+ thumb_func_end sub_80C35FC
+
+ thumb_func_start sub_80C3630
+sub_80C3630: @ 80C3630
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x3C]
+ movs r4, 0
+ ldr r6, _080C3694
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C3654:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C3654
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ movs r2, 0x24
+ ldrsh r1, [r3, r2]
+ adds r0, r1
+ movs r1, 0xE0
+ negs r1, r1
+ cmp r0, r1
+ bge _080C368C
+ adds r0, r3, 0
+ bl sub_80C3564
+_080C368C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3694: .4byte gSprites
+ thumb_func_end sub_80C3630
+
+ thumb_func_start sub_80C3698
+sub_80C3698: @ 80C3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080C374C
+ ldrb r1, [r5, 0x1]
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r5, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r3, _080C3750
+ adds r4, r1, r3
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x50
+ strh r0, [r4, 0x22]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r5]
+ movs r5, 0
+ adds r6, r3, 0
+ mov r12, r2
+ movs r3, 0x40
+_080C36DA:
+ lsls r0, r5, 1
+ adds r2, r4, 0
+ adds r2, 0x2E
+ adds r2, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r4, 0x24]
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x22]
+ strh r1, [r0, 0x22]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ adds r3, 0x40
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C36DA
+ ldr r1, _080C3754
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r2, _080C3758
+ ldrh r1, [r4, 0x22]
+ adds r0, r1, 0
+ subs r0, 0x10
+ lsls r0, 8
+ adds r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080C375C
+ ldr r2, _080C3760
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C374C: .4byte 0x02018000
+_080C3750: .4byte gSprites
+_080C3754: .4byte gUnknown_030042C4
+_080C3758: .4byte gUnknown_03004240
+_080C375C: .4byte REG_WININ
+_080C3760: .4byte 0x00003f3e
+ thumb_func_end sub_80C3698
+
+ thumb_func_start sub_80C3764
+sub_80C3764: @ 80C3764
+ push {r4-r7,lr}
+ ldr r0, _080C37C8
+ ldrb r0, [r0, 0x1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r3, _080C37CC
+ adds r2, r3
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r7, _080C37D0
+ ldr r6, _080C37D4
+ adds r5, r3, 0
+ movs r4, 0x4
+ adds r2, 0x2E
+ movs r3, 0x2
+_080C3790:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3790
+ movs r1, 0
+ strh r1, [r7]
+ strh r1, [r6]
+ ldr r0, _080C37D8
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080C37DC
+ ldr r2, _080C37E0
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C37C8: .4byte 0x02018000
+_080C37CC: .4byte gSprites
+_080C37D0: .4byte gUnknown_030042C4
+_080C37D4: .4byte gUnknown_03004240
+_080C37D8: .4byte REG_WIN0H
+_080C37DC: .4byte REG_WININ
+_080C37E0: .4byte 0x00003f3f
+ thumb_func_end sub_80C3764
+
+ thumb_func_start sub_80C37E4
+sub_80C37E4: @ 80C37E4
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r5, 0x1
+ movs r4, 0
+ ldr r0, _080C3808
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3814
+ ldr r0, _080C380C
+ ldr r3, _080C3810
+ movs r1, 0x9
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ b _080C386A
+ .align 2, 0
+_080C3808: .4byte gUnknown_0203869A
+_080C380C: .4byte 0x0600e000
+_080C3810: .4byte gUnknown_08E964B8
+_080C3814:
+ ldr r0, _080C3830
+ ldrh r2, [r0]
+ cmp r2, 0
+ bne _080C383C
+ movs r4, 0x1
+ ldr r0, _080C3834
+ ldr r3, _080C3838
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3830: .4byte gUnknown_0203869E
+_080C3834: .4byte 0x0600e000
+_080C3838: .4byte gUnknown_08E964B8
+_080C383C:
+ cmp r2, 0x1
+ bne _080C385C
+ ldr r0, _080C3854
+ ldr r3, _080C3858
+ movs r1, 0x9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3854: .4byte 0x0600e000
+_080C3858: .4byte gUnknown_08E964B8
+_080C385C:
+ cmp r2, 0x2
+ bne _080C3884
+ ldr r0, _080C387C
+ ldr r3, _080C3880
+ movs r1, 0x11
+ str r1, [sp]
+ str r4, [sp, 0x4]
+_080C386A:
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+_080C3870:
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+ b _080C389E
+ .align 2, 0
+_080C387C: .4byte 0x0600e000
+_080C3880: .4byte gUnknown_08E964B8
+_080C3884:
+ movs r4, 0x1
+ ldr r0, _080C38C0
+ ldr r3, _080C38C4
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+_080C389E:
+ adds r4, 0xD
+ ldr r0, _080C38C8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080C38CC
+ movs r6, 0
+ ldr r0, _080C38C0
+ ldr r3, _080C38C4
+ movs r1, 0x11
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C38C0: .4byte 0x0600e000
+_080C38C4: .4byte gUnknown_08E964B8
+_080C38C8: .4byte gUnknown_0203869C
+_080C38CC:
+ cmp r0, 0x1
+ bne _080C38EC
+ movs r6, 0x1
+ ldr r0, _080C38E4
+ ldr r3, _080C38E8
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xB
+ b _080C3924
+ .align 2, 0
+_080C38E4: .4byte 0x0600e000
+_080C38E8: .4byte gUnknown_08E964B8
+_080C38EC:
+ cmp r0, 0x2
+ bne _080C3910
+ movs r6, 0x2
+ ldr r0, _080C3908
+ ldr r3, _080C390C
+ movs r1, 0xB
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r6, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C3908: .4byte 0x0600e000
+_080C390C: .4byte gUnknown_08E964B8
+_080C3910:
+ cmp r0, 0x3
+ bne _080C393C
+ movs r6, 0x3
+ ldr r0, _080C3934
+ ldr r3, _080C3938
+ movs r1, 0x15
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+_080C3924:
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+_080C392A:
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+ b _080C395A
+ .align 2, 0
+_080C3934: .4byte 0x0600e000
+_080C3938: .4byte gUnknown_08E964B8
+_080C393C:
+ movs r6, 0x4
+ ldr r0, _080C3984
+ ldr r3, _080C3988
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+_080C395A:
+ ldr r5, _080C398C
+ lsls r4, r6, 12
+ ldr r2, _080C3984
+ movs r3, 0x7F
+_080C3962:
+ ldrh r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3962
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3984: .4byte 0x0600e000
+_080C3988: .4byte gUnknown_08E964B8
+_080C398C: .4byte 0x00000fff
+ thumb_func_end sub_80C37E4
+
+ thumb_func_start sub_80C3990
+sub_80C3990: @ 80C3990
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080C39DC
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, _080C39E0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C39BC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+_080C39BC:
+ lsrs r1, 16
+ cmp r1, 0
+ bne _080C39C8
+ cmp r4, 0
+ beq _080C39C8
+ movs r1, 0x1
+_080C39C8:
+ cmp r5, 0
+ beq _080C39D2
+ cmp r1, 0xA
+ bls _080C39D2
+ movs r1, 0xA
+_080C39D2:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C39DC: .4byte gUnknown_02038670
+_080C39E0: .4byte 0x0000ffff
+ thumb_func_end sub_80C3990
+
+ thumb_func_start sub_80C39E4
+sub_80C39E4: @ 80C39E4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080C3A44
+ lsls r0, r5, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bge _080C3A00
+ negs r0, r0
+_080C3A00:
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r0, _080C3A48
+ ands r0, r2
+ cmp r0, 0
+ beq _080C3A1A
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+_080C3A1A:
+ lsrs r2, 16
+ cmp r2, 0
+ bne _080C3A26
+ cmp r4, 0
+ beq _080C3A26
+ movs r2, 0x1
+_080C3A26:
+ cmp r6, 0
+ beq _080C3A30
+ cmp r2, 0xA
+ bls _080C3A30
+ movs r2, 0xA
+_080C3A30:
+ lsls r0, r5, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080C3A4C
+ negs r0, r2
+ lsls r0, 24
+ b _080C3A4E
+ .align 2, 0
+_080C3A44: .4byte gUnknown_02038688
+_080C3A48: .4byte 0x0000ffff
+_080C3A4C:
+ lsls r0, r2, 24
+_080C3A4E:
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C39E4
+
+ thumb_func_start sub_80C3A5C
+sub_80C3A5C: @ 80C3A5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _080C3A90
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x1C]
+ movs r1, 0x1C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C3A94
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ strh r0, [r3, 0x1E]
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x1C]
+ b _080C3B12
+ .align 2, 0
+_080C3A90: .4byte gTasks
+_080C3A94:
+ cmp r0, 0x1
+ bne _080C3B12
+ ldrh r0, [r3, 0x1E]
+ subs r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080C3B12
+ movs r0, 0x8
+ ldrsh r2, [r3, r0]
+ lsls r2, 17
+ ldr r1, _080C3B18
+ adds r2, r1
+ lsrs r2, 16
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B1C
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B20
+ adds r0, r1
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B24
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x10
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B28
+ adds r0, r1
+ adds r2, 0x11
+ strh r2, [r0]
+ ldr r1, _080C3B2C
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0x18
+ bl PlaySE
+_080C3B12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3B18: .4byte 0x50430000
+_080C3B1C: .4byte 0x0600e142
+_080C3B20: .4byte 0x0600e144
+_080C3B24: .4byte 0x0600e182
+_080C3B28: .4byte 0x0600e184
+_080C3B2C: .4byte 0x02018000
+ thumb_func_end sub_80C3A5C
+
+ thumb_func_start sub_80C3B30
+sub_80C3B30: @ 80C3B30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C3BC0
+ ldrb r0, [r1]
+ ldr r2, _080C3BC4
+ mov r10, r2
+ cmp r0, 0
+ beq _080C3B5C
+_080C3B4E:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _080C3B5C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C3B4E
+_080C3B5C:
+ movs r1, 0
+ lsls r0, r5, 1
+ mov r2, r12
+ lsls r2, 2
+ mov r9, r2
+ adds r0, r5
+ lsls r0, 5
+ mov r8, r0
+ ldr r7, _080C3BC8
+ movs r0, 0x90
+ lsls r0, 8
+ adds r6, r0, 0
+_080C3B74:
+ lsls r0, r1, 5
+ adds r4, r1, 0x1
+ add r0, r8
+ movs r3, 0x1D
+ lsls r0, 1
+ ldr r1, _080C3BCC
+ adds r2, r0, r1
+_080C3B82:
+ ldrh r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3B82
+ adds r1, r4, 0
+ cmp r1, 0x2
+ ble _080C3B74
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ add r0, r10
+ strh r5, [r0, 0x1C]
+ movs r1, 0x1
+ strh r1, [r0, 0x20]
+ ldr r2, _080C3BD0
+ str r2, [r0]
+ mov r1, r12
+ ldr r0, _080C3BD4
+ strb r1, [r0, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3BC0: .4byte gUnknown_02038690
+_080C3BC4: .4byte gTasks
+_080C3BC8: .4byte 0x00000fff
+_080C3BCC: .4byte 0x0600e100
+_080C3BD0: .4byte sub_80C3BD8
+_080C3BD4: .4byte 0x02018000
+ thumb_func_end sub_80C3B30
+
+ thumb_func_start sub_80C3BD8
+sub_80C3BD8: @ 80C3BD8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3C24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x1
+ bne _080C3C3C
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r2, [r4, 0x20]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080C3C28
+ movs r0, 0x91
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C3C2C
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080C3C3C
+ strh r5, [r4, 0x22]
+ b _080C3C3C
+ .align 2, 0
+_080C3C24: .4byte gTasks
+_080C3C28: .4byte 0x00006f8d
+_080C3C2C:
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080C3C3C
+ strh r0, [r4, 0x22]
+_080C3C3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3BD8
+
+ thumb_func_start sub_80C3C44
+sub_80C3C44: @ 80C3C44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080C3C6C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080C3CA8
+ ldrh r0, [r4, 0x30]
+ movs r1, 0
+ bl PlayCry1
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080C3CA8
+_080C3C6C:
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ bgt _080C3C92
+ movs r0, 0x78
+ strh r0, [r4, 0x20]
+_080C3C92:
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ bne _080C3CA8
+ ldr r0, _080C3CB0
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080C3CB4
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_080C3CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CB0: .4byte SpriteCallbackDummy
+_080C3CB4: .4byte 0x02018000
+ thumb_func_end sub_80C3C44
+
+ thumb_func_start sub_80C3CB8
+sub_80C3CB8: @ 80C3CB8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080C3CF8
+ ldr r0, _080C3CFC
+ str r0, [r3, 0x1C]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080C3D00
+ movs r0, 0x2
+ strb r0, [r1, 0x6]
+_080C3CF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CFC: .4byte SpriteCallbackDummy
+_080C3D00: .4byte 0x02018000
+ thumb_func_end sub_80C3CB8
+
+ thumb_func_start sub_80C3D04
+sub_80C3D04: @ 80C3D04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C3DD8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080C3DBE
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _080C3DDC
+ mov r8, r0
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x27
+ bhi _080C3DBE
+ ldr r4, _080C3DE0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r1, r0, 0
+ subs r1, 0x14
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x2C
+ movs r3, 0x5
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ ldr r1, _080C3DE4
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r1
+ lsls r0, 23
+ lsrs r0, 23
+ strh r0, [r5, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ adds r0, 0x10
+ strh r0, [r5, 0x30]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xFF
+ ands r0, r1
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ bl Random
+ ldrh r6, [r5, 0x4]
+ lsls r4, r6, 22
+ lsrs r4, 22
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r4, r0
+ ldr r1, _080C3DE8
+ adds r0, r1, 0
+ ands r4, r0
+ ldr r0, _080C3DEC
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r5, 0x4]
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+_080C3DBE:
+ ldr r0, _080C3DDC
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _080C3DCC
+ adds r0, r7, 0
+ bl DestroyTask
+_080C3DCC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3DD8: .4byte gTasks
+_080C3DDC: .4byte 0x02018000
+_080C3DE0: .4byte gSpriteTemplate_83D17B4
+_080C3DE4: .4byte gSprites
+_080C3DE8: .4byte 0x000003ff
+_080C3DEC: .4byte 0xfffffc00
+ thumb_func_end sub_80C3D04
+
+ thumb_func_start sub_80C3DF0
+sub_80C3DF0: @ 80C3DF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r5, _080C3E5C
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ beq _080C3E3A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080C3E3A:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF8
+ bgt _080C3E4A
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x74
+ ble _080C3E56
+_080C3E4A:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrb r0, [r5, 0x7]
+ subs r0, 0x1
+ strb r0, [r5, 0x7]
+_080C3E56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E5C: .4byte 0x02018000
+ thumb_func_end sub_80C3DF0
+
+ thumb_func_start sub_80C3E60
+sub_80C3E60: @ 80C3E60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080C3E98
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ ldr r0, _080C3EA0
+ lsls r4, 6
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E98: .4byte sub_80C3EA4
+_080C3E9C: .4byte gTasks
+_080C3EA0: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3E60
+
+ thumb_func_start sub_80C3EA4
+sub_80C3EA4: @ 80C3EA4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3EF8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrb r5, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080C3EEE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xC]
+ ldrb r2, [r4, 0x1E]
+ ldr r1, _080C3EFC
+ lsls r3, r5, 6
+ adds r1, 0x38
+ adds r3, r1
+ ldr r1, [r3]
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0
+ bl sub_80C3024
+ ldrh r0, [r4, 0x1E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x1E]
+_080C3EEE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3EF8: .4byte gTasks
+_080C3EFC: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3EA4
+
+ thumb_func_start sub_80C3F00
+sub_80C3F00: @ 80C3F00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _080C4098
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ adds r3, r4, 0x2
+ movs r0, 0x2
+ mov r8, r0
+_080C3F16:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ bge _080C3F24
+ ldrh r2, [r3]
+_080C3F24:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080C3F16
+ lsls r0, r2, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080C3F62
+ ldrh r2, [r4]
+ adds r3, r4, 0x2
+ movs r4, 0x2
+ mov r8, r4
+_080C3F42:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ ble _080C3F50
+ ldrh r2, [r3]
+_080C3F50:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ lsls r1, r2, 16
+ mov r9, r1
+ mov r4, r8
+ cmp r4, 0
+ bge _080C3F42
+_080C3F62:
+ movs r5, 0
+ mov r8, r5
+ mov r10, r5
+_080C3F68:
+ ldr r0, _080C409C
+ mov r1, r8
+ lsls r7, r1, 1
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ mov r4, r9
+ asrs r6, r4, 16
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _080C3F8A
+ negs r1, r6
+_080C3F8A:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3F9C
+ adds r4, 0xA
+_080C3F9C:
+ ldr r0, _080C40A0
+ mov r1, r10
+ adds r5, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ ldr r0, _080C40A4
+ adds r7, r0
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ cmp r1, 0
+ bge _080C3FBA
+ negs r1, r1
+_080C3FBA:
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r6, 0
+ cmp r1, 0
+ bge _080C3FCC
+ negs r1, r1
+_080C3FCC:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3FDE
+ adds r4, 0xA
+_080C3FDE:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5, 0x4]
+ movs r4, 0
+ ldrsh r0, [r7, r4]
+ cmp r0, 0
+ bge _080C3FF4
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_080C3FF4:
+ ldr r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ movs r4, 0xFF
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C4016
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+_080C4016:
+ lsrs r0, r1, 8
+ str r0, [r5, 0x8]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C403A
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2
+_080C403A:
+ lsrs r0, r1, 8
+ str r0, [r5, 0xC]
+ mov r0, r8
+ lsls r4, r0, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ strb r0, [r5, 0x11]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080C4060
+ negs r0, r0
+_080C4060:
+ strb r0, [r5, 0x12]
+ ldr r0, _080C40A8
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C40B4
+ ldr r4, [r5, 0x8]
+ ldrh r2, [r5, 0x8]
+ ldr r3, [r5, 0xC]
+ ldrh r1, [r5, 0xC]
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080C4080
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080C4080:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ cmp r0, 0x58
+ bne _080C40B4
+ cmp r1, 0
+ ble _080C40AC
+ subs r0, r3, 0x1
+ str r0, [r5, 0xC]
+ b _080C40B4
+ .align 2, 0
+_080C4098: .4byte gUnknown_02038678
+_080C409C: .4byte gUnknown_02038670
+_080C40A0: .4byte 0x02018018
+_080C40A4: .4byte gUnknown_02038688
+_080C40A8: .4byte gUnknown_02038690
+_080C40AC:
+ cmp r2, 0
+ ble _080C40B4
+ subs r0, r4, 0x1
+ str r0, [r5, 0x8]
+_080C40B4:
+ movs r1, 0x14
+ add r10, r1
+ movs r2, 0x1
+ add r8, r2
+ mov r4, r8
+ cmp r4, 0x3
+ bgt _080C40C4
+ b _080C3F68
+_080C40C4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3F00
+
+ thumb_func_start sub_80C40D4
+sub_80C40D4: @ 80C40D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ mov r10, r1
+ movs r2, 0
+ str r2, [sp]
+ cmp r0, 0
+ bne _080C4198
+ mov r8, r2
+ ldr r0, _080C417C
+ subs r1, 0x18
+ adds r1, r0
+ mov r9, r1
+ adds r4, r0, 0
+ adds r4, 0x8
+ movs r6, 0xA0
+_080C4102:
+ ldrb r0, [r4, 0x9]
+ cmp r7, r0
+ bcs _080C416A
+ adds r0, 0x13
+ adds r0, r6, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r2, _080C4180
+ adds r0, r2
+ ldr r2, _080C4184
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _080C4188
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r4]
+ lsls r0, 16
+ ldrb r1, [r4, 0x9]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C418C
+ ands r0, r3
+ ldr r1, _080C4190
+ cmp r0, r1
+ bls _080C4146
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_080C4146:
+ ldr r1, _080C4194
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xA]
+ mov r2, r9
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C416A:
+ adds r4, 0x14
+ adds r6, 0x60
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _080C4102
+ b _080C4292
+ .align 2, 0
+_080C417C: .4byte 0x02018018
+_080C4180: .4byte 0x0600bffe
+_080C4184: .4byte 0x000060b3
+_080C4188: .4byte sub_80C42C0
+_080C418C: .4byte 0x0000ffff
+_080C4190: .4byte 0x00007fff
+_080C4194: .4byte gTasks
+_080C4198:
+ movs r2, 0
+ mov r8, r2
+ ldr r0, _080C4220
+ mov r12, r0
+ mov r9, r2
+ movs r1, 0xC0
+ str r1, [sp, 0x4]
+_080C41A6:
+ mov r6, r9
+ add r6, r12
+ ldrb r1, [r6, 0x12]
+ ldrb r0, [r6, 0x10]
+ ldr r2, _080C4224
+ cmp r0, 0
+ beq _080C41B6
+ adds r2, 0x2
+_080C41B6:
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r7, r0
+ bge _080C427E
+ adds r0, 0x13
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r1, _080C4228
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _080C422C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r6, 0xC]
+ lsls r0, 16
+ ldrb r1, [r6, 0x12]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C4230
+ ands r0, r3
+ ldr r1, _080C4234
+ cmp r0, r1
+ bls _080C41FA
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2
+_080C41FA:
+ ldr r1, _080C4238
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6, 0x10]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080C423C
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ b _080C4246
+ .align 2, 0
+_080C4220: .4byte 0x02018018
+_080C4224: .4byte 0x000060a3
+_080C4228: .4byte 0x0600bffe
+_080C422C: .4byte sub_80C42C0
+_080C4230: .4byte 0x0000ffff
+_080C4234: .4byte 0x00007fff
+_080C4238: .4byte gTasks
+_080C423C:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C4246:
+ ldr r0, _080C4264
+ mov r1, r9
+ adds r4, r1, r0
+ ldrb r1, [r4, 0x10]
+ mov r12, r0
+ cmp r1, 0
+ beq _080C4268
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ subs r1, r2
+ b _080C4274
+ .align 2, 0
+_080C4264: .4byte 0x02018018
+_080C4268:
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ adds r1, r2
+_080C4274:
+ strh r1, [r0, 0xA]
+ ldr r1, _080C42BC
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+_080C427E:
+ movs r2, 0x14
+ add r9, r2
+ ldr r0, [sp, 0x4]
+ adds r0, 0x60
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x3
+ ble _080C41A6
+_080C4292:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080C429E
+ movs r0, 0x16
+ bl PlaySE
+_080C429E:
+ mov r1, r10
+ cmp r1, 0
+ beq _080C42AA
+ movs r0, 0x15
+ bl PlaySE
+_080C42AA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C42BC: .4byte 0x02018000
+ thumb_func_end sub_80C40D4
+
+ thumb_func_start sub_80C42C0
+sub_80C42C0: @ 80C42C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ mov r9, r6
+ ldr r1, _080C4308
+ lsls r0, 2
+ add r0, r12
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x8]
+ ldrh r7, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ mov r8, r1
+ movs r2, 0xC
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080C4310
+ ldr r1, _080C430C
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bgt _080C4328
+ b _080C4326
+ .align 2, 0
+_080C4308: .4byte gTasks
+_080C430C: .4byte 0x02018000
+_080C4310:
+ ldr r1, _080C4350
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0x57
+ ble _080C4328
+_080C4326:
+ movs r6, 0x1
+_080C4328:
+ mov r0, r10
+ adds r0, 0xC
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080C4340
+ movs r1, 0x1
+ mov r9, r1
+_080C4340:
+ mov r0, r9
+ cmp r0, 0
+ bne _080C4362
+ cmp r6, 0
+ beq _080C4354
+ strh r7, [r3]
+ b _080C4362
+ .align 2, 0
+_080C4350: .4byte 0x02018000
+_080C4354:
+ mov r1, r8
+ cmp r1, 0
+ beq _080C435E
+ subs r0, r2, 0x1
+ b _080C4360
+_080C435E:
+ adds r0, r2, 0x1
+_080C4360:
+ strh r0, [r3]
+_080C4362:
+ cmp r6, 0
+ bne _080C43C8
+ mov r2, r9
+ cmp r2, 0
+ bne _080C43CE
+ movs r2, 0
+ ldr r0, _080C4388
+ adds r6, r4, r0
+ adds r0, r4, r5
+ lsls r5, r0, 5
+_080C4376:
+ movs r0, 0
+ ldrsh r3, [r6, r0]
+ adds r0, r2, 0x1
+ lsls r1, r0, 3
+ adds r4, r0, 0
+ cmp r3, r1
+ blt _080C438C
+ movs r0, 0x8
+ b _080C43A8
+ .align 2, 0
+_080C4388: .4byte 0x0201800c
+_080C438C:
+ lsls r0, r2, 3
+ cmp r3, r0
+ blt _080C43A6
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080C439A
+ adds r0, r3, 0x7
+_080C439A:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r3, r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C43A8
+_080C43A6:
+ movs r0, 0
+_080C43A8:
+ cmp r0, 0x3
+ bhi _080C43B4
+ ldr r3, _080C43B0
+ b _080C43B6
+ .align 2, 0
+_080C43B0: .4byte 0x0000504c
+_080C43B4:
+ ldr r3, _080C43EC
+_080C43B6:
+ adds r1, r0, r3
+ adds r0, r5, r2
+ lsls r0, 1
+ ldr r2, _080C43F0
+ adds r0, r2
+ strh r1, [r0]
+ adds r2, r4, 0
+ cmp r2, 0xA
+ ble _080C4376
+_080C43C8:
+ mov r3, r9
+ cmp r3, 0
+ beq _080C43DC
+_080C43CE:
+ mov r1, r10
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ mov r0, r12
+ bl DestroyTask
+_080C43DC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C43EC: .4byte 0x00005057
+_080C43F0: .4byte 0x0600e18e
+ thumb_func_end sub_80C42C0
+
+ thumb_func_start sub_80C43F4
+sub_80C43F4: @ 80C43F4
+ push {r4,r5,lr}
+ ldr r0, _080C442C
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080C4430
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080C4422
+ ldr r4, _080C4434
+ ldrb r0, [r4]
+ ldr r1, _080C4438
+ ldrb r1, [r1]
+ bl sub_80AE398
+ ldrb r0, [r4]
+ bl sub_80AE82C
+_080C4422:
+ ldr r0, _080C443C
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C442C: .4byte gUnknown_02038694
+_080C4430: .4byte gPlayerParty
+_080C4434: .4byte gUnknown_0203869C
+_080C4438: .4byte gUnknown_0203869E
+_080C443C: .4byte gScriptResult
+ thumb_func_end sub_80C43F4
+
+ thumb_func_start sub_80C4440
+sub_80C4440: @ 80C4440
+ push {r4,lr}
+ movs r4, 0
+ ldr r0, _080C4464
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C4468
+ adds r2, r1, r0
+ ldr r0, _080C446C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C44B2
+ lsls r0, 2
+ ldr r1, _080C4470
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4464: .4byte gUnknown_02038694
+_080C4468: .4byte gPlayerParty
+_080C446C: .4byte gUnknown_0203869C
+_080C4470: .4byte _080C4474
+ .align 2, 0
+_080C4474:
+ .4byte _080C4488
+ .4byte _080C448E
+ .4byte _080C4494
+ .4byte _080C449A
+ .4byte _080C44A0
+_080C4488:
+ adds r0, r2, 0
+ movs r1, 0x32
+ b _080C44A4
+_080C448E:
+ adds r0, r2, 0
+ movs r1, 0x33
+ b _080C44A4
+_080C4494:
+ adds r0, r2, 0
+ movs r1, 0x34
+ b _080C44A4
+_080C449A:
+ adds r0, r2, 0
+ movs r1, 0x35
+ b _080C44A4
+_080C44A0:
+ adds r0, r2, 0
+ movs r1, 0x36
+_080C44A4:
+ bl GetMonData
+ ldr r1, _080C44BC
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _080C44B2
+ movs r4, 0x1
+_080C44B2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C44BC: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C4440
+
+ thumb_func_start sub_80C44C0
+sub_80C44C0: @ 80C44C0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080C44E8
+ ldr r0, _080C44EC
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C44D4
+ b _080C465E
+_080C44D4:
+ ldr r0, _080C44F0
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bls _080C44DE
+ b _080C465E
+_080C44DE:
+ lsls r0, 2
+ ldr r1, _080C44F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C44E8: .4byte gUnknown_02038690
+_080C44EC: .4byte gUnknown_02038695
+_080C44F0: .4byte gUnknown_0203869C
+_080C44F4: .4byte _080C44F8
+ .align 2, 0
+_080C44F8:
+ .4byte _080C450C
+ .4byte _080C4554
+ .4byte _080C4598
+ .4byte _080C45DC
+ .4byte _080C4624
+_080C450C:
+ ldr r6, _080C4548
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C454C
+ adds r0, r4
+ movs r1, 0x32
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, _080C4550
+ ldrh r0, [r0]
+ cmp r1, r0
+ bls _080C4530
+ b _080C465E
+_080C4530:
+ adds r0, r1, 0
+ cmp r0, 0x3
+ bls _080C4538
+ b _080C465E
+_080C4538:
+ adds r1, r0, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x32
+ b _080C4610
+ .align 2, 0
+_080C4548: .4byte gUnknown_02038694
+_080C454C: .4byte gPlayerParty
+_080C4550: .4byte gUnknown_0203869E
+_080C4554:
+ mov r4, sp
+ ldr r7, _080C458C
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C4590
+ adds r0, r5
+ movs r1, 0x33
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4594
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x33
+ b _080C4610
+ .align 2, 0
+_080C458C: .4byte gUnknown_02038694
+_080C4590: .4byte gPlayerParty
+_080C4594: .4byte gUnknown_0203869E
+_080C4598:
+ mov r4, sp
+ ldr r7, _080C45D0
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C45D4
+ adds r0, r5
+ movs r1, 0x34
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C45D8
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x34
+ b _080C4610
+ .align 2, 0
+_080C45D0: .4byte gUnknown_02038694
+_080C45D4: .4byte gPlayerParty
+_080C45D8: .4byte gUnknown_0203869E
+_080C45DC:
+ mov r4, sp
+ ldr r7, _080C4618
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C461C
+ adds r0, r5
+ movs r1, 0x35
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4620
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x35
+_080C4610:
+ mov r2, sp
+ bl SetMonData
+ b _080C465E
+ .align 2, 0
+_080C4618: .4byte gUnknown_02038694
+_080C461C: .4byte gPlayerParty
+_080C4620: .4byte gUnknown_0203869E
+_080C4624:
+ mov r4, sp
+ ldr r7, _080C4668
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C466C
+ adds r0, r5
+ movs r1, 0x36
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4670
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x36
+ mov r2, sp
+ bl SetMonData
+_080C465E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4668: .4byte gUnknown_02038694
+_080C466C: .4byte gPlayerParty
+_080C4670: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C44C0
+
+ thumb_func_start sub_80C4674
+sub_80C4674: @ 80C4674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C4690
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C4690
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C4690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4674
+
+ thumb_func_start sub_80C4698
+sub_80C4698: @ 80C4698
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r4, 6
+ ldr r0, _080C46E0
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, _080C46E4
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C46DA
+ ldr r0, _080C46E8
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x1
+ bne _080C46DA
+ adds r0, r5, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl ConvertInternationalString
+_080C46DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C46E0: .4byte gUnknown_02038572
+_080C46E4: .4byte gUnknown_0203869A
+_080C46E8: .4byte gLinkPlayers
+ thumb_func_end sub_80C4698
+
+ thumb_func_start sub_80C46EC
+sub_80C46EC: @ 80C46EC
+ push {lr}
+ ldr r0, _080C4710
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4720
+ ldr r0, _080C4714
+ ldr r1, _080C4718
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080C471C
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4730
+ .align 2, 0
+_080C4710: .4byte gUnknown_0203869A
+_080C4714: .4byte gStringVar1
+_080C4718: .4byte gUnknown_0202E8D0
+_080C471C: .4byte gLinkPlayers + 0x8
+_080C4720:
+ ldr r0, _080C4734
+ ldr r1, _080C4738
+ ldrh r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C473C
+ adds r1, r2
+ bl sub_80C4674
+_080C4730:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4734: .4byte gStringVar1
+_080C4738: .4byte gUnknown_0202E8D0
+_080C473C: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C46EC
+
+ thumb_func_start sub_80C4740
+sub_80C4740: @ 80C4740
+ push {lr}
+ ldr r0, _080C4750
+ ldr r1, _080C4754
+ ldrb r1, [r1]
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4750: .4byte gStringVar3
+_080C4754: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4740
+
+ thumb_func_start sub_80C4758
+sub_80C4758: @ 80C4758
+ push {r4-r6,lr}
+ movs r1, 0
+ movs r2, 0
+ ldr r5, _080C4794
+ ldr r4, _080C4798
+ ldr r0, _080C479C
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+_080C476E:
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r3, r0
+ bge _080C4780
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4780:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C476E
+ strh r2, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4794: .4byte gUnknown_0202E8CC
+_080C4798: .4byte gUnknown_02038670
+_080C479C: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4758
+
+ thumb_func_start sub_80C47A0
+sub_80C47A0: @ 80C47A0
+ ldr r2, _080C47B4
+ ldr r1, _080C47B8
+ ldr r0, _080C47BC
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C47B4: .4byte gUnknown_0202E8CC
+_080C47B8: .4byte gUnknown_02038670
+_080C47BC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C47A0
+
+ thumb_func_start sub_80C47C0
+sub_80C47C0: @ 80C47C0
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C47E8
+ ldrb r0, [r2]
+ ldr r3, _080C47EC
+ cmp r0, 0
+ beq _080C47E0
+_080C47CE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C47E0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C47CE
+_080C47E0:
+ strh r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C47E8: .4byte gUnknown_02038690
+_080C47EC: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80C47C0
+
+ thumb_func_start sub_80C47F0
+sub_80C47F0: @ 80C47F0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080C4830
+ ldrb r0, [r3]
+ ldr r1, _080C4834
+ ldr r4, _080C4838
+ cmp r0, 0
+ beq _080C4812
+_080C4800:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _080C4812
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4800
+_080C4812:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4840
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _080C483C
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+ b _080C484C
+ .align 2, 0
+_080C4830: .4byte gUnknown_02038690
+_080C4834: .4byte gUnknown_0203869A
+_080C4838: .4byte gStringVar3
+_080C483C: .4byte gLinkPlayers + 0x8
+_080C4840:
+ lsls r1, r2, 6
+ ldr r0, _080C4854
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+_080C484C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4854: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C47F0
+
+ thumb_func_start sub_80C4858
+sub_80C4858: @ 80C4858
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C4884
+ ldrb r0, [r2]
+ ldr r3, _080C4888
+ cmp r0, 0
+ beq _080C4878
+_080C4866:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C4878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4866
+_080C4878:
+ adds r0, r3, 0
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4884: .4byte gUnknown_02038690
+_080C4888: .4byte gStringVar1
+ thumb_func_end sub_80C4858
+
+ thumb_func_start sub_80C488C
+sub_80C488C: @ 80C488C
+ push {lr}
+ ldr r0, _080C4898
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4898: .4byte sub_80AB47C
+ thumb_func_end sub_80C488C
+
+ thumb_func_start sub_80C489C
+sub_80C489C: @ 80C489C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C48C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C48BA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C48C4
+ bl SetMainCallback2
+_080C48BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48C0: .4byte gPaletteFade
+_080C48C4: .4byte sub_80C488C
+ thumb_func_end sub_80C489C
+
+ thumb_func_start sub_80C48C8
+sub_80C48C8: @ 80C48C8
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C48F0
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48F0: .4byte sub_80C489C
+ thumb_func_end sub_80C48C8
+
+ thumb_func_start sub_80C48F4
+sub_80C48F4: @ 80C48F4
+ ldr r2, _080C4908
+ ldr r1, _080C490C
+ ldr r0, _080C4910
+ ldrh r0, [r0]
+ lsls r0, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C4908: .4byte gUnknown_0202E8CC
+_080C490C: .4byte gUnknown_02038570
+_080C4910: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C48F4
+
+ thumb_func_start sub_80C4914
+sub_80C4914: @ 80C4914
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C4938
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C4932
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C493C
+ bl SetMainCallback2
+_080C4932:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4938: .4byte gPaletteFade
+_080C493C: .4byte sub_80C2358
+ thumb_func_end sub_80C4914
+
+ thumb_func_start sub_80C4940
+sub_80C4940: @ 80C4940
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C4968
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4968: .4byte sub_80C4914
+ thumb_func_end sub_80C4940
+
+ thumb_func_start sub_80C496C
+sub_80C496C: @ 80C496C
+ ldr r0, _080C4978
+ ldr r1, _080C497C
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080C4978: .4byte gUnknown_0202E8CC
+_080C497C: .4byte gUnknown_02038695
+ thumb_func_end sub_80C496C
+
+ thumb_func_start sub_80C4980
+sub_80C4980: @ 80C4980
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl ScriptContext2_Enable
+ ldr r6, _080C49B8
+ adds r0, r6, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080C49BC
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080C49C0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49B8: .4byte sub_80C8604
+_080C49BC: .4byte sub_80C49C4
+_080C49C0: .4byte gTasks
+ thumb_func_end sub_80C4980
+
+ thumb_func_start sub_80C49C4
+sub_80C49C4: @ 80C49C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C49E4
+ ldrb r0, [r0]
+ bl sub_80AE098
+ ldr r1, _080C49E8
+ ldr r2, _080C49EC
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49E4: .4byte gUnknown_02038694
+_080C49E8: .4byte sub_80C8734
+_080C49EC: .4byte sub_80C49F0
+ thumb_func_end sub_80C49C4
+
+ thumb_func_start sub_80C49F0
+sub_80C49F0: @ 80C49F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A04
+ ldr r2, _080C4A08
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A04: .4byte sub_80C88AC
+_080C4A08: .4byte sub_80C4A0C
+ thumb_func_end sub_80C49F0
+
+ thumb_func_start sub_80C4A0C
+sub_80C4A0C: @ 80C4A0C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A20
+ ldr r2, _080C4A24
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A20: .4byte sub_80C8E1C
+_080C4A24: .4byte sub_80C4A28
+ thumb_func_end sub_80C4A0C
+
+ thumb_func_start sub_80C4A28
+sub_80C4A28: @ 80C4A28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A3C
+ ldr r2, _080C4A40
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A3C: .4byte sub_80C8938
+_080C4A40: .4byte sub_80C4A44
+ thumb_func_end sub_80C4A28
+
+ thumb_func_start sub_80C4A44
+sub_80C4A44: @ 80C4A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r0, _080C4AA0
+ mov r8, r0
+ add r1, sp, 0x4
+ mov r12, r1
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r4, r0, 3
+ ldr r6, _080C4AA4
+ adds r7, r1, 0
+_080C4A64:
+ mov r0, sp
+ adds r2, r0, r3
+ adds r1, r3, 0x1
+ lsls r0, r1, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0x3
+ bls _080C4A64
+ movs r3, 0
+ mov r2, sp
+_080C4A80:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bhi _080C4A96
+ mov r0, sp
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C4A80
+_080C4A96:
+ cmp r3, 0x4
+ bne _080C4AA8
+ movs r0, 0
+ b _080C4AAA
+ .align 2, 0
+_080C4AA0: .4byte gUnknown_0202E8CC
+_080C4AA4: .4byte gUnknown_03004B28
+_080C4AA8:
+ movs r0, 0x1
+_080C4AAA:
+ mov r1, r8
+ strh r0, [r1]
+ movs r3, 0
+ mov r4, r12
+ adds r0, r7, r5
+ lsls r2, r0, 3
+ ldr r6, _080C4AF8
+_080C4AB8:
+ adds r1, r4, r3
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080C4AB8
+ mov r0, r12
+ bl sub_80C4B34
+ ldr r1, _080C4AFC
+ strb r0, [r1]
+ ldr r0, _080C4B00
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ ldr r1, _080C4B04
+ ldr r2, _080C4B08
+ adds r0, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4AF8: .4byte gUnknown_03004B28
+_080C4AFC: .4byte gUnknown_0203869B
+_080C4B00: .4byte gUnknown_0203869C
+_080C4B04: .4byte sub_80C8EBC
+_080C4B08: .4byte sub_80C4B0C
+ thumb_func_end sub_80C4A44
+
+ thumb_func_start sub_80C4B0C
+sub_80C4B0C: @ 80C4B0C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080C4B2C
+ ldr r2, _080C4B30
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4B2C: .4byte sub_80C8F34
+_080C4B30: .4byte sub_80C4B5C
+ thumb_func_end sub_80C4B0C
+
+ thumb_func_start sub_80C4B34
+sub_80C4B34: @ 80C4B34
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ movs r2, 0x1
+_080C4B3C:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080C4B4C
+ lsls r0, r2, 24
+ lsrs r4, r0, 24
+_080C4B4C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080C4B3C
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4B34
+
+ thumb_func_start sub_80C4B5C
+sub_80C4B5C: @ 80C4B5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C4B84
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _080C4B90
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C4B9E
+ ldr r0, _080C4B88
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C4B8C
+ str r0, [r1]
+ b _080C4B9E
+ .align 2, 0
+_080C4B84: .4byte gUnknown_0202E8CC
+_080C4B88: .4byte gTasks
+_080C4B8C: .4byte sub_80C4BA4
+_080C4B90:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4B9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4B5C
+
+ thumb_func_start sub_80C4BA4
+sub_80C4BA4: @ 80C4BA4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080C4BC4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C4BC8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BC4: .4byte gTasks
+_080C4BC8: .4byte sub_80C4BCC
+ thumb_func_end sub_80C4BA4
+
+ thumb_func_start sub_80C4BCC
+sub_80C4BCC: @ 80C4BCC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080C4BEC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4BE8
+ adds r0, r1, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4BE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BEC: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80C4BCC
+
+ thumb_func_start sub_80C4BF0
+sub_80C4BF0: @ 80C4BF0
+ push {r4,lr}
+ ldr r2, _080C4C1C
+ ldr r1, _080C4C20
+ ldrb r3, [r1, 0x15]
+ movs r4, 0x9B
+ lsls r4, 5
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r3, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r1, 0x95
+ ldrb r0, [r1]
+ ldr r1, _080C4C24
+ adds r2, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C1C: .4byte gSaveBlock1
+_080C4C20: .4byte gUnknown_02038570
+_080C4C24: .4byte 0x00001364
+ thumb_func_end sub_80C4BF0
+
+ thumb_func_start sub_80C4C28
+sub_80C4C28: @ 80C4C28
+ push {lr}
+ ldr r0, _080C4C40
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080C4C4E
+ cmp r0, 0x1
+ bgt _080C4C44
+ cmp r0, 0
+ beq _080C4C4A
+ b _080C4C56
+ .align 2, 0
+_080C4C40: .4byte gUnknown_0202E8CE
+_080C4C44:
+ cmp r1, 0x2
+ beq _080C4C52
+ b _080C4C56
+_080C4C4A:
+ movs r1, 0x3
+ b _080C4C58
+_080C4C4E:
+ movs r1, 0x4
+ b _080C4C58
+_080C4C52:
+ movs r1, 0x5
+ b _080C4C58
+_080C4C56:
+ movs r1, 0x64
+_080C4C58:
+ ldr r0, _080C4C60
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C60: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C28
+
+ thumb_func_start sub_80C4C64
+sub_80C4C64: @ 80C4C64
+ push {lr}
+ bl sub_80C46EC
+ bl sub_80C4740
+ bl sub_80C48F4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4C64
+
+ thumb_func_start sub_80C4C78
+sub_80C4C78: @ 80C4C78
+ push {lr}
+ ldr r0, _080C4C8C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C4CB8
+ lsls r0, 2
+ ldr r1, _080C4C90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4C8C: .4byte gUnknown_0203869C
+_080C4C90: .4byte _080C4C94
+ .align 2, 0
+_080C4C94:
+ .4byte _080C4CA8
+ .4byte _080C4CAC
+ .4byte _080C4CB0
+ .4byte _080C4CB4
+ .4byte _080C4CB8
+_080C4CA8:
+ movs r0, 0x8
+ b _080C4CBA
+_080C4CAC:
+ movs r0, 0x9
+ b _080C4CBA
+_080C4CB0:
+ movs r0, 0xA
+ b _080C4CBA
+_080C4CB4:
+ movs r0, 0xB
+ b _080C4CBA
+_080C4CB8:
+ movs r0, 0xC
+_080C4CBA:
+ ldr r1, _080C4CD0
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080C4CD4
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _080C4CDC
+ ldr r0, _080C4CD8
+ strh r1, [r0]
+ b _080C4CE2
+ .align 2, 0
+_080C4CD0: .4byte gSaveBlock1
+_080C4CD4: .4byte 0x00002e04
+_080C4CD8: .4byte gUnknown_0202E8CC
+_080C4CDC:
+ ldr r1, _080C4CE8
+ movs r0, 0x1
+ strh r0, [r1]
+_080C4CE2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4CE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C78
+
+ thumb_func_start sub_80C4CEC
+sub_80C4CEC: @ 80C4CEC
+ push {lr}
+ movs r0, 0xFF
+ bl sub_80B2A7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4CEC
+
+ thumb_func_start sub_80C4CF8
+sub_80C4CF8: @ 80C4CF8
+ push {lr}
+ ldr r0, _080C4D28
+ ldr r1, _080C4D2C
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4D40
+ ldr r0, _080C4D30
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C4D40
+ ldr r1, _080C4D34
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C4D38
+ cmp r1, r0
+ ble _080C4D40
+ ldr r1, _080C4D3C
+ movs r0, 0x1
+ b _080C4D44
+ .align 2, 0
+_080C4D28: .4byte gUnknown_02038690
+_080C4D2C: .4byte gUnknown_02038695
+_080C4D30: .4byte gUnknown_0203869E
+_080C4D34: .4byte gUnknown_02038678
+_080C4D38: .4byte 0x0000031f
+_080C4D3C: .4byte gUnknown_0202E8CC
+_080C4D40:
+ ldr r1, _080C4D4C
+ movs r0, 0
+_080C4D44:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4D4C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4CF8
+
+ thumb_func_start sub_80C4D50
+sub_80C4D50: @ 80C4D50
+ push {lr}
+ movs r3, 0
+ ldr r0, _080C4D78
+ ldr r1, _080C4D7C
+ adds r2, r0, r1
+ movs r1, 0x4
+_080C4D5C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _080C4D68
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C4D68:
+ adds r2, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080C4D5C
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C4D78: .4byte gSaveBlock1
+_080C4D7C: .4byte 0x00002f04
+ thumb_func_end sub_80C4D50
+
+ thumb_func_start sub_80C4D80
+sub_80C4D80: @ 80C4D80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080C4EA0
+ mov r12, r0
+ ldr r1, _080C4EA4
+ mov r8, r1
+ ldr r2, _080C4EA8
+ mov r9, r2
+ mov r2, r12
+ mov r1, sp
+ movs r6, 0x3
+_080C4D9E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080C4D9E
+ movs r6, 0
+_080C4DAE:
+ movs r1, 0x3
+ cmp r1, r6
+ ble _080C4DD8
+_080C4DB4:
+ subs r4, r1, 0x1
+ lsls r0, r4, 1
+ mov r5, sp
+ adds r3, r5, r0
+ lsls r0, r1, 1
+ adds r2, r5, r0
+ ldrh r5, [r3]
+ movs r7, 0
+ ldrsh r1, [r3, r7]
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080C4DD2
+ strh r5, [r2]
+ strh r0, [r3]
+_080C4DD2:
+ adds r1, r4, 0
+ cmp r1, r6
+ bgt _080C4DB4
+_080C4DD8:
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _080C4DAE
+ mov r2, r8
+ ldrh r0, [r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ movs r7, 0
+ movs r6, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r3, r0, 0
+ mov r1, sp
+_080C4DF6:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _080C4E12
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ mov r5, r8
+ ldrh r5, [r5]
+ cmp r6, r5
+ bne _080C4E12
+ adds r7, r2, 0
+_080C4E12:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080C4DF6
+ movs r6, 0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r1, r3, 16
+ lsls r2, 24
+ mov r10, r2
+ cmp r0, r1
+ beq _080C4E40
+ adds r2, r1, 0
+ mov r1, sp
+_080C4E30:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E40
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r2
+ bne _080C4E30
+_080C4E40:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r2, r7, 0
+ movs r6, 0
+ asrs r5, r3, 16
+ mov r8, r5
+ mov r1, r12
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r8, r0
+ bne _080C4E60
+ cmp r7, 0x1
+ beq _080C4E78
+_080C4E5A:
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4E60:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E78
+ lsls r0, r6, 1
+ add r0, r12
+ asrs r1, r3, 16
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080C4E60
+ cmp r2, 0x1
+ bne _080C4E5A
+_080C4E78:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl sub_80C4698
+ ldr r0, _080C4EAC
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4EB8
+ ldr r0, _080C4EB0
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _080C4EB4
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4EC4
+ .align 2, 0
+_080C4EA0: .4byte gUnknown_02038670
+_080C4EA4: .4byte gUnknown_0202E8D0
+_080C4EA8: .4byte gStringVar1
+_080C4EAC: .4byte gUnknown_0203869A
+_080C4EB0: .4byte gStringVar2
+_080C4EB4: .4byte gLinkPlayers + 0x8
+_080C4EB8:
+ ldr r0, _080C4ED8
+ lsls r1, r6, 6
+ ldr r2, _080C4EDC
+ adds r1, r2
+ bl sub_80C4674
+_080C4EC4:
+ mov r1, r10
+ asrs r0, r1, 24
+ cmp r0, 0x1
+ beq _080C4ED0
+ cmp r7, r0
+ bne _080C4EE4
+_080C4ED0:
+ ldr r0, _080C4EE0
+ strh r4, [r0]
+ b _080C4EEA
+ .align 2, 0
+_080C4ED8: .4byte gStringVar2
+_080C4EDC: .4byte gUnknown_0203857D
+_080C4EE0: .4byte gUnknown_0202E8D0
+_080C4EE4:
+ ldr r1, _080C4EFC
+ adds r0, r4, 0x4
+ strh r0, [r1]
+_080C4EEA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4EFC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4D80
+
+ thumb_func_start sub_80C4F00
+sub_80C4F00: @ 80C4F00
+ push {lr}
+ ldr r0, _080C4F0C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C4F00
+
+ thumb_func_start sub_80C4F10
+sub_80C4F10: @ 80C4F10
+ push {r4-r6,lr}
+ ldr r6, _080C4F54
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _080C4F40
+ bl sub_80AAF30
+ ldr r4, _080C4F58
+ ldr r0, _080C4F5C
+ adds r1, r4, r0
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C4F60
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x3
+ bl sub_80B2A7C
+ strb r5, [r6]
+_080C4F40:
+ ldr r0, _080C4F64
+ bl SetMainCallback2
+ ldr r1, _080C4F68
+ ldr r0, _080C4F6C
+ str r0, [r1, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F54: .4byte gUnknown_0203856C
+_080C4F58: .4byte 0x02000000
+_080C4F5C: .4byte 0x00015ddf
+_080C4F60: .4byte 0x00015dde
+_080C4F64: .4byte sub_8106668
+_080C4F68: .4byte gMain
+_080C4F6C: .4byte sub_80C4F00
+ thumb_func_end sub_80C4F10
+
+ thumb_func_start sub_80C4F70
+sub_80C4F70: @ 80C4F70
+ push {r4,lr}
+ ldr r0, _080C4FA8
+ ldr r4, _080C4FAC
+ ldrb r1, [r4, 0x15]
+ bl VarSet
+ ldr r0, _080C4FB0
+ adds r1, r4, 0
+ adds r1, 0x55
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB4
+ adds r1, r4, 0
+ adds r1, 0x95
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB8
+ adds r1, r4, 0
+ adds r1, 0xD5
+ ldrb r1, [r1]
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4FA8: .4byte 0x00004010
+_080C4FAC: .4byte gUnknown_02038570
+_080C4FB0: .4byte 0x00004011
+_080C4FB4: .4byte 0x00004012
+_080C4FB8: .4byte 0x00004013
+ thumb_func_end sub_80C4F70
+
+ thumb_func_start sub_80C4FBC
+sub_80C4FBC: @ 80C4FBC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080C501C
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C5020
+ adds r0, r4
+ movs r1, 0x46
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C5024
+ ldr r1, _080C5028
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C502C
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C5038
+ ldr r1, _080C5030
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C5034
+ cmp r1, r0
+ ble _080C5038
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x46
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+ b _080C503A
+ .align 2, 0
+_080C501C: .4byte gUnknown_02038694
+_080C5020: .4byte gPlayerParty
+_080C5024: .4byte gUnknown_02038690
+_080C5028: .4byte gUnknown_02038695
+_080C502C: .4byte gUnknown_0203869E
+_080C5030: .4byte gUnknown_02038678
+_080C5034: .4byte 0x0000031f
+_080C5038:
+ movs r0, 0
+_080C503A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4FBC
+
+ thumb_func_start sub_80C5044
+sub_80C5044: @ 80C5044
+ ldr r0, _080C504C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080C504C: .4byte gUnknown_0203856C
+ thumb_func_end sub_80C5044
+
+ thumb_func_start sub_80C5050
+sub_80C5050: @ 80C5050
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r4, _080C513C
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080C512A
+ movs r0, 0xA
+ mov r10, r0
+ movs r7, 0x3
+ movs r1, 0x3
+ movs r2, 0x13
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r2, _080C5140
+ ldr r0, _080C5144
+ ldrh r1, [r0]
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r0, [r0]
+ mov r8, r0
+ adds r2, 0x3C
+ adds r1, r2
+ ldr r1, [r1]
+ mov r9, r1
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C5148
+ lsls r5, r0, 2
+ adds r5, r0
+ lsls r5, 3
+ adds r5, r1
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r6, [r5, 0xA]
+ lsls r0, r6, 3
+ ldr r1, _080C514C
+ adds r0, r1
+ ldr r1, _080C5150
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _080C5154
+ ldr r3, [r4]
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ mov r4, r8
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C5158
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ mov r1, r10
+ strh r1, [r5, 0xE]
+ strh r7, [r5, 0x10]
+ ldr r3, _080C515C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080C5160
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_080C512A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C513C: .4byte sub_80C5190
+_080C5140: .4byte gUnknown_02038570
+_080C5144: .4byte gUnknown_0202E8D0
+_080C5148: .4byte gTasks
+_080C514C: .4byte gMonFrontPicTable
+_080C5150: .4byte gMonFrontPicCoords
+_080C5154: .4byte gUnknown_081FAF4C
+_080C5158: .4byte gUnknown_02024E8C
+_080C515C: .4byte gSprites
+_080C5160: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80C5050
+
+ thumb_func_start sub_80C5164
+sub_80C5164: @ 80C5164
+ push {lr}
+ ldr r0, _080C5188
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080C5184
+ ldr r0, _080C518C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5184:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5188: .4byte sub_80C5190
+_080C518C: .4byte gTasks
+ thumb_func_end sub_80C5164
+
+ thumb_func_start sub_80C5190
+sub_80C5190: @ 80C5190
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C51B4
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C5222
+ cmp r0, 0x1
+ bgt _080C51B8
+ cmp r0, 0
+ beq _080C51F8
+ b _080C5222
+ .align 2, 0
+_080C51B4: .4byte gTasks
+_080C51B8:
+ cmp r0, 0x2
+ beq _080C51C2
+ cmp r0, 0x3
+ beq _080C5204
+ b _080C5222
+_080C51C2:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C5200
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrb r0, [r5, 0x1]
+ lsls r0, 30
+ cmp r0, 0
+ beq _080C51F2
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080C51F2:
+ adds r0, r5, 0
+ bl DestroySprite
+_080C51F8:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C5222
+ .align 2, 0
+_080C5200: .4byte gSprites
+_080C5204:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080C5222:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C5190
+
+ thumb_func_start sub_80C5228
+sub_80C5228: @ 80C5228
+ push {r4,lr}
+ ldr r0, _080C5244
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C524C
+ ldr r4, _080C5248
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _080C5252
+ .align 2, 0
+_080C5244: .4byte gUnknown_0203869A
+_080C5248: .4byte gScriptResult
+_080C524C:
+ ldr r1, _080C5258
+ movs r0, 0x4
+ strh r0, [r1]
+_080C5252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5258: .4byte gScriptResult
+ thumb_func_end sub_80C5228
+
+ thumb_func_start sub_80C525C
+sub_80C525C: @ 80C525C
+ push {r4,lr}
+ ldr r0, _080C5280
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C5294
+ ldr r2, _080C5284
+ ldr r1, [r2]
+ ldr r0, _080C5288
+ muls r0, r1
+ ldr r1, _080C528C
+ adds r0, r1
+ str r0, [r2]
+ lsrs r0, 16
+ ldr r4, _080C5290
+ b _080C529E
+ .align 2, 0
+_080C5280: .4byte gUnknown_0203869A
+_080C5284: .4byte gUnknown_03005D28
+_080C5288: .4byte 0x41c64e6d
+_080C528C: .4byte 0x00006073
+_080C5290: .4byte gScriptResult
+_080C5294:
+ ldr r4, _080C52AC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+_080C529E:
+ ldrh r1, [r4]
+ bl __umodsi3
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C52AC: .4byte gScriptResult
+ thumb_func_end sub_80C525C
+
+ thumb_func_start sp000_heal_pokemon
+sp000_heal_pokemon: @ 80C52B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080C536C
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcs _080C535C
+ ldr r1, _080C5370
+ mov r10, r1
+ mov r6, sp
+_080C52CE:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r1, r0, 16
+ strb r0, [r6]
+ lsrs r1, 24
+ strb r1, [r6, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_080C5304:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CalculatePPWithBonus
+ strb r0, [r6]
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080C5304
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ strb r0, [r6, 0x3]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ add r0, r10
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _080C536C
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080C52CE
+_080C535C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C536C: .4byte gPlayerPartyCount
+_080C5370: .4byte gPlayerParty
+ thumb_func_end sp000_heal_pokemon
+
+ thumb_func_start sub_80C5374
+sub_80C5374: @ 80C5374
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x78
+ adds r5, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 16
+ lsrs r0, r4, 16
+ mov r8, r0
+ add r6, sp, 0x14
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r3, 0
+ movs r3, 0x20
+ bl CreateMon
+ add r0, sp, 0x10
+ mov r1, r8
+ strb r1, [r0]
+ lsrs r4, 24
+ strb r4, [r0, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r6, 0
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0x1
+ bgt _080C53E8
+ cmp r4, 0
+ blt _080C53E8
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_080C53E8:
+ adds r0, r4, 0
+ add sp, 0x78
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5374
+
+ thumb_func_start sub_80C53F8
+sub_80C53F8: @ 80C53F8
+ push {lr}
+ sub sp, 0x68
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8042044
+ add r2, sp, 0x64
+ movs r0, 0x1
+ strb r0, [r2]
+ mov r0, sp
+ movs r1, 0x2D
+ bl SetMonData
+ mov r0, sp
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x68
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C53F8
+
+ thumb_func_start sub_80C5428
+sub_80C5428: @ 80C5428
+ push {lr}
+ bl sub_803DAA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ beq _080C5444
+ cmp r1, 0x1
+ bgt _080C5440
+ cmp r1, 0
+ beq _080C5444
+ b _080C5448
+_080C5440:
+ cmp r1, 0x2
+ bne _080C5448
+_080C5444:
+ ldr r0, _080C544C
+ strh r1, [r0]
+_080C5448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C544C: .4byte gScriptResult
+ thumb_func_end sub_80C5428
+
+ thumb_func_start sub_80C5450
+sub_80C5450: @ 80C5450
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r5, 0
+ movs r7, 0xCE
+ lsls r7, 1
+_080C545C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C548C
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080C5490
+ cmp r0, r7
+ beq _080C5490
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, r6
+ bne _080C5490
+ movs r0, 0x1
+ b _080C5498
+ .align 2, 0
+_080C548C: .4byte gPlayerParty
+_080C5490:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C545C
+ movs r0, 0
+_080C5498:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5450
+
+ thumb_func_start sub_80C54A0
+sub_80C54A0: @ 80C54A0
+ push {r4,lr}
+ movs r0, 0xAF
+ bl sub_80C5450
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _080C54C2
+ movs r0, 0xAF
+ bl ItemIdToBerryType
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C54CC
+ bl GetBerryNameByBerryType
+_080C54C2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C54CC: .4byte gStringVar1
+ thumb_func_end sub_80C54A0
+
+ thumb_func_start sub_80C54D0
+sub_80C54D0: @ 80C54D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r7, r2, 16
+ lsrs r6, r7, 16
+ bl ZeroEnemyPartyMons
+ ldr r0, _080C552C
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x20
+ bl CreateMon
+ cmp r6, 0
+ beq _080C551E
+ add r0, sp, 0x10
+ strb r6, [r0]
+ adds r1, r0, 0
+ lsrs r0, r7, 24
+ strb r0, [r1, 0x1]
+ mov r0, r8
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+_080C551E:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C552C: .4byte gEnemyParty
+ thumb_func_end sub_80C54D0
+
+ thumb_func_start sub_80C5530
+sub_80C5530: @ 80C5530
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, 0x6
+ bls _080C554C
+ ldr r0, _080C5560
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C554C:
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _080C5564
+ adds r0, r1
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5560: .4byte gPlayerPartyCount
+_080C5564: .4byte gPlayerParty
+ thumb_func_end sub_80C5530
+
+ thumb_func_start sub_80C5568
+sub_80C5568: @ 80C5568
+ push {lr}
+ ldr r1, _080C5578
+ ldr r0, _080C557C
+ str r0, [r1, 0x8]
+ bl sub_8121E10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5578: .4byte gMain
+_080C557C: .4byte sub_80C5580
+ thumb_func_end sub_80C5568
+
+ thumb_func_start sub_80C5580
+sub_80C5580: @ 80C5580
+ push {lr}
+ ldr r0, _080C5590
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C5598
+ ldr r0, _080C5594
+ strh r1, [r0]
+ b _080C559E
+ .align 2, 0
+_080C5590: .4byte gUnknown_02039270
+_080C5594: .4byte gScriptResult
+_080C5598:
+ ldr r1, _080C55A8
+ movs r0, 0x1
+ strh r0, [r1]
+_080C559E:
+ ldr r0, _080C55AC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55A8: .4byte gScriptResult
+_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C5580
+
+ thumb_func_start sub_80C55B0
+sub_80C55B0: @ 80C55B0
+ push {lr}
+ ldr r1, _080C55C0
+ ldr r0, _080C55C4
+ str r0, [r1, 0x8]
+ bl sub_8121E34
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55C0: .4byte gMain
+_080C55C4: .4byte sub_80C55C8
+ thumb_func_end sub_80C55B0
+
+ thumb_func_start sub_80C55C8
+sub_80C55C8: @ 80C55C8
+ push {r4,lr}
+ ldr r0, _080C55DC
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080C55E4
+ bl copy_player_party_from_sav1
+ ldr r0, _080C55E0
+ strh r4, [r0]
+ b _080C55EE
+ .align 2, 0
+_080C55DC: .4byte gUnknown_02039270
+_080C55E0: .4byte gScriptResult
+_080C55E4:
+ bl sub_80C5604
+ ldr r1, _080C55FC
+ movs r0, 0x1
+ strh r0, [r1]
+_080C55EE:
+ ldr r0, _080C5600
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55FC: .4byte gScriptResult
+_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C55C8
+
+ thumb_func_start sub_80C5604
+sub_80C5604: @ 80C5604
+ push {r4-r7,lr}
+ sub sp, 0x134
+ add r0, sp, 0x12C
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _080C5674
+ mov r1, sp
+ bl CpuSet
+ movs r5, 0
+ movs r7, 0x64
+ ldr r6, _080C5678
+ mov r4, sp
+_080C561E:
+ ldr r0, _080C567C
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C5638
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r7
+ adds r1, r6
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_080C5638:
+ adds r4, 0x64
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C561E
+ add r0, sp, 0x130
+ movs r1, 0
+ str r1, [r0]
+ ldr r4, _080C5678
+ ldr r2, _080C5680
+ adds r1, r4, 0
+ bl CpuSet
+ mov r5, sp
+ add r6, sp, 0xC8
+_080C5654:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x64
+ cmp r5, r6
+ ble _080C5654
+ bl CalculatePlayerPartyCount
+ add sp, 0x134
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5674: .4byte 0x0500004b
+_080C5678: .4byte gPlayerParty
+_080C567C: .4byte gUnknown_02039270
+_080C5680: .4byte 0x05000096
+ thumb_func_end sub_80C5604
+
+ thumb_func_start sub_80C5684
+sub_80C5684: @ 80C5684
+ push {lr}
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080C569C
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C56A0
+_080C569C:
+ movs r0, 0
+ b _080C56A2
+_080C56A0:
+ movs r0, 0x1
+_080C56A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5684
+
+ thumb_func_start sub_80C56A8
+sub_80C56A8: @ 80C56A8
+ push {r4,r5,lr}
+ ldr r4, _080C56C8
+ movs r5, 0
+_080C56AE:
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C56CC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080C56CC
+ movs r0, 0
+ b _080C56D6
+ .align 2, 0
+_080C56C8: .4byte gPlayerParty
+_080C56CC:
+ adds r5, 0x1
+ adds r4, 0x64
+ cmp r5, 0x5
+ ble _080C56AE
+ movs r0, 0x1
+_080C56D6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C56A8
+
+ thumb_func_start sub_80C56DC
+sub_80C56DC: @ 80C56DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080C5720
+ adds r4, r0
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl sub_803FCD4
+ adds r0, r4, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ ldr r5, _080C5724
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r5, 0
+ bl StringGetEnd10
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5720: .4byte gPlayerParty
+_080C5724: .4byte gStringVar1
+ thumb_func_end sub_80C56DC
+
+ thumb_func_start sub_80C5728
+sub_80C5728: @ 80C5728
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _080C5764
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C5768
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5768
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C5768
+ movs r0, 0x1
+ b _080C576A
+ .align 2, 0
+_080C5764: .4byte gPlayerParty
+_080C5768:
+ movs r0, 0
+_080C576A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5728
+
+ thumb_func_start sub_80C5770
+sub_80C5770: @ 80C5770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C5794
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C57CA
+ cmp r0, 0x1
+ bgt _080C5798
+ cmp r0, 0
+ beq _080C579E
+ b _080C581A
+ .align 2, 0
+_080C5794: .4byte gUnknown_03004B28
+_080C5798:
+ cmp r0, 0x2
+ beq _080C57DC
+ b _080C581A
+_080C579E:
+ ldrh r1, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bgt _080C57C4
+_080C57A8:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80C5728
+ cmp r0, 0
+ bne _080C57F4
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r1, r0, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C57A8
+_080C57C4:
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C581A
+_080C57CA:
+ bl IsFieldMessageBoxHidden
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C581A
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+_080C57DC:
+ bl sub_80C56A8
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080C580C
+ ldr r1, _080C57F0
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080C5810
+ .align 2, 0
+_080C57F0: .4byte gScriptResult
+_080C57F4:
+ ldrb r0, [r4, 0x2]
+ bl sub_80C56DC
+ ldr r0, _080C5808
+ bl ShowFieldMessage
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+ .align 2, 0
+_080C5808: .4byte UnknownString_81A1132
+_080C580C:
+ ldr r0, _080C5820
+ strh r1, [r0]
+_080C5810:
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+_080C581A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5820: .4byte gScriptResult
+ thumb_func_end sub_80C5770
+
+ thumb_func_start sub_80C5824
+sub_80C5824: @ 80C5824
+ push {lr}
+ ldr r0, _080C5838
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5838: .4byte sub_80C5770
+ thumb_func_end sub_80C5824
+
+ thumb_func_start overworld_poison
+overworld_poison: @ 80C583C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _080C58A8
+ movs r7, 0
+ movs r6, 0
+ movs r5, 0x5
+_080C5848:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _080C588C
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C588C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ str r0, [sp]
+ cmp r0, 0
+ beq _080C587E
+ subs r0, 0x1
+ str r0, [sp]
+ cmp r0, 0
+ bne _080C5880
+_080C587E:
+ adds r6, 0x1
+_080C5880:
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r7, 0x1
+_080C588C:
+ adds r4, 0x64
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C5848
+ cmp r6, 0
+ bne _080C589C
+ cmp r7, 0
+ beq _080C58A0
+_080C589C:
+ bl overworld_posion_effect
+_080C58A0:
+ cmp r6, 0
+ beq _080C58AC
+ movs r0, 0x2
+ b _080C58B6
+ .align 2, 0
+_080C58A8: .4byte gPlayerParty
+_080C58AC:
+ cmp r7, 0
+ bne _080C58B4
+ movs r0, 0
+ b _080C58B6
+_080C58B4:
+ movs r0, 0x1
+_080C58B6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end overworld_poison
+
+ thumb_func_start sub_80C58C0
+sub_80C58C0: @ 80C58C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetMonData
+ lsls r0, 16
+ str r0, [sp, 0x4]
+ lsrs r0, 16
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x27
+ bl GetMonData
+ adds r7, r0, 0
+ movs r6, 0xF
+ ands r7, r6
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ ands r1, r6
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r9, r0
+ mov r3, r9
+ ands r3, r6
+ mov r9, r3
+ adds r0, r5, 0
+ movs r1, 0x2A
+ bl GetMonData
+ mov r10, r0
+ ands r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0x2B
+ bl GetMonData
+ adds r4, r0, 0
+ ands r4, r6
+ adds r0, r5, 0
+ movs r1, 0x2C
+ bl GetMonData
+ adds r2, r0, 0
+ ands r2, r6
+ mov r1, r8
+ mov r3, r9
+ eors r1, r3
+ mov r8, r1
+ mov r0, r8
+ muls r0, r7
+ movs r1, 0xFF
+ ldr r3, [sp]
+ ands r3, r1
+ eors r0, r3
+ eors r4, r2
+ mov r1, r10
+ muls r1, r4
+ ldr r3, [sp, 0x4]
+ lsrs r2, r3, 24
+ eors r1, r2
+ lsls r0, 8
+ adds r0, r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C58C0
+
+ thumb_func_start sub_80C5964
+sub_80C5964: @ 80C5964
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x1
+ ldr r3, _080C5980
+_080C596E:
+ lsls r0, r1, 3
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _080C5984
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C5990
+ .align 2, 0
+_080C5980: .4byte gUnknown_083D180C
+_080C5984:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080C596E
+ adds r0, r1, 0
+_080C5990:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5964
+
+ thumb_func_start sub_80C5994
+sub_80C5994: @ 80C5994
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, 16
+ lsrs r6, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D54
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ bl sub_80C5964
+ lsls r0, 24
+ ldr r1, _080C5A04
+ lsrs r0, 21
+ adds r0, r1
+ ldrh r1, [r0]
+ str r1, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldrb r2, [r0, 0x2]
+ movs r3, 0
+ ldrh r4, [r0, 0x4]
+ movs r5, 0
+ adds r0, r6, 0
+ movs r1, 0
+ subs r0, r4
+ sbcs r1, r5
+ bl __udivdi3
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ adds r2, r0
+ adcs r3, r1
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ bl __muldi3
+ movs r2, 0xA
+ movs r3, 0
+ bl __udivdi3
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5A04: .4byte gUnknown_083D180C
+ thumb_func_end sub_80C5994
+
+ thumb_func_start sub_80C5A08
+sub_80C5A08: @ 80C5A08
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r1, _080C5A78
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 1
+ adds r0, r4, 0
+ bl __floatsidf
+ cmp r4, 0
+ bge _080C5A32
+ ldr r2, _080C5A7C
+ ldr r3, _080C5A80
+ bl __adddf3
+_080C5A32:
+ ldr r2, _080C5A84
+ ldr r3, _080C5A88
+ bl __divdf3
+ bl __fixunsdfsi
+ adds r5, r0, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ adds r6, r0, 0
+ mov r1, sp
+ bl StringAppend
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5A78: .4byte gUnknown_083D188C
+_080C5A7C: .4byte 0x41f00000
+_080C5A80: .4byte 0x00000000
+_080C5A84: .4byte 0x40396666
+_080C5A88: .4byte 0x66666666
+ thumb_func_end sub_80C5A08
+
+ thumb_func_start sub_80C5A8C
+sub_80C5A8C: @ 80C5A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080C5AA4
+ ldrh r0, [r1]
+ cmp r0, 0xFF
+ bne _080C5AA8
+ movs r0, 0
+ b _080C5B12
+ .align 2, 0
+_080C5AA4: .4byte gScriptResult
+_080C5AA8:
+ ldrh r1, [r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C5AD0
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080C5ACA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, r6
+ beq _080C5AD4
+_080C5ACA:
+ movs r0, 0x1
+ b _080C5B12
+ .align 2, 0
+_080C5AD0: .4byte gPlayerParty
+_080C5AD4:
+ mov r4, sp
+ adds r0, r5, 0
+ bl sub_80C58C0
+ strh r0, [r4]
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r5, r0, 0
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r4, r0, 0
+ ldr r0, _080C5B0C
+ adds r1, r5, 0
+ bl sub_80C5A08
+ cmp r5, r4
+ bls _080C5B10
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r7]
+ movs r0, 0x3
+ b _080C5B12
+ .align 2, 0
+_080C5B0C: .4byte gStringVar2
+_080C5B10:
+ movs r0, 0x2
+_080C5B12:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5A8C
+
+ thumb_func_start sub_80C5B1C
+sub_80C5B1C: @ 80C5B1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C5994
+ adds r1, r0, 0
+ ldr r0, _080C5B58
+ bl sub_80C5A08
+ ldr r0, _080C5B5C
+ movs r1, 0xB
+ muls r1, r4
+ ldr r2, _080C5B60
+ adds r1, r2
+ bl StringCopy
+ ldrh r1, [r5]
+ movs r0, 0x81
+ lsls r0, 8
+ cmp r1, r0
+ bne _080C5B6C
+ ldr r0, _080C5B64
+ ldr r1, _080C5B68
+ bl StringCopy
+ b _080C5B74
+ .align 2, 0
+_080C5B58: .4byte gStringVar3
+_080C5B5C: .4byte gStringVar1
+_080C5B60: .4byte gSpeciesNames
+_080C5B64: .4byte gStringVar2
+_080C5B68: .4byte gOtherText_Marco
+_080C5B6C:
+ ldr r0, _080C5B7C
+ ldr r1, _080C5B80
+ bl StringCopy
+_080C5B74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B7C: .4byte gStringVar2
+_080C5B80: .4byte gSaveBlock2
+ thumb_func_end sub_80C5B1C
+
+ thumb_func_start sub_80C5B84
+sub_80C5B84: @ 80C5B84
+ push {lr}
+ ldr r0, _080C5B94
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B94: .4byte 0x00004047
+ thumb_func_end sub_80C5B84
+
+ thumb_func_start sub_80C5B98
+sub_80C5B98: @ 80C5B98
+ push {lr}
+ ldr r0, _080C5BB0
+ bl GetVarPointer
+ adds r1, r0, 0
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BB0: .4byte 0x00004047
+ thumb_func_end sub_80C5B98
+
+ thumb_func_start sub_80C5BB4
+sub_80C5BB4: @ 80C5BB4
+ push {r4,lr}
+ ldr r0, _080C5BD4
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5BD8
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BD4: .4byte 0x00004047
+_080C5BD8: .4byte gScriptResult
+ thumb_func_end sub_80C5BB4
+
+ thumb_func_start sub_80C5BDC
+sub_80C5BDC: @ 80C5BDC
+ push {lr}
+ ldr r0, _080C5BEC
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BEC: .4byte 0x0000404f
+ thumb_func_end sub_80C5BDC
+
+ thumb_func_start sub_80C5BF0
+sub_80C5BF0: @ 80C5BF0
+ push {lr}
+ ldr r0, _080C5C04
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r0, _080C5C08
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C04: .4byte 0x0000404f
+_080C5C08: .4byte 0x00000143
+ thumb_func_end sub_80C5BF0
+
+ thumb_func_start sub_80C5C0C
+sub_80C5C0C: @ 80C5C0C
+ push {r4,lr}
+ ldr r0, _080C5C2C
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5C30
+ ldr r0, _080C5C34
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C2C: .4byte 0x0000404f
+_080C5C30: .4byte gScriptResult
+_080C5C34: .4byte 0x00000143
+ thumb_func_end sub_80C5C0C
+
+ thumb_func_start sub_80C5C38
+sub_80C5C38: @ 80C5C38
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r7, 0
+ add r4, sp, 0x8
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080C5CC0
+ mov r0, sp
+ movs r2, 0x7
+ bl memcpy
+ mov r8, r4
+ cmp r6, 0xA
+ bhi _080C5CB2
+ cmp r5, 0x40
+ bhi _080C5CB2
+ ldr r0, _080C5CC4
+ ldr r1, _080C5CC8
+ adds r0, r1
+ adds r0, r6, r0
+ strb r5, [r0]
+ movs r5, 0
+_080C5C70:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C5CCC
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C5CA2
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5CA2
+ mov r1, sp
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r8
+ bl SetMonData
+ movs r7, 0x1
+_080C5CA2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C5C70
+ cmp r7, 0
+ beq _080C5CB2
+ ldr r0, _080C5CD0
+ bl FlagSet
+_080C5CB2:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5CC0: .4byte gUnknown_083D188E
+_080C5CC4: .4byte gSaveBlock1
+_080C5CC8: .4byte 0x00003110
+_080C5CCC: .4byte gPlayerParty
+_080C5CD0: .4byte 0x0000083b
+ thumb_func_end sub_80C5C38
+
+ thumb_func_start sub_80C5CD4
+sub_80C5CD4: @ 80C5CD4
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5D64
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5D68
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5D6C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5D70
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0xA]
+ strh r6, [r7, 0x8]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5D4E
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5D4E:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5D58
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5D58:
+ ldr r0, _080C5D74
+ str r7, [r0]
+ movs r4, 0
+ ldr r5, _080C5D78
+ b _080C5D94
+ .align 2, 0
+_080C5D64: .4byte gUnknown_083D1898
+_080C5D68: .4byte gUnknown_083D18A0
+_080C5D6C: .4byte gSpriteTemplate_83D18A8
+_080C5D70: .4byte 0xffff0000
+_080C5D74: .4byte gUnknown_020387EC
+_080C5D78: .4byte gSprites
+_080C5D7C:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r7, 0x4]
+ cmp r4, 0x3
+ bhi _080C5D8C
+ negs r1, r1
+_080C5D8C:
+ strh r1, [r0, 0x2E]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080C5D94:
+ cmp r4, 0x7
+ bhi _080C5DB2
+ lsls r1, r4, 5
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080C5D7C
+_080C5DB2:
+ ldr r1, _080C5DC8
+ movs r0, 0xBF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5DC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5CD4
+
+ thumb_func_start sub_80C5DCC
+sub_80C5DCC: @ 80C5DCC
+ push {r4,lr}
+ ldr r4, _080C5E10
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ bne _080C5DF0
+ ldr r0, [r1, 0x10]
+ ldr r2, _080C5E14
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5E18
+ bl sub_80C61B0
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5DF0:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x7
+ bls _080C5E0A
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ bgt _080C5E1C
+_080C5E0A:
+ movs r0, 0
+ b _080C5E2E
+ .align 2, 0
+_080C5E10: .4byte gUnknown_020387EC
+_080C5E14: .4byte 0x0000ffff
+_080C5E18: .4byte sub_80C603C
+_080C5E1C:
+ movs r0, 0x50
+ strh r0, [r1, 0xC]
+ ldr r0, _080C5E34
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ bl ClearGpuRegBits
+ movs r0, 0x1
+_080C5E2E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5E34: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5DCC
+
+ thumb_func_start sub_80C5E38
+sub_80C5E38: @ 80C5E38
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5EC8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5ECC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5ED0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5ED4
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x50
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0x8]
+ strh r6, [r7, 0xA]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5EB2
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5EB2:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5EBC
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5EBC:
+ ldr r0, _080C5ED8
+ str r7, [r0]
+ movs r5, 0
+ ldr r6, _080C5EDC
+ b _080C5F4A
+ .align 2, 0
+_080C5EC8: .4byte gUnknown_083D1898
+_080C5ECC: .4byte gUnknown_083D18A0
+_080C5ED0: .4byte gSpriteTemplate_83D18C0
+_080C5ED4: .4byte 0xffff0000
+_080C5ED8: .4byte gUnknown_020387EC
+_080C5EDC: .4byte gSprites
+_080C5EE0:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ strh r0, [r1, 0x2E]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5EF4
+ b _080C5F2A
+ .align 2, 0
+_080C5EF4: .4byte gSprites
+_080C5EF8:
+ lsls r1, r5, 21
+ movs r0, 0x80
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080C5F6E
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C5F88
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5F8C
+ lsls r4, r5, 5
+_080C5F2A:
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x36]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C5F4A:
+ cmp r5, 0x7
+ bhi _080C5F6E
+ cmp r5, 0x3
+ bhi _080C5EF8
+ lsls r4, r5, 5
+ adds r1, r4, 0
+ subs r1, 0x70
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080C5EE0
+_080C5F6E:
+ ldr r1, _080C5F90
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080C5F94
+ bl sub_80C61B0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5F88: .4byte 0x0000ffff
+_080C5F8C: .4byte gSprites
+_080C5F90: .4byte REG_BLDCNT
+_080C5F94: .4byte sub_80C6078
+ thumb_func_end sub_80C5E38
+
+ thumb_func_start sub_80C5F98
+sub_80C5F98: @ 80C5F98
+ push {r4,lr}
+ ldr r4, _080C5FB0
+ ldr r2, [r4]
+ ldrh r0, [r2, 0x8]
+ cmp r0, 0x1
+ beq _080C5FEC
+ cmp r0, 0x1
+ bgt _080C5FB4
+ cmp r0, 0
+ beq _080C5FBA
+ b _080C602C
+ .align 2, 0
+_080C5FB0: .4byte gUnknown_020387EC
+_080C5FB4:
+ cmp r0, 0x2
+ beq _080C6008
+ b _080C602C
+_080C5FBA:
+ ldrh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _080C6034
+ ldr r0, [r2, 0x10]
+ ldr r2, _080C5FE4
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5FE8
+ bl SetHBlankCallback
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080C6000
+ .align 2, 0
+_080C5FE4: .4byte 0x0000ffff
+_080C5FE8: .4byte sub_80C603C
+_080C5FEC:
+ ldrh r0, [r2, 0xA]
+ cmp r0, 0x8
+ bne _080C6034
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, [r4]
+_080C6000:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C6034
+_080C6008:
+ ldr r0, _080C6030
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ bl ClearGpuRegBits
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C602C:
+ movs r0, 0x1
+ b _080C6036
+ .align 2, 0
+_080C6030: .4byte REG_BLDCNT
+_080C6034:
+ movs r0, 0
+_080C6036:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5F98
+
+ thumb_func_start sub_80C603C
+sub_80C603C: @ 80C603C
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C6060
+ ldrh r1, [r0]
+ movs r3, 0xFF
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x50
+ bne _080C6068
+ ldr r1, _080C6064
+ movs r0, 0x8F
+ strh r0, [r1]
+ b _080C606C
+ .align 2, 0
+_080C6060: .4byte REG_VCOUNT
+_080C6064: .4byte REG_BLDCNT
+_080C6068:
+ ldr r0, _080C6074
+ strh r3, [r0]
+_080C606C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6074: .4byte REG_BLDCNT
+ thumb_func_end sub_80C603C
+
+ thumb_func_start sub_80C6078
+sub_80C6078: @ 80C6078
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C60B0
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080C60B4
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r2, [r0, r3]
+ movs r0, 0x50
+ subs r0, r2
+ cmp r1, r0
+ ble _080C60BC
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ cmp r1, r0
+ bge _080C60BC
+ ldr r1, _080C60B8
+ movs r0, 0
+ b _080C60C0
+ .align 2, 0
+_080C60B0: .4byte REG_VCOUNT
+_080C60B4: .4byte gUnknown_020387EC
+_080C60B8: .4byte REG_BLDY
+_080C60BC:
+ ldr r1, _080C60C8
+ movs r0, 0x10
+_080C60C0:
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C60C8: .4byte REG_BLDY
+ thumb_func_end sub_80C6078
+
+ thumb_func_start sub_80C60CC
+sub_80C60CC: @ 80C60CC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bls _080C611C
+ adds r0, r2, 0
+ bl DestroySprite
+ ldr r4, _080C6124
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080C611C
+ ldrh r0, [r1]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ ldr r2, _080C6128
+ movs r1, 0
+ bl BlendPalettes
+ ldr r0, _080C612C
+ bl SetHBlankCallback
+_080C611C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6124: .4byte gUnknown_020387EC
+_080C6128: .4byte 0x0000ffff
+_080C612C: .4byte sub_80C6078
+ thumb_func_end sub_80C60CC
+
+ thumb_func_start sub_80C6130
+sub_80C6130: @ 80C6130
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080C61AA
+ ldr r1, _080C6184
+ ldr r0, [r1]
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ adds r5, r1, 0
+ cmp r4, 0x1
+ bne _080C61AA
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080C616C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080C616C:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080C6188
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ blt _080C6196
+ b _080C6194
+ .align 2, 0
+_080C6184: .4byte gUnknown_020387EC
+_080C6188:
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bgt _080C6196
+_080C6194:
+ strh r4, [r2, 0x36]
+_080C6196:
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080C61AA
+ ldr r0, [r5]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x1
+ strh r1, [r0, 0xA]
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+_080C61AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6130
+
+ thumb_func_start sub_80C61B0
+sub_80C61B0: @ 80C61B0
+ push {r4-r6,lr}
+ ldr r2, _080C61F0
+ ldrh r1, [r2]
+ movs r5, 0x2
+ orrs r1, r5
+ strh r1, [r2]
+ ldr r3, _080C61F4
+ ldrh r1, [r3]
+ movs r2, 0x10
+ orrs r1, r2
+ strh r1, [r3]
+ ldr r4, _080C61F8
+ ldrh r2, [r4]
+ movs r6, 0
+ strh r6, [r4]
+ ldr r3, _080C61FC
+ ldrh r1, [r3]
+ orrs r1, r5
+ strh r1, [r3]
+ strh r2, [r4]
+ ldr r2, _080C6200
+ ldrh r1, [r2, 0x1C]
+ orrs r1, r5
+ ldrh r3, [r2, 0x1C]
+ orrs r1, r6
+ strh r1, [r2, 0x1C]
+ bl SetHBlankCallback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C61F0: .4byte INTR_CHECK
+_080C61F4: .4byte REG_DISPSTAT
+_080C61F8: .4byte 0x04000208
+_080C61FC: .4byte 0x04000200
+_080C6200: .4byte gMain
+ thumb_func_end sub_80C61B0
+
+ thumb_func_start ClearGpuRegBits
+ClearGpuRegBits: @ 80C6204
+ push {r4,r5,lr}
+ ldr r3, _080C6248
+ ldrh r1, [r3]
+ ldr r2, _080C624C
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r3, _080C6250
+ ldrh r1, [r3]
+ ldr r0, _080C6254
+ ands r0, r1
+ strh r0, [r3]
+ ldr r4, _080C6258
+ ldrh r3, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r5, _080C625C
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r0, _080C6260
+ ldrh r1, [r0, 0x1C]
+ ands r2, r1
+ ldrh r1, [r0, 0x1C]
+ strh r2, [r0, 0x1C]
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6248: .4byte INTR_CHECK
+_080C624C: .4byte 0x0000fffd
+_080C6250: .4byte REG_DISPSTAT
+_080C6254: .4byte 0x0000ffef
+_080C6258: .4byte 0x04000208
+_080C625C: .4byte 0x04000200
+_080C6260: .4byte gMain
+ thumb_func_end ClearGpuRegBits
+
+ thumb_func_start sub_80C6264
+sub_80C6264: @ 80C6264
+ push {lr}
+ ldr r0, _080C6278
+ ldr r1, _080C627C
+ ldr r1, [r1, 0x4]
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6278: .4byte gUnknown_0203923C
+_080C627C: .4byte gMapHeader
+ thumb_func_end sub_80C6264
+
+ thumb_func_start sub_80C6280
+sub_80C6280: @ 80C6280
+ push {lr}
+ ldr r1, _080C6294
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080C62AA
+ cmp r0, 0x2
+ bgt _080C6298
+ cmp r0, 0x1
+ beq _080C62A2
+ b _080C62BE
+ .align 2, 0
+_080C6294: .4byte gUnknown_0202FF84
+_080C6298:
+ cmp r0, 0x3
+ beq _080C62AE
+ cmp r0, 0x4
+ beq _080C62B8
+ b _080C62BE
+_080C62A2:
+ movs r0, 0x8
+ str r0, [r1, 0x14]
+ movs r0, 0x28
+ b _080C62BC
+_080C62AA:
+ movs r0, 0x8
+ b _080C62BA
+_080C62AE:
+ movs r0, 0x8
+ negs r0, r0
+ str r0, [r1, 0x14]
+ movs r0, 0x18
+ b _080C62BC
+_080C62B8:
+ movs r0, 0x18
+_080C62BA:
+ str r0, [r1, 0x14]
+_080C62BC:
+ str r0, [r1, 0x18]
+_080C62BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6280
+
+ thumb_func_start sub_80C62C4
+sub_80C62C4: @ 80C62C4
+ push {r4,lr}
+ bl sub_80BB63C
+ ldr r0, _080C6318
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080C636E
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C636E
+ ldr r4, _080C631C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80571EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6330
+ bl sub_80C6264
+ ldr r1, _080C6320
+ ldr r0, _080C6324
+ str r0, [r1]
+ ldr r1, _080C6328
+ ldr r0, _080C632C
+ b _080C6380
+ .align 2, 0
+_080C6318: .4byte gScriptResult
+_080C631C: .4byte gUnknown_0203923C
+_080C6320: .4byte gUnknown_0300485C
+_080C6324: .4byte sub_808AB90
+_080C6328: .4byte gUnknown_03005CE4
+_080C632C: .4byte sub_80C639C
+_080C6330:
+ adds r0, r4, 0
+ bl sub_805720C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6360
+ bl sub_80C6264
+ ldr r1, _080C6350
+ ldr r0, _080C6354
+ str r0, [r1]
+ ldr r1, _080C6358
+ ldr r0, _080C635C
+ b _080C6380
+ .align 2, 0
+_080C6350: .4byte gUnknown_0300485C
+_080C6354: .4byte sub_808AB90
+_080C6358: .4byte gUnknown_03005CE4
+_080C635C: .4byte sub_80C64A8
+_080C6360:
+ adds r0, r4, 0
+ bl is_tile_x98
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C6372
+_080C636E:
+ movs r0, 0
+ b _080C6384
+_080C6372:
+ bl sub_80C6264
+ ldr r1, _080C638C
+ ldr r0, _080C6390
+ str r0, [r1]
+ ldr r1, _080C6394
+ ldr r0, _080C6398
+_080C6380:
+ str r0, [r1]
+ movs r0, 0x1
+_080C6384:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C638C: .4byte gUnknown_0300485C
+_080C6390: .4byte sub_808AB90
+_080C6394: .4byte gUnknown_03005CE4
+_080C6398: .4byte sub_80C660C
+ thumb_func_end sub_80C62C4
+
+ thumb_func_start sub_80C639C
+sub_80C639C: @ 80C639C
+ push {lr}
+ ldr r1, _080C63B0
+ ldr r0, _080C63B4
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C63B8
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C63B0: .4byte gUnknown_0202FF84
+_080C63B4: .4byte gUnknown_03005CE0
+_080C63B8: .4byte gUnknown_081A2CE6
+ thumb_func_end sub_80C639C
+
+ thumb_func_start sub_80C63BC
+sub_80C63BC: @ 80C63BC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C63E0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C63E4
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C63E0: .4byte gTasks
+_080C63E4: .4byte sub_80C63E8
+ thumb_func_end sub_80C63BC
+
+ thumb_func_start sub_80C63E8
+sub_80C63E8: @ 80C63E8
+ push {lr}
+ movs r0, 0xB
+ bl FieldEffectActiveListRemove
+ movs r0, 0x37
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C63E8
+
+ thumb_func_start sub_80C63FC
+sub_80C63FC: @ 80C63FC
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C643C
+ ldr r3, _080C6440
+ ldr r1, _080C6444
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6448
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C643C: .4byte gSpriteTemplate_83D2614
+_080C6440: .4byte gSprites
+_080C6444: .4byte gPlayerAvatar
+_080C6448: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80C63FC
+
+ thumb_func_start sub_80C644C
+sub_80C644C: @ 80C644C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C6464
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6464: .4byte sub_80C6468
+ thumb_func_end sub_80C644C
+
+ thumb_func_start sub_80C6468
+sub_80C6468: @ 80C6468
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C6488
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6490
+ bl sub_80BB800
+ b _080C6490
+_080C6488:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6494
+ str r0, [r1, 0x1C]
+_080C6490:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6494: .4byte sub_80C6498
+ thumb_func_end sub_80C6468
+
+ thumb_func_start sub_80C6498
+sub_80C6498: @ 80C6498
+ push {lr}
+ movs r1, 0x37
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6498
+
+ thumb_func_start sub_80C64A8
+sub_80C64A8: @ 80C64A8
+ push {lr}
+ ldr r1, _080C64BC
+ ldr r0, _080C64C0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C64C4
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C64BC: .4byte gUnknown_0202FF84
+_080C64C0: .4byte gUnknown_03005CE0
+_080C64C4: .4byte gUnknown_081A2D3E
+ thumb_func_end sub_80C64A8
+
+ thumb_func_start sub_80C64C8
+sub_80C64C8: @ 80C64C8
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C64EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C64F0
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C64EC: .4byte gTasks
+_080C64F0: .4byte sub_80C64F4
+ thumb_func_end sub_80C64C8
+
+ thumb_func_start sub_80C64F4
+sub_80C64F4: @ 80C64F4
+ push {lr}
+ movs r0, 0x1A
+ bl FieldEffectActiveListRemove
+ movs r0, 0x38
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C64F4
+
+ thumb_func_start sub_80C6508
+sub_80C6508: @ 80C6508
+ push {r4,lr}
+ ldr r1, _080C6580
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r2, r0, 0
+ ldr r1, _080C6584
+ adds r0, r1, 0
+ ands r2, r0
+ cmp r2, 0x96
+ bne _080C652A
+ ldr r1, _080C6588
+ movs r0, 0
+ str r0, [r1, 0x1C]
+_080C652A:
+ cmp r2, 0x9C
+ bne _080C6534
+ ldr r1, _080C6588
+ movs r0, 0x2
+ str r0, [r1, 0x1C]
+_080C6534:
+ bl sub_80C6280
+ ldr r0, _080C658C
+ ldr r3, _080C6590
+ ldr r1, _080C6594
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6588
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0x1
+ beq _080C6572
+ cmp r0, 0x3
+ bne _080C6576
+_080C6572:
+ bl sub_80BB800
+_080C6576:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6580: .4byte gUnknown_0203923C
+_080C6584: .4byte 0x00000fff
+_080C6588: .4byte gUnknown_0202FF84
+_080C658C: .4byte gSpriteTemplate_83D262C
+_080C6590: .4byte gSprites
+_080C6594: .4byte gPlayerAvatar
+ thumb_func_end sub_80C6508
+
+ thumb_func_start sub_80C6598
+sub_80C6598: @ 80C6598
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x9B
+ bl PlaySE
+ ldr r0, _080C65BC
+ ldr r1, [r0, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r0, 0
+ strb r1, [r2]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65C0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65BC: .4byte gUnknown_0202FF84
+_080C65C0: .4byte sub_80C65C4
+ thumb_func_end sub_80C6598
+
+ thumb_func_start sub_80C65C4
+sub_80C65C4: @ 80C65C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080C65EE
+ ldr r0, _080C65F4
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080C65E2
+ cmp r0, 0x2
+ bne _080C65E6
+_080C65E2:
+ bl sub_80BB800
+_080C65E6:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65F8
+ str r0, [r4, 0x1C]
+_080C65EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65F4: .4byte gUnknown_0202FF84
+_080C65F8: .4byte sub_80C65FC
+ thumb_func_end sub_80C65C4
+
+ thumb_func_start sub_80C65FC
+sub_80C65FC: @ 80C65FC
+ push {lr}
+ movs r1, 0x38
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C65FC
+
+ thumb_func_start sub_80C660C
+sub_80C660C: @ 80C660C
+ push {lr}
+ ldr r1, _080C6620
+ ldr r0, _080C6624
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C6628
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6620: .4byte gUnknown_0202FF84
+_080C6624: .4byte gUnknown_03005CE0
+_080C6628: .4byte gUnknown_081A2D96
+ thumb_func_end sub_80C660C
+
+ thumb_func_start sub_80C662C
+sub_80C662C: @ 80C662C
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6650
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C6654
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6650: .4byte gTasks
+_080C6654: .4byte sub_80C6658
+ thumb_func_end sub_80C662C
+
+ thumb_func_start sub_80C6658
+sub_80C6658: @ 80C6658
+ push {lr}
+ movs r0, 0x1B
+ bl FieldEffectActiveListRemove
+ movs r0, 0x39
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6658
+
+ thumb_func_start sub_80C666C
+sub_80C666C: @ 80C666C
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C66AC
+ ldr r3, _080C66B0
+ ldr r1, _080C66B4
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C66B8
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C66AC: .4byte gSpriteTemplate_83D2644
+_080C66B0: .4byte gSprites
+_080C66B4: .4byte gPlayerAvatar
+_080C66B8: .4byte gUnknown_0202FF84
+ thumb_func_end sub_80C666C
+
+ thumb_func_start sub_80C66BC
+sub_80C66BC: @ 80C66BC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA9
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C66D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C66D4: .4byte sub_80C66D8
+ thumb_func_end sub_80C66BC
+
+ thumb_func_start sub_80C66D8
+sub_80C66D8: @ 80C66D8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C66F8
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6700
+ bl sub_80BB800
+ b _080C6700
+_080C66F8:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6704
+ str r0, [r1, 0x1C]
+_080C6700:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6704: .4byte sub_80C6708
+ thumb_func_end sub_80C66D8
+
+ thumb_func_start sub_80C6708
+sub_80C6708: @ 80C6708
+ push {lr}
+ movs r1, 0x39
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6708
+
+ thumb_func_start sub_80C6718
+sub_80C6718: @ 80C6718
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r0, _080C6758
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C675C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r4]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6758: .4byte sub_80C6760
+_080C675C: .4byte gTasks
+ thumb_func_end sub_80C6718
+
+ thumb_func_start sub_80C6760
+sub_80C6760: @ 80C6760
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C6788
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x4
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bhi _080C682E
+ lsls r0, 2
+ ldr r1, _080C678C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6788: .4byte gUnknown_03004B28
+_080C678C: .4byte _080C6790
+ .align 2, 0
+_080C6790:
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C6800
+_080C67D4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ b _080C67EE
+_080C67E2:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x88
+ lsls r2, 2
+_080C67EE:
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080C682E
+_080C6800:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0x3D
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6834
+_080C682E:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+_080C6834:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6760
+
+ thumb_func_start sub_80C683C
+sub_80C683C: @ 80C683C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080C6874
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C6878
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ b _080C6888
+ .align 2, 0
+_080C6874: .4byte 0x00004054
+_080C6878:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _080C68A0
+ bl MapGridSetMetatileIdAt
+_080C6888:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68A0: .4byte 0x00000e21
+ thumb_func_end sub_80C683C
+
+ thumb_func_start sub_80C68A4
+sub_80C68A4: @ 80C68A4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080C68E4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C68E8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68E4: .4byte sub_80C68EC
+_080C68E8: .4byte gTasks
+ thumb_func_end sub_80C68A4
+
+ thumb_func_start sub_80C68EC
+sub_80C68EC: @ 80C68EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C690C
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ bne _080C6910
+ movs r0, 0
+ b _080C6912
+ .align 2, 0
+_080C690C: .4byte gUnknown_03004B28
+_080C6910:
+ adds r0, r1, 0x1
+_080C6912:
+ strh r0, [r4, 0x6]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080C6964
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _080C692C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ bl sub_80C696C
+_080C692C:
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x8]
+ ldrh r3, [r4]
+ adds r2, r3
+ lsls r2, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x3
+ bne _080C6960
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6964
+_080C6960:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_080C6964:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C68EC
+
+ thumb_func_start sub_80C696C
+sub_80C696C: @ 80C696C
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C6998
+ cmp r1, r0
+ bgt _080C6988
+ movs r0, 0x8A
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69B0
+ b _080C69B6
+_080C6988:
+ movs r0, 0xCF
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69A0
+ adds r0, 0x4
+ cmp r1, r0
+ beq _080C69A8
+ b _080C69B6
+_080C6998:
+ movs r0, 0x4A
+ bl PlaySE
+ b _080C69B6
+_080C69A0:
+ movs r0, 0x4B
+ bl PlaySE
+ b _080C69B6
+_080C69A8:
+ movs r0, 0x4C
+ bl PlaySE
+ b _080C69B6
+_080C69B0:
+ movs r0, 0x4E
+ bl PlaySE
+_080C69B6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C696C
+
+ thumb_func_start sub_80C69BC
+sub_80C69BC: @ 80C69BC
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80C69BC
+
+ thumb_func_start sub_80C69C0
+sub_80C69C0: @ 80C69C0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80C69C0
+
+ thumb_func_start sub_80C69C4
+sub_80C69C4: @ 80C69C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x4D
+ bl PlaySE
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ ldr r2, _080C6A0C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ subs r6, r4, 0x1
+ ldr r2, _080C6A10
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CurrentMapDrawMetatileAt
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6A0C: .4byte 0x00000276
+_080C6A10: .4byte 0x0000026e
+ thumb_func_end sub_80C69C4
+
+ thumb_func_start sub_80C6A14
+sub_80C6A14: @ 80C6A14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6A44
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ bne _080C6A48
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ movs r3, 0xC
+ ldrsh r1, [r1, r3]
+ bl sub_80C69C4
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6A4C
+ .align 2, 0
+_080C6A44: .4byte gTasks
+_080C6A48:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+_080C6A4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6A14
+
+ thumb_func_start sub_80C6A54
+sub_80C6A54: @ 80C6A54
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r7, r5, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6A7C
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ asrs r1, 16
+ bl sub_80C69C4
+ b _080C6A9E
+_080C6A7C:
+ cmp r0, 0x2
+ bne _080C6A9E
+ ldr r0, _080C6AA4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6AA8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r7, [r1, 0xA]
+ strh r6, [r1, 0xC]
+_080C6A9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6AA4: .4byte sub_80C6A14
+_080C6AA8: .4byte gTasks
+ thumb_func_end sub_80C6A54
+
+ thumb_func_start sub_80C6AAC
+sub_80C6AAC: @ 80C6AAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6AE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ beq _080C6AC8
+ b _080C6C26
+_080C6AC8:
+ ldr r2, _080C6AE8
+ adds r0, r2, 0
+ ldrh r1, [r1, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ bls _080C6ADA
+ b _080C6C1E
+_080C6ADA:
+ lsls r0, 2
+ ldr r1, _080C6AEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6AE4: .4byte gTasks
+_080C6AE8: .4byte 0xfffffd88
+_080C6AEC: .4byte _080C6AF0
+ .align 2, 0
+_080C6AF0:
+ .4byte _080C6BE0
+ .4byte _080C6BE8
+ .4byte _080C6BF0
+ .4byte _080C6BF8
+ .4byte _080C6C00
+ .4byte _080C6C08
+ .4byte _080C6C10
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C18
+_080C6BE0:
+ movs r0, 0x3E
+ bl PlaySE
+ b _080C6C1E
+_080C6BE8:
+ movs r0, 0x3F
+ bl PlaySE
+ b _080C6C1E
+_080C6BF0:
+ movs r0, 0x40
+ bl PlaySE
+ b _080C6C1E
+_080C6BF8:
+ movs r0, 0x41
+ bl PlaySE
+ b _080C6C1E
+_080C6C00:
+ movs r0, 0x42
+ bl PlaySE
+ b _080C6C1E
+_080C6C08:
+ movs r0, 0x43
+ bl PlaySE
+ b _080C6C1E
+_080C6C10:
+ movs r0, 0x44
+ bl PlaySE
+ b _080C6C1E
+_080C6C18:
+ movs r0, 0x45
+ bl PlaySE
+_080C6C1E:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6C2A
+_080C6C26:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_080C6C2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6AAC
+
+ thumb_func_start sub_80C6C30
+sub_80C6C30: @ 80C6C30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _080C6C5C
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6C60
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6C5C: .4byte sub_80C6AAC
+_080C6C60: .4byte gTasks
+ thumb_func_end sub_80C6C30
+
+ thumb_func_start sub_80C6C64
+sub_80C6C64: @ 80C6C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080C6C7C
+ movs r0, 0xC3
+ bl PlaySE
+_080C6C7C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1F
+ ble _080C6C8A
+ adds r0, r4, 0
+ bl DestroySprite
+_080C6C8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6C64
+
+ thumb_func_start sub_80C6C90
+sub_80C6C90: @ 80C6C90
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r3, _080C6D28
+ ldr r2, _080C6D2C
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x12]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _080C6D30
+ ldr r0, [r0, 0x58]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080C6D1E
+ ldr r3, _080C6D34
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r3
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080C6D38
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080C6D1E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6D28: .4byte gMapObjects
+_080C6D2C: .4byte gPlayerAvatar
+_080C6D30: .4byte gFieldEffectObjectTemplatePointers
+_080C6D34: .4byte gSprites
+_080C6D38: .4byte sub_80C6C64
+ thumb_func_end sub_80C6C90
+
+ thumb_func_start sub_80C6D3C
+sub_80C6D3C: @ 80C6D3C
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r1, _080C6D78
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r1, 0x14]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [r1, 0x18]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080C6DBC
+ cmp r0, 0x2
+ bgt _080C6D7C
+ cmp r0, 0x1
+ beq _080C6D86
+ b _080C6E4C
+ .align 2, 0
+_080C6D78: .4byte gUnknown_0202FF84
+_080C6D7C:
+ cmp r0, 0x3
+ beq _080C6DEC
+ cmp r0, 0x4
+ beq _080C6E24
+ b _080C6E4C
+_080C6D86:
+ ldr r0, _080C6DB0
+ ldr r3, _080C6DB4
+ ldr r1, _080C6DB8
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x20
+ movs r3, 0
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6DB0: .4byte gSpriteTemplate_83D26A0
+_080C6DB4: .4byte gSprites
+_080C6DB8: .4byte gPlayerAvatar
+_080C6DBC:
+ ldr r0, _080C6DE0
+ ldr r3, _080C6DE4
+ ldr r1, _080C6DE8
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ b _080C6E0C
+ .align 2, 0
+_080C6DE0: .4byte gSpriteTemplate_83D26A0
+_080C6DE4: .4byte gSprites
+_080C6DE8: .4byte gPlayerAvatar
+_080C6DEC:
+ ldr r0, _080C6E14
+ ldr r3, _080C6E18
+ ldr r1, _080C6E1C
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ ldr r3, _080C6E20
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+_080C6E0C:
+ movs r3, 0x94
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6E14: .4byte gSpriteTemplate_83D26A0
+_080C6E18: .4byte gSprites
+_080C6E1C: .4byte gPlayerAvatar
+_080C6E20: .4byte 0xfff80000
+_080C6E24:
+ ldr r0, _080C6E58
+ ldr r3, _080C6E5C
+ ldr r1, _080C6E60
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0xC0
+ lsls r3, 13
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+ movs r3, 0x94
+ bl CreateSprite
+_080C6E4C:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6E58: .4byte gSpriteTemplate_83D26A0
+_080C6E5C: .4byte gSprites
+_080C6E60: .4byte gPlayerAvatar
+ thumb_func_end sub_80C6D3C
+
+ thumb_func_start door_restore_tilemap
+door_restore_tilemap: @ 80C6E64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ ldr r4, _080C6E90
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080C6E94
+ cmp r0, r1
+ bne _080C6E9C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ ldr r2, _080C6E98
+ bl MapGridSetMetatileIdAt
+ b _080C6EAA
+ .align 2, 0
+_080C6E90: .4byte gUnknown_0202FF84
+_080C6E94: .4byte 0x00000286
+_080C6E98: .4byte 0x00000e02
+_080C6E9C:
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ movs r2, 0xA1
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+_080C6EAA:
+ ldr r4, _080C6ED8
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6EDC
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl CurrentMapDrawMetatileAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6EE0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6ED8: .4byte gUnknown_0202FF84
+_080C6EDC: .4byte 0x0000020a
+_080C6EE0: .4byte sub_80C6EE4
+ thumb_func_end door_restore_tilemap
+
+ thumb_func_start sub_80C6EE4
+sub_80C6EE4: @ 80C6EE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x11
+ bgt _080C6EF8
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080C6F14
+_080C6EF8:
+ ldr r4, _080C6F1C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6F20
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6F24
+ str r0, [r5, 0x1C]
+_080C6F14:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6F1C: .4byte gUnknown_0202FF84
+_080C6F20: .4byte 0x00000e8c
+_080C6F24: .4byte sub_80C6F28
+ thumb_func_end sub_80C6EE4
+
+ thumb_func_start sub_80C6F28
+sub_80C6F28: @ 80C6F28
+ push {lr}
+ movs r1, 0x34
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6F28
+
+ thumb_func_start sub_80C6F38
+sub_80C6F38: @ 80C6F38
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080C6F70
+ cmp r1, r0
+ beq _080C6FE8
+ cmp r1, r0
+ bgt _080C6F74
+ subs r0, 0x17
+ cmp r1, r0
+ beq _080C6FB0
+ adds r0, 0x16
+ cmp r1, r0
+ beq _080C6FDC
+ b _080C6FFA
+ .align 2, 0
+_080C6F70: .4byte 0x000002f5
+_080C6F74:
+ ldr r0, _080C6F9C
+ cmp r1, r0
+ beq _080C6FF4
+ adds r0, 0x40
+ cmp r1, r0
+ bne _080C6FFA
+ ldr r0, _080C6FA0
+ movs r1, 0x64
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FA4
+ ldr r1, _080C6FA8
+ bl StringCopy
+ ldr r1, _080C6FAC
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6F9C: .4byte 0x000002f6
+_080C6FA0: .4byte gStringVar1
+_080C6FA4: .4byte gStringVar2
+_080C6FA8: .4byte gSecretBaseText_GoldRank
+_080C6FAC: .4byte gScriptResult
+_080C6FB0:
+ ldr r0, _080C6FCC
+ movs r1, 0x32
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FD0
+ ldr r1, _080C6FD4
+ bl StringCopy
+ ldr r1, _080C6FD8
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6FCC: .4byte gStringVar1
+_080C6FD0: .4byte gStringVar2
+_080C6FD4: .4byte gSecretBaseText_SilverRank
+_080C6FD8: .4byte gScriptResult
+_080C6FDC:
+ ldr r1, _080C6FE4
+ movs r0, 0x1
+ b _080C6FF8
+ .align 2, 0
+_080C6FE4: .4byte gScriptResult
+_080C6FE8:
+ ldr r1, _080C6FF0
+ movs r0, 0x2
+ b _080C6FF8
+ .align 2, 0
+_080C6FF0: .4byte gScriptResult
+_080C6FF4:
+ ldr r1, _080C7004
+ movs r0, 0x3
+_080C6FF8:
+ strh r0, [r1]
+_080C6FFA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7004: .4byte gScriptResult
+ thumb_func_end sub_80C6F38
+
+ thumb_func_start task50_overworld_posion_effect
+task50_overworld_posion_effect: @ 80C7008
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080C702C
+ adds r1, r0, r1
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C7046
+ cmp r0, 0x1
+ bgt _080C7030
+ cmp r0, 0
+ beq _080C7036
+ b _080C7062
+ .align 2, 0
+_080C702C: .4byte gUnknown_03004B28
+_080C7030:
+ cmp r0, 0x2
+ beq _080C705A
+ b _080C7062
+_080C7036:
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080C7062
+ b _080C7052
+_080C7046:
+ ldrh r0, [r1, 0x2]
+ subs r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C7062
+_080C7052:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080C7062
+_080C705A:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C706C
+_080C7062:
+ ldr r2, _080C7070
+ ldrh r1, [r1, 0x2]
+ lsls r0, r1, 4
+ orrs r0, r1
+ strh r0, [r2]
+_080C706C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7070: .4byte REG_MOSAIC
+ thumb_func_end task50_overworld_posion_effect
+
+ thumb_func_start overworld_posion_effect
+overworld_posion_effect: @ 80C7074
+ push {lr}
+ movs r0, 0x4F
+ bl PlaySE
+ ldr r0, _080C7088
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7088: .4byte task50_overworld_posion_effect
+ thumb_func_end overworld_posion_effect
+
+ thumb_func_start c3_80A0DD8_is_running
+c3_80A0DD8_is_running: @ 80C708C
+ push {lr}
+ ldr r0, _080C709C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C709C: .4byte task50_overworld_posion_effect
+ thumb_func_end c3_80A0DD8_is_running
+
+ thumb_func_start sub_80C70A0
+sub_80C70A0: @ 80C70A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C70B4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C70B8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C70B4: .4byte gTasks
+_080C70B8: .4byte sub_80C70BC
+ thumb_func_end sub_80C70A0
+
+ thumb_func_start sub_80C70BC
+sub_80C70BC: @ 80C70BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7120
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7124
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C70E8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C711A
+_080C70E8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D08
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r1, _080C7128
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C712C
+ str r1, [r0]
+_080C711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7120: .4byte gPlayerAvatar
+_080C7124: .4byte gMapObjects
+_080C7128: .4byte gTasks
+_080C712C: .4byte sub_80C7130
+ thumb_func_end sub_80C70BC
+
+ thumb_func_start sub_80C7130
+sub_80C7130: @ 80C7130
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C7184
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7188
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7194
+ ldr r1, _080C718C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080C7190
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ b _080C7194
+ .align 2, 0
+_080C7184: .4byte gPlayerAvatar
+_080C7188: .4byte gMapObjects
+_080C718C: .4byte gTasks
+_080C7190:
+ ldr r0, _080C719C
+ str r0, [r2]
+_080C7194:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C719C: .4byte sub_80C71A0
+ thumb_func_end sub_80C7130
+
+ thumb_func_start sub_80C71A0
+sub_80C71A0: @ 80C71A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80597D0
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPlayerAvatarTransitionFlags
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C71A0
+
+ thumb_func_start sub_80C71C4
+sub_80C71C4: @ 80C71C4
+ push {lr}
+ ldr r0, _080C71D4
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C71D4: .4byte sub_80C70A0
+ thumb_func_end sub_80C71C4
+
+ thumb_func_start sub_80C71D8
+sub_80C71D8: @ 80C71D8
+ push {r4,r5,lr}
+ ldr r0, _080C722C
+ bl LoadSpritePalette
+ ldr r0, _080C7230
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7238
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080C7234
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r0, 0x10
+ movs r1, 0xD
+ bl sub_8060388
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ adds r0, r5, 0
+ b _080C723A
+ .align 2, 0
+_080C722C: .4byte gUnknown_083D2878
+_080C7230: .4byte gSpriteTemplate_83D2894
+_080C7234: .4byte gSprites
+_080C7238:
+ movs r0, 0x40
+_080C723A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C71D8
+
+ thumb_func_start sub_80C7240
+sub_80C7240: @ 80C7240
+ push {r4-r7,lr}
+ ldr r4, _080C7274
+ adds r7, r4, 0
+ movs r6, 0
+ movs r5, 0x3F
+_080C724A:
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldr r1, [r0]
+ ldr r0, _080C7278
+ cmp r1, r0
+ bne _080C7264
+ adds r0, r4, 0
+ bl FreeSpritePalette
+ adds r0, r4, 0
+ bl DestroySprite
+_080C7264:
+ adds r4, 0x44
+ adds r6, 0x44
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C724A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7274: .4byte gSprites
+_080C7278: .4byte gSpriteTemplate_83D2894
+ thumb_func_end sub_80C7240
+
+ thumb_func_start sub_80C727C
+sub_80C727C: @ 80C727C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x78
+ bl __modsi3
+ cmp r0, 0
+ bne _080C7290
+ movs r0, 0x1
+ negs r0, r0
+ b _080C72A2
+_080C7290:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C72A0
+ movs r0, 0
+ b _080C72A2
+_080C72A0:
+ movs r0, 0x1
+_080C72A2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C727C
+
+ thumb_func_start sub_80C72A8
+sub_80C72A8: @ 80C72A8
+ push {lr}
+ adds r0, 0x78
+ movs r1, 0xB4
+ bl __modsi3
+ cmp r0, 0
+ beq _080C72BA
+ movs r0, 0
+ b _080C72BE
+_080C72BA:
+ movs r0, 0x1
+ negs r0, r0
+_080C72BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C72A8
+
+ thumb_func_start sub_80C72C4
+sub_80C72C4: @ 80C72C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C7364
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r4, _080C7368
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 18
+ movs r3, 0xC0
+ lsls r3, 10
+ orrs r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 17
+ ldr r3, _080C736C
+ adds r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ movs r3, 0x3
+ negs r3, r3
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ ldr r1, _080C7370
+ cmp r0, r1
+ bne _080C7346
+ strh r4, [r5]
+_080C7346:
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl SetCameraPanning
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7364: .4byte gUnknown_03004B28
+_080C7368: .4byte gSaveBlock1
+_080C736C: .4byte 0xfffd0000
+_080C7370: .4byte 0x75300000
+ thumb_func_end sub_80C72C4
+
+ thumb_func_start sub_80C7374
+sub_80C7374: @ 80C7374
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ ldr r4, _080C73B4
+ adds r7, r3, r4
+ ldrh r1, [r7]
+ adds r1, 0x1
+ strh r1, [r7]
+ ldrh r0, [r7, 0x4]
+ adds r0, 0x1
+ strh r0, [r7, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ ble _080C73A4
+ movs r0, 0
+ strh r0, [r7]
+ ldrh r0, [r7, 0x2]
+ adds r0, 0x1
+ strh r0, [r7, 0x2]
+_080C73A4:
+ ldrh r0, [r7, 0x2]
+ cmp r0, 0x13
+ bne _080C73B8
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C746A
+ .align 2, 0
+_080C73B4: .4byte gUnknown_03004B28
+_080C73B8:
+ ldr r2, _080C7474
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _080C73D4
+ adds r0, r4, 0
+ subs r0, 0x8
+ adds r0, r3, r0
+ ldr r1, _080C7478
+ str r1, [r0]
+_080C73D4:
+ movs r4, 0x2
+ ldrsh r0, [r7, r4]
+ adds r0, r2
+ movs r5, 0
+ ldrsb r5, [r0, r5]
+ lsls r5, 16
+ lsrs r5, 16
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl SetCameraPanning
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r6, _080C747C
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r3, 0x3
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ movs r4, 0xC0
+ lsls r4, 10
+ orrs r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ negs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 17
+ ldr r4, _080C7480
+ adds r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r4, 0x3
+ negs r4, r4
+ adds r3, r4, 0
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+_080C746A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7474: .4byte gUnknown_083D294C
+_080C7478: .4byte sub_80C7484
+_080C747C: .4byte gSaveBlock1
+_080C7480: .4byte 0xfffd0000
+ thumb_func_end sub_80C7374
+
+ thumb_func_start sub_80C7484
+sub_80C7484: @ 80C7484
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080C74C4
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C74B4
+ movs r0, 0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+_080C74B4:
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bne _080C74C8
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080C7516
+ .align 2, 0
+_080C74C4: .4byte gUnknown_03004B28
+_080C74C8:
+ ldr r1, _080C7524
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ movs r1, 0
+ mov r8, r1
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r0, r6, 0
+ bl SetCameraPanning
+ ldr r5, _080C7528
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ movs r3, 0x3
+ subs r3, r6
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ negs r3, r6
+ mov r4, r8
+ subs r4, 0x3
+ str r4, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ subs r4, r6
+ mov r3, r8
+ str r3, [sp]
+ movs r0, 0x3
+ adds r3, r4, 0
+ bl sub_805BD90
+_080C7516:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7524: .4byte gUnknown_083D294C
+_080C7528: .4byte gSaveBlock1
+ thumb_func_end sub_80C7484
+
+ thumb_func_start sub_80C752C
+sub_80C752C: @ 80C752C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C7550
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080C7546
+ b _080C7698
+_080C7546:
+ lsls r0, 2
+ ldr r1, _080C7554
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C7550: .4byte gUnknown_03004B28
+_080C7554: .4byte _080C7558
+ .align 2, 0
+_080C7558:
+ .4byte _080C7570
+ .4byte _080C75A8
+ .4byte _080C75C4
+ .4byte _080C7610
+ .4byte _080C7634
+ .4byte _080C7652
+_080C7570:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ beq _080C7580
+ b _080C7698
+_080C7580:
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r0, _080C75A4
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ movs r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x31
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C75A4: .4byte sub_80C72C4
+_080C75A8:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x96
+ bne _080C7698
+ bl pal_fill_black
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7698
+_080C75C4:
+ ldrh r0, [r4, 0x2]
+ adds r3, r0, 0x1
+ strh r3, [r4, 0x2]
+ ldr r0, _080C7608
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080C7698
+ lsls r1, r3, 16
+ movs r0, 0x96
+ lsls r0, 17
+ cmp r1, r0
+ ble _080C7698
+ strh r2, [r4, 0x2]
+ ldrb r0, [r4, 0x4]
+ bl DestroyTask
+ ldr r0, _080C760C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x6]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x32
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C7608: .4byte gPaletteFade
+_080C760C: .4byte sub_80C7374
+_080C7610:
+ ldr r2, _080C7630
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080C7698
+ bl InstallCameraPanAheadCallback
+ strh r5, [r4, 0x2]
+ movs r0, 0x4
+ strh r0, [r4]
+ b _080C7698
+ .align 2, 0
+_080C7630: .4byte gTasks
+_080C7634:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ bne _080C7698
+ movs r0, 0x33
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080C7698
+_080C7652:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ bne _080C7698
+ movs r2, 0x82
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x84
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x86
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x34
+ bl PlaySE
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+_080C7698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C752C
+
+ thumb_func_start sub_80C76A0
+sub_80C76A0: @ 80C76A0
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _080C76E8
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76EC
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76F0
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ bl ScriptContext2_Enable
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _080C76F4
+ ldr r2, _080C76F8
+ mov r0, sp
+ bl CpuFastSet
+ ldr r0, _080C76FC
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C76E8: .4byte 0x0000020d
+_080C76EC: .4byte 0x00000215
+_080C76F0: .4byte 0x0000021d
+_080C76F4: .4byte gPlttBufferFaded
+_080C76F8: .4byte 0x01000100
+_080C76FC: .4byte sub_80C752C
+ thumb_func_end sub_80C76A0
+
+ thumb_func_start sub_80C7700
+sub_80C7700: @ 80C7700
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080C774C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080C7744
+ ldr r4, _080C7750
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r5, 0x3
+ negs r5, r5
+ str r5, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ str r6, [sp]
+ movs r0, 0x3
+ adds r3, r5, 0
+ bl sub_805BD90
+_080C7744:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C774C: .4byte sub_80C752C
+_080C7750: .4byte gSaveBlock1
+ thumb_func_end sub_80C7700
+
+ thumb_func_start sub_80C7754
+sub_80C7754: @ 80C7754
+ push {r4-r6,lr}
+ sub sp, 0xC
+ mov r4, sp
+ adds r4, 0x5
+ mov r5, sp
+ adds r5, 0x6
+ add r6, sp, 0x8
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C7796
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r2, 0x1
+ negs r2, r2
+ movs r3, 0
+ ldrsb r3, [r5, r3]
+ movs r4, 0
+ ldrsb r4, [r6, r4]
+ str r4, [sp]
+ bl warp1_set
+ movs r0, 0x1
+ b _080C7798
+_080C7796:
+ movs r0, 0
+_080C7798:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7754
+
+ thumb_func_start sub_80C77A0
+sub_80C77A0: @ 80C77A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C77CC
+ adds r4, r0, r1
+ ldr r0, _080C77D0
+ bl GetVarPointer
+ adds r6, r0, 0
+ ldr r7, _080C77D4
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080C77FC
+ cmp r2, 0x1
+ bgt _080C77D8
+ cmp r2, 0
+ beq _080C77E2
+ b _080C7896
+ .align 2, 0
+_080C77CC: .4byte gUnknown_03004B28
+_080C77D0: .4byte 0x000040b4
+_080C77D4: .4byte gSaveBlock1 + 0x4
+_080C77D8:
+ cmp r2, 0x2
+ beq _080C783E
+ cmp r2, 0x3
+ beq _080C7878
+ b _080C7896
+_080C77E2:
+ ldr r0, _080C77F8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C7896
+ strh r2, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C77F8: .4byte gPaletteFade
+_080C77FC:
+ ldr r0, _080C7830
+ ldrh r1, [r0, 0x2E]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C780A
+ strh r2, [r4, 0x2]
+_080C780A:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ movs r0, 0xFF
+ bl sub_80A212C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7896
+ movs r0, 0x1
+ bl sub_810D9B0
+ cmp r0, 0x1
+ bne _080C783A
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7834
+ movs r0, 0x9
+ b _080C7836
+ .align 2, 0
+_080C7830: .4byte gMain
+_080C7834:
+ movs r0, 0xA
+_080C7836:
+ strh r0, [r6]
+ b _080C7846
+_080C783A:
+ movs r0, 0x2
+ strh r0, [r4]
+_080C783E:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C784C
+_080C7846:
+ movs r0, 0x3
+ strh r0, [r4]
+ b _080C7896
+_080C784C:
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7860
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C785C
+ b _080C7866
+ .align 2, 0
+_080C785C: .4byte gUnknown_083D295F
+_080C7860:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C7874
+_080C7866:
+ movs r0, 0xFF
+ bl exec_movement
+ movs r0, 0x1
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C7874: .4byte gUnknown_083D2961
+_080C7878:
+ ldr r0, _080C789C
+ bl FlagReset
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagReset
+ movs r0, 0
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl sp13E_warp_to_last_warp
+ adds r0, r5, 0
+ bl DestroyTask
+_080C7896:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C789C: .4byte 0x00004001
+ thumb_func_end sub_80C77A0
+
+ thumb_func_start sub_80C78A0
+sub_80C78A0: @ 80C78A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080C78F4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8C
+ movs r2, 0x70
+ movs r3, 0x50
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C78F8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _080C78FC
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _080C7900
+ movs r0, 0x4
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ b _080C7912
+ .align 2, 0
+_080C78F4: .4byte SpriteCallbackDummy
+_080C78F8: .4byte gSprites
+_080C78FC: .4byte 0x000040b4
+_080C7900:
+ movs r0, 0x3
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080C7912:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C78A0
+
+ thumb_func_start sub_80C791C
+sub_80C791C: @ 80C791C
+ push {lr}
+ bl sub_80C78A0
+ ldr r2, _080C794C
+ ldr r0, _080C7950
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl pal_fill_black
+ ldr r0, _080C7954
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C794C: .4byte gMapObjects
+_080C7950: .4byte gPlayerAvatar
+_080C7954: .4byte sub_80C77A0
+ thumb_func_end sub_80C791C
+
+ thumb_func_start sub_80C7958
+sub_80C7958: @ 80C7958
+ push {lr}
+ ldr r0, _080C7990
+ bl FlagSet
+ ldr r0, _080C7994
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagSet
+ ldr r0, _080C7998
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ bl sub_80C7754
+ bl sub_8080F9C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7990: .4byte 0x0000082d
+_080C7994: .4byte 0x00004001
+_080C7998: .4byte gSaveBlock1
+ thumb_func_end sub_80C7958
+
+ thumb_func_start GetCurrentMapRotatingGatePuzzleType
+GetCurrentMapRotatingGatePuzzleType: @ 80C799C
+ push {lr}
+ ldr r0, _080C79B0
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C79B4
+ movs r0, 0x1
+ b _080C79C6
+ .align 2, 0
+_080C79B0: .4byte gSaveBlock1
+_080C79B4:
+ ldr r0, _080C79C0
+ cmp r1, r0
+ beq _080C79C4
+ movs r0, 0
+ b _080C79C6
+ .align 2, 0
+_080C79C0: .4byte 0x0000081d
+_080C79C4:
+ movs r0, 0x2
+_080C79C6:
+ pop {r1}
+ bx r1
+ thumb_func_end GetCurrentMapRotatingGatePuzzleType
+
+ thumb_func_start sub_80C79CC
+sub_80C79CC: @ 80C79CC
+ push {r4-r6,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r5, r0, 0
+ movs r3, 0
+ ldr r4, _080C7A00
+ ldrb r0, [r4]
+ cmp r3, r0
+ bge _080C79F8
+ ldr r6, _080C7A04
+_080C79E4:
+ adds r2, r5, r3
+ ldr r1, [r6]
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _080C79E4
+_080C79F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7A00: .4byte gUnknown_02038804
+_080C7A04: .4byte gUnknown_02038800
+ thumb_func_end sub_80C79CC
+
+ thumb_func_start sub_80C7A08
+sub_80C7A08: @ 80C7A08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7A08
+
+ thumb_func_start sub_80C7A24
+sub_80C7A24: @ 80C7A24
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A24
+
+ thumb_func_start sub_80C7A44
+sub_80C7A44: @ 80C7A44
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0x1
+ bne _080C7A68
+ cmp r1, 0
+ beq _080C7A64
+ subs r0, r1, 0x1
+ lsls r0, 24
+ b _080C7A72
+_080C7A64:
+ movs r1, 0x3
+ b _080C7A74
+_080C7A68:
+ adds r1, 0x1
+ lsls r1, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r1
+_080C7A72:
+ lsrs r1, r0, 24
+_080C7A74:
+ adds r0, r5, 0
+ bl sub_80C7A24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A44
+
+ thumb_func_start sub_80C7A80
+sub_80C7A80: @ 80C7A80
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0x1
+ beq _080C7A94
+ cmp r0, 0x1
+ ble _080C7AC8
+ cmp r0, 0x2
+ beq _080C7AAC
+ b _080C7AC8
+_080C7A94:
+ ldr r1, _080C7AA0
+ ldr r0, _080C7AA4
+ str r0, [r1]
+ ldr r1, _080C7AA8
+ movs r0, 0x7
+ b _080C7AB6
+ .align 2, 0
+_080C7AA0: .4byte gUnknown_02038800
+_080C7AA4: .4byte gUnknown_083D2964
+_080C7AA8: .4byte gUnknown_02038804
+_080C7AAC:
+ ldr r1, _080C7ACC
+ ldr r0, _080C7AD0
+ str r0, [r1]
+ ldr r1, _080C7AD4
+ movs r0, 0xE
+_080C7AB6:
+ strb r0, [r1]
+ movs r1, 0
+ ldr r3, _080C7AD8
+ movs r2, 0x40
+_080C7ABE:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0xD
+ bls _080C7ABE
+_080C7AC8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7ACC: .4byte gUnknown_02038800
+_080C7AD0: .4byte gUnknown_083D299C
+_080C7AD4: .4byte gUnknown_02038804
+_080C7AD8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7A80
+
+ thumb_func_start sub_80C7ADC
+sub_80C7ADC: @ 80C7ADC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ ldr r2, _080C7B9C
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080C7BA0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080C7B8C
+ lsls r0, r2, 16
+ asrs r7, r0, 16
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+_080C7B28:
+ ldr r0, _080C7BA4
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r7, r1
+ bgt _080C7B7E
+ mov r3, r8
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ cmp r6, r1
+ bgt _080C7B7E
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ ldr r0, _080C7BA8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ bne _080C7B7E
+ ldr r3, [sp]
+ lsls r1, r3, 16
+ mov r0, r10
+ lsls r2, r0, 16
+ adds r0, r5, 0
+ asrs r1, 16
+ asrs r2, 16
+ bl sub_80C7BAC
+ strb r0, [r4]
+_080C7B7E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7BA0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080C7B28
+_080C7B8C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7B9C: .4byte gSaveBlock1
+_080C7BA0: .4byte gUnknown_02038804
+_080C7BA4: .4byte gUnknown_02038800
+_080C7BA8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7ADC
+
+ thumb_func_start sub_80C7BAC
+sub_80C7BAC: @ 80C7BAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, _080C7BDC
+ lsls r1, r6, 3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080C7BD4
+ cmp r0, 0x4
+ bne _080C7BE4
+_080C7BD4:
+ mov r1, sp
+ ldr r0, _080C7BE0
+ b _080C7BE8
+ .align 2, 0
+_080C7BDC: .4byte gUnknown_02038800
+_080C7BE0: .4byte gSpriteTemplate_83D60A4
+_080C7BE4:
+ mov r1, sp
+ ldr r0, _080C7C7C
+_080C7BE8:
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r2, sp
+ ldrb r0, [r4, 0x4]
+ movs r3, 0x98
+ lsls r3, 5
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x94
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7C84
+ ldrh r0, [r4]
+ adds r0, 0x7
+ ldrh r1, [r4, 0x2]
+ adds r1, 0x7
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r2, _080C7C80
+ adds r4, r2
+ strh r6, [r4, 0x2E]
+ movs r2, 0x3E
+ adds r2, r4
+ mov r12, r2
+ ldrb r2, [r2]
+ movs r3, 0x2
+ orrs r2, r3
+ mov r3, r12
+ strb r2, [r3]
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 16
+ asrs r2, 16
+ adds r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ mov r3, r8
+ lsls r2, r3, 16
+ asrs r2, 16
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ bl sub_8060388
+ adds r0, r4, 0
+ bl sub_80C7D14
+ adds r0, r6, 0
+ bl sub_80C7A08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ b _080C7C86
+ .align 2, 0
+_080C7C7C: .4byte gSpriteTemplate_83D608C
+_080C7C80: .4byte gSprites
+_080C7C84:
+ movs r0, 0x40
+_080C7C86:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7BAC
+
+ thumb_func_start sub_80C7C94
+sub_80C7C94: @ 80C7C94
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x30]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r6, 0
+ bl sub_80C7D14
+ cmp r5, 0x1
+ bne _080C7CDA
+ adds r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CCA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CCA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+ b _080C7D08
+_080C7CDA:
+ cmp r5, 0x2
+ bne _080C7D08
+ adds r0, r7, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CFA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CFA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+_080C7D08:
+ movs r0, 0
+ strh r0, [r6, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7C94
+
+ thumb_func_start sub_80C7D14
+sub_80C7D14: @ 80C7D14
+ push {r4-r6,lr}
+ mov r12, r0
+ mov r4, r12
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r5, 0x5
+ negs r5, r5
+ ands r5, r0
+ strb r5, [r4]
+ mov r0, r12
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ adds r0, 0x28
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldr r0, _080C7DA8
+ adds r2, r1
+ ldrh r0, [r0]
+ adds r2, r0
+ lsls r2, 16
+ mov r3, r12
+ ldrh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x22]
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r3, _080C7DAC
+ adds r0, r1
+ ldrh r3, [r3]
+ adds r0, r3
+ lsls r0, 16
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r2, r3
+ lsrs r1, 16
+ lsrs r6, r0, 16
+ adds r0, r3
+ lsrs r3, r0, 16
+ asrs r2, 16
+ cmp r2, 0xFF
+ bgt _080C7D7A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7D82
+_080C7D7A:
+ movs r1, 0x4
+ adds r0, r5, 0
+ orrs r0, r1
+ strb r0, [r4]
+_080C7D82:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xAF
+ bgt _080C7D96
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7DA2
+_080C7D96:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080C7DA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DA8: .4byte gSpriteCoordOffsetX
+_080C7DAC: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_80C7D14
+
+ thumb_func_start LoadRotatingGatePics
+LoadRotatingGatePics: @ 80C7DB0
+ push {lr}
+ ldr r0, _080C7DBC
+ bl LoadSpriteSheets
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DBC: .4byte gRotatingGatesGraphicsTable
+ thumb_func_end LoadRotatingGatePics
+
+ thumb_func_start sub_80C7DC0
+sub_80C7DC0: @ 80C7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _080C7DF4
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r6, 0
+ b _080C7E66
+ .align 2, 0
+_080C7DF4: .4byte gSaveBlock1
+_080C7DF8:
+ ldr r0, _080C7E7C
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080C7E80
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _080C7E64
+ lsls r0, r2, 16
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r2, r0
+ bgt _080C7E44
+ lsls r0, r3, 16
+ mov r2, r8
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C7E64
+_080C7E44:
+ ldr r0, _080C7E80
+ adds r5, r6, r0
+ ldrb r0, [r5]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7E84
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ movs r0, 0x40
+ strb r0, [r5]
+_080C7E64:
+ adds r6, 0x1
+_080C7E66:
+ ldr r0, _080C7E88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C7DF8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7E7C: .4byte gUnknown_02038800
+_080C7E80: .4byte gUnknown_020387F0
+_080C7E84: .4byte gSprites
+_080C7E88: .4byte gUnknown_02038804
+ thumb_func_end sub_80C7DC0
+
+ thumb_func_start sub_80C7E8C
+sub_80C7E8C: @ 80C7E8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r1, 0x1
+ bne _080C7EAC
+ ldr r0, _080C7EA8
+ mov r10, r0
+ b _080C7EB8
+ .align 2, 0
+_080C7EA8: .4byte gUnknown_083D611C
+_080C7EAC:
+ cmp r1, 0x2
+ beq _080C7EB4
+_080C7EB0:
+ movs r0, 0
+ b _080C7F48
+_080C7EB4:
+ ldr r1, _080C7F58
+ mov r10, r1
+_080C7EB8:
+ adds r0, r4, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r0, _080C7F5C
+ ldr r1, [r0]
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ movs r3, 0
+ lsls r2, 3
+ str r2, [sp, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+_080C7EE8:
+ movs r6, 0
+ ldr r2, [sp]
+ adds r7, r2, r3
+ lsls r0, r3, 1
+ adds r5, r7, 0
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ ldr r2, _080C7F60
+ adds r4, r0, r2
+_080C7EFA:
+ adds r0, r5, 0
+ cmp r5, 0
+ bge _080C7F02
+ adds r0, r7, 0x3
+_080C7F02:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r5, r0
+ lsls r0, 1
+ adds r0, r6
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080C7F38
+ lsls r1, 2
+ add r1, r10
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ add r0, r9
+ ldrb r1, [r1, 0x1]
+ lsls r1, 24
+ asrs r1, 24
+ add r1, r8
+ str r3, [sp, 0x8]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r0, 0x1
+ beq _080C7EB0
+_080C7F38:
+ adds r4, 0x1
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080C7EFA
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C7EE8
+ movs r0, 0x1
+_080C7F48:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7F58: .4byte gUnknown_083D60FC
+_080C7F5C: .4byte gUnknown_02038800
+_080C7F60: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7E8C
+
+ thumb_func_start sub_80C7F64
+sub_80C7F64: @ 80C7F64
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsrs r4, 25
+ movs r0, 0x1
+ ands r5, r0
+ adds r0, r6, 0
+ bl sub_80C7A08
+ subs r4, r0
+ adds r1, r4, 0x4
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080C7F8A
+ adds r0, r4, 0x7
+_080C7F8A:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ ldr r1, _080C7FB0
+ ldr r2, [r1]
+ lsls r1, r6, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x4]
+ ldr r2, _080C7FB4
+ lsls r0, 24
+ asrs r0, 23
+ adds r0, r5
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7FB0: .4byte gUnknown_02038800
+_080C7FB4: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7F64
+
+ thumb_func_start sub_80C7FB8
+sub_80C7FB8: @ 80C7FB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080C7FE4
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ cmp r0, 0x40
+ beq _080C7FDC
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7FE8
+ adds r4, r0
+ strh r1, [r4, 0x30]
+ adds r0, r3, 0
+ bl sub_80C7A08
+ strh r0, [r4, 0x32]
+_080C7FDC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7FE4: .4byte gUnknown_020387F0
+_080C7FE8: .4byte gSprites
+ thumb_func_end sub_80C7FB8
+
+ thumb_func_start sub_80C7FEC
+sub_80C7FEC: @ 80C7FEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r0, 0x2
+ bne _080C8008
+ ldr r3, _080C8004
+ b _080C802A
+ .align 2, 0
+_080C8004: .4byte gUnknown_083D60BC
+_080C8008:
+ cmp r0, 0x1
+ bne _080C8014
+ ldr r3, _080C8010
+ b _080C802A
+ .align 2, 0
+_080C8010: .4byte gUnknown_083D60CC
+_080C8014:
+ cmp r0, 0x3
+ bne _080C8020
+ ldr r3, _080C801C
+ b _080C802A
+ .align 2, 0
+_080C801C: .4byte gUnknown_083D60DC
+_080C8020:
+ cmp r3, 0x4
+ beq _080C8028
+ movs r0, 0xFF
+ b _080C8038
+_080C8028:
+ ldr r3, _080C803C
+_080C802A:
+ lsls r0, r2, 16
+ lsls r1, 16
+ asrs r1, 16
+ asrs r0, 14
+ adds r0, r1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+_080C8038:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C803C: .4byte gUnknown_083D60EC
+ thumb_func_end sub_80C7FEC
+
+ thumb_func_start sub_80C8040
+sub_80C8040: @ 80C8040
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C8052
+ bl sub_80C7A80
+ bl sub_80C79CC
+_080C8052:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8040
+
+ thumb_func_start RotatingGatePuzzleCameraUpdate
+RotatingGatePuzzleCameraUpdate: @ 80C8058
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C807A
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ bl sub_80C7ADC
+ bl sub_80C7DC0
+_080C807A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end RotatingGatePuzzleCameraUpdate
+
+ thumb_func_start sub_80C8080
+sub_80C8080: @ 80C8080
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C809A
+ bl LoadRotatingGatePics
+ bl sub_80C7A80
+ movs r0, 0
+ movs r1, 0
+ bl sub_80C7ADC
+_080C809A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8080
+
+ thumb_func_start CheckForRotatingGatePuzzleCollision
+CheckForRotatingGatePuzzleCollision: @ 80C80A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ bne _080C80D4
+ b _080C8172
+_080C80C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7FB8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7A44
+ b _080C8172
+_080C80D4:
+ movs r6, 0
+ ldr r0, _080C8160
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _080C8172
+ lsls r0, r4, 16
+ asrs r7, r0, 16
+_080C80E2:
+ ldr r0, _080C8164
+ ldr r1, [r0]
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ subs r0, r4, 0x2
+ cmp r0, r7
+ bgt _080C8168
+ adds r0, r4, 0x1
+ cmp r7, r0
+ bgt _080C8168
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ subs r1, r3, 0x2
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ cmp r1, r2
+ bgt _080C8168
+ adds r0, r3, 0x1
+ cmp r2, r0
+ bgt _080C8168
+ subs r1, r7, r4
+ adds r1, 0x2
+ subs r2, r3
+ adds r2, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, r9
+ bl sub_80C7FEC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080C8168
+ lsrs r5, r0, 4
+ movs r1, 0xF
+ ands r1, r0
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80C7F64
+ cmp r0, 0
+ beq _080C8168
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7E8C
+ cmp r0, 0
+ bne _080C80C2
+ movs r0, 0x1
+ b _080C8174
+ .align 2, 0
+_080C8160: .4byte gUnknown_02038804
+_080C8164: .4byte gUnknown_02038800
+_080C8168:
+ adds r6, 0x1
+ ldr r0, _080C8180
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C80E2
+_080C8172:
+ movs r0, 0
+_080C8174:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8180: .4byte gUnknown_02038804
+ thumb_func_end CheckForRotatingGatePuzzleCollision
+
+ thumb_func_start GetSafariZoneFlag
+GetSafariZoneFlag: @ 80C8184
+ push {lr}
+ ldr r0, _080C8194
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8194: .4byte 0x0000082c
+ thumb_func_end GetSafariZoneFlag
+
+ thumb_func_start SetSafariZoneFlag
+SetSafariZoneFlag: @ 80C8198
+ push {lr}
+ ldr r0, _080C81A4
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81A4: .4byte 0x0000082c
+ thumb_func_end SetSafariZoneFlag
+
+ thumb_func_start ResetSafariZoneFlag
+ResetSafariZoneFlag: @ 80C81A8
+ push {lr}
+ ldr r0, _080C81B4
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81B4: .4byte 0x0000082c
+ thumb_func_end ResetSafariZoneFlag
+
+ thumb_func_start sub_80C81B8
+sub_80C81B8: @ 80C81B8
+ push {lr}
+ movs r0, 0x11
+ bl sav12_xor_increment
+ bl SetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C81DC
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _080C81E0
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81DC: .4byte gUnknown_02038808
+_080C81E0: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81B8
+
+ thumb_func_start sub_80C81E4
+sub_80C81E4: @ 80C81E4
+ push {lr}
+ bl ResetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C8200
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080C8204
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8200: .4byte gUnknown_02038808
+_080C8204: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81E4
+
+ thumb_func_start safari_step
+safari_step: @ 80C8208
+ push {lr}
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _080C8224
+ bl sub_80C8508
+ ldr r1, _080C8228
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080C822C
+_080C8224:
+ movs r0, 0
+ b _080C8234
+ .align 2, 0
+_080C8228: .4byte gUnknown_0203880A
+_080C822C:
+ ldr r0, _080C8238
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+_080C8234:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8238: .4byte gUnknown_081C3448
+ thumb_func_end safari_step
+
+ thumb_func_start sub_80C823C
+sub_80C823C: @ 80C823C
+ push {lr}
+ ldr r0, _080C8248
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8248: .4byte gUnknown_081C342D
+ thumb_func_end sub_80C823C
+
+ thumb_func_start sub_80C824C
+sub_80C824C: @ 80C824C
+ push {lr}
+ ldr r0, _080C8260
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8268
+ ldr r0, _080C8264
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8260: .4byte gUnknown_02038808
+_080C8264: .4byte c2_exit_to_overworld_2_switch
+_080C8268:
+ ldr r0, _080C8288
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080C829C
+ ldr r0, _080C828C
+ bl ScriptContext2_RunNewScript
+ bl warp_in
+ ldr r1, _080C8290
+ ldr r0, _080C8294
+ str r0, [r1]
+ ldr r0, _080C8298
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8288: .4byte gUnknown_02024D26
+_080C828C: .4byte gUnknown_081C340A
+_080C8290: .4byte gUnknown_0300485C
+_080C8294: .4byte sub_8080E44
+_080C8298: .4byte CB2_LoadMap
+_080C829C:
+ cmp r0, 0x7
+ bne _080C82B0
+ ldr r0, _080C82B4
+ bl ScriptContext1_SetupScript
+ bl ScriptContext1_Stop
+ ldr r0, _080C82B8
+ bl SetMainCallback2
+_080C82B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82B4: .4byte gUnknown_081C3459
+_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C824C
+
+ thumb_func_start sub_80C82BC
+sub_80C82BC: @ 80C82BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r1, _080C82D4
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82D4: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82BC
+
+ thumb_func_start sub_80C82D8
+sub_80C82D8: @ 80C82D8
+ push {lr}
+ ldr r0, _080C82E8
+ movs r1, 0
+ movs r2, 0xA0
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82E8: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82D8
+
+ thumb_func_start sub_80C82EC
+sub_80C82EC: @ 80C82EC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r3, 0
+ adds r5, r4, 0
+ ldr r4, _080C8344
+_080C8302:
+ ldr r1, _080C8348
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ movs r1, 0x5
+ ldrsb r1, [r4, r1]
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080C8358
+ mov r0, sp
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ bne _080C8358
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r6, 0
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bne _080C8358
+ ldr r0, _080C834C
+ strh r3, [r0]
+ ldr r1, _080C8350
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080C8354
+ bl StringCopy
+ b _080C836A
+ .align 2, 0
+_080C8344: .4byte gSaveBlock1
+_080C8348: .4byte gUnknown_0203880C
+_080C834C: .4byte gScriptResult
+_080C8350: .4byte gUnknown_083F7EB8
+_080C8354: .4byte gStringVar1
+_080C8358:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bls _080C8302
+ ldr r1, _080C8374
+ ldr r2, _080C8378
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C836A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8374: .4byte gScriptResult
+_080C8378: .4byte 0x0000ffff
+ thumb_func_end sub_80C82EC
+
+ thumb_func_start sub_80C837C
+sub_80C837C: @ 80C837C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ movs r5, 0
+ adds r6, r4, 0
+ ldr r0, _080C83E8
+ movs r7, 0x5
+ ldrsb r7, [r0, r7]
+ mov r4, sp
+ ldr r0, _080C83EC
+ mov r12, r0
+_080C839C:
+ lsls r0, r5, 4
+ mov r1, r12
+ adds r2, r0, r1
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r7, r0
+ bne _080C83F4
+ ldrh r0, [r4]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4]
+ adds r3, r6, 0
+ ldrh r0, [r3]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r3]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080C83C8
+ negs r0, r0
+ strh r0, [r4]
+_080C83C8:
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080C83D4
+ negs r0, r0
+ strh r0, [r3]
+_080C83D4:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ cmp r0, 0x5
+ bgt _080C83F4
+ ldr r0, _080C83F0
+ strh r5, [r0]
+ b _080C8406
+ .align 2, 0
+_080C83E8: .4byte gSaveBlock1
+_080C83EC: .4byte gUnknown_0203880C
+_080C83F0: .4byte gScriptResult
+_080C83F4:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080C839C
+ ldr r1, _080C8410
+ ldr r2, _080C8414
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C8406:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8410: .4byte gScriptResult
+_080C8414: .4byte 0x0000ffff
+ thumb_func_end sub_80C837C
+
+ thumb_func_start unref_sub_80C8418
+unref_sub_80C8418: @ 80C8418
+ push {lr}
+ bl sub_80C82EC
+ ldr r2, _080C8434
+ ldrh r1, [r2]
+ ldr r0, _080C8438
+ cmp r1, r0
+ beq _080C8440
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C843C
+ adds r0, r1
+ b _080C8442
+ .align 2, 0
+_080C8434: .4byte gScriptResult
+_080C8438: .4byte 0x0000ffff
+_080C843C: .4byte gUnknown_02038814
+_080C8440:
+ movs r0, 0
+_080C8442:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C8418
+
+ thumb_func_start sub_80C8448
+sub_80C8448: @ 80C8448
+ push {lr}
+ bl sub_80C837C
+ ldr r2, _080C8464
+ ldrh r1, [r2]
+ ldr r0, _080C8468
+ cmp r1, r0
+ beq _080C8470
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C846C
+ adds r0, r1
+ b _080C8472
+ .align 2, 0
+_080C8464: .4byte gScriptResult
+_080C8468: .4byte 0x0000ffff
+_080C846C: .4byte gUnknown_02038814
+_080C8470:
+ movs r0, 0
+_080C8472:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C8448
+
+ thumb_func_start sub_80C8478
+sub_80C8478: @ 80C8478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r2, 0
+ ldr r3, _080C84E8
+ mov r6, sp
+ adds r6, 0x2
+ ldr r7, _080C84EC
+ movs r1, 0x8
+ adds r1, r3
+ mov r9, r1
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r1, r7, r4
+ lsrs r0, 21
+ adds r0, r1
+ mov r8, r0
+_080C84A0:
+ lsls r5, r2, 4
+ adds r4, r5, r3
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ mov r0, sp
+ adds r1, r6, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldrb r0, [r7, 0x5]
+ strb r0, [r4, 0x4]
+ mov r3, r9
+ adds r2, r5, r3
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x64
+ strb r0, [r4, 0x5]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r6]
+ strh r0, [r4, 0x2]
+ b _080C84FA
+ .align 2, 0
+_080C84E8: .4byte gUnknown_0203880C
+_080C84EC: .4byte gSaveBlock1
+_080C84F0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9
+ bls _080C84A0
+_080C84FA:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8478
+
+ thumb_func_start sub_80C8508
+sub_80C8508: @ 80C8508
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C8538
+_080C850E:
+ lsls r0, r4, 4
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _080C8528
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8528
+ adds r0, r4, 0
+ bl sub_80C82BC
+_080C8528:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080C850E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8538: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C8508
+
+ thumb_func_start unref_sub_80C853C
+unref_sub_80C853C: @ 80C853C
+ push {lr}
+ bl sub_80C82EC
+ ldr r3, _080C8564
+ ldrh r1, [r3]
+ ldr r0, _080C8568
+ cmp r1, r0
+ beq _080C8574
+ ldr r0, _080C856C
+ ldr r2, _080C8570
+ lsls r1, 4
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ b _080C8576
+ .align 2, 0
+_080C8564: .4byte gScriptResult
+_080C8568: .4byte 0x0000ffff
+_080C856C: .4byte gStringVar2
+_080C8570: .4byte gUnknown_0203880C
+_080C8574:
+ movs r0, 0
+_080C8576:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C853C
+
+ thumb_func_start sub_80C857C
+sub_80C857C: @ 80C857C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r5, _080C85A8
+ adds r0, r5, 0
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl memcpy
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SendBlock
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C85A8: .4byte 0x0201e000
+ thumb_func_end sub_80C857C
+
+ thumb_func_start sub_80C85AC
+sub_80C85AC: @ 80C85AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r4, r1, 24
+ bl GetBlockRecievedStatus
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C85D0
+ adds r0, r4, 0
+ bl ResetBlockReceivedFlag
+ movs r0, 0x1
+ b _080C85D2
+_080C85D0:
+ movs r0, 0
+_080C85D2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85AC
+
+ thumb_func_start sub_80C85D8
+sub_80C85D8: @ 80C85D8
+ push {r4,lr}
+ movs r4, 0
+_080C85DC:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C85F2
+ movs r0, 0
+ b _080C85FE
+_080C85F2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C85DC
+ bl ResetBlockReceivedFlags
+ movs r0, 0x1
+_080C85FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85D8
+
+ thumb_func_start sub_80C8604
+sub_80C8604: @ 80C8604
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r5, _080C8638
+ ldr r6, _080C863C
+ ldr r4, _080C8640
+ movs r3, 0xFF
+_080C8614:
+ lsls r0, r1, 8
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C8614
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ str r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8638: .4byte gTasks
+_080C863C: .4byte sub_80C8644
+_080C8640: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8604
+
+ thumb_func_start sub_80C8644
+sub_80C8644: @ 80C8644
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C8658
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C865C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C8658: .4byte gTasks
+_080C865C: .4byte sub_80C8660
+ thumb_func_end sub_80C8644
+
+ thumb_func_start sub_80C8660
+sub_80C8660: @ 80C8660
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C8694
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C868E
+ bl GetMultiplayerId
+ ldr r1, _080C8698
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C868E
+ ldr r1, _080C869C
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C868E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8694: .4byte gReceivedRemoteLinkPlayers
+_080C8698: .4byte gUnknown_02038695
+_080C869C: .4byte gUnknown_0203869A
+ thumb_func_end sub_80C8660
+
+ thumb_func_start sub_80C86A0
+sub_80C86A0: @ 80C86A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x2
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C86B6
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C86B6
+ movs r0, 0x2
+ b _080C872C
+_080C86B6:
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080C872A
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080C872A
+_080C86CA:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x45
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ bls _080C871E
+ adds r0, r1, 0
+ adds r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080C871E
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _080C871E
+ cmp r0, 0xAD
+ beq _080C871E
+ cmp r0, 0xB8
+ beq _080C871E
+ cmp r0, 0xAB
+ beq _080C871E
+ cmp r0, 0xAC
+ beq _080C871E
+ cmp r0, 0xB5
+ beq _080C871E
+ cmp r0, 0xB6
+ beq _080C871E
+ cmp r0, 0xBA
+ beq _080C871E
+ cmp r0, 0xAE
+ beq _080C871E
+ cmp r0, 0xB0
+ beq _080C871E
+ cmp r0, 0xB1
+ beq _080C871E
+ cmp r0, 0xB2
+ beq _080C871E
+ cmp r0, 0xB3
+ beq _080C871E
+ cmp r0, 0xB1
+ bne _080C8728
+_080C871E:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080C86CA
+ b _080C872A
+_080C8728:
+ movs r5, 0x1
+_080C872A:
+ adds r0, r5, 0
+_080C872C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C86A0
+
+ thumb_func_start sub_80C8734
+sub_80C8734: @ 80C8734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080C8768
+ lsls r5, r0, 2
+ adds r0, r5, r0
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C876C
+ cmp r0, 0x1
+ beq _080C87D0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ mov r0, r9
+ bl SwitchTaskToFollowupFunc
+ b _080C8896
+ .align 2, 0
+_080C8768: .4byte gTasks
+_080C876C:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C87A8
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8782
+ b _080C8896
+_080C8782:
+ ldr r0, _080C879C
+ ldr r1, _080C87A0
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87A4
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x2
+ bl sub_8007E9C
+ b _080C87BA
+ .align 2, 0
+_080C879C: .4byte gBlockSendBuffer
+_080C87A0: .4byte gUnknown_02038695
+_080C87A4: .4byte gUnknown_02038570
+_080C87A8:
+ ldr r0, _080C87C4
+ ldr r1, _080C87C8
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87CC
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+_080C87BA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8896
+ .align 2, 0
+_080C87C4: .4byte gBlockSendBuffer
+_080C87C8: .4byte gUnknown_02038695
+_080C87CC: .4byte gUnknown_02038570
+_080C87D0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8896
+ movs r7, 0
+ str r5, [sp]
+ ldr r0, _080C8818
+ ldr r6, _080C881C
+ movs r5, 0
+ mov r10, r0
+ movs r2, 0xFF
+ mov r8, r2
+_080C87EA:
+ lsls r1, r7, 8
+ ldr r0, _080C8820
+ adds r1, r0
+ mov r0, r10
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, _080C8824
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8828
+ adds r0, r4, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ b _080C883E
+ .align 2, 0
+_080C8818: .4byte gUnknown_02038570
+_080C881C: .4byte gLinkPlayers
+_080C8820: .4byte gBlockRecvBuffer
+_080C8824: .4byte gUnknown_02038572
+_080C8828:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0xFC
+ bne _080C8838
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _080C883E
+_080C8838:
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ strb r1, [r4, 0xA]
+_080C883E:
+ ldr r0, _080C886C
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8870
+ mov r2, r8
+ strb r2, [r4, 0x7]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r4, 0x6]
+ ldrb r0, [r4, 0x3]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r4, 0x4]
+ ldrb r0, [r4, 0x1]
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ strb r0, [r4, 0x2]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ movs r0, 0xFC
+ strb r0, [r4]
+ b _080C8878
+ .align 2, 0
+_080C886C: .4byte gUnknown_0203857D
+_080C8870:
+ ldrb r0, [r4, 0x7]
+ strb r0, [r4, 0x5]
+ mov r0, r8
+ strb r0, [r4, 0x7]
+_080C8878:
+ adds r6, 0x1C
+ adds r5, 0x40
+ movs r1, 0x40
+ add r10, r1
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080C87EA
+ ldr r0, _080C88A8
+ ldr r1, [sp]
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8896:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C88A8: .4byte gTasks
+ thumb_func_end sub_80C8734
+
+ thumb_func_start sub_80C88AC
+sub_80C88AC: @ 80C88AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C88D4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080C88D8
+ cmp r0, 0x1
+ beq _080C88FC
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8924
+ .align 2, 0
+_080C88D4: .4byte gTasks
+_080C88D8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C891E
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C88F8
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C891E
+ .align 2, 0
+_080C88F8: .4byte gRngValue
+_080C88FC:
+ movs r0, 0
+ bl sub_80C85AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C892C
+ ldr r4, _080C8930
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _080C8934
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+_080C891E:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080C8924:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C892C: .4byte gRngValue
+_080C8930: .4byte gBlockRecvBuffer
+_080C8934: .4byte gUnknown_03005D28
+ thumb_func_end sub_80C88AC
+
+ thumb_func_start sub_80C8938
+sub_80C8938: @ 80C8938
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8968
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C896C
+ cmp r0, 0x1
+ beq _080C8998
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C89CE
+ .align 2, 0
+_080C8968: .4byte gTasks
+_080C896C:
+ ldr r1, _080C8994
+ ldrh r0, [r4, 0x1A]
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C898C
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C898C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C89CE
+ .align 2, 0
+_080C8994: .4byte gBlockSendBuffer
+_080C8998:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r3, 0
+ mov r12, r8
+ adds r1, r6, 0
+ ldr r4, _080C89D8
+ mov r0, r12
+ adds r0, 0xA
+ adds r2, r7, r0
+ movs r6, 0x80
+ lsls r6, 1
+_080C89B4:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, r6
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C89B4
+ adds r1, r5
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C89CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C89D8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8938
+
+ thumb_func_start sub_80C89DC
+sub_80C89DC: @ 80C89DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8A04
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A08
+ cmp r0, 0x1
+ beq _080C8A20
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8A30
+ .align 2, 0
+_080C8A04: .4byte gTasks
+_080C8A08:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+ ldr r0, _080C8A1C
+ movs r1, 0x1
+ bl sub_80C857C
+ b _080C8A2A
+ .align 2, 0
+_080C8A1C: .4byte gUnknown_02038695
+_080C8A20:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+_080C8A2A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C89DC
+
+ thumb_func_start sub_80C8A38
+sub_80C8A38: @ 80C8A38
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r7, _080C8A60
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r7
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A64
+ cmp r0, 0x1
+ beq _080C8A94
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8AC2
+ .align 2, 0
+_080C8A60: .4byte gTasks
+_080C8A64:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r0, _080C8A8C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080C8A90
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_80C857C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8AC2
+ .align 2, 0
+_080C8A8C: .4byte gUnknown_02038695
+_080C8A90: .4byte 0x02019266
+_080C8A94:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r1, _080C8AC8
+ ldr r3, _080C8ACC
+ movs r4, 0x80
+ lsls r4, 1
+ movs r2, 0x3
+_080C8AA8:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, r4
+ adds r3, 0x1C
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080C8AA8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8AC2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8AC8: .4byte gBlockRecvBuffer
+_080C8ACC: .4byte 0x02019266
+ thumb_func_end sub_80C8A38
+
+ thumb_func_start sub_80C8AD0
+sub_80C8AD0: @ 80C8AD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8AF8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8AEC
+ b _080C8C70
+_080C8AEC:
+ lsls r0, 2
+ ldr r1, _080C8AFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8AF8: .4byte gTasks
+_080C8AFC: .4byte _080C8B00
+ .align 2, 0
+_080C8B00:
+ .4byte _080C8B30
+ .4byte _080C8B4C
+ .4byte _080C8B74
+ .4byte _080C8B98
+ .4byte _080C8BB0
+ .4byte _080C8B74
+ .4byte _080C8BD8
+ .4byte _080C8BF0
+ .4byte _080C8B74
+ .4byte _080C8C18
+ .4byte _080C8C30
+ .4byte _080C8B74
+_080C8B30:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B3C
+ b _080C8C7A
+_080C8B3C:
+ ldr r0, _080C8B48
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8B48: .4byte gUnknown_02038678
+_080C8B4C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B58
+ b _080C8C7A
+_080C8B58:
+ ldr r0, _080C8B68
+ ldr r1, _080C8B6C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8B70
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8B68: .4byte gUnknown_02038678
+_080C8B6C: .4byte gUnknown_0203869B
+_080C8B70: .4byte gBlockRecvBuffer
+_080C8B74:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bgt _080C8B8C
+ b _080C8C7A
+_080C8B8C:
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8C7A
+_080C8B98:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BAC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BAC: .4byte gUnknown_02038680
+_080C8BB0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BCC
+ ldr r1, _080C8BD0
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8BD4
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8BCC: .4byte gUnknown_02038680
+_080C8BD0: .4byte gUnknown_0203869B
+_080C8BD4: .4byte gBlockRecvBuffer
+_080C8BD8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BEC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BEC: .4byte gUnknown_02038688
+_080C8BF0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C0C
+ ldr r1, _080C8C10
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C14
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8C0C: .4byte gUnknown_02038688
+_080C8C10: .4byte gUnknown_0203869B
+_080C8C14: .4byte gBlockRecvBuffer
+_080C8C18:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C2C
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8C2C: .4byte gUnknown_02038690
+_080C8C30:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C60
+ ldr r1, _080C8C64
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C68
+ adds r1, r2
+ movs r2, 0x4
+_080C8C48:
+ bl memcpy
+_080C8C4C:
+ ldr r1, _080C8C6C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8C7A
+ .align 2, 0
+_080C8C60: .4byte gUnknown_02038690
+_080C8C64: .4byte gUnknown_0203869B
+_080C8C68: .4byte gBlockRecvBuffer
+_080C8C6C: .4byte gTasks
+_080C8C70:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8AD0
+
+ thumb_func_start sub_80C8C80
+sub_80C8C80: @ 80C8C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8CA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8C9C
+ b _080C8E0C
+_080C8C9C:
+ lsls r0, 2
+ ldr r1, _080C8CAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8CA8: .4byte gTasks
+_080C8CAC: .4byte _080C8CB0
+ .align 2, 0
+_080C8CB0:
+ .4byte _080C8CE0
+ .4byte _080C8CFC
+ .4byte _080C8D24
+ .4byte _080C8D46
+ .4byte _080C8D60
+ .4byte _080C8D24
+ .4byte _080C8D88
+ .4byte _080C8DA0
+ .4byte _080C8D24
+ .4byte _080C8DB4
+ .4byte _080C8DCC
+ .4byte _080C8D24
+_080C8CE0:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8CEC
+ b _080C8E16
+_080C8CEC:
+ ldr r0, _080C8CF8
+ movs r1, 0x70
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8CF8: .4byte 0x02019260
+_080C8CFC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D08
+ b _080C8E16
+_080C8D08:
+ ldr r0, _080C8D18
+ ldr r1, _080C8D1C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D20
+ adds r1, r2
+ movs r2, 0x70
+ b _080C8DE4
+ .align 2, 0
+_080C8D18: .4byte 0x02019260
+_080C8D1C: .4byte gUnknown_0203869B
+_080C8D20: .4byte gBlockRecvBuffer
+_080C8D24:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080C8E16
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8E16
+_080C8D46:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D5C
+ movs r1, 0x14
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D5C: .4byte 0x020192d0
+_080C8D60:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D7C
+ ldr r1, _080C8D80
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D84
+ adds r1, r2
+ movs r2, 0x14
+ b _080C8DE4
+ .align 2, 0
+_080C8D7C: .4byte 0x020192d0
+_080C8D80: .4byte gUnknown_0203869B
+_080C8D84: .4byte gBlockRecvBuffer
+_080C8D88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D9C
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D9C: .4byte 0x02019328
+_080C8DA0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DB0
+ b _080C8DD8
+ .align 2, 0
+_080C8DB0: .4byte 0x02019328
+_080C8DB4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DC8
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8DC8: .4byte gUnknown_02038696
+_080C8DCC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DFC
+_080C8DD8:
+ ldr r1, _080C8E00
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8E04
+ adds r1, r2
+ movs r2, 0x4
+_080C8DE4:
+ bl memcpy
+_080C8DE8:
+ ldr r1, _080C8E08
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8E16
+ .align 2, 0
+_080C8DFC: .4byte gUnknown_02038696
+_080C8E00: .4byte gUnknown_0203869B
+_080C8E04: .4byte gBlockRecvBuffer
+_080C8E08: .4byte gTasks
+_080C8E0C:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8E16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8C80
+
+ thumb_func_start sub_80C8E1C
+sub_80C8E1C: @ 80C8E1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8E4C
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8E50
+ cmp r0, 0x1
+ beq _080C8E7C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8EAE
+ .align 2, 0
+_080C8E4C: .4byte gTasks
+_080C8E50:
+ ldr r1, _080C8E78
+ movs r0, 0x64
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8E70
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C8E70:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8EAE
+ .align 2, 0
+_080C8E78: .4byte gBlockSendBuffer
+_080C8E7C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ ldr r1, _080C8EB8
+ mov r0, r8
+ adds r0, 0x12
+ adds r2, r7, r0
+ movs r4, 0x80
+ lsls r4, 1
+ movs r3, 0x3
+_080C8E94:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, r4
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C8E94
+ adds r1, r6, r5
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8EAE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8EB8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8E1C
+
+ thumb_func_start sub_80C8EBC
+sub_80C8EBC: @ 80C8EBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8EE4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8EE8
+ cmp r0, 0x1
+ beq _080C8F00
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F22
+ .align 2, 0
+_080C8EE4: .4byte gTasks
+_080C8EE8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8EFC
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8F1C
+ .align 2, 0
+_080C8EFC: .4byte gUnknown_02038670
+_080C8F00:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8F28
+ ldr r1, _080C8F2C
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8F30
+ adds r1, r2
+ movs r2, 0x8
+ bl memcpy
+_080C8F1C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8F28: .4byte gUnknown_02038670
+_080C8F2C: .4byte gUnknown_0203869B
+_080C8F30: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8EBC
+
+ thumb_func_start sub_80C8F34
+sub_80C8F34: @ 80C8F34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8F5C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8F60
+ cmp r0, 0x1
+ beq _080C8F78
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F9A
+ .align 2, 0
+_080C8F5C: .4byte gTasks
+_080C8F60:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8F74
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8F94
+ .align 2, 0
+_080C8F74: .4byte gUnknown_02038696
+_080C8F78:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8FA0
+ ldr r1, _080C8FA4
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8FA8
+ adds r1, r2
+ movs r2, 0x4
+ bl memcpy
+_080C8F94:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8FA0: .4byte gUnknown_02038696
+_080C8FA4: .4byte gUnknown_0203869B
+_080C8FA8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8F34
+
+ thumb_func_start sub_80C8FAC
+sub_80C8FAC: @ 80C8FAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8FD0
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _080C8FD8
+ ldr r1, _080C8FD4
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080C8FE6
+ .align 2, 0
+_080C8FD0: .4byte word_203855E
+_080C8FD4: .4byte gTasks
+_080C8FD8:
+ ldrh r0, [r1]
+ bl itemid_get_type
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, r4, 2
+_080C8FE6:
+ ldr r0, _080C9008
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080C900C
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r2, [r0]
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080C9010
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9008: .4byte gTasks
+_080C900C: .4byte gUnknown_083D61E4
+_080C9010: .4byte sub_80A5B00
+ thumb_func_end sub_80C8FAC
+
+ thumb_func_start unknown_ItemMenu_Confirm
+unknown_ItemMenu_Confirm: @ 80C9014
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end unknown_ItemMenu_Confirm
+
+ thumb_func_start sub_80C9038
+sub_80C9038: @ 80C9038
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9038
+
+ thumb_func_start SetUpItemUseOnFieldCallback
+SetUpItemUseOnFieldCallback: @ 80C9050
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C9078
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080C9084
+ ldr r1, _080C907C
+ ldr r0, _080C9080
+ str r0, [r1]
+ adds r0, r2, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C908E
+ .align 2, 0
+_080C9078: .4byte gTasks
+_080C907C: .4byte gUnknown_0300485C
+_080C9080: .4byte sub_80A5CC4
+_080C9084:
+ ldr r0, _080C9094
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+_080C908E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9094: .4byte gUnknown_03005D00
+ thumb_func_end SetUpItemUseOnFieldCallback
+
+ thumb_func_start sub_80C9098
+sub_80C9098: @ 80C9098
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r1, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080C90CC
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ cmp r4, 0
+ bne _080C90D4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C90D0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C90E0
+ .align 2, 0
+_080C90CC: .4byte gStringVar4
+_080C90D0: .4byte sub_80A5C48
+_080C90D4:
+ ldr r2, _080C90E8
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C90E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C90E8: .4byte sub_80A5C9C
+ thumb_func_end sub_80C9098
+
+ thumb_func_start DisplayDadsAdviceCannotUseItemMessage
+DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9100
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9100: .4byte gOtherText_DadsAdvice
+ thumb_func_end DisplayDadsAdviceCannotUseItemMessage
+
+ thumb_func_start sub_80C9104
+sub_80C9104: @ 80C9104
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9118
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9118: .4byte gOtherText_CantGetOffBike
+ thumb_func_end sub_80C9104
+
+ thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
+CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9134
+ cmp r0, r1
+ bne _080C9138
+ movs r0, 0x1
+ b _080C914E
+ .align 2, 0
+_080C9134: .4byte ItemUseOutOfBattle_TMHM
+_080C9138:
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9148
+ cmp r0, r1
+ beq _080C914C
+ movs r0, 0
+ b _080C914E
+ .align 2, 0
+_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
+_080C914C:
+ movs r0, 0x2
+_080C914E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
+
+ thumb_func_start sub_80C9154
+sub_80C9154: @ 80C9154
+ push {r4,lr}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9188
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9180
+ mov r1, sp
+ ldr r0, _080C918C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, _080C9190
+ mov r0, sp
+ movs r2, 0
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_080C9180:
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9188: .4byte gPaletteFade
+_080C918C: .4byte word_203855E
+_080C9190: .4byte sub_80A5D04
+ thumb_func_end sub_80C9154
+
+ thumb_func_start ItemUseOutOfBattle_Mail
+ItemUseOutOfBattle_Mail: @ 80C9194
+ 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, _080C91C4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C91C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C91C4: .4byte gTasks
+_080C91C8: .4byte sub_80C9154
+ thumb_func_end ItemUseOutOfBattle_Mail
+
+ thumb_func_start ItemUseOutOfBattle_Bike
+ItemUseOutOfBattle_Bike: @ 80C91CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C924C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9254
+_080C9238:
+ ldr r0, _080C9250
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl sub_80C9104
+ b _080C928E
+ .align 2, 0
+_080C924C: .4byte 0x0000082b
+_080C9250: .4byte gTasks
+_080C9254:
+ bl sub_8053C44
+ cmp r0, 0x1
+ bne _080C927C
+ bl sub_80E5EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C927C
+ ldr r1, _080C9274
+ ldr r0, _080C9278
+ str r0, [r1]
+ adds r0, r5, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C928E
+ .align 2, 0
+_080C9274: .4byte gUnknown_03005D00
+_080C9278: .4byte ItemUseOnFieldCB_Bike
+_080C927C:
+ ldr r0, _080C9298
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C928E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9298: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Bike
+
+ thumb_func_start ItemUseOnFieldCB_Bike
+ItemUseOnFieldCB_Bike: @ 80C929C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C92E0
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C92B6
+ movs r0, 0x2
+ bl GetOnOffBike
+_080C92B6:
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C92CA
+ movs r0, 0x4
+ bl GetOnOffBike
+_080C92CA:
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C92E0: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Bike
+
+ thumb_func_start CanFish
+CanFish: @ 80C92E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x10
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C933C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C936C
+_080C9338:
+ movs r0, 0x1
+ b _080C936E
+_080C933C:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C935C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9338
+_080C935C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9338
+_080C936C:
+ movs r0, 0
+_080C936E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CanFish
+
+ thumb_func_start ItemUseOutOfBattle_Rod
+ItemUseOutOfBattle_Rod: @ 80C9378
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CanFish
+ cmp r0, 0x1
+ bne _080C939C
+ ldr r1, _080C9394
+ ldr r0, _080C9398
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C93AE
+ .align 2, 0
+_080C9394: .4byte gUnknown_03005D00
+_080C9398: .4byte ItemUseOnFieldCB_Rod
+_080C939C:
+ ldr r0, _080C93B4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C93AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93B4: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Rod
+
+ thumb_func_start ItemUseOnFieldCB_Rod
+ItemUseOnFieldCB_Rod: @ 80C93B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C93DC
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ bl StartFishing
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93DC: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Rod
+
+ thumb_func_start ItemUseOutOfBattle_Itemfinder
+ItemUseOutOfBattle_Itemfinder: @ 80C93E0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x27
+ bl sav12_xor_increment
+ ldr r1, _080C9400
+ ldr r0, _080C9404
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9400: .4byte gUnknown_03005D00
+_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
+ thumb_func_end ItemUseOutOfBattle_Itemfinder
+
+ thumb_func_start ItemUseOnFieldCB_Itemfinder
+ItemUseOnFieldCB_Itemfinder: @ 80C9408
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9430
+ ldr r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl ItemfinderCheckForHiddenItems
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C943C
+ ldr r0, _080C9434
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C9438
+ str r0, [r1]
+ b _080C9448
+ .align 2, 0
+_080C9430: .4byte gMapHeader
+_080C9434: .4byte gTasks
+_080C9438: .4byte sub_80C9458
+_080C943C:
+ ldr r1, _080C9450
+ ldr r2, _080C9454
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9448:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9450: .4byte gOtherText_NoResponse
+_080C9454: .4byte sub_80C9520
+ thumb_func_end ItemUseOnFieldCB_Itemfinder
+
+ thumb_func_start sub_80C9458
+sub_80C9458: @ 80C9458
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ ldr r0, _080C94AC
+ mov r8, r0
+ adds r4, r7, r0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C950C
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _080C9500
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80C9908
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080C94B8
+ ldr r1, _080C94B0
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _080C94B4
+ str r1, [r0]
+ b _080C9516
+ .align 2, 0
+_080C94AC: .4byte gUnknown_03004B28
+_080C94B0: .4byte gUnknown_083D61F0
+_080C94B4: .4byte sub_80C99EC
+_080C94B8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ adds r3, r6, 0
+ ldr r7, _080C94F4
+ movs r6, 0x3
+_080C94C8:
+ adds r0, r1, r7
+ adds r1, 0x1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _080C94D8
+ adds r0, r1, 0
+ ands r0, r6
+ strh r0, [r4, 0xA]
+_080C94D8:
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C94C8
+ ldr r1, _080C94F8
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C94FC
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ strh r0, [r4, 0x4]
+ b _080C9516
+ .align 2, 0
+_080C94F4: .4byte gUnknown_083D61F0
+_080C94F8: .4byte gTasks
+_080C94FC: .4byte sub_80C9A38
+_080C9500:
+ movs r0, 0x48
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C950C:
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r4, 0x6]
+_080C9516:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9458
+
+ thumb_func_start sub_80C9520
+sub_80C9520: @ 80C9520
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9520
+
+ thumb_func_start ItemfinderCheckForHiddenItems
+ItemfinderCheckForHiddenItems: @ 80C9548
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ ldr r1, _080C9618
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r3, 0
+ mov r9, r4
+ ldrb r0, [r5, 0x3]
+ cmp r3, r0
+ bge _080C95FC
+ subs r1, 0x5
+ mov r8, r1
+_080C9580:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r5, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r1, r4, r2
+ ldrb r0, [r1, 0x5]
+ adds r7, r3, 0
+ cmp r0, 0x7
+ bne _080C95EC
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C95EC
+ ldr r1, [r5, 0x10]
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ adds r2, 0x7
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r2, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ mov r3, r9
+ ldrh r1, [r3]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r2, r3
+ lsrs r2, 16
+ cmp r2, 0xE
+ bhi _080C95EC
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, r8
+ blt _080C95EC
+ cmp r2, 0x5
+ bgt _080C95EC
+ adds r0, r6, 0
+ bl sub_80C9838
+_080C95EC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r2, [r5, 0x3]
+ cmp r0, r2
+ blt _080C9580
+_080C95FC:
+ adds r0, r6, 0
+ bl sub_80C9720
+ ldr r0, _080C9618
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C961C
+ movs r0, 0
+ b _080C961E
+ .align 2, 0
+_080C9618: .4byte gTasks
+_080C961C:
+ movs r0, 0x1
+_080C961E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ItemfinderCheckForHiddenItems
+
+ thumb_func_start sub_80C962C
+sub_80C962C: @ 80C962C
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldrb r2, [r0, 0x3]
+ ldr r5, [r0, 0x10]
+ movs r1, 0
+ cmp r1, r2
+ bge _080C9680
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ adds r3, r5, 0
+_080C964A:
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0x7
+ bne _080C9678
+ ldrh r0, [r3]
+ cmp r6, r0
+ bne _080C9678
+ ldrh r0, [r3, 0x2]
+ cmp r4, r0
+ bne _080C9678
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r3, [r3, 0xA]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9680
+ movs r0, 0x1
+ b _080C9682
+_080C9678:
+ adds r3, 0xC
+ adds r1, 0x1
+ cmp r1, r2
+ blt _080C964A
+_080C9680:
+ movs r0, 0
+_080C9682:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C962C
+
+ thumb_func_start sub_80C9688
+sub_80C9688: @ 80C9688
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl mapconnection_get_mapheader
+ adds r3, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080C96B0
+ cmp r0, 0x2
+ bgt _080C96A6
+ cmp r0, 0x1
+ beq _080C96C4
+ b _080C9704
+_080C96A6:
+ cmp r0, 0x3
+ beq _080C96DC
+ cmp r0, 0x4
+ beq _080C96E6
+ b _080C9704
+_080C96B0:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ subs r0, 0x7
+ adds r0, r6
+ b _080C96FA
+_080C96C4:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080C96D8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ b _080C96F6
+ .align 2, 0
+_080C96D8: .4byte gMapHeader
+_080C96DC:
+ ldr r0, [r3]
+ ldr r0, [r0]
+ subs r0, 0x7
+ adds r0, r5
+ b _080C96F0
+_080C96E6:
+ ldr r0, _080C9700
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x7
+ subs r0, r5, r0
+_080C96F0:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r4, 0x4]
+_080C96F6:
+ adds r0, 0x7
+ subs r0, r6, r0
+_080C96FA:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9708
+ .align 2, 0
+_080C9700: .4byte gMapHeader
+_080C9704:
+ movs r0, 0
+ b _080C971A
+_080C9708:
+ ldr r0, [r3, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ bl sub_80C962C
+ lsls r0, 24
+ lsrs r0, 24
+_080C971A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9688
+
+ thumb_func_start sub_80C9720
+sub_80C9720: @ 80C9720
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080C9834
+ ldr r1, [r0]
+ ldr r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ adds r1, 0x7
+ cmp r0, r1
+ bgt _080C9824
+_080C976E:
+ mov r5, sp
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ adds r0, 0x5
+ lsls r3, 16
+ mov r8, r3
+ cmp r1, r0
+ bgt _080C980E
+ movs r0, 0x7
+ str r0, [sp, 0x10]
+ mov r1, r8
+ asrs r1, 16
+ mov r9, r1
+ mov r10, r0
+_080C9796:
+ ldr r3, [sp, 0x10]
+ cmp r3, r9
+ bgt _080C97B8
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r9, r0
+ bge _080C97B8
+ asrs r1, r2, 16
+ cmp r10, r1
+ bgt _080C97B8
+ ldr r6, [sp, 0xC]
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r7, r4, 16
+ cmp r1, r0
+ blt _080C97F6
+_080C97B8:
+ mov r0, r8
+ asrs r5, r0, 16
+ lsls r4, 16
+ asrs r6, r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8056BA0
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080C97F6
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80C9688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C97F6
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r5, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, r6, r2
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, [sp, 0x4]
+ bl sub_80C9838
+_080C97F6:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ mov r3, sp
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ adds r0, 0x5
+ cmp r1, r0
+ ble _080C9796
+_080C980E:
+ movs r1, 0x80
+ lsls r1, 9
+ add r1, r8
+ lsrs r3, r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ adds r0, 0x7
+ cmp r1, r0
+ ble _080C976E
+_080C9824:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9834: .4byte gMapHeader
+ thumb_func_end sub_80C9720
+
+ thumb_func_start sub_80C9838
+sub_80C9838: @ 80C9838
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r12, r2
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C986C
+ adds r3, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C9870
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+ movs r0, 0x1
+ strh r0, [r3, 0x4]
+ b _080C98FA
+ .align 2, 0
+_080C986C: .4byte gUnknown_03004B28
+_080C9870:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080C9880
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C9882
+_080C9880:
+ ldrh r4, [r3]
+_080C9882:
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ ldrh r1, [r3, 0x2]
+ mov r9, r1
+ cmp r0, 0
+ bge _080C9896
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9898
+_080C9896:
+ ldrh r2, [r3, 0x2]
+_080C9898:
+ lsls r1, r7, 16
+ asrs r0, r1, 16
+ cmp r0, 0
+ bge _080C98A8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080C98AA
+_080C98A8:
+ lsrs r6, r1, 16
+_080C98AA:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r8, r0
+ cmp r1, 0
+ bge _080C98BC
+ negs r0, r1
+ lsls r0, 16
+ b _080C98BE
+_080C98BC:
+ mov r0, r8
+_080C98BE:
+ lsrs r5, r0, 16
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r2, r1, 16
+ adds r4, r0, r2
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r4, r0
+ ble _080C98E0
+ strh r7, [r3]
+ mov r1, r12
+ strh r1, [r3, 0x2]
+ b _080C98FA
+_080C98E0:
+ cmp r4, r0
+ bne _080C98FA
+ cmp r2, r1
+ bgt _080C98F4
+ cmp r2, r1
+ bne _080C98FA
+ mov r1, r9
+ lsls r0, r1, 16
+ cmp r0, r8
+ bge _080C98FA
+_080C98F4:
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+_080C98FA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9838
+
+ thumb_func_start sub_80C9908
+sub_80C9908: @ 80C9908
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bne _080C991A
+ cmp r1, 0
+ beq _080C9974
+_080C991A:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ adds r5, r0, 0
+ cmp r2, 0
+ bge _080C992C
+ negs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C992E
+_080C992C:
+ lsrs r4, r5, 16
+_080C992E:
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ adds r1, r0, 0
+ cmp r2, 0
+ bge _080C9940
+ negs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080C9942
+_080C9940:
+ lsrs r3, r1, 16
+_080C9942:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C995A
+ cmp r5, 0
+ bge _080C9956
+ movs r0, 0x4
+ b _080C9976
+_080C9956:
+ movs r0, 0x2
+ b _080C9976
+_080C995A:
+ cmp r2, r0
+ bge _080C9964
+ cmp r1, 0
+ blt _080C996C
+ b _080C9970
+_080C9964:
+ cmp r2, r0
+ bne _080C9974
+ cmp r1, 0
+ bge _080C9970
+_080C996C:
+ movs r0, 0x1
+ b _080C9976
+_080C9970:
+ movs r0, 0x3
+ b _080C9976
+_080C9974:
+ movs r0, 0
+_080C9976:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9908
+
+ thumb_func_start sub_80C997C
+sub_80C997C: @ 80C997C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080C99E8
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FieldObjectClearAnim
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl npc_sync_anim_pause_bits
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C99E8: .4byte gMapObjects
+ thumb_func_end sub_80C997C
+
+ thumb_func_start sub_80C99EC
+sub_80C99EC: @ 80C99EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9A2C
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9A24
+ ldr r1, _080C9A30
+ ldr r2, _080C9A34
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9A24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9A2C: .4byte gMapObjects
+_080C9A30: .4byte gOtherText_ItemfinderResponding
+_080C9A34: .4byte sub_80C9520
+ thumb_func_end sub_80C99EC
+
+ thumb_func_start sub_80C9A38
+sub_80C9A38: @ 80C9A38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C9AB4
+ adds r4, r0, r1
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9AB8
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9A78
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C9AAE
+_080C9A78:
+ ldr r1, _080C9ABC
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080C9AAE
+ ldr r1, _080C9AC0
+ ldr r2, _080C9AC4
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9AAE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9AB4: .4byte gUnknown_03004B28
+_080C9AB8: .4byte gMapObjects
+_080C9ABC: .4byte gUnknown_083D61F0
+_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
+_080C9AC4: .4byte sub_80C9520
+ thumb_func_end sub_80C9A38
+
+ thumb_func_start ItemUseOutOfBattle_PokeblockCase
+ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9AF4
+ ldr r0, _080C9AF0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+ b _080C9B2A
+ .align 2, 0
+_080C9AF0: .4byte gTasks
+_080C9AF4:
+ ldr r0, _080C9B14
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080C9B18
+ movs r0, 0
+ bl sub_810BA7C
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C9B2A
+ .align 2, 0
+_080C9B14: .4byte gTasks
+_080C9B18:
+ ldr r1, _080C9B30
+ ldr r0, _080C9B34
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_810BA7C
+ adds r0, r5, 0
+ bl sub_80C9038
+_080C9B2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9B30: .4byte gUnknown_0300485C
+_080C9B34: .4byte sub_8080E28
+ thumb_func_end ItemUseOutOfBattle_PokeblockCase
+
+ thumb_func_start ItemUseOutOfBattle_CoinCase
+ItemUseOutOfBattle_CoinCase: @ 80C9B38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C9B8C
+ bl GetCoins
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080C9B90
+ ldr r1, _080C9B94
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, _080C9B98
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9BA0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C9B9C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9BAC
+ .align 2, 0
+_080C9B8C: .4byte gStringVar1
+_080C9B90: .4byte gStringVar4
+_080C9B94: .4byte gOtherText_Coins3
+_080C9B98: .4byte gTasks
+_080C9B9C: .4byte sub_80A5C48
+_080C9BA0:
+ ldr r2, _080C9BB4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9BAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BB4: .4byte sub_80A5C9C
+ thumb_func_end ItemUseOutOfBattle_CoinCase
+
+ thumb_func_start sub_80C9BB8
+sub_80C9BB8: @ 80C9BB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BD4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BD0
+ adds r0, r2, 0
+ bl sub_80A5C48
+_080C9BD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BD4: .4byte gMain
+ thumb_func_end sub_80C9BB8
+
+ thumb_func_start sub_80C9BD8
+sub_80C9BD8: @ 80C9BD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BF4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BF0
+ adds r0, r2, 0
+ bl sub_80A5C9C
+_080C9BF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BF4: .4byte gMain
+ thumb_func_end sub_80C9BD8
+
+ thumb_func_start unref_sub_80C9BF8
+unref_sub_80C9BF8: @ 80C9BF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C9C3C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9C4C
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080C9C40
+ ldr r0, _080C9C44
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9C68
+ .align 2, 0
+_080C9C3C: .4byte gTasks
+_080C9C40: .4byte gUnknown_083D61DC
+_080C9C44: .4byte word_203855E
+_080C9C48: .4byte sub_80C9BB8
+_080C9C4C:
+ ldr r4, _080C9C70
+ ldr r0, _080C9C74
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C78
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9C68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9C70: .4byte gUnknown_083D61DC
+_080C9C74: .4byte word_203855E
+_080C9C78: .4byte sub_80C9BD8
+ thumb_func_end unref_sub_80C9BF8
+
+ thumb_func_start sub_80C9C7C
+sub_80C9C7C: @ 80C9C7C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsPlayerFacingPlantedBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9CE4
+ ldr r1, _080C9CC8
+ ldr r0, _080C9CCC
+ str r0, [r1]
+ ldr r1, _080C9CD0
+ ldr r0, _080C9CD4
+ str r0, [r1]
+ ldr r1, _080C9CD8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080C9CDC
+ lsrs r1, r2, 16
+ movs r3, 0
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080C9CE0
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080C9CF4
+ .align 2, 0
+_080C9CC8: .4byte gUnknown_03005D00
+_080C9CCC: .4byte sub_80C9D00
+_080C9CD0: .4byte gUnknown_0300485C
+_080C9CD4: .4byte sub_80A5CC4
+_080C9CD8: .4byte gTasks
+_080C9CDC: .4byte c2_exit_to_overworld_2_switch
+_080C9CE0: .4byte sub_80A5B00
+_080C9CE4:
+ ldr r0, _080C9CFC
+ ldrh r0, [r0]
+ bl itemid_get_overworld_function
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+_080C9CF4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9CFC: .4byte word_203855E
+ thumb_func_end sub_80C9C7C
+
+ thumb_func_start sub_80C9D00
+sub_80C9D00: @ 80C9D00
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C9D28
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D2C
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D28: .4byte word_203855E
+_080C9D2C: .4byte gUnknown_081A1654
+ thumb_func_end sub_80C9D00
+
+ thumb_func_start ItemUseOutOfBattle_WailmerPail
+ItemUseOutOfBattle_WailmerPail: @ 80C9D30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl WaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9D58
+ ldr r1, _080C9D50
+ ldr r0, _080C9D54
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C9D6A
+ .align 2, 0
+_080C9D50: .4byte gUnknown_03005D00
+_080C9D54: .4byte sub_80C9D74
+_080C9D58:
+ ldr r0, _080C9D70
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C9D6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D70: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_WailmerPail
+
+ thumb_func_start sub_80C9D74
+sub_80C9D74: @ 80C9D74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D94
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D94: .4byte gUnknown_081A168F
+ thumb_func_end sub_80C9D74
+
+ thumb_func_start sub_80C9D98
+sub_80C9D98: @ 80C9D98
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DAC
+ movs r1, 0
+ strb r1, [r2]
+ bl unknown_ItemMenu_Confirm
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DAC: .4byte gUnknown_02038561
+ thumb_func_end sub_80C9D98
+
+ thumb_func_start ItemUseOutOfBattle_Medicine
+ItemUseOutOfBattle_Medicine: @ 80C9DB0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DC4
+ ldr r1, _080C9DC8
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DC4: .4byte gUnknown_03004AE4
+_080C9DC8: .4byte sub_806FE2C
+ thumb_func_end ItemUseOutOfBattle_Medicine
+
+ thumb_func_start ItemUseOutOfBattle_SacredAsh
+ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080C9DDC
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ b _080C9DE6
+ .align 2, 0
+_080C9DDC: .4byte gUnknown_03005CE0
+_080C9DE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C9DE6:
+ cmp r5, 0x5
+ bhi _080C9E10
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C9E28
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C9DE0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C9DE0
+ ldr r0, _080C9E2C
+ strb r5, [r0]
+_080C9E10:
+ ldr r1, _080C9E30
+ ldr r0, _080C9E34
+ str r0, [r1]
+ ldr r1, _080C9E38
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E28: .4byte gPlayerParty
+_080C9E2C: .4byte gUnknown_03005CE0
+_080C9E30: .4byte gUnknown_03004AE4
+_080C9E34: .4byte sub_8070048
+_080C9E38: .4byte gUnknown_02038561
+ thumb_func_end ItemUseOutOfBattle_SacredAsh
+
+ thumb_func_start ItemUseOutOfBattle_PPRecovery
+ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E50
+ ldr r1, _080C9E54
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E50: .4byte gUnknown_03004AE4
+_080C9E54: .4byte dp05_ether
+ thumb_func_end ItemUseOutOfBattle_PPRecovery
+
+ thumb_func_start ItemUseOutOfBattle_PPUp
+ItemUseOutOfBattle_PPUp: @ 80C9E58
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E6C
+ ldr r1, _080C9E70
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E6C: .4byte gUnknown_03004AE4
+_080C9E70: .4byte dp05_pp_up
+ thumb_func_end ItemUseOutOfBattle_PPUp
+
+ thumb_func_start ItemUseOutOfBattle_RareCandy
+ItemUseOutOfBattle_RareCandy: @ 80C9E74
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E88
+ ldr r1, _080C9E8C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E88: .4byte gUnknown_03004AE4
+_080C9E8C: .4byte sub_8070680
+ thumb_func_end ItemUseOutOfBattle_RareCandy
+
+ thumb_func_start ItemUseOutOfBattle_TMHM
+ItemUseOutOfBattle_TMHM: @ 80C9E90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080C9EBC
+ ldrh r1, [r0]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bls _080C9EC8
+ ldr r1, _080C9EC0
+ ldr r2, _080C9EC4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9ED4
+ .align 2, 0
+_080C9EBC: .4byte word_203855E
+_080C9EC0: .4byte gOtherText_BootedHM
+_080C9EC4: .4byte sub_80C9EE4
+_080C9EC8:
+ ldr r1, _080C9EDC
+ ldr r2, _080C9EE0
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9ED4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9EDC: .4byte gOtherText_BootedTM
+_080C9EE0: .4byte sub_80C9EE4
+ thumb_func_end ItemUseOutOfBattle_TMHM
+
+ thumb_func_start sub_80C9EE4
+sub_80C9EE4: @ 80C9EE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ bl PlaySE
+ ldr r1, _080C9F08
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C9F0C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F08: .4byte gTasks
+_080C9F0C: .4byte sub_80C9F10
+ thumb_func_end sub_80C9EE4
+
+ thumb_func_start sub_80C9F10
+sub_80C9F10: @ 80C9F10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C9F64
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9F2A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9F5C
+_080C9F2A:
+ ldr r4, _080C9F68
+ ldr r0, _080C9F6C
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080C9F70
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _080C9F74
+ ldr r1, _080C9F78
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080C9F7C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F64: .4byte gMain
+_080C9F68: .4byte gStringVar1
+_080C9F6C: .4byte word_203855E
+_080C9F70: .4byte gMoveNames
+_080C9F74: .4byte gStringVar4
+_080C9F78: .4byte gOtherText_ContainsMove
+_080C9F7C: .4byte sub_80C9F80
+ thumb_func_end sub_80C9F10
+
+ thumb_func_start sub_80C9F80
+sub_80C9F80: @ 80C9F80
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _080C9FB8
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A3FA0
+ ldr r1, _080C9FBC
+ adds r0, r4, 0
+ bl sub_80F914C
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FBC: .4byte gUnknown_083D61F4
+ thumb_func_end sub_80C9F80
+
+ thumb_func_start sub_80C9FC0
+sub_80C9FC0: @ 80C9FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9FD4
+ ldr r1, _080C9FD8
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FD4: .4byte gUnknown_03004AE4
+_080C9FD8: .4byte sub_806F06C
+ thumb_func_end sub_80C9FC0
+
+ thumb_func_start sub_80C9FDC
+sub_80C9FDC: @ 80C9FDC
+ push {r4,lr}
+ ldr r4, _080CA004
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl sub_80A3E0C
+ ldrh r0, [r4]
+ ldr r1, _080CA008
+ bl itemid_copy_name
+ ldr r0, _080CA00C
+ ldr r1, _080CA010
+ bl StringExpandPlaceholders
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA004: .4byte word_203855E
+_080CA008: .4byte gStringVar2
+_080CA00C: .4byte gStringVar4
+_080CA010: .4byte gOtherText_UsedItem
+ thumb_func_end sub_80C9FDC
+
+ thumb_func_start ItemUseOutOfBattle_Repel
+ItemUseOutOfBattle_Repel: @ 80CA014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080CA050
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CA060
+ ldr r0, _080CA054
+ ldrh r0, [r0]
+ bl itemid_get_quality
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl VarSet
+ bl sub_80C9FDC
+ ldr r1, _080CA058
+ ldr r2, _080CA05C
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA06C
+ .align 2, 0
+_080CA050: .4byte 0x00004021
+_080CA054: .4byte word_203855E
+_080CA058: .4byte gStringVar4
+_080CA05C: .4byte sub_80A5C48
+_080CA060:
+ ldr r1, _080CA074
+ ldr r2, _080CA078
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA074: .4byte gOtherText_RepelLingers
+_080CA078: .4byte sub_80A5C48
+ thumb_func_end ItemUseOutOfBattle_Repel
+
+ thumb_func_start sub_80CA07C
+sub_80CA07C: @ 80CA07C
+ push {lr}
+ bl sub_80A3E0C
+ ldr r0, _080CA090
+ ldrh r0, [r0]
+ ldr r1, _080CA094
+ bl itemid_copy_name
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA090: .4byte word_203855E
+_080CA094: .4byte gStringVar2
+ thumb_func_end sub_80CA07C
+
+ thumb_func_start sub_80CA098
+sub_80CA098: @ 80CA098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA0D0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA0C8
+ movs r0, 0x75
+ bl PlaySE
+ ldr r1, _080CA0D4
+ ldr r2, _080CA0D8
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA0C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA0D0: .4byte gTasks
+_080CA0D4: .4byte gStringVar4
+_080CA0D8: .4byte sub_80A5C48
+ thumb_func_end sub_80CA098
+
+ thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
+ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080CA10C
+ ldrh r0, [r0]
+ cmp r0, 0x2B
+ bne _080CA124
+ ldr r0, _080CA110
+ bl FlagSet
+ ldr r0, _080CA114
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA118
+ ldr r1, _080CA11C
+ bl StringExpandPlaceholders
+ ldr r1, _080CA120
+ lsls r0, r4, 2
+ adds r0, r4
+ b _080CA146
+ .align 2, 0
+_080CA10C: .4byte word_203855E
+_080CA110: .4byte 0x0000084d
+_080CA114: .4byte 0x0000084e
+_080CA118: .4byte gStringVar4
+_080CA11C: .4byte gOtherText_UsedFlute
+_080CA120: .4byte gTasks
+_080CA124:
+ cmp r0, 0x2A
+ bne _080CA152
+ ldr r0, _080CA158
+ bl FlagSet
+ ldr r0, _080CA15C
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA160
+ ldr r1, _080CA164
+ bl StringExpandPlaceholders
+ ldr r1, _080CA168
+ lsls r0, r5, 2
+ adds r0, r5
+_080CA146:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CA16C
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080CA152:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA158: .4byte 0x0000084e
+_080CA15C: .4byte 0x0000084d
+_080CA160: .4byte gStringVar4
+_080CA164: .4byte gOtherText_UsedRepel
+_080CA168: .4byte gTasks
+_080CA16C: .4byte sub_80CA098
+ thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
+
+ thumb_func_start task08_080A1C44
+task08_080A1C44: @ 80CA170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl player_avatar_init_params_reset
+ bl sub_80878A8
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task08_080A1C44
+
+ thumb_func_start sub_80CA18C
+sub_80CA18C: @ 80CA18C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8053014
+ bl sub_80C9FDC
+ ldr r1, _080CA1BC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080CA1C0
+ ldr r2, _080CA1C4
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA1BC: .4byte gTasks
+_080CA1C0: .4byte gStringVar4
+_080CA1C4: .4byte task08_080A1C44
+ thumb_func_end sub_80CA18C
+
+ thumb_func_start sub_80CA1C8
+sub_80CA1C8: @ 80CA1C8
+ push {lr}
+ ldr r0, _080CA1D8
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _080CA1DC
+ movs r0, 0
+ b _080CA1DE
+ .align 2, 0
+_080CA1D8: .4byte gMapHeader
+_080CA1DC:
+ movs r0, 0x1
+_080CA1DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CA1C8
+
+ thumb_func_start ItemUseOutOfBattle_EscapeRope
+ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80CA1C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CA20C
+ ldr r1, _080CA204
+ ldr r0, _080CA208
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080CA21E
+ .align 2, 0
+_080CA204: .4byte gUnknown_03005D00
+_080CA208: .4byte sub_80CA18C
+_080CA20C:
+ ldr r0, _080CA224
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA21E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA224: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EscapeRope
+
+ thumb_func_start ItemUseOutOfBattle_EvolutionStone
+ItemUseOutOfBattle_EvolutionStone: @ 80CA228
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA23C
+ ldr r1, _080CA240
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA23C: .4byte gUnknown_03004AE4
+_080CA240: .4byte sub_8070DBC
+ thumb_func_end ItemUseOutOfBattle_EvolutionStone
+
+ thumb_func_start ItemUseInBattle_PokeBall
+ItemUseInBattle_PokeBall: @ 80CA244
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA26C
+ ldr r0, _080CA268
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r4, 0
+ bl sub_80A7094
+ b _080CA284
+ .align 2, 0
+_080CA268: .4byte word_203855E
+_080CA26C:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r1, _080CA28C
+ ldr r2, _080CA290
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA284:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA28C: .4byte gOtherText_BoxIsFull
+_080CA290: .4byte sub_80A5C48
+ thumb_func_end ItemUseInBattle_PokeBall
+
+ thumb_func_start sub_80CA294
+sub_80CA294: @ 80CA294
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CA2B8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA2AE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CA2B4
+_080CA2AE:
+ adds r0, r2, 0
+ bl sub_80A7094
+_080CA2B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA2B8: .4byte gMain
+ thumb_func_end sub_80CA294
+
+ thumb_func_start sub_80CA2BC
+sub_80CA2BC: @ 80CA2BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080CA304
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA2FC
+ movs r0, 0x1
+ bl PlaySE
+ ldr r4, _080CA308
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldrh r0, [r4]
+ bl sub_803F378
+ adds r1, r0, 0
+ ldr r2, _080CA30C
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA2FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA304: .4byte gTasks
+_080CA308: .4byte word_203855E
+_080CA30C: .4byte sub_80CA294
+ thumb_func_end sub_80CA2BC
+
+ thumb_func_start ItemUseInBattle_StatIncrease
+ItemUseInBattle_StatIncrease: @ 80CA310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CA35C
+ ldr r0, _080CA360
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080CA364
+ adds r0, r1
+ ldr r1, _080CA368
+ ldrh r1, [r1]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r2, r4, 0
+ movs r3, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080CA374
+ ldr r1, _080CA36C
+ ldr r2, _080CA370
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA384
+ .align 2, 0
+_080CA35C: .4byte gUnknown_02024A6A
+_080CA360: .4byte gUnknown_02024E6C
+_080CA364: .4byte gPlayerParty
+_080CA368: .4byte word_203855E
+_080CA36C: .4byte gOtherText_WontHaveAnyEffect
+_080CA370: .4byte sub_80A5C48
+_080CA374:
+ ldr r0, _080CA38C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080CA390
+ str r0, [r1]
+ strh r2, [r1, 0x26]
+_080CA384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA38C: .4byte gTasks
+_080CA390: .4byte sub_80CA2BC
+ thumb_func_end ItemUseInBattle_StatIncrease
+
+ thumb_func_start sub_80CA394
+sub_80CA394: @ 80CA394
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA3BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA3B4
+ bl sub_8094E4C
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080CA3B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3BC: .4byte gPaletteFade
+ thumb_func_end sub_80CA394
+
+ thumb_func_start sub_80CA3C0
+sub_80CA3C0: @ 80CA3C0
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA3EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080CA3F0
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3EC: .4byte gTasks
+_080CA3F0: .4byte sub_80CA394
+ thumb_func_end sub_80CA3C0
+
+ thumb_func_start ItemUseInBattle_Medicine
+ItemUseInBattle_Medicine: @ 80CA3F4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA408
+ ldr r1, _080CA40C
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA408: .4byte gUnknown_03004AE4
+_080CA40C: .4byte sub_806FE2C
+ thumb_func_end ItemUseInBattle_Medicine
+
+ thumb_func_start unref_sub_80CA410
+unref_sub_80CA410: @ 80CA410
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA424
+ ldr r1, _080CA428
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA424: .4byte gUnknown_03004AE4
+_080CA428: .4byte sub_8070048
+ thumb_func_end unref_sub_80CA410
+
+ thumb_func_start ItemUseInBattle_PPRecovery
+ItemUseInBattle_PPRecovery: @ 80CA42C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA440
+ ldr r1, _080CA444
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA440: .4byte gUnknown_03004AE4
+_080CA444: .4byte dp05_ether
+ thumb_func_end ItemUseInBattle_PPRecovery
+
+ thumb_func_start unref_sub_80CA448
+unref_sub_80CA448: @ 80CA448
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080CA494
+ ldrh r1, [r4]
+ movs r0, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA4AC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, _080CA498
+ ldr r1, _080CA49C
+ bl GetMonNickname
+ ldr r4, _080CA4A0
+ ldr r1, _080CA4A4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080CA4A8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA4B8
+ .align 2, 0
+_080CA494: .4byte word_203855E
+_080CA498: .4byte gPlayerParty
+_080CA49C: .4byte gStringVar1
+_080CA4A0: .4byte gStringVar4
+_080CA4A4: .4byte gOtherText_SnapConfusion
+_080CA4A8: .4byte sub_80A7094
+_080CA4AC:
+ ldr r1, _080CA4C0
+ ldr r2, _080CA4C4
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA4B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
+_080CA4C4: .4byte sub_80A5C48
+ thumb_func_end unref_sub_80CA448
+
+ thumb_func_start ItemUseInBattle_Escape
+ItemUseInBattle_Escape: @ 80CA4C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080CA4F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA504
+ bl sub_80C9FDC
+ ldr r1, _080CA4FC
+ ldr r2, _080CA500
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA516
+ .align 2, 0
+_080CA4F8: .4byte gUnknown_020239F8
+_080CA4FC: .4byte gStringVar4
+_080CA500: .4byte sub_80A7094
+_080CA504:
+ ldr r0, _080CA51C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA51C: .4byte gTasks
+ thumb_func_end ItemUseInBattle_Escape
+
+ thumb_func_start ItemUseOutOfBattle_EnigmaBerry
+ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA544
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x14
+ bls _080CA53A
+ b _080CA62C
+_080CA53A:
+ lsls r0, 2
+ ldr r1, _080CA548
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA544: .4byte word_203855E
+_080CA548: .4byte _080CA54C
+ .align 2, 0
+_080CA54C:
+ .4byte _080CA5D8
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA62C
+ .4byte _080CA5BC
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA5F4
+ .4byte _080CA5F4
+ .4byte _080CA610
+_080CA5A0:
+ ldr r0, _080CA5B8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_Medicine
+ b _080CA640
+ .align 2, 0
+_080CA5B8: .4byte gTasks
+_080CA5BC:
+ ldr r0, _080CA5D4
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_SacredAsh
+ b _080CA640
+ .align 2, 0
+_080CA5D4: .4byte gTasks
+_080CA5D8:
+ ldr r0, _080CA5F0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_RareCandy
+ b _080CA640
+ .align 2, 0
+_080CA5F0: .4byte gTasks
+_080CA5F4:
+ ldr r0, _080CA60C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPUp
+ b _080CA640
+ .align 2, 0
+_080CA60C: .4byte gTasks
+_080CA610:
+ ldr r0, _080CA628
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPRecovery
+ b _080CA640
+ .align 2, 0
+_080CA628: .4byte gTasks
+_080CA62C:
+ ldr r0, _080CA648
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x4
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA640:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA648: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EnigmaBerry
+
+ thumb_func_start ItemUseInBattle_EnigmaBerry
+ItemUseInBattle_EnigmaBerry: @ 80CA64C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA66C
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x15
+ bhi _080CA6E4
+ lsls r0, 2
+ ldr r1, _080CA670
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA66C: .4byte word_203855E
+_080CA670: .4byte _080CA674
+ .align 2, 0
+_080CA674:
+ .4byte _080CA6CC
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6DC
+_080CA6CC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_StatIncrease
+ b _080CA6EA
+_080CA6D4:
+ adds r0, r4, 0
+ bl ItemUseInBattle_Medicine
+ b _080CA6EA
+_080CA6DC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_PPRecovery
+ b _080CA6EA
+_080CA6E4:
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA6EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemUseInBattle_EnigmaBerry
+
+ thumb_func_start ItemUseOutOfBattle_CannotUse
+ItemUseOutOfBattle_CannotUse: @ 80CA6F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA70C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0xC]
+ bl DisplayDadsAdviceCannotUseItemMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA70C: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_CannotUse
+
+ thumb_func_start sub_80CA710
+sub_80CA710: @ 80CA710
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CA744
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CA748
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA74C
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080CA74E
+ .align 2, 0
+_080CA744: .4byte gUnknown_03004B00
+_080CA748: .4byte gUnknown_0202F7C8
+_080CA74C:
+ ldrh r0, [r5, 0x8]
+_080CA74E:
+ strh r0, [r4, 0x34]
+ ldr r0, _080CA760
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA764
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA760: .4byte gUnknown_03004B00
+_080CA764: .4byte sub_80CA768
+ thumb_func_end sub_80CA710
+
+ thumb_func_start sub_80CA768
+sub_80CA768: @ 80CA768
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CA7A4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CA7AA
+_080CA7A4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CA7AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA768
+
+ thumb_func_start sub_80CA7B0
+sub_80CA7B0: @ 80CA7B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CA7F0
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA7F4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA7F8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA7FC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA7F0: .4byte gUnknown_03004B00
+_080CA7F4: .4byte gUnknown_0202F7C8
+_080CA7F8: .4byte sub_8078B34
+_080CA7FC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80CA7B0
+
+ thumb_func_start sub_80CA800
+sub_80CA800: @ 80CA800
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CA848
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA84C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA850
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA854
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA848: .4byte gUnknown_03004B00
+_080CA84C: .4byte gUnknown_0202F7C9
+_080CA850: .4byte sub_8078B34
+_080CA854: .4byte move_anim_8072740
+ thumb_func_end sub_80CA800
+
+ thumb_func_start sub_80CA858
+sub_80CA858: @ 80CA858
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080CA8A8
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080CA8AC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, _080CA8B0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA8A8: .4byte gUnknown_03004B00
+_080CA8AC: .4byte gUnknown_0202F7C9
+_080CA8B0: .4byte sub_80CA8B4
+ thumb_func_end sub_80CA858
+
+ thumb_func_start sub_80CA8B4
+sub_80CA8B4: @ 80CA8B4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA8CA
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080CA91E
+_080CA8CA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080CA8E4
+ ldr r0, _080CA8E0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+ b _080CA8EE
+ .align 2, 0
+_080CA8E0: .4byte gUnknown_0202F7C9
+_080CA8E4:
+ ldr r0, _080CA924
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x6
+_080CA8EE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xF
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CA91E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA924: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA8B4
+
+ thumb_func_start sub_80CA928
+sub_80CA928: @ 80CA928
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CA998
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ movs r2, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CA982
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, _080CA99C
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, _080CA9A0
+ ldr r0, _080CA9A4
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl CreateSpriteAndAnimate
+_080CA982:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080CA990
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CA990:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA998: .4byte gTasks
+_080CA99C: .4byte gUnknown_03004B00
+_080CA9A0: .4byte gSpriteTemplate_83D631C
+_080CA9A4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA928
+
+ thumb_func_start sub_80CA9A8
+sub_80CA9A8: @ 80CA9A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r6, _080CA9EC
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA9F0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080CA9F4
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA9EC: .4byte gUnknown_03004B00
+_080CA9F0: .4byte gUnknown_0202F7C8
+_080CA9F4: .4byte sub_80CA9F8
+ thumb_func_end sub_80CA9A8
+
+ thumb_func_start sub_80CA9F8
+sub_80CA9F8: @ 80CA9F8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA0C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAA0C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA9F8
+
+ thumb_func_start sub_80CAA14
+sub_80CAA14: @ 80CAA14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, _080CAA5C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA60
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080CAA64
+ .align 2, 0
+_080CAA5C: .4byte gUnknown_0202F7C8
+_080CAA60:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080CAA64:
+ strh r0, [r5, 0x20]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ adds r0, 0x40
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CAAC4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x38]
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3A]
+ ldr r1, _080CAAC8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAAC4: .4byte gUnknown_0202F7C9
+_080CAAC8: .4byte sub_80CAACC
+ thumb_func_end sub_80CAA14
+
+ thumb_func_start sub_80CAACC
+sub_80CAACC: @ 80CAACC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAAE2
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080CAB12
+_080CAAE2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7E
+ bgt _080CAAFE
+ ldrh r0, [r4, 0x3A]
+ b _080CAB02
+_080CAAFE:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080CAB02:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x18
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CAB12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAACC
+
+ thumb_func_start sub_80CAB18
+sub_80CAB18: @ 80CAB18
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CAB78
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAB38
+ ldr r1, _080CAB7C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAB38:
+ ldr r4, _080CAB7C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080CAB80
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080CAB84
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAB78: .4byte gUnknown_0202F7C8
+_080CAB7C: .4byte gUnknown_03004B00
+_080CAB80: .4byte gUnknown_0202F7C9
+_080CAB84: .4byte sub_80CAB88
+ thumb_func_end sub_80CAB18
+
+ thumb_func_start sub_80CAB88
+sub_80CAB88: @ 80CAB88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CABB2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABB8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABBC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080CABB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABB8: .4byte sub_80782D8
+_080CABBC: .4byte sub_80CABC0
+ thumb_func_end sub_80CAB88
+
+ thumb_func_start sub_80CABC0
+sub_80CABC0: @ 80CABC0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABF0
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABF4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABF0: .4byte sub_80782D8
+_080CABF4: .4byte move_anim_8072740
+ thumb_func_end sub_80CABC0
+
+ thumb_func_start sub_80CABF8
+sub_80CABF8: @ 80CABF8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080CAC3C
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080CAC22
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080CAC22:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, _080CAC40
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAC3C: .4byte gUnknown_03004B00
+_080CAC40: .4byte sub_80CAC44
+ thumb_func_end sub_80CABF8
+
+ thumb_func_start sub_80CAC44
+sub_80CAC44: @ 80CAC44
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x18
+ strh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CAC98
+ ldr r0, _080CAC94
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _080CACBC
+ .align 2, 0
+_080CAC94: .4byte gUnknown_0202F7C9
+_080CAC98:
+ ldr r0, _080CACE8
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080CACAC
+ movs r2, 0x3
+_080CACAC:
+ movs r0, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+_080CACBC:
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CACE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CACE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CACE8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CAC44
+
+ thumb_func_start sub_80CACEC
+sub_80CACEC: @ 80CACEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD06
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD0E
+_080CAD06:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CAD4A
+_080CAD0E:
+ ldr r0, _080CAD2C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CAD34
+ ldr r0, _080CAD30
+ ldrb r1, [r0]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0]
+ b _080CAD44
+ .align 2, 0
+_080CAD2C: .4byte gUnknown_0202F7C9
+_080CAD30: .4byte REG_BG2CNT
+_080CAD34:
+ ldr r2, _080CAD50
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CAD44:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CAD4A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD50: .4byte REG_BG1CNT
+ thumb_func_end sub_80CACEC
+
+ thumb_func_start sub_80CAD54
+sub_80CAD54: @ 80CAD54
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r5, _080CAD9C
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CADA0
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CADA4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD9C: .4byte gUnknown_03004B00
+_080CADA0: .4byte gUnknown_0202F7C8
+_080CADA4: .4byte sub_80CADA8
+ thumb_func_end sub_80CAD54
+
+ thumb_func_start sub_80CADA8
+sub_80CADA8: @ 80CADA8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAE14
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CADF4
+ ldr r0, _080CADF0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _080CADFE
+ .align 2, 0
+_080CADF0: .4byte gUnknown_0202F7C8
+_080CADF4:
+ ldr r0, _080CAE10
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_080CADFE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAE1A
+ .align 2, 0
+_080CAE10: .4byte gUnknown_0202F7C8
+_080CAE14:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAE1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CADA8
+
+ thumb_func_start sub_80CAE20
+sub_80CAE20: @ 80CAE20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CAE68
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CAE6C
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CAE70
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAE68: .4byte gUnknown_03004B00
+_080CAE6C: .4byte gUnknown_0202F7C8
+_080CAE70: .4byte sub_80CAE74
+ thumb_func_end sub_80CAE20
+
+ thumb_func_start sub_80CAE74
+sub_80CAE74: @ 80CAE74
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAECC
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x3B
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080CAEAC
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080CAEC0
+_080CAEAC:
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ eors r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_080CAEC0:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAED2
+_080CAECC:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAED2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAE74
+
+ thumb_func_start sub_80CAED8
+sub_80CAED8: @ 80CAED8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CAF14
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CAF18
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CAF1C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAF14: .4byte gUnknown_0202F7C8
+_080CAF18: .4byte gUnknown_03004B00
+_080CAF1C: .4byte sub_80CAF20
+ thumb_func_end sub_80CAED8
+
+ thumb_func_start sub_80CAF20
+sub_80CAF20: @ 80CAF20
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080CAF54
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080CAF42
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080CAF48
+_080CAF42:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080CAF48:
+ ldr r0, _080CAF50
+ str r0, [r1, 0x1C]
+ b _080CAF68
+ .align 2, 0
+_080CAF50: .4byte sub_80CAF6C
+_080CAF54:
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ ldrh r0, [r1, 0x2E]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+_080CAF68:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF20
+
+ thumb_func_start sub_80CAF6C
+sub_80CAF6C: @ 80CAF6C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CAF8C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAF90
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080CAF9A
+ .align 2, 0
+_080CAF8C: .4byte gUnknown_0202F7C8
+_080CAF90:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080CAF9A:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CAFBA
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080CAFBA:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080CAFC8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAFC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF6C
+
+ thumb_func_start sub_80CAFD0
+sub_80CAFD0: @ 80CAFD0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CB024
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAFF0
+ ldr r1, _080CB028
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAFF0:
+ ldr r6, _080CB028
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB030
+ ldr r4, _080CB02C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080CB050
+ .align 2, 0
+_080CB024: .4byte gUnknown_0202F7C8
+_080CB028: .4byte gUnknown_03004B00
+_080CB02C: .4byte gUnknown_0202F7C9
+_080CB030:
+ ldr r0, _080CB07C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+_080CB050:
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB080
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080CB084
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080CB07C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080CB088
+ movs r0, 0x1
+ b _080CB08A
+ .align 2, 0
+_080CB07C: .4byte gUnknown_0202F7C9
+_080CB080: .4byte gUnknown_03004B00
+_080CB084: .4byte gUnknown_0202F7C8
+_080CB088:
+ movs r0, 0
+_080CB08A:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CB098
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB098: .4byte sub_80CB09C
+ thumb_func_end sub_80CAFD0
+
+ thumb_func_start sub_80CB09C
+sub_80CB09C: @ 80CB09C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl sub_8078718
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080CB0CE
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080CB0CE
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080CB0D4
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080CB0CE:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080CB106
+_080CB0D4:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080CB106
+ adds r3, r6, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080CB106
+ movs r7, 0x1
+_080CB106:
+ movs r2, 0x20
+ ldrsh r0, [r6, r2]
+ movs r2, 0x24
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080CB130
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080CB130
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080CB132
+_080CB130:
+ movs r7, 0x1
+_080CB132:
+ cmp r7, 0
+ beq _080CB13C
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB13C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB09C
+
+ thumb_func_start sub_80CB144
+sub_80CB144: @ 80CB144
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB170
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CB170
+ ldr r0, _080CB198
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+_080CB170:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, _080CB19C
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CB1A0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB198: .4byte gUnknown_0202F7C9
+_080CB19C: .4byte gUnknown_03004B00
+_080CB1A0: .4byte sub_80CB1A4
+ thumb_func_end sub_80CB144
+
+ thumb_func_start sub_80CB1A4
+sub_80CB1A4: @ 80CB1A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080CB1BA
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080CB1C8
+_080CB1BA:
+ cmp r0, 0
+ ble _080CB1C8
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080CB1C8:
+ ldrh r3, [r4, 0x32]
+ ldrh r5, [r4, 0x38]
+ adds r2, r3, r5
+ strh r2, [r4, 0x38]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r5, 0x36
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080CB1E0
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080CB1E0:
+ ldrh r1, [r4, 0x38]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r5, 0x38
+ ldrsh r0, [r4, r5]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CB220
+ ldr r0, _080CB21C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080CB22E
+ .align 2, 0
+_080CB21C: .4byte gUnknown_0202F7C9
+_080CB220:
+ ldr r0, _080CB258
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080CB22E:
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CB252
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB252:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB258: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CB1A4
+
+ thumb_func_start sub_80CB25C
+sub_80CB25C: @ 80CB25C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _080CB290
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080CB294
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB290: .4byte gUnknown_03004B00
+_080CB294: .4byte sub_80CB298
+ thumb_func_end sub_80CB25C
+
+ thumb_func_start sub_80CB298
+sub_80CB298: @ 80CB298
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CB2C8
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB2CC
+ cmp r1, r0
+ bne _080CB2C2
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CB2D0
+ str r0, [r4, 0x1C]
+_080CB2C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB2C8: .4byte gUnknown_03004B00
+_080CB2CC: .4byte 0x0000ffff
+_080CB2D0: .4byte sub_80CB2D4
+ thumb_func_end sub_80CB298
+
+ thumb_func_start sub_80CB2D4
+sub_80CB2D4: @ 80CB2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CB2EC
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080CB2F0
+_080CB2EC:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080CB2F0:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CB30C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080CB30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB33A
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CB334
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080CB33A
+_080CB334:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB33A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB2D4
+
+ thumb_func_start sub_80CB340
+sub_80CB340: @ 80CB340
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CB36C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080CB370
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CB396
+ .align 2, 0
+_080CB36C: .4byte gSprites
+_080CB370:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ ldr r1, _080CB39C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080CB3A0
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1E]
+ ldr r1, _080CB3A4
+ str r1, [r0]
+_080CB396:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB39C: .4byte gTasks
+_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A4: .4byte sub_80CB3A8
+ thumb_func_end sub_80CB340
+
+ thumb_func_start sub_80CB3A8
+sub_80CB3A8: @ 80CB3A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CB428
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0
+ strh r1, [r4, 0x1C]
+ ldr r2, _080CB42C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r5, 0x24]
+ ldr r0, _080CB430
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB3F2
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080CB3F2:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x10
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1E
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r6, 0
+ bl sub_8079A64
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CB420
+ strh r0, [r4, 0x8]
+ ldr r0, _080CB434
+ str r0, [r4]
+_080CB420:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB428: .4byte gTasks
+_080CB42C: .4byte gSprites
+_080CB430: .4byte gUnknown_0202F7C9
+_080CB434: .4byte sub_80CB438
+ thumb_func_end sub_80CB3A8
+
+ thumb_func_start sub_80CB438
+sub_80CB438: @ 80CB438
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080CB484
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB488
+ cmp r1, r0
+ bne _080CB494
+ ldr r0, _080CB48C
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080CB4A8
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080CB490
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x24]
+ strh r5, [r0, 0x26]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080CB4C2
+ .align 2, 0
+_080CB484: .4byte gUnknown_03004B00
+_080CB488: .4byte 0x0000ffff
+_080CB48C: .4byte gTasks
+_080CB490: .4byte gSprites
+_080CB494:
+ ldr r1, _080CB4C8
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080CB4C2
+_080CB4A8:
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080CB4C2
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080CB4C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB4C8: .4byte gTasks
+ thumb_func_end sub_80CB438
+
+ thumb_func_start sub_80CB4CC
+sub_80CB4CC: @ 80CB4CC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CB4DE
+ cmp r0, 0x1
+ beq _080CB538
+ b _080CB58A
+_080CB4DE:
+ ldr r6, _080CB530
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB4F6
+ ldr r1, _080CB534
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080CB4F6:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB534
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CB58A
+ .align 2, 0
+_080CB530: .4byte gUnknown_0202F7C9
+_080CB534: .4byte gUnknown_03004B00
+_080CB538:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB58A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CB590
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB594
+ str r0, [r5, 0x1C]
+ ldr r1, _080CB598
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CB58A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB590: .4byte gUnknown_0202F7C8
+_080CB594: .4byte sub_8078CC0
+_080CB598: .4byte move_anim_8072740
+ thumb_func_end sub_80CB4CC
+
+ thumb_func_start sub_80CB59C
+sub_80CB59C: @ 80CB59C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CB608
+ ldr r4, _080CB614
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080CB618
+ ldrh r0, [r4]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1E
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r4, 0x6]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r2, 0x22
+ ldrsh r0, [r5, r2]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _080CB608
+ ldrh r0, [r5, 0x22]
+ adds r1, r0, 0
+ subs r1, 0x78
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r5, 0x22]
+_080CB608:
+ ldr r0, _080CB61C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB614: .4byte gUnknown_0202F7C8
+_080CB618: .4byte gUnknown_03004B00
+_080CB61C: .4byte sub_80CB710
+ thumb_func_end sub_80CB59C
+
+ thumb_func_start sub_80CB620
+sub_80CB620: @ 80CB620
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, _080CB6FC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _080CB700
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ subs r4, r5
+ lsls r4, 16
+ lsrs r2, 24
+ mov r1, r8
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r3, r4, 16
+ mov r10, r3
+ asrs r4, 16
+ ldr r6, _080CB704
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ muls r0, r4
+ movs r1, 0x64
+ str r2, [sp]
+ bl __divsi3
+ adds r5, r0
+ mov r3, r9
+ strh r5, [r3, 0x20]
+ ldr r2, [sp]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ add r8, r0
+ mov r1, r8
+ mov r0, r9
+ strh r1, [r0, 0x22]
+ ldrh r0, [r6, 0x2]
+ mov r3, r9
+ strh r0, [r3, 0x24]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r3, 0x26]
+ ldrb r0, [r6, 0x6]
+ adds r0, 0x1E
+ mov r1, r9
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0x8]
+ mov r0, r9
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0xA]
+ mov r1, r9
+ strh r0, [r1, 0x32]
+ ldr r0, _080CB708
+ str r0, [r1, 0x1C]
+ ldr r1, _080CB70C
+ mov r3, r9
+ ldrh r0, [r3, 0x20]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1, 0x2]
+ mov r0, r10
+ strh r0, [r1, 0x4]
+ ldr r2, [sp]
+ strh r2, [r1, 0x6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB6FC: .4byte gUnknown_0202F7C8
+_080CB700: .4byte gUnknown_0202F7C9
+_080CB704: .4byte gUnknown_03004B00
+_080CB708: .4byte sub_80CB710
+_080CB70C: .4byte gUnknown_03000728
+ thumb_func_end sub_80CB620
+
+ thumb_func_start sub_80CB710
+sub_80CB710: @ 80CB710
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ adds r1, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080CB750
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ movs r2, 0x3E
+ adds r2, r3
+ mov r12, r2
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080CB750:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080CB762
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CB762:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB710
+
+ thumb_func_start sub_80CB768
+sub_80CB768: @ 80CB768
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB7A8
+ ldr r5, _080CB7E4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB7E8
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x34]
+_080CB7A8:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrh r1, [r6, 0x30]
+ muls r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x2E
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0xFF
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080CB7DE
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB7DE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB7E4: .4byte gUnknown_0202F7C8
+_080CB7E8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CB768
+
+ thumb_func_start sub_80CB7EC
+sub_80CB7EC: @ 80CB7EC
+ push {r4,r5,lr}
+ movs r2, 0x20
+ ldrsh r4, [r0, r2]
+ lsls r4, 8
+ movs r3, 0x22
+ ldrsh r2, [r0, r3]
+ orrs r4, r2
+ movs r5, 0x3A
+ ldrsh r2, [r0, r5]
+ lsls r2, 8
+ movs r5, 0x3C
+ ldrsh r3, [r0, r5]
+ orrs r2, r3
+ lsls r1, 8
+ strh r4, [r0, 0x38]
+ strh r2, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB7EC
+
+ thumb_func_start sub_80CB814
+sub_80CB814: @ 80CB814
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ ldrh r0, [r0, 0x38]
+ lsrs r1, r0, 8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r1, r8
+ ldrh r0, [r1, 0x3A]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r1, [r1, 0x3C]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0xFF
+ ands r3, r1
+ cmp r2, 0
+ bne _080CB84E
+ movs r2, 0x20
+ negs r2, r2
+ b _080CB856
+_080CB84E:
+ cmp r2, 0xFF
+ bne _080CB856
+ movs r2, 0x88
+ lsls r2, 1
+_080CB856:
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r1, r10
+ subs r0, r2, r1
+ lsls r5, r3, 16
+ asrs r5, 16
+ muls r0, r5
+ lsls r1, r6, 16
+ asrs r7, r1, 16
+ adds r1, r7, 0
+ bl __divsi3
+ adds r6, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r7, 0
+ bl __divsi3
+ add r6, r10
+ mov r1, r8
+ strh r6, [r1, 0x20]
+ add r0, r9
+ strh r0, [r1, 0x22]
+ adds r5, 0x1
+ lsls r5, 16
+ lsrs r3, r5, 16
+ asrs r5, 16
+ cmp r5, r7
+ beq _080CB8A8
+ lsls r1, r7, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r1
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ movs r0, 0
+ b _080CB8AA
+_080CB8A8:
+ movs r0, 0x1
+_080CB8AA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CB814
+
+ thumb_func_start sub_80CB8B8
+sub_80CB8B8: @ 80CB8B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080CB8CC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CB8CC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080CB8E0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB8E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB8B8
+
+ thumb_func_start sub_80CB8E8
+sub_80CB8E8: @ 80CB8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB912
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB912:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB942
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CB948
+ str r0, [r4, 0x1C]
+_080CB942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB948: .4byte sub_80CB8B8
+ thumb_func_end sub_80CB8E8
+
+ thumb_func_start sub_80CB94C
+sub_80CB94C: @ 80CB94C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080CB994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CB998
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CB99C
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CB9AE
+ .align 2, 0
+_080CB994: .4byte gUnknown_0202F7C9
+_080CB998: .4byte gUnknown_0202F7C8
+_080CB99C:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CB9AE:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB9C0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB9C0: .4byte sub_80CB8E8
+ thumb_func_end sub_80CB94C
+
+ thumb_func_start sub_80CB9C4
+sub_80CB9C4: @ 80CB9C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB9EE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB9EE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA20
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBA20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB9C4
+
+ thumb_func_start sub_80CBA28
+sub_80CBA28: @ 80CBA28
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CBA64
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080CBA6C
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBA68
+ b _080CBA96
+ .align 2, 0
+_080CBA64: .4byte gUnknown_0202F7C9
+_080CBA68: .4byte sub_80CB8E8
+_080CBA6C:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA84
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080CBA84:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBAA0
+_080CBA96:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAA0: .4byte sub_80CB9C4
+ thumb_func_end sub_80CBA28
+
+ thumb_func_start sub_80CBAA4
+sub_80CBAA4: @ 80CBAA4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBABE
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r0, _080CBAE4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080CBABE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ muls r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBADE
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBADE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CBAA4
+
+ thumb_func_start sub_80CBAE8
+sub_80CBAE8: @ 80CBAE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r4, _080CBB30
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CBB34
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CBB38
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CBB4A
+ .align 2, 0
+_080CBB30: .4byte gUnknown_0202F7C8
+_080CBB34: .4byte gUnknown_0202F7C9
+_080CBB38:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CBB4A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBB5C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBB5C: .4byte sub_80CBB60
+ thumb_func_end sub_80CBAE8
+
+ thumb_func_start sub_80CBB60
+sub_80CBB60: @ 80CBB60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CBB8A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CBB8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CBBBE
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBBE:
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBBE6
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CBBEC
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBBEC: .4byte sub_80CB8B8
+ thumb_func_end sub_80CBB60
+
+ thumb_func_start sub_80CBBF0
+sub_80CBBF0: @ 80CBBF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBC84
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBC18
+ ldr r0, _080CBC14
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080CBC3A
+ .align 2, 0
+_080CBC14: .4byte gUnknown_03004B00
+_080CBC18:
+ ldr r0, _080CBC74
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+ adds r1, r3, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ adds r5, r0, 0
+ cmp r1, 0
+ bge _080CBC2E
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080CBC2E:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080CBC3A:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x32]
+ movs r0, 0x14
+ strh r0, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r0, _080CBC78
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBC7C
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBC82
+ .align 2, 0
+_080CBC74: .4byte gUnknown_03004B00
+_080CBC78: .4byte sub_80CBC8C
+_080CBC7C:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBC82:
+ strb r0, [r1]
+_080CBC84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBBF0
+
+ thumb_func_start sub_80CBC8C
+sub_80CBC8C: @ 80CBC8C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBC9E
+ cmp r0, 0x1
+ beq _080CBCCE
+ b _080CBCEE
+_080CBC9E:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080CBCB6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CBCEE
+_080CBCB6:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ adds r0, r5, r0
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x3
+ strh r1, [r4, 0x36]
+ strh r0, [r4, 0x22]
+ b _080CBCEE
+_080CBCCE:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBCEE
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBCEE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CBCF4
+ str r0, [r4, 0x1C]
+_080CBCEE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBCF4: .4byte sub_80CBCF8
+ thumb_func_end sub_80CBC8C
+
+ thumb_func_start sub_80CBCF8
+sub_80CBCF8: @ 80CBCF8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CBD3C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r3, r0, r1
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrh r2, [r4, 0x32]
+ movs r6, 0x32
+ ldrsh r1, [r4, r6]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080CBD44
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080CBD30
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CBD40
+ str r0, [r4, 0x1C]
+_080CBD30:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CBDAA
+ .align 2, 0
+_080CBD3C: .4byte gUnknown_083D680C
+_080CBD40: .4byte sub_80CBDB0
+_080CBD44:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r1, r0, r5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBD92
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBD8A
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBD90
+_080CBD8A:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBD90:
+ strb r0, [r1]
+_080CBD92:
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+_080CBDAA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBCF8
+
+ thumb_func_start sub_80CBDB0
+sub_80CBDB0: @ 80CBDB0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080CBDC2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBDC2:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBDB0
+
+ thumb_func_start sub_80CBDF4
+sub_80CBDF4: @ 80CBDF4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CBF48
+ adds r5, r0, r1
+ ldr r4, _080CBF4C
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0x1
+ bne _080CBE5C
+ movs r1, 0x1
+_080CBE5C:
+ strh r1, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ lsls r0, 6
+ movs r1, 0x38
+ subs r1, r0
+ strh r1, [r5, 0x1A]
+ ldrh r0, [r5, 0x16]
+ subs r0, r1
+ ldrh r1, [r5, 0x14]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldr r0, _080CBF50
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1A
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ cmp r0, 0x40
+ bne _080CBE94
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CBE94:
+ ldr r4, _080CBF54
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x18]
+ strh r1, [r0, 0x30]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ muls r1, r0
+ ldrh r0, [r5, 0x14]
+ subs r0, r1
+ strh r0, [r2, 0x32]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x1A]
+ strh r1, [r0, 0x34]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ muls r0, r2
+ ldrh r2, [r5, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x36]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80CC338
+ movs r1, 0xC
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x38]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ ldr r0, _080CBF58
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBF48: .4byte gTasks
+_080CBF4C: .4byte gUnknown_0202F7C9
+_080CBF50: .4byte gSpriteTemplate_83D6884
+_080CBF54: .4byte gSprites
+_080CBF58: .4byte sub_80CBF5C
+ thumb_func_end sub_80CBDF4
+
+ thumb_func_start sub_80CBF5C
+sub_80CBF5C: @ 80CBF5C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CBFA0
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080CBFA4
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _080CBF84
+ b _080CC1B4
+_080CBF84:
+ cmp r5, 0x7
+ bgt _080CBFD2
+ cmp r5, 0x3
+ bne _080CBF8E
+ b _080CC0A6
+_080CBF8E:
+ cmp r5, 0x3
+ bgt _080CBFA8
+ cmp r5, 0x1
+ beq _080CC038
+ cmp r5, 0x1
+ bgt _080CC088
+ cmp r5, 0
+ beq _080CC01A
+ b _080CC330
+ .align 2, 0
+_080CBFA0: .4byte gTasks
+_080CBFA4: .4byte gSprites
+_080CBFA8:
+ cmp r5, 0x5
+ bne _080CBFAE
+ b _080CC11C
+_080CBFAE:
+ cmp r5, 0x5
+ ble _080CBFB4
+ b _080CC196
+_080CBFB4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFCA
+ b _080CC330
+_080CBFCA:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CBFD2:
+ cmp r5, 0xB
+ bne _080CBFD8
+ b _080CC298
+_080CBFD8:
+ cmp r5, 0xB
+ bgt _080CC006
+ cmp r5, 0x9
+ bne _080CBFE2
+ b _080CC206
+_080CBFE2:
+ cmp r5, 0x9
+ ble _080CBFE8
+ b _080CC27C
+_080CBFE8:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFFE
+ b _080CC330
+_080CBFFE:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC006:
+ cmp r5, 0xD
+ bne _080CC00C
+ b _080CC30A
+_080CC00C:
+ cmp r5, 0xD
+ bge _080CC012
+ b _080CC2EA
+_080CC012:
+ cmp r5, 0xFF
+ bne _080CC018
+ b _080CC31A
+_080CC018:
+ b _080CC330
+_080CC01A:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC030
+ b _080CC330
+_080CC030:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC038:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x2
+ strh r0, [r6, 0x10]
+ strh r5, [r6, 0xE]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC088:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC09E
+ b _080CC330
+_080CC09E:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC0A6:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r1, r0
+ ldrh r0, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC11C:
+ ldrh r1, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r2, 0x1E
+ ldrsh r0, [r6, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x3
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC196:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC1AC
+ b _080CC330
+_080CC1AC:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC1B4:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ adds r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x4
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC206:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ ldrh r3, [r6, 0x16]
+ adds r0, r3
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x5
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC27C:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC298:
+ ldrh r2, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r2, r0
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x18]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x1A]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x6
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC2EA:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC30A:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CC330
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CC330
+_080CC31A:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CC330
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_080CC32E:
+ strh r0, [r6, 0x8]
+_080CC330:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBF5C
+
+ thumb_func_start sub_80CC338
+sub_80CC338: @ 80CC338
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _080CC34E
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080CC34E:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC338
+
+ thumb_func_start sub_80CC358
+sub_80CC358: @ 80CC358
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CC3EE
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, _080CC3F8
+ mov r8, r0
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ ldrh r2, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r0
+ ldr r0, _080CC3FC
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r3, [r6, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CC3EE
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r0, r8
+ adds r4, r5, r0
+ strh r7, [r4, 0x3A]
+ movs r0, 0xC
+ strh r0, [r4, 0x3C]
+ ldr r0, _080CC400
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldrh r2, [r6, 0x22]
+ movs r0, 0x1
+ ands r0, r2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x10]
+ adds r4, 0x43
+ strb r0, [r4]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r5, r0
+ ldr r0, _080CC404
+ str r0, [r5]
+_080CC3EE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC3F8: .4byte gSprites
+_080CC3FC: .4byte gSpriteTemplate_83D6884
+_080CC400: .4byte gTasks
+_080CC404: .4byte sub_80CC408
+ thumb_func_end sub_80CC358
+
+ thumb_func_start sub_80CC408
+sub_80CC408: @ 80CC408
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CC46A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CC46A
+ ldr r3, _080CC470
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080CC46A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC470: .4byte gTasks
+ thumb_func_end sub_80CC408
+
+ thumb_func_start sub_80CC474
+sub_80CC474: @ 80CC474
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC488
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CC490
+ ldr r0, _080CC48C
+ b _080CC492
+ .align 2, 0
+_080CC488: .4byte gUnknown_03004B00
+_080CC48C: .4byte gUnknown_0202F7C8
+_080CC490:
+ ldr r0, _080CC4B0
+_080CC492:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC4BC
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4B4
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CC4B8
+ b _080CC4CC
+ .align 2, 0
+_080CC4B0: .4byte gUnknown_0202F7C9
+_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B8: .4byte 0x0000fff0
+_080CC4BC:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4F0
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_080CC4CC:
+ strh r0, [r4, 0x20]
+ adds r7, r1, 0
+ adds r5, r7, 0
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CC502
+ cmp r0, 0x1
+ bgt _080CC4F4
+ cmp r0, 0
+ beq _080CC4FE
+ b _080CC56C
+ .align 2, 0
+_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F4:
+ cmp r0, 0x2
+ beq _080CC508
+ cmp r0, 0x3
+ beq _080CC534
+ b _080CC56C
+_080CC4FE:
+ ldrh r0, [r5]
+ b _080CC518
+_080CC502:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _080CC54E
+_080CC508:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_080CC518:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080CC56C
+_080CC534:
+ ldr r0, _080CC578
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+_080CC54E:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080CC56C:
+ ldr r0, _080CC57C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC578: .4byte gUnknown_0202F7C9
+_080CC57C: .4byte sub_80CC580
+ thumb_func_end sub_80CC474
+
+ thumb_func_start sub_80CC580
+sub_80CC580: @ 80CC580
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r3, [r4, r0]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ ldr r1, _080CC5D4
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ muls r0, r3
+ strh r0, [r4, 0x24]
+ movs r5, 0x34
+ ldrsh r0, [r4, r5]
+ muls r0, r3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CC5D8
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _080CC5F0
+ b _080CC5EA
+ .align 2, 0
+_080CC5D4: .4byte gSineTable
+_080CC5D8:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _080CC5F0
+_080CC5EA:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CC5F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC580
+
+ thumb_func_start sub_80CC5F8
+sub_80CC5F8: @ 80CC5F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CC618
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CC61C
+ cmp r0, 0x1
+ beq _080CC650
+ b _080CC6AA
+ .align 2, 0
+_080CC618: .4byte gTasks
+_080CC61C:
+ ldr r0, _080CC648
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2, 0
+ adds r0, r4
+ strh r0, [r5, 0x18]
+ ldr r0, _080CC64C
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080CC6AA
+ .align 2, 0
+_080CC648: .4byte 0x0000274f
+_080CC64C: .4byte 0x000027b0
+_080CC650:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080CC6AA
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, _080CC6C4
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x20]
+ ldrb r2, [r5, 0x1C]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _080CC6AA
+ strh r7, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bne _080CC6AA
+ strh r7, [r5, 0x1E]
+_080CC6AA:
+ ldr r0, _080CC6C8
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080CC6BE
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CC6BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC6C4: .4byte gUnknown_083D6984
+_080CC6C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC5F8
+
+ thumb_func_start sub_80CC6CC
+sub_80CC6CC: @ 80CC6CC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _080CC6E4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CC6E8
+ adds r0, r6, 0
+ bl move_anim_8072740
+ b _080CC7C2
+ .align 2, 0
+_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E8:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CC6F8
+ ldr r4, _080CC6F4
+ b _080CC6FA
+ .align 2, 0
+_080CC6F4: .4byte gUnknown_0202F7C8
+_080CC6F8:
+ ldr r4, _080CC734
+_080CC6FA:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CC738
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080CC73C
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x20]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x38]
+ strh r2, [r6, 0x3A]
+ b _080CC74C
+ .align 2, 0
+_080CC734: .4byte gUnknown_0202F7C9
+_080CC738: .4byte gUnknown_03004B00
+_080CC73C:
+ strh r5, [r6, 0x20]
+ strh r2, [r6, 0x22]
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x38]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x3A]
+_080CC74C:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC7AE
+ ldr r1, _080CC7CC
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CC7AE:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080CC7D0
+ str r0, [r6, 0x1C]
+_080CC7C2:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC7CC: .4byte 0xffff8000
+_080CC7D0: .4byte sub_80CC7D4
+ thumb_func_end sub_80CC6CC
+
+ thumb_func_start sub_80CC7D4
+sub_80CC7D4: @ 80CC7D4
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080CC804
+ ldrh r0, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r0, r4
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r4, [r2, 0x32]
+ adds r1, r4
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x2E]
+ b _080CC80A
+_080CC804:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080CC80A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC7D4
+
+ thumb_func_start sub_80CC810
+sub_80CC810: @ 80CC810
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CC826
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CC826:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC810
+
+ thumb_func_start sub_80CC82C
+sub_80CC82C: @ 80CC82C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC84C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC854
+ ldr r2, _080CC850
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _080CC860
+ .align 2, 0
+_080CC84C: .4byte gUnknown_0202F7C8
+_080CC850: .4byte gUnknown_03004B00
+_080CC854:
+ ldr r0, _080CC878
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CC860:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CC87C
+ str r0, [r4, 0x1C]
+ ldr r1, _080CC880
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC878: .4byte gUnknown_03004B00
+_080CC87C: .4byte sub_8078600
+_080CC880: .4byte move_anim_8072740
+ thumb_func_end sub_80CC82C
+
+ thumb_func_start sub_80CC884
+sub_80CC884: @ 80CC884
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CC8BC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC89E
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CC89E:
+ ldr r0, _080CC8C0
+ str r0, [r5, 0x1C]
+ ldr r4, _080CC8C4
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC8BC: .4byte gUnknown_0202F7C8
+_080CC8C0: .4byte sub_80CC810
+_080CC8C4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC884
+
+ thumb_func_start sub_80CC8C8
+sub_80CC8C8: @ 80CC8C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CC908
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080CC90C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CC910
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC908: .4byte gUnknown_03004B00
+_080CC90C: .4byte move_anim_8074EE0
+_080CC910: .4byte sub_8078504
+ thumb_func_end sub_80CC8C8
+
+ thumb_func_start sub_80CC914
+sub_80CC914: @ 80CC914
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CC964
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC948
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080CC948:
+ ldr r0, _080CC968
+ str r0, [r5, 0x1C]
+ ldr r0, _080CC96C
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CC970
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _080CC984
+ .align 2, 0
+_080CC964: .4byte gUnknown_0202F7C9
+_080CC968: .4byte sub_80CCB00
+_080CC96C: .4byte gUnknown_03004B00
+_080CC970:
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CC984:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, _080CC9B8
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x30]
+ adds r1, r0, r2
+ strh r1, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CC9B2
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_080CC9B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC9B8: .4byte 0xfffffc00
+ thumb_func_end sub_80CC914
+
+ thumb_func_start sub_80CC9BC
+sub_80CC9BC: @ 80CC9BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080CC9D8
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CC9DC
+ cmp r0, 0x1
+ ble _080CCA58
+ cmp r0, 0x2
+ beq _080CC9FC
+ b _080CCA58
+ .align 2, 0
+_080CC9D8: .4byte gUnknown_03004B00
+_080CC9DC:
+ ldr r5, _080CC9F8
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _080CCA68
+ .align 2, 0
+_080CC9F8: .4byte gUnknown_0202F7C9
+_080CC9FC:
+ ldr r5, _080CCA54
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCA72
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ lsrs r7, r0, 1
+ ldrb r0, [r5]
+ mov r1, r8
+ eors r0, r1
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _080CCA72
+ .align 2, 0
+_080CCA54: .4byte gUnknown_0202F7C9
+_080CCA58:
+ ldr r4, _080CCAA4
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_080CCA68:
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CCA72:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, _080CCAA4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CCA8A
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_080CCA8A:
+ ldr r0, _080CCAA8
+ str r0, [r6, 0x1C]
+ ldr r0, _080CCAAC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CCAB0
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _080CCAC4
+ .align 2, 0
+_080CCAA4: .4byte gUnknown_0202F7C9
+_080CCAA8: .4byte sub_80CCB00
+_080CCAAC: .4byte gUnknown_03004B00
+_080CCAB0:
+ ldrh r0, [r6, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r6, 0x20]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CCAC4:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, _080CCAFC
+ adds r0, r1, 0
+ ldrh r2, [r6, 0x30]
+ adds r1, r0, r2
+ strh r1, [r6, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r6, 0x32]
+ adds r0, r2
+ strh r0, [r6, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CCAF2
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_080CCAF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCAFC: .4byte 0xfffffc00
+ thumb_func_end sub_80CC9BC
+
+ thumb_func_start sub_80CCB00
+sub_80CCB00: @ 80CCB00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CCB22
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _080CCB26
+_080CCB22:
+ adds r0, r1, 0
+ subs r0, 0x18
+_080CCB26:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x18
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080CCB5C
+ ldr r1, _080CCB64
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CCB68
+ str r0, [r4, 0x1C]
+_080CCB5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCB64: .4byte move_anim_8072740
+_080CCB68: .4byte sub_80782D8
+ thumb_func_end sub_80CCB00
+
+ thumb_func_start unref_sub_80CCB6C
+unref_sub_80CCB6C: @ 80CCB6C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _080CCC10
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCBC8
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r4, _080CCBC4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _080CCBFE
+ .align 2, 0
+_080CCBC4: .4byte gSprites
+_080CCBC8:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, _080CCC0C
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_080CCBFE:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _080CCC14
+ .align 2, 0
+_080CCC0C: .4byte gSprites
+_080CCC10:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_080CCC14:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _080CCC44
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080CCC4C
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080CCC44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCC4C: .4byte gSprites
+ thumb_func_end unref_sub_80CCB6C
+
+ thumb_func_start sub_80CCC50
+sub_80CCC50: @ 80CCC50
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CCC70
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCC74
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCC78
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080CCC7E
+ .align 2, 0
+_080CCC70: .4byte gUnknown_03004B00
+_080CCC74: .4byte gUnknown_0202F7C8
+_080CCC78:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080CCC7E:
+ strh r0, [r5, 0x20]
+ ldr r4, _080CCCAC
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080CCCB0
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCCAC: .4byte gUnknown_03004B00
+_080CCCB0: .4byte sub_80CCCB4
+ thumb_func_end sub_80CCC50
+
+ thumb_func_start sub_80CCCB4
+sub_80CCCB4: @ 80CCCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CCCE0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _080CCCE6
+_080CCCE0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_080CCCE6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x82
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080CCD1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CCD1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CCCB4
+
+ thumb_func_start sub_80CCD24
+sub_80CCD24: @ 80CCD24
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD3A
+ ldr r1, _080CCD98
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_080CCD3A:
+ ldr r6, _080CCD9C
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080CCD98
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD78
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCDA0
+_080CCD78:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ b _080CCDB8
+ .align 2, 0
+_080CCD98: .4byte gUnknown_03004B00
+_080CCD9C: .4byte gUnknown_0202F7C8
+_080CCDA0:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080CCDB8:
+ ldr r0, _080CCDF8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCDFC
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3
+ strh r0, [r5, 0x32]
+ movs r2, 0x10
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldr r1, _080CCE00
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r3, _080CCE04
+ ldrh r1, [r5, 0x3C]
+ lsls r0, r1, 8
+ subs r2, r1
+ orrs r0, r2
+ strh r0, [r3]
+ ldr r0, _080CCE08
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCDF8: .4byte gUnknown_03004B00
+_080CCDFC: .4byte 0x00002828
+_080CCE00: .4byte REG_BLDCNT
+_080CCE04: .4byte REG_BLDALPHA
+_080CCE08: .4byte sub_80CCE0C
+ thumb_func_end sub_80CCD24
+
+ thumb_func_start sub_80CCE0C
+sub_80CCE0C: @ 80CCE0C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x60
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE6A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080CCEB0
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r2, 0
+ adds r6, r1, 0
+ adds r3, r6, 0
+_080CCE44:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r2, 0x1
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r3
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ cmp r2, 0x5
+ ble _080CCE44
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_080CCE6A:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _080CCE9E
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _080CCEB8
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE9E
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ subs r2, 0x1
+ strh r2, [r4, 0x3C]
+ ldr r3, _080CCEB4
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+_080CCE9E:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCEB8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CCEF4
+ .align 2, 0
+_080CCEB0: .4byte gPlttBufferFaded
+_080CCEB4: .4byte REG_BLDALPHA
+_080CCEB8:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCEF4
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r1, 0x1
+ strh r1, [r4, 0x3C]
+ ldr r3, _080CCEFC
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CCEF4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CCF00
+ str r0, [r4, 0x1C]
+_080CCEF4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCEFC: .4byte REG_BLDALPHA
+_080CCF00: .4byte sub_807861C
+ thumb_func_end sub_80CCE0C
+
+ thumb_func_start sub_80CCF04
+sub_80CCF04: @ 80CCF04
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CCF5C
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CCF60
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ strh r5, [r4, 0x3A]
+ movs r0, 0x10
+ strh r0, [r4, 0x3C]
+ ldr r1, _080CCF64
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080CCF68
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080CCF6C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCF5C: .4byte gUnknown_0202F7C9
+_080CCF60: .4byte 0x0000ffe8
+_080CCF64: .4byte REG_BLDCNT
+_080CCF68: .4byte REG_BLDALPHA
+_080CCF6C: .4byte sub_80CCF70
+ thumb_func_end sub_80CCF04
+
+ thumb_func_start sub_80CCF70
+sub_80CCF70: @ 80CCF70
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CCF7E
+ b _080CD0C0
+_080CCF7E:
+ lsls r0, 2
+ ldr r1, _080CCF88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CCF88: .4byte _080CCF8C
+ .align 2, 0
+_080CCF8C:
+ .4byte _080CCFA0
+ .4byte _080CD004
+ .4byte _080CD020
+ .4byte _080CD09C
+ .4byte _080CD0B0
+_080CCFA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CCFAE
+ b _080CD0C0
+_080CCFAE:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCFD0
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CCFDE
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CCFDE
+_080CCFD0:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCFDE
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CCFDE:
+ ldr r2, _080CD000
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD0C0
+ strh r0, [r4, 0x30]
+ b _080CD0A8
+ .align 2, 0
+_080CD000: .4byte REG_BLDALPHA
+_080CD004:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD0C0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CD0A8
+_080CD020:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_80CD0CC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD042
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080CD042:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080CD0C0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080CD068
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CD076
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CD076
+_080CD068:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CD076
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CD076:
+ ldr r0, _080CD098
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r2, [r4, 0x3A]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080CD0C0
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _080CD0A8
+ .align 2, 0
+_080CD098: .4byte REG_BLDALPHA
+_080CD09C:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080CD0A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CD0C0
+_080CD0B0:
+ ldr r0, _080CD0C8
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD0C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD0C8: .4byte REG_BLDCNT
+ thumb_func_end sub_80CCF70
+
+ thumb_func_start sub_80CD0CC
+sub_80CD0CC: @ 80CD0CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _080CD0DE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0DE:
+ ldrh r5, [r4, 0x34]
+ adds r0, r5, 0
+ subs r0, 0x12
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ cmp r0, 0x17
+ bhi _080CD0F4
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0F4:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _080CD102
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD102:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD128
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080CD128:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _080CD138
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_080CD138:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD0CC
+
+ thumb_func_start sub_80CD140
+sub_80CD140: @ 80CD140
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CD184
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD154
+ adds r0, r4, 0
+ bl sub_8078650
+_080CD154:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD188
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD18C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD184: .4byte gUnknown_03004B00
+_080CD188: .4byte move_anim_8072740
+_080CD18C: .4byte sub_8078394
+ thumb_func_end sub_80CD140
+
+ thumb_func_start sub_80CD190
+sub_80CD190: @ 80CD190
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CD1A4
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CD1AC
+ ldr r0, _080CD1A8
+ b _080CD1AE
+ .align 2, 0
+_080CD1A4: .4byte gUnknown_03004B00
+_080CD1A8: .4byte gUnknown_0202F7C8
+_080CD1AC:
+ ldr r0, _080CD1F0
+_080CD1AE:
+ ldrb r6, [r0]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ ldr r4, _080CD1F4
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl sub_807A3FC
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _080CD248
+ .align 2, 0
+_080CD1F0: .4byte gUnknown_0202F7C9
+_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F8:
+ ldr r4, _080CD218
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD21C
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _080CD22E
+ .align 2, 0
+_080CD218: .4byte gUnknown_03004B00
+_080CD21C:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_080CD22E:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, _080CD268
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+_080CD248:
+ ldr r1, _080CD268
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ ldr r1, _080CD26C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD270
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD268: .4byte gUnknown_03004B00
+_080CD26C: .4byte move_anim_8072740
+_080CD270: .4byte sub_8078394
+ thumb_func_end sub_80CD190
+
+ thumb_func_start sub_80CD274
+sub_80CD274: @ 80CD274
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD2A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD2A8
+ ldr r0, _080CD2A4
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _080CD2C2
+ .align 2, 0
+_080CD2A0: .4byte gUnknown_0202F7C8
+_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A8:
+ ldr r2, _080CD2CC
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CD2C2:
+ ldr r0, _080CD2D0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD2CC: .4byte gUnknown_03004B00
+_080CD2D0: .4byte sub_80CD2D4
+ thumb_func_end sub_80CD274
+
+ thumb_func_start sub_80CD2D4
+sub_80CD2D4: @ 80CD2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CD30C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1E
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 18
+ asrs r0, 16
+ movs r1, 0x3
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CD30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CD320
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD320:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD2D4
+
+ thumb_func_start sub_80CD328
+sub_80CD328: @ 80CD328
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD358
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD360
+ ldr r1, _080CD35C
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080CD37E
+ .align 2, 0
+_080CD358: .4byte gUnknown_0202F7C8
+_080CD35C: .4byte gUnknown_03004B00
+_080CD360:
+ ldr r2, _080CD388
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldr r0, _080CD38C
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CD37E:
+ ldr r0, _080CD390
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD388: .4byte gUnknown_03004B00
+_080CD38C: .4byte 0x0000ffff
+_080CD390: .4byte sub_80CD394
+ thumb_func_end sub_80CD328
+
+ thumb_func_start sub_80CD394
+sub_80CD394: @ 80CD394
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080CD3D8
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CD3D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD394
+
+ thumb_func_start sub_80CD3E0
+sub_80CD3E0: @ 80CD3E0
+ push {lr}
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x22]
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD400
+ str r1, [r0, 0x1C]
+ ldr r1, _080CD404
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD400: .4byte sub_80782D8
+_080CD404: .4byte sub_80CD408
+ thumb_func_end sub_80CD3E0
+
+ thumb_func_start sub_80CD408
+sub_80CD408: @ 80CD408
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r6, [r5, 0x38]
+ movs r1, 0x1
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080CD41E
+ cmp r0, 0x1
+ beq _080CD438
+ b _080CD49E
+_080CD41E:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080CD430
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD434
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD49E
+ .align 2, 0
+_080CD430: .4byte sub_80782D8
+_080CD434: .4byte sub_80CD408
+_080CD438:
+ ldrh r3, [r5, 0x24]
+ ldrh r0, [r5, 0x20]
+ adds r3, r0
+ movs r0, 0
+ strh r3, [r5, 0x20]
+ ldrh r4, [r5, 0x26]
+ ldrh r1, [r5, 0x22]
+ adds r4, r1
+ strh r4, [r5, 0x22]
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r2, _080CD4AC
+ lsls r0, r6, 16
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r3, r1
+ strh r3, [r5, 0x32]
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r0
+ strh r4, [r5, 0x36]
+ ldr r0, _080CD4B0
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD4B4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xD2
+ bl PlaySE12WithPanning
+_080CD49E:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4AC: .4byte gUnknown_083D6DDC
+_080CD4B0: .4byte sub_8078B34
+_080CD4B4: .4byte sub_80CD4B8
+ thumb_func_end sub_80CD408
+
+ thumb_func_start sub_80CD4B8
+sub_80CD4B8: @ 80CD4B8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080CD4E0
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD4D8
+ str r0, [r2, 0x1C]
+ ldr r1, _080CD4DC
+ adds r0, r2, 0
+ bl oamt_set_x3A_32
+ b _080CD4E4
+ .align 2, 0
+_080CD4D8: .4byte sub_80782D8
+_080CD4DC: .4byte sub_80CD4EC
+_080CD4E0:
+ ldr r0, _080CD4E8
+ str r0, [r2, 0x1C]
+_080CD4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4E8: .4byte sub_80CD408
+ thumb_func_end sub_80CD4B8
+
+ thumb_func_start sub_80CD4EC
+sub_80CD4EC: @ 80CD4EC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _080CD514
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, _080CD50C
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD510
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD594
+ .align 2, 0
+_080CD50C: .4byte sub_80782D8
+_080CD510: .4byte sub_80CD5A8
+_080CD514:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _080CD534
+ cmp r0, 0x2
+ bgt _080CD524
+ cmp r0, 0x1
+ beq _080CD52A
+ b _080CD548
+_080CD524:
+ cmp r0, 0x3
+ beq _080CD53C
+ b _080CD548
+_080CD52A:
+ ldr r6, _080CD530
+ adds r7, r6, 0
+ b _080CD54C
+ .align 2, 0
+_080CD530: .4byte 0x0000fff8
+_080CD534:
+ ldr r7, _080CD538
+ b _080CD54A
+ .align 2, 0
+_080CD538: .4byte 0x0000fff8
+_080CD53C:
+ movs r7, 0x8
+ ldr r6, _080CD544
+ b _080CD54C
+ .align 2, 0
+_080CD544: .4byte 0x0000fff8
+_080CD548:
+ movs r7, 0x8
+_080CD54A:
+ movs r6, 0x8
+_080CD54C:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CD59C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080CD5A0
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD5A4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CD594:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD59C: .4byte gUnknown_0202F7C9
+_080CD5A0: .4byte sub_8078B34
+_080CD5A4: .4byte sub_80CD654
+ thumb_func_end sub_80CD4EC
+
+ thumb_func_start sub_80CD5A8
+sub_80CD5A8: @ 80CD5A8
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CD5C8
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CD5D8
+ movs r0, 0x10
+ b _080CD5D6
+_080CD5C8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD5D8
+ movs r0, 0
+_080CD5D6:
+ strh r0, [r4, 0x30]
+_080CD5D8:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80791A8
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080CD634
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _080CD640
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, _080CD638
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, _080CD63C
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ b _080CD648
+ .align 2, 0
+_080CD634: .4byte 0x00007fff
+_080CD638: .4byte gPlttBufferUnfaded + 0x210
+_080CD63C: .4byte 0x00000101
+_080CD640:
+ cmp r0, 0
+ bne _080CD648
+ ldr r0, _080CD650
+ str r0, [r4, 0x1C]
+_080CD648:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD650: .4byte sub_80CD654
+ thumb_func_end sub_80CD5A8
+
+ thumb_func_start sub_80CD654
+sub_80CD654: @ 80CD654
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080CD670
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CD674
+ cmp r1, r0
+ bne _080CD66C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD678
+ str r0, [r2, 0x1C]
+_080CD66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD670: .4byte gUnknown_03004B00
+_080CD674: .4byte 0x0000ffff
+_080CD678: .4byte sub_80CD67C
+ thumb_func_end sub_80CD654
+
+ thumb_func_start sub_80CD67C
+sub_80CD67C: @ 80CD67C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CD6B0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080CD6B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080CD6C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD6C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD67C
+
+ thumb_func_start sub_80CD6CC
+sub_80CD6CC: @ 80CD6CC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080CD6EC
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CD6F0
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _080CD742
+ .align 2, 0
+_080CD6EC: .4byte gUnknown_03004B00
+_080CD6F0:
+ cmp r0, 0x2
+ bne _080CD70C
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x20
+ b _080CD73E
+_080CD70C:
+ cmp r0, 0x3
+ bne _080CD728
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ b _080CD73E
+_080CD728:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+_080CD73E:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_080CD742:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _080CD768
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080CD76C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, _080CD770
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD768: .4byte 0x000003ff
+_080CD76C: .4byte 0xfffffc00
+_080CD770: .4byte sub_80CD3E0
+ thumb_func_end sub_80CD6CC
+
+ thumb_func_start sub_80CD774
+sub_80CD774: @ 80CD774
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldr r0, _080CD79C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CD7B0
+ cmp r0, 0x1
+ bgt _080CD7A0
+ cmp r0, 0
+ beq _080CD7A6
+ b _080CD7C0
+ .align 2, 0
+_080CD79C: .4byte gUnknown_03004B00
+_080CD7A0:
+ cmp r0, 0x2
+ beq _080CD7B8
+ b _080CD7C0
+_080CD7A6:
+ ldr r0, _080CD7AC
+ b _080CD7C2
+ .align 2, 0
+_080CD7AC: .4byte sub_80CD7CC
+_080CD7B0:
+ ldr r0, _080CD7B4
+ b _080CD7C2
+ .align 2, 0
+_080CD7B4: .4byte sub_80CD8A8
+_080CD7B8:
+ ldr r0, _080CD7BC
+ b _080CD7C2
+ .align 2, 0
+_080CD7BC: .4byte sub_80CD8F8
+_080CD7C0:
+ ldr r0, _080CD7C8
+_080CD7C2:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD7C8: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD774
+
+ thumb_func_start sub_80CD7CC
+sub_80CD7CC: @ 80CD7CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD80C
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD7EA
+ movs r1, 0x2
+_080CD7EA:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD810
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD814
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD818
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD80C: .4byte gUnknown_0202F7C8
+_080CD810: .4byte gUnknown_02024BE0
+_080CD814: .4byte sub_80CD81C
+_080CD818: .4byte sub_8078458
+ thumb_func_end sub_80CD7CC
+
+ thumb_func_start sub_80CD81C
+sub_80CD81C: @ 80CD81C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _080CD858
+ ldr r1, _080CD898
+ ldr r4, _080CD89C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_8078E70
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, _080CD8A0
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD854
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_080CD854:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_080CD858:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CD892
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CD8A4
+ str r0, [r5, 0x1C]
+_080CD892:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD898: .4byte gUnknown_02024BE0
+_080CD89C: .4byte gUnknown_0202F7C8
+_080CD8A0: .4byte 0xfffffd00
+_080CD8A4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD81C
+
+ thumb_func_start sub_80CD8A8
+sub_80CD8A8: @ 80CD8A8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD8E8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080CD8C6
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_080CD8C6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD8EC
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD8F0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD8F4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD8E8: .4byte gUnknown_0202F7C8
+_080CD8EC: .4byte gUnknown_02024BE0
+_080CD8F0: .4byte sub_80CD9B8
+_080CD8F4: .4byte sub_8078458
+ thumb_func_end sub_80CD8A8
+
+ thumb_func_start sub_80CD8F8
+sub_80CD8F8: @ 80CD8F8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD912
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080CD918
+ str r0, [r1, 0x1C]
+_080CD912:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD918: .4byte sub_80CD91C
+ thumb_func_end sub_80CD8F8
+
+ thumb_func_start sub_80CD91C
+sub_80CD91C: @ 80CD91C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD96C
+ ldr r1, _080CD958
+ ldr r4, _080CD95C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD960
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _080CD96A
+ .align 2, 0
+_080CD958: .4byte gUnknown_02024BE0
+_080CD95C: .4byte gUnknown_0202F7C8
+_080CD960:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_080CD96A:
+ strh r0, [r5, 0x38]
+_080CD96C:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD9AC
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ ldr r0, _080CD9B4
+ str r0, [r5, 0x1C]
+_080CD9AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD9B4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD91C
+
+ thumb_func_start sub_80CD9B8
+sub_80CD9B8: @ 80CD9B8
+ push {lr}
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9B8
+
+ thumb_func_start sub_80CD9C4
+sub_80CD9C4: @ 80CD9C4
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD9D0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CD9D0: .4byte sub_80CD9D4
+ thumb_func_end sub_80CD9C4
+
+ thumb_func_start sub_80CD9D4
+sub_80CD9D4: @ 80CD9D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080CDA2E
+ cmp r5, 0x1
+ bgt _080CD9EA
+ cmp r5, 0
+ beq _080CD9F0
+ b _080CDAC2
+_080CD9EA:
+ cmp r5, 0x2
+ beq _080CDA80
+ b _080CDAC2
+_080CD9F0:
+ strh r5, [r4, 0x30]
+ ldr r1, _080CDA74
+ ldr r2, _080CDA78
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldr r2, _080CDA7C
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CDA18
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_080CDA18:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080CDA2E:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CDAC2
+ .align 2, 0
+_080CDA74: .4byte gUnknown_02024BE0
+_080CDA78: .4byte gUnknown_0202F7C8
+_080CDA7C: .4byte 0xfffffe00
+_080CDA80:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CDAC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9D4
+
+ thumb_func_start sub_80CDAC8
+sub_80CDAC8: @ 80CDAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080CDB0C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, _080CDB10
+ ldr r2, _080CDB14
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ ldr r0, _080CDB18
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _080CDB1C
+ cmp r1, 0x1
+ beq _080CDB38
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080CDB56
+ .align 2, 0
+_080CDB0C: .4byte gTasks
+_080CDB10: .4byte gUnknown_02024BE0
+_080CDB14: .4byte gUnknown_0202F7C8
+_080CDB18: .4byte gUnknown_03004B00
+_080CDB1C:
+ strh r1, [r5, 0xC]
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r0, 0x3
+ strh r0, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB30
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_080CDB30:
+ ldr r0, _080CDB34
+ b _080CDB54
+ .align 2, 0
+_080CDB34: .4byte sub_80CDB60
+_080CDB38:
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ movs r0, 0xC0
+ lsls r0, 3
+ strh r0, [r5, 0x10]
+ movs r1, 0xC0
+ strh r1, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB52
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_080CDB52:
+ ldr r0, _080CDB5C
+_080CDB54:
+ str r0, [r5]
+_080CDB56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDB5C: .4byte sub_80CDD20
+ thumb_func_end sub_80CDAC8
+
+ thumb_func_start sub_80CDB60
+sub_80CDB60: @ 80CDB60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CDB84
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CDB7A
+ b _080CDD1A
+_080CDB7A:
+ lsls r0, 2
+ ldr r1, _080CDB88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CDB84: .4byte gTasks
+_080CDB88: .4byte _080CDB8C
+ .align 2, 0
+_080CDB8C:
+ .4byte _080CDBA0
+ .4byte _080CDBD2
+ .4byte _080CDC2C
+ .4byte _080CDCA4
+ .4byte _080CDCE8
+_080CDBA0:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _080CDBB0
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _080CDCF6
+_080CDBB0:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC0
+ cmp r0, 0
+ bne _080CDBC6
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_080CDBC6:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ b _080CDCDC
+_080CDBD2:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDBF8
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ b _080CDD08
+_080CDBF8:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDC28
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDC1E
+ movs r1, 0x2
+_080CDC1E:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDCDC
+ .align 2, 0
+_080CDC28: .4byte gSprites
+_080CDC2C:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC88
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD1A
+_080CDC46:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080CDC68
+ ldr r2, _080CDC64
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r4, 0x10]
+ adds r1, r2
+ b _080CDC7C
+ .align 2, 0
+_080CDC64: .4byte gSprites
+_080CDC68:
+ ldr r2, _080CDC84
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+_080CDC7C:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD08
+ .align 2, 0
+_080CDC84: .4byte gSprites
+_080CDC88:
+ ldr r2, _080CDCA0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x24]
+ movs r0, 0xC
+ strh r0, [r4, 0xE]
+ b _080CDCDC
+ .align 2, 0
+_080CDCA0: .4byte gSprites
+_080CDCA4:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080CDCB4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+_080CDCB4:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDCE4
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDCDA
+ movs r1, 0x8
+_080CDCDA:
+ strh r1, [r4, 0x12]
+_080CDCDC:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080CDD1A
+ .align 2, 0
+_080CDCE4: .4byte gSprites
+_080CDCE8:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDD14
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_080CDCF6:
+ strh r2, [r4, 0x10]
+ ldr r3, _080CDD10
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+_080CDD08:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+ .align 2, 0
+_080CDD10: .4byte gSprites
+_080CDD14:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CDD1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDB60
+
+ thumb_func_start sub_80CDD20
+sub_80CDD20: @ 80CDD20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080CDD5C
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CDD60
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD6C
+ .align 2, 0
+_080CDD5C: .4byte gTasks
+_080CDD60:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080CDD6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDD20
+
+ thumb_func_start sub_80CDD74
+sub_80CDD74: @ 80CDD74
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDD88
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDD90
+ ldr r4, _080CDD8C
+ b _080CDD92
+ .align 2, 0
+_080CDD88: .4byte gUnknown_03004B00
+_080CDD8C: .4byte gUnknown_0202F7C8
+_080CDD90:
+ ldr r4, _080CDDD0
+_080CDD92:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldr r1, _080CDDD4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDDD8
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDDD0: .4byte gUnknown_0202F7C9
+_080CDDD4: .4byte sub_80CDEC0
+_080CDDD8: .4byte sub_8078600
+ thumb_func_end sub_80CDD74
+
+ thumb_func_start sub_80CDDDC
+sub_80CDDDC: @ 80CDDDC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE14
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE18
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CDE1C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDE20
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE14: .4byte gUnknown_0202F7C9
+_080CDE18: .4byte 0x0000ffd0
+_080CDE1C: .4byte sub_80CDE78
+_080CDE20: .4byte sub_8078600
+ thumb_func_end sub_80CDDDC
+
+ thumb_func_start sub_80CDE24
+sub_80CDE24: @ 80CDE24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE68
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE6C
+ ldr r2, _080CDE70
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ ldr r0, _080CDE74
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE68: .4byte gUnknown_0202F7C9
+_080CDE6C: .4byte gUnknown_03004B00
+_080CDE70: .4byte 0x0000ffd0
+_080CDE74: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDE24
+
+ thumb_func_start sub_80CDE78
+sub_80CDE78: @ 80CDE78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDEA2
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CDEA8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDEAC
+ str r0, [r4, 0x1C]
+_080CDEA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDEA8: .4byte sub_80CDEB0
+_080CDEAC: .4byte sub_8078364
+ thumb_func_end sub_80CDE78
+
+ thumb_func_start sub_80CDEB0
+sub_80CDEB0: @ 80CDEB0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, _080CDEBC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CDEBC: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDEB0
+
+ thumb_func_start sub_80CDEC0
+sub_80CDEC0: @ 80CDEC0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CDF08
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDF08
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CDF08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDEC0
+
+ thumb_func_start sub_80CDF0C
+sub_80CDF0C: @ 80CDF0C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDF20
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDF28
+ ldr r4, _080CDF24
+ b _080CDF2A
+ .align 2, 0
+_080CDF20: .4byte gUnknown_03004B00
+_080CDF24: .4byte gUnknown_0202F7C8
+_080CDF28:
+ ldr r4, _080CDF64
+_080CDF2A:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CDF68
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, _080CDF6C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDF64: .4byte gUnknown_0202F7C9
+_080CDF68: .4byte gUnknown_03004B00
+_080CDF6C: .4byte sub_80CDF70
+ thumb_func_end sub_80CDF0C
+
+ thumb_func_start sub_80CDF70
+sub_80CDF70: @ 80CDF70
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _080CDF90
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_080CDF90:
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CDFAC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CDFAC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDF70
+
+ thumb_func_start sub_80CDFB0
+sub_80CDFB0: @ 80CDFB0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CDFF8
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ movs r0, 0x2
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ subs r0, 0x42
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _080CDFFC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDFF8: .4byte gUnknown_0202F7C8
+_080CDFFC: .4byte sub_80CE000
+ thumb_func_end sub_80CDFB0
+
+ thumb_func_start sub_80CE000
+sub_80CE000: @ 80CE000
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080CE06C
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC2
+ bl PlaySE12WithPanning
+_080CE052:
+ movs r1, 0
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE06C
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CE06C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _080CE096
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CE096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE000
+
+ thumb_func_start sub_80CE09C
+sub_80CE09C: @ 80CE09C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CE0E6
+ ldr r4, _080CE0FC
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _080CE100
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE0E0
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_080CE0E0:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_080CE0E6:
+ ldr r0, _080CE100
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CE104
+ cmp r1, r0
+ bne _080CE0F6
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CE0F6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE0FC: .4byte gUnknown_0202F7C8
+_080CE100: .4byte gUnknown_03004B00
+_080CE104: .4byte 0x0000ffff
+ thumb_func_end sub_80CE09C
+
+ thumb_func_start sub_80CE108
+sub_80CE108: @ 80CE108
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CE128
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080CE134
+ ldr r1, _080CE12C
+ ldr r0, _080CE130
+ strh r0, [r1, 0xE]
+ b _080CE16C
+ .align 2, 0
+_080CE128: .4byte gTasks
+_080CE12C: .4byte gUnknown_03004B00
+_080CE130: .4byte 0x0000ffff
+_080CE134:
+ cmp r0, 0x2
+ bne _080CE140
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CE172
+_080CE140:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE172
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ ldr r3, _080CE178
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CE172
+_080CE16C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080CE172:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE178: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE108
+
+ thumb_func_start sub_80CE17C
+sub_80CE17C: @ 80CE17C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CE1A4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE1A8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A8: .4byte sub_80CE1AC
+ thumb_func_end sub_80CE17C
+
+ thumb_func_start sub_80CE1AC
+sub_80CE1AC: @ 80CE1AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080CE1C0
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CE1FC
+_080CE1C0:
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CE204
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CE208
+ str r0, [r5, 0x1C]
+ ldr r1, _080CE20C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CE1FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE204: .4byte gUnknown_0202F7C8
+_080CE208: .4byte sub_8078B34
+_080CE20C: .4byte move_anim_8072740
+ thumb_func_end sub_80CE1AC
+
+ thumb_func_start sub_80CE210
+sub_80CE210: @ 80CE210
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080CE258
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE252
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _080CE25C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _080CE252
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE258: .4byte gTasks
+_080CE25C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE210
+
+ thumb_func_start unref_sub_80CE260
+unref_sub_80CE260: @ 80CE260
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _080CE2C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080CE2BC
+ ldr r6, _080CE2CC
+ ldr r5, _080CE2D0
+_080CE274:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE290
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE290
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE290:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE2AE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CE2C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE274
+_080CE2BC:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE2C8: .4byte gUnknown_02024A68
+_080CE2CC: .4byte gUnknown_03004B00
+_080CE2D0: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80CE260
+
+ thumb_func_start unref_sub_80CE2D4
+unref_sub_80CE2D4: @ 80CE2D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _080CE2EE
+_080CE2DE:
+ ldr r0, _080CE304
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CE2EE:
+ ldr r0, _080CE308
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE2DE
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE304: .4byte gUnknown_03004340
+_080CE308: .4byte gUnknown_02024A68
+ thumb_func_end unref_sub_80CE2D4
+
+ thumb_func_start sub_80CE30C
+sub_80CE30C: @ 80CE30C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE322
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _080CE32A
+_080CE322:
+ ldr r0, _080CE34C
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CE32A:
+ strh r0, [r4, 0x22]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE350
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE34C: .4byte gUnknown_03004B00
+_080CE350: .4byte sub_80CE354
+ thumb_func_end sub_80CE30C
+
+ thumb_func_start sub_80CE354
+sub_80CE354: @ 80CE354
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE366
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE366:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE354
+
+ thumb_func_start sub_80CE36C
+sub_80CE36C: @ 80CE36C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CE3A4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080CE3A8
+ lsrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r0, _080CE3AC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE3A4: .4byte gUnknown_0202F7C8
+_080CE3A8: .4byte gUnknown_03004B00
+_080CE3AC: .4byte sub_80CE3B0
+ thumb_func_end sub_80CE36C
+
+ thumb_func_start sub_80CE3B0
+sub_80CE3B0: @ 80CE3B0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE3DA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _080CE3DA
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_080CE3DA:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE3E8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE3E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE3B0
+
+ thumb_func_start sub_80CE3EC
+sub_80CE3EC: @ 80CE3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ mov r8, r0
+ ldr r0, _080CE4BC
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, _080CE4C0
+ mov r9, r0
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r6, r5, r0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0xA]
+ strh r4, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ strh r4, [r6, 0x10]
+ strh r4, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ movs r0, 0xD
+ strh r0, [r6, 0x16]
+ movs r0, 0xE
+ strh r0, [r6, 0x18]
+ movs r0, 0xF
+ strh r0, [r6, 0x1A]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ mov r10, r0
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ movs r0, 0x8
+ add r9, r0
+ add r5, r9
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r5, 0x1E
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8079BF4
+ ldr r0, _080CE4C4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ mov r0, r10
+ orrs r0, r1
+ mov r10, r0
+ ldr r0, _080CE4C8
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, _080CE4CC
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080CE4D0
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE4BC: .4byte 0x0000ffff
+_080CE4C0: .4byte gTasks
+_080CE4C4: .4byte 0x000027d2
+_080CE4C8: .4byte 0x000027d3
+_080CE4CC: .4byte 0x00007fbb
+_080CE4D0: .4byte sub_80CE4D4
+ thumb_func_end sub_80CE3EC
+
+ thumb_func_start sub_80CE4D4
+sub_80CE4D4: @ 80CE4D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CE4FC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080CE5C0
+ cmp r1, 0x1
+ bgt _080CE500
+ cmp r1, 0
+ beq _080CE50E
+ b _080CE65E
+ .align 2, 0
+_080CE4FC: .4byte gTasks
+_080CE500:
+ cmp r1, 0x2
+ bne _080CE506
+ b _080CE618
+_080CE506:
+ cmp r1, 0x3
+ bne _080CE50C
+ b _080CE64C
+_080CE50C:
+ b _080CE65E
+_080CE50E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CE51C
+ b _080CE65E
+_080CE51C:
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080CE568
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x18]
+ ldrh r3, [r4, 0x12]
+ adds r2, r3
+ strh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x1A]
+ ldrh r5, [r4, 0x14]
+ adds r1, r5
+ strh r1, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r2, 11
+ orrs r0, r2
+ lsrs r1, 6
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ b _080CE572
+_080CE568:
+ ldr r7, _080CE5B8
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080CE572:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_080CE578:
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ ands r0, r2
+ lsls r5, r2, 17
+ adds r6, r3, 0
+ adds r6, 0x10
+ adds r1, 0x1
+ mov r8, r1
+ cmp r0, 0
+ beq _080CE5A4
+ movs r1, 0x1
+ ldr r2, _080CE5BC
+_080CE590:
+ adds r0, r3, r1
+ lsls r0, 1
+ adds r0, r2
+ mov r7, r12
+ strh r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE590
+_080CE5A4:
+ lsrs r2, r5, 16
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE578
+ b _080CE65E
+ .align 2, 0
+_080CE5B8: .4byte 0x00007fbb
+_080CE5BC: .4byte gPlttBufferFaded
+_080CE5C0:
+ ldr r0, _080CE608
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ movs r2, 0
+ ldr r3, _080CE60C
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, _080CE610
+ mov r8, r7
+ ldr r6, _080CE614
+ movs r5, 0x1
+_080CE5DE:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r1, r0, 2
+ mov r7, r12
+ adds r0, r1, r7
+ ldr r0, [r0]
+ cmp r0, r8
+ beq _080CE5F2
+ cmp r0, r6
+ bne _080CE5F6
+_080CE5F2:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_080CE5F6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080CE5DE
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080CE640
+ .align 2, 0
+_080CE608: .4byte gPaletteFade
+_080CE60C: .4byte gSprites
+_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
+_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
+_080CE618:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CE65E
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_8079BFC
+ ldr r1, _080CE648
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080CE640:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080CE65E
+ .align 2, 0
+_080CE648: .4byte 0x00007fbb
+_080CE64C:
+ ldr r0, _080CE66C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CE65E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE66C: .4byte gPaletteFade
+ thumb_func_end sub_80CE4D4
+
+ thumb_func_start sub_80CE670
+sub_80CE670: @ 80CE670
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CE6F4
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _080CE682
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_080CE682:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _080CE68E
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_080CE68E:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CE6F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5, 0x20]
+ strh r1, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE700
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE6FC
+ b _080CE726
+ .align 2, 0
+_080CE6F4: .4byte gUnknown_03004B00
+_080CE6F8: .4byte gUnknown_0202F7C9
+_080CE6FC: .4byte 0xffffec00
+_080CE700:
+ ldr r0, _080CE740
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE748
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 5
+_080CE726:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE744
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _080CE784
+ .align 2, 0
+_080CE740: .4byte gUnknown_0202F7C8
+_080CE744: .4byte 0xfffff600
+_080CE748:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ subs r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE790
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080CE784:
+ ldr r0, _080CE794
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE790: .4byte 0xffffec00
+_080CE794: .4byte sub_80CE798
+ thumb_func_end sub_80CE670
+
+ thumb_func_start sub_80CE798
+sub_80CE798: @ 80CE798
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CE7CE
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_080CE7CE:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080CE7DC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CE7DC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE798
+
+ thumb_func_start sub_80CE7E0
+sub_80CE7E0: @ 80CE7E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080CE870
+ adds r6, r0, r1
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, _080CE874
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ ldr r2, _080CE878
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ movs r5, 0x1
+ ldr r2, _080CE87C
+_080CE838:
+ adds r1, r3, r5
+ lsls r1, 1
+ adds r1, r2
+ adds r0, r4, r5
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080CE838
+ adds r0, r3, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0
+ bl BlendPalette
+ movs r0, 0
+ strh r0, [r6, 0xE]
+ movs r5, 0
+ ldr r7, _080CE878
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _080CE8B4
+ .align 2, 0
+_080CE870: .4byte gTasks
+_080CE874: .4byte 0x00002771
+_080CE878: .4byte gSprites
+_080CE87C: .4byte gPlttBufferUnfaded
+_080CE880:
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r6, 0xA]
+ lsls r1, 4
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, r5, 7
+ strh r0, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x32]
+ add r2, r9
+ ldr r0, _080CE8E4
+ str r0, [r2]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080CE8B4:
+ cmp r5, 0x1
+ bhi _080CE8C6
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CE880
+_080CE8C6:
+ ldr r0, _080CE8E8
+ str r0, [r6]
+ ldr r0, _080CE8EC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE8F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE8F0
+ b _080CE8FC
+ .align 2, 0
+_080CE8E4: .4byte sub_80CE974
+_080CE8E8: .4byte sub_80CE910
+_080CE8EC: .4byte gUnknown_0202F7C8
+_080CE8F0: .4byte 0x0000fdff
+_080CE8F4:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE90C
+_080CE8FC:
+ ands r0, r1
+ strh r0, [r2]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE90C: .4byte 0x0000fbff
+ thumb_func_end sub_80CE7E0
+
+ thumb_func_start sub_80CE910
+sub_80CE910: @ 80CE910
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080CE944
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CE968
+ ldr r0, _080CE948
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE94C
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080CE956
+ .align 2, 0
+_080CE944: .4byte gTasks
+_080CE948: .4byte gUnknown_0202F7C8
+_080CE94C:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080CE956:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080CE970
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE970: .4byte 0x00002771
+ thumb_func_end sub_80CE910
+
+ thumb_func_start sub_80CE974
+sub_80CE974: @ 80CE974
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE990
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080CE990:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _080CE9B8
+ ldr r2, _080CE9B4
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xE]
+ subs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r5, 0
+ bl obj_delete_but_dont_free_vram
+ b _080CE9FA
+ .align 2, 0
+_080CE9B4: .4byte gTasks
+_080CE9B8:
+ ldr r4, _080CEA00
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x6
+ bl __divsi3
+ strh r0, [r5, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xD
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrh r1, [r5, 0x30]
+ adds r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+_080CE9FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA00: .4byte gSineTable
+ thumb_func_end sub_80CE974
+
+ thumb_func_start sub_80CEA04
+sub_80CEA04: @ 80CEA04
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CEA18
+ bl oamt_set_x3A_32
+ ldr r0, _080CEA1C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA18: .4byte move_anim_8072740
+_080CEA1C: .4byte sub_8078600
+ thumb_func_end sub_80CEA04
+
+ thumb_func_start sub_80CEA20
+sub_80CEA20: @ 80CEA20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _080CEAD0
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _080CEA64
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, _080CEAD4
+_080CEA4C:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r5
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA4C
+_080CEA64:
+ movs r4, 0x1
+ ldr r0, _080CEAD0
+ mov r8, r0
+_080CEA6A:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 2
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, 0x1
+ mov r12, r4
+ cmp r3, 0xFF
+ beq _080CEAB2
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, _080CEAD4
+ ldr r6, _080CEAD0
+ adds r4, r5, 0
+_080CEA98:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r7
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA98
+_080CEAB2:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEA6A
+ mov r0, r9
+ bl move_anim_task_del
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEAD0: .4byte gUnknown_083D712C
+_080CEAD4: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CEA20
+
+ thumb_func_start sub_80CEAD8
+sub_80CEAD8: @ 80CEAD8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, _080CEB08
+_080CEAE2:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEAE2
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEB08: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEAD8
+
+ thumb_func_start sub_80CEB0C
+sub_80CEB0C: @ 80CEB0C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080CEB64
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEB68
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEB48
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_080CEB48:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CEB6C
+ movs r6, 0x30
+ movs r3, 0x28
+ b _080CEB86
+ .align 2, 0
+_080CEB64: .4byte gUnknown_03004B00
+_080CEB68: .4byte gUnknown_083D712C
+_080CEB6C:
+ ldr r4, _080CEBBC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080CEB86:
+ ldrh r0, [r5, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r5, 0x36]
+ ldrh r1, [r5, 0x22]
+ lsls r2, r1, 4
+ strh r2, [r5, 0x38]
+ subs r0, r6, r0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r5, 0
+ adds r2, 0x3A
+ adds r3, r5, 0
+ adds r3, 0x3C
+ movs r4, 0x28
+ str r4, [sp]
+ bl sub_80CEBC4
+ ldr r0, _080CEBC0
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEBBC: .4byte gUnknown_0202F7C9
+_080CEBC0: .4byte sub_80CEC1C
+ thumb_func_end sub_80CEB0C
+
+ thumb_func_start sub_80CEBC4
+sub_80CEBC4: @ 80CEBC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x18]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bge _080CEBE6
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_080CEBE6:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080CEBFA
+ movs r4, 0x1
+_080CEBFA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ strh r0, [r7]
+ lsls r0, r6, 16
+ asrs r0, 8
+ adds r1, r4, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEBC4
+
+ thumb_func_start sub_80CEC1C
+sub_80CEC1C: @ 80CEC1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r1, r0, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080CEC38
+ adds r0, 0xFF
+_080CEC38:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x38]
+ adds r2, r3
+ strh r2, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xF
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080CEC86
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _080CEC86
+ cmp r1, 0x80
+ ble _080CEC8E
+_080CEC86:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _080CECDE
+_080CEC8E:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080CECDE
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _080CECDE
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CECB6
+ strh r5, [r4, 0x30]
+_080CECB6:
+ ldr r2, _080CECE4
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CECDE
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CECDE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CECE4: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEC1C
+
+ thumb_func_start sub_80CECE8
+sub_80CECE8: @ 80CECE8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _080CED6C
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CED06
+ ldr r1, _080CED70
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080CED06:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CED70
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x32]
+ strh r5, [r6, 0x34]
+ ldrh r0, [r6, 0x20]
+ lsls r0, 4
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x22]
+ lsls r0, 4
+ strh r0, [r6, 0x38]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3A]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3C]
+ ldr r0, _080CED74
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CED6C: .4byte gUnknown_0202F7C8
+_080CED70: .4byte gUnknown_03004B00
+_080CED74: .4byte sub_80CED78
+ thumb_func_end sub_80CECE8
+
+ thumb_func_start sub_80CED78
+sub_80CED78: @ 80CED78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _080CEDD6
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CEDD6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x12
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x12
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CEDD6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_080CEDD6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _080CEDEA
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CEDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CED78
+
+ thumb_func_start sub_80CEDF0
+sub_80CEDF0: @ 80CEDF0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEE10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080CEE14
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ movs r6, 0x10
+ b _080CEE16
+ .align 2, 0
+_080CEE10: .4byte gUnknown_03004B00
+_080CEE14:
+ ldr r6, _080CEE50
+_080CEE16:
+ ldr r4, _080CEE54
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CEE58
+ str r0, [r5, 0x1C]
+ ldr r1, _080CEE5C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEE50: .4byte 0x0000fff0
+_080CEE54: .4byte gUnknown_0202F7C8
+_080CEE58: .4byte sub_80782D8
+_080CEE5C: .4byte move_anim_8072740
+ thumb_func_end sub_80CEDF0
+
+ thumb_func_start sub_80CEE60
+sub_80CEE60: @ 80CEE60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, _080CEED8
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEEDC
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEEA0
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CEEA0:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _080CEEAC
+ ldr r2, _080CEEE0
+_080CEEAC:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CEEE4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEED8: .4byte gUnknown_03004B00
+_080CEEDC: .4byte gUnknown_083D712C
+_080CEEE0: .4byte 0x0000ffe0
+_080CEEE4: .4byte sub_80CEEE8
+ thumb_func_end sub_80CEE60
+
+ thumb_func_start sub_80CEEE8
+sub_80CEEE8: @ 80CEEE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF38
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r4, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080CEF14
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080CEF14:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CEF3E
+_080CEF38:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CEF3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEEE8
+
+ thumb_func_start sub_80CEF44
+sub_80CEF44: @ 80CEF44
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF64
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+ b _080CEF6E
+_080CEF64:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+_080CEF6E:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CEF90
+ adds r0, 0x3
+_080CEF90:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEF44
+
+ thumb_func_start sub_80CEF9C
+sub_80CEF9C: @ 80CEF9C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEFB0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CEFB8
+ ldr r0, _080CEFB4
+ b _080CEFBA
+ .align 2, 0
+_080CEFB0: .4byte gUnknown_03004B00
+_080CEFB4: .4byte gUnknown_0202F7C8
+_080CEFB8:
+ ldr r0, _080CEFF8
+_080CEFBA:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, _080CEFFC
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x30]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF000
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF004
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEFF8: .4byte gUnknown_0202F7C9
+_080CEFFC: .4byte gUnknown_03004B00
+_080CF000: .4byte sub_80CF008
+_080CF004: .4byte sub_8078600
+ thumb_func_end sub_80CEF9C
+
+ thumb_func_start sub_80CF008
+sub_80CF008: @ 80CF008
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF030
+ ldr r1, _080CF038
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080CF03C
+ str r0, [r4, 0x1C]
+_080CF030:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF038: .4byte move_anim_8072740
+_080CF03C: .4byte sub_8078600
+ thumb_func_end sub_80CF008
+
+ thumb_func_start sub_80CF040
+sub_80CF040: @ 80CF040
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF054
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF05C
+ ldr r0, _080CF058
+ b _080CF05E
+ .align 2, 0
+_080CF054: .4byte gUnknown_03004B00
+_080CF058: .4byte gUnknown_0202F7C8
+_080CF05C:
+ ldr r0, _080CF07C
+_080CF05E:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, _080CF080
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF084
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF07C: .4byte gUnknown_0202F7C9
+_080CF080: .4byte sub_80CF088
+_080CF084: .4byte sub_80785E4
+ thumb_func_end sub_80CF040
+
+ thumb_func_start sub_80CF088
+sub_80CF088: @ 80CF088
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CF0AE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080CF0B4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF0B8
+ str r0, [r4, 0x1C]
+_080CF0AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF0B4: .4byte move_anim_8074EE0
+_080CF0B8: .4byte sub_80785E4
+ thumb_func_end sub_80CF088
+
+ thumb_func_start sub_80CF0BC
+sub_80CF0BC: @ 80CF0BC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF0D0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF0D8
+ ldr r0, _080CF0D4
+ b _080CF0DA
+ .align 2, 0
+_080CF0D0: .4byte gUnknown_03004B00
+_080CF0D4: .4byte gUnknown_0202F7C8
+_080CF0D8:
+ ldr r0, _080CF12C
+_080CF0DA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080CF102
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_080CF102:
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r1]
+ adds r0, 0x4
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ ldr r1, _080CF130
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF134
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF12C: .4byte gUnknown_0202F7C9
+_080CF130: .4byte sub_80CF138
+_080CF134: .4byte sub_80785E4
+ thumb_func_end sub_80CF0BC
+
+ thumb_func_start sub_80CF138
+sub_80CF138: @ 80CF138
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080CF14E
+ ldr r0, _080CF154
+ str r0, [r1, 0x1C]
+_080CF14E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF154: .4byte sub_80CF158
+ thumb_func_end sub_80CF138
+
+ thumb_func_start sub_80CF158
+sub_80CF158: @ 80CF158
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFE
+ ble _080CF18A
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CF184
+ strh r0, [r2, 0x24]
+ ldr r0, _080CF180
+ str r0, [r2, 0x1C]
+ b _080CF1C0
+ .align 2, 0
+_080CF180: .4byte sub_80CF088
+_080CF184:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_080CF18A:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _080CF19A
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF19A:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _080CF1AA
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF1AA:
+ ldr r1, _080CF1C4
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ asrs r1, r0, 1
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080CF1C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF1C4: .4byte gSineTable
+ thumb_func_end sub_80CF158
+
+ thumb_func_start sub_80CF1C8
+sub_80CF1C8: @ 80CF1C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CF1DC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF1E4
+ ldr r0, _080CF1E0
+ b _080CF1E6
+ .align 2, 0
+_080CF1DC: .4byte gUnknown_03004B00
+_080CF1E0: .4byte gUnknown_0202F7C8
+_080CF1E4:
+ ldr r0, _080CF208
+_080CF1E6:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF20C
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _080CF216
+ .align 2, 0
+_080CF208: .4byte gUnknown_0202F7C9
+_080CF20C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_080CF216:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CF224
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF224: .4byte sub_80CF228
+ thumb_func_end sub_80CF1C8
+
+ thumb_func_start sub_80CF228
+sub_80CF228: @ 80CF228
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080CF256
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF25C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF260
+ str r0, [r4, 0x1C]
+_080CF256:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF25C: .4byte sub_80CF264
+_080CF260: .4byte sub_8078600
+ thumb_func_end sub_80CF228
+
+ thumb_func_start sub_80CF264
+sub_80CF264: @ 80CF264
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CF27C
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF27C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF264
+
+ thumb_func_start sub_80CF280
+sub_80CF280: @ 80CF280
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF2C4
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r1, _080CF2C8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080CF2CC
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C8: .4byte move_anim_8074EE0
+_080CF2CC: .4byte sub_8078278
+ thumb_func_end sub_80CF280
+
+ thumb_func_start sub_80CF2D0
+sub_80CF2D0: @ 80CF2D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF2E4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF2EC
+ ldr r0, _080CF2E8
+ b _080CF2EE
+ .align 2, 0
+_080CF2E4: .4byte gUnknown_03004B00
+_080CF2E8: .4byte gUnknown_0202F7C8
+_080CF2EC:
+ ldr r0, _080CF308
+_080CF2EE:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CF30C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF308: .4byte gUnknown_0202F7C9
+_080CF30C: .4byte sub_80CF310
+ thumb_func_end sub_80CF2D0
+
+ thumb_func_start sub_80CF310
+sub_80CF310: @ 80CF310
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080CF342
+ cmp r0, 0x1
+ bgt _080CF326
+ cmp r0, 0
+ beq _080CF32C
+ b _080CF370
+_080CF326:
+ cmp r0, 0x2
+ beq _080CF35C
+ b _080CF370
+_080CF32C:
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CF370
+ b _080CF354
+_080CF342:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF370
+_080CF354:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080CF370
+_080CF35C:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080CF370
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF370:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF310
+
+ thumb_func_start sub_80CF374
+sub_80CF374: @ 80CF374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _080CF3C0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080CF3B2
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CF3B2:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF3C0: .4byte gSprites
+ thumb_func_end sub_80CF374
+
+ thumb_func_start sub_80CF3C4
+sub_80CF3C4: @ 80CF3C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CF40C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080CF410
+ ldr r0, _080CF414
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF41C
+ ldr r0, _080CF418
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _080CF426
+ .align 2, 0
+_080CF40C: .4byte gUnknown_0202F7C8
+_080CF410: .4byte gUnknown_02024BE0
+_080CF414: .4byte gUnknown_0202F7C9
+_080CF418: .4byte gUnknown_03004B00
+_080CF41C:
+ ldr r1, _080CF450
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080CF426:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ strh r6, [r5, 0x32]
+ ldr r0, _080CF454
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF450: .4byte gUnknown_03004B00
+_080CF454: .4byte sub_80CF374
+ thumb_func_end sub_80CF3C4
+
+ thumb_func_start sub_80CF458
+sub_80CF458: @ 80CF458
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080CF484
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CF488
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF48C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF484: .4byte gUnknown_03004B00
+_080CF488: .4byte sub_80782D8
+_080CF48C: .4byte sub_80CF490
+ thumb_func_end sub_80CF458
+
+ thumb_func_start sub_80CF490
+sub_80CF490: @ 80CF490
+ push {lr}
+ ldrh r1, [r0, 0x30]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0xF
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF4B0
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF4B4
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF4B0: .4byte sub_8078B34
+_080CF4B4: .4byte sub_80CF4B8
+ thumb_func_end sub_80CF490
+
+ thumb_func_start sub_80CF4B8
+sub_80CF4B8: @ 80CF4B8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CF4CE
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080CF4D2
+_080CF4CE:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_080CF4D2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF4B8
+
+ thumb_func_start sub_80CF4D8
+sub_80CF4D8: @ 80CF4D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080CF504
+ ldr r0, _080CF508
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r1, _080CF50C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CF510
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF504: .4byte gUnknown_02024BE0
+_080CF508: .4byte gUnknown_0202F7C8
+_080CF50C: .4byte gTasks
+_080CF510: .4byte sub_80CF514
+ thumb_func_end sub_80CF4D8
+
+ thumb_func_start sub_80CF514
+sub_80CF514: @ 80CF514
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CF544
+ ldr r0, _080CF548
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF550
+ ldr r1, _080CF54C
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r6, r2, 0
+ b _080CF55E
+ .align 2, 0
+_080CF544: .4byte gUnknown_02024BE0
+_080CF548: .4byte gUnknown_0202F7C8
+_080CF54C: .4byte gTasks
+_080CF550:
+ ldr r2, _080CF590
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_080CF55E:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080CF590
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CF598
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF594
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _080CF5C2
+ .align 2, 0
+_080CF590: .4byte gTasks
+_080CF594: .4byte gSprites
+_080CF598:
+ cmp r0, 0x1
+ bne _080CF5AE
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _080CF608
+ movs r0, 0x2
+ b _080CF606
+_080CF5AE:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF5FC
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_080CF5C2:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_8078F9C
+ ldr r0, _080CF600
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ movs r0, 0xF2
+ lsls r0, 4
+ cmp r2, r0
+ beq _080CF5E2
+ cmp r2, 0
+ bne _080CF608
+_080CF5E2:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _080CF604
+ adds r0, r4, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080CF608
+ .align 2, 0
+_080CF5FC: .4byte gSprites
+_080CF600: .4byte gTasks
+_080CF604:
+ adds r0, r2, 0x1
+_080CF606:
+ strh r0, [r1, 0xA]
+_080CF608:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF514
+
+ thumb_func_start sub_80CF610
+sub_80CF610: @ 80CF610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF658
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CF65C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF660
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r1, r0
+ strb r1, [r2]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _080CF674
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+ b _080CF674
+ .align 2, 0
+_080CF658: .4byte gUnknown_03004B00
+_080CF65C: .4byte gUnknown_0202F7C8
+_080CF660:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CF674
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_080CF674:
+ ldr r0, _080CF688
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF68C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF688: .4byte sub_8078600
+_080CF68C: .4byte move_anim_8072740
+ thumb_func_end sub_80CF610
+
+ thumb_func_start sub_80CF690
+sub_80CF690: @ 80CF690
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CF6AC
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF6B0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6AC: .4byte sub_80785E4
+_080CF6B0: .4byte sub_80CF6B4
+ thumb_func_end sub_80CF690
+
+ thumb_func_start sub_80CF6B4
+sub_80CF6B4: @ 80CF6B4
+ push {lr}
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF6D4
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF6D8
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6D4: .4byte sub_8078B34
+_080CF6D8: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6B4
+
+ thumb_func_start sub_80CF6DC
+sub_80CF6DC: @ 80CF6DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF700
+ ldr r1, _080CF6FC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080CF722
+ .align 2, 0
+_080CF6FC: .4byte gUnknown_03004B00
+_080CF700:
+ ldr r0, _080CF7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF722
+ ldr r1, _080CF7CC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080CF722:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CF7D0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r6, _080CF7CC
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF794
+ ldr r2, _080CF7D4
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CF794:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CF7D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080CF7DC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF7C8: .4byte gUnknown_0202F7C8
+_080CF7CC: .4byte gUnknown_03004B00
+_080CF7D0: .4byte gUnknown_0202F7C9
+_080CF7D4: .4byte 0xffffa000
+_080CF7D8: .4byte sub_8078B34
+_080CF7DC: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6DC
+
+ thumb_func_start sub_80CF7E0
+sub_80CF7E0: @ 80CF7E0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF80A
+ ldr r2, _080CF810
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ adds r0, r3, 0
+ bl DestroySprite
+_080CF80A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF810: .4byte gTasks
+ thumb_func_end sub_80CF7E0
+
+ thumb_func_start sub_80CF814
+sub_80CF814: @ 80CF814
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF844
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _080CF848
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x36]
+ ldrh r3, [r2, 0x3A]
+ adds r0, r3
+ b _080CF856
+ .align 2, 0
+_080CF844: .4byte gTasks
+_080CF848:
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x34]
+ subs r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ subs r0, r1
+_080CF856:
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x30]
+ adds r3, r0, r1
+ strh r3, [r2, 0x30]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF87A
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF87E
+_080CF87A:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_080CF87E:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF892
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF896
+_080CF892:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_080CF896:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF8AC
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CF8B4
+ str r0, [r2, 0x1C]
+_080CF8AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF8B4: .4byte sub_80CF7E0
+ thumb_func_end sub_80CF814
+
+ thumb_func_start sub_80CF8B8
+sub_80CF8B8: @ 80CF8B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF8FC
+ adds r6, r0, r1
+ ldrh r2, [r6, 0x16]
+ movs r1, 0x2
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r3, [r7, 0x30]
+ adds r2, r0, r3
+ strh r2, [r7, 0x30]
+ ldrh r0, [r6, 0x18]
+ ands r1, r0
+ ldrh r0, [r7, 0x32]
+ adds r1, r0
+ strh r1, [r7, 0x32]
+ ldrh r1, [r6, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF900
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF904
+ .align 2, 0
+_080CF8FC: .4byte gTasks
+_080CF900:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_080CF904:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF918
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF91C
+_080CF918:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_080CF91C:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF9E8
+ movs r4, 0
+ movs r0, 0x8
+ strh r0, [r7, 0x2E]
+ movs r0, 0x4
+ strh r0, [r6, 0x12]
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_81174E0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r2, r0, r1
+ strh r2, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r3, [r7, 0x22]
+ adds r0, r3
+ strh r0, [r7, 0x22]
+ strh r4, [r7, 0x26]
+ strh r4, [r7, 0x24]
+ ldrh r3, [r6, 0x1E]
+ movs r0, 0x1E
+ ldrsh r1, [r6, r0]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ blt _080CF966
+ subs r0, r3, r2
+ b _080CF968
+_080CF966:
+ subs r0, r2, r3
+_080CF968:
+ lsls r0, 24
+ lsrs r4, r0, 16
+ ldrh r3, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r7, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080CF980
+ subs r0, r3, r2
+ b _080CF982
+_080CF980:
+ subs r0, r2, r3
+_080CF982:
+ lsls r0, 24
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ strh r0, [r7, 0x30]
+ strh r0, [r7, 0x3A]
+ strh r0, [r7, 0x38]
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x36]
+ ldr r0, _080CF9F4
+ str r0, [r7, 0x1C]
+_080CF9E8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF9F4: .4byte sub_80CF814
+ thumb_func_end sub_80CF8B8
+
+ thumb_func_start sub_80CF9F8
+sub_80CF9F8: @ 80CF9F8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CFA1C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CFA16
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CFA16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFA1C: .4byte gTasks
+ thumb_func_end sub_80CF9F8
+
+ thumb_func_start sub_80CFA20
+sub_80CFA20: @ 80CFA20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080CFA74
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CFAF4
+ ldr r0, _080CFA78
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0xC]
+ ldrb r4, [r5, 0xA]
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r0, 4
+ add r0, r12
+ lsls r0, 2
+ ldr r1, _080CFA7C
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CFA80
+ cmp r0, 0x2
+ beq _080CFA96
+ b _080CFAA4
+ .align 2, 0
+_080CFA74: .4byte gTasks
+_080CFA78: .4byte gSpriteTemplate_83D74BC
+_080CFA7C: .4byte gSprites
+_080CFA80:
+ ldrb r2, [r6, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ b _080CFAA4
+_080CFA96:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_080CFAA4:
+ ldr r3, _080CFAFC
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r4, r2, r3
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r6, 0x2E]
+ strh r7, [r6, 0x3C]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xD
+ lsls r0, 1
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ mov r2, r12
+ strh r2, [r0]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0x3F
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9A
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _080CFAF4
+ ldr r0, _080CFB00
+ str r0, [r4]
+_080CFAF4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFAFC: .4byte gTasks
+_080CFB00: .4byte sub_80CF9F8
+ thumb_func_end sub_80CFA20
+
+ thumb_func_start sub_80CFB04
+sub_80CFB04: @ 80CFB04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ mov r0, sp
+ mov r1, r9
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r1, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _080CFB70
+ ldr r1, _080CFB60
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, _080CFB64
+ ldrh r0, [r3]
+ negs r0, r0
+ strh r0, [r3]
+ ldrh r1, [r3, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _080CFB68
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+ .align 2, 0
+_080CFB60: .4byte gTasks
+_080CFB64: .4byte gUnknown_03004B00
+_080CFB68:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+_080CFB70:
+ ldr r1, _080CFBB4
+ ldr r0, _080CFBB8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0
+ bne _080CFBCA
+ ldr r1, _080CFBBC
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, _080CFBC0
+ ldrh r0, [r2]
+ negs r0, r0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ negs r0, r0
+ strh r0, [r2, 0x2]
+ ldrh r1, [r2, 0x4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFBC4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _080CFBC8
+ .align 2, 0
+_080CFBB4: .4byte gUnknown_02024A72
+_080CFBB8: .4byte gUnknown_0202F7C9
+_080CFBBC: .4byte gTasks
+_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC4:
+ movs r0, 0x1
+ orrs r0, r1
+_080CFBC8:
+ strh r0, [r2, 0x4]
+_080CFBCA:
+ ldr r5, _080CFC24
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080CFC28
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ adds r6, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, _080CFC2C
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFC34
+ ldr r4, _080CFC30
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFC34
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl sub_807A3FC
+ b _080CFC56
+ .align 2, 0
+_080CFC24: .4byte gUnknown_0202F7C8
+_080CFC28: .4byte gTasks
+_080CFC2C: .4byte gUnknown_020239F8
+_080CFC30: .4byte gUnknown_0202F7C9
+_080CFC34:
+ mov r5, sp
+ ldr r4, _080CFC90
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_080CFC56:
+ mov r4, sp
+ ldr r0, _080CFC94
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, _080CFC98
+ ldrh r0, [r3]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r1, 0x1E]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ mov r3, r10
+ ldrh r3, [r3]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ mov r1, r10
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ cmp r0, r1
+ blt _080CFC9C
+ subs r0, r2, r1
+ b _080CFC9E
+ .align 2, 0
+_080CFC90: .4byte gUnknown_0202F7C9
+_080CFC94: .4byte gTasks
+_080CFC98: .4byte gUnknown_03004B00
+_080CFC9C:
+ subs r0, r1, r2
+_080CFC9E:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, _080CFD14
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ ldr r2, _080CFD18
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r6, r1, r2
+ strh r0, [r6, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ movs r1, 0x80
+ bl sub_81174C4
+ strh r0, [r6, 0x14]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r6, 0x16]
+ mov r2, r10
+ ldrh r1, [r2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ mov r4, r9
+ cmp r0, r4
+ blt _080CFD1C
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _080CFD3C
+ .align 2, 0
+_080CFD14: .4byte gUnknown_03004B00
+_080CFD18: .4byte gTasks
+_080CFD1C:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_080CFD3C:
+ ldr r1, _080CFD7C
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, _080CFD80
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFD8C
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFD84
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CFD88
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFD7C: .4byte gTasks
+_080CFD80: .4byte gUnknown_03004B00
+_080CFD84: .4byte gUnknown_0202F7C9
+_080CFD88: .4byte 0x0000ffc0
+_080CFD8C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFDAC
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080CFDB0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFDAC: .4byte gUnknown_0202F7C9
+_080CFDB0: .4byte 0x0000ffc0
+_080CFDB4:
+ ldr r0, _080CFDF0
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_080CFDC4:
+ strh r0, [r5, 0xC]
+ ldr r0, _080CFDF4
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _080CFDDC
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_080CFDDC:
+ ldr r0, _080CFDF8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFDF0: .4byte gUnknown_0202F7C9
+_080CFDF4: .4byte gTasks
+_080CFDF8: .4byte sub_80CFA20
+ thumb_func_end sub_80CFB04
+
+ thumb_func_start sub_80CFDFC
+sub_80CFDFC: @ 80CFDFC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CFE24
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CFE28
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE24: .4byte gSpriteTemplate_83D75AC
+_080CFE28: .4byte sub_80CFE2C
+ thumb_func_end sub_80CFDFC
+
+ thumb_func_start sub_80CFE2C
+sub_80CFE2C: @ 80CFE2C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFE90
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, _080CFE98
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ adds r6, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x9
+ lsls r0, r5, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ movs r3, 0x7
+ lsls r1, 1
+ adds r1, r6
+_080CFE64:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080CFE64
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080CFE90
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFE90:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE98: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CFE2C
+
+ thumb_func_start sub_80CFE9C
+sub_80CFE9C: @ 80CFE9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CFF3C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CFF40
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080CFF44
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFEE0
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_080CFEE0:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CFF48
+ str r0, [r5, 0x1C]
+ ldr r1, _080CFF4C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFF3C: .4byte gUnknown_0202F7C9
+_080CFF40: .4byte gUnknown_03004B00
+_080CFF44: .4byte gUnknown_0202F7C8
+_080CFF48: .4byte sub_8078C00
+_080CFF4C: .4byte move_anim_8072740
+ thumb_func_end sub_80CFE9C
+
+ thumb_func_start sub_80CFF50
+sub_80CFF50: @ 80CFF50
+ ldr r1, _080CFF60
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, _080CFF64
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CFF60: .4byte 0x0000fff0
+_080CFF64: .4byte sub_80CFF68
+ thumb_func_end sub_80CFF50
+
+ thumb_func_start sub_80CFF68
+sub_80CFF68: @ 80CFF68
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldr r0, _080CFFD4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CFF8C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080CFF8C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080CFFCC
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFFCC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFFCC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFFD4: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80CFF68
+
+ thumb_func_start sub_80CFFD8
+sub_80CFFD8: @ 80CFFD8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080D0024
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0028
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D002C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0024: .4byte gUnknown_0202F7C9
+_080D0028: .4byte sub_8078B34
+_080D002C: .4byte sub_80D0030
+ thumb_func_end sub_80CFFD8
+
+ thumb_func_start sub_80D0030
+sub_80D0030: @ 80D0030
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA6
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, r4, 0
+ adds r0, 0x3C
+_080D0064:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D0064
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, _080D00AC
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D00B0
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D00AC: .4byte 0x0000fff4
+_080D00B0: .4byte sub_80D00B4
+ thumb_func_end sub_80D0030
+
+ thumb_func_start sub_80D00B4
+sub_80D00B4: @ 80D00B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 24
+ strh r2, [r4, 0x24]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D00D2
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_080D00D2:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080D0112
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D0112
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0112:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D00B4
+
+ thumb_func_start sub_80D0118
+sub_80D0118: @ 80D0118
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D0168
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0136
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_080D0136:
+ ldr r1, _080D016C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0170
+ str r0, [r4, 0x1C]
+ ldr r1, _080D0174
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0168: .4byte gUnknown_0202F7C8
+_080D016C: .4byte gUnknown_03004B00
+_080D0170: .4byte sub_8078114
+_080D0174: .4byte move_anim_8072740
+ thumb_func_end sub_80D0118
+
+ thumb_func_start sub_80D0178
+sub_80D0178: @ 80D0178
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, _080D01F4
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, _080D01F8
+ ldr r0, _080D01FC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D01A4
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D01A4:
+ lsls r0, r7, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D0200
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080D0204
+ str r0, [r5, 0x1C]
+ ldr r1, _080D0208
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D01F4: .4byte 0x0000ffe0
+_080D01F8: .4byte 0x0000fff0
+_080D01FC: .4byte gUnknown_03004B00
+_080D0200: .4byte gUnknown_0202F7C9
+_080D0204: .4byte sub_8078B34
+_080D0208: .4byte sub_80D020C
+ thumb_func_end sub_80D0178
+
+ thumb_func_start sub_80D020C
+sub_80D020C: @ 80D020C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0222
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D0222:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D020C
+
+ thumb_func_start sub_80D0228
+sub_80D0228: @ 80D0228
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x20
+ mov r8, r0
+ ldr r4, _080D02BC
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, _080D02C0
+ ldr r7, _080D02C4
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _080D025C
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_080D025C:
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D02C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r9
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D02CC
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D02BC: .4byte 0x0000ffe0
+_080D02C0: .4byte 0x0000fff0
+_080D02C4: .4byte gUnknown_03004B00
+_080D02C8: .4byte gUnknown_0202F7C9
+_080D02CC: .4byte sub_80D02D0
+ thumb_func_end sub_80D0228
+
+ thumb_func_start sub_80D02D0
+sub_80D02D0: @ 80D02D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ ldr r0, _080D033C
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ eors r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x36]
+ strh r2, [r4, 0x34]
+ ldr r0, _080D0340
+ str r0, [r4, 0x1C]
+_080D0334:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D033C: .4byte 0x0000fffe
+_080D0340: .4byte sub_80D0344
+ thumb_func_end sub_80D02D0
+
+ thumb_func_start sub_80D0344
+sub_80D0344: @ 80D0344
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D035C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080D035C:
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D039E
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080D03A4
+ str r0, [r4, 0x1C]
+_080D039E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D03A4: .4byte sub_80D03A8
+ thumb_func_end sub_80D0344
+
+ thumb_func_start sub_80D03A8
+sub_80D03A8: @ 80D03A8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D03BC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D03BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D03A8
+
+ thumb_func_start sub_80D03C4
+sub_80D03C4: @ 80D03C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080D041C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+ ldr r1, _080D0420
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, _080D0424
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D041C: .4byte gSprites
+_080D0420: .4byte gTasks
+_080D0424: .4byte sub_80D0428
+ thumb_func_end sub_80D03C4
+
+ thumb_func_start sub_80D0428
+sub_80D0428: @ 80D0428
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D0480
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D0478
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080D0484
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0x1
+ bl sub_8079108
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D0478:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0480: .4byte gTasks
+_080D0484: .4byte gSprites
+ thumb_func_end sub_80D0428
+
+ thumb_func_start sub_80D0488
+sub_80D0488: @ 80D0488
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D04D4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldr r0, _080D04D8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, _080D04DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D04D4: .4byte gTasks
+_080D04D8: .4byte gUnknown_0202F7C8
+_080D04DC: .4byte sub_80D04E0
+ thumb_func_end sub_80D0488
+
+ thumb_func_start sub_80D04E0
+sub_80D04E0: @ 80D04E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D0504
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080D04FA
+ b _080D060A
+_080D04FA:
+ lsls r0, 2
+ ldr r1, _080D0508
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D0504: .4byte gTasks
+_080D0508: .4byte _080D050C
+ .align 2, 0
+_080D050C:
+ .4byte _080D0524
+ .4byte _080D056C
+ .4byte _080D05A2
+ .4byte _080D05A8
+ .4byte _080D05B8
+ .4byte _080D05EC
+_080D0524:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D0534
+ cmp r0, 0x3
+ beq _080D0534
+ cmp r0, 0x6
+ bne _080D053C
+_080D0534:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80D0614
+_080D053C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x28
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _080D05E4
+_080D056C:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D060A
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _080D0582
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _080D060A
+_080D0582:
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A2:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080D060A
+ b _080D05E0
+_080D05B8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x50
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+_080D05E0:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_080D05E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05EC:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ ldr r2, _080D0610
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D060A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0610: .4byte gSprites
+ thumb_func_end sub_80D04E0
+
+ thumb_func_start sub_80D0614
+sub_80D0614: @ 80D0614
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _080D06EE
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080D0658
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080D0654
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _080D06EE
+ .align 2, 0
+_080D0654: .4byte gSprites
+_080D0658:
+ ldr r5, _080D06FC
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r4, r3, r5
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrb r0, [r7, 0x16]
+ ldrb r1, [r7, 0xE]
+ subs r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r7, 0xE]
+ adds r0, 0x1
+ strh r0, [r7, 0xE]
+ ldrh r0, [r7, 0x14]
+ adds r0, 0x1
+ strh r0, [r7, 0x14]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ movs r0, 0x6
+ strh r0, [r4, 0x32]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r0, _080D0700
+ str r0, [r3]
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ ldrsh r2, [r7, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0x1
+ orrs r3, r0
+ strb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_080D06EE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D06FC: .4byte gSprites
+_080D0700: .4byte sub_80D0704
+ thumb_func_end sub_80D0614
+
+ thumb_func_start sub_80D0704
+sub_80D0704: @ 80D0704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0742
+ ldr r3, _080D0748
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080D0742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0748: .4byte gTasks
+ thumb_func_end sub_80D0704
+
+ thumb_func_start sub_80D074C
+sub_80D074C: @ 80D074C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D0770
+ adds r4, r0, r1
+ ldr r5, _080D0774
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D0778
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D079E
+ .align 2, 0
+_080D0770: .4byte gTasks
+_080D0774: .4byte gUnknown_03004B00
+_080D0778:
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r2, [r4, 0x10]
+ ldr r2, _080D07A4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D07A8
+ str r0, [r4]
+_080D079E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D07A4: .4byte gUnknown_083D76F4
+_080D07A8: .4byte sub_80D07AC
+ thumb_func_end sub_80D074C
+
+ thumb_func_start sub_80D07AC
+sub_80D07AC: @ 80D07AC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D07D0
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D0814
+ cmp r5, 0x1
+ bgt _080D07D4
+ cmp r5, 0
+ beq _080D07DE
+ b _080D08BC
+ .align 2, 0
+_080D07D0: .4byte gTasks
+_080D07D4:
+ cmp r5, 0x2
+ beq _080D0848
+ cmp r5, 0x3
+ beq _080D0878
+ b _080D08BC
+_080D07DE:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, _080D0810
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ strh r5, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0810: .4byte gSprites
+_080D0814:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldr r2, _080D0844
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0844: .4byte gSprites
+_080D0848:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D0870
+ ldr r2, _080D086C
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x2
+ strh r0, [r4, 0x10]
+ b _080D08BC
+ .align 2, 0
+_080D086C: .4byte gSprites
+_080D0870:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D08BC
+_080D0878:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D08BC
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D08B0
+ ldr r2, _080D08AC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080D08BC
+ .align 2, 0
+_080D08AC: .4byte gSprites
+_080D08B0:
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080D08C4
+ adds r0, r4, 0
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+_080D08BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08C4: .4byte gUnknown_083D76F4
+ thumb_func_end sub_80D07AC
+
+ thumb_func_start sub_80D08C8
+sub_80D08C8: @ 80D08C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D08F8
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D08FC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0900
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08F8: .4byte gTasks
+_080D08FC: .4byte gUnknown_083D7714
+_080D0900: .4byte sub_80D0904
+ thumb_func_end sub_80D08C8
+
+ thumb_func_start sub_80D0904
+sub_80D0904: @ 80D0904
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D092C
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0924
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0924:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D092C: .4byte gTasks
+ thumb_func_end sub_80D0904
+
+ thumb_func_start sub_80D0930
+sub_80D0930: @ 80D0930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D0960
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0964
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080D097E
+ .align 2, 0
+_080D0960: .4byte gUnknown_0202F7C8
+_080D0964:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, _080D09B0
+_080D097E:
+ strh r0, [r4, 0x30]
+ ldr r0, _080D09B4
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r0, 0x34
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ ldr r1, _080D09B8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D09BC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D09B0: .4byte 0x0000ffc0
+_080D09B4: .4byte gUnknown_0202F7C8
+_080D09B8: .4byte move_anim_8072740
+_080D09BC: .4byte sub_8078394
+ thumb_func_end sub_80D0930
+
+ thumb_func_start sub_80D09C0
+sub_80D09C0: @ 80D09C0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D09D4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D09DC
+ ldr r0, _080D09D8
+ b _080D09DE
+ .align 2, 0
+_080D09D4: .4byte gUnknown_03004B00
+_080D09D8: .4byte gUnknown_0202F7C8
+_080D09DC:
+ ldr r0, _080D0A3C
+_080D09DE:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D09F8
+ ldr r1, _080D0A40
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D09F8:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D0A40
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x4]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _080D0A2A
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_080D0A2A:
+ ldr r1, _080D0A44
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D0A48
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A3C: .4byte gUnknown_0202F7C9
+_080D0A40: .4byte gUnknown_03004B00
+_080D0A44: .4byte move_anim_8074EE0
+_080D0A48: .4byte sub_80785E4
+ thumb_func_end sub_80D09C0
+
+ thumb_func_start sub_80D0A4C
+sub_80D0A4C: @ 80D0A4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D0A80
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, _080D0A84
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0A88
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A80: .4byte gTasks
+_080D0A84: .4byte gUnknown_083D77B0
+_080D0A88: .4byte sub_80D0A8C
+ thumb_func_end sub_80D0A4C
+
+ thumb_func_start sub_80D0A8C
+sub_80D0A8C: @ 80D0A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0AB4
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0AAC
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0AB4: .4byte gTasks
+ thumb_func_end sub_80D0A8C
+
+ thumb_func_start sub_80D0AB8
+sub_80D0AB8: @ 80D0AB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0B2C
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ movs r0, 0x7
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x10]
+ ldr r3, _080D0B30
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ strh r2, [r4, 0x16]
+ strh r2, [r4, 0x18]
+ movs r0, 0x2
+ strh r0, [r4, 0x1A]
+ ldr r0, _080D0B34
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0B22
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_080D0B22:
+ ldr r0, _080D0B38
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0B2C: .4byte gTasks
+_080D0B30: .4byte gSprites
+_080D0B34: .4byte gUnknown_0202F7C8
+_080D0B38: .4byte sub_80D0B3C
+ thumb_func_end sub_80D0AB8
+
+ thumb_func_start sub_80D0B3C
+sub_80D0B3C: @ 80D0B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0B84
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x16]
+ adds r0, 0x1
+ strh r0, [r3, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D0BA2
+ movs r0, 0
+ strh r0, [r3, 0x16]
+ ldrh r0, [r3, 0x18]
+ adds r0, 0x1
+ strh r0, [r3, 0x18]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0B8C
+ ldr r2, _080D0B88
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x1A]
+ ldrh r2, [r0, 0x22]
+ adds r1, r2
+ b _080D0BA0
+ .align 2, 0
+_080D0B84: .4byte gTasks
+_080D0B88: .4byte gSprites
+_080D0B8C:
+ ldr r2, _080D0BB4
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+_080D0BA0:
+ strh r1, [r0, 0x22]
+_080D0BA2:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080D0BF0
+ cmp r0, 0x1
+ bgt _080D0BB8
+ cmp r0, 0
+ beq _080D0BBE
+ b _080D0C80
+ .align 2, 0
+_080D0BB4: .4byte gSprites
+_080D0BB8:
+ cmp r0, 0x2
+ beq _080D0C20
+ b _080D0C80
+_080D0BBE:
+ ldr r2, _080D0BEC
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0BEC: .4byte gSprites
+_080D0BF0:
+ ldr r2, _080D0C1C
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ ldrh r2, [r3, 0xC]
+ subs r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C1C: .4byte gSprites
+_080D0C20:
+ ldr r2, _080D0C58
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r5, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080D0C80
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D0C5C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C58: .4byte gSprites
+_080D0C5C:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0C7A
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+ strh r1, [r0, 0x22]
+_080D0C7A:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0C80:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0B3C
+
+ thumb_func_start sub_80D0C88
+sub_80D0C88: @ 80D0C88
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0CD8
+ adds r5, r1, r0
+ ldr r4, _080D0CDC
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ strh r1, [r5, 0x12]
+ ldrb r0, [r4]
+ bl sub_807A100
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0CE8
+ ldr r0, _080D0CE0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0CE4
+ b _080D0CF0
+ .align 2, 0
+_080D0CD8: .4byte gTasks
+_080D0CDC: .4byte gUnknown_0202F7C9
+_080D0CE0: .4byte gUnknown_030042C0
+_080D0CE4: .4byte REG_BG1HOFS
+_080D0CE8:
+ ldr r0, _080D0D54
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0D58
+_080D0CF0:
+ str r0, [sp]
+ ldrh r0, [r5, 0x8]
+ adds r1, r0, 0
+ subs r1, 0x40
+ lsls r2, r1, 16
+ lsls r0, 16
+ cmp r2, r0
+ bgt _080D0D2E
+ ldr r4, _080D0D5C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080D0D08:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080D0D20
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080D0D20:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _080D0D08
+_080D0D2E:
+ ldr r0, _080D0D60
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080D0D64
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0D54: .4byte gUnknown_03004288
+_080D0D58: .4byte REG_BG2HOFS
+_080D0D5C: .4byte gUnknown_03004DE0
+_080D0D60: .4byte 0xa2600001
+_080D0D64: .4byte sub_80D0D68
+ thumb_func_end sub_80D0C88
+
+ thumb_func_start sub_80D0D68
+sub_80D0D68: @ 80D0D68
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0D88
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080D0D8C
+ cmp r0, 0x1
+ beq _080D0DA2
+ b _080D0E22
+ .align 2, 0
+_080D0D88: .4byte gTasks
+_080D0D8C:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D0E22
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _080D0E22
+_080D0DA2:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0E22
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ subs r0, r1
+ strh r0, [r3, 0x12]
+ movs r2, 0xC
+ ldrsh r1, [r3, r2]
+ cmp r1, 0x1
+ beq _080D0DD8
+ cmp r1, 0x1
+ ble _080D0DE0
+ cmp r1, 0x2
+ beq _080D0DDC
+ cmp r1, 0x3
+ beq _080D0DDC
+ b _080D0DE0
+_080D0DD8:
+ subs r0, 0x2
+ b _080D0DDE
+_080D0DDC:
+ adds r0, 0x1
+_080D0DDE:
+ strh r0, [r3, 0x12]
+_080D0DE0:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _080D0E04
+ ldr r2, _080D0E28
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r2, r1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+_080D0E04:
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _080D0E22
+ ldr r1, _080D0E2C
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0E22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E28: .4byte gUnknown_03004DE0
+_080D0E2C: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D0D68
+
+ thumb_func_start sub_80D0E30
+sub_80D0E30: @ 80D0E30
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080D0E84
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D0E88
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E84: .4byte gUnknown_0202F7C9
+_080D0E88: .4byte sub_80D0E8C
+ thumb_func_end sub_80D0E30
+
+ thumb_func_start sub_80D0E8C
+sub_80D0E8C: @ 80D0E8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080D0EF0
+ cmp r1, 0x1
+ bgt _080D0EA2
+ cmp r1, 0
+ beq _080D0EA8
+ b _080D0FD0
+_080D0EA2:
+ cmp r1, 0x2
+ beq _080D0F82
+ b _080D0FD0
+_080D0EA8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0ED2
+ strh r1, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0ED2:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _080D0F7A
+_080D0EF0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0F36
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D0F36
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0F36
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+_080D0F36:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ adds r1, r0, r2
+ strh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0x1F
+ ble _080D0F4A
+ movs r0, 0x40
+ b _080D0F58
+_080D0F4A:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _080D0F64
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_080D0F58:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_080D0F64:
+ ldrh r0, [r4, 0x36]
+ movs r2, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080D0FD0
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_080D0F7A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D0FD0
+_080D0F82:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0FAE
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0FAE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0FD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0E8C
+
+ thumb_func_start sub_80D0FD8
+sub_80D0FD8: @ 80D0FD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r5, 0
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r5, [r1]
+ ldr r0, _080D0FFC
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _080D1004
+ ldr r0, _080D1000
+ b _080D1006
+ .align 2, 0
+_080D0FFC: .4byte gUnknown_03004B00
+_080D1000: .4byte gUnknown_0202F7C8
+_080D1004:
+ ldr r0, _080D1040
+_080D1006:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_807A3FC
+ cmp r4, 0
+ bne _080D1044
+ adds r0, r5, 0
+ movs r1, 0
+ b _080D1048
+ .align 2, 0
+_080D1040: .4byte gUnknown_0202F7C9
+_080D1044:
+ adds r0, r5, 0
+ movs r1, 0x2
+_080D1048:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1074
+ ldr r2, _080D1070
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _080D107E
+ .align 2, 0
+_080D1070: .4byte gUnknown_03004B00
+_080D1074:
+ ldr r1, _080D1090
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_080D107E:
+ ldr r1, _080D1094
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1090: .4byte gUnknown_03004B00
+_080D1094: .4byte sub_80793C4
+ thumb_func_end sub_80D0FD8
+
+ thumb_func_start sub_80D1098
+sub_80D1098: @ 80D1098
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D10B2
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D10B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1098
+
+ thumb_func_start sub_80D10B8
+sub_80D10B8: @ 80D10B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r6, 0
+ mov r0, sp
+ strh r6, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r6, [r1]
+ ldr r0, _080D10E4
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D10F0
+ ldr r0, _080D10E8
+ ldrb r7, [r0]
+ ldr r0, _080D10EC
+ b _080D10F6
+ .align 2, 0
+_080D10E4: .4byte gUnknown_03004B00
+_080D10E8: .4byte gUnknown_0202F7C8
+_080D10EC: .4byte gUnknown_0202F7C9
+_080D10F0:
+ ldr r0, _080D1110
+ ldrb r7, [r0]
+ ldr r0, _080D1114
+_080D10F6:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, _080D1118
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080D111C
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _080D1124
+ .align 2, 0
+_080D1110: .4byte gUnknown_0202F7C9
+_080D1114: .4byte gUnknown_0202F7C8
+_080D1118: .4byte gUnknown_03004B00
+_080D111C:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_080D1124:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1180
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D1164
+ lsrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x2
+ mov r4, r8
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1170
+ ldr r2, _080D1168
+ ldr r0, _080D116C
+ adds r0, r4, r0
+ b _080D120A
+ .align 2, 0
+_080D1164: .4byte gUnknown_03004B00
+_080D1168: .4byte gSprites
+_080D116C: .4byte gUnknown_02024BE0
+_080D1170:
+ ldr r2, _080D1178
+ ldr r0, _080D117C
+ add r0, r8
+ b _080D120A
+ .align 2, 0
+_080D1178: .4byte gSprites
+_080D117C: .4byte gUnknown_02024BE0
+_080D1180:
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D11EC
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _080D11F0
+ ldr r1, _080D11F4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1204
+ adds r4, r7, 0
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1204
+ ldr r3, _080D11F8
+ ldr r2, _080D11FC
+ adds r0, r7, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r3, 0x20
+ ldrsh r1, [r6, r3]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D1200
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _080D121A
+ .align 2, 0
+_080D11EC: .4byte gUnknown_03004B00
+_080D11F0: .4byte gMain
+_080D11F4: .4byte 0x0000043d
+_080D11F8: .4byte gSprites
+_080D11FC: .4byte gUnknown_02024BE0
+_080D1200:
+ adds r0, r6, 0
+ b _080D1214
+_080D1204:
+ ldr r2, _080D1268
+ ldr r0, _080D126C
+ adds r0, r7, r0
+_080D120A:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_080D1214:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_080D121A:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D1270
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080D1274
+ ldr r2, _080D1278
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D127C
+ mov r0, r8
+ movs r1, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D127C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl sub_807A3FC
+ b _080D129C
+ .align 2, 0
+_080D1268: .4byte gSprites
+_080D126C: .4byte gUnknown_02024BE0
+_080D1270: .4byte gUnknown_03004B00
+_080D1274: .4byte gMain
+_080D1278: .4byte 0x0000043d
+_080D127C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, sp
+ strh r0, [r3, 0x2]
+_080D129C:
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D12C0
+ mov r3, sp
+ mov r2, sp
+ ldr r1, _080D12BC
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _080D12CE
+ .align 2, 0
+_080D12BC: .4byte gUnknown_03004B00
+_080D12C0:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, _080D1310
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_080D12CE:
+ ldrh r1, [r2, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ adds r1, r0
+ mov r3, sp
+ strh r1, [r3, 0x2]
+ mov r0, r9
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D1314
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1310: .4byte gUnknown_03004B00
+_080D1314: .4byte sub_80D1098
+ thumb_func_end sub_80D10B8
+
+ thumb_func_start sub_80D1318
+sub_80D1318: @ 80D1318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D1358
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080D133E
+ lsls r0, 20
+ ldr r1, _080D135C
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080D1360
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_080D133E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080D1364
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1358: .4byte 0x000027db
+_080D135C: .4byte 0x01010000
+_080D1360: .4byte gUnknown_03004B00
+_080D1364: .4byte sub_80793C4
+ thumb_func_end sub_80D1318
+
+ thumb_func_start sub_80D1368
+sub_80D1368: @ 80D1368
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D139C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D1384
+ ldr r1, _080D13A0
+_080D1384:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _080D13A4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D13A8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D139C: .4byte gUnknown_0202F7C8
+_080D13A0: .4byte 0x0000ff60
+_080D13A4: .4byte gUnknown_03004B00
+_080D13A8: .4byte sub_80D13AC
+ thumb_func_end sub_80D1368
+
+ thumb_func_start sub_80D13AC
+sub_80D13AC: @ 80D13AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ subs r2, 0x20
+ strh r2, [r4, 0x2E]
+ ldr r0, _080D1418
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D13DC
+ ldr r1, _080D141C
+_080D13DC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D1410
+ ldrh r2, [r4, 0x22]
+ adds r0, r1, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1420
+ str r0, [r4, 0x1C]
+_080D1410:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1418: .4byte gUnknown_0202F7C8
+_080D141C: .4byte 0x0000ff60
+_080D1420: .4byte sub_80D1424
+ thumb_func_end sub_80D13AC
+
+ thumb_func_start sub_80D1424
+sub_80D1424: @ 80D1424
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D1442
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1448
+ str r0, [r4, 0x1C]
+_080D1442:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1448: .4byte sub_80D144C
+ thumb_func_end sub_80D1424
+
+ thumb_func_start sub_80D144C
+sub_80D144C: @ 80D144C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D14B2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1498
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _080D148C
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D1490
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D1494
+ b _080D14B0
+ .align 2, 0
+_080D148C: .4byte 0x000003ff
+_080D1490: .4byte 0xfffffc00
+_080D1494: .4byte sub_80D14C4
+_080D1498:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, _080D14B8
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D14BC
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D14C0
+_080D14B0:
+ str r0, [r4, 0x1C]
+_080D14B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14B8: .4byte 0x000003ff
+_080D14BC: .4byte 0xfffffc00
+_080D14C0: .4byte sub_80D154C
+ thumb_func_end sub_80D144C
+
+ thumb_func_start sub_80D14C4
+sub_80D14C4: @ 80D14C4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x26]
+ subs r0, 0x2
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _080D14F8
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r1, _080D14FC
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x2E]
+ strh r0, [r1]
+ ldr r0, _080D1500
+ str r0, [r2, 0x1C]
+_080D14F8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14FC: .4byte REG_BLDCNT
+_080D1500: .4byte sub_80D1504
+ thumb_func_end sub_80D14C4
+
+ thumb_func_start sub_80D1504
+sub_80D1504: @ 80D1504
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D153C
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ ldr r2, _080D1544
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D153C
+ ldr r0, _080D1548
+ str r0, [r4, 0x1C]
+_080D153C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1544: .4byte REG_BLDALPHA
+_080D1548: .4byte sub_80D154C
+ thumb_func_end sub_80D1504
+
+ thumb_func_start sub_80D154C
+sub_80D154C: @ 80D154C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _080D1574
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D1578
+ cmp r1, r0
+ bne _080D1584
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D1580
+ ldr r0, _080D157C
+ b _080D1582
+ .align 2, 0
+_080D1574: .4byte gUnknown_03004B00
+_080D1578: .4byte 0x0000ffff
+_080D157C: .4byte sub_80D158C
+_080D1580:
+ ldr r0, _080D1588
+_080D1582:
+ str r0, [r3, 0x1C]
+_080D1584:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1588: .4byte move_anim_8072740
+ thumb_func_end sub_80D154C
+
+ thumb_func_start sub_80D158C
+sub_80D158C: @ 80D158C
+ push {lr}
+ ldr r1, _080D15A0
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D158C
+
+ thumb_func_start sub_80D15A4
+sub_80D15A4: @ 80D15A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D15D4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080D15D8
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D15DC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15D4: .4byte gTasks
+_080D15D8: .4byte gUnknown_083D79BC
+_080D15DC: .4byte sub_80D15E0
+ thumb_func_end sub_80D15A4
+
+ thumb_func_start sub_80D15E0
+sub_80D15E0: @ 80D15E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D1630
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080D162A
+ ldr r2, _080D1634
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D162A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1630: .4byte gTasks
+_080D1634: .4byte gSprites
+ thumb_func_end sub_80D15E0
+
+ thumb_func_start sub_80D1638
+sub_80D1638: @ 80D1638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D166C
+ adds r4, r1, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x20]
+ ldr r0, _080D1670
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1678
+ ldr r0, _080D1674
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _080D167E
+ .align 2, 0
+_080D166C: .4byte gTasks
+_080D1670: .4byte gUnknown_0202F7C9
+_080D1674: .4byte 0x0000ffff
+_080D1678:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D1698
+_080D167E:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D169C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1698: .4byte 0x0000fff8
+_080D169C: .4byte sub_80D16A0
+ thumb_func_end sub_80D1638
+
+ thumb_func_start sub_80D16A0
+sub_80D16A0: @ 80D16A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D16C4
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _080D16F4
+ cmp r4, 0x1
+ bgt _080D16C8
+ cmp r4, 0
+ beq _080D16D2
+ b _080D17BA
+ .align 2, 0
+_080D16C4: .4byte gTasks
+_080D16C8:
+ cmp r4, 0x2
+ beq _080D1770
+ cmp r4, 0x3
+ beq _080D178A
+ b _080D17BA
+_080D16D2:
+ ldr r2, _080D16F0
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ strh r4, [r3, 0xA]
+ strh r4, [r3, 0xC]
+ strh r4, [r3, 0xE]
+ b _080D1782
+ .align 2, 0
+_080D16F0: .4byte gSprites
+_080D16F4:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D17BA
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ ands r0, r4
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D172C
+ ldr r2, _080D1728
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x6
+ b _080D173E
+ .align 2, 0
+_080D1728: .4byte gSprites
+_080D172C:
+ ldr r2, _080D176C
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ subs r1, 0x6
+_080D173E:
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D17BA
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1782
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x6
+ strh r0, [r1, 0x24]
+ b _080D1782
+ .align 2, 0
+_080D176C: .4byte gSprites
+_080D1770:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D1782
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D1782:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D178A:
+ ldr r2, _080D17C0
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D17BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D17BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D17C0: .4byte gSprites
+ thumb_func_end sub_80D16A0
+
+ thumb_func_start sub_80D17C4
+sub_80D17C4: @ 80D17C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1800
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r0, 0xE
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D1804
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1800: .4byte gTasks
+_080D1804: .4byte sub_80D1808
+ thumb_func_end sub_80D17C4
+
+ thumb_func_start sub_80D1808
+sub_80D1808: @ 80D1808
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D185C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080D18CE
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _080D18CE
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1864
+ ldr r3, _080D1860
+ movs r6, 0x26
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _080D187A
+ .align 2, 0
+_080D185C: .4byte gTasks
+_080D1860: .4byte gSprites
+_080D1864:
+ ldr r3, _080D18AC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080D187A:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x22
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D18CE
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x24
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ bge _080D18B0
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _080D18CE
+ .align 2, 0
+_080D18AC: .4byte gSprites
+_080D18B0:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D18CE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1808
+
+ thumb_func_start sub_80D18D4
+sub_80D18D4: @ 80D18D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1924
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0x4
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x18]
+ strh r0, [r4, 0x22]
+ ldr r5, _080D1928
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D192C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1924: .4byte gTasks
+_080D1928: .4byte gUnknown_0202F7C8
+_080D192C: .4byte sub_80D1930
+ thumb_func_end sub_80D18D4
+
+ thumb_func_start sub_80D1930
+sub_80D1930: @ 80D1930
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D1954
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080D199C
+ cmp r2, 0x1
+ bgt _080D1958
+ cmp r2, 0
+ beq _080D195E
+ b _080D19B8
+ .align 2, 0
+_080D1954: .4byte gTasks
+_080D1958:
+ cmp r2, 0x2
+ beq _080D19B4
+ b _080D19B8
+_080D195E:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D19B8
+ strh r2, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1996
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D1996:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D199C:
+ movs r1, 0
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _080D19B8
+_080D19B4:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_080D19B8:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _080D19C6
+ cmp r5, 0x1
+ beq _080D1A5C
+ b _080D1A6A
+_080D19C6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D1A6A
+ strh r5, [r4, 0xA]
+ ldr r0, _080D1A50
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D1A6A
+ ldr r0, _080D1A54
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ strh r6, [r1, 0x2E]
+ movs r0, 0xD
+ strh r0, [r1, 0x30]
+ ldr r2, _080D1A58
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x24]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D1A6A
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080D1A6A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D1A6A
+ .align 2, 0
+_080D1A50: .4byte gSpriteTemplate_83D79E8
+_080D1A54: .4byte gSprites
+_080D1A58: .4byte gUnknown_083D7A00
+_080D1A5C:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1A6A
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1A6A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1930
+
+ thumb_func_start sub_80D1A70
+sub_80D1A70: @ 80D1A70
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _080D1AD8
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r2, 0x1
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+ lsls r1, 2
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1AD2
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroySprite
+_080D1AD2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1AD8: .4byte gTasks
+ thumb_func_end sub_80D1A70
+
+ thumb_func_start sub_80D1ADC
+sub_80D1ADC: @ 80D1ADC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080D1B34
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r5, 0x1
+ ldr r0, _080D1B38
+ adds r4, r0, 0
+_080D1AF4:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, sp
+ adds r1, r2, r5
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1AF4
+ ldr r4, _080D1B3C
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _080D1B40
+ cmp r0, 0
+ beq _080D1B1C
+ ldr r0, _080D1B44
+ adds r1, r0
+_080D1B1C:
+ adds r0, r4, 0
+ bl sub_800D238
+ movs r5, 0
+_080D1B24:
+ lsls r4, r5, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1B4C
+ ldr r0, _080D1B48
+ b _080D1B4E
+ .align 2, 0
+_080D1B34: .4byte 0x000027de
+_080D1B38: .4byte 0x00002710
+_080D1B3C: .4byte gBattleAnimSpritePalette_206
+_080D1B40: .4byte 0x02018000
+_080D1B44: .4byte 0xffffc800
+_080D1B48: .4byte 0x02014800
+_080D1B4C:
+ ldr r0, _080D1B7C
+_080D1B4E:
+ adds r2, r4, r0
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ lsls r1, 20
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1B24
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1B7C: .4byte 0x02018000
+ thumb_func_end sub_80D1ADC
+
+ thumb_func_start sub_80D1B80
+sub_80D1B80: @ 80D1B80
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080D1BA4
+ movs r4, 0x4
+_080D1B8A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D1B8A
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1BA4: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1B80
+
+ thumb_func_start sub_80D1BA8
+sub_80D1BA8: @ 80D1BA8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ movs r0, 0x1
+ ands r3, r0
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ movs r3, 0x20
+ ands r0, r3
+ ldrh r4, [r5, 0x4]
+ lsls r3, r4, 22
+ lsrs r3, 22
+ lsrs r1, 22
+ adds r0, r1
+ adds r3, r0
+ ldr r1, _080D1BFC
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, _080D1C00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, _080D1C04
+ lsrs r2, 25
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1BFC: .4byte 0x000003ff
+_080D1C00: .4byte 0xfffffc00
+_080D1C04: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1BA8
+
+ thumb_func_start sub_80D1C08
+sub_80D1C08: @ 80D1C08
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r6, _080D1C70
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1C28
+ ldr r1, _080D1C74
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D1C28:
+ ldr r4, _080D1C74
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, _080D1C78
+ str r0, [r5, 0x1C]
+ ldr r1, _080D1C7C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_80D1BA8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1C70: .4byte gUnknown_0202F7C8
+_080D1C74: .4byte gUnknown_03004B00
+_080D1C78: .4byte sub_8078B34
+_080D1C7C: .4byte move_anim_8072740
+ thumb_func_end sub_80D1C08
+
+ thumb_func_start sub_80D1C80
+sub_80D1C80: @ 80D1C80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1C9A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+_080D1C9A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ subs r2, 0x80
+ strh r2, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bne _080D1CCA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1CCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1C80
+
+ thumb_func_start sub_80D1CD0
+sub_80D1CD0: @ 80D1CD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ movs r2, 0xF0
+ cmp r0, 0
+ beq _080D1CE4
+ movs r2, 0x98
+_080D1CE4:
+ movs r3, 0
+ ldr r0, _080D1D2C
+ strh r2, [r0]
+ ldr r0, _080D1D30
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080D1D34
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080D1D38
+ ldr r5, _080D1D3C
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r5, 0x20
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _080D1D40
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ ldr r1, _080D1D44
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D2C: .4byte gUnknown_030042C4
+_080D1D30: .4byte gUnknown_03004240
+_080D1D34: .4byte REG_WIN0H
+_080D1D38: .4byte REG_WININ
+_080D1D3C: .4byte 0x00003f1f
+_080D1D40: .4byte gTasks
+_080D1D44: .4byte sub_80D1D48
+ thumb_func_end sub_80D1CD0
+
+ thumb_func_start sub_80D1D48
+sub_80D1D48: @ 80D1D48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D1D7C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x8]
+ adds r4, r0, 0
+ adds r4, 0xD
+ strh r4, [r3, 0x8]
+ ldrh r0, [r3, 0xA]
+ adds r2, r0, 0
+ subs r2, 0xD
+ strh r2, [r3, 0xA]
+ lsls r1, r4, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080D1D88
+ ldr r0, _080D1D80
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D1D84
+ str r0, [r3]
+ b _080D1D90
+ .align 2, 0
+_080D1D7C: .4byte gTasks
+_080D1D80: .4byte gUnknown_030042C4
+_080D1D84: .4byte sub_80D1D9C
+_080D1D88:
+ ldr r1, _080D1D98
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_080D1D90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D98: .4byte gUnknown_030042C4
+ thumb_func_end sub_80D1D48
+
+ thumb_func_start sub_80D1D9C
+sub_80D1D9C: @ 80D1D9C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r5, _080D1DEC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ adds r1, r3, r5
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080D1DF8
+ movs r0, 0x88
+ strh r0, [r1, 0x1E]
+ adds r0, r5, r3
+ adds r0, 0x1E
+ ldr r1, _080D1DF0
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ ldr r2, _080D1DF4
+ movs r1, 0x10
+ bl BlendPalettes
+ b _080D1E1E
+ .align 2, 0
+_080D1DEC: .4byte gTasks
+_080D1DF0: .4byte REG_BLDCNT
+_080D1DF4: .4byte 0x00007fff
+_080D1DF8:
+ cmp r0, 0x4
+ ble _080D1E1E
+ ldr r0, _080D1E28
+ strh r4, [r0]
+ ldr r0, _080D1E2C
+ strh r4, [r0]
+ ldr r0, _080D1E30
+ ldr r3, _080D1E34
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D1E1E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1E28: .4byte gUnknown_030042C4
+_080D1E2C: .4byte gUnknown_03004240
+_080D1E30: .4byte REG_WININ
+_080D1E34: .4byte 0x00003f3f
+ thumb_func_end sub_80D1D9C
+
+ thumb_func_start sub_80D1E38
+sub_80D1E38: @ 80D1E38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1E88
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1E94
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1E8C
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1E90
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1EBC
+ .align 2, 0
+_080D1E88: .4byte gTasks
+_080D1E8C: .4byte gUnknown_083D7A98
+_080D1E90: .4byte gSprites
+_080D1E94:
+ ldr r1, _080D1EC4
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1EBC
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1EBC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1EC4: .4byte gSprites
+ thumb_func_end sub_80D1E38
+
+ thumb_func_start sub_80D1EC8
+sub_80D1EC8: @ 80D1EC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1F18
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1F24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1F1C
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1F20
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1F4C
+ .align 2, 0
+_080D1F18: .4byte gTasks
+_080D1F1C: .4byte gUnknown_083D7A98
+_080D1F20: .4byte gSprites
+_080D1F24:
+ ldr r1, _080D1F54
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1F4C
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1F4C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F54: .4byte gSprites
+ thumb_func_end sub_80D1EC8
+
+ thumb_func_start sub_80D1F58
+sub_80D1F58: @ 80D1F58
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080D1F9C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D1FA0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F9C: .4byte gUnknown_0202F7C9
+_080D1FA0: .4byte sub_80D1FA4
+ thumb_func_end sub_80D1F58
+
+ thumb_func_start sub_80D1FA4
+sub_80D1FA4: @ 80D1FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1FCE
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D1FD4
+_080D1FCE:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1FD4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FA4
+
+ thumb_func_start sub_80D1FDC
+sub_80D1FDC: @ 80D1FDC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2000
+ ldr r1, _080D1FFC
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D205C
+ .align 2, 0
+_080D1FFC: .4byte gUnknown_03004B00
+_080D2000:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D204E
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D204E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D205C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D205C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FDC
+
+ thumb_func_start sub_80D2064
+sub_80D2064: @ 80D2064
+ push {lr}
+ ldr r2, _080D2088
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x30]
+ ldr r1, _080D208C
+ str r1, [r0, 0x1C]
+ ldr r1, _080D2090
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2088: .4byte gUnknown_03004B00
+_080D208C: .4byte sub_80782D8
+_080D2090: .4byte sub_80D2094
+ thumb_func_end sub_80D2064
+
+ thumb_func_start sub_80D2094
+sub_80D2094: @ 80D2094
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ lsrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x48
+ bgt _080D20FA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ cmp r5, 0x40
+ bgt _080D20FA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D20FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2094
+
+ thumb_func_start sub_80D2100
+sub_80D2100: @ 80D2100
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D21BC
+ ldr r2, _080D21C0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D21C4
+ ldrb r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2144
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D2144:
+ ldr r0, _080D21C8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D21CC
+ strh r1, [r0]
+ ldr r0, _080D21D0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080D21D4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080D21D8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080D21DC
+ bl LZDecompressVram
+ ldr r0, _080D21E0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D21E4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D21A4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D21A4:
+ ldr r0, _080D21E8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D21EC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D21BC: .4byte REG_BLDCNT
+_080D21C0: .4byte 0x00003f42
+_080D21C4: .4byte REG_BG1CNT
+_080D21C8: .4byte gUnknown_030042C0
+_080D21CC: .4byte gUnknown_030041B4
+_080D21D0: .4byte REG_BG1HOFS
+_080D21D4: .4byte 0x040000d4
+_080D21D8: .4byte 0x85000400
+_080D21DC: .4byte gAttractTilemap
+_080D21E0: .4byte gAttractGfx
+_080D21E4: .4byte gAttractPal
+_080D21E8: .4byte gTasks
+_080D21EC: .4byte sub_80D21F0
+ thumb_func_end sub_80D2100
+
+ thumb_func_start sub_80D21F0
+sub_80D21F0: @ 80D21F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2220
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2216
+ b _080D238C
+_080D2216:
+ lsls r0, 2
+ ldr r1, _080D2224
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2220: .4byte gTasks
+_080D2224: .4byte _080D2228
+ .align 2, 0
+_080D2228:
+ .4byte _080D223C
+ .4byte _080D2284
+ .4byte _080D22A6
+ .4byte _080D22E8
+ .4byte _080D236C
+_080D223C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D2256
+ b _080D238C
+_080D2256:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2280
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ beq _080D2274
+ b _080D238C
+_080D2274:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D2280: .4byte REG_BLDALPHA
+_080D2284:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8D
+ bne _080D238C
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D238C
+_080D22A6:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D238C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D22E4
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D238C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D22E4: .4byte REG_BLDALPHA
+_080D22E8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D239C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D23A0
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D230E:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D230E
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D239C
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D23A4
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D235C
+ ldr r2, _080D23A8
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D235C:
+ ldr r0, _080D23AC
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D236C:
+ ldr r0, _080D23B0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D23A8
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D238C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D239C: .4byte 0x040000d4
+_080D23A0: .4byte 0x85000400
+_080D23A4: .4byte 0x85000200
+_080D23A8: .4byte REG_BG1CNT
+_080D23AC: .4byte gTasks
+_080D23B0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D21F0
+
+ thumb_func_start sub_80D23B4
+sub_80D23B4: @ 80D23B4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2438
+ ldr r2, _080D243C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D2440
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D23FE
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D23FE:
+ ldr r0, _080D2444
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D2448
+ strh r1, [r0]
+ ldr r0, _080D244C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r1, _080D2450
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080D2454
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D245C
+ ldr r0, _080D2458
+ b _080D246E
+ .align 2, 0
+_080D2438: .4byte REG_BLDCNT
+_080D243C: .4byte 0x00003f42
+_080D2440: .4byte REG_BG1CNT
+_080D2444: .4byte gUnknown_030042C0
+_080D2448: .4byte gUnknown_030041B4
+_080D244C: .4byte REG_BG1HOFS
+_080D2450: .4byte 0x040000d4
+_080D2454: .4byte 0x85000400
+_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
+_080D245C:
+ ldr r0, _080D2478
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2480
+ ldr r0, _080D247C
+_080D246E:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D2488
+ .align 2, 0
+_080D2478: .4byte gUnknown_0202F7C9
+_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
+_080D2480:
+ ldr r0, _080D24CC
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080D2488:
+ ldr r0, _080D24D0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D24D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D24B6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D24B6:
+ ldr r0, _080D24D8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D24DC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
+_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
+_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
+_080D24D8: .4byte gTasks
+_080D24DC: .4byte sub_80D24E0
+ thumb_func_end sub_80D23B4
+
+ thumb_func_start sub_80D24E0
+sub_80D24E0: @ 80D24E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2510
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2506
+ b _080D267C
+_080D2506:
+ lsls r0, 2
+ ldr r1, _080D2514
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2510: .4byte gTasks
+_080D2514: .4byte _080D2518
+ .align 2, 0
+_080D2518:
+ .4byte _080D252C
+ .4byte _080D2574
+ .4byte _080D2596
+ .4byte _080D25D8
+ .4byte _080D265C
+_080D252C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _080D2546
+ b _080D267C
+_080D2546:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2570
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ beq _080D2564
+ b _080D267C
+_080D2564:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D2570: .4byte REG_BLDALPHA
+_080D2574:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D267C
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D267C
+_080D2596:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080D267C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D25D4
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D267C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D25D4: .4byte REG_BLDALPHA
+_080D25D8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D268C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D2690
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D25FE:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D25FE
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D268C
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D2694
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D264C
+ ldr r2, _080D2698
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D264C:
+ ldr r0, _080D269C
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D265C:
+ ldr r0, _080D26A0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D2698
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D267C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D268C: .4byte 0x040000d4
+_080D2690: .4byte 0x85000400
+_080D2694: .4byte 0x85000200
+_080D2698: .4byte REG_BG1CNT
+_080D269C: .4byte gTasks
+_080D26A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D24E0
+
+ thumb_func_start sub_80D26A4
+sub_80D26A4: @ 80D26A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D26F8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D26FC
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, _080D2700
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D26F8: .4byte gUnknown_0202F7C8
+_080D26FC: .4byte gUnknown_03004B00
+_080D2700: .4byte sub_80D2704
+ thumb_func_end sub_80D26A4
+
+ thumb_func_start sub_80D2704
+sub_80D2704: @ 80D2704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D271A
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _080D271E
+_080D271A:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_080D271E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ beq _080D2790
+ cmp r2, 0x1
+ bne _080D27C0
+ ldr r1, _080D2788
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _080D278C
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D27C0
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _080D27D0
+ .align 2, 0
+_080D2788: .4byte 0xfffffc00
+_080D278C: .4byte 0xffffff00
+_080D2790:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080D27C0
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_080D27C0:
+ ldr r0, _080D27D8
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D27DC
+ cmp r1, r0
+ bne _080D27D0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D27D0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27D8: .4byte gUnknown_03004B00
+_080D27DC: .4byte 0x0000ffff
+ thumb_func_end sub_80D2704
+
+ thumb_func_start sub_80D27E0
+sub_80D27E0: @ 80D27E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D2828
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D282C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldr r0, _080D2830
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2828: .4byte gUnknown_0202F7C8
+_080D282C: .4byte gUnknown_03004B00
+_080D2830: .4byte sub_80D2834
+ thumb_func_end sub_80D27E0
+
+ thumb_func_start sub_80D2834
+sub_80D2834: @ 80D2834
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D2872
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D2872
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D2878
+_080D2872:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2878:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2834
+
+ thumb_func_start sub_80D287C
+sub_80D287C: @ 80D287C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080D28A8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D28A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D287C
+
+ thumb_func_start sub_80D28AC
+sub_80D28AC: @ 80D28AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D28F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D28FC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x32]
+ ldr r0, _080D2900
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D28F8: .4byte gUnknown_0202F7C8
+_080D28FC: .4byte gUnknown_03004B00
+_080D2900: .4byte sub_80D287C
+ thumb_func_end sub_80D28AC
+
+ thumb_func_start sub_80D2904
+sub_80D2904: @ 80D2904
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D291A
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D291A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2904
+
+ thumb_func_start sub_80D2920
+sub_80D2920: @ 80D2920
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D2934
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2934: .4byte sub_80D2904
+ thumb_func_end sub_80D2920
+
+ thumb_func_start sub_80D2938
+sub_80D2938: @ 80D2938
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2956
+ ldr r0, _080D29C8
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D2956:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 1
+ movs r0, 0xFF
+ ands r5, r0
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Sin
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4F
+ bgt _080D299A
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Cos
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ lsls r0, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x26]
+_080D299A:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _080D29B8
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+_080D29B8:
+ cmp r2, 0x64
+ ble _080D29C2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D29C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D29C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2938
+
+ thumb_func_start sub_80D29CC
+sub_80D29CC: @ 80D29CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080D2A22
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D2A22:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _080D2A30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D29CC
+
+ thumb_func_start sub_80D2A38
+sub_80D2A38: @ 80D2A38
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2A5C
+ ldr r1, _080D2A58
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2AB0
+ .align 2, 0
+_080D2A58: .4byte gUnknown_03004B00
+_080D2A5C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ movs r5, 0
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ adds r2, r0, 0
+ strh r2, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x46
+ ble _080D2AB0
+ ldr r0, _080D2AB8
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r0, r2, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_080D2AB0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2AB8: .4byte sub_80D29CC
+ thumb_func_end sub_80D2A38
+
+ thumb_func_start sub_80D2ABC
+sub_80D2ABC: @ 80D2ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2AF6
+ ldr r1, _080D2BB8
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2BBC
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2AF6:
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080D2B0C
+ adds r0, 0xFF
+_080D2B0C:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D2B1E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080D2B1E:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B2C
+ adds r0, 0x3
+_080D2B2C:
+ asrs r0, 2
+ movs r1, 0x1E
+ subs r1, r0
+ adds r0, r2, 0
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B48
+ adds r0, 0x7
+_080D2B48:
+ asrs r0, 3
+ movs r1, 0xA
+ subs r1, r0
+ adds r0, r2, 0
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ ble _080D2B6C
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D2B6C
+ ldr r0, _080D2BC0
+ strh r0, [r4, 0x32]
+_080D2B6C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2B80
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080D2B80
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2B80:
+ ldrh r0, [r4, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x34]
+ subs r0, 0x9
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x46
+ bls _080D2BC4
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080D2BD2
+ .align 2, 0
+_080D2BB8: .4byte gUnknown_03004B00
+_080D2BBC: .4byte gUnknown_0202F7C9
+_080D2BC0: .4byte 0x0000ffff
+_080D2BC4:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D2BD2:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _080D2BE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2BE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2ABC
+
+ thumb_func_start sub_80D2BE8
+sub_80D2BE8: @ 80D2BE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2C1C
+ ldr r1, _080D2C18
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2C30
+ .align 2, 0
+_080D2C18: .4byte gUnknown_03004B00
+_080D2C1C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2C30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2C30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2BE8
+
+ thumb_func_start sub_80D2C38
+sub_80D2C38: @ 80D2C38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _080D2C50
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C54
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D2CB8
+ .align 2, 0
+_080D2C50: .4byte gUnknown_03004B00
+_080D2C54:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C64
+ ldr r4, _080D2C60
+ b _080D2C66
+ .align 2, 0
+_080D2C60: .4byte gUnknown_0202F7C8
+_080D2C64:
+ ldr r4, _080D2C94
+_080D2C66:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D2C98
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080D2C9C
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _080D2CA0
+ .align 2, 0
+_080D2C94: .4byte gUnknown_0202F7C9
+_080D2C98: .4byte gUnknown_03004B00
+_080D2C9C:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_080D2CA0:
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2CC0
+ str r0, [r5, 0x1C]
+_080D2CB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2CC0: .4byte sub_80D2CC4
+ thumb_func_end sub_80D2C38
+
+ thumb_func_start sub_80D2CC4
+sub_80D2CC4: @ 80D2CC4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2CF4
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D2CEE
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080D2CF4
+_080D2CEE:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2CF4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2CC4
+
+ thumb_func_start sub_80D2CF8
+sub_80D2CF8: @ 80D2CF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080D2D2C
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080D2D30
+ adds r4, r0
+ ldr r2, _080D2D34
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D2D38
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D2C: .4byte gUnknown_03004B00
+_080D2D30: .4byte gTasks
+_080D2D34: .4byte gUnknown_083D7CA8
+_080D2D38: .4byte sub_80D2D3C
+ thumb_func_end sub_80D2CF8
+
+ thumb_func_start sub_80D2D3C
+sub_80D2D3C: @ 80D2D3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D2D64
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2D5C
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D2D5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D64: .4byte gTasks
+ thumb_func_end sub_80D2D3C
+
+ thumb_func_start sub_80D2D68
+sub_80D2D68: @ 80D2D68
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D2D7C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D2D84
+ ldr r0, _080D2D80
+ b _080D2D86
+ .align 2, 0
+_080D2D7C: .4byte gUnknown_03004B00
+_080D2D80: .4byte gUnknown_0202F7C8
+_080D2D84:
+ ldr r0, _080D2E1C
+_080D2D86:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2DA0
+ ldr r1, _080D2E20
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D2DA0:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r7, _080D2E20
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DE0
+ adds r0, 0x7
+_080D2DE0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DF0
+ adds r0, 0x7
+_080D2DF0:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _080D2E24
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D2E28
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D2E2C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E1C: .4byte gUnknown_0202F7C9
+_080D2E20: .4byte gUnknown_03004B00
+_080D2E24: .4byte 0x000003ff
+_080D2E28: .4byte 0xfffffc00
+_080D2E2C: .4byte sub_80D2E30
+ thumb_func_end sub_80D2D68
+
+ thumb_func_start sub_80D2E30
+sub_80D2E30: @ 80D2E30
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D2E64
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2E64:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2E30
+
+ thumb_func_start sub_80D2E68
+sub_80D2E68: @ 80D2E68
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2E8A
+ ldr r0, _080D2EC4
+ ldrh r1, [r0]
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080D2E8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D2EA8
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+_080D2EA8:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _080D2EBC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2EBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2EC4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2E68
+
+ thumb_func_start sub_80D2EC8
+sub_80D2EC8: @ 80D2EC8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D2EF6
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, _080D2F78
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0xF
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4, 0x2]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x38]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x34]
+_080D2EF6:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r6, 0x30]
+ movs r2, 0x2E
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldrh r0, [r6, 0x34]
+ adds r4, r0
+ movs r2, 0xFF
+ ldrh r0, [r6, 0x3A]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3A]
+ ands r4, r2
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r6, 0x24]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x4
+ bl Cos
+ ldrh r2, [r6, 0x30]
+ adds r4, r2
+ adds r0, r4
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x38
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080D2F72
+ ldr r0, _080D2F7C
+ str r0, [r6, 0x1C]
+ strh r5, [r6, 0x2E]
+ adds r0, r6, 0
+ bl oamt_add_pos2_onto_pos1
+ movs r0, 0x5
+ strh r0, [r6, 0x32]
+ strh r5, [r6, 0x36]
+ strh r5, [r6, 0x34]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080D2F72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2F78: .4byte gUnknown_03004B00
+_080D2F7C: .4byte sub_80D2F80
+ thumb_func_end sub_80D2EC8
+
+ thumb_func_start sub_80D2F80
+sub_80D2F80: @ 80D2F80
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080D2F9A
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080D2FA0
+ str r0, [r1, 0x1C]
+_080D2F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2FA0: .4byte sub_80D2FA4
+ thumb_func_end sub_80D2F80
+
+ thumb_func_start sub_80D2FA4
+sub_80D2FA4: @ 80D2FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x26]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _080D2FCE
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _080D2FCE
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_080D2FCE:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _080D3000
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3000:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _080D300E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D300E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2FA4
+
+ thumb_func_start sub_80D3014
+sub_80D3014: @ 80D3014
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D3058
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3060
+ ldr r4, _080D305C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3060
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080D3080
+ .align 2, 0
+_080D3058: .4byte gUnknown_020239F8
+_080D305C: .4byte gUnknown_0202F7C8
+_080D3060:
+ ldr r4, _080D30A0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_080D3080:
+ movs r0, 0xD
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x48
+ strh r0, [r5, 0x36]
+ ldr r0, _080D30A4
+ str r0, [r5, 0x1C]
+ ldr r1, _080D30A8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30A0: .4byte gUnknown_0202F7C8
+_080D30A4: .4byte sub_8078B34
+_080D30A8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3014
+
+ thumb_func_start sub_80D30AC
+sub_80D30AC: @ 80D30AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D30C8
+ ldr r1, _080D30CC
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30C8: .4byte gUnknown_03004B00
+_080D30CC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D30AC
+
+ thumb_func_start update_fury_cutter_counter_copy
+update_fury_cutter_counter_copy: @ 80D30D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D30E8
+ ldr r1, _080D30EC
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30E8: .4byte gUnknown_03004B00
+_080D30EC: .4byte gUnknown_0202F7B4
+ thumb_func_end update_fury_cutter_counter_copy
+
+ thumb_func_start sub_80D30F0
+sub_80D30F0: @ 80D30F0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080D3178
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D3118
+ ldr r1, _080D317C
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_080D3118:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0x1
+ bne _080D3160
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080D3180
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_080D3160:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080D3172
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D3172:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3178: .4byte gTasks
+_080D317C: .4byte gUnknown_03004B00
+_080D3180: .4byte gSpriteTemplate_83D9130
+ thumb_func_end sub_80D30F0
+
+ thumb_func_start sub_80D3184
+sub_80D3184: @ 80D3184
+ ldr r1, _080D318C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D318C: .4byte sub_80D3190
+ thumb_func_end sub_80D3184
+
+ thumb_func_start sub_80D3190
+sub_80D3190: @ 80D3190
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D31AE
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_080D31AE:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D31C2
+ adds r0, r2, 0
+ bl DestroySprite
+_080D31C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3190
+
+ thumb_func_start sub_80D31C8
+sub_80D31C8: @ 80D31C8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D31F0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D31F8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080D31F4
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080D320A
+ .align 2, 0
+_080D31F0: .4byte gUnknown_0202F7C8
+_080D31F4: .4byte gUnknown_03004B00
+_080D31F8:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D32D0
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_080D320A:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D32D4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3240
+ ldr r1, _080D32D0
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D3240:
+ ldr r5, _080D32D0
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, _080D32D8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D32DC
+ bl object_new_hidden_with_callback
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r6, 0x38]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r6, 0x20]
+ subs r1, r0
+ strh r1, [r6, 0x20]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ ldrh r1, [r6, 0x22]
+ subs r1, r0
+ strh r1, [r6, 0x22]
+ ldr r0, _080D32E0
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x32]
+ ldrb r0, [r5, 0x8]
+ lsls r0, 8
+ strh r0, [r1, 0x34]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x36]
+ ldr r1, _080D32E4
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D32D0: .4byte gUnknown_03004B00
+_080D32D4: .4byte gUnknown_0202F7C8
+_080D32D8: .4byte gUnknown_0202F7C9
+_080D32DC: .4byte SpriteCallbackDummy
+_080D32E0: .4byte gSprites
+_080D32E4: .4byte sub_80D32E8
+ thumb_func_end sub_80D31C8
+
+ thumb_func_start sub_80D32E8
+sub_80D32E8: @ 80D32E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D3350
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ mov r1, r8
+ lsrs r6, r1, 8
+ movs r0, 0x2E
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Sin
+ ldrh r1, [r5, 0x24]
+ adds r0, r1
+ strh r0, [r5, 0x24]
+ movs r0, 0x30
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Cos
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r0, [r7, 0x32]
+ mov r1, r8
+ adds r1, r0
+ strh r1, [r7, 0x34]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0
+ beq _080D3354
+ strh r4, [r7, 0x36]
+ b _080D335E
+ .align 2, 0
+_080D3350: .4byte gSprites
+_080D3354:
+ ldr r0, _080D336C
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_080D335E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D336C: .4byte sub_80D3370
+ thumb_func_end sub_80D32E8
+
+ thumb_func_start sub_80D3370
+sub_80D3370: @ 80D3370
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldr r1, _080D3390
+ str r1, [r0, 0x1C]
+ ldr r1, _080D3394
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3390: .4byte sub_8078600
+_080D3394: .4byte sub_80D3398
+ thumb_func_end sub_80D3370
+
+ thumb_func_start sub_80D3398
+sub_80D3398: @ 80D3398
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D33AC
+ str r1, [r0, 0x1C]
+ ldr r1, _080D33B0
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D33AC: .4byte sub_80782D8
+_080D33B0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80D3398
+
+ thumb_func_start sub_80D33B4
+sub_80D33B4: @ 80D33B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D33DC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D33E4
+ ldr r1, _080D33E0
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _080D33EA
+ .align 2, 0
+_080D33DC: .4byte gUnknown_0202F7C8
+_080D33E0: .4byte gUnknown_03004B00
+_080D33E4:
+ ldr r0, _080D3440
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_080D33EA:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D3444
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D3448
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3440: .4byte gUnknown_03004B00
+_080D3444: .4byte gUnknown_0202F7C9
+_080D3448: .4byte sub_80D344C
+ thumb_func_end sub_80D33B4
+
+ thumb_func_start sub_80D344C
+sub_80D344C: @ 80D344C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3488
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D348C
+ cmp r1, r0
+ bne _080D346E
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_080D346E:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3480
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3488: .4byte gUnknown_03004B00
+_080D348C: .4byte 0x0000ffff
+ thumb_func_end sub_80D344C
+
+ thumb_func_start sub_80D3490
+sub_80D3490: @ 80D3490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D34C4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080D34C8
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, _080D34CC
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _080D34D0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D34C4: .4byte gTasks
+_080D34C8: .4byte gUnknown_03004B00
+_080D34CC: .4byte 0x0000279c
+_080D34D0: .4byte sub_80D34D4
+ thumb_func_end sub_80D3490
+
+ thumb_func_start sub_80D34D4
+sub_80D34D4: @ 80D34D4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D354C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0x3
+ bne _080D3526
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080D3550
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ adds r7, r1, 0
+ adds r3, r0, 0x2
+ movs r1, 0x6
+ adds r2, r0, 0
+_080D3510:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D3510
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_080D3526:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x1E]
+ adds r1, 0x1
+ strh r1, [r0, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _080D3546
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D3546:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D354C: .4byte gTasks
+_080D3550: .4byte gPlttBufferFaded
+ thumb_func_end sub_80D34D4
+
+ thumb_func_start sub_80D3554
+sub_80D3554: @ 80D3554
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D35BC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, _080D35C0
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _080D35C4
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _080D35C8
+ .align 2, 0
+_080D35BC: .4byte gUnknown_0202F7C9
+_080D35C0: .4byte gUnknown_03004B00
+_080D35C4:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_080D35C8:
+ ldr r1, _080D35D8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D35D8: .4byte sub_80D35DC
+ thumb_func_end sub_80D3554
+
+ thumb_func_start sub_80D35DC
+sub_80D35DC: @ 80D35DC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D35F0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D35F0:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ asrs r0, 8
+ cmp r0, 0x7F
+ ble _080D3620
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _080D3628
+_080D3620:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_080D3628:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D35DC
+
+ thumb_func_start sub_80D3630
+sub_80D3630: @ 80D3630
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D3650
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080D3654
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, _080D3658
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D3650: .4byte gTasks
+_080D3654: .4byte gUnknown_03004B00
+_080D3658: .4byte sub_80D365C
+ thumb_func_end sub_80D3630
+
+ thumb_func_start sub_80D365C
+sub_80D365C: @ 80D365C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080D3690
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, _080D3694
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080D368A
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D368A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3690: .4byte gUnknown_03004B00
+_080D3694: .4byte gTasks
+ thumb_func_end sub_80D365C
+
+ thumb_func_start sub_80D3698
+sub_80D3698: @ 80D3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, _080D36E4
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, _080D36E8
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36F2
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36EC
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _080D36F4
+ .align 2, 0
+_080D36E4: .4byte gUnknown_0202F7C8
+_080D36E8: .4byte 0x0000fff6
+_080D36EC:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _080D36F6
+_080D36F2:
+ strh r6, [r4, 0x24]
+_080D36F4:
+ adds r0, r5, 0x2
+_080D36F6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, _080D3708
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3708: .4byte sub_80D370C
+ thumb_func_end sub_80D3698
+
+ thumb_func_start sub_80D370C
+sub_80D370C: @ 80D370C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3722
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D3722:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D370C
+
+ thumb_func_start sub_80D3728
+sub_80D3728: @ 80D3728
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, _080D37E8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D37EC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D3772
+ ldr r4, _080D37F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D376A
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D3772
+_080D376A:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_080D3772:
+ ldr r5, _080D37F0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _080D3786
+ movs r1, 0x1
+_080D3786:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _080D3790
+ movs r7, 0x3
+_080D3790:
+ adds r0, r6, 0
+ bl sub_80787B0
+ ldr r0, _080D37E8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D37AA
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_080D37AA:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, _080D37EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, _080D37F4
+ str r0, [r6, 0x1C]
+ ldr r1, _080D37F8
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D37E8: .4byte gUnknown_0202F7C8
+_080D37EC: .4byte gUnknown_0202F7C9
+_080D37F0: .4byte gUnknown_03004B00
+_080D37F4: .4byte sub_8078B34
+_080D37F8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3728
+
+ thumb_func_start sub_80D37FC
+sub_80D37FC: @ 80D37FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D382C
+ ldrh r1, [r0, 0x8]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ ldr r0, _080D3830
+ str r0, [r4, 0x1C]
+ ldr r1, _080D3834
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D382C: .4byte gUnknown_03004B00
+_080D3830: .4byte sub_8078B34
+_080D3834: .4byte move_anim_8072740
+ thumb_func_end sub_80D37FC
+
+ thumb_func_start sub_80D3838
+sub_80D3838: @ 80D3838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3850
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D3854
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D385C
+ .align 2, 0
+_080D3850: .4byte gUnknown_03004B00
+_080D3854:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+_080D385C:
+ ldr r0, _080D386C
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D3870
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D386C: .4byte gUnknown_03004B00
+_080D3870: .4byte sub_80D3874
+ thumb_func_end sub_80D3838
+
+ thumb_func_start sub_80D3874
+sub_80D3874: @ 80D3874
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D38B4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D38B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3874
+
+ thumb_func_start sub_80D38BC
+sub_80D38BC: @ 80D38BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080D398C
+ ldr r2, _080D3990
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r2, _080D3994
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ add r0, sp, 0xC
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080D3998
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r7, _080D399C
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3920:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3920
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ mov r3, r12
+ strb r0, [r3]
+ strb r0, [r3]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ ldr r0, _080D3998
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D399C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D39B8
+ ldr r2, _080D3994
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D39A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D39A8
+ ldr r0, _080D39A4
+ b _080D39AA
+ .align 2, 0
+_080D398C: .4byte REG_BLDCNT
+_080D3990: .4byte 0x00003f42
+_080D3994: .4byte REG_BG1CNT
+_080D3998: .4byte 0x040000d4
+_080D399C: .4byte 0x85000400
+_080D39A0: .4byte gUnknown_0202F7C8
+_080D39A4: .4byte gUnknown_08E70968
+_080D39A8:
+ ldr r0, _080D39B4
+_080D39AA:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D39CE
+ .align 2, 0
+_080D39B4: .4byte gUnknown_08E70C38
+_080D39B8:
+ ldr r0, _080D39F0
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80763FC
+_080D39CE:
+ ldr r0, _080D39F4
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D39F8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D3A00
+ ldr r0, _080D39FC
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080D3A0E
+ .align 2, 0
+_080D39F0: .4byte gUnknown_08E70F0C
+_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
+_080D39F8: .4byte gUnknown_03004B00
+_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
+_080D3A00:
+ ldr r0, _080D3A78
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080D3A0E:
+ ldr r0, _080D3A7C
+ ldr r4, _080D3A80
+ mov r2, r10
+ lsls r5, r2, 2
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r6, r1, r4
+ ldrb r1, [r6, 0x7]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ mov r9, r3
+ mov r0, r8
+ strh r0, [r6, 0x26]
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r7, r0, r4
+ mov r2, r9
+ strh r2, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r7, 0xA]
+ strh r0, [r7, 0xC]
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080D3A94
+ ldr r3, _080D3A84
+ adds r0, r3, 0
+ ldr r1, _080D3A88
+ strh r0, [r1]
+ ldr r2, _080D3A8C
+ adds r0, r2, 0
+ ldr r3, _080D3A90
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ mov r0, r9
+ strh r0, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
+_080D3A7C: .4byte sub_80D3D68
+_080D3A80: .4byte gTasks
+_080D3A84: .4byte 0x0000ffb0
+_080D3A88: .4byte gUnknown_030042C0
+_080D3A8C: .4byte 0x0000ffd0
+_080D3A90: .4byte gUnknown_030041B4
+_080D3A94:
+ ldr r0, _080D3AC4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080D3AD8
+ ldr r2, _080D3AC8
+ adds r0, r2, 0
+ ldr r3, _080D3ACC
+ strh r0, [r3]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r3, _080D3AD0
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, _080D3AD4
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3AC4: .4byte gUnknown_0202F7C8
+_080D3AC8: .4byte 0x0000ff20
+_080D3ACC: .4byte gUnknown_030042C0
+_080D3AD0: .4byte gUnknown_030041B4
+_080D3AD4: .4byte 0x0000ffff
+_080D3AD8:
+ ldr r0, _080D3B1C
+ strh r4, [r0]
+ ldr r1, _080D3B20
+ adds r0, r1, 0
+ ldr r2, _080D3B24
+ strh r0, [r2]
+ ldr r0, _080D3B28
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_080D3AEE:
+ ldr r1, _080D3B2C
+ ldr r3, _080D3B1C
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080D3B24
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _080D3B30
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080D3B34
+ movs r0, 0x30
+ strh r0, [r2, 0x10]
+ movs r0, 0x70
+ b _080D3B38
+ .align 2, 0
+_080D3B1C: .4byte gUnknown_030042C0
+_080D3B20: .4byte 0x0000ffd0
+_080D3B24: .4byte gUnknown_030041B4
+_080D3B28: .4byte 0x0000fffe
+_080D3B2C: .4byte REG_BG1HOFS
+_080D3B30: .4byte gTasks
+_080D3B34:
+ movs r0, 0
+ strh r0, [r2, 0x10]
+_080D3B38:
+ strh r0, [r2, 0x12]
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, _080D3B5C
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3B5C: .4byte sub_80D3B60
+ thumb_func_end sub_80D38BC
+
+ thumb_func_start sub_80D3B60
+sub_80D3B60: @ 80D3B60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080D3D44
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldr r1, _080D3D48
+ ldrh r1, [r1]
+ adds r0, r1
+ ldr r2, _080D3D48
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ ldr r3, _080D3D4C
+ ldrh r3, [r3]
+ adds r0, r3
+ ldr r1, _080D3D4C
+ strh r0, [r1]
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ ldrh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r5
+ cmp r0, 0x4
+ bne _080D3C02
+ ldr r1, _080D3D50
+ ldrb r0, [r5, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r5, r1, 0
+ adds r3, r5, 0
+ mov r4, r10
+_080D3BC8:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080D3BC8
+ mov r3, r10
+ ldrb r0, [r3, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ strh r6, [r0]
+ ldr r1, _080D3D44
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080D3C02:
+ ldr r1, _080D3D44
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ str r2, [sp, 0x14]
+ cmp r0, 0x1
+ ble _080D3C70
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D3C4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_080D3C4C:
+ movs r2, 0xE
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x36
+ ble _080D3C70
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_080D3C70:
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0xA]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080D3D32
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ movs r5, 0
+ ldr r1, _080D3D54
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D3D58
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3CAA:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3CAA
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ mov r3, r10
+ ldr r1, [r3, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x10]
+ ldr r0, _080D3D54
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D3D58
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3D02
+ ldr r2, _080D3D5C
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D3D02:
+ ldr r0, _080D3D48
+ strh r4, [r0]
+ ldr r1, _080D3D4C
+ strh r4, [r1]
+ ldr r0, _080D3D60
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r2, _080D3D44
+ ldr r3, [sp, 0x14]
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080D3D64
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D3D32:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3D44: .4byte gTasks
+_080D3D48: .4byte gUnknown_030042C0
+_080D3D4C: .4byte gUnknown_030041B4
+_080D3D50: .4byte gPlttBufferFaded
+_080D3D54: .4byte 0x040000d4
+_080D3D58: .4byte 0x85000400
+_080D3D5C: .4byte REG_BG1CNT
+_080D3D60: .4byte REG_BLDCNT
+_080D3D64: .4byte 0x0000ffff
+ thumb_func_end sub_80D3B60
+
+ thumb_func_start sub_80D3D68
+sub_80D3D68: @ 80D3D68
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080D3D90
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D3D84
+ b _080D3EBC
+_080D3D84:
+ cmp r0, 0x1
+ bgt _080D3D94
+ cmp r0, 0
+ beq _080D3D9C
+ b _080D4032
+ .align 2, 0
+_080D3D90: .4byte gTasks
+_080D3D94:
+ cmp r0, 0x2
+ bne _080D3D9A
+ b _080D3F88
+_080D3D9A:
+ b _080D4032
+_080D3D9C:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080D3E6C
+ mov r12, r1
+ cmp r3, r0
+ bge _080D3DDA
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080D3E70
+_080D3DB4:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080D3DB4
+_080D3DDA:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3E14
+ ldr r5, _080D3E6C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70
+_080D3DF2:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3DF2
+_080D3E14:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080D3E4A
+ ldr r5, _080D3E6C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70
+_080D3E28:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _080D3E28
+_080D3E4A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D3E74
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _080D3E8A
+ .align 2, 0
+_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E70: .4byte 0x0000ffff
+_080D3E74:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_080D3E8A:
+ strh r0, [r2]
+ ldr r0, _080D3EB4
+ str r0, [sp]
+ ldr r0, _080D3EB8
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4032
+ .align 2, 0
+_080D3EB4: .4byte REG_BLDALPHA
+_080D3EB8: .4byte 0xa2600001
+_080D3EBC:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080D3ED4
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D3EE8
+ strh r1, [r4, 0x10]
+ b _080D3EE2
+_080D3ED4:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080D3EE8
+_080D3EE2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D3EE8:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3F1C
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3EF6:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3EF6
+_080D3F1C:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3F50
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3F2E:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3F2E
+_080D3F50:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D4032
+ ldr r6, _080D3F80
+ ldr r5, _080D3F84
+_080D3F5E:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3F5E
+ b _080D4032
+ .align 2, 0
+_080D3F80: .4byte gUnknown_03004DE0
+_080D3F84: .4byte gUnknown_03004DC0
+_080D3F88:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3FBC
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3F96:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3F96
+_080D3FBC:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3FF0
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3FCE:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3FCE
+_080D3FF0:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D401C
+ ldr r6, _080D403C
+ ldr r5, _080D4040
+_080D3FFE:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3FFE
+_080D401C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D4032
+ bl remove_some_task
+ adds r0, r7, 0
+ bl DestroyTask
+_080D4032:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D403C: .4byte gUnknown_03004DE0
+_080D4040: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D3D68
+
+ thumb_func_start sub_80D4044
+sub_80D4044: @ 80D4044
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D4098
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D409C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D40A0
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D408A
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D408A:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D40A4
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4098: .4byte 0x000003ff
+_080D409C: .4byte 0xfffffc00
+_080D40A0: .4byte 0x000001ff
+_080D40A4: .4byte sub_80D40A8
+ thumb_func_end sub_80D4044
+
+ thumb_func_start sub_80D40A8
+sub_80D40A8: @ 80D40A8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D40CC
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D40D0
+_080D40CC:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D40D0:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D40EE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D40EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D40A8
+
+ thumb_func_start sub_80D40F4
+sub_80D40F4: @ 80D40F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D4144
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080D4148
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D414C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4144: .4byte gTasks
+_080D4148: .4byte gSprites
+_080D414C: .4byte sub_80D4150
+ thumb_func_end sub_80D40F4
+
+ thumb_func_start sub_80D4150
+sub_80D4150: @ 80D4150
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D4178
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080D416C
+ b _080D438A
+_080D416C:
+ lsls r0, 2
+ ldr r1, _080D417C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D4178: .4byte gTasks
+_080D417C: .4byte _080D4180
+ .align 2, 0
+_080D4180:
+ .4byte _080D41A0
+ .4byte _080D41C6
+ .4byte _080D4258
+ .4byte _080D428E
+ .4byte _080D42A2
+ .4byte _080D42B0
+ .4byte _080D4330
+ .4byte _080D437C
+_080D41A0:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D41C6:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4222
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D4210
+ ldr r2, _080D420C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _080D4222
+ .align 2, 0
+_080D420C: .4byte gSprites
+_080D4210:
+ ldr r2, _080D4250
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D4254
+ strh r1, [r0, 0x24]
+_080D4222:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D4232
+ b _080D438A
+_080D4232:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D4250
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _080D436C
+ .align 2, 0
+_080D4250: .4byte gSprites
+_080D4254: .4byte 0x0000fffd
+_080D4258:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D4268
+ b _080D438A
+_080D4268:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D436E
+_080D428E:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D438A
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+_080D42A2:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80D4418
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D42B0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D438A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D42E8
+ ldr r2, _080D42E4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _080D42FA
+ .align 2, 0
+_080D42E4: .4byte gSprites
+_080D42E8:
+ ldr r2, _080D432C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_080D42FA:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080D438A
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+ .align 2, 0
+_080D432C: .4byte gSprites
+_080D4330:
+ ldr r6, _080D4378
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D438A
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_080D436C:
+ strh r5, [r4, 0x10]
+_080D436E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D438A
+ .align 2, 0
+_080D4378: .4byte gSprites
+_080D437C:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D438A
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D438A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4150
+
+ thumb_func_start sub_80D4394
+sub_80D4394: @ 80D4394
+ push {r4,r5,lr}
+ ldr r4, _080D43B8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D43C8
+ ldr r1, _080D43BC
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D43C0
+ b _080D43D8
+ .align 2, 0
+_080D43B8: .4byte gUnknown_0202F7C8
+_080D43BC: .4byte gUnknown_02024A6A
+_080D43C0: .4byte gPlayerParty
+_080D43C4:
+ adds r0, r2, 0
+ b _080D440A
+_080D43C8:
+ ldr r1, _080D4410
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D4414
+_080D43D8:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_080D43F6:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080D43C4
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D43F6
+ movs r0, 0x3
+_080D440A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D4410: .4byte gUnknown_02024A6A
+_080D4414: .4byte gEnemyParty
+ thumb_func_end sub_80D4394
+
+ thumb_func_start sub_80D4418
+sub_80D4418: @ 80D4418
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, _080D4520
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _080D4468
+ movs r1, 0x1
+_080D4468:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_080D4482:
+ ldr r0, _080D4524
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _080D44EA
+ ldr r1, _080D4528
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D44E4
+ adds r0, r5, 0
+ bl sub_80D452C
+_080D44E4:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080D44EA:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D4482
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4520: .4byte gUnknown_0202F7C8
+_080D4524: .4byte gSpriteTemplate_83D9378
+_080D4528: .4byte gSprites
+ thumb_func_end sub_80D4418
+
+ thumb_func_start sub_80D452C
+sub_80D452C: @ 80D452C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D453E
+ cmp r0, 0x1
+ beq _080D4574
+ b _080D45CE
+_080D453E:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D4574:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D45AA
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D45AA
+ cmp r1, 0x78
+ ble _080D45CE
+_080D45AA:
+ ldr r3, _080D45D4
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D45CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D45D4: .4byte gTasks
+ thumb_func_end sub_80D452C
+
+ thumb_func_start sub_80D45D8
+sub_80D45D8: @ 80D45D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4608
+ adds r4, r1, r0
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080D460C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D4610
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080D4616
+ .align 2, 0
+_080D4608: .4byte gTasks
+_080D460C: .4byte gUnknown_0202F7C8
+_080D4610:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080D4616:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, _080D4638
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4638: .4byte sub_80D463C
+ thumb_func_end sub_80D45D8
+
+ thumb_func_start sub_80D463C
+sub_80D463C: @ 80D463C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, _080D4660
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080D4664
+ cmp r2, 0x1
+ beq _080D4714
+ b _080D4722
+ .align 2, 0
+_080D4660: .4byte gTasks
+_080D4664:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D467A
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80D472C
+_080D467A:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D46F4
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D46F4
+ ldr r5, _080D4708
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, _080D470C
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46C4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46C4:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46F0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46F0:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080D46F4:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D4722
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4722
+ .align 2, 0
+_080D4708: .4byte gUnknown_03004B00
+_080D470C: .4byte sub_80E1864
+_080D4710: .4byte gUnknown_0202F7B2
+_080D4714:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D4722
+ adds r0, r1, 0
+ bl move_anim_task_del
+_080D4722:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D463C
+
+ thumb_func_start sub_80D472C
+sub_80D472C: @ 80D472C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080D47B8
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080D47BC
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D4786
+ ldr r3, _080D47C0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D47C4
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_080D4786:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, _080D47C8
+ muls r0, r1
+ ldr r1, _080D47CC
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D47B8: .4byte gSineTable
+_080D47BC: .4byte gSpriteTemplate_83D9378
+_080D47C0: .4byte gSprites
+_080D47C4: .4byte sub_80D47D0
+_080D47C8: .4byte 0x41c64e6d
+_080D47CC: .4byte 0x00003039
+ thumb_func_end sub_80D472C
+
+ thumb_func_start sub_80D47D0
+sub_80D47D0: @ 80D47D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D4866
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D4866
+ ldr r2, _080D486C
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, _080D4870
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _080D4860
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D4874
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D4878
+ str r1, [r0]
+_080D4860:
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4866:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D486C: .4byte gTasks
+_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
+_080D4874: .4byte gSprites
+_080D4878: .4byte sub_80D487C
+ thumb_func_end sub_80D47D0
+
+ thumb_func_start sub_80D487C
+sub_80D487C: @ 80D487C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D48E8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080D48E8
+ ldr r3, _080D48F0
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D48F0: .4byte gTasks
+ thumb_func_end sub_80D487C
+
+ thumb_func_start sub_80D48F4
+sub_80D48F4: @ 80D48F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4978
+ adds r5, r1, r0
+ ldr r4, _080D497C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D4938
+ movs r1, 0x1
+_080D4938:
+ strh r1, [r5, 0x16]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D494C
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080D494C:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, _080D4980
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080D4984
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4978: .4byte gTasks
+_080D497C: .4byte gUnknown_0202F7C8
+_080D4980: .4byte 0x0000ffe0
+_080D4984: .4byte sub_80D4988
+ thumb_func_end sub_80D48F4
+
+ thumb_func_start sub_80D4988
+sub_80D4988: @ 80D4988
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D49AC
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D49A2
+ b _080D4AC2
+_080D49A2:
+ lsls r0, 2
+ ldr r1, _080D49B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D49AC: .4byte gTasks
+_080D49B0: .4byte _080D49B4
+ .align 2, 0
+_080D49B4:
+ .4byte _080D49D0
+ .4byte _080D49E0
+ .4byte _080D49FA
+ .4byte _080D4A3C
+ .4byte _080D4A5E
+ .4byte _080D4A8C
+ .4byte _080D4AB2
+_080D49D0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D4AC8
+ b _080D4ABA
+_080D49E0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D4AC8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D49FA:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D4A38
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080D4AC8
+_080D4A38:
+ strh r2, [r4, 0xA]
+ b _080D4ABA
+_080D4A3C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ b _080D4ABA
+_080D4A5E:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D4A8C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AB2:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D4AC8
+_080D4ABA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AC2:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D4AC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4988
+
+ thumb_func_start sub_80D4AD0
+sub_80D4AD0: @ 80D4AD0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4B2A
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080D4B30
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D4B2A
+ ldr r5, _080D4B34
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl sub_80786EC
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080D4B38
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080D4B2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B30: .4byte gSpriteTemplate_83D9378
+_080D4B34: .4byte gSprites
+_080D4B38: .4byte sub_80D4B3C
+ thumb_func_end sub_80D4AD0
+
+ thumb_func_start sub_80D4B3C
+sub_80D4B3C: @ 80D4B3C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4B96
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080D4B9C
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080D4BA0
+ str r0, [r6, 0x1C]
+_080D4B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B9C: .4byte 0x0000fff0
+_080D4BA0: .4byte sub_80D4BA4
+ thumb_func_end sub_80D4B3C
+
+ thumb_func_start sub_80D4BA4
+sub_80D4BA4: @ 80D4BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4BE0
+ movs r4, 0
+ ldr r6, _080D4BE8
+_080D4BB6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080D4BEC
+ cmp r1, r0
+ bne _080D4BD6
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4BD6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080D4BB6
+_080D4BE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4BE8: .4byte gTasks
+_080D4BEC: .4byte sub_80D4988
+ thumb_func_end sub_80D4BA4
+
+ thumb_func_start sub_80D4BF0
+sub_80D4BF0: @ 80D4BF0
+ ldr r2, _080D4C10
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, _080D4C14
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D4C10: .4byte gUnknown_03004B00
+_080D4C14: .4byte sub_80D4C18
+ thumb_func_end sub_80D4BF0
+
+ thumb_func_start sub_80D4C18
+sub_80D4C18: @ 80D4C18
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C5C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C18
+
+ thumb_func_start sub_80D4C64
+sub_80D4C64: @ 80D4C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C9C
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D4C9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C64
+
+ thumb_func_start sub_80D4CA4
+sub_80D4CA4: @ 80D4CA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D4CE0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080D4CE4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D4CE8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4CE0: .4byte gUnknown_0202F7C9
+_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE8: .4byte sub_80D4CEC
+ thumb_func_end sub_80D4CA4
+
+ thumb_func_start sub_80D4CEC
+sub_80D4CEC: @ 80D4CEC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D4D44
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80D4D64
+_080D4D44:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D4D56
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4D56:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4CEC
+
+ thumb_func_start sub_80D4D64
+sub_80D4D64: @ 80D4D64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4DF2:
+ ldr r0, _080D4E34
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4E38
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4E3C
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080D4E40
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080D4E42
+ .align 2, 0
+_080D4E34: .4byte gSpriteTemplate_83D9420
+_080D4E38: .4byte gSprites
+_080D4E3C: .4byte gUnknown_0202F7C8
+_080D4E40:
+ strh r7, [r4, 0x32]
+_080D4E42:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4DF2
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4E68:
+ ldr r0, _080D4EAC
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4EB0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4EB4
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080D4EB8
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080D4EBA
+ .align 2, 0
+_080D4EAC: .4byte gSpriteTemplate_83D9420
+_080D4EB0: .4byte gSprites
+_080D4EB4: .4byte gUnknown_0202F7C8
+_080D4EB8:
+ strh r7, [r4, 0x32]
+_080D4EBA:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4E68
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4D64
+
+ thumb_func_start sub_80D4ED8
+sub_80D4ED8: @ 80D4ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4F0C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D4F10
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D4F14
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F0C: .4byte gUnknown_03004B00
+_080D4F10: .4byte move_anim_8072740
+_080D4F14: .4byte sub_8078174
+ thumb_func_end sub_80D4ED8
+
+ thumb_func_start sub_80D4F18
+sub_80D4F18: @ 80D4F18
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D4F50
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080D4F54
+ str r0, [r4, 0x1C]
+ ldr r1, _080D4F58
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F50: .4byte gUnknown_03004B00
+_080D4F54: .4byte sub_8078394
+_080D4F58: .4byte move_anim_8072740
+ thumb_func_end sub_80D4F18
+
+ thumb_func_start sub_80D4F5C
+sub_80D4F5C: @ 80D4F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D4F90
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4F98
+ ldr r2, _080D4F94
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D4FAE
+ .align 2, 0
+_080D4F90: .4byte gUnknown_0202F7C8
+_080D4F94: .4byte gUnknown_03004B00
+_080D4F98:
+ ldr r1, _080D4FC4
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080D4FAE:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D4FC8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC8: .4byte sub_80D5038
+ thumb_func_end sub_80D4F5C
+
+ thumb_func_start sub_80D4FCC
+sub_80D4FCC: @ 80D4FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4FF8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5000
+ ldr r2, _080D4FFC
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D5018
+ .align 2, 0
+_080D4FF8: .4byte gUnknown_0202F7C8
+_080D4FFC: .4byte gUnknown_03004B00
+_080D5000:
+ ldr r1, _080D5030
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080D5018:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D5034
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5030: .4byte gUnknown_03004B00
+_080D5034: .4byte sub_80D5038
+ thumb_func_end sub_80D4FCC
+
+ thumb_func_start sub_80D5038
+sub_80D5038: @ 80D5038
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080D505E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080D505E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080D5070
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D5070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5038
+
+ thumb_func_start sub_80D5074
+sub_80D5074: @ 80D5074
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D5098
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D50A0
+ ldr r0, _080D509C
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D50B2
+ .align 2, 0
+_080D5098: .4byte gUnknown_0202F7C8
+_080D509C: .4byte gUnknown_03004B00
+_080D50A0:
+ ldr r0, _080D50E0
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080D50B2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080D50E4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D50E0: .4byte gUnknown_03004B00
+_080D50E4: .4byte sub_80D50E8
+ thumb_func_end sub_80D5074
+
+ thumb_func_start sub_80D50E8
+sub_80D50E8: @ 80D50E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5170
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080D5154
+ cmp r1, r0
+ ble _080D5106
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080D5106:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D515C
+ ldr r2, _080D5158
+ b _080D5164
+ .align 2, 0
+_080D5154: .4byte 0x00002710
+_080D5158: .4byte 0xffffff00
+_080D515C:
+ cmp r0, 0
+ bge _080D5168
+ movs r2, 0x80
+ lsls r2, 1
+_080D5164:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080D5168:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080D5176
+_080D5170:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D5176:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D50E8
+
+ thumb_func_start sub_80D517C
+sub_80D517C: @ 80D517C
+ push {lr}
+ movs r1, 0
+ strh r1, [r0, 0x20]
+ strh r1, [r0, 0x22]
+ movs r1, 0x3C
+ strh r1, [r0, 0x2E]
+ movs r1, 0x8C
+ strh r1, [r0, 0x32]
+ movs r1, 0x50
+ strh r1, [r0, 0x36]
+ ldr r1, _080D51A0
+ str r1, [r0, 0x1C]
+ ldr r1, _080D51A4
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D51A0: .4byte sub_8078B34
+_080D51A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D517C
+
+ thumb_func_start sub_80D51A8
+sub_80D51A8: @ 80D51A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D5200
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D5204
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D51EE
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080D51E6
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080D51EE
+_080D51E6:
+ ldr r1, _080D5208
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D51EE:
+ ldr r1, _080D520C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5200: .4byte gUnknown_0202F7C8
+_080D5204: .4byte gUnknown_0202F7C9
+_080D5208: .4byte gUnknown_03004B00
+_080D520C: .4byte sub_8079534
+ thumb_func_end sub_80D51A8
+
+ thumb_func_start sub_80D5210
+sub_80D5210: @ 80D5210
+ ldr r2, _080D5224
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080D5228
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D5224: .4byte gUnknown_03004B00
+_080D5228: .4byte sub_8079534
+ thumb_func_end sub_80D5210
+
+ thumb_func_start sub_80D522C
+sub_80D522C: @ 80D522C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D524C
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080D5250
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D524C: .4byte gUnknown_03004B00
+_080D5250: .4byte sub_80D5254
+ thumb_func_end sub_80D522C
+
+ thumb_func_start sub_80D5254
+sub_80D5254: @ 80D5254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080D529E
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D52A4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D52A8
+ str r0, [r5, 0x1C]
+_080D529E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D52A4: .4byte gUnknown_0202F7C9
+_080D52A8: .4byte sub_80D52AC
+ thumb_func_end sub_80D5254
+
+ thumb_func_start sub_80D52AC
+sub_80D52AC: @ 80D52AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D52F4
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080D52EC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080D52F0
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080D531E
+ .align 2, 0
+_080D52EC: .4byte gUnknown_0202F7C9
+_080D52F0: .4byte sub_80D5324
+_080D52F4:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_080D531E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D52AC
+
+ thumb_func_start sub_80D5324
+sub_80D5324: @ 80D5324
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5340
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5340:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5324
+
+ thumb_func_start sub_80D5348
+sub_80D5348: @ 80D5348
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5348
+
+ thumb_func_start sub_80D5374
+sub_80D5374: @ 80D5374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D53A8
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080D53AC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D53B0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53A8: .4byte gUnknown_03004B00
+_080D53AC: .4byte move_anim_8072740
+_080D53B0: .4byte sub_8078364
+ thumb_func_end sub_80D5374
+
+ thumb_func_start sub_80D53B4
+sub_80D53B4: @ 80D53B4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D53E8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D53EC
+ str r0, [r4, 0x1C]
+ ldr r1, _080D53F0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53E8: .4byte gUnknown_03004B00
+_080D53EC: .4byte sub_80782D8
+_080D53F0: .4byte sub_80D53F4
+ thumb_func_end sub_80D53B4
+
+ thumb_func_start sub_80D53F4
+sub_80D53F4: @ 80D53F4
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, _080D5418
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5418: .4byte sub_80D541C
+ thumb_func_end sub_80D53F4
+
+ thumb_func_start sub_80D541C
+sub_80D541C: @ 80D541C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D5468
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D541C
+
+ thumb_func_start sub_80D5470
+sub_80D5470: @ 80D5470
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D54D0
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, _080D54D4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, _080D54D8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D54DC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D54D0: .4byte gTasks
+_080D54D4: .4byte gSprites
+_080D54D8: .4byte gUnknown_0202F7C8
+_080D54DC: .4byte sub_80D54E0
+ thumb_func_end sub_80D5470
+
+ thumb_func_start sub_80D54E0
+sub_80D54E0: @ 80D54E0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D5508
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D54FC
+ b _080D57BA
+_080D54FC:
+ lsls r0, 2
+ ldr r1, _080D550C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D5508: .4byte gTasks
+_080D550C: .4byte _080D5510
+ .align 2, 0
+_080D5510:
+ .4byte _080D552C
+ .4byte _080D5552
+ .4byte _080D5604
+ .4byte _080D5664
+ .4byte _080D5682
+ .4byte _080D5758
+ .4byte _080D57AC
+_080D552C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D5552:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D559A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5588
+ ldr r2, _080D5584
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _080D5598
+ .align 2, 0
+_080D5584: .4byte gSprites
+_080D5588:
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D5600
+_080D5598:
+ strh r1, [r0, 0x24]
+_080D559A:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D55C8
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D55C8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_080D55C8:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D55D8
+ b _080D57BA
+_080D55D8:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D55FC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D55FC: .4byte gSprites
+_080D5600: .4byte 0x0000fffd
+_080D5604:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D5614
+ b _080D57BA
+_080D5614:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D563E
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ b _080D565E
+_080D563E:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+_080D565E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D57A0
+_080D5664:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5672
+ b _080D57BA
+_080D5672:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80D57C4
+ b _080D57A0
+_080D5682:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D56D0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D56BC
+ ldr r2, _080D56B8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _080D56CE
+ .align 2, 0
+_080D56B8: .4byte gSprites
+_080D56BC:
+ ldr r2, _080D5708
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_080D56CE:
+ strh r1, [r0, 0x26]
+_080D56D0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080D57BA
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D570C
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_8079C08
+ b _080D572A
+ .align 2, 0
+_080D5708: .4byte gSprites
+_080D570C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_8079C08
+_080D572A:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5748
+ ldr r2, _080D5754
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_080D5748:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D5754: .4byte gSprites
+_080D5758:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5774
+ ldr r2, _080D57A8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_080D5774:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D57BA
+ ldr r2, _080D57A8
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ strh r5, [r4, 0xC]
+_080D57A0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D57BA
+ .align 2, 0
+_080D57A8: .4byte gSprites
+_080D57AC:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D57BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D57BA:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D54E0
+
+ thumb_func_start sub_80D57C4
+sub_80D57C4: @ 80D57C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80D5940
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080D5814
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080D5818
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D581C
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080D5826
+ .align 2, 0
+_080D5814: .4byte gSprites
+_080D5818: .4byte gUnknown_0202F7C8
+_080D581C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080D5826:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, _080D58E0
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080D5844:
+ ldr r0, _080D58E4
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D58C6
+ ldr r1, _080D58E8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, _080D58EC
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080D58F0
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080D588E
+ movs r5, 0
+_080D588E:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080D58F4
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80D5994
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, _080D58F8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080D58C6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080D5844
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D58E0: .4byte gUnknown_083D96DC
+_080D58E4: .4byte gSpriteTemplate_83D96C4
+_080D58E8: .4byte gSprites
+_080D58EC: .4byte 0x000003ff
+_080D58F0: .4byte 0xfffffc00
+_080D58F4: .4byte gUnknown_083D96DC + 0x2
+_080D58F8: .4byte gUnknown_03004B28
+ thumb_func_end sub_80D57C4
+
+ thumb_func_start sub_80D58FC
+sub_80D58FC: @ 80D58FC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D59B0
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5936
+ ldr r3, _080D593C
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D5936:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D593C: .4byte gTasks
+ thumb_func_end sub_80D58FC
+
+ thumb_func_start sub_80D5940
+sub_80D5940: @ 80D5940
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D5978
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x26]
+ ldrh r0, [r1, 0x22]
+ adds r2, r0
+ adds r1, 0x29
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080D597C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5980
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _080D5986
+ .align 2, 0
+_080D5978: .4byte gSprites
+_080D597C: .4byte gUnknown_0202F7C8
+_080D5980:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_080D5986:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D5940
+
+ thumb_func_start sub_80D5994
+sub_80D5994: @ 80D5994
+ movs r3, 0
+ strh r3, [r0, 0x2E]
+ strh r3, [r0, 0x30]
+ ldrh r3, [r0, 0x20]
+ lsls r3, 3
+ strh r3, [r0, 0x32]
+ ldrh r3, [r0, 0x22]
+ lsls r3, 3
+ strh r3, [r0, 0x34]
+ lsls r1, 3
+ strh r1, [r0, 0x36]
+ lsls r2, 3
+ strh r2, [r0, 0x38]
+ bx lr
+ thumb_func_end sub_80D5994
+
+ thumb_func_start sub_80D59B0
+sub_80D59B0: @ 80D59B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D59DA
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r3, [r2, 0x34]
+ adds r0, r3
+ strh r0, [r2, 0x34]
+_080D59DA:
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r1, 16
+ asrs r3, r1, 19
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D5A10
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D5A10
+ cmp r1, 0x78
+ ble _080D5A1C
+_080D5A10:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080D5A1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D59B0
+
+ thumb_func_start sub_80D5A20
+sub_80D5A20: @ 80D5A20
+ push {r4,r5,lr}
+ ldr r3, _080D5A64
+ ldrh r1, [r3]
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0x3A]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x3C]
+ ldrh r4, [r0, 0x4]
+ lsls r2, r4, 22
+ lsrs r2, 22
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r1, 4
+ adds r2, r1
+ ldr r3, _080D5A68
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, _080D5A6C
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, _080D5A70
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5A64: .4byte gUnknown_03004B00
+_080D5A68: .4byte 0x000003ff
+_080D5A6C: .4byte 0xfffffc00
+_080D5A70: .4byte sub_80D5A74
+ thumb_func_end sub_80D5A20
+
+ thumb_func_start sub_80D5A74
+sub_80D5A74: @ 80D5A74
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080D5AA6
+ cmp r0, 0x1
+ bgt _080D5A8A
+ cmp r0, 0
+ beq _080D5A90
+ b _080D5B04
+_080D5A8A:
+ cmp r0, 0x2
+ beq _080D5AC4
+ b _080D5B04
+_080D5A90:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080D5AA0
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _080D5B04
+_080D5AA0:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080D5AA6:
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x3C]
+ movs r4, 0x3C
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080D5B04
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _080D5B04
+_080D5AC4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5AF0
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5AEC
+ ldr r0, _080D5AE8
+ b _080D5AEE
+ .align 2, 0
+_080D5AE8: .4byte 0x0000fffd
+_080D5AEC:
+ movs r0, 0x3
+_080D5AEE:
+ strh r0, [r2, 0x26]
+_080D5AF0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D5B04
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D5B04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5A74
+
+ thumb_func_start sub_80D5B0C
+sub_80D5B0C: @ 80D5B0C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D5B80
+ cmp r0, 0x1
+ bgt _080D5B22
+ cmp r0, 0
+ beq _080D5B28
+ b _080D5C4E
+_080D5B22:
+ cmp r0, 0x2
+ beq _080D5BDE
+ b _080D5C4E
+_080D5B28:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080D5B50
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D5B54
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5B58
+ movs r0, 0x4
+ b _080D5B5A
+ .align 2, 0
+_080D5B50: .4byte gUnknown_03004B00
+_080D5B54: .4byte gUnknown_0202F7C8
+_080D5B58:
+ ldr r0, _080D5B78
+_080D5B5A:
+ strh r0, [r5, 0x36]
+ ldr r0, _080D5B7C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080D5BD6
+ .align 2, 0
+_080D5B78: .4byte 0x0000fffc
+_080D5B7C: .4byte gUnknown_0202F7C9
+_080D5B80:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, _080D5BA0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5BA4
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D5BAA
+ .align 2, 0
+_080D5BA0: .4byte gUnknown_0202F7C8
+_080D5BA4:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_080D5BAA:
+ strh r0, [r5, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D5C4E
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_080D5BD6:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D5C4E
+_080D5BDE:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r2, r0, 0
+ movs r3, 0
+ strh r2, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5C4E
+ ldrh r0, [r5, 0x20]
+ adds r1, r2, r0
+ strh r1, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r3, [r5, 0x26]
+ strh r3, [r5, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D5C54
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080D5C58
+ str r0, [r5, 0x1C]
+_080D5C4E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5C54: .4byte gUnknown_0202F7C9
+_080D5C58: .4byte sub_80D5C5C
+ thumb_func_end sub_80D5B0C
+
+ thumb_func_start sub_80D5C5C
+sub_80D5C5C: @ 80D5C5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5CB4
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080D5C92
+ cmp r2, 0xC4
+ ble _080D5CBA
+_080D5C92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D5CBA
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D5CBA
+ ldr r0, _080D5CB0
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x90
+ bl PlaySE12WithPanning
+ b _080D5CBA
+ .align 2, 0
+_080D5CB0: .4byte gUnknown_0202F7D2
+_080D5CB4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5C5C
+
+ thumb_func_start sub_80D5CC0
+sub_80D5CC0: @ 80D5CC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D5CD8
+ ldr r0, _080D5D4C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_080D5CD8:
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0xA0
+ strh r0, [r4, 0x36]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x7
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x30]
+ ldr r0, _080D5D50
+ ldr r1, _080D5D54
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5D84
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D5C
+ ldr r0, _080D5D58
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D4C: .4byte gUnknown_03004B00
+_080D5D50: .4byte gMain
+_080D5D54: .4byte 0x0000043d
+_080D5D58: .4byte gUnknown_0202F7C9
+_080D5D5C:
+ ldr r0, _080D5D80
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D80: .4byte gUnknown_0202F7C9
+_080D5D84:
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D98
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _080D5D9E
+_080D5D98:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_080D5D9E:
+ strb r0, [r1]
+_080D5DA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D5DC8
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D5DC8:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _080D5DD6
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5DD6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5CC0
+
+ thumb_func_start sub_80D5DDC
+sub_80D5DDC: @ 80D5DDC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D5E3C
+ adds r4, r1, r0
+ ldr r0, _080D5E40
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D5E02
+ movs r1, 0x1
+_080D5E02:
+ strh r1, [r4, 0x20]
+ ldr r0, _080D5E44
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D5E48
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5E3C: .4byte gTasks
+_080D5E40: .4byte gUnknown_0202F7C8
+_080D5E44: .4byte gUnknown_0202F7C9
+_080D5E48: .4byte sub_80D5E4C
+ thumb_func_end sub_80D5DDC
+
+ thumb_func_start sub_80D5E4C
+sub_80D5E4C: @ 80D5E4C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D5E70
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _080D5F14
+ cmp r3, 0x1
+ bgt _080D5E74
+ cmp r3, 0
+ beq _080D5E82
+ b _080D6074
+ .align 2, 0
+_080D5E70: .4byte gTasks
+_080D5E74:
+ cmp r3, 0x2
+ bne _080D5E7A
+ b _080D5F9C
+_080D5E7A:
+ cmp r3, 0x3
+ bne _080D5E80
+ b _080D6030
+_080D5E80:
+ b _080D6074
+_080D5E82:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5EB4
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5EB0
+ movs r0, 0x2
+ b _080D5EB2
+_080D5EB0:
+ ldr r0, _080D5F0C
+_080D5EB2:
+ strh r0, [r2, 0x1E]
+_080D5EB4:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5EF6
+ ldr r4, _080D5F10
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5EC6:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5EC6
+_080D5EF6:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080D5F06
+ b _080D6074
+_080D5F06:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F0C: .4byte 0x0000fffe
+_080D5F10: .4byte gSprites
+_080D5F14:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D5F3C
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ands r0, r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D5F38
+ movs r0, 0x2
+ b _080D5F3A
+_080D5F38:
+ ldr r0, _080D5F94
+_080D5F3A:
+ strh r0, [r2, 0x1E]
+_080D5F3C:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5F7E
+ ldr r4, _080D5F98
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5F4E:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5F4E
+_080D5F7E:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _080D6074
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F94: .4byte 0x0000fffe
+_080D5F98: .4byte gSprites
+_080D5F9C:
+ movs r7, 0x20
+ ldrsh r1, [r2, r7]
+ lsls r1, 1
+ ldrh r0, [r2, 0x1C]
+ subs r0, r1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5FD0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5FCC
+ strh r3, [r2, 0x1E]
+ b _080D5FD0
+_080D5FCC:
+ ldr r0, _080D6028
+ strh r0, [r2, 0x1E]
+_080D5FD0:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D6012
+ ldr r4, _080D602C
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5FE2:
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D5FE2
+_080D6012:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080D6074
+_080D6020:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080D6074
+ .align 2, 0
+_080D6028: .4byte 0x0000fffe
+_080D602C: .4byte gSprites
+_080D6030:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D606E
+ ldr r6, _080D607C
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_080D6044:
+ movs r7, 0xE
+ ldrsh r0, [r2, r7]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D6044
+_080D606E:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D6074:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D607C: .4byte gSprites
+ thumb_func_end sub_80D5E4C
+
+ thumb_func_start sub_80D6080
+sub_80D6080: @ 80D6080
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_8078914
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, _080D60B0
+ ldrb r2, [r1]
+ ldrh r3, [r1, 0x2]
+ movs r1, 0x10
+ bl BlendPalette
+ adds r0, r4, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D60B0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D6080
+
+ thumb_func_start sub_80D60B4
+sub_80D60B4: @ 80D60B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080D610C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r9, r1
+ ldr r4, _080D6110
+ mov r8, r4
+ cmp r0, 0
+ bne _080D60EA
+ ldrh r0, [r4]
+ strh r0, [r2, 0xA]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r2, 0x10]
+_080D60EA:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080D6114
+ ldr r0, _080D6118
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080D6120
+ ldr r4, _080D611C
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _080D6126
+ .align 2, 0
+_080D610C: .4byte gTasks
+_080D6110: .4byte gUnknown_03004B00
+_080D6114: .4byte gUnknown_02024BE0
+_080D6118: .4byte gUnknown_0202F7C9
+_080D611C: .4byte gUnknown_083D9794
+_080D6120:
+ ldr r4, _080D616C
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_080D6126:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r4
+ ldrb r5, [r0]
+ lsls r0, r7, 2
+ adds r1, r0, r7
+ lsls r1, 3
+ add r1, r9
+ movs r4, 0xE
+ ldrsh r1, [r1, r4]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _080D6174
+ ldr r2, _080D6170
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ mov r10, r0
+ mov r0, r8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ lsls r0, r5, 24
+ asrs r0, 24
+ muls r0, r1
+ cmp r0, 0
+ bge _080D6164
+ negs r0, r0
+_080D6164:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _080D618E
+ .align 2, 0
+_080D616C: .4byte gUnknown_083D97A4
+_080D6170: .4byte gSprites
+_080D6174:
+ ldr r3, _080D61C4
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ lsls r0, r5, 24
+ asrs r0, 24
+ mov r5, r8
+ ldrh r1, [r5, 0x2]
+ muls r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_080D618E:
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080D61B4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D61B4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D61C4: .4byte gSprites
+ thumb_func_end sub_80D60B4
+
+ thumb_func_start sub_80D61C8
+sub_80D61C8: @ 80D61C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D61E8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D61F0
+ ldr r0, _080D61EC
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D61FC
+ .align 2, 0
+_080D61E8: .4byte gUnknown_0202F7C8
+_080D61EC: .4byte gUnknown_03004B00
+_080D61F0:
+ ldr r1, _080D6210
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080D61FC:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6214
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6210: .4byte gUnknown_03004B00
+_080D6214: .4byte sub_80D6218
+ thumb_func_end sub_80D61C8
+
+ thumb_func_start sub_80D6218
+sub_80D6218: @ 80D6218
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D622E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D622E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6218
+
+ thumb_func_start sub_80D6234
+sub_80D6234: @ 80D6234
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6254
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D625C
+ ldr r0, _080D6258
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _080D6266
+ .align 2, 0
+_080D6254: .4byte gUnknown_0202F7C8
+_080D6258: .4byte gUnknown_03004B00
+_080D625C:
+ ldr r0, _080D6270
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_080D6266:
+ ldr r0, _080D6274
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6270: .4byte gUnknown_03004B00
+_080D6274: .4byte sub_80D6278
+ thumb_func_end sub_80D6234
+
+ thumb_func_start sub_80D6278
+sub_80D6278: @ 80D6278
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D628E
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D628E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6278
+
+ thumb_func_start sub_80D6294
+sub_80D6294: @ 80D6294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D62D8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D62DC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D62E4
+ ldr r2, _080D62E0
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ b _080D62F8
+ .align 2, 0
+_080D62D8: .4byte gUnknown_0202F7C9
+_080D62DC: .4byte gUnknown_0202F7C8
+_080D62E0: .4byte gUnknown_03004B00
+_080D62E4:
+ ldr r0, _080D631C
+ ldrh r1, [r0]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r1, r2
+ strh r1, [r5, 0x22]
+ adds r2, r0, 0
+_080D62F8:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080D6320
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6324
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D631C: .4byte gUnknown_03004B00
+_080D6320: .4byte move_anim_8074EE0
+_080D6324: .4byte sub_8078114
+ thumb_func_end sub_80D6294
+
+ thumb_func_start sub_80D6328
+sub_80D6328: @ 80D6328
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6340
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080D63A0
+ cmp r0, 0x1
+ bgt _080D6344
+ cmp r0, 0
+ beq _080D634E
+ b _080D63A0
+ .align 2, 0
+_080D6340: .4byte gUnknown_03004B00
+_080D6344:
+ cmp r0, 0x2
+ beq _080D6358
+ cmp r0, 0x3
+ beq _080D637C
+ b _080D63A0
+_080D634E:
+ ldr r0, _080D6354
+ b _080D63A2
+ .align 2, 0
+_080D6354: .4byte gUnknown_0202F7C8
+_080D6358:
+ ldr r4, _080D6370
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6374
+ ldrb r4, [r4]
+ b _080D63A4
+ .align 2, 0
+_080D6370: .4byte gUnknown_0202F7C8
+_080D6374:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _080D63A4
+_080D637C:
+ ldr r0, _080D6398
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D63A0
+ ldr r0, _080D639C
+ ldrb r0, [r0]
+ eors r4, r0
+ b _080D63A4
+ .align 2, 0
+_080D6398: .4byte gUnknown_0202F7C8
+_080D639C: .4byte gUnknown_0202F7C9
+_080D63A0:
+ ldr r0, _080D63C4
+_080D63A2:
+ ldrb r4, [r0]
+_080D63A4:
+ ldr r0, _080D63C8
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D63CC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080D63DE
+ .align 2, 0
+_080D63C4: .4byte gUnknown_0202F7C9
+_080D63C8: .4byte gUnknown_03004B00
+_080D63CC:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_080D63DE:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, _080D647C
+ ldr r6, _080D6480
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r1, [r6, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D6442
+ adds r0, r4, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+_080D6442:
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ ldr r3, _080D6484
+ lsls r2, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r7
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D6488
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D647C: .4byte gSineTable
+_080D6480: .4byte gUnknown_03004B00
+_080D6484: .4byte gOamMatrices
+_080D6488: .4byte sub_80DA48C
+ thumb_func_end sub_80D6328
+
+ thumb_func_start sub_80D648C
+sub_80D648C: @ 80D648C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D6500
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080D6504
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6508
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D650C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080D6510
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6500: .4byte gUnknown_03004B00
+_080D6504: .4byte gUnknown_0202F7C9
+_080D6508: .4byte 0x000003ff
+_080D650C: .4byte 0xfffffc00
+_080D6510: .4byte sub_80D6514
+ thumb_func_end sub_80D648C
+
+ thumb_func_start sub_80D6514
+sub_80D6514: @ 80D6514
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D657E
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D6584
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080D6584
+_080D657E:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6514
+
+ thumb_func_start sub_80D658C
+sub_80D658C: @ 80D658C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D65C4
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x36]
+ strh r0, [r3, 0x38]
+_080D65C4:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D65D6
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D65D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D658C
+
+ thumb_func_start sub_80D65DC
+sub_80D65DC: @ 80D65DC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D6644
+ ldr r1, _080D6648
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D65FE
+ ldr r0, _080D664C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6606
+_080D65FE:
+ ldr r1, _080D6650
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D6606:
+ ldr r5, _080D664C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6650
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, _080D6654
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6644: .4byte gMain
+_080D6648: .4byte 0x0000043d
+_080D664C: .4byte gUnknown_0202F7C9
+_080D6650: .4byte gUnknown_03004B00
+_080D6654: .4byte sub_80D658C
+ thumb_func_end sub_80D65DC
+
+ thumb_func_start sub_80D6658
+sub_80D6658: @ 80D6658
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080D6674
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D667C
+ ldr r0, _080D6678
+ b _080D667E
+ .align 2, 0
+_080D6674: .4byte gUnknown_03004B00
+_080D6678: .4byte gUnknown_0202F7C9
+_080D667C:
+ ldr r0, _080D670C
+_080D667E:
+ ldrb r6, [r0]
+ ldr r0, _080D6710
+ ldr r3, _080D6714
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D669C
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D66A4
+_080D669C:
+ ldr r1, _080D6718
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D66A4:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6718
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080D671C
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6720
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D6724
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080D6728
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D670C: .4byte gUnknown_0202F7C8
+_080D6710: .4byte gMain
+_080D6714: .4byte 0x0000043d
+_080D6718: .4byte gUnknown_03004B00
+_080D671C: .4byte 0x00007fff
+_080D6720: .4byte 0x000003ff
+_080D6724: .4byte 0xfffffc00
+_080D6728: .4byte sub_80D672C
+ thumb_func_end sub_80D6658
+
+ thumb_func_start sub_80D672C
+sub_80D672C: @ 80D672C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _080D6782
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D6782:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D6794
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6794:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D672C
+
+ thumb_func_start sub_80D679C
+sub_80D679C: @ 80D679C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D67D8
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080D67DC
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080D67E0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080D67E4
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080D67F2
+ .align 2, 0
+_080D67D8: .4byte gUnknown_03004B00
+_080D67DC: .4byte 0x000003ff
+_080D67E0: .4byte 0xfffffc00
+_080D67E4:
+ cmp r0, 0x2
+ bne _080D67F6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080D67F2:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080D67F6:
+ ldr r0, _080D6810
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D6814
+ str r0, [r4, 0x1C]
+ ldr r1, _080D6818
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6810: .4byte gUnknown_03004B00
+_080D6814: .4byte sub_80782D8
+_080D6818: .4byte move_anim_8072740
+ thumb_func_end sub_80D679C
+
+ thumb_func_start sub_80D681C
+sub_80D681C: @ 80D681C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080D6864
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080D6868
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080D686C
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080D6870
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6864: .4byte gUnknown_0202F7C9
+_080D6868: .4byte gTasks
+_080D686C: .4byte gUnknown_03004B00
+_080D6870: .4byte sub_80D6874
+ thumb_func_end sub_80D681C
+
+ thumb_func_start sub_80D6874
+sub_80D6874: @ 80D6874
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _080D68B4
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _080D68B8
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080D68C2
+ .align 2, 0
+_080D68B4: .4byte gTasks
+_080D68B8:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080D68C2:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _080D69B8
+ lsls r0, 2
+ ldr r1, _080D68E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D68E0: .4byte _080D68E4
+ .align 2, 0
+_080D68E4:
+ .4byte _080D6910
+ .4byte _080D69B8
+ .4byte _080D6924
+ .4byte _080D69B8
+ .4byte _080D6944
+ .4byte _080D69B8
+ .4byte _080D695A
+ .4byte _080D69B8
+ .4byte _080D697C
+ .4byte _080D69B8
+ .4byte _080D69B0
+_080D6910:
+ ldr r0, _080D6920
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080D6992
+ .align 2, 0
+_080D6920: .4byte gSpriteTemplate_83D9938
+_080D6924:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6940
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6940: .4byte gSpriteTemplate_83D9938
+_080D6944:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _080D6986
+_080D695A:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6978
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6978: .4byte gSpriteTemplate_83D9938
+_080D697C:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080D6986:
+ ldr r0, _080D69AC
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080D6992:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080D69B8
+ .align 2, 0
+_080D69AC: .4byte gSpriteTemplate_83D9938
+_080D69B0:
+ mov r0, r9
+ bl move_anim_task_del
+ b _080D69FC
+_080D69B8:
+ cmp r7, 0
+ beq _080D69EC
+ ldr r4, _080D6A0C
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, _080D6A10
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080D6A14
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_080D69EC:
+ ldr r0, _080D6A18
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080D69FC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6A0C: .4byte gSprites
+_080D6A10: .4byte 0x000003ff
+_080D6A14: .4byte 0xfffffc00
+_080D6A18: .4byte gTasks
+ thumb_func_end sub_80D6874
+
+ thumb_func_start sub_80D6A1C
+sub_80D6A1C: @ 80D6A1C
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D6A3E
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _080D6A52
+_080D6A3E:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_080D6A52:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080D6A66
+ adds r0, r3, 0
+ bl DestroySprite
+_080D6A66:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6A1C
+
+ thumb_func_start sub_80D6A6C
+sub_80D6A6C: @ 80D6A6C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6AD4
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6AD8
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D6ADC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, _080D6AE0
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080D6AE4
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080D6AE8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080D6AEC
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
+_080D6ADC: .4byte gSprites
+_080D6AE0: .4byte 0x000003ff
+_080D6AE4: .4byte 0xfffffc00
+_080D6AE8: .4byte gUnknown_0202F7B2
+_080D6AEC: .4byte sub_80D6AF0
+ thumb_func_end sub_80D6A6C
+
+ thumb_func_start sub_80D6AF0
+sub_80D6AF0: @ 80D6AF0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D6B24
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080D6B24:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D6B38
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D6B38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6AF0
+
+ thumb_func_start sub_80D6B3C
+sub_80D6B3C: @ 80D6B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D6B5C
+ adds r5, r1, r0
+ ldr r0, _080D6B60
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6B68
+ ldr r4, _080D6B64
+ b _080D6B6A
+ .align 2, 0
+_080D6B5C: .4byte gTasks
+_080D6B60: .4byte gUnknown_03004B00
+_080D6B64: .4byte gUnknown_0202F7C8
+_080D6B68:
+ ldr r4, _080D6BAC
+_080D6B6A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080D6BB0
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, _080D6BB4
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6BAC: .4byte gUnknown_0202F7C9
+_080D6BB0: .4byte gUnknown_03004B00
+_080D6BB4: .4byte sub_80D6BB8
+ thumb_func_end sub_80D6B3C
+
+ thumb_func_start sub_80D6BB8
+sub_80D6BB8: @ 80D6BB8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D6CA0
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D6CB8
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _080D6CC6
+ strh r7, [r5, 0x20]
+ ldr r0, _080D6CA4
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D6CC6
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080D6CA8
+ adds r4, r0
+ ldr r1, _080D6CAC
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D6CB0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6CB4
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080D6C70
+ strh r7, [r5, 0x1A]
+_080D6C70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D6C92
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080D6C92
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080D6C92:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080D6CC6
+ .align 2, 0
+_080D6CA0: .4byte gTasks
+_080D6CA4: .4byte gSpriteTemplate_83D99B8
+_080D6CA8: .4byte gSprites
+_080D6CAC: .4byte gUnknown_083D9968
+_080D6CB0: .4byte sub_80D6D00
+_080D6CB4: .4byte sub_8078600
+_080D6CB8:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D6CC6
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D6CC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6BB8
+
+ thumb_func_start sub_80D6CCC
+sub_80D6CCC: @ 80D6CCC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D6CF4
+ ldr r2, _080D6CFC
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D6CF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6CFC: .4byte gTasks
+ thumb_func_end sub_80D6CCC
+
+ thumb_func_start sub_80D6D00
+sub_80D6D00: @ 80D6D00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D6D14
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D14: .4byte sub_80D6CCC
+ thumb_func_end sub_80D6D00
+
+ thumb_func_start sub_80D6D18
+sub_80D6D18: @ 80D6D18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D2C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D34
+ ldr r4, _080D6D30
+ b _080D6D36
+ .align 2, 0
+_080D6D2C: .4byte gUnknown_03004B00
+_080D6D30: .4byte gUnknown_0202F7C8
+_080D6D34:
+ ldr r4, _080D6D64
+_080D6D36:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6D68
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6D6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D64: .4byte gUnknown_0202F7C9
+_080D6D68: .4byte move_anim_8074EE0
+_080D6D6C: .4byte sub_80785E4
+ thumb_func_end sub_80D6D18
+
+ thumb_func_start sub_80D6D70
+sub_80D6D70: @ 80D6D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D84
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D8C
+ ldr r4, _080D6D88
+ b _080D6D8E
+ .align 2, 0
+_080D6D84: .4byte gUnknown_03004B00
+_080D6D88: .4byte gUnknown_0202F7C8
+_080D6D8C:
+ ldr r4, _080D6DC8
+_080D6D8E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6DCC
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080D6DD0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6DD4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6DC8: .4byte gUnknown_0202F7C9
+_080D6DCC: .4byte gUnknown_03004B00
+_080D6DD0: .4byte move_anim_8072740
+_080D6DD4: .4byte sub_8078600
+ thumb_func_end sub_80D6D70
+
+ thumb_func_start sub_80D6DD8
+sub_80D6DD8: @ 80D6DD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080D6E30
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D6E26
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080D6E26:
+ ldr r0, _080D6E34
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E30: .4byte gUnknown_0202F7C8
+_080D6E34: .4byte sub_80D6E38
+ thumb_func_end sub_80D6DD8
+
+ thumb_func_start sub_80D6E38
+sub_80D6E38: @ 80D6E38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D6E4A
+ cmp r0, 0x1
+ beq _080D6E60
+ b _080D6E90
+_080D6E4A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D6E90
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D6E90
+_080D6E60:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080D6E98
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D6E90
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D6E90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E98: .4byte gSprites
+ thumb_func_end sub_80D6E38
+
+ thumb_func_start sub_80D6E9C
+sub_80D6E9C: @ 80D6E9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080D6EC0
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D6F30
+ cmp r0, 0x1
+ bgt _080D6EC4
+ cmp r0, 0
+ beq _080D6ED0
+ b _080D7000
+ .align 2, 0
+_080D6EC0: .4byte gTasks
+_080D6EC4:
+ cmp r0, 0x2
+ beq _080D6F8C
+ cmp r0, 0x3
+ bne _080D6ECE
+ b _080D6FE0
+_080D6ECE:
+ b _080D7000
+_080D6ED0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080D6F04
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6F0C
+ ldr r0, _080D6F08
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080D6F12
+ .align 2, 0
+_080D6F04: .4byte gUnknown_0202F7C8
+_080D6F08: .4byte 0x0000ffe0
+_080D6F0C:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080D6F28
+_080D6F12:
+ strh r0, [r5, 0x22]
+ ldr r2, _080D6F2C
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _080D6FD2
+ .align 2, 0
+_080D6F28: .4byte 0x0000fffe
+_080D6F2C: .4byte gSprites
+_080D6F30:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080D6F88
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D6FD2
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _080D7000
+ .align 2, 0
+_080D6F88: .4byte gSprites
+_080D6F8C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080D6FDC
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080D7000
+_080D6FD2:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D7000
+ .align 2, 0
+_080D6FDC: .4byte gSprites
+_080D6FE0:
+ ldr r2, _080D7008
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D7000:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7008: .4byte gSprites
+ thumb_func_end sub_80D6E9C
+
+ thumb_func_start sub_80D700C
+sub_80D700C: @ 80D700C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D7030
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7026
+ b _080D714C
+_080D7026:
+ cmp r0, 0x1
+ bgt _080D7034
+ cmp r0, 0
+ beq _080D703C
+ b _080D718E
+ .align 2, 0
+_080D7030: .4byte gTasks
+_080D7034:
+ cmp r0, 0x2
+ bne _080D703A
+ b _080D7180
+_080D703A:
+ b _080D718E
+_080D703C:
+ ldr r4, _080D707C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D7052
+ movs r1, 0x1
+_080D7052:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080D7080
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080D7088
+ cmp r2, 0x4
+ beq _080D70B0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D70E8
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080D7084
+ b _080D70F0
+ .align 2, 0
+_080D707C: .4byte gUnknown_0202F7C8
+_080D7080: .4byte gUnknown_03004B00
+_080D7084: .4byte 0x0000fff0
+_080D7088:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _080D7126
+_080D70B0:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080D70E4
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080D7126
+ .align 2, 0
+_080D70E4: .4byte gUnknown_0202F7C9
+_080D70E8:
+ ldr r0, _080D710C
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080D70F0:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7110
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _080D7126
+ .align 2, 0
+_080D710C: .4byte 0x0000fff0
+_080D7110:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_080D7126:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080D713C
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080D7178
+_080D713C:
+ ldr r0, _080D7148
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080D7178
+ .align 2, 0
+_080D7148: .4byte 0x0000ffff
+_080D714C:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D718E
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7178
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D718E
+_080D7178:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D718E
+_080D7180:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D718E
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D718E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D700C
+
+ thumb_func_start sub_80D7194
+sub_80D7194: @ 80D7194
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7220
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D71CA
+ ldr r1, _080D7224
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080D71CA:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D71DC
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080D71DC:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080D71E8
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080D71E8:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _080D7208
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080D721C
+_080D7208:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080D7228
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080D7228
+_080D721C:
+ movs r0, 0x1
+ b _080D722A
+ .align 2, 0
+_080D7220: .4byte gSpriteTemplate_83D9B10
+_080D7224: .4byte gSprites
+_080D7228:
+ movs r0, 0
+_080D722A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7194
+
+ thumb_func_start sub_80D7230
+sub_80D7230: @ 80D7230
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7270
+ ldr r3, _080D7278
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7278: .4byte gTasks
+ thumb_func_end sub_80D7230
+
+ thumb_func_start sub_80D727C
+sub_80D727C: @ 80D727C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D728E
+ cmp r0, 0x1
+ beq _080D72C0
+ b _080D72D4
+_080D728E:
+ ldr r4, _080D72BC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D72D4
+ .align 2, 0
+_080D72BC: .4byte gUnknown_0202F7C8
+_080D72C0:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D72D4
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080D72D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D727C
+
+ thumb_func_start sub_80D72DC
+sub_80D72DC: @ 80D72DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D7300
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080D72F6
+ b _080D7468
+_080D72F6:
+ lsls r0, 2
+ ldr r1, _080D7304
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D7300: .4byte gTasks
+_080D7304: .4byte _080D7308
+ .align 2, 0
+_080D7308:
+ .4byte _080D731C
+ .4byte _080D73AC
+ .4byte _080D73E8
+ .4byte _080D7444
+ .4byte _080D7454
+_080D731C:
+ ldr r4, _080D73A0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080D73A4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D73A8
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _080D7466
+ .align 2, 0
+_080D73A0: .4byte gUnknown_0202F7C8
+_080D73A4: .4byte gUnknown_0202F7C9
+_080D73A8: .4byte 0x0000ffff
+_080D73AC:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D73DC
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7470
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D73DC
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080D73D6
+ movs r0, 0x3
+ b _080D73DA
+_080D73D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080D73DA:
+ strh r0, [r5, 0x8]
+_080D73DC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7468
+ b _080D745E
+_080D73E8:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D73F6
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080D73F6:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D7468
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7422
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080D7432
+_080D7422:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D7440
+ strh r0, [r5, 0x12]
+_080D7432:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D7464
+ movs r0, 0x4
+ b _080D7466
+ .align 2, 0
+_080D7440: .4byte 0x0000ffff
+_080D7444:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7468
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D7468
+_080D7454:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7464
+_080D745E:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080D7468
+_080D7464:
+ movs r0, 0x1
+_080D7466:
+ strh r0, [r5, 0x8]
+_080D7468:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D72DC
+
+ thumb_func_start sub_80D7470
+sub_80D7470: @ 80D7470
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7538
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D74DC
+ ldr r1, _080D753C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, _080D7540
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080D7544
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D74C4
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080D74C4:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080D74D0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080D74D0:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080D74DC:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D74FE
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080D74FE
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080D74FE:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080D7514
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080D7524
+_080D7514:
+ cmp r3, 0
+ ble _080D7548
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D7548
+_080D7524:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _080D7554
+ .align 2, 0
+_080D7538: .4byte gSpriteTemplate_83D9B40
+_080D753C: .4byte gSprites
+_080D7540: .4byte 0x000003ff
+_080D7544: .4byte 0xfffffc00
+_080D7548:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080D7554:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7470
+
+ thumb_func_start sub_80D755C
+sub_80D755C: @ 80D755C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7592
+ ldr r3, _080D7598
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7592:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7598: .4byte gTasks
+ thumb_func_end sub_80D755C
+
+ thumb_func_start sub_80D759C
+sub_80D759C: @ 80D759C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D75C0
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D7618
+ cmp r0, 0x1
+ bgt _080D75C4
+ cmp r0, 0
+ beq _080D75CA
+ b _080D764E
+ .align 2, 0
+_080D75C0: .4byte gTasks
+_080D75C4:
+ cmp r0, 0x2
+ beq _080D7640
+ b _080D764E
+_080D75CA:
+ ldr r0, _080D7614
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080D75F4
+ adds r2, r0, 0
+_080D75E4:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080D75E4
+ strh r1, [r5, 0x24]
+_080D75F4:
+ ldr r4, _080D7614
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080D7638
+ .align 2, 0
+_080D7614: .4byte gUnknown_0202F7C9
+_080D7618:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D764E
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7654
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D764E
+_080D7638:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D764E
+_080D7640:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D764E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D764E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D759C
+
+ thumb_func_start sub_80D7654
+sub_80D7654: @ 80D7654
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D76B0
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D7698
+ ldr r3, _080D76B4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D76B8
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_080D7698:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D76BC
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080D76BE
+ .align 2, 0
+_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
+_080D76B4: .4byte gSprites
+_080D76B8: .4byte sub_80D76C4
+_080D76BC:
+ movs r0, 0x1
+_080D76BE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7654
+
+ thumb_func_start sub_80D76C4
+sub_80D76C4: @ 80D76C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D76F8
+ ldr r3, _080D7700
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D76F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7700: .4byte gTasks
+ thumb_func_end sub_80D76C4
+
+ thumb_func_start sub_80D7704
+sub_80D7704: @ 80D7704
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, _080D780C
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D7810
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, _080D7814
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080D7818
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080D781C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _080D77DE
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _080D77DE
+ adds r4, r1, 0
+ mov r10, r12
+_080D77AA:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _080D77DE
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _080D77AA
+_080D77DE:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, _080D781C
+ mov r10, r1
+ cmp r0, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _080D7842
+ .align 2, 0
+_080D780C: .4byte 0x000003ff
+_080D7810: .4byte 0xfffffc00
+_080D7814: .4byte gUnknown_0202F7C9
+_080D7818: .4byte gUnknown_0202F7C8
+_080D781C: .4byte gUnknown_03004B00
+_080D7820:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_080D7842:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _080D7820
+_080D784A:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D7884
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7884: .4byte sub_80D7888
+ thumb_func_end sub_80D7704
+
+ thumb_func_start sub_80D7888
+sub_80D7888: @ 80D7888
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D78E0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D78E6
+_080D78E0:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D78E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7888
+
+ thumb_func_start sub_80D78EC
+sub_80D78EC: @ 80D78EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7920
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D7924
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D7928
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7920: .4byte gUnknown_03004B00
+_080D7924: .4byte move_anim_8072740
+_080D7928: .4byte sub_8078174
+ thumb_func_end sub_80D78EC
+
+ thumb_func_start sub_80D792C
+sub_80D792C: @ 80D792C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D7960
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, _080D7964
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D796C
+ ldr r0, _080D7968
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _080D7976
+ .align 2, 0
+_080D7960: .4byte gUnknown_0202F7C9
+_080D7964: .4byte gUnknown_0202F7C8
+_080D7968: .4byte gUnknown_03004B00
+_080D796C:
+ ldr r0, _080D79A4
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_080D7976:
+ ldr r0, _080D79A8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D79A4
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080D79AC
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D79B0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D79A4: .4byte gUnknown_03004B00
+_080D79A8: .4byte gUnknown_0202F7C9
+_080D79AC: .4byte move_anim_8072740
+_080D79B0: .4byte sub_8078B34
+ thumb_func_end sub_80D792C
+
+ thumb_func_start sub_80D79B4
+sub_80D79B4: @ 80D79B4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D79CC
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D79D0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D7A06
+ .align 2, 0
+_080D79CC: .4byte gUnknown_03004B00
+_080D79D0:
+ ldr r0, _080D7A18
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D7A1C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D79F6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D79F6:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7A06:
+ ldr r1, _080D7A20
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D7A24
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7A18: .4byte gUnknown_0202F7C9
+_080D7A1C: .4byte gUnknown_0202F7C8
+_080D7A20: .4byte sub_80D7A28
+_080D7A24: .4byte sub_80785E4
+ thumb_func_end sub_80D79B4
+
+ thumb_func_start sub_80D7A28
+sub_80D7A28: @ 80D7A28
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D7A5E
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080D7A5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7A28
+
+ thumb_func_start sub_80D7A64
+sub_80D7A64: @ 80D7A64
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D7AAC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7AB4
+ ldr r4, _080D7AB0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _080D7AC6
+ .align 2, 0
+_080D7AAC: .4byte gUnknown_03004B00
+_080D7AB0: .4byte gUnknown_0202F7C9
+_080D7AB4:
+ ldr r0, _080D7AE0
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7AC6:
+ ldr r0, _080D7AE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7AEC
+ ldr r0, _080D7AE8
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _080D7AF6
+ .align 2, 0
+_080D7AE0: .4byte gUnknown_0202F7C9
+_080D7AE4: .4byte gUnknown_0202F7C8
+_080D7AE8: .4byte gUnknown_03004B00
+_080D7AEC:
+ ldr r0, _080D7B94
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7AF6:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7B00:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B00
+ adds r0, r5, 0
+ bl sub_8078D60
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7B22:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7B56
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7B56
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7B22
+_080D7B56:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, _080D7B98
+ ldr r1, _080D7B9C
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7B76:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B76
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7B94: .4byte gUnknown_03004B00
+_080D7B98: .4byte sub_8078D8C
+_080D7B9C: .4byte sub_80D7BA0
+ thumb_func_end sub_80D7A64
+
+ thumb_func_start sub_80D7BA0
+sub_80D7BA0: @ 80D7BA0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D7BFC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C00
+ cmp r0, 0
+ beq _080D7BD0
+ movs r1, 0x14
+_080D7BD0:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, _080D7C04
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7BFC: .4byte gUnknown_0202F7C8
+_080D7C00: .4byte 0x0000ffec
+_080D7C04: .4byte sub_80D7C08
+ thumb_func_end sub_80D7BA0
+
+ thumb_func_start sub_80D7C08
+sub_80D7C08: @ 80D7C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7C5C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C60
+ cmp r0, 0
+ beq _080D7C1E
+ movs r1, 0x14
+_080D7C1E:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _080D7C64
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _080D7C82
+ .align 2, 0
+_080D7C5C: .4byte gUnknown_0202F7C8
+_080D7C60: .4byte 0x0000ffec
+_080D7C64:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, _080D7C88
+ str r0, [r4, 0x1C]
+_080D7C82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7C88: .4byte sub_80D7C8C
+ thumb_func_end sub_80D7C08
+
+ thumb_func_start sub_80D7C8C
+sub_80D7C8C: @ 80D7C8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078CE8
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7CC8
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _080D7CC8
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7CCE
+_080D7CC8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7CCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7C8C
+
+ thumb_func_start sub_80D7CD4
+sub_80D7CD4: @ 80D7CD4
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D7D18
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D7D20
+ ldr r4, _080D7D1C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080D7D32
+ .align 2, 0
+_080D7D18: .4byte gUnknown_03004B00
+_080D7D1C: .4byte gUnknown_0202F7C9
+_080D7D20:
+ ldr r0, _080D7D50
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7D32:
+ ldr r0, _080D7D54
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7D5C
+ ldr r0, _080D7D58
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _080D7D66
+ .align 2, 0
+_080D7D50: .4byte gUnknown_0202F7C9
+_080D7D54: .4byte gUnknown_0202F7C8
+_080D7D58: .4byte gUnknown_03004B00
+_080D7D5C:
+ ldr r1, _080D7E10
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7D66:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7D7E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7D7E
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7D9A:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7DCE
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7DCE
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7D9A
+_080D7DCE:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, _080D7E10
+ ldr r6, _080D7E14
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7DEE:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7DEE
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7E10: .4byte gUnknown_03004B00
+_080D7E14: .4byte sub_80D7E18
+ thumb_func_end sub_80D7CD4
+
+ thumb_func_start sub_80D7E18
+sub_80D7E18: @ 80D7E18
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7E2C
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D7E2C:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D7E82
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7E7C
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7E7C
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7E82
+_080D7E7C:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7E82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E18
+
+ thumb_func_start sub_80D7E88
+sub_80D7E88: @ 80D7E88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7EF4
+ ldr r5, _080D7EA8
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7EAC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7EE2
+ .align 2, 0
+_080D7EA8: .4byte gUnknown_03004B00
+_080D7EAC:
+ ldr r0, _080D7EEC
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080D7EF0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7ED2
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D7ED2:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7EE2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D7F08
+ .align 2, 0
+_080D7EEC: .4byte gUnknown_0202F7C9
+_080D7EF0: .4byte gUnknown_0202F7C8
+_080D7EF4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7F08
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7F08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E88
+
+ thumb_func_start sub_80D7F10
+sub_80D7F10: @ 80D7F10
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D7F30
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F80
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F34
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D7F72
+ .align 2, 0
+_080D7F30: .4byte gUnknown_03004B00
+_080D7F34:
+ ldr r4, _080D7F5C
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7F60
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7F66
+ .align 2, 0
+_080D7F5C: .4byte gUnknown_0202F7C8
+_080D7F60:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7F66:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7F78
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7F72:
+ ldr r0, _080D7F7C
+ b _080D7FD0
+ .align 2, 0
+_080D7F78: .4byte gUnknown_03004B00
+_080D7F7C: .4byte gUnknown_0202F7C8
+_080D7F80:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F92
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7FCE
+_080D7F92:
+ ldr r4, _080D7FB8
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7FBC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7FC2
+ .align 2, 0
+_080D7FB8: .4byte gUnknown_0202F7C9
+_080D7FBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7FC2:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7FEC
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7FCE:
+ ldr r0, _080D7FF0
+_080D7FD0:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D7FEC
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D7FE8
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7FF4
+_080D7FE8:
+ movs r0, 0x20
+ b _080D7FF6
+ .align 2, 0
+_080D7FEC: .4byte gUnknown_03004B00
+_080D7FF0: .4byte gUnknown_0202F7C9
+_080D7FF4:
+ movs r0, 0x40
+_080D7FF6:
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D803C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D800C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080D800C:
+ ldr r1, _080D8040
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, _080D8044
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D803C: .4byte gUnknown_0202F7C9
+_080D8040: .4byte gUnknown_03004B00
+_080D8044: .4byte sub_80D8048
+ thumb_func_end sub_80D7F10
+
+ thumb_func_start sub_80D8048
+sub_80D8048: @ 80D8048
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D80D2
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D80A4
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D80C6
+_080D80A4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080D80C6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D80D8
+_080D80D2:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D80D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8048
+
+ thumb_func_start sub_80D80E0
+sub_80D80E0: @ 80D80E0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D81A8
+ ldr r2, _080D81AC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D81B0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D812A
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D812A:
+ ldr r0, _080D81B4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D81B8
+ strh r1, [r0]
+ ldr r0, _080D81BC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D81C0
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D81C4
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D81C8
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D81CC
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D81D0
+ bl LZDecompressVram
+ ldr r0, _080D81D4
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8190
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D8190:
+ ldr r0, _080D81D8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D81DC
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D81A8: .4byte REG_BLDCNT
+_080D81AC: .4byte 0x00003f42
+_080D81B0: .4byte REG_BG1CNT
+_080D81B4: .4byte gUnknown_030042C0
+_080D81B8: .4byte gUnknown_030041B4
+_080D81BC: .4byte REG_BG1HOFS
+_080D81C0: .4byte 0x040000d4
+_080D81C4: .4byte 0x85000400
+_080D81C8: .4byte gWeatherFog1Tiles
+_080D81CC: .4byte 0x80000400
+_080D81D0: .4byte gWeatherFog1Tilemap
+_080D81D4: .4byte gUnknown_083970E8
+_080D81D8: .4byte gTasks
+_080D81DC: .4byte sub_80D81E0
+ thumb_func_end sub_80D80E0
+
+ thumb_func_start sub_80D81E0
+sub_80D81E0: @ 80D81E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080D8220
+ ldr r1, _080D8224
+ adds r0, r1, 0
+ ldrh r4, [r2]
+ adds r0, r4
+ strh r0, [r2]
+ ldr r1, _080D8228
+ ldr r3, _080D822C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080D8214
+ b _080D83B0
+_080D8214:
+ lsls r0, 2
+ ldr r1, _080D8230
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8220: .4byte gUnknown_030042C0
+_080D8224: .4byte 0x0000ffff
+_080D8228: .4byte gUnknown_030041B4
+_080D822C: .4byte gTasks
+_080D8230: .4byte _080D8234
+ .align 2, 0
+_080D8234:
+ .4byte _080D8248
+ .4byte _080D82A0
+ .4byte _080D82C2
+ .4byte _080D8304
+ .4byte _080D838C
+_080D8248:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D8262
+ b _080D83B0
+_080D8262:
+ strh r4, [r3, 0x1C]
+ ldrh r0, [r3, 0x1A]
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+ ldr r1, _080D8298
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D829C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ beq _080D828C
+ b _080D83B0
+_080D828C:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8298: .4byte gUnknown_083D9D6C
+_080D829C: .4byte REG_BLDALPHA
+_080D82A0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1E]
+ adds r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D83B0
+ movs r0, 0x9
+ strh r0, [r3, 0x1E]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ b _080D83B0
+_080D82C2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D83B0
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D8300
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D83B0
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8300: .4byte REG_BLDALPHA
+_080D8304:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r4, r6, 2
+ mov r10, r4
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D83C0
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D83C4
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D832A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D832A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D83C0
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D83C8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8378
+ ldr r2, _080D83CC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8378:
+ ldr r0, _080D83D0
+ mov r4, r10
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r2, _080D83D4
+ ldr r4, _080D83D8
+_080D838C:
+ movs r1, 0
+ strh r1, [r2]
+ strh r1, [r4]
+ ldr r0, _080D83DC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D83CC
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D83B0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D83C0: .4byte 0x040000d4
+_080D83C4: .4byte 0x85000400
+_080D83C8: .4byte 0x85000200
+_080D83CC: .4byte REG_BG1CNT
+_080D83D0: .4byte gTasks
+_080D83D4: .4byte gUnknown_030042C0
+_080D83D8: .4byte gUnknown_030041B4
+_080D83DC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D81E0
+
+ thumb_func_start sub_80D83E0
+sub_80D83E0: @ 80D83E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D840C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080D8410
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D840C: .4byte gUnknown_0202F7C8
+_080D8410: .4byte sub_807941C
+ thumb_func_end sub_80D83E0
+
+ thumb_func_start sub_80D8414
+sub_80D8414: @ 80D8414
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D84E0
+ ldr r2, _080D84E4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D84E8
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D845E
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D845E:
+ ldr r0, _080D84EC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D84F0
+ strh r1, [r0]
+ ldr r0, _080D84F4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D84F8
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D84FC
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D8500
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D8504
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D8508
+ bl LZDecompressVram
+ ldr r0, _080D850C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D84C4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D84C4:
+ ldr r1, _080D8510
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080D8514
+ strh r1, [r0, 0x26]
+ ldr r1, _080D8518
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D84E0: .4byte REG_BLDCNT
+_080D84E4: .4byte 0x00003f42
+_080D84E8: .4byte REG_BG1CNT
+_080D84EC: .4byte gUnknown_030042C0
+_080D84F0: .4byte gUnknown_030041B4
+_080D84F4: .4byte REG_BG1HOFS
+_080D84F8: .4byte 0x040000d4
+_080D84FC: .4byte 0x85000400
+_080D8500: .4byte gWeatherFog1Tiles
+_080D8504: .4byte 0x80000400
+_080D8508: .4byte gWeatherFog1Tilemap
+_080D850C: .4byte gUnknown_083970E8
+_080D8510: .4byte gTasks
+_080D8514: .4byte 0x0000ffff
+_080D8518: .4byte sub_80D851C
+ thumb_func_end sub_80D8414
+
+ thumb_func_start sub_80D851C
+sub_80D851C: @ 80D851C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _080D8558
+ ldr r4, _080D855C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x26]
+ ldrh r2, [r3]
+ adds r0, r2
+ strh r0, [r3]
+ ldr r2, _080D8560
+ movs r5, 0x20
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x4
+ bls _080D854C
+ b _080D86D0
+_080D854C:
+ lsls r0, 2
+ ldr r1, _080D8564
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8558: .4byte gUnknown_030042C0
+_080D855C: .4byte gTasks
+_080D8560: .4byte gUnknown_030041B4
+_080D8564: .4byte _080D8568
+ .align 2, 0
+_080D8568:
+ .4byte _080D857C
+ .4byte _080D85C0
+ .4byte _080D85E2
+ .4byte _080D8624
+ .4byte _080D86AC
+_080D857C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080D85B8
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D85BC
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x5
+ beq _080D85AC
+ b _080D86D0
+_080D85AC:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D85B8: .4byte gUnknown_083D9D98
+_080D85BC: .4byte REG_BLDALPHA
+_080D85C0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D86D0
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D86D0
+_080D85E2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D86D0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D8620
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080D86D0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D8620: .4byte REG_BLDALPHA
+_080D8624:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r1, r6, 2
+ mov r10, r1
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D86E0
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D86E4
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D864A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D864A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D86E0
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D86E8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8698
+ ldr r2, _080D86EC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8698:
+ ldr r0, _080D86F0
+ mov r5, r10
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r3, _080D86F4
+ ldr r2, _080D86F8
+_080D86AC:
+ movs r1, 0
+ strh r1, [r3]
+ strh r1, [r2]
+ ldr r0, _080D86FC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D86EC
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D86D0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D86E0: .4byte 0x040000d4
+_080D86E4: .4byte 0x85000400
+_080D86E8: .4byte 0x85000200
+_080D86EC: .4byte REG_BG1CNT
+_080D86F0: .4byte gTasks
+_080D86F4: .4byte gUnknown_030042C0
+_080D86F8: .4byte gUnknown_030041B4
+_080D86FC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D851C
+
+ thumb_func_start sub_80D8700
+sub_80D8700: @ 80D8700
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, _080D87E8
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D87EC
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldr r7, _080D87F0
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080D8734
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_080D8734:
+ ldr r3, _080D87F4
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8794
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8790
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8790
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080D87F8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080D8790:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_080D8794:
+ ldr r4, _080D87EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, _080D87E8
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080D87FC
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D87F0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _080D8824
+ .align 2, 0
+_080D87E8: .4byte gUnknown_03004B00
+_080D87EC: .4byte gUnknown_0202F7C8
+_080D87F0: .4byte gUnknown_0202F7C9
+_080D87F4: .4byte gUnknown_02024A72
+_080D87F8: .4byte gSprites
+_080D87FC:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D886C
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_080D8824:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8858
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_080D8858:
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D8870
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D886C: .4byte gUnknown_0202F7C9
+_080D8870: .4byte sub_80D8874
+ thumb_func_end sub_80D8700
+
+ thumb_func_start sub_80D8874
+sub_80D8874: @ 80D8874
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _080D8968
+ cmp r1, 0x1
+ bgt _080D888E
+ cmp r1, 0
+ beq _080D8896
+ b _080D8AD0
+_080D888E:
+ cmp r1, 0x2
+ bne _080D8894
+ b _080D8A94
+_080D8894:
+ b _080D8AD0
+_080D8896:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D88C0
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D88C4
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _080D88C8
+ .align 2, 0
+_080D88C0: .4byte gSineTable
+_080D88C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_080D88C8:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D88D6
+ b _080D8AD0
+_080D88D6:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, _080D8928
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D892C
+ ldr r2, _080D8930
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ ldr r1, _080D8934
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _080D893A
+ .align 2, 0
+_080D8928: .4byte gUnknown_0202F7C9
+_080D892C: .4byte gMain
+_080D8930: .4byte 0x0000043d
+_080D8934: .4byte gUnknown_02024A72
+_080D8938:
+ strh r5, [r4, 0x38]
+_080D893A:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080D8964
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _080D8AD0
+ .align 2, 0
+_080D8964: .4byte gSineTable
+_080D8968:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D89C8
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r0, _080D89CC
+ ldr r2, _080D89D0
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D89F2
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _080D89D4
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _080D89DC
+ .align 2, 0
+_080D89C8: .4byte gSineTable
+_080D89CC: .4byte gMain
+_080D89D0: .4byte 0x0000043d
+_080D89D4:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_080D89DC:
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r3, 0x4
+ b _080D8A12
+_080D89F2:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D8A06
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _080D8A0C
+_080D8A06:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_080D8A0C:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_080D8A12:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080D8AD0
+ movs r2, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ ldr r0, _080D8A68
+ ldr r1, _080D8A6C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ ldr r1, _080D8A70
+ ldr r0, _080D8A74
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ movs r0, 0x80
+ lsls r0, 1
+ b _080D8A7A
+ .align 2, 0
+_080D8A68: .4byte gMain
+_080D8A6C: .4byte 0x0000043d
+_080D8A70: .4byte gUnknown_02024A72
+_080D8A74: .4byte gUnknown_0202F7C9
+_080D8A78:
+ ldr r0, _080D8A90
+_080D8A7A:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ b _080D8AD0
+ .align 2, 0
+_080D8A90: .4byte 0x0000fff0
+_080D8A94:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8AD0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8AC2
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080D8AC2:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080D8AD8
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080D8AD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8AD8: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80D8874
+
+ thumb_func_start sub_80D8ADC
+sub_80D8ADC: @ 80D8ADC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D8AF0
+ adds r1, r0
+ ldr r0, _080D8AF4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D8AF0: .4byte gTasks
+_080D8AF4: .4byte sub_80D8AF8
+ thumb_func_end sub_80D8ADC
+
+ thumb_func_start sub_80D8AF8
+sub_80D8AF8: @ 80D8AF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D8B1C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D8B3C
+ cmp r5, 0x1
+ bgt _080D8B20
+ cmp r5, 0
+ beq _080D8B26
+ b _080D8BA0
+ .align 2, 0
+_080D8B1C: .4byte gTasks
+_080D8B20:
+ cmp r5, 0x2
+ beq _080D8B92
+ b _080D8BA0
+_080D8B26:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D8BA0
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _080D8B78
+_080D8B3C:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D8B8C
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_80D8BA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8B5C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_080D8B5C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D8B88
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080D8B80
+_080D8B78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B80:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B88:
+ strh r5, [r4, 0x12]
+ b _080D8BA0
+_080D8B8C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _080D8BA0
+_080D8B92:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8BA0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D8BA0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8AF8
+
+ thumb_func_start sub_80D8BA8
+sub_80D8BA8: @ 80D8BA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, _080D8C20
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _080D8C94
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8C94
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _080D8C24
+ cmp r1, 0x1
+ beq _080D8C5A
+ b _080D8CA6
+ .align 2, 0
+_080D8C20: .4byte gUnknown_083D9DC4
+_080D8C24:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _080D8C8E
+_080D8C5A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_080D8C8E:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _080D8CA6
+_080D8C94:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080D8CA6:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, _080D8D00
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080D8D08
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080D8D04
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _080D8D0A
+ .align 2, 0
+_080D8D00: .4byte gSpriteTemplate_83D9E3C
+_080D8D04: .4byte gSprites
+_080D8D08:
+ movs r0, 0
+_080D8D0A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D8BA8
+
+ thumb_func_start sub_80D8D1C
+sub_80D8D1C: @ 80D8D1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _080D8D46
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080D8DF6
+_080D8D46:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080D8DC8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8DC8
+ ldr r0, _080D8DBC
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _080D8DAA
+ ldr r2, _080D8DC0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080D8DC4
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_080D8DAA:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080D8DF6
+ .align 2, 0
+_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
+_080D8DC0: .4byte gSprites
+_080D8DC4: .4byte sub_80D8E00
+_080D8DC8:
+ ldr r3, _080D8DFC
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8DF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8DFC: .4byte gTasks
+ thumb_func_end sub_80D8D1C
+
+ thumb_func_start sub_80D8E00
+sub_80D8E00: @ 80D8E00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D8E40
+ ldr r3, _080D8E48
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8E40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8E48: .4byte gTasks
+ thumb_func_end sub_80D8E00
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 80D8E4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080D8ECC
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080D8E6A
+ movs r1, 0x4
+_080D8E6A:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D8ED0
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D8ED4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8E92
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_080D8E92:
+ ldr r4, _080D8ED8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D8EDC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8ECC: .4byte gUnknown_0202F7B4
+_080D8ED0: .4byte gUnknown_03004B00
+_080D8ED4: .4byte gUnknown_0202F7C8
+_080D8ED8: .4byte gUnknown_0202F7C9
+_080D8EDC: .4byte sub_80D8EE0
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_80D8EE0
+sub_80D8EE0: @ 80D8EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8F02
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D8F08
+ str r0, [r4, 0x1C]
+ ldr r1, _080D8F0C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080D8F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F08: .4byte sub_8078600
+_080D8F0C: .4byte move_anim_8072740
+ thumb_func_end sub_80D8EE0
+
+ thumb_func_start sub_80D8F10
+sub_80D8F10: @ 80D8F10
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D8F64
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D8F68
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D8F6C
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D8F56
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D8F56:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D8F70
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F64: .4byte 0x000003ff
+_080D8F68: .4byte 0xfffffc00
+_080D8F6C: .4byte 0x000001ff
+_080D8F70: .4byte sub_80D8F74
+ thumb_func_end sub_80D8F10
+
+ thumb_func_start sub_80D8F74
+sub_80D8F74: @ 80D8F74
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D8F98
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D8F9C
+_080D8F98:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D8F9C:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D8FBA
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D8FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8F74
+
+ thumb_func_start sub_80D8FC0
+sub_80D8FC0: @ 80D8FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D8FE8
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, _080D8FEC
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8FE8: .4byte gUnknown_03004B00
+_080D8FEC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D8FC0
+
+ thumb_func_start unc_080B08A0
+unc_080B08A0: @ 80D8FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9020
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0xF
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D9024
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9028
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9020: .4byte gUnknown_03004B00
+_080D9024: .4byte sub_80782D8
+_080D9028: .4byte move_anim_8072740
+ thumb_func_end unc_080B08A0
+
+ thumb_func_start sub_80D902C
+sub_80D902C: @ 80D902C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9070
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D9054
+ ldr r0, _080D9074
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9054
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x6]
+_080D9054:
+ ldr r4, _080D9070
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8079534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9070: .4byte gUnknown_03004B00
+_080D9074: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80D902C
+
+ thumb_func_start sub_80D9078
+sub_80D9078: @ 80D9078
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9094
+ ldr r0, _080D90A0
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080D9094:
+ adds r0, r4, 0
+ bl sub_80D902C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90A0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9078
+
+ thumb_func_start sub_80D90A4
+sub_80D90A4: @ 80D90A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D90C4
+ ldrb r1, [r4, 0x8]
+ bl StartSpriteAnim
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D90C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080D90D0
+ .align 2, 0
+_080D90C4: .4byte gUnknown_03004B00
+_080D90C8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080D90D0:
+ ldr r0, _080D90E8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D90EC
+ str r0, [r5, 0x1C]
+ ldr r1, _080D90F0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90E8: .4byte gUnknown_03004B00
+_080D90EC: .4byte sub_80782D8
+_080D90F0: .4byte move_anim_8072740
+ thumb_func_end sub_80D90A4
+
+ thumb_func_start sub_80D90F4
+sub_80D90F4: @ 80D90F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _080D9110
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r9, r0
+ cmp r1, 0
+ bne _080D9118
+ ldr r0, _080D9114
+ b _080D911A
+ .align 2, 0
+_080D9110: .4byte gUnknown_03004B00
+_080D9114: .4byte gUnknown_0202F7C8
+_080D9118:
+ ldr r0, _080D9260
+_080D911A:
+ ldrb r0, [r0]
+ mov r8, r0
+ mov r4, r9
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080D9138
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x4]
+_080D9138:
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r6, r1, 16
+ mov r0, r8
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080D9182
+ adds r0, 0x3
+_080D9182:
+ lsls r4, r0, 14
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91C4
+ lsls r0, r6, 16
+ negs r0, r0
+ lsrs r6, r0, 16
+_080D91C4:
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91D6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080D91D6:
+ ldr r0, _080D9264
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D91EC
+ lsls r0, r4, 16
+ ldr r1, _080D9268
+ adds r0, r1
+ lsrs r4, r0, 16
+_080D91EC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ mov r1, r9
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D926C
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ adds r3, r5, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3C]
+ cmp r0, 0x40
+ beq _080D9250
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D9270
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r2, 0x3C
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D9274
+ str r1, [r0]
+_080D9250:
+ ldr r0, _080D9278
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9260: .4byte gUnknown_0202F7C9
+_080D9264: .4byte gUnknown_02024A72
+_080D9268: .4byte 0xfff00000
+_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
+_080D9270: .4byte gSprites
+_080D9274: .4byte SpriteCallbackDummy
+_080D9278: .4byte sub_80D927C
+ thumb_func_end sub_80D90F4
+
+ thumb_func_start sub_80D927C
+sub_80D927C: @ 80D927C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080D92C4
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ beq _080D92B8
+ ldr r4, _080D92C0
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080D92B8:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D92C8
+ .align 2, 0
+_080D92C0: .4byte gSprites
+_080D92C4:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+_080D92C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D927C
+
+ thumb_func_start sub_80D92D0
+sub_80D92D0: @ 80D92D0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D92F0
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D92F4
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x14
+ strh r0, [r4, 0x32]
+ b _080D9306
+ .align 2, 0
+_080D92F0: .4byte gUnknown_03004B00
+_080D92F4:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x14
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080D9306:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x14
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9320
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9324
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9320: .4byte sub_8078B34
+_080D9324: .4byte sub_80D9328
+ thumb_func_end sub_80D92D0
+
+ thumb_func_start sub_80D9328
+sub_80D9328: @ 80D9328
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080D9368
+ ldrh r2, [r5, 0x20]
+ ldrh r4, [r5, 0x24]
+ subs r0, r2, r4
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x22]
+ ldrh r3, [r5, 0x26]
+ subs r0, r1, r3
+ strh r0, [r5, 0x36]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ adds r2, r4
+ strh r2, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x22]
+ strh r6, [r5, 0x26]
+ strh r6, [r5, 0x24]
+ ldr r0, _080D9370
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9374
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9368:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9370: .4byte sub_8078B34
+_080D9374: .4byte move_anim_8072740
+ thumb_func_end sub_80D9328
+
+ thumb_func_start sub_80D9378
+sub_80D9378: @ 80D9378
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D93F4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ldr r2, _080D93F8
+ eors r0, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _080D93A4
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080D93A4
+ ldr r1, _080D93FC
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080D93A4:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D93F4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D93C2
+ ldr r1, _080D93FC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D93C2:
+ ldr r4, _080D93FC
+ ldrh r0, [r4, 0x6]
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x3A]
+ strh r5, [r6, 0x3C]
+ ldr r0, _080D9400
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D93F4: .4byte gUnknown_0202F7C8
+_080D93F8: .4byte gUnknown_0202F7C9
+_080D93FC: .4byte gUnknown_03004B00
+_080D9400: .4byte sub_80D9404
+ thumb_func_end sub_80D9378
+
+ thumb_func_start sub_80D9404
+sub_80D9404: @ 80D9404
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9430
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ strh r0, [r4, 0x3C]
+ b _080D9436
+_080D9430:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9404
+
+ thumb_func_start sub_80D943C
+sub_80D943C: @ 80D943C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080D9468
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D946C
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9470
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9468: .4byte gUnknown_03004B00
+_080D946C: .4byte sub_80782D8
+_080D9470: .4byte sub_80D9474
+ thumb_func_end sub_80D943C
+
+ thumb_func_start sub_80D9474
+sub_80D9474: @ 80D9474
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94A0
+ str r0, [r4, 0x1C]
+ ldr r1, _080D94A4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94A0: .4byte sub_80782D8
+_080D94A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D9474
+
+ thumb_func_start sub_80D94A8
+sub_80D94A8: @ 80D94A8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D94C4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94C8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94C4: .4byte gUnknown_03004B00
+_080D94C8: .4byte sub_80D94CC
+ thumb_func_end sub_80D94A8
+
+ thumb_func_start sub_80D94CC
+sub_80D94CC: @ 80D94CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9510
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9518
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D951C
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9520
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9510:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9518: .4byte gUnknown_0202F7C9
+_080D951C: .4byte sub_8078B34
+_080D9520: .4byte sub_80D9524
+ thumb_func_end sub_80D94CC
+
+ thumb_func_start sub_80D9524
+sub_80D9524: @ 80D9524
+ push {lr}
+ movs r1, 0xF
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D9538
+ str r1, [r0, 0x1C]
+ ldr r1, _080D953C
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9538: .4byte sub_80782D8
+_080D953C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9524
+
+ thumb_func_start sub_80D9540
+sub_80D9540: @ 80D9540
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D956C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080D9568
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D95C8
+ .align 2, 0
+_080D9568: .4byte gUnknown_03004B00
+_080D956C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D95BA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D95BA:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D95C8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D95C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9540
+
+ thumb_func_start sub_80D95D0
+sub_80D95D0: @ 80D95D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D95E4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D95EC
+ ldr r4, _080D95E8
+ b _080D95EE
+ .align 2, 0
+_080D95E4: .4byte gUnknown_03004B00
+_080D95E8: .4byte gUnknown_0202F7C8
+_080D95EC:
+ ldr r4, _080D9634
+_080D95EE:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9638
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ strh r2, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldr r0, _080D963C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9634: .4byte gUnknown_0202F7C9
+_080D9638: .4byte gUnknown_03004B00
+_080D963C: .4byte sub_80D9640
+ thumb_func_end sub_80D95D0
+
+ thumb_func_start sub_80D9640
+sub_80D9640: @ 80D9640
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080D9652
+ cmp r2, 0x1
+ beq _080D9676
+ b _080D96B0
+_080D9652:
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ movs r2, 0x32
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D966E
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080D96B0
+_080D966E:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080D96B0
+_080D9676:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D969E
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x34]
+ adds r0, 0x1
+ strh r0, [r1, 0x34]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D969A
+ movs r0, 0x2
+ b _080D969C
+_080D969A:
+ ldr r0, _080D96B4
+_080D969C:
+ strh r0, [r1, 0x24]
+_080D969E:
+ ldrh r0, [r1, 0x32]
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D96B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D96B4: .4byte 0x0000fffe
+ thumb_func_end sub_80D9640
+
+ thumb_func_start sub_80D96B8
+sub_80D96B8: @ 80D96B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D96DC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D96E4
+ ldr r4, _080D96E0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x4]
+ adds r0, r2
+ b _080D96F6
+ .align 2, 0
+_080D96DC: .4byte gUnknown_03004B00
+_080D96E0: .4byte gUnknown_0202F7C8
+_080D96E4:
+ ldr r4, _080D9740
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+_080D96F6:
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D9744
+ movs r4, 0x2
+ ldrsh r0, [r3, r4]
+ lsls r0, 4
+ adds r1, r0
+ ldr r4, _080D9748
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080D974C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _080D9764
+ cmp r0, 0x1
+ bgt _080D9750
+ cmp r0, 0
+ beq _080D975A
+ b _080D978A
+ .align 2, 0
+_080D9740: .4byte gUnknown_0202F7C9
+_080D9744: .4byte gUnknown_03004B00
+_080D9748: .4byte 0x000003ff
+_080D974C: .4byte 0xfffffc00
+_080D9750:
+ cmp r0, 0x2
+ beq _080D9774
+ cmp r0, 0x3
+ beq _080D9784
+ b _080D978A
+_080D975A:
+ ldr r0, _080D9760
+ b _080D9784
+ .align 2, 0
+_080D9760: .4byte 0x0000fffd
+_080D9764:
+ movs r0, 0x3
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D9770
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9770: .4byte 0x0000fffd
+_080D9774:
+ ldr r0, _080D9780
+ strh r0, [r5, 0x3A]
+ movs r0, 0x3
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9780: .4byte 0x0000fffd
+_080D9784:
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ b _080D9792
+_080D978A:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D9796
+_080D9792:
+ ldr r0, _080D979C
+ str r0, [r5, 0x1C]
+_080D9796:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D979C: .4byte sub_80D97A0
+ thumb_func_end sub_80D96B8
+
+ thumb_func_start sub_80D97A0
+sub_80D97A0: @ 80D97A0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x3A]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x3C]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D97C8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D97C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D97A0
+
+ thumb_func_start sub_80D97CC
+sub_80D97CC: @ 80D97CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9818
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9828
+ ldr r4, _080D981C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9820
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9824
+ b _080D9844
+ .align 2, 0
+_080D9818: .4byte gUnknown_03004B00
+_080D981C: .4byte gUnknown_02024C07
+_080D9820: .4byte gUnknown_0202F7C8
+_080D9824: .4byte gUnknown_0202F7C9
+_080D9828:
+ ldr r0, _080D9860
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9864
+_080D9844:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r0, 0xC
+ strh r0, [r5, 0x30]
+ movs r0, 0x8
+ strh r0, [r5, 0x32]
+ ldr r0, _080D9868
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9860: .4byte gUnknown_0202F7C9
+_080D9864: .4byte gUnknown_0202F7C8
+_080D9868: .4byte sub_80D986C
+ thumb_func_end sub_80D97CC
+
+ thumb_func_start sub_80D986C
+sub_80D986C: @ 80D986C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB4
+ bne _080D98C6
+ ldr r1, _080D98CC
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D98D0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D98D4
+ str r0, [r4, 0x1C]
+_080D98C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D98CC: .4byte REG_BLDCNT
+_080D98D0: .4byte move_anim_8074EE0
+_080D98D4: .4byte sub_8078BB8
+ thumb_func_end sub_80D986C
+
+ thumb_func_start sub_80D98D8
+sub_80D98D8: @ 80D98D8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9924
+ ldrh r0, [r4]
+ strh r0, [r5, 0x20]
+ movs r2, 0x78
+ strh r2, [r5, 0x22]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ adds r0, 0x36
+ adds r1, r5, 0
+ adds r1, 0x38
+ lsls r2, 8
+ bl sub_8079BF4
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D9928
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D992C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D9930
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9924: .4byte gUnknown_03004B00
+_080D9928: .4byte 0x000003ff
+_080D992C: .4byte 0xfffffc00
+_080D9930: .4byte sub_80D9934
+ thumb_func_end sub_80D98D8
+
+ thumb_func_start sub_80D9934
+sub_80D9934: @ 80D9934
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080D9986
+ movs r2, 0x36
+ ldrsh r0, [r7, r2]
+ movs r2, 0x38
+ ldrsh r1, [r7, r2]
+ bl sub_8079BFC
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ subs r4, r0
+ adds r0, r7, 0
+ adds r0, 0x36
+ adds r1, r7, 0
+ adds r1, 0x38
+ adds r2, r4, 0
+ bl sub_8079BF4
+ asrs r4, 8
+ strh r4, [r7, 0x22]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r4, r0
+ bge _080D997E
+ adds r0, r7, 0
+ bl move_anim_8072740
+ b _080D99DC
+_080D997E:
+ ldrh r0, [r7, 0x2E]
+ subs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _080D99DC
+_080D9986:
+ ldr r4, _080D99E8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _080D99EC
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ subs r4, r6
+ strh r4, [r7, 0x2E]
+ lsrs r0, 24
+ subs r0, r5
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x20]
+ lsls r0, 4
+ strh r0, [r7, 0x32]
+ ldrh r0, [r7, 0x22]
+ lsls r0, 4
+ strh r0, [r7, 0x34]
+ ldr r0, _080D99F0
+ str r0, [r7, 0x1C]
+_080D99DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D99E8: .4byte gUnknown_0202F7C8
+_080D99EC: .4byte gUnknown_0202F7C9
+_080D99F0: .4byte sub_80D99F4
+ thumb_func_end sub_80D9934
+
+ thumb_func_start sub_80D99F4
+sub_80D99F4: @ 80D99F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D9A2E
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D9A2E
+ cmp r1, 0x78
+ ble _080D9A34
+_080D9A2E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D9A34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D99F4
+
+ thumb_func_start sub_80D9A38
+sub_80D9A38: @ 80D9A38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9A6C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9A7C
+ ldr r4, _080D9A70
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9A74
+ ldrb r4, [r0]
+ ldr r0, _080D9A78
+ b _080D9A82
+ .align 2, 0
+_080D9A6C: .4byte gUnknown_03004B00
+_080D9A70: .4byte gUnknown_02024C07
+_080D9A74: .4byte gUnknown_0202F7C9
+_080D9A78: .4byte gUnknown_0202F7C8
+_080D9A7C:
+ ldr r0, _080D9AB4
+ ldrb r4, [r0]
+ ldr r0, _080D9AB8
+_080D9A82:
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9ABC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ b _080D9AD6
+ .align 2, 0
+_080D9AB4: .4byte gUnknown_0202F7C8
+_080D9AB8: .4byte gUnknown_0202F7C9
+_080D9ABC:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9ADC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+_080D9AD6:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080D9ADC:
+ movs r0, 0x10
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D9B1C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D9B20
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9B1C: .4byte move_anim_8072740
+_080D9B20: .4byte sub_8078BB8
+ thumb_func_end sub_80D9A38
+
+ thumb_func_start sub_80D9B24
+sub_80D9B24: @ 80D9B24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D9B3A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9B3A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9B24
+
+ thumb_func_start sub_80D9B48
+sub_80D9B48: @ 80D9B48
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9BC4
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9BC8
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9BCC
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9B92
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080D9B92:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _080D9BA6
+ ldrh r0, [r5, 0x32]
+ negs r0, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+_080D9BA6:
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x32]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x26]
+ ldr r0, _080D9BD0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9BC4: .4byte gUnknown_0202F7C9
+_080D9BC8: .4byte gUnknown_03004B00
+_080D9BCC: .4byte gUnknown_0202F7C4
+_080D9BD0: .4byte sub_80D9B24
+ thumb_func_end sub_80D9B48
+
+ thumb_func_start sub_80D9BD4
+sub_80D9BD4: @ 80D9BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9BEC
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9BF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D9BF8
+ .align 2, 0
+_080D9BEC: .4byte gUnknown_03004B00
+_080D9BF0:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080D9BF8:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C0C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080D9C22
+_080D9C0C:
+ ldr r0, _080D9C34
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C22
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D9C22:
+ ldr r0, _080D9C38
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9C3C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9C34: .4byte gUnknown_0202F7C8
+_080D9C38: .4byte sub_8078600
+_080D9C3C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9BD4
+
+ thumb_func_start sub_80D9C40
+sub_80D9C40: @ 80D9C40
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D9C7A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x28
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D9C7A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9C40
+
+ thumb_func_start sub_80D9C80
+sub_80D9C80: @ 80D9C80
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D9CB0
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080D9CB8
+ cmp r0, 0x1
+ bgt _080D9CD2
+ cmp r0, 0
+ bne _080D9CD2
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080D9CB4
+ ldrh r0, [r0]
+ strh r0, [r4, 0x18]
+ b _080D9CCA
+ .align 2, 0
+_080D9CB0: .4byte gTasks
+_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB8:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9CDE
+_080D9CCA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D9CDE
+_080D9CD2:
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+_080D9CDE:
+ movs r2, 0xB0
+ lsls r2, 4
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D0C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9D14
+ ldr r1, _080D9D10
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r7, r1, 0
+ b _080D9D24
+ .align 2, 0
+_080D9D0C: .4byte gUnknown_0202F7C9
+_080D9D10: .4byte gUnknown_030041B0
+_080D9D14:
+ ldr r2, _080D9D64
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r7, r2, 0
+_080D9D24:
+ ldr r3, _080D9D68
+ ldrh r2, [r4, 0x1C]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ movs r0, 0xFF
+ ldrb r1, [r4, 0x1A]
+ movs r5, 0
+ strh r1, [r4, 0x1A]
+ ands r0, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D6C
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D9D5C
+ strh r5, [r7]
+ strh r5, [r3]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D9D5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9D64: .4byte gUnknown_030041B0
+_080D9D68: .4byte gUnknown_030041B8
+_080D9D6C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9C80
+
+ thumb_func_start sub_80D9D70
+sub_80D9D70: @ 80D9D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9DC4
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9D86
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9D86:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9DC8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9DCC
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D9DD0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9DC4: .4byte gUnknown_03004B00
+_080D9DC8: .4byte gUnknown_0202F7C9
+_080D9DCC: .4byte 0x0000ffe2
+_080D9DD0: .4byte sub_80D9DD4
+ thumb_func_end sub_80D9D70
+
+ thumb_func_start sub_80D9DD4
+sub_80D9DD4: @ 80D9DD4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9DE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9DE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9DD4
+
+ thumb_func_start sub_80D9DF0
+sub_80D9DF0: @ 80D9DF0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r5, _080D9E64
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9E08
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9E08:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D9E68
+ ldrb r0, [r0]
+ mov r6, sp
+ adds r6, 0x2
+ movs r1, 0x1
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_807A3FC
+ ldr r0, _080D9E6C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E36
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ strh r0, [r5, 0x8]
+_080D9E36:
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ ldrh r6, [r6]
+ adds r0, r6
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9E70
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080D9E74
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9E64: .4byte gUnknown_03004B00
+_080D9E68: .4byte gUnknown_0202F7C9
+_080D9E6C: .4byte gUnknown_0202F7C8
+_080D9E70: .4byte 0x0000ffe2
+_080D9E74: .4byte sub_80D9E78
+ thumb_func_end sub_80D9DF0
+
+ thumb_func_start sub_80D9E78
+sub_80D9E78: @ 80D9E78
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9E8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9E78
+
+ thumb_func_start sub_80D9E94
+sub_80D9E94: @ 80D9E94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9EE0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x38]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D9EE4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE4: .4byte sub_80D9EE8
+ thumb_func_end sub_80D9E94
+
+ thumb_func_start sub_80D9EE8
+sub_80D9EE8: @ 80D9EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078394
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9F0E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9F0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9EE8
+
+ thumb_func_start sub_80D9F14
+sub_80D9F14: @ 80D9F14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9F74
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9F78
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9F40
+ ldr r1, _080D9F7C
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D9F40:
+ ldr r0, _080D9F7C
+ ldrh r2, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r2, r1
+ strh r2, [r4, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ ldrh r3, [r0, 0x8]
+ strh r3, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ adds r2, r0
+ strh r2, [r4, 0x32]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ ldr r0, _080D9F80
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9F84
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9F74: .4byte gUnknown_0202F7C9
+_080D9F78: .4byte gUnknown_0202F7C8
+_080D9F7C: .4byte gUnknown_03004B00
+_080D9F80: .4byte sub_8078B34
+_080D9F84: .4byte move_anim_8072740
+ thumb_func_end sub_80D9F14
+
+ thumb_func_start sub_80D9F88
+sub_80D9F88: @ 80D9F88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9FA0
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9FA4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D9FDA
+ .align 2, 0
+_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA4:
+ ldr r0, _080D9FE4
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9FE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9FCA
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D9FCA:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D9FDA:
+ ldr r0, _080D9FEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9FE4: .4byte gUnknown_0202F7C9
+_080D9FE8: .4byte gUnknown_0202F7C8
+_080D9FEC: .4byte sub_80D9FF0
+ thumb_func_end sub_80D9F88
+
+ thumb_func_start sub_80D9FF0
+sub_80D9FF0: @ 80D9FF0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA02C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA02C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9FF0
+
+ thumb_func_start sub_80DA034
+sub_80DA034: @ 80DA034
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, _080DA058
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA058: .4byte sub_80DA05C
+ thumb_func_end sub_80DA034
+
+ thumb_func_start sub_80DA05C
+sub_80DA05C: @ 80DA05C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _080DA096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA05C
+
+ thumb_func_start sub_80DA09C
+sub_80DA09C: @ 80DA09C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080DA0CC
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, _080DA0D0
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, _080DA0D4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, _080DA0D8
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA0CC: .4byte gTasks
+_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D4: .4byte 0x00002719
+_080DA0D8: .4byte sub_80DA0DC
+ thumb_func_end sub_80DA09C
+
+ thumb_func_start sub_80DA0DC
+sub_80DA0DC: @ 80DA0DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080DA15C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _080DA13A
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, _080DA160
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, _080DA164
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_080DA122:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080DA122
+ ldr r0, _080DA168
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_080DA13A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080DA154
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DA154:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA15C: .4byte gTasks
+_080DA160: .4byte gPlttBufferFaded
+_080DA164: .4byte 0x00000107
+_080DA168: .4byte 0x00000101
+ thumb_func_end sub_80DA0DC
+
+ thumb_func_start sub_80DA16C
+sub_80DA16C: @ 80DA16C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DA1D8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA18C
+ ldr r1, _080DA1DC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DA18C:
+ ldr r4, _080DA1DC
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, _080DA1E0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA1E4
+ str r0, [r6, 0x1C]
+ ldr r1, _080DA1E8
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA1D8: .4byte gUnknown_0202F7C8
+_080DA1DC: .4byte gUnknown_03004B00
+_080DA1E0: .4byte gUnknown_0202F7C9
+_080DA1E4: .4byte sub_80785E4
+_080DA1E8: .4byte sub_80DA1EC
+ thumb_func_end sub_80DA16C
+
+ thumb_func_start sub_80DA1EC
+sub_80DA1EC: @ 80DA1EC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA200
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA200:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA1EC
+
+ thumb_func_start sub_80DA208
+sub_80DA208: @ 80DA208
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DA2A4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA234
+ ldr r1, _080DA2A8
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DA234:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA24C
+ ldr r0, _080DA2A8
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080DA24C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080DA2A8
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080DA2B0
+ ldr r4, _080DA2AC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DA2C2
+ .align 2, 0
+_080DA2A4: .4byte gUnknown_0202F7C8
+_080DA2A8: .4byte gUnknown_03004B00
+_080DA2AC: .4byte gUnknown_0202F7C9
+_080DA2B0:
+ ldr r0, _080DA2F0
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DA2C2:
+ ldr r4, _080DA2F4
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, _080DA2F8
+ str r0, [r5, 0x1C]
+ ldr r1, _080DA2FC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA2F0: .4byte gUnknown_0202F7C9
+_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F8: .4byte sub_8078B34
+_080DA2FC: .4byte move_anim_8072740
+ thumb_func_end sub_80DA208
+
+ thumb_func_start sub_80DA300
+sub_80DA300: @ 80DA300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DA33C
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DA340
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA344
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA33C: .4byte gUnknown_03004B00
+_080DA340: .4byte sub_80DA348
+_080DA344: .4byte gSprites
+ thumb_func_end sub_80DA300
+
+ thumb_func_start sub_80DA348
+sub_80DA348: @ 80DA348
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DA35C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DA36E
+_080DA35C:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_080DA36E:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DA386
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DA386:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA348
+
+ thumb_func_start sub_80DA38C
+sub_80DA38C: @ 80DA38C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DA3B4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA3BC
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, _080DA3B8
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080DA3C2
+ .align 2, 0
+_080DA3B4: .4byte gUnknown_0202F7C8
+_080DA3B8: .4byte 0x0000ffe0
+_080DA3BC:
+ ldr r0, _080DA400
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_080DA3C2:
+ ldr r0, _080DA404
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080DA408
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA40C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA400: .4byte 0x0000ffe0
+_080DA404: .4byte gUnknown_03004B00
+_080DA408: .4byte gUnknown_0202F7C9
+_080DA40C: .4byte sub_80DA410
+ thumb_func_end sub_80DA38C
+
+ thumb_func_start sub_80DA410
+sub_80DA410: @ 80DA410
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _080DA438
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_080DA438:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080DA45A
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _080DA480
+_080DA45A:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA488
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA488: .4byte gSprites
+ thumb_func_end sub_80DA410
+
+ thumb_func_start sub_80DA48C
+sub_80DA48C: @ 80DA48C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DA4CC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA4BE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080DA4BE:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080DA4D4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080DA4CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA4D4: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80DA48C
+
+ thumb_func_start sub_80DA4D8
+sub_80DA4D8: @ 80DA4D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, _080DA4F8
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA500
+ ldr r0, _080DA4FC
+ b _080DA502
+ .align 2, 0
+_080DA4F8: .4byte gUnknown_03004B00
+_080DA4FC: .4byte gUnknown_0202F7C8
+_080DA500:
+ ldr r0, _080DA5B0
+_080DA502:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DA518
+ ldr r1, _080DA5B4
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DA518:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DA5B4
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _080DA618
+ ldr r0, _080DA5B8
+ ldr r2, _080DA5BC
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA5C0
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _080DA5D8
+ .align 2, 0
+_080DA5B0: .4byte gUnknown_0202F7C9
+_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B8: .4byte gMain
+_080DA5BC: .4byte 0x0000043d
+_080DA5C0:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_080DA5D8:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ b _080DA66E
+_080DA618:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r1, r8
+_080DA66E:
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_080DA678:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, _080DA6E4
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, _080DA6E8
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, _080DA6EC
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA6E4: .4byte gSineTable
+_080DA6E8: .4byte gOamMatrices
+_080DA6EC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DA4D8
+
+ thumb_func_start sub_80DA6F0
+sub_80DA6F0: @ 80DA6F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ movs r0, 0x2E
+ adds r0, r5
+ mov r12, r0
+ ldrb r2, [r0]
+ movs r7, 0x1
+ movs r1, 0x1
+ mov r9, r1
+ mov r0, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA730
+ mov r3, r12
+ ldrb r0, [r3, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r3, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA724
+ b _080DAD1A
+_080DA724:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAD1A
+_080DA730:
+ mov r4, r12
+ ldrh r0, [r4, 0x2]
+ lsrs r4, r0, 6
+ mov r8, r0
+ cmp r4, 0x1
+ bne _080DA73E
+ b _080DA896
+_080DA73E:
+ cmp r4, 0x1
+ bgt _080DA748
+ cmp r4, 0
+ beq _080DA756
+ b _080DAC52
+_080DA748:
+ cmp r4, 0x2
+ bne _080DA74E
+ b _080DA9C8
+_080DA74E:
+ cmp r4, 0x3
+ bne _080DA754
+ b _080DAB0E
+_080DA754:
+ b _080DAC52
+_080DA756:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA76C
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r1, r12
+ strb r0, [r1]
+ strb r6, [r1, 0x1]
+ b _080DA88A
+_080DA76C:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA790
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r2, r12
+ strb r1, [r2]
+ strb r6, [r2, 0x1]
+ b _080DA88A
+_080DA790:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA88A
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA87A
+ ldr r0, _080DA80C
+ ldr r1, _080DA810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA82E
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA814
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA868
+ .align 2, 0
+_080DA80C: .4byte gMain
+_080DA810: .4byte 0x0000043d
+_080DA814:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA866
+_080DA82E:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA85C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DA87A
+_080DA85C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA866:
+ mov r3, r12
+_080DA868:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DA87A:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DA88A:
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r2]
+ b _080DAC52
+_080DA896:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DA8AC
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DA9BC
+_080DA8AC:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DA8BE
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DA9BC
+_080DA8BE:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA9BC
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA9AC
+ ldr r0, _080DA940
+ ldr r1, _080DA944
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA962
+ mov r2, r12
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA948
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r3, r12
+ b _080DA978
+ .align 2, 0
+_080DA940: .4byte gMain
+_080DA944: .4byte 0x0000043d
+_080DA948:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA996
+_080DA962:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA98C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+_080DA978:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DA9AC
+_080DA98C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA996:
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+_080DA9AC:
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r4, [r3, 0x2]
+ mov r8, r4
+_080DA9BC:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080DAC4C
+_080DA9C8:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA9DE
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAAFE
+_080DA9DE:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA9F0
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DAAFE
+_080DA9F0:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080DA9FA
+ b _080DAAFE
+_080DA9FA:
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAAEC
+ ldr r0, _080DAA6C
+ ldr r3, _080DAA70
+ adds r0, r3
+ ldrb r0, [r0]
+ ands r4, r0
+ cmp r4, 0
+ beq _080DAAA4
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAA74
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAAD8
+ .align 2, 0
+_080DAA6C: .4byte gMain
+_080DAA70: .4byte 0x0000043d
+_080DAA74:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAAEC
+_080DAAA4:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAACE
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DAAEC
+_080DAACE:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAAD8:
+ mov r4, r12
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080DAAEC:
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r8, r2
+_080DAAFE:
+ mov r3, r12
+ ldrb r0, [r3]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r3]
+ b _080DAC52
+_080DAB0E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DAB20
+ movs r0, 0x8
+ orrs r0, r2
+ mov r4, r12
+ strb r0, [r4]
+ b _080DAC42
+_080DAB20:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DAB44
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r0, r12
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ b _080DAC42
+_080DAB44:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DAC42
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAC32
+ ldr r0, _080DABC4
+ ldr r3, _080DABC8
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DABE6
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DABCC
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ b _080DAC00
+ .align 2, 0
+_080DABC4: .4byte gMain
+_080DABC8: .4byte 0x0000043d
+_080DABCC:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAC1E
+_080DABE6:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAC14
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+_080DAC00:
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAC32
+_080DAC14:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAC1E:
+ mov r3, r12
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DAC32:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DAC42:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_080DAC4C:
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2]
+_080DAC52:
+ mov r3, r12
+ ldrb r1, [r3]
+ lsls r1, 30
+ lsrs r1, 31
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, _080DACE0
+ mov r4, r8
+ lsls r0, r4, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r4, 0x24
+ ldrsh r0, [r5, r4]
+ negs r0, r0
+ asrs r0, 1
+ mov r1, r12
+ ldrb r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, _080DACE4
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ mov r2, r12
+ ldrh r0, [r2, 0x6]
+ ldrh r3, [r2, 0x8]
+ adds r0, r3
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r4, 0x4
+ ldrsh r0, [r2, r4]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DACE8
+ ldrh r0, [r2, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x2]
+ b _080DACFE
+ .align 2, 0
+_080DACE0: .4byte gSineTable
+_080DACE4: .4byte gOamMatrices
+_080DACE8:
+ mov r1, r12
+ ldrh r0, [r1, 0x4]
+ ldr r1, _080DAD28
+ ands r1, r0
+ mov r2, r12
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ mov r3, r12
+ strh r1, [r3, 0x2]
+_080DACFE:
+ movs r4, 0x22
+ ldrsh r1, [r5, r4]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ mov r3, r12
+ ldrh r0, [r3, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _080DAD1A
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DAD2C
+ str r0, [r5, 0x1C]
+_080DAD1A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD28: .4byte 0x00007fff
+_080DAD2C: .4byte sub_80DA48C
+ thumb_func_end sub_80DA6F0
+
+ thumb_func_start sub_80DAD30
+sub_80DAD30: @ 80DAD30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _080DAD78
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r5, _080DAD7C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080DAD80
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD78: .4byte gUnknown_0202F7C9
+_080DAD7C: .4byte gUnknown_0202F7C8
+_080DAD80: .4byte sub_807941C
+ thumb_func_end sub_80DAD30
+
+ thumb_func_start sub_80DAD84
+sub_80DAD84: @ 80DAD84
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080DADCC
+ ldrh r0, [r5]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DADD0
+ ldr r1, _080DADD4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAE44
+ ldr r0, _080DADD8
+ ldr r1, _080DADDC
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DADE0
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ b _080DADEE
+ .align 2, 0
+_080DADCC: .4byte gUnknown_03004B00
+_080DADD0: .4byte gMain
+_080DADD4: .4byte 0x0000043d
+_080DADD8: .4byte gUnknown_02024A72
+_080DADDC: .4byte gUnknown_0202F7C9
+_080DADE0:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+_080DADEE:
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DAE1C
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DAE24
+ ldr r0, _080DAE20
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE1C: .4byte gUnknown_03004B00
+_080DAE20: .4byte gUnknown_0202F7C9
+_080DAE24:
+ ldr r0, _080DAE40
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE40: .4byte gUnknown_0202F7C9
+_080DAE44:
+ ldr r0, _080DAEFC
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x3C]
+_080DAE58:
+ ldr r5, _080DAF00
+ ldrh r3, [r4, 0x30]
+ movs r1, 0xFF
+ ands r1, r3
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r4, 0x36]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ strh r2, [r4, 0x26]
+ strh r2, [r4, 0x24]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r6, r0, 27
+ lsls r3, 16
+ lsrs r3, 24
+ strh r3, [r4, 0x30]
+ bl Random
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEA2
+ ldrh r1, [r4, 0x30]
+ movs r0, 0xFF
+ subs r0, r1
+ strh r0, [r4, 0x30]
+_080DAEA2:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, _080DAF04
+ lsls r2, r6, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEF2
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r1, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+_080DAEF2:
+ ldr r0, _080DAF08
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAEFC: .4byte gUnknown_0202F7C9
+_080DAF00: .4byte gSineTable
+_080DAF04: .4byte gOamMatrices
+_080DAF08: .4byte sub_80DAF0C
+ thumb_func_end sub_80DAD84
+
+ thumb_func_start sub_80DAF0C
+sub_80DAF0C: @ 80DAF0C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x2E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ mov r8, r1
+ movs r7, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080DAFF0
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r6, r0, 8
+ strh r6, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r3, r0, 8
+ strh r3, [r4, 0x26]
+ ldrh r2, [r4, 0x34]
+ movs r1, 0xFF
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ ands r1, r2
+ cmp r0, r1
+ blt _080DAFF0
+ ldrh r0, [r4, 0x20]
+ adds r0, r6
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ strh r7, [r4, 0x24]
+ strh r7, [r4, 0x26]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldrh r0, [r4, 0x22]
+ lsls r0, 8
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ lsrs r1, r0, 8
+ strh r1, [r5, 0x6]
+ strh r7, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080DAFC0
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFB8
+ ldr r0, _080DAFB4
+ b _080DAFCE
+ .align 2, 0
+_080DAFB4: .4byte 0x00008001
+_080DAFB8:
+ ldr r0, _080DAFBC
+ b _080DAFCE
+ .align 2, 0
+_080DAFBC: .4byte 0x00008002
+_080DAFC0:
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFCC
+ movs r0, 0x1
+ b _080DAFCE
+_080DAFCC:
+ movs r0, 0x2
+_080DAFCE:
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ lsrs r0, 8
+ strb r0, [r5, 0xC]
+ subs r0, 0x2
+ strb r0, [r5, 0xD]
+ mov r0, sp
+ ldrh r1, [r0, 0xE]
+ lsls r1, 1
+ ldrh r2, [r5, 0xE]
+ movs r0, 0x1
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _080DAFFC
+ str r0, [r4, 0x1C]
+_080DAFF0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAFFC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DAF0C
+
+ thumb_func_start sub_80DB000
+sub_80DB000: @ 80DB000
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DB018
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB01C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DB024
+ .align 2, 0
+_080DB018: .4byte gUnknown_03004B00
+_080DB01C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+_080DB024:
+ ldr r4, _080DB08C
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DB03C
+ ldr r0, _080DB090
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB052
+_080DB03C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080DB058
+ ldr r0, _080DB094
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB058
+_080DB052:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_080DB058:
+ ldr r4, _080DB08C
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, _080DB098
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080DB09C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB08C: .4byte gUnknown_03004B00
+_080DB090: .4byte gUnknown_0202F7C8
+_080DB094: .4byte gUnknown_0202F7C9
+_080DB098: .4byte 0x00000ccc
+_080DB09C: .4byte sub_80DB0A0
+ thumb_func_end sub_80DB000
+
+ thumb_func_start sub_80DB0A0
+sub_80DB0A0: @ 80DB0A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080DB0CA
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080DB0CA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB0E2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB0E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB0A0
+
+ thumb_func_start sub_80DB0E8
+sub_80DB0E8: @ 80DB0E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080DB180
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080DB162
+ ldr r1, _080DB184
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, _080DB188
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, _080DB18C
+ mov r8, r0
+ ldr r5, _080DB190
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_080DB162:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DB176
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DB176:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB180: .4byte gTasks
+_080DB184: .4byte gUnknown_0202F7B2
+_080DB188: .4byte gUnknown_03004B00
+_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
+_080DB190: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80DB0E8
+
+ thumb_func_start sub_80DB194
+sub_80DB194: @ 80DB194
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DB1A6
+ cmp r0, 0x1
+ beq _080DB1D8
+ b _080DB1EC
+_080DB1A6:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB1D4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB1EC
+ .align 2, 0
+_080DB1D4: .4byte gSprites
+_080DB1D8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB1EC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB1EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB194
+
+ thumb_func_start sub_80DB1F4
+sub_80DB1F4: @ 80DB1F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DB22C
+ cmp r0, 0x1
+ bgt _080DB20A
+ cmp r0, 0
+ beq _080DB210
+ b _080DB27E
+_080DB20A:
+ cmp r0, 0x2
+ beq _080DB240
+ b _080DB27E
+_080DB210:
+ ldr r0, _080DB228
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080DB238
+ .align 2, 0
+_080DB228: .4byte gUnknown_0202F7C9
+_080DB22C:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080DB27E
+_080DB238:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB27E
+_080DB240:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DB27E
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB284
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB27E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB284: .4byte gSprites
+ thumb_func_end sub_80DB1F4
+
+ thumb_func_start sub_80DB288
+sub_80DB288: @ 80DB288
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DB2C4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DB2C8
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB2CC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C8: .4byte sub_80DB2D0
+_080DB2CC: .4byte gSprites
+ thumb_func_end sub_80DB288
+
+ thumb_func_start sub_80DB2D0
+sub_80DB2D0: @ 80DB2D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DB2E4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DB328
+_080DB2E4:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB30A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _080DB328
+_080DB30A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DB328
+ ldr r0, _080DB32C
+ str r0, [r2, 0x1C]
+_080DB328:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB32C: .4byte sub_80DB330
+ thumb_func_end sub_80DB2D0
+
+ thumb_func_start sub_80DB330
+sub_80DB330: @ 80DB330
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB360
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080DB360:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080DB36E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DB36E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB330
+
+ thumb_func_start sub_80DB374
+sub_80DB374: @ 80DB374
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080DB388
+ cmp r0, 0x1
+ beq _080DB3E0
+ b _080DB44C
+_080DB388:
+ ldr r0, _080DB398
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080DB3A0
+ ldr r4, _080DB39C
+ b _080DB3A2
+ .align 2, 0
+_080DB398: .4byte gUnknown_03004B00
+_080DB39C: .4byte gUnknown_0202F7C8
+_080DB3A0:
+ ldr r4, _080DB3DC
+_080DB3A2:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DB44C
+ .align 2, 0
+_080DB3DC: .4byte gUnknown_0202F7C9
+_080DB3E0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _080DB3EE
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _080DB3F2
+_080DB3EE:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_080DB3F2:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_8078FDC
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, _080DB454
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _080DB42C
+ movs r1, 0x80
+_080DB42C:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _080DB44C
+ adds r0, r5, 0
+ bl sub_8079098
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DB44C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB454: .4byte gOamMatrices
+ thumb_func_end sub_80DB374
+
+ thumb_func_start sub_80DB458
+sub_80DB458: @ 80DB458
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ ldr r4, _080DB47C
+ ands r4, r0
+ bl Random
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080DB480
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _080DB488
+ .align 2, 0
+_080DB47C: .4byte 0x000001ff
+_080DB480:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_080DB488:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB49C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _080DB4A4
+_080DB49C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_080DB4A4:
+ strh r0, [r5, 0x30]
+ ldr r2, _080DB4CC
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DB4C0
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_080DB4C0:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080DB4D4
+ ldr r4, _080DB4D0
+ b _080DB4D6
+ .align 2, 0
+_080DB4CC: .4byte gUnknown_03004B00
+_080DB4D0: .4byte gUnknown_0202F7C8
+_080DB4D4:
+ ldr r4, _080DB500
+_080DB4D6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, _080DB504
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB500: .4byte gUnknown_0202F7C9
+_080DB504: .4byte sub_80DB508
+ thumb_func_end sub_80DB458
+
+ thumb_func_start sub_80DB508
+sub_80DB508: @ 80DB508
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DB520
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _080DB52A
+_080DB520:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_080DB52A:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080DB54A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080DB54A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080DB55E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB55E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB508
+
+ thumb_func_start sub_80DB564
+sub_80DB564: @ 80DB564
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, _080DB574
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DB574: .4byte sub_80DB578
+ thumb_func_end sub_80DB564
+
+ thumb_func_start sub_80DB578
+sub_80DB578: @ 80DB578
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080DB58A
+ cmp r1, 0x1
+ beq _080DB5D8
+ b _080DB5DE
+_080DB58A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080DB5DE
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DB5DE
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB5DE
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DB5DE
+_080DB5D8:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DB5DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB578
+
+ thumb_func_start sub_80DB5E4
+sub_80DB5E4: @ 80DB5E4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, _080DB698
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080DB69C
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB698: .4byte gUnknown_0202F7C8
+_080DB69C: .4byte sub_80DB6A0
+ thumb_func_end sub_80DB5E4
+
+ thumb_func_start sub_80DB6A0
+sub_80DB6A0: @ 80DB6A0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080DB6DA
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _080DB6DA
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _080DB6E0
+_080DB6DA:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080DB6E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB6A0
+
+ thumb_func_start unref_sub_80DB6E4
+unref_sub_80DB6E4: @ 80DB6E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DB714
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB71C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB718
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _080DB73A
+ .align 2, 0
+_080DB714: .4byte gUnknown_03004B00
+_080DB718: .4byte gSprites
+_080DB71C:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB748
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_080DB73A:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB748: .4byte gSprites
+ thumb_func_end unref_sub_80DB6E4
+
+ thumb_func_start sub_80DB74C
+sub_80DB74C: @ 80DB74C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, _080DB804
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB768
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB77E
+_080DB768:
+ ldrb r1, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r1, r6, 0
+ adds r1, 0x43
+ movs r0, 0xC8
+ strb r0, [r1]
+_080DB77E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB7DA
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7BC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7BC:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r7
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7DA
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7DA:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB810
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB810
+ ldr r0, _080DB804
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB808
+ movs r0, 0x48
+ strh r0, [r6, 0x20]
+ movs r0, 0x50
+ b _080DB84A
+ .align 2, 0
+_080DB804: .4byte gUnknown_0202F7C8
+_080DB808:
+ movs r0, 0xB0
+ strh r0, [r6, 0x20]
+ movs r0, 0x28
+ b _080DB84A
+_080DB810:
+ ldr r5, _080DB880
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB826
+ ldr r1, _080DB884
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DB826:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DB884
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_080DB84A:
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB85C
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x9
+ strh r0, [r6, 0x22]
+_080DB85C:
+ ldr r0, _080DB884
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x2E]
+ ldr r1, _080DB888
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB880: .4byte gUnknown_0202F7C8
+_080DB884: .4byte gUnknown_03004B00
+_080DB888: .4byte sub_80DB88C
+ thumb_func_end sub_80DB74C
+
+ thumb_func_start sub_80DB88C
+sub_80DB88C: @ 80DB88C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _080DB8B0
+ ldrh r1, [r3, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0xD
+ bne _080DB8B8
+ ldr r0, _080DB8B4
+ str r0, [r3, 0x1C]
+ b _080DB8BC
+ .align 2, 0
+_080DB8B0: .4byte REG_BLDALPHA
+_080DB8B4: .4byte sub_80DB8C0
+_080DB8B8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x34]
+_080DB8BC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB88C
+
+ thumb_func_start sub_80DB8C0
+sub_80DB8C0: @ 80DB8C0
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080DB91E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x2E]
+ ldr r1, _080DB924
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r5, 0x8
+ adds r6, r1, 0
+ adds r1, r4, 0x7
+ lsls r0, r4, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ lsls r1, 1
+ adds r1, r6
+_080DB8F6:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ subs r1, 0x2
+ subs r2, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _080DB8F6
+ adds r0, r4, 0x1
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080DB91E
+ ldr r0, _080DB928
+ str r0, [r3, 0x1C]
+_080DB91E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB924: .4byte gPlttBufferFaded
+_080DB928: .4byte sub_80DB92C
+ thumb_func_end sub_80DB8C0
+
+ thumb_func_start sub_80DB92C
+sub_80DB92C: @ 80DB92C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r2, _080DB9D4
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB9CC
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB9BC
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB98E
+ ldr r2, _080DB9D8
+ ldr r0, _080DB9DC
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB98E:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r6
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB9BC
+ ldr r2, _080DB9D8
+ ldr r0, _080DB9DC
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB9BC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DB9E0
+ str r0, [r5, 0x1C]
+_080DB9CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB9D4: .4byte REG_BLDALPHA
+_080DB9D8: .4byte gSprites
+_080DB9DC: .4byte gUnknown_02024BE0
+_080DB9E0: .4byte sub_80DB9E4
+ thumb_func_end sub_80DB92C
+
+ thumb_func_start sub_80DB9E4
+sub_80DB9E4: @ 80DB9E4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBA3C
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA22
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA22:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA3C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA3C:
+ ldr r0, _080DBA48
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBA48: .4byte move_anim_8072740
+ thumb_func_end sub_80DB9E4
+
+ thumb_func_start sub_80DBA4C
+sub_80DBA4C: @ 80DBA4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DBAD8
+ ldr r5, _080DBA98
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ movs r6, 0
+ cmp r0, 0
+ bne _080DBA66
+ movs r6, 0x1
+_080DBA66:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAAE
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBAAE
+ ldr r0, _080DBA9C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAA0
+ ldrh r0, [r5]
+ movs r1, 0x48
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+ .align 2, 0
+_080DBA98: .4byte gUnknown_03004B00
+_080DBA9C: .4byte gUnknown_0202F7C8
+_080DBAA0:
+ ldrh r0, [r5]
+ adds r0, 0xB0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x28
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+_080DBAAE:
+ ldr r0, _080DBAC4
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DBAC8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80787B0
+ b _080DBAD0
+ .align 2, 0
+_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC8:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8078764
+_080DBAD0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBAEC
+_080DBAD8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBAEC
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080DBAEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBA4C
+
+ thumb_func_start sub_80DBAF4
+sub_80DBAF4: @ 80DBAF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DBB3C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBB44
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xA
+ strh r0, [r5, 0x22]
+ ldr r0, _080DBB40
+ b _080DBB52
+ .align 2, 0
+_080DBB3C: .4byte gUnknown_0202F7C8
+_080DBB40: .4byte 0x0000ffff
+_080DBB44:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0xA
+ strh r0, [r5, 0x22]
+ movs r0, 0x1
+_080DBB52:
+ strh r0, [r5, 0x30]
+ ldr r1, _080DBB68
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBB6C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBB68: .4byte move_anim_8072740
+_080DBB6C: .4byte sub_8078600
+ thumb_func_end sub_80DBAF4
+
+ thumb_func_start sub_80DBB70
+sub_80DBB70: @ 80DBB70
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _080DBBF4
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r4, r1, 16
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ negs r1, r1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DBBB6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080DBBB6:
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080DBBE2
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_080DBBE2:
+ ldr r1, _080DBBF8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBBFC
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBBF4: .4byte gUnknown_0202F7C8
+_080DBBF8: .4byte sub_80DBC00
+_080DBBFC: .4byte sub_8078600
+ thumb_func_end sub_80DBB70
+
+ thumb_func_start sub_80DBC00
+sub_80DBC00: @ 80DBC00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080DBC2C
+ str r0, [r4, 0x10]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldr r0, _080DBC30
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBC2C: .4byte gUnknown_083DA888
+_080DBC30: .4byte sub_80DBC34
+ thumb_func_end sub_80DBC00
+
+ thumb_func_start sub_80DBC34
+sub_80DBC34: @ 80DBC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBC46
+ cmp r0, 0x1
+ beq _080DBC74
+ b _080DBC8C
+_080DBC46:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBC8C
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x12
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBC8C
+_080DBC74:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DBC8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DBC8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBC34
+
+ thumb_func_start sub_80DBC94
+sub_80DBC94: @ 80DBC94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DBCC4
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080DBCC8
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBCCC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCC4: .4byte gTasks
+_080DBCC8: .4byte gUnknown_083DA8A4
+_080DBCCC: .4byte sub_80DBCD0
+ thumb_func_end sub_80DBC94
+
+ thumb_func_start sub_80DBCD0
+sub_80DBCD0: @ 80DBCD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DBCF8
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBCF0
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080DBCF0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCF8: .4byte gTasks
+ thumb_func_end sub_80DBCD0
+
+ thumb_func_start sub_80DBCFC
+sub_80DBCFC: @ 80DBCFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBD48
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldr r0, _080DBD4C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080DBD30
+ movs r1, 0x4
+_080DBD30:
+ strh r1, [r4, 0xE]
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080DBD50
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBD54
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBD48: .4byte gTasks
+_080DBD4C: .4byte gUnknown_0202F7C8
+_080DBD50: .4byte gUnknown_083DA8C4
+_080DBD54: .4byte sub_80DBD58
+ thumb_func_end sub_80DBCFC
+
+ thumb_func_start sub_80DBD58
+sub_80DBD58: @ 80DBD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DBD78
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBD7C
+ cmp r0, 0x1
+ beq _080DBD98
+ b _080DBDF6
+ .align 2, 0
+_080DBD78: .4byte gTasks
+_080DBD7C:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080DBDF6
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080DBDF6
+_080DBD98:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBDC0
+ ldr r2, _080DBDBC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBDF6
+ .align 2, 0
+_080DBDBC: .4byte gSprites
+_080DBDC0:
+ ldr r3, _080DBDFC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DBDF6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBDFC: .4byte gSprites
+ thumb_func_end sub_80DBD58
+
+ thumb_func_start sub_80DBE00
+sub_80DBE00: @ 80DBE00
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBE84
+ adds r5, r1, r0
+ movs r0, 0
+ movs r7, 0x10
+ strh r7, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ ldr r4, _080DBE88
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, r6
+ bcs _080DBE6A
+ adds r1, r6, 0
+_080DBE6A:
+ strh r1, [r5, 0x20]
+ ldr r1, _080DBE8C
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DBE90
+ strh r7, [r0]
+ ldr r0, _080DBE94
+ str r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBE84: .4byte gTasks
+_080DBE88: .4byte gUnknown_0202F7C8
+_080DBE8C: .4byte REG_BLDCNT
+_080DBE90: .4byte REG_BLDALPHA
+_080DBE94: .4byte sub_80DBE98
+ thumb_func_end sub_80DBE00
+
+ thumb_func_start sub_80DBE98
+sub_80DBE98: @ 80DBE98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DBEBC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DBF98
+ cmp r1, 0x1
+ bgt _080DBEC0
+ cmp r1, 0
+ beq _080DBECE
+ b _080DC014
+ .align 2, 0
+_080DBEBC: .4byte gTasks
+_080DBEC0:
+ cmp r1, 0x2
+ bne _080DBEC6
+ b _080DBFF4
+_080DBEC6:
+ cmp r1, 0x3
+ bne _080DBECC
+ b _080DC004
+_080DBECC:
+ b _080DC014
+_080DBECE:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bgt _080DBEDE
+ b _080DC014
+_080DBEDE:
+ strh r1, [r4, 0xA]
+ ldr r0, _080DBF1C
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ adds r1, 0x8
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ strh r2, [r0]
+ cmp r2, 0x40
+ beq _080DBF82
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DBF3C
+ cmp r0, 0x1
+ bgt _080DBF20
+ cmp r0, 0
+ beq _080DBF2A
+ b _080DBF82
+ .align 2, 0
+_080DBF1C: .4byte gSpriteTemplate_83DA8DC
+_080DBF20:
+ cmp r0, 0x2
+ beq _080DBF54
+ cmp r0, 0x3
+ beq _080DBF6C
+ b _080DBF82
+_080DBF2A:
+ ldr r0, _080DBF38
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ b _080DBF7A
+ .align 2, 0
+_080DBF38: .4byte gSprites
+_080DBF3C:
+ ldr r0, _080DBF50
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ b _080DBF80
+ .align 2, 0
+_080DBF50: .4byte gSprites
+_080DBF54:
+ ldr r1, _080DBF68
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x26]
+ b _080DBF82
+ .align 2, 0
+_080DBF68: .4byte gSprites
+_080DBF6C:
+ ldr r0, _080DBF94
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF7A:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF80:
+ strh r0, [r1, 0x26]
+_080DBF82:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DC014
+ b _080DBFF4
+ .align 2, 0
+_080DBF94: .4byte gSprites
+_080DBF98:
+ ldrh r0, [r4, 0xA]
+ ands r1, r0
+ cmp r1, 0
+ beq _080DBFA8
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBFAE
+_080DBFA8:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_080DBFAE:
+ ldr r2, _080DBFFC
+ ldrh r0, [r4, 0x10]
+ lsls r0, 8
+ ldrh r1, [r4, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _080DC014
+ movs r5, 0x8
+ adds r6, r4, 0
+ adds r6, 0x8
+_080DBFCE:
+ lsls r0, r5, 1
+ adds r1, r6, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x40
+ beq _080DBFEA
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC000
+ adds r0, r1
+ bl DestroySprite
+_080DBFEA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xC
+ bls _080DBFCE
+_080DBFF4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC014
+ .align 2, 0
+_080DBFFC: .4byte REG_BLDALPHA
+_080DC000: .4byte gSprites
+_080DC004:
+ ldr r0, _080DC01C
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC014:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC01C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DBE98
+
+ thumb_func_start sub_80DC020
+sub_80DC020: @ 80DC020
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080DC04A
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080DC04A:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080DC05C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DC05C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC020
+
+ thumb_func_start sub_80DC068
+sub_80DC068: @ 80DC068
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DC0A4
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080DC094
+ ldr r4, _080DC0A8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DC094:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DC0AC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC0A4: .4byte gUnknown_03004B00
+_080DC0A8: .4byte gUnknown_0202F7C8
+_080DC0AC: .4byte sub_80DC020
+ thumb_func_end sub_80DC068
+
+ thumb_func_start sub_80DC0B0
+sub_80DC0B0: @ 80DC0B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC10C
+ adds r5, r1, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC154
+ ldr r0, _080DC110
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC120
+ ldr r0, _080DC114
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC118
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC11C
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC10C: .4byte gTasks
+_080DC110: .4byte gUnknown_03004B00
+_080DC114: .4byte 0x0000fff6
+_080DC118: .4byte gUnknown_0202F7C9
+_080DC11C: .4byte gUnknown_0202F7C8
+_080DC120:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC14C
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC150
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1D2
+ .align 2, 0
+_080DC14C: .4byte gUnknown_0202F7C8
+_080DC150: .4byte gUnknown_0202F7C9
+_080DC154:
+ ldr r0, _080DC198
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC1A8
+ ldr r0, _080DC19C
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1A0
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1A4
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC198: .4byte gUnknown_03004B00
+_080DC19C: .4byte 0x0000fff6
+_080DC1A0: .4byte gUnknown_0202F7C9
+_080DC1A4: .4byte gUnknown_0202F7C8
+_080DC1A8:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1F0
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1F4
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1D2:
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1DE:
+ strh r0, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0xA]
+ ldr r0, _080DC1F8
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC1F0: .4byte gUnknown_0202F7C8
+_080DC1F4: .4byte gUnknown_0202F7C9
+_080DC1F8: .4byte sub_80DC1FC
+ thumb_func_end sub_80DC0B0
+
+ thumb_func_start sub_80DC1FC
+sub_80DC1FC: @ 80DC1FC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC21C
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _080DC220
+ cmp r1, 0x1
+ beq _080DC294
+ b _080DC2A8
+ .align 2, 0
+_080DC21C: .4byte gTasks
+_080DC220:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080DC2A8
+ strh r1, [r5, 0xA]
+ ldr r0, _080DC28C
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080DC274
+ ldr r0, _080DC290
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+_080DC274:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080DC2A8
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC2A8
+ .align 2, 0
+_080DC28C: .4byte gSpriteTemplate_83DA9AC
+_080DC290: .4byte gSprites
+_080DC294:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _080DC2A8
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC2A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC1FC
+
+ thumb_func_start sub_80DC2B0
+sub_80DC2B0: @ 80DC2B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC2CE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080DC2CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC2B0
+
+ thumb_func_start sub_80DC2D4
+sub_80DC2D4: @ 80DC2D4
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC30C
+ adds r4, r1, r0
+ ldr r0, _080DC310
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x24]
+ ldr r0, _080DC314
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _080DC32A
+ cmp r0, 0x1
+ bgt _080DC318
+ cmp r0, 0
+ beq _080DC31E
+ b _080DC346
+ .align 2, 0
+_080DC30C: .4byte gTasks
+_080DC310: .4byte gUnknown_0202F7C9
+_080DC314: .4byte gUnknown_03004B00
+_080DC318:
+ cmp r0, 0x2
+ beq _080DC336
+ b _080DC346
+_080DC31E:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080DC33E
+_080DC32A:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ b _080DC33E
+_080DC336:
+ movs r0, 0x4
+ strh r0, [r4, 0x1E]
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_080DC33E:
+ strh r0, [r4, 0x22]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+_080DC346:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080DC352
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080DC352:
+ ldr r0, _080DC36C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DC378
+ ldr r0, _080DC370
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC374
+ b _080DC380
+ .align 2, 0
+_080DC36C: .4byte gUnknown_0202F7C9
+_080DC370: .4byte gUnknown_030042C0
+_080DC374: .4byte REG_BG1HOFS
+_080DC378:
+ ldr r0, _080DC3E0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC3E4
+_080DC380:
+ str r0, [sp]
+ ldrh r1, [r4, 0x24]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ bgt _080DC3BA
+ ldr r5, _080DC3E8
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DC39A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ ble _080DC39A
+_080DC3BA:
+ ldr r0, _080DC3EC
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DC3F0
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC3E0: .4byte gUnknown_03004288
+_080DC3E4: .4byte REG_BG2HOFS
+_080DC3E8: .4byte gUnknown_03004DE0
+_080DC3EC: .4byte 0xa2600001
+_080DC3F0: .4byte sub_80DC3F4
+ thumb_func_end sub_80DC2D4
+
+ thumb_func_start sub_80DC3F4
+sub_80DC3F4: @ 80DC3F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC41C
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC4CE
+ cmp r0, 0x1
+ bgt _080DC420
+ cmp r0, 0
+ beq _080DC426
+ b _080DC4E6
+ .align 2, 0
+_080DC41C: .4byte gTasks
+_080DC420:
+ cmp r0, 0x2
+ beq _080DC4E0
+ b _080DC4E6
+_080DC426:
+ ldrh r3, [r5, 0x22]
+ ldrh r4, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bgt _080DC4BE
+ ldr r0, _080DC470
+ mov r9, r0
+ movs r7, 0x3
+ ldr r1, _080DC474
+ mov r12, r1
+ movs r2, 0xF0
+ lsls r2, 3
+ add r2, r12
+ mov r8, r2
+_080DC448:
+ lsls r2, r3, 16
+ asrs r0, r2, 15
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r3, 0x20
+ ldrsh r1, [r5, r3]
+ asrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r3, r0, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ ble _080DC478
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r0, r3, r0
+ b _080DC484
+ .align 2, 0
+_080DC470: .4byte gSineTable
+_080DC474: .4byte gUnknown_03004DE0
+_080DC478:
+ cmp r3, 0
+ bge _080DC488
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ subs r0, r3, r0
+_080DC484:
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080DC488:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ mov r0, r12
+ adds r4, r3, r0
+ ldrh r0, [r5, 0x1C]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1, r0
+ strh r0, [r4]
+ add r3, r8
+ ldrh r0, [r5, 0x1C]
+ adds r1, r0
+ strh r1, [r3]
+ asrs r0, r6, 16
+ ldrh r1, [r5, 0x1E]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ ble _080DC448
+_080DC4BE:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _080DC4E6
+ b _080DC4D4
+_080DC4CE:
+ ldr r1, _080DC4DC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080DC4D4:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC4E6
+ .align 2, 0
+_080DC4DC: .4byte gUnknown_03004DC0
+_080DC4E0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC4E6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC3F4
+
+ thumb_func_start sub_80DC4F4
+sub_80DC4F4: @ 80DC4F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DC528
+ adds r7, r0, r1
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r5
+ adds r6, r5, 0
+ cmp r6, 0xFF
+ bne _080DC52C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC528: .4byte gTasks
+_080DC52C:
+ ldr r1, _080DC550
+ ldrb r0, [r1]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r0, 16
+ cmp r0, 0
+ bge _080DC554
+ adds r0, r5, 0
+ bl FreeOamMatrix
+ mov r0, r8
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC550: .4byte gUnknown_03004B00
+_080DC554:
+ ldr r2, _080DC5E4
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r0, r4, r0
+ ldr r1, _080DC5E8
+ str r1, [r0]
+ adds r4, r2
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ ldr r1, _080DC5EC
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r0, r10
+ strh r0, [r7, 0x24]
+ mov r1, r9
+ strh r1, [r7, 0x26]
+ ldr r0, _080DC5F0
+ str r0, [r7]
+_080DC5D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC5E4: .4byte gSprites
+_080DC5E8: .4byte SpriteCallbackDummy
+_080DC5EC: .4byte gUnknown_03004B00
+_080DC5F0: .4byte sub_80DC5F4
+ thumb_func_end sub_80DC4F4
+
+ thumb_func_start sub_80DC5F4
+sub_80DC5F4: @ 80DC5F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DC618
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DC678
+ cmp r0, 0x1
+ bgt _080DC61C
+ cmp r0, 0
+ beq _080DC626
+ b _080DC6F8
+ .align 2, 0
+_080DC618: .4byte gTasks
+_080DC61C:
+ cmp r0, 0x2
+ beq _080DC6C8
+ cmp r0, 0x3
+ beq _080DC6E8
+ b _080DC6F8
+_080DC626:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC674
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x30
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC674: .4byte gSineTable
+_080DC678:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC6C4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC6C4: .4byte gSineTable
+_080DC6C8:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC6E4
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_080DC6DA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC6F8
+ .align 2, 0
+_080DC6E4: .4byte gSprites
+_080DC6E8:
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FreeOamMatrix
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DC6F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC5F4
+
+ thumb_func_start sub_80DC700
+sub_80DC700: @ 80DC700
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC778
+ cmp r0, 0x1
+ bgt _080DC716
+ cmp r0, 0
+ beq _080DC720
+ b _080DC818
+_080DC716:
+ cmp r0, 0x2
+ beq _080DC7AA
+ cmp r0, 0x3
+ beq _080DC808
+ b _080DC818
+_080DC720:
+ ldr r4, _080DC76C
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC74E
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xC
+ strh r0, [r5, 0x22]
+_080DC74E:
+ movs r0, 0x8
+ strh r0, [r5, 0x30]
+ ldr r1, _080DC770
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DC774
+ ldrh r1, [r5, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ b _080DC7A2
+ .align 2, 0
+_080DC76C: .4byte gUnknown_0202F7C8
+_080DC770: .4byte REG_BLDCNT
+_080DC774: .4byte REG_BLDALPHA
+_080DC778:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DC818
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_080DC7A2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DC818
+_080DC7AA:
+ ldrh r0, [r5, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DC7E8
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r1, 0x1
+ strh r1, [r5, 0x30]
+ ldr r2, _080DC804
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DC7E8
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080DC7E8:
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r0, 0
+ ldrh r1, [r5, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r5, 0x26]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r5, 0x34]
+ b _080DC818
+ .align 2, 0
+_080DC804: .4byte REG_BLDALPHA
+_080DC808:
+ ldr r0, _080DC820
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DC818:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC820: .4byte REG_BLDCNT
+ thumb_func_end sub_80DC700
+
+ thumb_func_start sub_80DC824
+sub_80DC824: @ 80DC824
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC850
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080DC84C
+ ldrh r1, [r0, 0x4]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+ b _080DC880
+ .align 2, 0
+_080DC84C: .4byte gUnknown_03004B00
+_080DC850:
+ ldr r0, _080DC8E4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC880
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080DC8E8
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DC880:
+ ldr r5, _080DC8E4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC8E8
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC8EC
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC8F0
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC8E4: .4byte gUnknown_0202F7C9
+_080DC8E8: .4byte gUnknown_03004B00
+_080DC8EC: .4byte sub_8078B34
+_080DC8F0: .4byte move_anim_8072740
+ thumb_func_end sub_80DC824
+
+ thumb_func_start sub_80DC8F4
+sub_80DC8F4: @ 80DC8F4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC918
+ ldr r1, _080DC914
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _080DC934
+ .align 2, 0
+_080DC914: .4byte gUnknown_03004B00
+_080DC918:
+ ldr r0, _080DC990
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC934
+ ldr r0, _080DC994
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+_080DC934:
+ ldr r5, _080DC990
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC994
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC998
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC99C
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC990: .4byte gUnknown_0202F7C9
+_080DC994: .4byte gUnknown_03004B00
+_080DC998: .4byte sub_8078B34
+_080DC99C: .4byte move_anim_8072740
+ thumb_func_end sub_80DC8F4
+
+ thumb_func_start sub_80DC9A0
+sub_80DC9A0: @ 80DC9A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC9BC
+ ldr r0, _080DC9FC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r0, 0x4]
+_080DC9BC:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DC9FC
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080DCA04
+ ldr r4, _080DCA00
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DCA16
+ .align 2, 0
+_080DC9FC: .4byte gUnknown_03004B00
+_080DCA00: .4byte gUnknown_0202F7C9
+_080DCA04:
+ ldr r0, _080DCA2C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DCA16:
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080DCA30
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x38]
+ ldr r0, _080DCA34
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCA2C: .4byte gUnknown_0202F7C9
+_080DCA30: .4byte gUnknown_03004B00
+_080DCA34: .4byte sub_80DCA38
+ thumb_func_end sub_80DC9A0
+
+ thumb_func_start sub_80DCA38
+sub_80DCA38: @ 80DCA38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCA4E
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCA6A
+_080DCA4E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0xD
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+_080DCA6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCA38
+
+ thumb_func_start sub_80DCA70
+sub_80DCA70: @ 80DCA70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCAA0
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080DCAA4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCAAC
+ ldr r0, _080DCAA8
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080DCAB8
+ .align 2, 0
+_080DCAA0: .4byte gUnknown_0202F7C9
+_080DCAA4: .4byte gUnknown_0202F7C8
+_080DCAA8: .4byte gUnknown_03004B00
+_080DCAAC:
+ ldr r1, _080DCAE0
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080DCAB8:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080DCAE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCAD4
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_080DCAD4:
+ ldr r0, _080DCAE8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCAE0: .4byte gUnknown_03004B00
+_080DCAE4: .4byte gUnknown_0202F7C9
+_080DCAE8: .4byte sub_80DCAEC
+ thumb_func_end sub_80DCA70
+
+ thumb_func_start sub_80DCAEC
+sub_80DCAEC: @ 80DCAEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DCB20
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080DCB20:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080DCB34
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DCB34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCAEC
+
+ thumb_func_start sub_80DCB38
+sub_80DCB38: @ 80DCB38
+ ldr r2, _080DCB54
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r1, 0x10
+ strh r1, [r2]
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldr r1, _080DCB58
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DCB54: .4byte REG_BLDCNT
+_080DCB58: .4byte sub_80DCB5C
+ thumb_func_end sub_80DCB38
+
+ thumb_func_start sub_80DCB5C
+sub_80DCB5C: @ 80DCB5C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x13
+ bgt _080DCB70
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x32]
+ b _080DCBA8
+_080DCB70:
+ ldrh r1, [r3, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DCBA8
+ ldrh r1, [r3, 0x2E]
+ subs r1, 0x1
+ strh r1, [r3, 0x2E]
+ ldr r2, _080DCBAC
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DCBA8
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DCBB0
+ str r0, [r3, 0x1C]
+_080DCBA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBAC: .4byte REG_BLDALPHA
+_080DCBB0: .4byte sub_80DCBB4
+ thumb_func_end sub_80DCB5C
+
+ thumb_func_start sub_80DCBB4
+sub_80DCBB4: @ 80DCBB4
+ push {lr}
+ ldr r1, _080DCBC8
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DCBB4
+
+ thumb_func_start sub_80DCBCC
+sub_80DCBCC: @ 80DCBCC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCBEC
+ ldr r1, _080DCBE8
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080DCC0E
+ .align 2, 0
+_080DCBE8: .4byte gUnknown_03004B00
+_080DCBEC:
+ ldr r0, _080DCCE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC0E
+ ldr r1, _080DCCEC
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DCC0E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCC5E
+ ldr r0, _080DCCE8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _080DCCF0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080DCC5E
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC4C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DCC5E
+_080DCC4C:
+ ldr r0, _080DCCEC
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0]
+_080DCC5E:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080DCCF0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r6, _080DCCEC
+ lsrs r4, 24
+ ldrh r0, [r6, 0x4]
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r6, 0x6]
+ adds r1, r2
+ lsls r1, 16
+ ldrh r2, [r7, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r7, 0x22]
+ lsrs r5, r1, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r7, 0x2E]
+ strh r4, [r7, 0x32]
+ strh r5, [r7, 0x36]
+ ldr r0, _080DCCF4
+ str r0, [r7, 0x1C]
+ ldr r1, _080DCCF8
+ adds r0, r7, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCCE8: .4byte gUnknown_0202F7C8
+_080DCCEC: .4byte gUnknown_03004B00
+_080DCCF0: .4byte gUnknown_0202F7C9
+_080DCCF4: .4byte sub_8078B34
+_080DCCF8: .4byte move_anim_8072740
+ thumb_func_end sub_80DCBCC
+
+ thumb_func_start sub_80DCCFC
+sub_80DCCFC: @ 80DCCFC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DCD68
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCD1C
+ ldr r1, _080DCD6C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DCD1C:
+ ldr r4, _080DCD6C
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080DCD70
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080DCD74
+ str r0, [r6, 0x1C]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCD68: .4byte gUnknown_0202F7C8
+_080DCD6C: .4byte gUnknown_03004B00
+_080DCD70: .4byte gUnknown_0202F7C9
+_080DCD74: .4byte sub_80DCD78
+ thumb_func_end sub_80DCCFC
+
+ thumb_func_start sub_80DCD78
+sub_80DCD78: @ 80DCD78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCDA4
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCE34
+_080DCDA4:
+ movs r0, 0x2E
+ adds r0, r4
+ mov r8, r0
+ ldrh r7, [r4, 0x20]
+ ldrh r5, [r4, 0x24]
+ ldrh r1, [r4, 0x22]
+ mov r12, r1
+ ldrh r6, [r4, 0x26]
+ mov r2, r8
+ add r1, sp, 0x4
+ movs r3, 0x7
+_080DCDBA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCDBA
+ adds r0, r7, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCE34
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r1, r5, 16
+ asrs r1, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r1, r2
+ lsls r2, r6, 16
+ asrs r2, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ add r2, sp, 0x4
+ mov r1, r8
+ movs r3, 0x7
+_080DCE26:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCE26
+_080DCE34:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCD78
+
+ thumb_func_start sub_80DCE40
+sub_80DCE40: @ 80DCE40
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DCE54
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DCE5C
+ ldr r4, _080DCE58
+ b _080DCE5E
+ .align 2, 0
+_080DCE54: .4byte gUnknown_03004B00
+_080DCE58: .4byte gUnknown_0202F7C8
+_080DCE5C:
+ ldr r4, _080DCE90
+_080DCE5E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x12
+ strh r0, [r5, 0x22]
+ ldr r1, _080DCE94
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DCE98
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCE90: .4byte gUnknown_0202F7C9
+_080DCE94: .4byte move_anim_8074EE0
+_080DCE98: .4byte sub_80785E4
+ thumb_func_end sub_80DCE40
+
+ thumb_func_start sub_80DCE9C
+sub_80DCE9C: @ 80DCE9C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DCF08
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080DCEBC
+ ldr r0, _080DCF0C
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+_080DCEBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xE
+ strh r0, [r5, 0x22]
+ ldrb r1, [r6, 0x2]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ strh r4, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+ movs r0, 0x4
+ strh r0, [r5, 0x32]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldr r0, _080DCF10
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x38]
+ ldr r1, _080DCF14
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF18
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF08: .4byte gUnknown_03004B00
+_080DCF0C: .4byte gUnknown_0202F7C9
+_080DCF10: .4byte 0x0000ffba
+_080DCF14: .4byte sub_80DCF1C
+_080DCF18: .4byte sub_8078278
+ thumb_func_end sub_80DCE9C
+
+ thumb_func_start sub_80DCF1C
+sub_80DCF1C: @ 80DCF1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x20]
+ adds r0, r1, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x4
+ strh r0, [r4, 0x32]
+ movs r0, 0x20
+ strh r0, [r4, 0x34]
+ ldr r0, _080DCF54
+ strh r0, [r4, 0x36]
+ ldr r1, _080DCF58
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF5C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF54: .4byte 0x0000ffe8
+_080DCF58: .4byte move_anim_8074EE0
+_080DCF5C: .4byte sub_8078278
+ thumb_func_end sub_80DCF1C
+
+ thumb_func_start sub_80DCF60
+sub_80DCF60: @ 80DCF60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DCF88
+ ldrb r1, [r4, 0xA]
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ ldr r0, _080DCF8C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCF90
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080DCF96
+ .align 2, 0
+_080DCF88: .4byte gUnknown_03004B00
+_080DCF8C: .4byte gUnknown_0202F7C8
+_080DCF90:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080DCF96:
+ strh r0, [r5, 0x20]
+ ldr r3, _080DCFD8
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r5, 0x22]
+ adds r2, r0
+ movs r4, 0
+ strh r2, [r5, 0x22]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r1, [r3, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldrh r0, [r3, 0x6]
+ adds r2, r0
+ strh r2, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078A5C
+ strh r4, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _080DCFDC
+ str r0, [r5, 0x1C]
+ ldr r1, _080DCFE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCFD8: .4byte gUnknown_03004B00
+_080DCFDC: .4byte sub_8078394
+_080DCFE0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DCF60
+
+ thumb_func_start sub_80DCFE4
+sub_80DCFE4: @ 80DCFE4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCFFC
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DD000
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DD008
+ .align 2, 0
+_080DCFFC: .4byte gUnknown_03004B00
+_080DD000:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080DD008:
+ ldr r1, _080DD024
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DD028
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD024: .4byte gUnknown_03004B00
+_080DD028: .4byte sub_80DD02C
+ thumb_func_end sub_80DCFE4
+
+ thumb_func_start sub_80DD02C
+sub_80DD02C: @ 80DD02C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DD072
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DD072:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD02C
+
+ thumb_func_start do_boulder_dust
+do_boulder_dust: @ 80DD078
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _080DD154
+ ldr r2, _080DD158
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080DD15C
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD0C4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080DD0C4:
+ ldr r0, _080DD160
+ strh r5, [r0]
+ ldr r0, _080DD164
+ strh r5, [r0]
+ ldr r0, _080DD168
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r2, _080DD16C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080DD170
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080DD174
+ bl LZDecompressVram
+ ldr r0, _080DD178
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080DD17C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD120
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080DD120:
+ ldr r0, _080DD180
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DD13A
+ ldr r0, _080DD184
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD13A
+ movs r5, 0x1
+_080DD13A:
+ ldr r0, _080DD188
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x8]
+ ldr r0, _080DD18C
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD154: .4byte REG_BLDCNT
+_080DD158: .4byte 0x00003f42
+_080DD15C: .4byte REG_BG1CNT
+_080DD160: .4byte gUnknown_030042C0
+_080DD164: .4byte gUnknown_030041B4
+_080DD168: .4byte REG_BG1HOFS
+_080DD16C: .4byte 0x040000d4
+_080DD170: .4byte 0x85000400
+_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
+_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
+_080DD17C: .4byte gBattleAnimSpritePalette_261
+_080DD180: .4byte gUnknown_03004B00
+_080DD184: .4byte gUnknown_0202F7C8
+_080DD188: .4byte gTasks
+_080DD18C: .4byte sub_80DD190
+ thumb_func_end do_boulder_dust
+
+ thumb_func_start sub_80DD190
+sub_80DD190: @ 80DD190
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080DD1C0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0
+ bne _080DD1CC
+ ldr r1, _080DD1C4
+ ldr r5, _080DD1C8
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ b _080DD1D2
+ .align 2, 0
+_080DD1C0: .4byte gTasks
+_080DD1C4: .4byte gUnknown_030042C0
+_080DD1C8: .4byte 0x0000fffa
+_080DD1CC:
+ ldr r1, _080DD204
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080DD1D2:
+ strh r0, [r1]
+ adds r4, r1, 0
+ ldr r1, _080DD208
+ ldr r5, _080DD20C
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r3
+ movs r5, 0x20
+ ldrsh r0, [r0, r5]
+ mov r8, r2
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080DD1F8
+ b _080DD37C
+_080DD1F8:
+ lsls r0, 2
+ ldr r1, _080DD210
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD204: .4byte gUnknown_030042C0
+_080DD208: .4byte gUnknown_030041B4
+_080DD20C: .4byte 0x0000ffff
+_080DD210: .4byte _080DD214
+ .align 2, 0
+_080DD214:
+ .4byte _080DD228
+ .4byte _080DD270
+ .4byte _080DD292
+ .4byte _080DD2D4
+ .4byte _080DD358
+_080DD228:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080DD242
+ b _080DD37C
+_080DD242:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD26C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x7
+ beq _080DD260
+ b _080DD37C
+_080DD260:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD26C: .4byte REG_BLDALPHA
+_080DD270:
+ mov r5, r8
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080DD37C
+ movs r0, 0x7
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080DD37C
+_080DD292:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080DD37C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD2D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080DD37C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD2D0: .4byte REG_BLDALPHA
+_080DD2D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _080DD38C
+ movs r4, 0x80
+ lsls r4, 5
+ mov r9, r5
+ ldr r0, _080DD390
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r10, r0
+_080DD2F6:
+ str r6, [sp, 0xC]
+ mov r0, r9
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080DD2F6
+ str r6, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r10
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080DD38C
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080DD394
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD344
+ ldr r2, _080DD398
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080DD344:
+ ldr r0, _080DD39C
+ mov r5, r8
+ adds r1, r5, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r4, _080DD3A0
+ ldr r2, _080DD3A4
+_080DD358:
+ movs r1, 0
+ strh r1, [r4]
+ strh r1, [r2]
+ ldr r0, _080DD3A8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080DD398
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DD37C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD38C: .4byte 0x040000d4
+_080DD390: .4byte 0x85000400
+_080DD394: .4byte 0x85000200
+_080DD398: .4byte REG_BG1CNT
+_080DD39C: .4byte gTasks
+_080DD3A0: .4byte gUnknown_030042C0
+_080DD3A4: .4byte gUnknown_030041B4
+_080DD3A8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DD190
+
+ thumb_func_start sub_80DD3AC
+sub_80DD3AC: @ 80DD3AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD428
+ ldr r4, _080DD3F0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DD3F8
+ ldr r0, _080DD3F4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD3F8
+ movs r0, 0x98
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ subs r0, 0x40
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ b _080DD3FC
+ .align 2, 0
+_080DD3F0: .4byte gUnknown_03004B00
+_080DD3F4: .4byte gUnknown_0202F7C8
+_080DD3F8:
+ ldr r0, _080DD41C
+ strh r0, [r5, 0x20]
+_080DD3FC:
+ ldr r4, _080DD420
+ ldrh r0, [r4]
+ strh r0, [r5, 0x22]
+ ldr r1, _080DD424
+ adds r0, r5, 0
+ bl SetSubspriteTables
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DD484
+ .align 2, 0
+_080DD41C: .4byte 0x0000ffc0
+_080DD420: .4byte gUnknown_03004B00
+_080DD424: .4byte gUnknown_083DAD10
+_080DD428:
+ ldrh r1, [r5, 0x30]
+ ldrh r3, [r5, 0x34]
+ adds r1, r3
+ ldrh r2, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r2, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x24]
+ adds r0, r3
+ strh r0, [r5, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x26]
+ adds r0, r3
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x34]
+ ands r2, r0
+ strh r2, [r5, 0x36]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD46E
+ movs r2, 0x20
+ ldrsh r0, [r5, r2]
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ ble _080DD484
+ b _080DD480
+_080DD46E:
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DD484
+_080DD480:
+ ldr r0, _080DD48C
+ str r0, [r5, 0x1C]
+_080DD484:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD48C: .4byte move_anim_8072740
+ thumb_func_end sub_80DD3AC
+
+ thumb_func_start sub_80DD490
+sub_80DD490: @ 80DD490
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD4C8
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldr r0, _080DD4CC
+ str r0, [r4, 0x1C]
+ ldr r1, _080DD4D0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD4C8: .4byte gUnknown_03004B00
+_080DD4CC: .4byte sub_8078B34
+_080DD4D0: .4byte move_anim_8072740
+ thumb_func_end sub_80DD490
+
+ thumb_func_start sub_80DD4D4
+sub_80DD4D4: @ 80DD4D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DD554
+ adds r6, r1, r0
+ ldr r5, _080DD558
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r4, _080DD55C
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080DD544
+ mov r8, r7
+_080DD544:
+ bl sub_80DD8BC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080DD560
+ movs r0, 0x20
+ b _080DD566
+ .align 2, 0
+_080DD554: .4byte gTasks
+_080DD558: .4byte gUnknown_0202F7C8
+_080DD55C: .4byte gUnknown_0202F7C9
+_080DD560:
+ lsls r1, r5, 3
+ movs r0, 0x30
+ subs r0, r1
+_080DD566:
+ strh r0, [r6, 0x18]
+ movs r4, 0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0x1E]
+ strh r4, [r6, 0x1A]
+ movs r0, 0x1
+ strh r0, [r6, 0x20]
+ movs r1, 0x18
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _080DD57E
+ adds r0, 0x7
+_080DD57E:
+ asrs r0, 3
+ subs r0, 0x1
+ strh r0, [r6, 0x1C]
+ mov r2, r9
+ lsls r0, r2, 3
+ strh r0, [r6, 0xC]
+ lsls r0, r7, 3
+ strh r0, [r6, 0xE]
+ mov r1, r10
+ subs r0, r1, r2
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x10]
+ mov r1, r8
+ subs r0, r1, r7
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ strh r4, [r6, 0x16]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 8
+ lsrs r4, 16
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ strh r4, [r6, 0x22]
+ asrs r0, 24
+ lsls r4, 16
+ asrs r4, 16
+ subs r0, r4
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x24]
+ strh r5, [r6, 0xA]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ ldr r0, _080DD600
+ str r0, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD600: .4byte sub_80DD604
+ thumb_func_end sub_80DD4D4
+
+ thumb_func_start sub_80DD604
+sub_80DD604: @ 80DD604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DD628
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080DD61E
+ b _080DD76C
+_080DD61E:
+ lsls r0, 2
+ ldr r1, _080DD62C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD628: .4byte gTasks
+_080DD62C: .4byte _080DD630
+ .align 2, 0
+_080DD630:
+ .4byte _080DD644
+ .4byte _080DD6A8
+ .4byte _080DD6B0
+ .4byte _080DD70C
+ .4byte _080DD75E
+_080DD644:
+ ldrh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ subs r2, r0
+ strh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ ldr r3, _080DD6A4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ lsls r2, 16
+ asrs r2, 19
+ strh r2, [r0, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080DD694
+ movs r0, 0x14
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD694:
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA2
+ bl PlaySE12WithPanning
+ b _080DD76C
+ .align 2, 0
+_080DD6A4: .4byte gSprites
+_080DD6A8:
+ ldrh r0, [r4, 0x1E]
+ subs r0, 0x1
+ strh r0, [r4, 0x1E]
+ b _080DD750
+_080DD6B0:
+ ldrh r0, [r4, 0x1A]
+ subs r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080DD6D0
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ b _080DD6DA
+_080DD6D0:
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD6DA:
+ ldr r2, _080DD708
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ b _080DD76C
+ .align 2, 0
+_080DD708: .4byte gSprites
+_080DD70C:
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080DD74A
+ movs r0, 0
+ strh r0, [r4, 0x1A]
+ adds r0, r4, 0
+ bl sub_80DD774
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xAF
+ bl PlaySE12WithPanning
+_080DD74A:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DD750:
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD76C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DD76C
+_080DD75E:
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DD76C
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DD76C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD604
+
+ thumb_func_start sub_80DD774
+sub_80DD774: @ 80DD774
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _080DD864
+ lsls r0, 2
+ ldr r1, _080DD790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD790: .4byte _080DD794
+ .align 2, 0
+_080DD794:
+ .4byte _080DD7A8
+ .4byte _080DD7B4
+ .4byte _080DD7B4
+ .4byte _080DD7C0
+ .4byte _080DD7CC
+_080DD7A8:
+ ldr r3, _080DD7B0
+ movs r5, 0
+ b _080DD7D0
+ .align 2, 0
+_080DD7B0: .4byte gSpriteTemplate_83DAD78
+_080DD7B4:
+ ldr r3, _080DD7BC
+ movs r5, 0x50
+ b _080DD7D0
+ .align 2, 0
+_080DD7BC: .4byte gSpriteTemplate_83DAD90
+_080DD7C0:
+ ldr r3, _080DD7C8
+ movs r5, 0x40
+ b _080DD7D0
+ .align 2, 0
+_080DD7C8: .4byte gSpriteTemplate_83DAD90
+_080DD7CC:
+ ldr r3, _080DD86C
+ movs r5, 0x30
+_080DD7D0:
+ ldrh r1, [r4, 0xC]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r4, 0xE]
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ lsls r0, 2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r0, r3, 0
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DD85C
+ ldr r1, _080DD870
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x2E]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r6, r2
+ movs r6, 0xA
+ ldrsh r3, [r4, r6]
+ lsls r1, r3, 1
+ adds r1, r3
+ adds r2, r1
+ strh r2, [r0, 0x32]
+ strh r7, [r0, 0x36]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r2, 1
+ movs r3, 0x10
+ negs r3, r3
+ adds r1, r3, 0
+ subs r1, r2
+ strh r1, [r0, 0x38]
+ ldrh r3, [r0, 0x4]
+ lsls r2, r3, 22
+ lsrs r2, 22
+ adds r2, r5
+ ldr r5, _080DD874
+ adds r1, r5, 0
+ ands r2, r1
+ ldr r1, _080DD878
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ bl sub_80786EC
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+_080DD85C:
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ negs r0, r0
+ strh r0, [r4, 0x20]
+_080DD864:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD86C: .4byte gSpriteTemplate_83DAD90
+_080DD870: .4byte gSprites
+_080DD874: .4byte 0x000003ff
+_080DD878: .4byte 0xfffffc00
+ thumb_func_end sub_80DD774
+
+ thumb_func_start sub_80DD87C
+sub_80DD87C: @ 80DD87C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD8AE
+ ldr r0, _080DD8B4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080DD8A8
+ ldr r0, _080DD8B8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1E]
+ subs r0, 0x1
+ strh r0, [r1, 0x1E]
+_080DD8A8:
+ adds r0, r4, 0
+ bl DestroySprite
+_080DD8AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD8B4: .4byte sub_80DD604
+_080DD8B8: .4byte gTasks
+ thumb_func_end sub_80DD87C
+
+ thumb_func_start sub_80DD8BC
+sub_80DD8BC: @ 80DD8BC
+ push {lr}
+ ldr r0, _080DD8E4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080DD8DE
+ movs r1, 0x1
+_080DD8DE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080DD8E4: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80DD8BC
+
+ thumb_func_start sub_80DD8E8
+sub_80DD8E8: @ 80DD8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD920
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x4]
+ subs r0, r1
+ strh r0, [r4, 0x34]
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DD924
+ str r0, [r4, 0x1C]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD920: .4byte gUnknown_03004B00
+_080DD924: .4byte sub_80DD928
+ thumb_func_end sub_80DD8E8
+
+ thumb_func_start sub_80DD928
+sub_80DD928: @ 80DD928
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080DD960
+ ldrh r3, [r2, 0x32]
+ adds r0, r1, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0
+ strh r1, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ ble _080DD972
+ movs r0, 0
+ strh r0, [r2, 0x34]
+ b _080DD972
+_080DD960:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD972
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DD972:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD928
+
+ thumb_func_start sub_80DD978
+sub_80DD978: @ 80DD978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DD9A0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DD994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DD994:
+ adds r0, r4, 0
+ bl sub_807941C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9A0: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DD978
+
+ thumb_func_start sub_80DD9A4
+sub_80DD9A4: @ 80DD9A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD9F0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DD9F4
+ ldrh r3, [r2]
+ ldrh r5, [r4, 0x20]
+ adds r1, r3, r5
+ strh r1, [r4, 0x20]
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r3, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r2, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080DD9F8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9F0: .4byte gUnknown_0202F7C9
+_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F8: .4byte sub_80DD9FC
+ thumb_func_end sub_80DD9A4
+
+ thumb_func_start sub_80DD9FC
+sub_80DD9FC: @ 80DD9FC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ ldrh r1, [r4, 0x24]
+ adds r1, r0
+ strh r1, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ strh r1, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8C
+ ble _080DDA46
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDA46:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD9FC
+
+ thumb_func_start sub_80DDA4C
+sub_80DDA4C: @ 80DDA4C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080DDA84
+ ldr r0, [r2]
+ cmp r0, 0x20
+ bgt _080DDA60
+ ldr r1, _080DDA88
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080DDA60:
+ ldr r2, [r2]
+ adds r0, r2, 0
+ subs r0, 0x21
+ cmp r0, 0x20
+ bhi _080DDA70
+ ldr r1, _080DDA88
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080DDA70:
+ cmp r2, 0x41
+ ble _080DDA7A
+ ldr r1, _080DDA88
+ movs r0, 0x2
+ strh r0, [r1, 0xE]
+_080DDA7A:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDA84: .4byte gUnknown_0202F7B8
+_080DDA88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80DDA4C
+
+ thumb_func_start sub_80DDA8C
+sub_80DDA8C: @ 80DDA8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080DDAE8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DDAAE
+ movs r0, 0
+ bl sub_80789D4
+ movs r0, 0xC8
+ strh r0, [r5, 0xA]
+_080DDAAE:
+ ldr r4, _080DDAEC
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x3
+ strh r0, [r5, 0xA]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x78
+ bne _080DDADA
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DDADA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDAE8: .4byte gTasks
+_080DDAEC: .4byte gUnknown_030041B8
+ thumb_func_end sub_80DDA8C
+
+ thumb_func_start sub_80DDAF0
+sub_80DDAF0: @ 80DDAF0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDB5C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDB1C
+ movs r0, 0
+ bl sub_80789D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080DDB60
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+_080DDB1C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x50
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldr r6, _080DDB60
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0x4
+ bl Cos
+ ldrh r4, [r4, 0xC]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r0, _080DDB64
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ ldr r0, _080DDB68
+ cmp r1, r0
+ bne _080DDB54
+ movs r0, 0
+ strh r0, [r6]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DDB54:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDB5C: .4byte gTasks
+_080DDB60: .4byte gUnknown_030041B8
+_080DDB64: .4byte gUnknown_03004B00
+_080DDB68: .4byte 0x00000fff
+ thumb_func_end sub_80DDAF0
+
+ thumb_func_start sub_80DDB6C
+sub_80DDB6C: @ 80DDB6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DDBC8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080DDBCC
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ ldr r0, _080DDBD0
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DDBD4
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDBC8: .4byte gUnknown_03004B00
+_080DDBCC: .4byte gUnknown_0202F7C9
+_080DDBD0: .4byte sub_80DDBD8
+_080DDBD4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDB6C
+
+ thumb_func_start sub_80DDBD8
+sub_80DDBD8: @ 80DDBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80DDCC8
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DDBF8
+ ldr r0, _080DDBF4
+ str r0, [r4, 0x1C]
+ b _080DDC42
+ .align 2, 0
+_080DDBF4: .4byte sub_80DDC4C
+_080DDBF8:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC30
+ cmp r2, 0xC4
+ ble _080DDC42
+_080DDC30:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC42
+ ldr r0, _080DDC48
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+_080DDC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDC48: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_80DDBD8
+
+ thumb_func_start sub_80DDC4C
+sub_80DDC4C: @ 80DDC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC92
+ cmp r2, 0xC4
+ ble _080DDC9E
+_080DDC92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC9E
+ movs r0, 0xC4
+ bl PlaySE
+_080DDC9E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDCBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DDCB8
+ str r0, [r4, 0x1C]
+ b _080DDCC2
+ .align 2, 0
+_080DDCB8: .4byte sub_807861C
+_080DDCBC:
+ adds r0, r4, 0
+ bl sub_80DDCC8
+_080DDCC2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDC4C
+
+ thumb_func_start sub_80DDCC8
+sub_80DDCC8: @ 80DDCC8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xFF
+ ble _080DDCEC
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ lsls r0, 16
+ ldr r1, _080DDCE8
+ cmp r0, r1
+ bne _080DDD4C
+ movs r0, 0
+ b _080DDD4A
+ .align 2, 0
+_080DDCE8: .4byte 0x010d0000
+_080DDCEC:
+ ldrh r1, [r3, 0x3C]
+ adds r4, r1, 0x1
+ strh r4, [r3, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _080DDD4C
+ ldr r1, _080DDD10
+ ands r1, r4
+ strh r1, [r3, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DDD14
+ adds r0, r2, 0x1
+ b _080DDD16
+ .align 2, 0
+_080DDD10: .4byte 0xffffff00
+_080DDD14:
+ subs r0, r2, 0x1
+_080DDD16:
+ strh r0, [r3, 0x3A]
+ ldr r2, _080DDD54
+ ldrh r1, [r3, 0x3A]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080DDD32
+ cmp r0, 0x10
+ bne _080DDD3E
+_080DDD32:
+ ldrh r0, [r3, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r3, 0x3C]
+_080DDD3E:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DDD4C
+ movs r0, 0x80
+ lsls r0, 1
+_080DDD4A:
+ strh r0, [r3, 0x3A]
+_080DDD4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DDCC8
+
+ thumb_func_start sub_80DDD58
+sub_80DDD58: @ 80DDD58
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080DDD74
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD74: .4byte sub_80DDD78
+ thumb_func_end sub_80DDD58
+
+ thumb_func_start sub_80DDD78
+sub_80DDD78: @ 80DDD78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _080DDDAC
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _080DDDB6
+_080DDDAC:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_080DDDB6:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _080DDDE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDDE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDD78
+
+ thumb_func_start sub_80DDDF0
+sub_80DDDF0: @ 80DDDF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080DDE68
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080DDE6C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, _080DDE70
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, _080DDE74
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, _080DDE78
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDE68: .4byte REG_BLDCNT
+_080DDE6C: .4byte gSprites
+_080DDE70: .4byte gTasks
+_080DDE74: .4byte gUnknown_03004B00
+_080DDE78: .4byte sub_80DDE7C
+ thumb_func_end sub_80DDDF0
+
+ thumb_func_start sub_80DDE7C
+sub_80DDE7C: @ 80DDE7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DDEC4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DDEBE
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xC]
+ adds r1, 0x1
+ strh r1, [r3, 0xC]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ ldr r2, _080DDEC8
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ bne _080DDEBE
+ ldr r0, _080DDECC
+ str r0, [r3]
+_080DDEBE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDEC4: .4byte gTasks
+_080DDEC8: .4byte REG_BLDALPHA
+_080DDECC: .4byte sub_80DDED0
+ thumb_func_end sub_80DDE7C
+
+ thumb_func_start sub_80DDED0
+sub_80DDED0: @ 80DDED0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDEF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DDEF8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080DDF36
+ .align 2, 0
+_080DDEF4: .4byte gTasks
+_080DDEF8:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ movs r6, 0
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _080DDF22
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _080DDF36
+_080DDF22:
+ adds r0, r1, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ ldr r0, _080DDF3C
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+_080DDF36:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDF3C: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDED0
+
+ thumb_func_start sub_80DDF40
+sub_80DDF40: @ 80DDF40
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, _080DDFDC
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, _080DDFE0
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DDFE4
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDFDC: .4byte gUnknown_0202F7C8
+_080DDFE0: .4byte gUnknown_03004B00
+_080DDFE4: .4byte sub_80DDFE8
+ thumb_func_end sub_80DDF40
+
+ thumb_func_start sub_80DDFE8
+sub_80DDFE8: @ 80DDFE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DE032
+ cmp r0, 0x1
+ bgt _080DDFFE
+ cmp r0, 0
+ beq _080DE008
+ b _080DE0F6
+_080DDFFE:
+ cmp r0, 0x2
+ beq _080DE09C
+ cmp r0, 0x3
+ beq _080DE0F0
+ b _080DE0F6
+_080DE008:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ b _080DE0E2
+_080DE032:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE098
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _080DE0E2
+ .align 2, 0
+_080DE098: .4byte gUnknown_0202F7C9
+_080DE09C:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE0EC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DE0E2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DE0F6
+ .align 2, 0
+_080DE0EC: .4byte gUnknown_0202F7C9
+_080DE0F0:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080DE0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDFE8
+
+ thumb_func_start sub_80DE0FC
+sub_80DE0FC: @ 80DE0FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080DE110
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE110: .4byte sub_80DE114
+ thumb_func_end sub_80DE0FC
+
+ thumb_func_start sub_80DE114
+sub_80DE114: @ 80DE114
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080DE1AA
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080DE13E
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_080DE13E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080DE14E
+ cmp r0, 0x1
+ beq _080DE158
+ movs r6, 0x1
+ b _080DE162
+_080DE14E:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _080DE162
+ b _080DE166
+_080DE158:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _080DE162
+ movs r5, 0x1
+_080DE162:
+ cmp r5, 0
+ beq _080DE198
+_080DE166:
+ ldrb r2, [r4]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DE1AA
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DE1AA
+_080DE198:
+ cmp r6, 0
+ beq _080DE1A4
+ adds r0, r3, 0
+ bl move_anim_8072740
+ b _080DE1AA
+_080DE1A4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_080DE1AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE114
+
+ thumb_func_start sub_80DE1B0
+sub_80DE1B0: @ 80DE1B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE1DC
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE1E0
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE2C0
+ .align 2, 0
+_080DE1DC: .4byte gTasks
+_080DE1E0:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r1, _080DE244
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DE248
+ ldrh r0, [r5, 0xE]
+ lsls r0, 8
+ ldrh r1, [r5, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080DE24C
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, _080DE250
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DE258
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE254
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _080DE276
+ .align 2, 0
+_080DE244: .4byte REG_BLDCNT
+_080DE248: .4byte REG_BLDALPHA
+_080DE24C: .4byte gSprites
+_080DE250: .4byte gUnknown_0202F7C9
+_080DE254: .4byte 0x0000ff70
+_080DE258:
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2C8
+_080DE276:
+ strh r1, [r0, 0x32]
+ ldr r4, _080DE2CC
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2D0
+ bl oamt_set_x3A_32
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080DE2D4
+ str r1, [r0]
+ ldr r0, _080DE2D8
+ str r0, [r5]
+_080DE2C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE2C8: .4byte 0x0000ff90
+_080DE2CC: .4byte gSprites
+_080DE2D0: .4byte SpriteCallbackDummy
+_080DE2D4: .4byte sub_8078394
+_080DE2D8: .4byte sub_80DE2DC
+ thumb_func_end sub_80DE1B0
+
+ thumb_func_start sub_80DE2DC
+sub_80DE2DC: @ 80DE2DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DE300
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE37C
+ cmp r0, 0x1
+ bgt _080DE304
+ cmp r0, 0
+ beq _080DE30A
+ b _080DE3A6
+ .align 2, 0
+_080DE300: .4byte gTasks
+_080DE304:
+ cmp r0, 0x2
+ beq _080DE3A0
+ b _080DE3A6
+_080DE30A:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _080DE328
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DE328
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_080DE328:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _080DE33E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DE33E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_080DE33E:
+ ldr r2, _080DE374
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DE3A6
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080DE3A6
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DE378
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE374: .4byte REG_BLDALPHA
+_080DE378: .4byte gSprites
+_080DE37C:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DE3A6
+ ldr r0, _080DE39C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE39C: .4byte REG_BLDCNT
+_080DE3A0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DE3A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE2DC
+
+ thumb_func_start sub_80DE3AC
+sub_80DE3AC: @ 80DE3AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080DE3CC
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080DE3D0
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE3CC: .4byte gTasks
+_080DE3D0: .4byte sub_80DE3D4
+ thumb_func_end sub_80DE3AC
+
+ thumb_func_start sub_80DE3D4
+sub_80DE3D4: @ 80DE3D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE40C
+ adds r5, r0, r1
+ ldr r0, _080DE410
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080DE400
+ b _080DE604
+_080DE400:
+ lsls r0, 2
+ ldr r1, _080DE414
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DE40C: .4byte gTasks
+_080DE410: .4byte gUnknown_0202F7C9
+_080DE414: .4byte _080DE418
+ .align 2, 0
+_080DE418:
+ .4byte _080DE42C
+ .4byte _080DE500
+ .4byte _080DE544
+ .4byte _080DE5AC
+ .4byte _080DE5E0
+_080DE42C:
+ ldr r7, _080DE460
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _080DE456
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE464
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_080DE456:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE60A
+ .align 2, 0
+_080DE460: .4byte 0x00002771
+_080DE464:
+ ldr r4, _080DE4E4
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ mov r3, r8
+ strh r3, [r5, 0xA]
+ strh r3, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _080DE4EC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4E8
+ b _080DE4F4
+ .align 2, 0
+_080DE4E4: .4byte gSprites
+_080DE4E8: .4byte 0x0000fdff
+_080DE4EC:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4FC
+_080DE4F4:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE604
+ .align 2, 0
+_080DE4FC: .4byte 0x0000fbff
+_080DE500:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, _080DE534
+ adds r0, r1
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ ldr r2, _080DE538
+ adds r1, r2
+ ldr r2, _080DE53C
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, _080DE540
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _080DE604
+ .align 2, 0
+_080DE534: .4byte gPlttBufferUnfaded
+_080DE538: .4byte gPlttBufferFaded
+_080DE53C: .4byte REG_BG0CNT
+_080DE540: .4byte 0x00003c0d
+_080DE544:
+ ldr r2, _080DE580
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080DE564
+ movs r2, 0
+_080DE564:
+ cmp r6, 0x1
+ bne _080DE584
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _080DE59C
+ .align 2, 0
+_080DE580: .4byte gSprites
+_080DE584:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_080DE59C:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_8089944
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _080DE604
+_080DE5AC:
+ cmp r6, 0x1
+ bne _080DE5C0
+ ldr r1, _080DE5B8
+ ldr r2, _080DE5BC
+ adds r0, r2, 0
+ b _080DE5C6
+ .align 2, 0
+_080DE5B8: .4byte REG_BLDCNT
+_080DE5BC: .4byte 0x00003f42
+_080DE5C0:
+ ldr r1, _080DE5D4
+ ldr r3, _080DE5D8
+ adds r0, r3, 0
+_080DE5C6:
+ strh r0, [r1]
+ ldr r1, _080DE5DC
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080DE604
+ .align 2, 0
+_080DE5D4: .4byte REG_BLDCNT
+_080DE5D8: .4byte 0x00003f44
+_080DE5DC: .4byte REG_BLDALPHA
+_080DE5E0:
+ cmp r6, 0x1
+ bne _080DE5F0
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE5FA
+_080DE5F0:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE5FA:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080DE618
+ str r0, [r5]
+_080DE604:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_080DE60A:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE618: .4byte sub_80DE61C
+ thumb_func_end sub_80DE3D4
+
+ thumb_func_start sub_80DE61C
+sub_80DE61C: @ 80DE61C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6A0
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _080DE654
+ ldr r1, _080DE6A4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080DE654:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080DE676
+ ldr r1, _080DE6A4
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080DE676:
+ ldr r2, _080DE6A8
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080DE698
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080DE6AC
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080DE698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE6A0: .4byte gTasks
+_080DE6A4: .4byte gSineTable
+_080DE6A8: .4byte REG_BLDALPHA
+_080DE6AC: .4byte sub_80DE6B0
+ thumb_func_end sub_80DE61C
+
+ thumb_func_start sub_80DE6B0
+sub_80DE6B0: @ 80DE6B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6E0
+ adds r4, r0, r1
+ ldr r0, _080DE6E4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE72C
+ cmp r0, 0x1
+ bgt _080DE6E8
+ cmp r0, 0
+ beq _080DE6EE
+ b _080DE7AA
+ .align 2, 0
+_080DE6E0: .4byte gTasks
+_080DE6E4: .4byte gUnknown_0202F7C9
+_080DE6E8:
+ cmp r0, 0x2
+ beq _080DE740
+ b _080DE7AA
+_080DE6EE:
+ ldr r1, _080DE710
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _080DE718
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE714
+ b _080DE720
+ .align 2, 0
+_080DE710: .4byte gUnknown_03004DC0
+_080DE714: .4byte 0x0000fdff
+_080DE718:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE728
+_080DE720:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE7AA
+ .align 2, 0
+_080DE728: .4byte 0x0000fbff
+_080DE72C:
+ ldrh r0, [r4, 0x10]
+ ldr r3, _080DE73C
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _080DE7AA
+ .align 2, 0
+_080DE73C: .4byte 0x00003c0d
+_080DE740:
+ ldr r3, _080DE788
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl obj_delete_but_dont_free_vram
+ ldr r0, _080DE78C
+ bl FreeSpritePaletteByTag
+ ldr r0, _080DE790
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ cmp r6, 0x1
+ bne _080DE794
+ subs r0, 0x52
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE79E
+ .align 2, 0
+_080DE788: .4byte gSprites
+_080DE78C: .4byte 0x00002771
+_080DE790: .4byte REG_BLDCNT
+_080DE794:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE79E:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DE7AA:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE6B0
+
+ thumb_func_start sub_80DE7B8
+sub_80DE7B8: @ 80DE7B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, _080DE7F4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DE800
+ ldr r4, _080DE7F8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE7FC
+ b _080DE824
+ .align 2, 0
+_080DE7F4: .4byte gUnknown_03004B00
+_080DE7F8: .4byte gUnknown_0202F7C8
+_080DE7FC: .4byte gUnknown_0202F7C9
+_080DE800:
+ ldr r4, _080DE8C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE8CC
+_080DE824:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, _080DE8D0
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, _080DE8D4
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE8C8: .4byte gUnknown_0202F7C9
+_080DE8CC: .4byte gUnknown_0202F7C8
+_080DE8D0: .4byte gUnknown_03004B00
+_080DE8D4: .4byte sub_80DE8D8
+ thumb_func_end sub_80DE7B8
+
+ thumb_func_start sub_80DE8D8
+sub_80DE8D8: @ 80DE8D8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080DE910
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080DE910
+ strh r0, [r2, 0x2E]
+_080DE910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE8D8
+
+ thumb_func_start sub_80DE918
+sub_80DE918: @ 80DE918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DEA68
+ adds r1, r0
+ str r1, [sp]
+ ldr r1, _080DEA6C
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, _080DEA70
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, _080DEA74
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DE988
+ b _080DEA88
+_080DE988:
+ movs r4, 0
+_080DE98A:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, _080DEA74
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _080DEA56
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _080DEA56
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DEA56
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, _080DEA78
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEA56
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, _080DEA7C
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, _080DEA70
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, _080DEA70
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEA70
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, _080DEA80
+ adds r5, r0
+ ldr r0, _080DEA84
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_080DEA56:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080DE98A
+ b _080DEB0C
+ .align 2, 0
+_080DEA68: .4byte gTasks
+_080DEA6C: .4byte REG_BLDCNT
+_080DEA70: .4byte gUnknown_03004B00
+_080DEA74: .4byte gUnknown_0202F7C8
+_080DEA78: .4byte gSpriteTemplate_83DAF08
+_080DEA7C: .4byte gSprites
+_080DEA80: .4byte gSprites + 0x1C
+_080DEA84: .4byte sub_80DE8D8
+_080DEA88:
+ ldr r0, _080DEB24
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEB0C
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, _080DEB28
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, _080DEB2C
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, _080DEB2C
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEB2C
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _080DEB30
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_080DEB0C:
+ ldr r0, _080DEB34
+ ldr r3, [sp]
+ str r0, [r3]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEB24: .4byte gSpriteTemplate_83DAF08
+_080DEB28: .4byte gSprites
+_080DEB2C: .4byte gUnknown_03004B00
+_080DEB30: .4byte sub_80DE8D8
+_080DEB34: .4byte sub_80DEB38
+ thumb_func_end sub_80DE918
+
+ thumb_func_start sub_80DEB38
+sub_80DEB38: @ 80DEB38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DEB5C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DEBEE
+ cmp r1, 0x1
+ bgt _080DEB60
+ cmp r1, 0
+ beq _080DEB6E
+ b _080DECA4
+ .align 2, 0
+_080DEB5C: .4byte gTasks
+_080DEB60:
+ cmp r1, 0x2
+ bne _080DEB66
+ b _080DEC80
+_080DEB66:
+ cmp r1, 0x3
+ bne _080DEB6C
+ b _080DEC94
+_080DEB6C:
+ b _080DECA4
+_080DEB6E:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DEBCE
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DEBCE
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DEBA4
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEBB2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEBB2
+_080DEBA4:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBB2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEBB2:
+ ldr r2, _080DEBE0
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _080DEBCE
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080DEBCE:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _080DECA4
+ .align 2, 0
+_080DEBE0: .4byte REG_BLDALPHA
+_080DEBE4:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DECA4
+ b _080DEC8C
+_080DEBEE:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DECA4
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DEC1E
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEC2C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEC2C
+_080DEC1E:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEC2C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEC2C:
+ ldr r2, _080DEC48
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DECA4
+ movs r5, 0
+ b _080DEC70
+ .align 2, 0
+_080DEC48: .4byte REG_BLDALPHA
+_080DEC4C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DEC7C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080DEC70:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080DEC4C
+ b _080DEC8C
+ .align 2, 0
+_080DEC7C: .4byte gSprites
+_080DEC80:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DECA4
+_080DEC8C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DECA4
+_080DEC94:
+ ldr r0, _080DECAC
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DECA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DECAC: .4byte REG_BLDCNT
+ thumb_func_end sub_80DEB38
+
+ thumb_func_start sub_80DECB0
+sub_80DECB0: @ 80DECB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080DECF8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080DECFC
+ strh r1, [r0]
+ ldr r1, _080DED00
+ ldr r2, _080DED04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080DED08
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DECF4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DED0C
+_080DECF4:
+ movs r6, 0x28
+ b _080DED0E
+ .align 2, 0
+_080DECF8: .4byte gUnknown_030042C4
+_080DECFC: .4byte gUnknown_03004240
+_080DED00: .4byte REG_WININ
+_080DED04: .4byte 0x00003f3f
+_080DED08: .4byte gUnknown_0202F7C8
+_080DED0C:
+ movs r6, 0xC8
+_080DED0E:
+ ldr r1, _080DED4C
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, _080DED50
+ movs r5, 0x28
+ ldr r0, _080DED54
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, _080DED58
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, _080DED5C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DED4C: .4byte gUnknown_030042C4
+_080DED50: .4byte gUnknown_03004240
+_080DED54: .4byte 0x00002828
+_080DED58: .4byte gTasks
+_080DED5C: .4byte sub_80DED60
+ thumb_func_end sub_80DECB0
+
+ thumb_func_start sub_80DED60
+sub_80DED60: @ 80DED60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DEE80
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _080DED9C
+ b _080DEE8C
+_080DED9C:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84
+ ldr r3, _080DEE88
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080DEEBA
+ .align 2, 0
+_080DEE80: .4byte gTasks
+_080DEE84: .4byte 0x3fb00000
+_080DEE88: .4byte 0x00000000
+_080DEE8C:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080DEEDC
+ str r0, [r4]
+_080DEEBA:
+ ldr r1, _080DEEE0
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _080DEEE4
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEEDC: .4byte sub_80DEEE8
+_080DEEE0: .4byte gUnknown_030042C4
+_080DEEE4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DED60
+
+ thumb_func_start sub_80DEEE8
+sub_80DEEE8: @ 80DEEE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080DEF28
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080DEF20
+ ldr r0, _080DEF2C
+ strh r2, [r0]
+ ldr r0, _080DEF30
+ strh r2, [r0]
+ ldr r0, _080DEF34
+ ldr r4, _080DEF38
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DEF20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF28: .4byte gPaletteFade
+_080DEF2C: .4byte gUnknown_030042C4
+_080DEF30: .4byte gUnknown_03004240
+_080DEF34: .4byte REG_WININ
+_080DEF38: .4byte 0x00003f3f
+ thumb_func_end sub_80DEEE8
+
+ thumb_func_start sub_80DEF3C
+sub_80DEF3C: @ 80DEF3C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DEF68
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DEF70
+ movs r2, 0x18
+ ldr r3, _080DEF6C
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _080DEF74
+ .align 2, 0
+_080DEF68: .4byte gUnknown_0202F7C8
+_080DEF6C: .4byte 0x0000fffe
+_080DEF70:
+ ldr r2, _080DEF90
+ movs r3, 0x2
+_080DEF74:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080DEF94
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF90: .4byte 0x0000ffe8
+_080DEF94: .4byte sub_80DEF98
+ thumb_func_end sub_80DEF3C
+
+ thumb_func_start sub_80DEF98
+sub_80DEF98: @ 80DEF98
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080DEFAA
+ subs r0, r1, 0x1
+ b _080DF00E
+_080DEFAA:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080DF010
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, _080DEFFC
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080DF000
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DF00C
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, _080DF004
+ str r0, [r3, 0x1C]
+ ldr r1, _080DF008
+ adds r0, r3, 0
+ bl oamt_set_x3A_32
+ b _080DF010
+ .align 2, 0
+_080DEFFC: .4byte 0x000003ff
+_080DF000: .4byte 0xfffffc00
+_080DF004: .4byte sub_80782D8
+_080DF008: .4byte sub_80DF018
+_080DF00C:
+ movs r0, 0x28
+_080DF00E:
+ strh r0, [r3, 0x2E]
+_080DF010:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DEF98
+
+ thumb_func_start sub_80DF018
+sub_80DF018: @ 80DF018
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _080DF044
+ ldr r1, _080DF040
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ strh r2, [r3, 0x32]
+ b _080DF082
+ .align 2, 0
+_080DF040: .4byte REG_BLDCNT
+_080DF044:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ bgt _080DF054
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080DF082
+_080DF054:
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ ldr r2, _080DF088
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ cmp r0, 0x10
+ bne _080DF082
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF08C
+ str r0, [r3, 0x1C]
+_080DF082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF088: .4byte REG_BLDALPHA
+_080DF08C: .4byte sub_80DF090
+ thumb_func_end sub_80DF018
+
+ thumb_func_start sub_80DF090
+sub_80DF090: @ 80DF090
+ push {lr}
+ ldr r1, _080DF0AC
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ ldr r1, _080DF0B0
+ strh r2, [r1]
+ ldr r1, _080DF0B4
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF0AC: .4byte REG_BLDCNT
+_080DF0B0: .4byte gUnknown_030042C4
+_080DF0B4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DF090
+
+ thumb_func_start sub_80DF0B8
+sub_80DF0B8: @ 80DF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldr r0, _080DF120
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF0DC
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080DF0DC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080DF12C
+ ldr r0, _080DF124
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DF128
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ b _080DF17E
+ .align 2, 0
+_080DF120: .4byte gUnknown_0202F7C8
+_080DF124: .4byte 0x0000050b
+_080DF128: .4byte REG_BLDCNT
+_080DF12C:
+ cmp r0, 0x1E
+ ble _080DF17E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r2, 0xFF
+ ands r2, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _080DF150
+ movs r3, 0x10
+_080DF150:
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _080DF15C
+ movs r2, 0
+_080DF15C:
+ ldr r1, _080DF184
+ lsls r0, r3, 8
+ orrs r0, r2
+ strh r0, [r1]
+ strh r0, [r4, 0x3A]
+ cmp r3, 0x10
+ bne _080DF17E
+ cmp r2, 0
+ bne _080DF17E
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF188
+ str r0, [r4, 0x1C]
+_080DF17E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF184: .4byte REG_BLDALPHA
+_080DF188: .4byte sub_80DF18C
+ thumb_func_end sub_80DF0B8
+
+ thumb_func_start sub_80DF18C
+sub_80DF18C: @ 80DF18C
+ push {lr}
+ ldr r1, _080DF1A0
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF1A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF18C
+
+ thumb_func_start sub_80DF1A4
+sub_80DF1A4: @ 80DF1A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DF23C
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r2, r8
+ strh r2, [r4, 0xA]
+ ldr r5, _080DF240
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ ldr r1, _080DF244
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0x18]
+ ldr r0, _080DF248
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF23C: .4byte gTasks
+_080DF240: .4byte gUnknown_0202F7C8
+_080DF244: .4byte REG_BLDCNT
+_080DF248: .4byte sub_80DF24C
+ thumb_func_end sub_80DF1A4
+
+ thumb_func_start sub_80DF24C
+sub_80DF24C: @ 80DF24C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080DF270
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080DF266
+ b _080DF3CC
+_080DF266:
+ lsls r0, 2
+ ldr r1, _080DF274
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DF270: .4byte gTasks
+_080DF274: .4byte _080DF278
+ .align 2, 0
+_080DF278:
+ .4byte _080DF290
+ .4byte _080DF300
+ .4byte _080DF342
+ .4byte _080DF356
+ .4byte _080DF3AC
+ .4byte _080DF3BC
+_080DF290:
+ movs r6, 0
+_080DF292:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, _080DF2F4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DF2E6
+ ldr r1, _080DF2F8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, _080DF2FC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DF2C8
+ movs r1, 0x1
+_080DF2C8:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080DF2E6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080DF292
+ b _080DF3B4
+ .align 2, 0
+_080DF2F4: .4byte gSpriteTemplate_83DAF80
+_080DF2F8: .4byte gSprites
+_080DF2FC: .4byte gUnknown_0202F7C8
+_080DF300:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF31E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _080DF32C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF32C
+_080DF31E:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _080DF32C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF32C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0xE
+ bne _080DF39C
+ cmp r2, 0x4
+ bne _080DF39C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF396
+_080DF342:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080DF3CC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF3B4
+_080DF356:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF374
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DF382
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF382
+_080DF374:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF382
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF382:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ bne _080DF39C
+ cmp r2, 0x10
+ bne _080DF39C
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DF396:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DF39C:
+ ldr r1, _080DF3A8
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ b _080DF3CC
+ .align 2, 0
+_080DF3A8: .4byte REG_BLDALPHA
+_080DF3AC:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DF3CC
+_080DF3B4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DF3CC
+_080DF3BC:
+ ldr r0, _080DF3D4
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DF3CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF3D4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF24C
+
+ thumb_func_start sub_80DF3D8
+sub_80DF3D8: @ 80DF3D8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DF3EA
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _080DF3EE
+_080DF3EA:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_080DF3EE:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _080DF430
+ ldr r2, _080DF42C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _080DF444
+ .align 2, 0
+_080DF42C: .4byte gTasks
+_080DF430:
+ ldr r2, _080DF498
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_080DF444:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, _080DF498
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080DF492
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080DF492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF498: .4byte gTasks
+ thumb_func_end sub_80DF3D8
+
+ thumb_func_start sub_80DF49C
+sub_80DF49C: @ 80DF49C
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, _080DF4E0
+ ldr r1, _080DF4E4
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, _080DF4E8
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, _080DF4EC
+ str r1, [r0, 0x1C]
+ ldr r2, _080DF4F0
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080DF4E0: .4byte gUnknown_02024BE0
+_080DF4E4: .4byte gUnknown_0202F7C8
+_080DF4E8: .4byte gUnknown_03004B00
+_080DF4EC: .4byte sub_80DF4F4
+_080DF4F0: .4byte gSprites
+ thumb_func_end sub_80DF49C
+
+ thumb_func_start sub_80DF4F4
+sub_80DF4F4: @ 80DF4F4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _080DF55C
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, _080DF554
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DF590
+ ldr r2, _080DF558
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _080DF590
+ .align 2, 0
+_080DF554: .4byte gSprites
+_080DF558: .4byte 0xffffff00
+_080DF55C:
+ ldr r2, _080DF598
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, _080DF59C
+ str r0, [r5, 0x1C]
+_080DF590:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF598: .4byte gSprites
+_080DF59C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF4F4
+
+ thumb_func_start sub_80DF5A0
+sub_80DF5A0: @ 80DF5A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DF5E8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF5F0
+ ldr r2, _080DF5EC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x6]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r2, 0x8]
+ adds r1, r2, 0
+ b _080DF5FA
+ .align 2, 0
+_080DF5E8: .4byte gUnknown_0202F7C8
+_080DF5EC: .4byte gUnknown_03004B00
+_080DF5F0:
+ ldr r1, _080DF630
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080DF5FA:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080DF634
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DF638
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF630: .4byte gUnknown_03004B00
+_080DF634: .4byte move_anim_8074EE0
+_080DF638: .4byte sub_8078504
+ thumb_func_end sub_80DF5A0
+
+ thumb_func_start sub_80DF63C
+sub_80DF63C: @ 80DF63C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080DF694
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080DF698
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF6A0
+ ldr r2, _080DF69C
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r1, r0
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x32]
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ b _080DF6CA
+ .align 2, 0
+_080DF694: .4byte gUnknown_0202F7C9
+_080DF698: .4byte gUnknown_0202F7C8
+_080DF69C: .4byte gUnknown_03004B00
+_080DF6A0:
+ ldr r1, _080DF6E4
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080DF6CA:
+ ldr r0, _080DF6E4
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DF6E8
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF6EC
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E8: .4byte sub_8078B34
+_080DF6EC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF63C
+
+ thumb_func_start sub_80DF6F0
+sub_80DF6F0: @ 80DF6F0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DF704
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DF70C
+ ldr r4, _080DF708
+ b _080DF70E
+ .align 2, 0
+_080DF704: .4byte gUnknown_03004B00
+_080DF708: .4byte gUnknown_0202F7C8
+_080DF70C:
+ ldr r4, _080DF750
+_080DF70E:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080DF754
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, _080DF758
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF75C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF750: .4byte gUnknown_0202F7C9
+_080DF754: .4byte gUnknown_03004B00
+_080DF758: .4byte sub_8078600
+_080DF75C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF6F0
+
+ thumb_func_start sub_80DF760
+sub_80DF760: @ 80DF760
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DF788
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF77A
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DF77A:
+ adds r0, r4, 0
+ bl sub_80DF63C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF788: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DF760
+
+ thumb_func_start sub_80DF78C
+sub_80DF78C: @ 80DF78C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r4, _080DF7E0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x36]
+ movs r0, 0x1
+ strh r0, [r6, 0x38]
+ ldr r0, _080DF7E4
+ ldrh r0, [r0]
+ strh r0, [r6, 0x3A]
+ ldr r4, _080DF7E8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r7, r0, 16
+ lsrs r5, r7, 16
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r5, r0
+ bls _080DF7EC
+ lsrs r0, r7, 17
+ b _080DF7EE
+ .align 2, 0
+_080DF7E0: .4byte gUnknown_0202F7C8
+_080DF7E4: .4byte gUnknown_03004B00
+_080DF7E8: .4byte gUnknown_02024C07
+_080DF7EC:
+ lsrs r0, r1, 17
+_080DF7EE:
+ strh r0, [r6, 0x3C]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Cos
+ strh r0, [r6, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ ldr r0, _080DF818
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF818: .4byte sub_80DF81C
+ thumb_func_end sub_80DF78C
+
+ thumb_func_start sub_80DF81C
+sub_80DF81C: @ 80DF81C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080DF82E
+ cmp r5, 0x1
+ beq _080DF89A
+ b _080DF91E
+_080DF82E:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF880
+ strh r5, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF880
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF880
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF880:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DF91E
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DF91E
+_080DF89A:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x95
+ bgt _080DF8C2
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x95
+ ble _080DF8C2
+ movs r0, 0x96
+ strh r0, [r4, 0x3C]
+_080DF8C2:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF90A
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF90A
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF90A
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF90A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DF91E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DF91E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF81C
+
+ thumb_func_start sub_80DF924
+sub_80DF924: @ 80DF924
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DF950
+ adds r4, r1, r0
+ ldr r0, _080DF954
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DF960
+ ldr r0, _080DF958
+ str r0, [sp]
+ ldr r0, _080DF95C
+ b _080DF966
+ .align 2, 0
+_080DF950: .4byte gTasks
+_080DF954: .4byte gUnknown_0202F7C8
+_080DF958: .4byte REG_BG1HOFS
+_080DF95C: .4byte gUnknown_030042C0
+_080DF960:
+ ldr r0, _080DF9DC
+ str r0, [sp]
+ ldr r0, _080DF9E0
+_080DF966:
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ ldr r0, _080DF9E4
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r5, [r0, 0x9]
+ ldr r0, _080DF9E8
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0xE]
+ adds r0, 0x20
+ strh r0, [r4, 0x10]
+ cmp r1, 0
+ bge _080DF996
+ strh r5, [r4, 0xE]
+_080DF996:
+ ldrh r3, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bgt _080DF9C4
+ ldr r5, _080DF9EC
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DF9A8:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ ble _080DF9A8
+_080DF9C4:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DF9F0
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF9DC: .4byte REG_BG2HOFS
+_080DF9E0: .4byte gUnknown_03004288
+_080DF9E4: .4byte 0xa2600001
+_080DF9E8: .4byte gUnknown_0202F7C8
+_080DF9EC: .4byte gUnknown_03004DE0
+_080DF9F0: .4byte sub_80DF9F4
+ thumb_func_end sub_80DF924
+
+ thumb_func_start sub_80DF9F4
+sub_80DF9F4: @ 80DF9F4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080DFA18
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _080DFAAA
+ lsls r0, 2
+ ldr r1, _080DFA1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DFA18: .4byte gTasks
+_080DFA1C: .4byte _080DFA20
+ .align 2, 0
+_080DFA20:
+ .4byte _080DFA34
+ .4byte _080DFA56
+ .4byte _080DFA66
+ .4byte _080DFA92
+ .4byte _080DFAA4
+_080DFA34:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ adds r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DFA8A
+ b _080DFA84
+_080DFA56:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DFA8A
+ b _080DFA84
+_080DFA66:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ subs r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFA8A
+_080DFA84:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_080DFA8A:
+ adds r0, r2, 0
+ bl sub_80DFAB0
+ b _080DFAAA
+_080DFA92:
+ ldr r1, _080DFAA0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080DFAAA
+ .align 2, 0
+_080DFAA0: .4byte gUnknown_03004DC0
+_080DFAA4:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DFAAA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF9F4
+
+ thumb_func_start sub_80DFAB0
+sub_80DFAB0: @ 80DFAB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r3, [r5, 0x12]
+ ldrh r4, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ bgt _080DFB06
+ ldr r7, _080DFB1C
+ mov r12, r7
+ ldr r0, _080DFB20
+ mov r8, r0
+ ldr r6, _080DFB24
+_080DFACE:
+ lsls r2, r4, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ lsls r0, r3, 1
+ add r0, r8
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x14
+ ldrsh r0, [r5, r7]
+ muls r0, r1
+ asrs r0, 7
+ ldrh r1, [r5, 0xC]
+ adds r0, r1
+ strh r0, [r2]
+ adds r3, 0x8
+ movs r0, 0xFF
+ ands r3, r0
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0x10
+ ldrsh r0, [r5, r7]
+ cmp r4, r0
+ ble _080DFACE
+_080DFB06:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x12]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFB1C: .4byte gUnknown_03004DE0
+_080DFB20: .4byte gSineTable
+_080DFB24: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80DFAB0
+
+ thumb_func_start sub_80DFB28
+sub_80DFB28: @ 80DFB28
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080DFBC8
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ adds r6, r0, 0
+ ldr r1, _080DFBCC
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r5, 0x8]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r4, 0x30]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r6, 0
+ bl Sin
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r5]
+ adds r3, r2, 0
+ muls r3, r1
+ adds r1, r3, 0
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ strh r1, [r4, 0x20]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DFBD0
+ str r0, [r4, 0x1C]
+ adds r4, 0x2E
+ ldr r2, _080DFBD4
+ movs r1, 0x6
+_080DFBB0:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080DFBB0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFBC8: .4byte gUnknown_03004B00
+_080DFBCC: .4byte gUnknown_0202F7C8
+_080DFBD0: .4byte sub_80DFBD8
+_080DFBD4: .4byte gUnknown_03000730
+ thumb_func_end sub_80DFB28
+
+ thumb_func_start sub_80DFBD8
+sub_80DFBD8: @ 80DFBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080DFC1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFC1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFBD8
+
+ thumb_func_start sub_80DFC24
+sub_80DFC24: @ 80DFC24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DFC58
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC5C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ ldr r0, _080DFC60
+ ldrb r0, [r0]
+ movs r2, 0x10
+ strh r2, [r1, 0xA]
+ ldr r1, _080DFC64
+ strh r2, [r1]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFC70
+ ldr r1, _080DFC68
+ ldr r2, _080DFC6C
+ b _080DFC74
+ .align 2, 0
+_080DFC58: .4byte gTasks
+_080DFC5C: .4byte gUnknown_03004B00
+_080DFC60: .4byte gUnknown_0202F7C8
+_080DFC64: .4byte REG_BLDALPHA
+_080DFC68: .4byte REG_BLDCNT
+_080DFC6C: .4byte 0x00003f42
+_080DFC70:
+ ldr r1, _080DFC8C
+ ldr r2, _080DFC90
+_080DFC74:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFC94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC98
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFC8C: .4byte REG_BLDCNT
+_080DFC90: .4byte 0x00003f44
+_080DFC94: .4byte gTasks
+_080DFC98: .4byte sub_80DFC9C
+ thumb_func_end sub_80DFC24
+
+ thumb_func_start sub_80DFC9C
+sub_80DFC9C: @ 80DFC9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080DFD04
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ cmp r0, r3
+ bne _080DFD18
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r2, 8
+ orrs r1, r0
+ movs r3, 0
+ strh r1, [r4, 0xA]
+ ldr r0, _080DFD08
+ strh r1, [r0]
+ strh r3, [r4, 0xC]
+ cmp r2, 0x10
+ bne _080DFD1E
+ ldr r2, _080DFD0C
+ ldr r1, _080DFD10
+ ldr r0, _080DFD14
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080DFD1E
+ .align 2, 0
+_080DFD04: .4byte gTasks
+_080DFD08: .4byte REG_BLDALPHA
+_080DFD0C: .4byte gSprites
+_080DFD10: .4byte gUnknown_02024BE0
+_080DFD14: .4byte gUnknown_0202F7C8
+_080DFD18:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080DFD1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFC9C
+
+ thumb_func_start sub_80DFD24
+sub_80DFD24: @ 80DFD24
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DFD48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080DFD4C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ movs r2, 0x80
+ lsls r2, 5
+ strh r2, [r1, 0xA]
+ ldr r0, _080DFD50
+ str r0, [r1]
+ ldr r0, _080DFD54
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080DFD48: .4byte gTasks
+_080DFD4C: .4byte gUnknown_03004B00
+_080DFD50: .4byte sub_80DFD58
+_080DFD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DFD24
+
+ thumb_func_start sub_80DFD58
+sub_80DFD58: @ 80DFD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsrs r1, r0, 8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ ldrb r3, [r2, 0x8]
+ cmp r0, r3
+ bne _080DFDB4
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r3, 8
+ orrs r1, r0
+ movs r0, 0
+ strh r1, [r2, 0xA]
+ ldr r5, _080DFDAC
+ strh r1, [r5]
+ strh r0, [r2, 0xC]
+ cmp r3, 0
+ bne _080DFDBA
+ ldr r0, _080DFDB0
+ strh r3, [r0]
+ strh r3, [r5]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DFDBA
+ .align 2, 0
+_080DFDA8: .4byte gTasks
+_080DFDAC: .4byte REG_BLDALPHA
+_080DFDB0: .4byte REG_BLDCNT
+_080DFDB4:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+_080DFDBA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFD58
+
+ thumb_func_start sub_80DFDC0
+sub_80DFDC0: @ 80DFDC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDE8
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFDEC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFDF8
+ ldr r1, _080DFDF0
+ ldr r2, _080DFDF4
+ b _080DFDFC
+ .align 2, 0
+_080DFDE8: .4byte REG_BLDALPHA
+_080DFDEC: .4byte gUnknown_0202F7C8
+_080DFDF0: .4byte REG_BLDCNT
+_080DFDF4: .4byte 0x00003f42
+_080DFDF8:
+ ldr r1, _080DFE0C
+ ldr r2, _080DFE10
+_080DFDFC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE0C: .4byte REG_BLDCNT
+_080DFE10: .4byte 0x00003f44
+ thumb_func_end sub_80DFDC0
+
+ thumb_func_start sub_80DFE14
+sub_80DFE14: @ 80DFE14
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080DFE80
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, _080DFE84
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ movs r0, 0x7E
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldr r0, _080DFE88
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DFE8C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE80: .4byte gUnknown_0202F7C9
+_080DFE84: .4byte gUnknown_0202F7C8
+_080DFE88: .4byte 0x0000ffd8
+_080DFE8C: .4byte sub_80DFE90
+ thumb_func_end sub_80DFE14
+
+ thumb_func_start sub_80DFE90
+sub_80DFE90: @ 80DFE90
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r2, r5, r0
+ strh r2, [r4, 0x34]
+ ldrh r3, [r4, 0x32]
+ ldrh r6, [r4, 0x36]
+ adds r1, r3, r6
+ strh r1, [r4, 0x36]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r6, 0x3C
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _080DFED2
+ adds r0, r2, r5
+ strh r0, [r4, 0x34]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080DFED2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r6, [r4, 0x26]
+ adds r0, r6
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ cmp r0, 0x7F
+ ble _080DFF02
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x14
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+_080DFF02:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFF14
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFF14:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFE90
+
+ thumb_func_start sub_80DFF1C
+sub_80DFF1C: @ 80DFF1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DFF50
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x32]
+ ldr r0, _080DFF54
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF50: .4byte gUnknown_03004B00
+_080DFF54: .4byte sub_80DFF58
+ thumb_func_end sub_80DFF1C
+
+ thumb_func_start sub_80DFF58
+sub_80DFF58: @ 80DFF58
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _080DFF8E
+ ldr r0, _080DFF94
+ str r0, [r2, 0x1C]
+_080DFF8E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF94: .4byte sub_80DFF98
+ thumb_func_end sub_80DFF58
+
+ thumb_func_start sub_80DFF98
+sub_80DFF98: @ 80DFF98
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0
+ strh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x38]
+ ldrh r2, [r3, 0x30]
+ subs r0, r2
+ strh r0, [r3, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFFCA
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080DFFCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFF98
+
+ thumb_func_start sub_80DFFD0
+sub_80DFFD0: @ 80DFFD0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080DFFE4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080DFFEC
+ ldr r0, _080DFFE8
+ b _080DFFEE
+ .align 2, 0
+_080DFFE4: .4byte gUnknown_03004B00
+_080DFFE8: .4byte gUnknown_0202F7C8
+_080DFFEC:
+ ldr r0, _080E001C
+_080DFFEE:
+ ldrb r5, [r0]
+ movs r6, 0x14
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ ldr r7, _080E0020
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080E0024
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080E004C
+ cmp r0, 0x1
+ bgt _080E0028
+ cmp r0, 0
+ beq _080E0032
+ b _080E00A0
+ .align 2, 0
+_080E001C: .4byte gUnknown_0202F7C9
+_080E0020: .4byte 0x000003ff
+_080E0024: .4byte 0xfffffc00
+_080E0028:
+ cmp r0, 0x2
+ beq _080E0066
+ cmp r0, 0x3
+ beq _080E007E
+ b _080E00A0
+_080E0032:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E004C:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E0066:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080E0094
+_080E007E:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+_080E0094:
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r6, 0xEC
+_080E00A0:
+ movs r0, 0x20
+ strh r0, [r4, 0x2E]
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0xC
+ strh r0, [r4, 0x36]
+ ldr r0, _080E00C8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E00CC
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E00C8: .4byte 0x0000fff4
+_080E00CC: .4byte sub_80E00D0
+ thumb_func_end sub_80DFFD0
+
+ thumb_func_start sub_80E00D0
+sub_80E00D0: @ 80E00D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E00E4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080E00E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E00D0
+
+ thumb_func_start sub_80E00EC
+sub_80E00EC: @ 80E00EC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E0150
+ adds r5, r1, r0
+ ldr r4, _080E0154
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ strh r1, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r5, 0x24]
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E015C
+ ldr r0, _080E0158
+ b _080E015E
+ .align 2, 0
+_080E0150: .4byte gTasks
+_080E0154: .4byte gUnknown_0202F7C8
+_080E0158: .4byte 0x0000fff4
+_080E015C:
+ ldr r0, _080E01A8
+_080E015E:
+ strh r0, [r5, 0x18]
+ ldr r0, _080E01AC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E01C4
+ add r4, sp, 0xC
+ adds r0, r4, 0
+ bl sub_8078914
+ ldr r0, _080E01B0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E01B4
+ ldr r2, _080E01B8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldrb r1, [r4, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E01BC
+ str r0, [sp]
+ movs r7, 0x2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E01C0
+ b _080E01EE
+ .align 2, 0
+_080E01A8: .4byte 0x0000ffc0
+_080E01AC: .4byte gUnknown_0202F7C8
+_080E01B0: .4byte gUnknown_030041B4
+_080E01B4: .4byte REG_BLDCNT
+_080E01B8: .4byte 0x00003f42
+_080E01BC: .4byte REG_BG1VOFS
+_080E01C0: .4byte gUnknown_03004288
+_080E01C4:
+ ldr r0, _080E0278
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E027C
+ ldr r2, _080E0280
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E0284
+ str r0, [sp]
+ movs r7, 0x4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E0288
+_080E01EE:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080E01F4:
+ ldr r0, _080E028C
+ str r0, [sp, 0x4]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ strh r1, [r5, 0x1E]
+ movs r0, 0x10
+ strh r0, [r5, 0x20]
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ movs r0, 0x3
+ bl sub_80E08CC
+ movs r3, 0
+ ldr r4, _080E0290
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080E0220:
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E0220
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r1, _080E0294
+ movs r0, 0x3F
+ eors r7, r0
+ movs r2, 0xFC
+ lsls r2, 6
+ adds r0, r2, 0
+ orrs r7, r0
+ strh r7, [r1]
+ subs r1, 0x2
+ adds r2, 0x3F
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E0298
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E029C
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080E02A0
+ str r0, [r5]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0278: .4byte gUnknown_03004280
+_080E027C: .4byte REG_BLDCNT
+_080E0280: .4byte 0x00003f44
+_080E0284: .4byte REG_BG2VOFS
+_080E0288: .4byte gUnknown_030042C0
+_080E028C: .4byte 0xa2600001
+_080E0290: .4byte gUnknown_03004DE0
+_080E0294: .4byte REG_WINOUT
+_080E0298: .4byte gUnknown_030042C4
+_080E029C: .4byte gUnknown_03004240
+_080E02A0: .4byte sub_80E02A4
+ thumb_func_end sub_80E00EC
+
+ thumb_func_start sub_80E02A4
+sub_80E02A4: @ 80E02A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E02C8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E02BE
+ b _080E03B6
+_080E02BE:
+ lsls r0, 2
+ ldr r1, _080E02CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E02C8: .4byte gTasks
+_080E02CC: .4byte _080E02D0
+ .align 2, 0
+_080E02D0:
+ .4byte _080E02E4
+ .4byte _080E0344
+ .4byte _080E035E
+ .4byte _080E039C
+ .4byte _080E03B0
+_080E02E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E03B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0314
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC
+ beq _080E0322
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0322
+_080E0314:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _080E0322
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0322:
+ ldr r2, _080E0340
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _080E03B6
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0340: .4byte REG_BLDALPHA
+_080E0344:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _080E03B6
+ b _080E03A2
+_080E035E:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x4
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r2, r0, 0x4
+ strh r2, [r4, 0x26]
+ lsls r1, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080E0380
+ strh r2, [r4, 0x24]
+_080E0380:
+ ldr r3, _080E0398
+ ldrh r2, [r4, 0x24]
+ lsls r0, r2, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r3]
+ lsls r2, 16
+ lsls r1, 16
+ cmp r2, r1
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0398: .4byte gUnknown_030042C4
+_080E039C:
+ ldr r1, _080E03AC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E03A2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E03B6
+ .align 2, 0
+_080E03AC: .4byte gUnknown_03004DC0
+_080E03B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E03B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E02A4
+
+ thumb_func_start sub_80E03BC
+sub_80E03BC: @ 80E03BC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080E03E4
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080E03D8
+ b _080E05F2
+_080E03D8:
+ lsls r0, 2
+ ldr r1, _080E03E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E03E4: .4byte gTasks
+_080E03E8: .4byte _080E03EC
+ .align 2, 0
+_080E03EC:
+ .4byte _080E0400
+ .4byte _080E048C
+ .4byte _080E04D0
+ .4byte _080E053C
+ .4byte _080E05A4
+_080E0400:
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E043C
+ ldr r0, _080E042C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0430
+ strh r1, [r0]
+ ldr r0, _080E0434
+ ldr r2, _080E0438
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E05F2
+ .align 2, 0
+_080E042C: .4byte gUnknown_030042C4
+_080E0430: .4byte gUnknown_03004240
+_080E0434: .4byte REG_WININ
+_080E0438: .4byte 0x00003f3f
+_080E043C:
+ ldr r0, _080E045C
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E046C
+ ldr r1, _080E0460
+ ldr r2, _080E0464
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0468
+ b _080E0476
+ .align 2, 0
+_080E045C: .4byte gUnknown_0202F7C9
+_080E0460: .4byte REG_BLDCNT
+_080E0464: .4byte 0x00003f42
+_080E0468: .4byte gUnknown_03004288
+_080E046C:
+ ldr r1, _080E0480
+ ldr r2, _080E0484
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0488
+_080E0476:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _080E0590
+ .align 2, 0
+_080E0480: .4byte REG_BLDCNT
+_080E0484: .4byte 0x00003f44
+_080E0488: .4byte gUnknown_030042C0
+_080E048C:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E04B4
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _080E04B0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ b _080E04C4
+ .align 2, 0
+_080E04B0: .4byte gUnknown_030041B4
+_080E04B4:
+ ldr r0, _080E04CC
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+_080E04C4:
+ movs r0, 0x3
+ bl sub_80E08CC
+ b _080E0590
+ .align 2, 0
+_080E04CC: .4byte gUnknown_03004280
+_080E04D0:
+ ldr r4, _080E051C
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x4
+ strh r1, [r5, 0x24]
+ adds r0, 0x4
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0524
+ ldr r0, _080E0520
+ b _080E0526
+ .align 2, 0
+_080E051C: .4byte gUnknown_0202F7C9
+_080E0520: .4byte 0x0000fff4
+_080E0524:
+ ldr r0, _080E0538
+_080E0526:
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ movs r0, 0x8
+ strh r0, [r5, 0x20]
+ b _080E0590
+ .align 2, 0
+_080E0538: .4byte 0x0000ffc0
+_080E053C:
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ bne _080E054C
+ ldr r0, _080E0548
+ b _080E054E
+ .align 2, 0
+_080E0548: .4byte REG_BG1VOFS
+_080E054C:
+ ldr r0, _080E0598
+_080E054E:
+ str r0, [sp, 0xC]
+ movs r3, 0
+ add r4, sp, 0xC
+ ldr r6, _080E059C
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r7, r6, r0
+_080E055C:
+ lsls r1, r3, 1
+ adds r2, r1, r6
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r2]
+ adds r1, r7
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E055C
+ ldr r1, _080E05A0
+ str r1, [r4, 0x4]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ ldr r0, [sp, 0xC]
+ ldr r2, [r4, 0x8]
+ bl sub_80895F8
+_080E0590:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080E05F2
+ .align 2, 0
+_080E0598: .4byte REG_BG2VOFS
+_080E059C: .4byte gUnknown_03004DE0
+_080E05A0: .4byte 0xa2600001
+_080E05A4:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E05BC
+ ldr r1, _080E05B4
+ ldr r2, _080E05B8
+ b _080E05C0
+ .align 2, 0
+_080E05B4: .4byte REG_WINOUT
+_080E05B8: .4byte 0x00003f3d
+_080E05BC:
+ ldr r1, _080E05FC
+ ldr r2, _080E0600
+_080E05C0:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0604
+ ldr r2, _080E0608
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E060C
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0610
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldr r1, _080E0614
+ ldr r2, _080E0618
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E061C
+ str r0, [r5]
+_080E05F2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E05FC: .4byte REG_WINOUT
+_080E0600: .4byte 0x00003f3b
+_080E0604: .4byte REG_WININ
+_080E0608: .4byte 0x00003f3f
+_080E060C: .4byte gUnknown_030042C4
+_080E0610: .4byte gUnknown_03004240
+_080E0614: .4byte REG_BLDALPHA
+_080E0618: .4byte 0x0000080c
+_080E061C: .4byte sub_80E0620
+ thumb_func_end sub_80E03BC
+
+ thumb_func_start sub_80E0620
+sub_80E0620: @ 80E0620
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E0644
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E063A
+ b _080E0784
+_080E063A:
+ lsls r0, 2
+ ldr r1, _080E0648
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0644: .4byte gTasks
+_080E0648: .4byte _080E064C
+ .align 2, 0
+_080E064C:
+ .4byte _080E0660
+ .4byte _080E068C
+ .4byte _080E06F4
+ .4byte _080E0754
+ .4byte _080E0768
+_080E0660:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E0676
+ strh r2, [r4, 0x12]
+_080E0676:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080E068A
+ b _080E0784
+_080E068A:
+ b _080E075A
+_080E068C:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ cmp r0, 0x3F
+ bgt _080E06A8
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x4
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x4
+ strh r0, [r4, 0x26]
+ b _080E06AC
+_080E06A8:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+_080E06AC:
+ ldr r2, _080E06F0
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E06CE
+ strh r2, [r4, 0x10]
+_080E06CE:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E0784
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080E075A
+ .align 2, 0
+_080E06F0: .4byte gUnknown_030042C4
+_080E06F4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0724
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E0732
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0732
+_080E0724:
+ ldrh r1, [r4, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _080E0732
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0732:
+ ldr r2, _080E0750
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E0784
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080E0784
+ b _080E075A
+ .align 2, 0
+_080E0750: .4byte REG_BLDALPHA
+_080E0754:
+ ldr r1, _080E0764
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E075A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E0784
+ .align 2, 0
+_080E0764: .4byte gUnknown_03004DC0
+_080E0768:
+ ldr r0, _080E078C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0790
+ strh r1, [r0]
+ ldr r0, _080E0794
+ ldr r3, _080E0798
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E0784:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E078C: .4byte gUnknown_030042C4
+_080E0790: .4byte gUnknown_03004240
+_080E0794: .4byte REG_WININ
+_080E0798: .4byte 0x00003f3f
+ thumb_func_end sub_80E0620
+
+ thumb_func_start sub_80E079C
+sub_80E079C: @ 80E079C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r4, [r6, 0x10]
+ subs r0, r4
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080E0890
+ movs r2, 0x22
+ ldrsh r0, [r6, r2]
+ bl __divsi3
+ mov r8, r0
+ movs r3, 0x14
+ ldrsh r0, [r6, r3]
+ lsls r5, r0, 8
+ lsls r0, r4, 16
+ movs r4, 0
+ cmp r0, 0
+ ble _080E07FC
+ ldr r0, _080E0888
+ mov r12, r0
+ ldr r7, _080E088C
+_080E07D0:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ adds r1, r2, 0
+ subs r1, 0x9F
+ ldrh r0, [r6, 0x1C]
+ subs r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ blt _080E07D0
+_080E07FC:
+ ldrh r4, [r6, 0x10]
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bgt _080E0846
+ ldr r0, _080E0888
+ mov r12, r0
+ ldr r7, _080E088C
+_080E0810:
+ asrs r4, r3, 16
+ cmp r4, 0
+ blt _080E0832
+ asrs r1, r5, 8
+ subs r1, r4
+ lsls r3, r4, 1
+ ldrb r2, [r7, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r6, 0x1C]
+ adds r1, r2
+ strh r1, [r3]
+_080E0832:
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080E0810
+_080E0846:
+ movs r3, 0x1C
+ ldrsh r0, [r6, r3]
+ adds r0, 0x9F
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ subs r5, r0, r1
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bge _080E08BE
+ ldr r7, _080E0888
+ ldr r4, _080E088C
+_080E085E:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080E0876
+ lsls r2, r3, 1
+ ldrb r1, [r4, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ strh r5, [r2]
+ subs r5, 0x1
+_080E0876:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _080E085E
+ b _080E08BE
+ .align 2, 0
+_080E0888: .4byte gUnknown_03004DE0
+_080E088C: .4byte gUnknown_03004DC0
+_080E0890:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ adds r5, r0, 0
+ adds r5, 0x9F
+ movs r4, 0
+ ldr r3, _080E08C8
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r6, r3, r2
+_080E08A2:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ strh r5, [r1]
+ adds r2, r6
+ strh r5, [r2]
+ subs r5, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080E08A2
+_080E08BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E08C8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80E079C
+
+ thumb_func_start sub_80E08CC
+sub_80E08CC: @ 80E08CC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ ldr r7, _080E0914
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r0, 0xD
+ negs r0, r0
+ adds r6, r0, 0
+_080E08E2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080E0902
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r0, r6
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_080E0902:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E08E2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0914: .4byte gSprites
+ thumb_func_end sub_80E08CC
+
+ thumb_func_start sub_80E0918
+sub_80E0918: @ 80E0918
+ 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
+ ldr r6, _080E09B8
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldrb r0, [r6]
+ adds r1, r4, 0
+ bl sub_8076034
+ ldr r0, _080E09BC
+ mov r9, r0
+ ldr r0, _080E09C0
+ mov r8, r0
+ ldrb r0, [r6]
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r7, 0x5
+ negs r7, r7
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E09A2
+ ldrb r0, [r6]
+ eors r0, r5
+ movs r1, 0x1
+ eors r4, r1
+ adds r1, r4, 0
+ bl sub_8076034
+ ldrb r0, [r6]
+ eors r0, r5
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+_080E09A2:
+ mov r0, r10
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E09B8: .4byte gUnknown_0202F7C8
+_080E09BC: .4byte gSprites
+_080E09C0: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E0918
+
+ thumb_func_start sub_80E09C4
+sub_80E09C4: @ 80E09C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080E0A0C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r5, 0
+ bl sub_8076464
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0A00
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080E0A00:
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A0C: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E09C4
+
+ thumb_func_start sub_80E0A10
+sub_80E0A10: @ 80E0A10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E0A40
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080E0A44
+ str r0, [r4, 0x1C]
+ ldr r1, _080E0A48
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A40: .4byte gUnknown_03004B00
+_080E0A44: .4byte sub_8078600
+_080E0A48: .4byte move_anim_8072740
+ thumb_func_end sub_80E0A10
+
+ thumb_func_start sub_80E0A4C
+sub_80E0A4C: @ 80E0A4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E0B50
+ strh r7, [r0]
+ ldr r0, _080E0B54
+ strh r7, [r0]
+ ldr r1, _080E0B58
+ ldr r2, _080E0B5C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B60
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0B64
+ ldr r2, _080E0B68
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B6C
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r5, _080E0B70
+ ldrb r1, [r5]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r5, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0AC4
+ ldrb r0, [r5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5]
+_080E0AC4:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B40
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+ ldr r4, _080E0B74
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E0AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+_080E0AF4:
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E0B40
+ ldr r3, _080E0B78
+ ldr r1, _080E0B7C
+ ldrb r0, [r4]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5]
+ movs r7, 0x1
+_080E0B40:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B84
+ ldr r0, _080E0B80
+ ldrh r5, [r0]
+ b _080E0BCC
+ .align 2, 0
+_080E0B50: .4byte gUnknown_030042C4
+_080E0B54: .4byte gUnknown_03004240
+_080E0B58: .4byte REG_WININ
+_080E0B5C: .4byte 0x00003f3f
+_080E0B60: .4byte 0x00003f3d
+_080E0B64: .4byte REG_BLDCNT
+_080E0B68: .4byte 0x00003f42
+_080E0B6C: .4byte 0x00000c08
+_080E0B70: .4byte REG_BG1CNT
+_080E0B74: .4byte gUnknown_0202F7C8
+_080E0B78: .4byte gSprites
+_080E0B7C: .4byte gUnknown_02024BE0
+_080E0B80: .4byte 0x02019348
+_080E0B84:
+ ldr r4, _080E0BA4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0BB0
+ ldr r1, _080E0BA8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0BAC
+ b _080E0BC0
+ .align 2, 0
+_080E0BA4: .4byte gUnknown_0202F7C8
+_080E0BA8: .4byte gUnknown_02024A6A
+_080E0BAC: .4byte gEnemyParty
+_080E0BB0:
+ ldr r1, _080E0C58
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0C5C
+_080E0BC0:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E0BCC:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E0C60
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E0C64
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E0C68
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E0C6C
+ bl LZDecompressVram
+ ldr r0, _080E0C70
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E0C74
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r2, _080E0C78
+ ldr r0, _080E0C7C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x60
+ strh r0, [r2]
+ ldr r2, _080E0C80
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ ldr r2, _080E0C84
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E0C88
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_8079108
+ b _080E0C94
+ .align 2, 0
+_080E0C58: .4byte gUnknown_02024A6A
+_080E0C5C: .4byte gPlayerParty
+_080E0C60: .4byte gUnknown_0202F7C8
+_080E0C64: .4byte 0x040000d4
+_080E0C68: .4byte 0x85000400
+_080E0C6C: .4byte gUnknown_08D1D574
+_080E0C70: .4byte gUnknown_08D1D410
+_080E0C74: .4byte gUnknown_08D1D54C
+_080E0C78: .4byte gUnknown_030042C0
+_080E0C7C: .4byte gSprites
+_080E0C80: .4byte gUnknown_030041B4
+_080E0C84: .4byte gUnknown_03004B00
+_080E0C88:
+ lsls r0, r1, 4
+ ldrh r3, [r2, 0x4]
+ movs r1, 0x10
+ movs r2, 0xB
+ bl BlendPalette
+_080E0C94:
+ ldr r1, _080E0CC4
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r2, _080E0CC8
+ ldrh r1, [r2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E0CCC
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0CC4: .4byte gTasks
+_080E0CC8: .4byte gUnknown_03004B00
+_080E0CCC: .4byte sub_80E0CD0
+ thumb_func_end sub_80E0A4C
+
+ thumb_func_start sub_80E0CD0
+sub_80E0CD0: @ 80E0CD0
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080E0DF0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r2, _080E0DF4
+ ldrh r3, [r2]
+ subs r1, r3, 0x4
+ strh r1, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x80
+ bne _080E0DE8
+ strh r5, [r4, 0x1C]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ strh r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080E0DE8
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E0DF8
+ strh r5, [r0]
+ ldr r0, _080E0DFC
+ strh r5, [r0]
+ ldr r0, _080E0E00
+ ldr r2, _080E0E04
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0D40
+ ldr r2, _080E0E08
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E0D40:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E0E0C
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080E0E10
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080E0D84
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_8079108
+_080E0D84:
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E0E14
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E0E18
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E0DE2
+ ldr r2, _080E0E1C
+ ldr r0, _080E0E20
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E0DE2:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080E0DE8:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0DF0: .4byte gTasks
+_080E0DF4: .4byte gUnknown_030042C0
+_080E0DF8: .4byte gUnknown_030042C4
+_080E0DFC: .4byte gUnknown_03004240
+_080E0E00: .4byte REG_WININ
+_080E0E04: .4byte 0x00003f3f
+_080E0E08: .4byte REG_BG1CNT
+_080E0E0C: .4byte REG_BLDCNT
+_080E0E10: .4byte gSprites
+_080E0E14: .4byte 0x040000d4
+_080E0E18: .4byte 0x85000200
+_080E0E1C: .4byte gUnknown_02024BE0
+_080E0E20: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E0CD0
+
+ thumb_func_start sub_80E0E24
+sub_80E0E24: @ 80E0E24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E0E44
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0x7
+ bhi _080E0E88
+ lsls r0, r1, 2
+ ldr r1, _080E0E48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0E44: .4byte gUnknown_03004B00
+_080E0E48: .4byte _080E0E4C
+ .align 2, 0
+_080E0E4C:
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E78
+ .4byte _080E0E7C
+ .4byte _080E0E80
+ .4byte _080E0E84
+_080E0E6C:
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080E0E8A
+_080E0E78:
+ movs r4, 0
+ b _080E0E90
+_080E0E7C:
+ movs r4, 0x2
+ b _080E0E90
+_080E0E80:
+ movs r4, 0x1
+ b _080E0E90
+_080E0E84:
+ movs r4, 0x3
+ b _080E0E90
+_080E0E88:
+ movs r2, 0xFF
+_080E0E8A:
+ movs r0, 0
+ cmp r0, 0
+ beq _080E0EB6
+_080E0E90:
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0EB4
+ ldr r0, _080E0EB0
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ b _080E0EB6
+ .align 2, 0
+_080E0EB0: .4byte gUnknown_02024BE0
+_080E0EB4:
+ movs r2, 0xFF
+_080E0EB6:
+ cmp r2, 0xFF
+ beq _080E0ED2
+ ldr r1, _080E0EE0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ ldr r1, _080E0EE4
+ ldrb r1, [r1, 0x2]
+ bl sub_8079108
+_080E0ED2:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0EE0: .4byte gSprites
+_080E0EE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0E24
+
+ thumb_func_start sub_80E0EE8
+sub_80E0EE8: @ 80E0EE8
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E0F14
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _080E0EFC
+ ldr r1, _080E0F18
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080E0EFC:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ bne _080E0F08
+ ldr r1, _080E0F18
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080E0F08:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F14: .4byte gUnknown_0202F7C4
+_080E0F18: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0EE8
+
+ thumb_func_start sub_80E0F1C
+sub_80E0F1C: @ 80E0F1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E0F74
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080E0F78
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080E0F7C
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E0F80
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F74: .4byte gUnknown_0202F7C8
+_080E0F78: .4byte gUnknown_0202F7C9
+_080E0F7C: .4byte 0x0000ffd8
+_080E0F80: .4byte sub_80E0F84
+ thumb_func_end sub_80E0F1C
+
+ thumb_func_start sub_80E0F84
+sub_80E0F84: @ 80E0F84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FD8
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _080E0FE0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ movs r0, 0x28
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E0FE4
+ str r0, [r5, 0x1C]
+_080E0FD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0FE0: .4byte gUnknown_0202F7C8
+_080E0FE4: .4byte sub_80E0FE8
+ thumb_func_end sub_80E0F84
+
+ thumb_func_start sub_80E0FE8
+sub_80E0FE8: @ 80E0FE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FFC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E0FFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E0FE8
+
+ thumb_func_start sub_80E1004
+sub_80E1004: @ 80E1004
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080E1064
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E1024
+ ldr r1, _080E1068
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1024:
+ ldr r4, _080E1068
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080E106C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1070
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1074
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1064: .4byte gUnknown_0202F7C8
+_080E1068: .4byte gUnknown_03004B00
+_080E106C: .4byte gUnknown_0202F7C9
+_080E1070: .4byte sub_8078B34
+_080E1074: .4byte move_anim_8072740
+ thumb_func_end sub_80E1004
+
+ thumb_func_start sub_80E1078
+sub_80E1078: @ 80E1078
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080E10F8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl Random
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ bl Random
+ ands r4, r0
+ adds r1, r5, 0
+ cmp r1, 0x10
+ ble _080E10C0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E10C0:
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ cmp r1, 0x10
+ ble _080E10D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E10D0:
+ ldr r0, _080E10FC
+ ldrh r0, [r0, 0x4]
+ strh r0, [r6, 0x2E]
+ mov r1, r8
+ adds r0, r1, r5
+ strh r0, [r6, 0x32]
+ adds r0, r7, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1100
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1104
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E10F8: .4byte gUnknown_0202F7C9
+_080E10FC: .4byte gUnknown_03004B00
+_080E1100: .4byte sub_8078B34
+_080E1104: .4byte move_anim_8074EE0
+ thumb_func_end sub_80E1078
+
+ thumb_func_start sub_80E1108
+sub_80E1108: @ 80E1108
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ldr r3, _080E1168
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E116C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r6, _080E1170
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080E117C
+ ldr r4, _080E1174
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r6, 0x4]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ ble _080E1162
+ movs r1, 0x1
+_080E1162:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080E1178
+ b _080E118A
+ .align 2, 0
+_080E1168: .4byte 0x000003ff
+_080E116C: .4byte 0xfffffc00
+_080E1170: .4byte gUnknown_03004B00
+_080E1174: .4byte gUnknown_0202F7C8
+_080E1178: .4byte sub_80E1198
+_080E117C:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x22]
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldr r0, _080E1194
+_080E118A:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1194: .4byte sub_80E11D4
+ thumb_func_end sub_80E1108
+
+ thumb_func_start sub_80E1198
+sub_80E1198: @ 80E1198
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E11B6
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+_080E11B6:
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E11CE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E11CE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1198
+
+ thumb_func_start sub_80E11D4
+sub_80E11D4: @ 80E11D4
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080E11E6
+ cmp r1, 0x1
+ beq _080E11FC
+ b _080E123E
+_080E11E6:
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x4
+ strh r0, [r3, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E123E
+ strh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080E123E
+_080E11FC:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E123E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080E123E
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E123E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E11D4
+
+ thumb_func_start sub_80E1244
+sub_80E1244: @ 80E1244
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1264
+ adds r1, r0, r1
+ ldr r0, _080E1268
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E1270
+ ldr r0, _080E126C
+ b _080E1272
+ .align 2, 0
+_080E1264: .4byte gTasks
+_080E1268: .4byte gUnknown_03004B00
+_080E126C: .4byte sub_80E1284
+_080E1270:
+ ldr r0, _080E1280
+_080E1272:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1280: .4byte sub_80E143C
+ thumb_func_end sub_80E1244
+
+ thumb_func_start sub_80E1284
+sub_80E1284: @ 80E1284
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E12A8
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E129E
+ b _080E1432
+_080E129E:
+ lsls r0, 2
+ ldr r1, _080E12AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E12A8: .4byte gTasks
+_080E12AC: .4byte _080E12B0
+ .align 2, 0
+_080E12B0:
+ .4byte _080E12C4
+ .4byte _080E134C
+ .4byte _080E135C
+ .4byte _080E1400
+ .4byte _080E1414
+_080E12C4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E12EC
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E12F8
+ ldr r0, _080E12F0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E12F4
+ b _080E1300
+ .align 2, 0
+_080E12EC: .4byte gUnknown_0202F7C8
+_080E12F0: .4byte gUnknown_030042C0
+_080E12F4: .4byte gUnknown_030041B4
+_080E12F8:
+ ldr r0, _080E133C
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E1340
+_080E1300:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E1344
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ cmp r1, 0
+ bge _080E1322
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080E1322:
+ ldr r2, _080E1348
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080E1406
+ .align 2, 0
+_080E133C: .4byte gUnknown_03004288
+_080E1340: .4byte gUnknown_03004280
+_080E1344: .4byte gUnknown_0202F7C8
+_080E1348: .4byte gSprites
+_080E134C:
+ ldrb r0, [r4, 0x1E]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ bl sub_80E1668
+ b _080E1406
+_080E135C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x6
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E137E
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080E137E:
+ ldr r1, _080E13A0
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ ldrh r3, [r4, 0xE]
+ adds r2, r0, r3
+ strh r2, [r4, 0x12]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E13A8
+ ldr r1, _080E13A4
+ b _080E13AA
+ .align 2, 0
+_080E13A0: .4byte gSineTable
+_080E13A4: .4byte gUnknown_030041B4
+_080E13A8:
+ ldr r1, _080E13CC
+_080E13AA:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3F
+ ble _080E1432
+ ldrh r0, [r4, 0x24]
+ movs r1, 0x78
+ subs r2, r1, r0
+ strh r2, [r4, 0x12]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E13D4
+ ldr r1, _080E13D0
+ b _080E13D6
+ .align 2, 0
+_080E13CC: .4byte gUnknown_03004280
+_080E13D0: .4byte gUnknown_030041B4
+_080E13D4:
+ ldr r1, _080E13F8
+_080E13D6:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r2, _080E13FC
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ b _080E1406
+ .align 2, 0
+_080E13F8: .4byte gUnknown_03004280
+_080E13FC: .4byte gSprites
+_080E1400:
+ ldr r1, _080E1410
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E1406:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1432
+ .align 2, 0
+_080E1410: .4byte gUnknown_03004DC0
+_080E1414:
+ adds r0, r2, 0
+ bl move_anim_task_del
+ ldr r2, _080E1438
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080E1432:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1438: .4byte gSprites
+ thumb_func_end sub_80E1284
+
+ thumb_func_start sub_80E143C
+sub_80E143C: @ 80E143C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E147C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ movs r4, 0
+ strh r4, [r1, 0x24]
+ strh r4, [r1, 0x26]
+ ldr r0, _080E1480
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E1488
+ ldr r0, _080E1484
+ b _080E148A
+ .align 2, 0
+_080E147C: .4byte gSprites
+_080E1480: .4byte gUnknown_0202F7C8
+_080E1484: .4byte gUnknown_030041B4
+_080E1488:
+ ldr r0, _080E1498
+_080E148A:
+ strh r4, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1498: .4byte gUnknown_03004280
+ thumb_func_end sub_80E143C
+
+ thumb_func_start sub_80E149C
+sub_80E149C: @ 80E149C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14BC
+ adds r1, r0, r1
+ ldr r0, _080E14C0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E14C8
+ ldr r0, _080E14C4
+ b _080E14CA
+ .align 2, 0
+_080E14BC: .4byte gTasks
+_080E14C0: .4byte gUnknown_03004B00
+_080E14C4: .4byte sub_80E14DC
+_080E14C8:
+ ldr r0, _080E14D8
+_080E14CA:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E14D8: .4byte sub_80E1560
+ thumb_func_end sub_80E149C
+
+ thumb_func_start sub_80E14DC
+sub_80E14DC: @ 80E14DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14FC
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080E1500
+ cmp r5, 0x1
+ beq _080E1554
+ b _080E155A
+ .align 2, 0
+_080E14FC: .4byte gTasks
+_080E1500:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r3, _080E1550
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r5, [r0, 0x24]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x22]
+ movs r0, 0xA0
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E155A
+ .align 2, 0
+_080E1550: .4byte gSprites
+_080E1554:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E155A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E14DC
+
+ thumb_func_start sub_80E1560
+sub_80E1560: @ 80E1560
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1584
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080E1662
+ lsls r0, 2
+ ldr r1, _080E1588
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E1584: .4byte gTasks
+_080E1588: .4byte _080E158C
+ .align 2, 0
+_080E158C:
+ .4byte _080E15A0
+ .4byte _080E15F4
+ .4byte _080E1602
+ .4byte _080E161C
+ .4byte _080E165C
+_080E15A0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E15C4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E15CC
+ ldr r0, _080E15C8
+ b _080E15CE
+ .align 2, 0
+_080E15C4: .4byte gUnknown_0202F7C8
+_080E15C8: .4byte gUnknown_030042C0
+_080E15CC:
+ ldr r0, _080E15EC
+_080E15CE:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E15F0
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E15EC: .4byte gUnknown_03004288
+_080E15F0: .4byte gUnknown_0202F7C8
+_080E15F4:
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x26
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ bl sub_80E1668
+ b _080E164A
+_080E1602:
+ ldr r2, _080E1618
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x60
+ strh r1, [r0, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E1618: .4byte gSprites
+_080E161C:
+ ldr r2, _080E1654
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E1662
+ ldr r1, _080E1658
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E164A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1662
+ .align 2, 0
+_080E1654: .4byte gSprites
+_080E1658: .4byte gUnknown_03004DC0
+_080E165C:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1560
+
+ thumb_func_start sub_80E1668
+sub_80E1668: @ 80E1668
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ cmp r0, 0x1
+ bne _080E168C
+ ldr r0, _080E1684
+ ldrh r3, [r0]
+ ldr r0, _080E1688
+ b _080E1692
+ .align 2, 0
+_080E1684: .4byte gUnknown_030042C0
+_080E1688: .4byte REG_BG1HOFS
+_080E168C:
+ ldr r0, _080E1718
+ ldrh r3, [r0]
+ ldr r0, _080E171C
+_080E1692:
+ str r0, [sp]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080E169C
+ movs r1, 0
+_080E169C:
+ lsls r2, r1, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r2, r0
+ bge _080E16C8
+ ldr r5, _080E1720
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080E16AE:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r1, r6
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r2, r1, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _080E16AE
+_080E16C8:
+ lsls r1, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080E16F6
+ ldr r4, _080E1720
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_080E16E0:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080E16E0
+_080E16F6:
+ ldr r0, _080E1724
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1718: .4byte gUnknown_03004288
+_080E171C: .4byte REG_BG2HOFS
+_080E1720: .4byte gUnknown_03004DE0
+_080E1724: .4byte 0xa2600001
+ thumb_func_end sub_80E1668
+
+ thumb_func_start sub_80E1728
+sub_80E1728: @ 80E1728
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080E173C
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080E1744
+ ldr r0, _080E1740
+ b _080E1746
+ .align 2, 0
+_080E173C: .4byte gUnknown_03004B00
+_080E1740: .4byte gUnknown_0202F7C8
+_080E1744:
+ ldr r0, _080E17A8
+_080E1746:
+ ldrb r4, [r0]
+ movs r6, 0x18
+ adds r1, r7, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080E1762
+ negs r0, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1762:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1E
+ strh r0, [r5, 0x22]
+ ldrh r1, [r7, 0xA]
+ strh r1, [r5, 0x2E]
+ ldrh r1, [r7, 0x4]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x32]
+ ldrh r1, [r7, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E17AC
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E17A8: .4byte gUnknown_0202F7C9
+_080E17AC: .4byte sub_80E17B0
+ thumb_func_end sub_80E1728
+
+ thumb_func_start sub_80E17B0
+sub_80E17B0: @ 80E17B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E17C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E17C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E17B0
+
+ thumb_func_start sub_80E17CC
+sub_80E17CC: @ 80E17CC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080E17E0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E17E8
+ ldr r0, _080E17E4
+ b _080E17EA
+ .align 2, 0
+_080E17E0: .4byte gUnknown_03004B00
+_080E17E4: .4byte gUnknown_0202F7C8
+_080E17E8:
+ ldr r0, _080E1848
+_080E17EA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E184C
+ adds r0, r2
+ ldr r4, _080E1850
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ lsls r1, 5
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r6, 0x22]
+ ldrh r2, [r6, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080E1854
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E1858
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080E185C
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080E1860
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1848: .4byte gUnknown_0202F7C9
+_080E184C: .4byte 0x0000fff0
+_080E1850: .4byte gUnknown_03004B00
+_080E1854: .4byte 0x000003ff
+_080E1858: .4byte 0xfffffc00
+_080E185C: .4byte move_anim_8072740
+_080E1860: .4byte sub_80782D8
+ thumb_func_end sub_80E17CC
+
+ thumb_func_start sub_80E1864
+sub_80E1864: @ 80E1864
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E1888
+ adds r4, r0, r1
+ ldr r0, _080E188C
+ ldrh r2, [r0, 0x2]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080E1890
+ adds r0, r2, 0x3
+ b _080E189C
+ .align 2, 0
+_080E1888: .4byte gTasks
+_080E188C: .4byte gUnknown_03004B00
+_080E1890:
+ ldr r0, _080E18BC
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0x3
+_080E189C:
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x24]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xE]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080E18C8
+ cmp r0, 0x5
+ bne _080E1908
+ ldr r0, _080E18C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E18C4
+ b _080E1926
+ .align 2, 0
+_080E18BC: .4byte gUnknown_0202F7BC
+_080E18C0: .4byte gUnknown_030041B0
+_080E18C4: .4byte sub_80E1934
+_080E18C8:
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ movs r5, 0
+_080E18CE:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E18F8
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ adds r0, 0x9
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r1, r0
+ ldr r0, _080E1904
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080E18F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E18CE
+ b _080E1924
+ .align 2, 0
+_080E1904: .4byte gUnknown_02024BE0
+_080E1908:
+ ldrb r0, [r6]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ cmp r0, 0xFF
+ bne _080E1920
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E1928
+_080E1920:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+_080E1924:
+ ldr r0, _080E1930
+_080E1926:
+ str r0, [r4]
+_080E1928:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1930: .4byte sub_80E1A2C
+ thumb_func_end sub_80E1864
+
+ thumb_func_start sub_80E1934
+sub_80E1934: @ 80E1934
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1958
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _080E19B8
+ cmp r1, 0x1
+ bgt _080E195C
+ cmp r1, 0
+ beq _080E1962
+ b _080E1A24
+ .align 2, 0
+_080E1958: .4byte gTasks
+_080E195C:
+ cmp r1, 0x2
+ beq _080E1A18
+ b _080E1A24
+_080E1962:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ strh r1, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E198C
+ ldr r1, _080E1988
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E1996
+ .align 2, 0
+_080E1988: .4byte gUnknown_030041B0
+_080E198C:
+ ldr r0, _080E19B4
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x26]
+ subs r1, r2
+ strh r1, [r0]
+_080E1996:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ b _080E1A0C
+ .align 2, 0
+_080E19B4: .4byte gUnknown_030041B0
+_080E19B8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ ands r1, r0
+ cmp r1, 0
+ bne _080E19E4
+ ldr r1, _080E19E0
+ ldrh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E19EE
+ .align 2, 0
+_080E19E0: .4byte gUnknown_030041B0
+_080E19E4:
+ ldr r0, _080E1A14
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+ strh r1, [r0]
+_080E19EE:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1A24
+_080E1A0C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E1A24
+ .align 2, 0
+_080E1A14: .4byte gUnknown_030041B0
+_080E1A18:
+ ldr r1, _080E1A28
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1A24:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1A28: .4byte gUnknown_030041B0
+ thumb_func_end sub_80E1934
+
+ thumb_func_start sub_80E1A2C
+sub_80E1A2C: @ 80E1A2C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1A50
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080E1A8C
+ cmp r5, 0x1
+ bgt _080E1A54
+ cmp r5, 0
+ beq _080E1A5A
+ b _080E1B06
+ .align 2, 0
+_080E1A50: .4byte gTasks
+_080E1A54:
+ cmp r5, 0x2
+ beq _080E1AC8
+ b _080E1B06
+_080E1A5A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E1AC0
+_080E1A8C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1B06
+_080E1AC0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1B06
+_080E1AC8:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r2, r0
+ bge _080E1B00
+ ldr r0, _080E1B0C
+ mov r12, r0
+ adds r5, r4, 0
+ adds r5, 0x8
+ movs r6, 0
+_080E1ADC:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ strh r6, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080E1ADC
+_080E1B00:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080E1B06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B0C: .4byte gSprites
+ thumb_func_end sub_80E1A2C
+
+ thumb_func_start sub_80E1B10
+sub_80E1B10: @ 80E1B10
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xC]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1B38
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r2, [r3, 0x24]
+ adds r0, r4, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _080E1B48
+_080E1B38:
+ movs r1, 0x24
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E1B48:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ bge _080E1B7C
+ ldr r6, _080E1B84
+ adds r5, r3, 0
+ adds r5, 0x8
+_080E1B58:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ blt _080E1B58
+_080E1B7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B84: .4byte gSprites
+ thumb_func_end sub_80E1B10
+
+ thumb_func_start sub_80E1B88
+sub_80E1B88: @ 80E1B88
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080E1BA8
+ movs r2, 0
+ ldr r0, _080E1BAC
+ ldrh r0, [r0]
+ cmp r0, 0x63
+ bls _080E1B9C
+ movs r2, 0x1
+_080E1B9C:
+ strh r2, [r3, 0x1E]
+ adds r0, r1, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1BA8: .4byte gUnknown_03004B00
+_080E1BAC: .4byte gUnknown_0202F7BC
+ thumb_func_end sub_80E1B88
+
+ thumb_func_start sub_80E1BB0
+sub_80E1BB0: @ 80E1BB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080E1BC8
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _080E1BD0
+ ldr r0, _080E1BCC
+ b _080E1BD2
+ .align 2, 0
+_080E1BC8: .4byte gUnknown_03004B00
+_080E1BCC: .4byte gUnknown_0202F7C9
+_080E1BD0:
+ ldr r0, _080E1C40
+_080E1BD2:
+ ldrb r0, [r0]
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ ble _080E1BE2
+ movs r0, 0x2
+ eors r5, r0
+_080E1BE2:
+ ldr r0, _080E1C44
+ ldrb r1, [r6, 0x2]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080E1C48
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x20
+ subs r1, r0
+ ldr r2, _080E1C4C
+ adds r0, r2, 0
+ ands r1, r0
+ strh r1, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0xC]
+ ldr r2, _080E1C50
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ ldr r0, _080E1C54
+ strh r1, [r0]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0xE]
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1C40: .4byte gUnknown_0202F7C8
+_080E1C44: .4byte sub_80E1C58
+_080E1C48: .4byte gTasks
+_080E1C4C: .4byte 0x000001ff
+_080E1C50: .4byte gUnknown_030041B0
+_080E1C54: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1BB0
+
+ thumb_func_start sub_80E1C58
+sub_80E1C58: @ 80E1C58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1C88
+ adds r2, r0, r1
+ ldr r0, _080E1C8C
+ movs r4, 0xE
+ ldrsh r1, [r0, r4]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080E1C98
+ ldr r0, _080E1C90
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E1C94
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080E1CA4
+ .align 2, 0
+_080E1C88: .4byte gTasks
+_080E1C8C: .4byte gUnknown_03004B00
+_080E1C90: .4byte gUnknown_030041B0
+_080E1C94: .4byte gUnknown_030041B8
+_080E1C98:
+ ldr r1, _080E1CAC
+ ldrh r0, [r2, 0xA]
+ strh r0, [r1]
+ ldr r1, _080E1CB0
+ ldrh r0, [r2, 0xC]
+ strh r0, [r1]
+_080E1CA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1CAC: .4byte gUnknown_030041B0
+_080E1CB0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1C58
+
+ thumb_func_start sub_80E1CB4
+sub_80E1CB4: @ 80E1CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E1CEC
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080E1CF0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E1CF4
+ ldrh r0, [r5, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080E1D02
+ .align 2, 0
+_080E1CEC: .4byte gUnknown_03004B00
+_080E1CF0: .4byte gUnknown_0202F7C8
+_080E1CF4:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080E1D02:
+ ldr r0, _080E1D18
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x34]
+ ldr r1, _080E1D1C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1D18: .4byte gUnknown_03004B00
+_080E1D1C: .4byte sub_80E1D20
+ thumb_func_end sub_80E1CB4
+
+ thumb_func_start sub_80E1D20
+sub_80E1D20: @ 80E1D20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1E
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x7F
+ bhi _080E1D52
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080E1D5A
+_080E1D52:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_080E1D5A:
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1D7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1D7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1D20
+
+ thumb_func_start sub_80E1D84
+sub_80E1D84: @ 80E1D84
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _080E1DBC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginNormalPaletteFade
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1DC0
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1DBC: .4byte gUnknown_03004B00
+_080E1DC0: .4byte sub_80E1E0C
+ thumb_func_end sub_80E1D84
+
+ thumb_func_start sub_80E1DC4
+sub_80E1DC4: @ 80E1DC4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x1
+ mov r8, r0
+ mov r1, r8
+ ands r1, r4
+ mov r8, r1
+ lsls r0, 16
+ asrs r1, r0, 17
+ ands r1, r4
+ asrs r2, r0, 18
+ ands r2, r4
+ asrs r3, r0, 19
+ ands r3, r4
+ asrs r6, r0, 20
+ ands r6, r4
+ asrs r5, r0, 21
+ ands r5, r4
+ asrs r0, 22
+ ands r0, r4
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ bl sub_80791A8
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E1DC4
+
+ thumb_func_start sub_80E1E0C
+sub_80E1E0C: @ 80E1E0C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E1E28
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1E22
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E1E22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E28: .4byte gPaletteFade
+ thumb_func_end sub_80E1E0C
+
+ thumb_func_start sub_80E1E2C
+sub_80E1E2C: @ 80E1E2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E1E78
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ bl sub_80E1DC4
+ ldrb r1, [r4, 0x8]
+ ldrh r2, [r4, 0x6]
+ bl BlendPalettes
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1E7C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E78: .4byte gUnknown_03004B00
+_080E1E7C: .4byte sub_80E1E80
+ thumb_func_end sub_80E1E2C
+
+ thumb_func_start sub_80E1E80
+sub_80E1E80: @ 80E1E80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E1E94
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E1F04
+_080E1E94:
+ ldr r0, _080E1EB0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F04
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E1EB8
+ ldr r0, _080E1EB4
+ str r0, [r4, 0x1C]
+ b _080E1F04
+ .align 2, 0
+_080E1EB0: .4byte gPaletteFade
+_080E1EB4: .4byte sub_80E1F0C
+_080E1EB8:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ bl sub_80E1DC4
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E1EDE
+ ldrh r1, [r4, 0x36]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r3, 0
+ bl BlendPalettes
+ b _080E1EEC
+_080E1EDE:
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x38]
+ adds r0, r3, 0
+ bl BlendPalettes
+_080E1EEC:
+ ldrh r0, [r4, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x1
+ strh r0, [r4, 0x32]
+_080E1F04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1E80
+
+ thumb_func_start sub_80E1F0C
+sub_80E1F0C: @ 80E1F0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E1F38
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F32
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0
+ movs r2, 0
+ bl BlendPalettes
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1F32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F38: .4byte gPaletteFade
+ thumb_func_end sub_80E1F0C
+
+ thumb_func_start sub_80E1F3C
+sub_80E1F3C: @ 80E1F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E1F80
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r2, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x30]
+ movs r0, 0x8
+ strh r0, [r4, 0x32]
+ movs r0, 0x28
+ strh r0, [r4, 0x34]
+ movs r0, 0x70
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ ldr r1, _080E1F84
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080E1F88
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F80: .4byte gUnknown_03004B00
+_080E1F84: .4byte move_anim_8074EE0
+_080E1F88: .4byte sub_8078174
+ thumb_func_end sub_80E1F3C
+
+ thumb_func_start sub_80E1F8C
+sub_80E1F8C: @ 80E1F8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E1FD0
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E1FD4
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E1FDC
+ ldr r0, _080E1FD8
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1FD0: .4byte gTasks
+_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD8: .4byte sub_80E202C
+ thumb_func_end sub_80E1F8C
+
+ thumb_func_start sub_80E1FDC
+sub_80E1FDC: @ 80E1FDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E2028
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2028: .4byte gTasks
+ thumb_func_end sub_80E1FDC
+
+ thumb_func_start sub_80E202C
+sub_80E202C: @ 80E202C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2064
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E208E
+ ldr r1, _080E2068
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E2088
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E206C
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2070
+ .align 2, 0
+_080E2064: .4byte gPaletteFade
+_080E2068: .4byte gTasks
+_080E206C:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2070:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2080
+ movs r2, 0
+_080E2080:
+ adds r0, r4, 0
+ bl sub_80E1FDC
+ b _080E208E
+_080E2088:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E208E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E202C
+
+ thumb_func_start sub_80E2094
+sub_80E2094: @ 80E2094
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E20D8
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E20DC
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E20E4
+ ldr r0, _080E20E0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E20D8: .4byte gTasks
+_080E20DC: .4byte gUnknown_03004B00
+_080E20E0: .4byte sub_80E2140
+ thumb_func_end sub_80E2094
+
+ thumb_func_start sub_80E20E4
+sub_80E20E4: @ 80E20E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E213C
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x8]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E213C: .4byte gTasks
+ thumb_func_end sub_80E20E4
+
+ thumb_func_start sub_80E2140
+sub_80E2140: @ 80E2140
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2178
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E21A2
+ ldr r1, _080E217C
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E219C
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E2180
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2184
+ .align 2, 0
+_080E2178: .4byte gPaletteFade
+_080E217C: .4byte gTasks
+_080E2180:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2184:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2194
+ movs r2, 0
+_080E2194:
+ adds r0, r4, 0
+ bl sub_80E20E4
+ b _080E21A2
+_080E219C:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E21A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2140
+
+ thumb_func_start sub_80E21A8
+sub_80E21A8: @ 80E21A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E2208
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r5, _080E220C
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r5]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r3, [r5, 0x8]
+ ldrh r0, [r5, 0x6]
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080E2210
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2208: .4byte gTasks
+_080E220C: .4byte gUnknown_03004B00
+_080E2210: .4byte sub_80E2214
+ thumb_func_end sub_80E21A8
+
+ thumb_func_start sub_80E2214
+sub_80E2214: @ 80E2214
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2238
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E223C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080E22C0
+ .align 2, 0
+_080E2238: .4byte gTasks
+_080E223C:
+ ldr r0, _080E2258
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E22C0
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080E2260
+ ldr r0, _080E225C
+ str r0, [r4]
+ b _080E22C0
+ .align 2, 0
+_080E2258: .4byte gPaletteFade
+_080E225C: .4byte sub_80E22CC
+_080E2260:
+ ldrh r0, [r4, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E228E
+ ldrb r3, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ b _080E229E
+_080E228E:
+ ldrb r3, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+_080E229E:
+ ldr r0, _080E22C8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ eors r0, r2
+ strh r0, [r1, 0xA]
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+_080E22C0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E22C8: .4byte gTasks
+ thumb_func_end sub_80E2214
+
+ thumb_func_start sub_80E22CC
+sub_80E22CC: @ 80E22CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E231C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080E2312
+ ldr r1, _080E2320
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ str r5, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E2312:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E231C: .4byte gPaletteFade
+_080E2320: .4byte gTasks
+ thumb_func_end sub_80E22CC
+
+ thumb_func_start sub_80E2324
+sub_80E2324: @ 80E2324
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080E239C
+ ldrb r6, [r0]
+ ldr r0, _080E23A0
+ ldrb r7, [r0]
+ ldr r4, _080E23A4
+ ldrh r1, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E235E
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+_080E235E:
+ ldrh r1, [r4, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2370
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r6
+ orrs r2, r0
+_080E2370:
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2382
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r7
+ orrs r2, r0
+_080E2382:
+ adds r0, r2, 0
+ bl InvertPlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E239C: .4byte gUnknown_0202F7C8
+_080E23A0: .4byte gUnknown_0202F7C9
+_080E23A4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2324
+
+ thumb_func_start unref_sub_80E23A8
+unref_sub_80E23A8: @ 80E23A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080E249C
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E23EA
+ ldr r1, _080E24A0
+ ldrh r0, [r1]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x16]
+_080E23EA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080E24A4
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r0, _080E24A8
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrh r1, [r4, 0xC]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E240C
+ ldr r5, _080E24AC
+_080E240C:
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E243C
+ ldr r2, _080E24B0
+ ldr r0, _080E24B4
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ lsls r1, r0
+ lsls r1, 16
+ orrs r5, r1
+_080E243C:
+ ldrh r1, [r4, 0xE]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2450
+ adds r0, r6, 0
+ mov r2, r9
+ lsls r0, r2
+ lsls r0, 16
+ orrs r5, r0
+_080E2450:
+ ldrh r1, [r4, 0x10]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2464
+ adds r0, r6, 0
+ mov r1, r10
+ lsls r0, r1
+ lsls r0, 16
+ orrs r5, r0
+_080E2464:
+ movs r1, 0x12
+ ldrsb r1, [r4, r1]
+ movs r2, 0x14
+ ldrsb r2, [r4, r2]
+ movs r3, 0x16
+ ldrsb r3, [r4, r3]
+ adds r0, r5, 0
+ bl TintPlttBuffer
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E248E
+ adds r0, r5, 0
+ bl UnfadePlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+_080E248E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E249C: .4byte gTasks
+_080E24A0: .4byte gUnknown_03004B00
+_080E24A4: .4byte gUnknown_0202F7C8
+_080E24A8: .4byte gUnknown_0202F7C9
+_080E24AC: .4byte 0x0000ffff
+_080E24B0: .4byte gSprites
+_080E24B4: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80E23A8
+
+ thumb_func_start sub_80E24B8
+sub_80E24B8: @ 80E24B8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080E24EC
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080E2500
+ cmp r0, 0x1
+ bgt _080E24F0
+ cmp r0, 0
+ beq _080E24F6
+ b _080E2518
+ .align 2, 0
+_080E24EC: .4byte gUnknown_03004B00
+_080E24F0:
+ cmp r0, 0x2
+ beq _080E2508
+ b _080E2518
+_080E24F6:
+ ldr r1, _080E24FC
+ b _080E250A
+ .align 2, 0
+_080E24FC: .4byte gUnknown_030041B0
+_080E2500:
+ ldr r1, _080E2504
+ b _080E250A
+ .align 2, 0
+_080E2504: .4byte gUnknown_030041B8
+_080E2508:
+ ldr r1, _080E2514
+_080E250A:
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ b _080E2520
+ .align 2, 0
+_080E2514: .4byte gSpriteCoordOffsetX
+_080E2518:
+ ldr r1, _080E2550
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080E2520:
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldr r0, [r1]
+ strh r0, [r4, 0x36]
+ ldr r0, _080E2554
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E2544
+ bl sub_80E260C
+_080E2544:
+ ldr r0, _080E2558
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2550: .4byte gSpriteCoordOffsetY
+_080E2554: .4byte gUnknown_03004B00
+_080E2558: .4byte sub_80E255C
+ thumb_func_end sub_80E24B8
+
+ thumb_func_start sub_80E255C
+sub_80E255C: @ 80E255C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E25A0
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x34]
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E257E
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080E25FA
+_080E257E:
+ ldrh r0, [r3, 0x32]
+ strh r0, [r3, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ b _080E25FA
+_080E25A0:
+ movs r2, 0x3A
+ ldrsh r1, [r3, r2]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ str r0, [r1]
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E25F4
+ movs r4, 0
+ ldr r5, _080E2600
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcs _080E25F4
+ ldr r2, _080E2604
+ mov r12, r2
+ ldr r6, _080E2608
+ movs r7, 0x3
+ negs r7, r7
+_080E25D2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcc _080E25D2
+_080E25F4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E25FA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2600: .4byte gUnknown_02024A68
+_080E2604: .4byte gSprites
+_080E2608: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E255C
+
+ thumb_func_start sub_80E260C
+sub_80E260C: @ 80E260C
+ push {r4-r6,lr}
+ ldr r6, _080E2680
+ ldr r4, _080E2684
+ ldr r5, _080E2688
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x3
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r3, _080E268C
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r0, _080E2690
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _080E2694
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ b _080E26B0
+ .align 2, 0
+_080E2680: .4byte gSprites
+_080E2684: .4byte gUnknown_02024BE0
+_080E2688: .4byte gUnknown_0202F7C8
+_080E268C: .4byte gUnknown_0202F7C9
+_080E2690: .4byte gUnknown_03004B00
+_080E2694:
+ cmp r0, 0
+ bne _080E269C
+ ldrb r0, [r5]
+ b _080E269E
+_080E269C:
+ ldrb r0, [r3]
+_080E269E:
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+_080E26B0:
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E260C
+
+ thumb_func_start sub_80E26BC
+sub_80E26BC: @ 80E26BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E26FC
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r3, _080E2700
+ ldrh r1, [r3]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x18]
+ ldr r4, _080E2704
+ ldrh r1, [r3]
+ strh r1, [r4]
+ ldr r4, _080E2708
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4]
+ ldr r1, _080E270C
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E26FC: .4byte gTasks
+_080E2700: .4byte gUnknown_03004B00
+_080E2704: .4byte gUnknown_030041B0
+_080E2708: .4byte gUnknown_030041B8
+_080E270C: .4byte sub_80E2710
+ thumb_func_end sub_80E26BC
+
+ thumb_func_start sub_80E2710
+sub_80E2710: @ 80E2710
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2740
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080E2796
+ ldr r0, _080E2744
+ ldrh r2, [r0]
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _080E2748
+ ldrh r0, [r3, 0x8]
+ negs r0, r0
+ b _080E274A
+ .align 2, 0
+_080E2740: .4byte gTasks
+_080E2744: .4byte gUnknown_030041B0
+_080E2748:
+ ldrh r0, [r3, 0x8]
+_080E274A:
+ strh r0, [r6]
+ ldr r2, _080E2768
+ ldrh r3, [r2]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r7, r12
+ adds r4, r0, r7
+ movs r7, 0xA
+ ldrsh r0, [r4, r7]
+ cmn r3, r0
+ bne _080E276C
+ movs r0, 0
+ b _080E2770
+ .align 2, 0
+_080E2768: .4byte gUnknown_030041B8
+_080E276C:
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+_080E2770:
+ strh r0, [r2]
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x18]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0xC]
+ subs r1, 0x1
+ strh r1, [r0, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _080E279A
+ strh r1, [r6]
+ strh r1, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E279A
+_080E2796:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080E279A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2710
+
+ thumb_func_start sub_80E27A0
+sub_80E27A0: @ 80E27A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E27C0
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E27C4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E27CC
+ .align 2, 0
+_080E27C0: .4byte gUnknown_03004B00
+_080E27C4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E27CC:
+ ldr r0, _080E27E0
+ str r0, [r5, 0x1C]
+ ldr r1, _080E27E4
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E27E0: .4byte sub_80785E4
+_080E27E4: .4byte move_anim_8072740
+ thumb_func_end sub_80E27A0
+
+ thumb_func_start sub_80E27E8
+sub_80E27E8: @ 80E27E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E2808
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E280C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E2814
+ .align 2, 0
+_080E2808: .4byte gUnknown_03004B00
+_080E280C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E2814:
+ ldr r0, _080E282C
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080E2830
+ str r0, [r5, 0x1C]
+ ldr r1, _080E2834
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E282C: .4byte gUnknown_03004B00
+_080E2830: .4byte sub_80785E4
+_080E2834: .4byte sub_80DA48C
+ thumb_func_end sub_80E27E8
+
+ thumb_func_start sub_80E2838
+sub_80E2838: @ 80E2838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2868
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E285C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E285C
+ ldr r1, _080E286C
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080E285C:
+ adds r0, r4, 0
+ bl sub_80E27A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2868: .4byte gUnknown_0202F7C8
+_080E286C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2838
+
+ thumb_func_start sub_80E2870
+sub_80E2870: @ 80E2870
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E28A8
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080E288C
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ strh r1, [r5, 0x2]
+_080E288C:
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080E28AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080E28B4
+ .align 2, 0
+_080E28A8: .4byte gUnknown_03004B00
+_080E28AC:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080E28B4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x30
+ bl __umodsi3
+ ldr r1, _080E28F8
+ adds r0, r1
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ ldr r1, _080E28FC
+ adds r0, r1
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r1, _080E2900
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2904
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E28F8: .4byte 0x0000ffe8
+_080E28FC: .4byte 0x0000fff4
+_080E2900: .4byte move_anim_8074EE0
+_080E2904: .4byte sub_80785E4
+ thumb_func_end sub_80E2870
+
+ thumb_func_start sub_80E2908
+sub_80E2908: @ 80E2908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E2968
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ ldr r2, _080E296C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x26]
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080E2970
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2974
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2968: .4byte gUnknown_03004B00
+_080E296C: .4byte gSprites
+_080E2970: .4byte move_anim_8074EE0
+_080E2974: .4byte sub_80785E4
+ thumb_func_end sub_80E2908
+
+ thumb_func_start sub_80E2978
+sub_80E2978: @ 80E2978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2990
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E2994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E299C
+ .align 2, 0
+_080E2990: .4byte gUnknown_03004B00
+_080E2994:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E299C:
+ ldr r0, _080E29B4
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080E29B8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E29BC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29B4: .4byte gUnknown_03004B00
+_080E29B8: .4byte move_anim_8072740
+_080E29BC: .4byte sub_80782D8
+ thumb_func_end sub_80E2978
+
+ thumb_func_start sub_80E29C0
+sub_80E29C0: @ 80E29C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E29E0
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E29E4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E29EC
+ .align 2, 0
+_080E29E0: .4byte gUnknown_03004B00
+_080E29E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E29EC:
+ ldr r0, _080E29F8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29F8: .4byte sub_80E29FC
+ thumb_func_end sub_80E29C0
+
+ thumb_func_start sub_80E29FC
+sub_80E29FC: @ 80E29FC
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080E2A32
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E2A32:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E29FC
+
+ thumb_func_start sub_80E2A38
+sub_80E2A38: @ 80E2A38
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2A78
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_80792C0
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2A78: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2A38
+
+ thumb_func_start sub_80E2A7C
+sub_80E2A7C: @ 80E2A7C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80E1DC4
+ adds r5, r0, 0
+ ldr r0, _080E2AA8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080E2B26
+ lsls r0, 2
+ ldr r1, _080E2AAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2AA8: .4byte gUnknown_03004B00
+_080E2AAC: .4byte _080E2AB0
+ .align 2, 0
+_080E2AB0:
+ .4byte _080E2AD2
+ .4byte _080E2ADE
+ .4byte _080E2AD0
+ .4byte _080E2ADC
+ .4byte _080E2AEC
+ .4byte _080E2B04
+ .4byte _080E2B0C
+ .4byte _080E2B18
+_080E2AD0:
+ movs r5, 0
+_080E2AD2:
+ mov r0, sp
+ ldr r1, _080E2AD8
+ b _080E2AE2
+ .align 2, 0
+_080E2AD8: .4byte gUnknown_0202F7C8
+_080E2ADC:
+ movs r5, 0
+_080E2ADE:
+ mov r0, sp
+ ldr r1, _080E2AE8
+_080E2AE2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080E2B26
+ .align 2, 0
+_080E2AE8: .4byte gUnknown_0202F7C9
+_080E2AEC:
+ mov r1, sp
+ ldr r0, _080E2AFC
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080E2B00
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080E2B26
+ .align 2, 0
+_080E2AFC: .4byte gUnknown_0202F7C8
+_080E2B00: .4byte gUnknown_0202F7C9
+_080E2B04:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080E2B26
+_080E2B0C:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B14
+ b _080E2B1E
+ .align 2, 0
+_080E2B14: .4byte gUnknown_0202F7C8
+_080E2B18:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B70
+_080E2B1E:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080E2B26:
+ movs r4, 0
+ mov r6, sp
+_080E2B2A:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080E2B54
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl sub_80793A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080E2B54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080E2B2A
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80E2C8C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2B70: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E2A7C
+
+ thumb_func_start sub_80E2B74
+sub_80E2B74: @ 80E2B74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E2B98
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80E1DC4
+ adds r2, r0, 0
+ ldr r0, _080E2B9C
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080E2C4A
+ lsls r0, 2
+ ldr r1, _080E2BA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2B98: .4byte gUnknown_03004B00
+_080E2B9C: .4byte gUnknown_0300428C
+_080E2BA0: .4byte _080E2BA4
+ .align 2, 0
+_080E2BA4:
+ .4byte _080E2BCC
+ .4byte _080E2BDC
+ .4byte _080E2BE8
+ .4byte _080E2BF8
+ .4byte _080E2C04
+ .4byte _080E2C14
+ .4byte _080E2C24
+ .4byte _080E2C34
+ .4byte _080E2C44
+ .4byte _080E2C44
+_080E2BCC:
+ ldr r1, _080E2BD4
+ ldr r0, _080E2BD8
+ b _080E2C48
+ .align 2, 0
+_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD8: .4byte 0x00000b0c
+_080E2BDC:
+ ldr r1, _080E2BE4
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080E2C48
+ .align 2, 0
+_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE8:
+ ldr r1, _080E2BF0
+ ldr r0, _080E2BF4
+ b _080E2C48
+ .align 2, 0
+_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF4: .4byte 0x00002f1e
+_080E2BF8:
+ ldr r1, _080E2C00
+ movs r0, 0x90
+ lsls r0, 7
+ b _080E2C48
+ .align 2, 0
+_080E2C00: .4byte gUnknown_03004B00
+_080E2C04:
+ ldr r1, _080E2C0C
+ ldr r0, _080E2C10
+ b _080E2C48
+ .align 2, 0
+_080E2C0C: .4byte gUnknown_03004B00
+_080E2C10: .4byte 0x00007ecb
+_080E2C14:
+ ldr r1, _080E2C1C
+ ldr r0, _080E2C20
+ b _080E2C48
+ .align 2, 0
+_080E2C1C: .4byte gUnknown_03004B00
+_080E2C20: .4byte 0x00007ecb
+_080E2C24:
+ ldr r1, _080E2C2C
+ ldr r0, _080E2C30
+ b _080E2C48
+ .align 2, 0
+_080E2C2C: .4byte gUnknown_03004B00
+_080E2C30: .4byte 0x00002a16
+_080E2C34:
+ ldr r1, _080E2C3C
+ ldr r0, _080E2C40
+ b _080E2C48
+ .align 2, 0
+_080E2C3C: .4byte gUnknown_03004B00
+_080E2C40: .4byte 0x00000d2e
+_080E2C44:
+ ldr r1, _080E2C58
+ ldr r0, _080E2C5C
+_080E2C48:
+ strh r0, [r1, 0x8]
+_080E2C4A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C58: .4byte gUnknown_03004B00
+_080E2C5C: .4byte 0x00007fff
+ thumb_func_end sub_80E2B74
+
+ thumb_func_start sub_80E2C60
+sub_80E2C60: @ 80E2C60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E2C88
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2C60
+
+ thumb_func_start sub_80E2C8C
+sub_80E2C8C: @ 80E2C8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080E2CC4
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080E2CC8
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080E2CCC
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2CC4: .4byte gTasks
+_080E2CC8: .4byte gUnknown_03004B00
+_080E2CCC: .4byte sub_80E2CD0
+ thumb_func_end sub_80E2C8C
+
+ thumb_func_start sub_80E2CD0
+sub_80E2CD0: @ 80E2CD0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080E2D50
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080E2D66
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080E2D32
+ adds r5, r3, 0
+_080E2D10:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080E2D24
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080E2D24:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080E2D10
+_080E2D32:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080E2D54
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+ .align 2, 0
+_080E2D50: .4byte gTasks
+_080E2D54:
+ cmp r3, r1
+ ble _080E2D5E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+_080E2D5E:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ b _080E2D6C
+_080E2D66:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080E2D6C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2CD0
+
+ thumb_func_start sub_80E2D78
+sub_80E2D78: @ 80E2D78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2DAC
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080E2DB0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080E2DB4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DAC: .4byte gUnknown_03004B00
+_080E2DB0: .4byte gTasks
+_080E2DB4: .4byte sub_80E2DB8
+ thumb_func_end sub_80E2D78
+
+ thumb_func_start sub_80E2DB8
+sub_80E2DB8: @ 80E2DB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E2DD4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E2DD0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2DD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DD4: .4byte gPaletteFade
+ thumb_func_end sub_80E2DB8
+
+ thumb_func_start sub_80E2DD8
+sub_80E2DD8: @ 80E2DD8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E2E04
+ adds r1, r0
+ ldr r2, _080E2E08
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080E2E0C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080E2E04: .4byte gTasks
+_080E2E08: .4byte gUnknown_03004B00
+_080E2E0C: .4byte sub_80E2E10
+ thumb_func_end sub_80E2DD8
+
+ thumb_func_start sub_80E2E10
+sub_80E2E10: @ 80E2E10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E2E3C
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E2ED4
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2E40
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2E3C: .4byte gTasks
+_080E2E40:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E2EBE
+ ldr r6, _080E2ECC
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080E2E68
+ movs r2, 0x1
+_080E2E68:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080E2ED0
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080E2EBE:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2ECC: .4byte gSprites
+_080E2ED0: .4byte sub_80E2EE8
+_080E2ED4:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E2EE2
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2E10
+
+ thumb_func_start sub_80E2EE8
+sub_80E2EE8: @ 80E2EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2EFC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E2F20
+_080E2EFC:
+ ldr r3, _080E2F28
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080E2F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2F28: .4byte gTasks
+ thumb_func_end sub_80E2EE8
+
+ thumb_func_start sub_80E2F2C
+sub_80E2F2C: @ 80E2F2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E3038
+ strh r7, [r0]
+ ldr r0, _080E303C
+ strh r7, [r0]
+ ldr r1, _080E3040
+ ldr r2, _080E3044
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3048
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E304C
+ ldr r2, _080E3050
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3054
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3058
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E2FAC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E2FAC:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3028
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+ ldr r5, _080E305C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E2FDC
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+_080E2FDC:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E3028
+ ldr r3, _080E3060
+ ldr r1, _080E3064
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r7, 0x1
+_080E3028:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E306C
+ ldr r0, _080E3068
+ ldrh r4, [r0]
+ b _080E30B4
+ .align 2, 0
+_080E3038: .4byte gUnknown_030042C4
+_080E303C: .4byte gUnknown_03004240
+_080E3040: .4byte REG_WININ
+_080E3044: .4byte 0x00003f3f
+_080E3048: .4byte 0x00003f3d
+_080E304C: .4byte REG_BLDCNT
+_080E3050: .4byte 0x00003f42
+_080E3054: .4byte 0x00000c08
+_080E3058: .4byte REG_BG1CNT
+_080E305C: .4byte gUnknown_0202F7C8
+_080E3060: .4byte gSprites
+_080E3064: .4byte gUnknown_02024BE0
+_080E3068: .4byte 0x02019348
+_080E306C:
+ ldr r4, _080E308C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3098
+ ldr r1, _080E3090
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3094
+ b _080E30A8
+ .align 2, 0
+_080E308C: .4byte gUnknown_0202F7C8
+_080E3090: .4byte gUnknown_02024A6A
+_080E3094: .4byte gEnemyParty
+_080E3098:
+ ldr r1, _080E3160
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3164
+_080E30A8:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E30B4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3168
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E316C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E3170
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E3174
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3106
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3106:
+ ldr r0, _080E3178
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E317C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080E3180
+ ldr r0, _080E3184
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080E3188
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080E318C
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E3190
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3160: .4byte gUnknown_02024A6A
+_080E3164: .4byte gPlayerParty
+_080E3168: .4byte gUnknown_0202F7C8
+_080E316C: .4byte 0x040000d4
+_080E3170: .4byte 0x85000400
+_080E3174: .4byte gUnknown_08D20A30
+_080E3178: .4byte gUnknown_08D20A14
+_080E317C: .4byte gUnknown_083DB568
+_080E3180: .4byte gUnknown_030042C0
+_080E3184: .4byte gSprites
+_080E3188: .4byte gUnknown_030041B4
+_080E318C: .4byte gTasks
+_080E3190: .4byte sub_80E3194
+ thumb_func_end sub_80E2F2C
+
+ thumb_func_start sub_80E3194
+sub_80E3194: @ 80E3194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E32AC
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r7, _080E32B0
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080E329E
+ strh r5, [r4, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E329E
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E32B4
+ strh r5, [r0]
+ ldr r0, _080E32B8
+ strh r5, [r0]
+ ldr r0, _080E32BC
+ ldr r2, _080E32C0
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3208
+ ldr r2, _080E32C4
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3208:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E32C8
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r0, _080E32CC
+ mov r8, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E32D0
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E32D4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3288
+ ldr r2, _080E32D8
+ ldr r0, _080E32DC
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3288:
+ ldr r2, _080E32C4
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0
+ strh r0, [r7]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E329E:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E32AC: .4byte gTasks
+_080E32B0: .4byte gUnknown_030041B4
+_080E32B4: .4byte gUnknown_030042C4
+_080E32B8: .4byte gUnknown_03004240
+_080E32BC: .4byte REG_WININ
+_080E32C0: .4byte 0x00003f3f
+_080E32C4: .4byte REG_BG1CNT
+_080E32C8: .4byte REG_BLDCNT
+_080E32CC: .4byte gSprites
+_080E32D0: .4byte 0x040000d4
+_080E32D4: .4byte 0x85000200
+_080E32D8: .4byte gUnknown_02024BE0
+_080E32DC: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E3194
+
+ thumb_func_start sub_80E32E0
+sub_80E32E0: @ 80E32E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _080E332C
+ mov r12, r0
+ ldr r1, _080E3330
+ mov r8, r1
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r4, r0, 3
+ mov r7, r12
+ adds r7, 0x8
+ adds r5, r1, 0
+ ldr r6, _080E3334
+_080E3302:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r1, r7
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080E3302
+ adds r0, r5, r3
+ lsls r0, 3
+ add r0, r12
+ mov r1, r8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E332C: .4byte gTasks
+_080E3330: .4byte sub_80E3338
+_080E3334: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E32E0
+
+ thumb_func_start sub_80E3338
+sub_80E3338: @ 80E3338
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ movs r1, 0
+ str r1, [sp, 0x20]
+ add r7, sp, 0xC
+ ldr r2, _080E3388
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ mov r10, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r1, r0, r1
+ adds r3, r7, 0
+ movs r4, 0
+ movs r2, 0x7
+_080E336C:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ strh r4, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080E336C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3390
+ ldr r0, _080E338C
+ b _080E3392
+ .align 2, 0
+_080E3388: .4byte gTasks
+_080E338C: .4byte gUnknown_0202F7C8
+_080E3390:
+ ldr r0, _080E34B4
+_080E3392:
+ ldrb r5, [r0]
+ movs r0, 0x2
+ mov r8, r5
+ mov r2, r8
+ eors r2, r0
+ mov r8, r2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33BC
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E33C0
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33C0
+_080E33BC:
+ movs r0, 0
+ strh r0, [r7, 0x6]
+_080E33C0:
+ ldr r0, _080E34B8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E34BC
+ strh r1, [r0]
+ ldr r1, _080E34C0
+ ldr r2, _080E34C4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E34C8
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E34CC
+ ldr r2, _080E34D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E34D4
+ ldrb r1, [r4]
+ movs r6, 0x4
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3432
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3432:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34A4
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E34A4
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E345E
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E34A4
+_080E345E:
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E34A4
+ ldr r1, _080E34D8
+ ldr r0, _080E34DC
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_080E34A4:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34E4
+ ldr r0, _080E34E0
+ ldrh r4, [r0]
+ b _080E3522
+ .align 2, 0
+_080E34B4: .4byte gUnknown_0202F7C9
+_080E34B8: .4byte gUnknown_030042C4
+_080E34BC: .4byte gUnknown_03004240
+_080E34C0: .4byte REG_WININ
+_080E34C4: .4byte 0x00003f3f
+_080E34C8: .4byte 0x00003f3d
+_080E34CC: .4byte REG_BLDCNT
+_080E34D0: .4byte 0x00003f42
+_080E34D4: .4byte REG_BG1CNT
+_080E34D8: .4byte gSprites
+_080E34DC: .4byte gUnknown_02024BE0
+_080E34E0: .4byte 0x02019348
+_080E34E4:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3508
+ ldr r1, _080E3500
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3504
+ b _080E3516
+ .align 2, 0
+_080E3500: .4byte gUnknown_02024A6A
+_080E3504: .4byte gEnemyParty
+_080E3508:
+ ldr r1, _080E3568
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E356C
+_080E3516:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3522:
+ ldr r6, _080E3570
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E3550
+ mov r1, r8
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+_080E3550:
+ mov r0, sp
+ bl sub_8078914
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E3578
+ ldr r0, _080E3574
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080E3580
+ .align 2, 0
+_080E3568: .4byte gUnknown_02024A6A
+_080E356C: .4byte gPlayerParty
+_080E3570: .4byte gUnknown_02024BE0
+_080E3574: .4byte gBattleStatMask1_Tilemap
+_080E3578:
+ ldr r0, _080E35B0
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080E3580:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3598
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3598:
+ ldr r0, _080E35B4
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldrh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080E35BC
+ ldr r0, _080E35B8
+ b _080E35FE
+ .align 2, 0
+_080E35B0: .4byte gBattleStatMask2_Tilemap
+_080E35B4: .4byte gBattleStatMask_Gfx
+_080E35B8: .4byte gBattleStatMask2_Pal
+_080E35BC:
+ cmp r0, 0x1
+ bne _080E35C8
+ ldr r0, _080E35C4
+ b _080E35FE
+ .align 2, 0
+_080E35C4: .4byte gBattleStatMask1_Pal
+_080E35C8:
+ cmp r0, 0x2
+ bne _080E35D4
+ ldr r0, _080E35D0
+ b _080E35FE
+ .align 2, 0
+_080E35D0: .4byte gBattleStatMask3_Pal
+_080E35D4:
+ cmp r0, 0x3
+ bne _080E35E0
+ ldr r0, _080E35DC
+ b _080E35FE
+ .align 2, 0
+_080E35DC: .4byte gBattleStatMask4_Pal
+_080E35E0:
+ cmp r0, 0x4
+ bne _080E35EC
+ ldr r0, _080E35E8
+ b _080E35FE
+ .align 2, 0
+_080E35E8: .4byte gBattleStatMask6_Pal
+_080E35EC:
+ cmp r0, 0x5
+ bne _080E35F8
+ ldr r0, _080E35F4
+ b _080E35FE
+ .align 2, 0
+_080E35F4: .4byte gBattleStatMask7_Pal
+_080E35F8:
+ cmp r0, 0x6
+ bne _080E3610
+ ldr r0, _080E360C
+_080E35FE:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080E361E
+ .align 2, 0
+_080E360C: .4byte gBattleStatMask8_Pal
+_080E3610:
+ ldr r0, _080E3644
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080E361E:
+ ldr r2, _080E3648
+ movs r1, 0
+ strh r1, [r2]
+ ldr r0, _080E364C
+ strh r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x1
+ bne _080E3658
+ movs r0, 0x40
+ strh r0, [r2]
+ ldr r2, _080E3650
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080E3654
+ strh r1, [r0, 0xA]
+ b _080E3668
+ .align 2, 0
+_080E3644: .4byte gBattleStatMask5_Pal
+_080E3648: .4byte gUnknown_030042C0
+_080E364C: .4byte gUnknown_030041B4
+_080E3650: .4byte gTasks
+_080E3654: .4byte 0x0000fffd
+_080E3658:
+ ldr r0, _080E3680
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x3
+ strh r2, [r1, 0xA]
+ adds r2, r0, 0
+_080E3668:
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3684
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080E3692
+ .align 2, 0
+_080E3680: .4byte gTasks
+_080E3684:
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080E3692:
+ strh r1, [r0, 0x12]
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ ldrh r0, [r7, 0x6]
+ strh r0, [r1, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r1, 0xE]
+ mov r3, sp
+ ldrh r3, [r3, 0x20]
+ strh r3, [r1, 0x14]
+ ldr r0, _080E36D8
+ add r0, r8
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080E36DC
+ str r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E36E0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEF
+ bl PlaySE12WithPanning
+ b _080E36F4
+ .align 2, 0
+_080E36D8: .4byte gUnknown_02024BE0
+_080E36DC: .4byte sub_80E3704
+_080E36E0:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xF5
+ bl PlaySE12WithPanning
+_080E36F4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E3338
+
+ thumb_func_start sub_80E3704
+sub_80E3704: @ 80E3704
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080E3730
+ ldr r1, _080E3734
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080E3774
+ cmp r2, 0x1
+ bgt _080E3738
+ cmp r2, 0
+ beq _080E373E
+ b _080E3866
+ .align 2, 0
+_080E3730: .4byte gUnknown_030041B4
+_080E3734: .4byte gTasks
+_080E3738:
+ cmp r2, 0x2
+ beq _080E378E
+ b _080E3866
+_080E373E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080E374C
+ b _080E3866
+_080E374C:
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3770
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3866
+ b _080E3786
+ .align 2, 0
+_080E3770: .4byte REG_BLDALPHA
+_080E3774:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3866
+_080E3786:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3866
+_080E378E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E3866
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E386C
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3866
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3870
+ strh r5, [r0]
+ ldr r0, _080E3874
+ strh r5, [r0]
+ ldr r0, _080E3878
+ ldr r2, _080E387C
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E37E8
+ ldr r2, _080E3880
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E37E8:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E3884
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E3888
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3828
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3828:
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3854
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3854:
+ ldr r2, _080E3880
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3866:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E386C: .4byte REG_BLDALPHA
+_080E3870: .4byte gUnknown_030042C4
+_080E3874: .4byte gUnknown_03004240
+_080E3878: .4byte REG_WININ
+_080E387C: .4byte 0x00003f3f
+_080E3880: .4byte REG_BG1CNT
+_080E3884: .4byte REG_BLDCNT
+_080E3888: .4byte gSprites
+ thumb_func_end sub_80E3704
+
+ thumb_func_start sub_80E388C
+sub_80E388C: @ 80E388C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80E39BC
+ ldr r0, _080E38EC
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r6, r0, 0
+ ldr r1, _080E38F0
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80E39BC
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080E38F4
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E38EC: .4byte gTasks
+_080E38F0: .4byte 0x0000ffff
+_080E38F4: .4byte sub_80E38F8
+ thumb_func_end sub_80E388C
+
+ thumb_func_start sub_80E38F8
+sub_80E38F8: @ 80E38F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E391C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080E393C
+ cmp r1, 0x1
+ bgt _080E3920
+ cmp r1, 0
+ beq _080E3926
+ b _080E39B6
+ .align 2, 0
+_080E391C: .4byte gTasks
+_080E3920:
+ cmp r1, 0x2
+ beq _080E39B0
+ b _080E39B6
+_080E3926:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080E39B6
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080E39A4
+_080E393C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E39B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080E3958:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3972
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080E39AC
+ bl BlendPalette
+_080E3972:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3992
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080E3992:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080E3958
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E39B6
+_080E39A4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E39B6
+ .align 2, 0
+_080E39AC: .4byte 0x0000ffff
+_080E39B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E39B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E38F8
+
+ thumb_func_start sub_80E39BC
+sub_80E39BC: @ 80E39BC
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080E39C6:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080E39F2
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080E39F2
+ ldr r1, _080E3A04
+ adds r3, r0, 0
+_080E39E2:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080E39E2
+_080E39F2:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080E39C6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A04: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E39BC
+
+ thumb_func_start sub_80E3A08
+sub_80E3A08: @ 80E3A08
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080E3A50
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080E3A18:
+ cmp r3, r2
+ beq _080E3A26
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080E3A26:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080E3A18
+ movs r2, 0x5
+ ldr r0, _080E3A54
+ adds r1, r0, 0
+ adds r1, 0x8
+_080E3A34:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E3A34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A50: .4byte gUnknown_0202F7C8
+_080E3A54: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3A08
+
+ thumb_func_start sub_80E3A58
+sub_80E3A58: @ 80E3A58
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080E3AC0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080E3AC4
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3A94
+ ldr r0, _080E3AC8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3A94
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080E3A94:
+ ldr r0, _080E3ACC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080E3AC4
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3AC0: .4byte sub_80E3AD0
+_080E3AC4: .4byte gUnknown_03004B00
+_080E3AC8: .4byte gUnknown_0202F7C8
+_080E3ACC: .4byte gTasks
+ thumb_func_end sub_80E3A58
+
+ thumb_func_start sub_80E3AD0
+sub_80E3AD0: @ 80E3AD0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3B3C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080E3B40
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080E3B44
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080E3B48
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080E3B36
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl DestroyTask
+_080E3B36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B3C: .4byte gTasks
+_080E3B40: .4byte gUnknown_030041B0
+_080E3B44: .4byte gUnknown_030041B8
+_080E3B48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3AD0
+
+ thumb_func_start sub_80E3B4C
+sub_80E3B4C: @ 80E3B4C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B70
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3B74
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B70: .4byte gUnknown_0202F7C8
+_080E3B74: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B4C
+
+ thumb_func_start sub_80E3B78
+sub_80E3B78: @ 80E3B78
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B9C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3BA0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B9C: .4byte gUnknown_0202F7C9
+_080E3BA0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B78
+
+ thumb_func_start sub_80E3BA4
+sub_80E3BA4: @ 80E3BA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080E3BD0
+ movs r4, 0
+ ldr r0, _080E3BD4
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080E3BD8
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080E3BC0
+ movs r4, 0x1
+_080E3BC0:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3BD0: .4byte gUnknown_03004B00
+_080E3BD4: .4byte gUnknown_0202F7C8
+_080E3BD8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E3BA4
+
+ thumb_func_start sub_80E3BDC
+sub_80E3BDC: @ 80E3BDC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080E3C3C
+_080E3BE6:
+ ldr r0, _080E3C40
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080E3C24
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3C24
+ ldr r0, _080E3C44
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080E3C48
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E3C24:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E3BE6
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3C3C: .4byte gSprites
+_080E3C40: .4byte gUnknown_0202F7C8
+_080E3C44: .4byte gUnknown_02024BE0
+_080E3C48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3BDC
+
+ thumb_func_start sub_80E3C4C
+sub_80E3C4C: @ 80E3C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r1, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x14]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CAE
+ mov r1, r8
+ cmp r1, 0
+ beq _080E3CB2
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CB2
+_080E3CAE:
+ movs r2, 0
+ mov r8, r2
+_080E3CB2:
+ ldr r0, _080E3D34
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3D38
+ strh r1, [r0]
+ ldr r1, _080E3D3C
+ ldr r3, _080E3D40
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E3D44
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E3D48
+ ldr r2, _080E3D4C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3D50
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3D22
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3D22:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D58
+ ldr r0, _080E3D54
+ ldrh r4, [r0]
+ b _080E3D96
+ .align 2, 0
+_080E3D34: .4byte gUnknown_030042C4
+_080E3D38: .4byte gUnknown_03004240
+_080E3D3C: .4byte REG_WININ
+_080E3D40: .4byte 0x00003f3f
+_080E3D44: .4byte 0x00003f3d
+_080E3D48: .4byte REG_BLDCNT
+_080E3D4C: .4byte 0x00003f42
+_080E3D50: .4byte REG_BG1CNT
+_080E3D54: .4byte 0x02019348
+_080E3D58:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D7C
+ ldr r1, _080E3D74
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3D78
+ b _080E3D8A
+ .align 2, 0
+_080E3D74: .4byte gUnknown_02024A6A
+_080E3D78: .4byte gEnemyParty
+_080E3D7C:
+ ldr r1, _080E3E48
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3E4C
+_080E3D8A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3D96:
+ ldr r5, _080E3E50
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080E3DC0
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+_080E3DC0:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ ldr r0, [sp, 0x50]
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3DE6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3DE6:
+ ldr r1, [sp]
+ ldr r0, [sp, 0x4C]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x54]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080E3E54
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3E58
+ strh r1, [r0]
+ ldr r1, _080E3E5C
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x10]
+ mov r2, r10
+ strh r2, [r0, 0x12]
+ mov r3, sp
+ ldrh r3, [r3, 0x14]
+ strh r3, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xE]
+ ldr r1, _080E3E60
+ str r1, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3E48: .4byte gUnknown_02024A6A
+_080E3E4C: .4byte gPlayerParty
+_080E3E50: .4byte gUnknown_02024BE0
+_080E3E54: .4byte gUnknown_030042C0
+_080E3E58: .4byte gUnknown_030041B4
+_080E3E5C: .4byte gTasks
+_080E3E60: .4byte sub_80E3E64
+ thumb_func_end sub_80E3C4C
+
+ thumb_func_start sub_80E3E64
+sub_80E3E64: @ 80E3E64
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E3E9C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080E3E80
+ negs r2, r2
+_080E3E80:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080E3EA4
+ ldr r2, _080E3EA0
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080E3EB0
+ .align 2, 0
+_080E3E9C: .4byte gTasks
+_080E3EA0: .4byte gUnknown_030041B4
+_080E3EA4:
+ ldr r1, _080E3ED4
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080E3EB0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r5
+ ldrh r1, [r4, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ beq _080E3F18
+ cmp r0, 0x1
+ bgt _080E3ED8
+ cmp r0, 0
+ beq _080E3EDE
+ b _080E3FE2
+ .align 2, 0
+_080E3ED4: .4byte gUnknown_030041B4
+_080E3ED8:
+ cmp r0, 0x2
+ beq _080E3F32
+ b _080E3FE2
+_080E3EDE:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3F14
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3FE2
+ b _080E3F2A
+ .align 2, 0
+_080E3F14: .4byte REG_BLDALPHA
+_080E3F18:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3FE2
+_080E3F2A:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3FE2
+_080E3F32:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E3FE8
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3FE2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3FEC
+ strh r5, [r0]
+ ldr r0, _080E3FF0
+ strh r5, [r0]
+ ldr r0, _080E3FF4
+ ldr r2, _080E3FF8
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3F90
+ ldr r2, _080E3FFC
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3F90:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E4000
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E4004
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3FD0
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3FD0:
+ ldr r2, _080E3FFC
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3FE2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3FE8: .4byte REG_BLDALPHA
+_080E3FEC: .4byte gUnknown_030042C4
+_080E3FF0: .4byte gUnknown_03004240
+_080E3FF4: .4byte REG_WININ
+_080E3FF8: .4byte 0x00003f3f
+_080E3FFC: .4byte REG_BG1CNT
+_080E4000: .4byte REG_BLDCNT
+_080E4004: .4byte gSprites
+ thumb_func_end sub_80E3E64
+
+ thumb_func_start sub_80E4008
+sub_80E4008: @ 80E4008
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4020
+ ldr r1, _080E4024
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4020: .4byte gUnknown_03004B00
+_080E4024: .4byte gUnknown_0300428C
+ thumb_func_end sub_80E4008
+
+ thumb_func_start sub_80E4028
+sub_80E4028: @ 80E4028
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4068
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E406C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E4084
+ movs r2, 0x1
+_080E405A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E405A
+ b _080E4084
+ .align 2, 0
+_080E4068: .4byte gUnknown_03004B00
+_080E406C:
+ cmp r0, 0x1
+ bne _080E4078
+ ldr r0, _080E4074
+ b _080E407E
+ .align 2, 0
+_080E4074: .4byte gUnknown_0202F7C8
+_080E4078:
+ cmp r0, 0x2
+ bne _080E4084
+ ldr r0, _080E409C
+_080E407E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E4084:
+ ldr r0, _080E40A0
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r5, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E40A8
+ ldr r0, _080E40A4
+ b _080E40AA
+ .align 2, 0
+_080E409C: .4byte gUnknown_0202F7C9
+_080E40A0: .4byte gUnknown_03004B00
+_080E40A4: .4byte 0x02014800
+_080E40A8:
+ ldr r0, _080E40C8
+_080E40AA:
+ adds r2, r5, r0
+ lsls r1, r4, 5
+ ldr r0, _080E40CC
+ adds r1, r0
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E40C8: .4byte 0x02018000
+_080E40CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80E4028
+
+ thumb_func_start sub_80E40D0
+sub_80E40D0: @ 80E40D0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4110
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E4114
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E412C
+ movs r2, 0x1
+_080E4102:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E4102
+ b _080E412C
+ .align 2, 0
+_080E4110: .4byte gUnknown_03004B00
+_080E4114:
+ cmp r0, 0x1
+ bne _080E4120
+ ldr r0, _080E411C
+ b _080E4126
+ .align 2, 0
+_080E411C: .4byte gUnknown_0202F7C8
+_080E4120:
+ cmp r0, 0x2
+ bne _080E412C
+ ldr r0, _080E4148
+_080E4126:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E412C:
+ lsls r1, r4, 5
+ ldr r0, _080E414C
+ adds r5, r1, r0
+ ldr r0, _080E4150
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4158
+ ldr r0, _080E4154
+ b _080E415A
+ .align 2, 0
+_080E4148: .4byte gUnknown_0202F7C9
+_080E414C: .4byte gPlttBufferUnfaded
+_080E4150: .4byte gUnknown_03004B00
+_080E4154: .4byte 0x02014800
+_080E4158:
+ ldr r0, _080E4174
+_080E415A:
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4174: .4byte 0x02018000
+ thumb_func_end sub_80E40D0
+
+ thumb_func_start sub_80E4178
+sub_80E4178: @ 80E4178
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E41B8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E41BC
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E41D4
+ movs r2, 0x1
+_080E41AA:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E41AA
+ b _080E41D4
+ .align 2, 0
+_080E41B8: .4byte gUnknown_03004B00
+_080E41BC:
+ cmp r0, 0x1
+ bne _080E41C8
+ ldr r0, _080E41C4
+ b _080E41CE
+ .align 2, 0
+_080E41C4: .4byte gUnknown_0202F7C8
+_080E41C8:
+ cmp r0, 0x2
+ bne _080E41D4
+ ldr r0, _080E41F4
+_080E41CE:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E41D4:
+ lsls r1, r4, 5
+ ldr r0, _080E41F8
+ adds r0, r1, r0
+ ldr r2, _080E41FC
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E41F4: .4byte gUnknown_0202F7C9
+_080E41F8: .4byte gPlttBufferUnfaded
+_080E41FC: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E4178
+
+ thumb_func_start sub_80E4200
+sub_80E4200: @ 80E4200
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E4220
+ ldr r1, _080E421C
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080E4224
+ .align 2, 0
+_080E421C: .4byte gUnknown_03004B00
+_080E4220:
+ ldr r0, _080E4230
+ strh r1, [r0, 0xE]
+_080E4224:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4230: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4200
+
+ thumb_func_start sub_80E4234
+sub_80E4234: @ 80E4234
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4254
+ ldr r1, _080E4258
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E425C
+ ldr r1, _080E4260
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4254: .4byte gUnknown_0202F7C8
+_080E4258: .4byte gUnknown_02024C08
+_080E425C: .4byte gUnknown_0202F7C9
+_080E4260: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E4234
+
+ thumb_func_start sub_80E4264
+sub_80E4264: @ 80E4264
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E428C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080E4290
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080E4298
+ ldr r1, _080E4294
+ movs r0, 0x1
+ b _080E429C
+ .align 2, 0
+_080E428C: .4byte gUnknown_0202F7C8
+_080E4290: .4byte gUnknown_0202F7C9
+_080E4294: .4byte gUnknown_03004B00
+_080E4298:
+ ldr r1, _080E42AC
+ movs r0, 0
+_080E429C:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42AC: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4264
+
+ thumb_func_start sub_80E42B0
+sub_80E42B0: @ 80E42B0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42C8
+ ldr r1, _080E42CC
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42C8: .4byte gUnknown_0202F7C9
+_080E42CC: .4byte gUnknown_02024C08
+ thumb_func_end sub_80E42B0
+
+ thumb_func_start sub_80E42D0
+sub_80E42D0: @ 80E42D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42F0
+ ldr r1, _080E42F4
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E42F8
+ ldr r1, _080E42FC
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42F0: .4byte gUnknown_0202F7C8
+_080E42F4: .4byte gUnknown_02024C07
+_080E42F8: .4byte gUnknown_0202F7C9
+_080E42FC: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E42D0
+
+ thumb_func_start sub_80E4300
+sub_80E4300: @ 80E4300
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4318
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E434E
+_080E4318:
+ ldr r0, _080E4354
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r1, _080E4358
+ ldrb r0, [r1]
+ lsls r0, 2
+ ldr r2, _080E435C
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080E4360
+ str r0, [r3]
+ ldr r1, _080E4364
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080E434E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4354: .4byte gTasks
+_080E4358: .4byte gUnknown_0202F7C8
+_080E435C: .4byte 0x02017800
+_080E4360: .4byte sub_80E4368
+_080E4364: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80E4300
+
+ thumb_func_start sub_80E4368
+sub_80E4368: @ 80E4368
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43B0
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080E43A8
+ ldr r0, _080E43B4
+ ldrb r3, [r0]
+ lsls r3, 2
+ ldr r0, _080E43B8
+ adds r3, r0
+ ldr r1, _080E43BC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080E43A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E43B0: .4byte gUnknown_03004B00
+_080E43B4: .4byte gUnknown_0202F7C8
+_080E43B8: .4byte 0x02017800
+_080E43BC: .4byte gTasks
+ thumb_func_end sub_80E4368
+
+ thumb_func_start sub_80E43C0
+sub_80E43C0: @ 80E43C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43D8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E43E0
+ ldr r0, _080E43DC
+ b _080E4408
+ .align 2, 0
+_080E43D8: .4byte gUnknown_020239F8
+_080E43DC: .4byte sub_80E4C34
+_080E43E0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4400
+ ldr r0, _080E43F8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080E4400
+ movs r4, 0x3
+ ldr r0, _080E43FC
+ b _080E4408
+ .align 2, 0
+_080E43F8: .4byte gGameVersion
+_080E43FC: .4byte task00_battle_intro_80BC6C8
+_080E4400:
+ ldr r1, _080E4434
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080E4408:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E4438
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4434: .4byte gUnknown_083DB56C
+_080E4438: .4byte gTasks
+ thumb_func_end sub_80E43C0
+
+ thumb_func_start sub_80E443C
+sub_80E443C: @ 80E443C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080E4474
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E4478
+ strh r1, [r0]
+ ldr r0, _080E447C
+ strh r1, [r0]
+ ldr r0, _080E4480
+ strh r1, [r0]
+ ldr r0, _080E4484
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ ldr r2, _080E4488
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4474: .4byte gUnknown_030042C0
+_080E4478: .4byte gUnknown_030041B4
+_080E447C: .4byte gUnknown_03004288
+_080E4480: .4byte gUnknown_03004280
+_080E4484: .4byte REG_BLDCNT
+_080E4488: .4byte 0x00003f3f
+ thumb_func_end sub_80E443C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80E448C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E44C4
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080E44C8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _080E44B8
+ b _080E46BE
+_080E44B8:
+ lsls r0, 2
+ ldr r1, _080E44CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E44C4: .4byte gUnknown_030042C0
+_080E44C8: .4byte gTasks
+_080E44CC: .4byte _080E44D0
+ .align 2, 0
+_080E44D0:
+ .4byte _080E44E4
+ .4byte _080E4514
+ .4byte _080E4540
+ .4byte _080E4588
+ .4byte _080E46B8
+_080E44E4:
+ ldr r0, _080E44FC
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4500
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080E450A
+ .align 2, 0
+_080E44FC: .4byte gUnknown_020239F8
+_080E4500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080E450A:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E46BE
+_080E4514:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E452C
+ b _080E46BE
+_080E452C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E453C
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E453C: .4byte REG_WININ
+_080E4540:
+ ldr r1, _080E457C
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4558
+ b _080E46BE
+_080E4558:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4580
+ ldrh r1, [r2]
+ ldr r0, _080E4584
+ ands r0, r1
+ strh r0, [r2]
+ b _080E46BE
+ .align 2, 0
+_080E457C: .4byte gUnknown_03004240
+_080E4580: .4byte gUnknown_02024DE8
+_080E4584: .4byte 0x0000fffe
+_080E4588:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E45A4
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E45D2
+_080E45A4:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080E45C4
+ ldr r2, _080E45BC
+ ldrh r1, [r2]
+ ldr r0, _080E45C0
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x2
+ b _080E45D0
+ .align 2, 0
+_080E45BC: .4byte gUnknown_030041B4
+_080E45C0: .4byte 0x0000ffb0
+_080E45C4:
+ ldr r2, _080E4690
+ ldrh r1, [r2]
+ ldr r0, _080E4694
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x1
+_080E45D0:
+ strh r0, [r2]
+_080E45D2:
+ ldr r2, _080E4698
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E45E6
+ ldr r3, _080E469C
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E45E6:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E45FE
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E45FE:
+ movs r3, 0
+ ldr r5, _080E46A0
+ mov r9, r5
+ ldr r7, _080E46A4
+ mov r6, r9
+ adds r5, r1, 0
+_080E460A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E460A
+ cmp r3, 0x9F
+ bgt _080E464E
+ ldr r7, _080E46A4
+ ldr r6, _080E46A0
+ ldr r1, _080E46A8
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4634:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4634
+_080E464E:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _080E46BE
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E46AC
+ ldr r2, _080E46B0
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E46B4
+ movs r5, 0x9C
+ lsls r5, 8
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E4690: .4byte gUnknown_030041B4
+_080E4694: .4byte 0x0000ffc8
+_080E4698: .4byte gUnknown_03004240
+_080E469C: .4byte 0xfffffc04
+_080E46A0: .4byte gUnknown_03004DC0
+_080E46A4: .4byte gUnknown_03004DE0
+_080E46A8: .4byte gTasks
+_080E46AC: .4byte 0x0600e000
+_080E46B0: .4byte 0x05000200
+_080E46B4: .4byte REG_BG1CNT
+_080E46B8:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E46BE:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 80E46CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E46F8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _080E470C
+ cmp r0, 0x3
+ bgt _080E46FC
+ cmp r0, 0x2
+ beq _080E4700
+ b _080E4714
+ .align 2, 0
+_080E46F8: .4byte gTasks
+_080E46FC:
+ cmp r0, 0x4
+ bne _080E4714
+_080E4700:
+ ldr r1, _080E4708
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080E4712
+ .align 2, 0
+_080E4708: .4byte gUnknown_030042C0
+_080E470C:
+ ldr r1, _080E4750
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080E4712:
+ strh r0, [r1]
+_080E4714:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _080E4778
+ ldr r7, _080E4754
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080E473A
+ ldr r1, _080E4758
+ adds r0, r1
+_080E473A:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080E475C
+ adds r0, r1, 0x4
+ b _080E475E
+ .align 2, 0
+_080E4750: .4byte gUnknown_030042C0
+_080E4754: .4byte gUnknown_030041B4
+_080E4758: .4byte 0x000001ff
+_080E475C:
+ adds r0, r1, 0x6
+_080E475E:
+ strh r0, [r4, 0x14]
+ ldr r2, _080E4794
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r4, 0x14
+ ldrsh r1, [r3, r4]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080E4778
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080E4778:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080E4788
+ b _080E4996
+_080E4788:
+ lsls r0, 2
+ ldr r1, _080E4798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4794: .4byte gTasks
+_080E4798: .4byte _080E479C
+ .align 2, 0
+_080E479C:
+ .4byte _080E47B0
+ .4byte _080E47E0
+ .4byte _080E480C
+ .4byte _080E485C
+ .4byte _080E4990
+_080E47B0:
+ ldr r1, _080E47CC
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080E47D0
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E47D4
+ strh r3, [r2, 0xC]
+ b _080E47D8
+ .align 2, 0
+_080E47CC: .4byte gTasks
+_080E47D0: .4byte gUnknown_020239F8
+_080E47D4:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080E47D8:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080E4996
+_080E47E0:
+ ldr r0, _080E4804
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E47F6
+ b _080E4996
+_080E47F6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4808
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4804: .4byte gTasks
+_080E4808: .4byte REG_WININ
+_080E480C:
+ ldr r1, _080E484C
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4824
+ b _080E4996
+_080E4824:
+ ldr r0, _080E4850
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4854
+ ldrh r1, [r2]
+ ldr r0, _080E4858
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4996
+ .align 2, 0
+_080E484C: .4byte gUnknown_03004240
+_080E4850: .4byte gTasks
+_080E4854: .4byte gUnknown_02024DE8
+_080E4858: .4byte 0x0000fffe
+_080E485C:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r3, [r1, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _080E4898
+ subs r0, r3, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080E48B8
+ ldr r1, _080E488C
+ ldr r4, _080E4890
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r0, _080E4894
+ strh r3, [r0]
+ b _080E48B8
+ .align 2, 0
+_080E488C: .4byte REG_BLDCNT
+_080E4890: .4byte 0x00001842
+_080E4894: .4byte REG_BLDY
+_080E4898:
+ ldrh r3, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r3
+ cmp r0, 0
+ beq _080E48B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E48B8
+ adds r0, r3, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080E48B8:
+ ldr r3, _080E4970
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E48CC
+ ldr r4, _080E4974
+ adds r0, r1, r4
+ strh r0, [r3]
+_080E48CC:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E48E0
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E48E0:
+ movs r3, 0
+ ldr r4, _080E4978
+ mov r8, r4
+ ldr r0, _080E497C
+ mov r12, r0
+ mov r7, r8
+ adds r4, r1, 0
+_080E48EE:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E48EE
+ cmp r3, 0x9F
+ bgt _080E4932
+ ldr r1, _080E497C
+ mov r12, r1
+ ldr r7, _080E4978
+ ldr r1, _080E4980
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4918:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4918
+_080E4932:
+ ldr r1, _080E4980
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4996
+ movs r0, 0x3
+ mov r4, r8
+ strb r0, [r4, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4984
+ ldr r2, _080E4988
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E498C
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4970: .4byte gUnknown_03004240
+_080E4974: .4byte 0xfffffc04
+_080E4978: .4byte gUnknown_03004DC0
+_080E497C: .4byte gUnknown_03004DE0
+_080E4980: .4byte gTasks
+_080E4984: .4byte 0x0600e000
+_080E4988: .4byte 0x05000200
+_080E498C: .4byte REG_BG1CNT
+_080E4990:
+ adds r0, r5, 0
+ bl sub_80E443C
+_080E4996:
+ ldr r0, _080E49B8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r4, 0x8
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x4
+ beq _080E49AC
+ ldr r1, _080E49BC
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E49AC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E49B8: .4byte gTasks
+_080E49BC: .4byte REG_BLDALPHA
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80E49C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E49F4
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080E49F8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bls _080E49EA
+ b _080E4C06
+_080E49EA:
+ lsls r0, 2
+ ldr r1, _080E49FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E49F4: .4byte gUnknown_030042C0
+_080E49F8: .4byte gTasks
+_080E49FC: .4byte _080E4A00
+ .align 2, 0
+_080E4A00:
+ .4byte _080E4A14
+ .4byte _080E4A6C
+ .4byte _080E4A9C
+ .4byte _080E4AEC
+ .4byte _080E4C00
+_080E4A14:
+ ldr r1, _080E4A48
+ ldr r3, _080E4A4C
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080E4A50
+ ldr r6, _080E4A54
+ adds r2, r6, 0
+ strh r2, [r0]
+ adds r1, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080E4A58
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ strh r2, [r3, 0x10]
+ ldr r0, _080E4A5C
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4A60
+ movs r0, 0x10
+ b _080E4A62
+ .align 2, 0
+_080E4A48: .4byte REG_BLDCNT
+_080E4A4C: .4byte 0x00001842
+_080E4A50: .4byte REG_BLDALPHA
+_080E4A54: .4byte 0x00000808
+_080E4A58: .4byte gTasks
+_080E4A5C: .4byte gUnknown_020239F8
+_080E4A60:
+ movs r0, 0x1
+_080E4A62:
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E4C06
+_080E4A6C:
+ ldr r0, _080E4A94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4A84
+ b _080E4C06
+_080E4A84:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4A98
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4A94: .4byte gTasks
+_080E4A98: .4byte REG_WININ
+_080E4A9C:
+ ldr r1, _080E4ADC
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4AB4
+ b _080E4C06
+_080E4AB4:
+ ldr r0, _080E4AE0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4AE4
+ ldrh r1, [r2]
+ ldr r0, _080E4AE8
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4C06
+ .align 2, 0
+_080E4ADC: .4byte gUnknown_03004240
+_080E4AE0: .4byte gTasks
+_080E4AE4: .4byte gUnknown_02024DE8
+_080E4AE8: .4byte 0x0000fffe
+_080E4AEC:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E4B06
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E4B26
+_080E4B06:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B26
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E4B26
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080E4B26:
+ ldr r2, _080E4BE0
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B3A
+ ldr r3, _080E4BE4
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4B3A:
+ mov r6, r12
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4B50
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4B50:
+ movs r3, 0
+ ldr r6, _080E4BE8
+ mov r8, r6
+ ldr r7, _080E4BEC
+ adds r5, r1, 0
+_080E4B5A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4B5A
+ cmp r3, 0x9F
+ bgt _080E4B9E
+ ldr r7, _080E4BEC
+ ldr r6, _080E4BE8
+ ldr r1, _080E4BF0
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4B84:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4B84
+_080E4B9E:
+ ldr r1, _080E4BF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4C06
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4BF4
+ ldr r2, _080E4BF8
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E4BFC
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4BE0: .4byte gUnknown_03004240
+_080E4BE4: .4byte 0xfffffc04
+_080E4BE8: .4byte gUnknown_03004DC0
+_080E4BEC: .4byte gUnknown_03004DE0
+_080E4BF0: .4byte gTasks
+_080E4BF4: .4byte 0x0600e000
+_080E4BF8: .4byte 0x05000200
+_080E4BFC: .4byte REG_BG1CNT
+_080E4C00:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E4C06:
+ ldr r0, _080E4C2C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ cmp r0, 0x4
+ beq _080E4C1E
+ ldr r1, _080E4C30
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E4C1E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4C2C: .4byte gTasks
+_080E4C30: .4byte REG_BLDALPHA
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80E4C34
+sub_80E4C34: @ 80E4C34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E4C80
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _080E4CAA
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E4CAA
+ ldr r2, _080E4C84
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080E4C72
+ cmp r1, 0x4F
+ bhi _080E4C8C
+_080E4C72:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080E4C88
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080E4CAA
+ .align 2, 0
+_080E4C80: .4byte gTasks
+_080E4C84: .4byte gUnknown_030042C0
+_080E4C88: .4byte gUnknown_03004288
+_080E4C8C:
+ str r5, [sp]
+ ldr r1, _080E4CCC
+ ldr r4, _080E4CD0
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080E4CD4
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080E4CAA:
+ ldr r0, _080E4CD8
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r12, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080E4CC2
+ b _080E4EBA
+_080E4CC2:
+ lsls r0, r1, 2
+ ldr r1, _080E4CDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4CCC: .4byte 0x0600e000
+_080E4CD0: .4byte 0x05000200
+_080E4CD4: .4byte 0x0600f000
+_080E4CD8: .4byte gTasks
+_080E4CDC: .4byte _080E4CE0
+ .align 2, 0
+_080E4CE0:
+ .4byte _080E4CF4
+ .4byte _080E4D06
+ .4byte _080E4DA8
+ .4byte _080E4DEC
+ .4byte _080E4EB4
+_080E4CF4:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x10
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E4EBA
+_080E4D06:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4D1C
+ b _080E4EBA
+_080E4D1C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r5, _080E4D8C
+ ldr r4, _080E4D90
+ ldr r3, _080E4D94
+ adds r6, r4, r3
+ ldrb r0, [r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r6
+ ldr r3, _080E4D98
+ str r3, [r0]
+ ldr r0, _080E4D9C
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r1, r8
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r3, [r0]
+ ldr r1, _080E4DA0
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E4DA4
+ b _080E4E94
+ .align 2, 0
+_080E4D8C: .4byte gSprites
+_080E4D90: .4byte 0x02000000
+_080E4D94: .4byte 0x0001608a
+_080E4D98: .4byte sub_800FE20
+_080E4D9C: .4byte 0x0001608b
+_080E4DA0: .4byte REG_WININ
+_080E4DA4: .4byte 0x00003f06
+_080E4DA8:
+ ldr r1, _080E4DE0
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4DC0
+ b _080E4EBA
+_080E4DC0:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4DE4
+ ldrh r1, [r2]
+ ldr r0, _080E4DE8
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4EBA
+ .align 2, 0
+_080E4DE0: .4byte gUnknown_03004240
+_080E4DE4: .4byte gUnknown_02024DE8
+_080E4DE8: .4byte 0x0000fffe
+_080E4DEC:
+ ldr r2, _080E4E9C
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4E00
+ ldr r3, _080E4EA0
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4E00:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4E16
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4E16:
+ movs r3, 0
+ ldr r0, _080E4EA4
+ mov r9, r0
+ ldr r2, _080E4EA8
+ mov r8, r2
+ mov r7, r9
+ adds r4, r1, 0
+_080E4E24:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4E24
+ cmp r3, 0x9F
+ bgt _080E4E68
+ ldr r0, _080E4EA8
+ mov r8, r0
+ ldr r7, _080E4EA4
+ ldr r1, _080E4EAC
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4E4E:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4E4E
+_080E4E68:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080E4EBA
+ movs r0, 0x3
+ mov r2, r9
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4EB0
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+_080E4E94:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E4EBA
+ .align 2, 0
+_080E4E9C: .4byte gUnknown_03004240
+_080E4EA0: .4byte 0xfffffc04
+_080E4EA4: .4byte gUnknown_03004DC0
+_080E4EA8: .4byte gUnknown_03004DE0
+_080E4EAC: .4byte gTasks
+_080E4EB0: .4byte REG_BG1CNT
+_080E4EB4:
+ adds r0, r6, 0
+ bl sub_80E443C
+_080E4EBA:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E4C34
+
+ thumb_func_start unref_sub_80E4EC8
+unref_sub_80E4EC8: @ 80E4EC8
+ push {r4,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0x80
+ lsls r4, 7
+ str r4, [sp]
+ movs r4, 0x1E
+ str r4, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_80E4EF8
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80E4EC8
+
+ thumb_func_start sub_80E4EF8
+sub_80E4EF8: @ 80E4EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r1
+ adds r4, r2, 0
+ ldr r1, [sp, 0x24]
+ mov r8, r1
+ ldr r1, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r7, r9
+ lsls r7, 24
+ adds r0, r7, 0
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ mov r3, r8
+ lsls r3, 16
+ mov r8, r3
+ lsrs r6, r3, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4FCC
+ ldr r1, _080E4FD0
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, _080E4FD4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r2, 0x4]
+ ldr r0, _080E4FD8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ mov r0, r8
+ lsrs r0, 21
+ lsls r5, 9
+ subs r5, r0, r5
+ mov r0, r9
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E4FBC
+ mov r9, r1
+ mov r1, r10
+ lsls r1, 1
+ mov r8, r1
+ lsls r7, 11
+ mov r12, r7
+_080E4F86:
+ mov r2, r10
+ adds r4, r2, 0
+ adds r4, 0x8
+ adds r1, r0, 0x1
+ cmp r2, r4
+ bge _080E4FB6
+ ldr r3, [sp]
+ lsls r6, r3, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ add r0, r12
+ mov r7, r8
+ adds r3, r7, r0
+ subs r2, r4, r2
+_080E4FA6:
+ adds r0, r5, 0
+ orrs r0, r6
+ strh r0, [r3]
+ adds r5, 0x1
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E4FA6
+_080E4FB6:
+ adds r0, r1, 0
+ cmp r0, r9
+ blt _080E4F86
+_080E4FBC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4FCC: .4byte 0x040000d4
+_080E4FD0: .4byte gUnknown_081FAF4C
+_080E4FD4: .4byte gUnknown_02024E84
+_080E4FD8: .4byte 0x80000400
+ thumb_func_end sub_80E4EF8
+
+ thumb_func_start unref_sub_80E4FDC
+unref_sub_80E4FDC: @ 80E4FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, _080E509C
+ ldr r0, _080E50A0
+ lsrs r2, 22
+ adds r2, r0
+ lsrs r3, 13
+ ldr r0, [r2]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080E50A4
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E508C
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080E5054:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080E5086
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_080E5076:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E5076
+_080E5086:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080E5054
+_080E508C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E509C: .4byte 0x040000d4
+_080E50A0: .4byte gUnknown_081FAF4C
+_080E50A4: .4byte 0x80000400
+ thumb_func_end unref_sub_80E4FDC
+
+ thumb_func_start MovePlayerOnBike
+MovePlayerOnBike: @ 80E50A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _080E50CC
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E50D0
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnMachBike
+ b _080E50D8
+ .align 2, 0
+_080E50CC: .4byte gPlayerAvatar
+_080E50D0:
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnAcroBike
+_080E50D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end MovePlayerOnBike
+
+ thumb_func_start MovePlayerOnMachBike
+MovePlayerOnMachBike: @ 80E50E0
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ strb r0, [r1]
+ ldr r4, _080E510C
+ mov r0, sp
+ bl CheckMovementInputMachBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E510C: .4byte gUnknown_083DB594
+ thumb_func_end MovePlayerOnMachBike
+
+ thumb_func_start CheckMovementInputMachBike
+CheckMovementInputMachBike: @ 80E5110
+ push {r4,lr}
+ adds r4, r0, 0
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5138
+ strb r0, [r4]
+ ldr r2, _080E5134
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E514C
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E5160
+ .align 2, 0
+_080E5134: .4byte gPlayerAvatar
+_080E5138:
+ ldr r2, _080E5154
+ cmp r1, r3
+ beq _080E515C
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x2
+ beq _080E515C
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _080E5158
+ strb r3, [r4]
+_080E514C:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ movs r0, 0x3
+ b _080E5160
+ .align 2, 0
+_080E5154: .4byte gPlayerAvatar
+_080E5158:
+ movs r0, 0x1
+ b _080E515E
+_080E515C:
+ movs r0, 0x2
+_080E515E:
+ strb r0, [r2, 0x2]
+_080E5160:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputMachBike
+
+ thumb_func_start sub_80E5168
+sub_80E5168: @ 80E5168
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ bl sub_80E6024
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5168
+
+ thumb_func_start sub_80E517C
+sub_80E517C: @ 80E517C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E51AC
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51B0
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E51B4
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ bl sub_80E6024
+ b _080E51BE
+ .align 2, 0
+_080E51AC: .4byte gPlayerAvatar
+_080E51B0: .4byte gMapObjects
+_080E51B4:
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl sub_80E5168
+_080E51BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E517C
+
+ thumb_func_start sub_80E51C4
+sub_80E51C4: @ 80E51C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r6, _080E51F8
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51FC
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E520A
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5200
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5270
+ b _080E5266
+ .align 2, 0
+_080E51F8: .4byte gPlayerAvatar
+_080E51FC: .4byte gMapObjects
+_080E5200:
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5168
+ b _080E5266
+_080E520A:
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5242
+ cmp r4, 0x6
+ bne _080E522C
+ adds r0, r5, 0
+ bl PlayerJumpLedge
+ b _080E5266
+_080E522C:
+ bl sub_80E6024
+ subs r0, r4, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5266
+ adds r0, r5, 0
+ bl PlayerOnBikeCollide
+ b _080E5266
+_080E5242:
+ ldr r1, _080E526C
+ ldrb r0, [r6, 0xA]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl _call_via_r1
+ ldrb r2, [r6, 0xA]
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ adds r0, r2, r0
+ strb r0, [r6, 0xB]
+ cmp r1, 0x1
+ bhi _080E5266
+ adds r0, r2, 0x1
+ strb r0, [r6, 0xA]
+_080E5266:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E526C: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E51C4
+
+ thumb_func_start sub_80E5270
+sub_80E5270: @ 80E5270
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ ldr r6, _080E52A8
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5286
+ subs r0, 0x1
+ strb r0, [r6, 0xB]
+ strb r0, [r6, 0xA]
+_080E5286:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E52C2
+ cmp r5, 0x6
+ bne _080E52AC
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E52D2
+ .align 2, 0
+_080E52A8: .4byte gPlayerAvatar
+_080E52AC:
+ bl sub_80E6024
+ subs r0, r5, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E52D2
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E52D2
+_080E52C2:
+ ldr r0, _080E52D8
+ ldrb r1, [r6, 0xA]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r7, 0
+ bl _call_via_r1
+_080E52D2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E52D8: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E5270
+
+ thumb_func_start MovePlayerOnAcroBike
+MovePlayerOnAcroBike: @ 80E52DC
+ push {r4,lr}
+ sub sp, 0x4
+ mov r3, sp
+ strb r0, [r3]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5310
+ mov r0, sp
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5310: .4byte gUnknown_083DB5B0
+ thumb_func_end MovePlayerOnAcroBike
+
+ thumb_func_start CheckMovementInputAcroBike
+CheckMovementInputAcroBike: @ 80E5314
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5338
+ ldr r3, _080E533C
+ ldrb r3, [r3, 0x8]
+ lsls r3, 2
+ adds r3, r4
+ ldr r3, [r3]
+ bl _call_via_r3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5338: .4byte gUnknown_083DB5E4
+_080E533C: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBike
+
+ thumb_func_start CheckMovementInputAcroBikeNormal
+CheckMovementInputAcroBikeNormal: @ 80E5340
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E5374
+ movs r0, 0
+ strb r0, [r2, 0xA]
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5380
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080E5378
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0x2
+ strb r0, [r2, 0x8]
+ movs r0, 0x3
+ b _080E53D4
+ .align 2, 0
+_080E5374: .4byte gPlayerAvatar
+_080E5378:
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E53D4
+_080E5380:
+ cmp r1, r3
+ bne _080E53A6
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080E539E
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E539E
+ adds r0, 0x1
+ strb r0, [r2, 0xB]
+ movs r0, 0x4
+ strb r0, [r2, 0x8]
+ movs r0, 0xB
+ b _080E53D4
+_080E539E:
+ ldrb r0, [r4]
+ ldr r2, _080E53CC
+ cmp r0, r3
+ beq _080E53D0
+_080E53A6:
+ ldr r0, _080E53CC
+ ldrb r1, [r0, 0x2]
+ adds r2, r0, 0
+ cmp r1, 0x2
+ beq _080E53D0
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ ldrb r0, [r4]
+ strb r0, [r2, 0x9]
+ strb r1, [r2, 0x2]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E53D4
+ .align 2, 0
+_080E53CC: .4byte gPlayerAvatar
+_080E53D0:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+_080E53D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeNormal
+
+ thumb_func_start CheckMovementInputAcroBikeChangingDirection
+CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080E5404
+ ldrb r0, [r4, 0x9]
+ strb r0, [r5]
+ ldrb r0, [r4, 0xA]
+ adds r0, 0x1
+ strb r0, [r4, 0xA]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _080E5408
+ movs r0, 0x1
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ bl sub_80E6024
+ movs r0, 0x1
+ b _080E544E
+ .align 2, 0
+_080E5404: .4byte gPlayerAvatar
+_080E5408:
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_80E5C2C
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E544A
+ bl sub_80E6024
+ movs r0, 0x1
+ strb r0, [r4, 0xB]
+ adds r0, r6, 0
+ bl GetOppositeDirection
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E543E
+ movs r0, 0x6
+ strb r0, [r4, 0x8]
+ movs r0, 0x9
+ b _080E544E
+_080E543E:
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ strb r0, [r4, 0x8]
+ movs r0, 0x8
+ b _080E544E
+_080E544A:
+ strb r6, [r5]
+ movs r0, 0
+_080E544E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeChangingDirection
+
+ thumb_func_start CheckMovementInputAcroBikeStandingWheelie
+CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080E54A0
+ ldrb r1, [r5, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E54A4
+ adds r1, r0, r1
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ movs r0, 0x2
+ ands r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0
+ bne _080E54A8
+ strb r4, [r5, 0xA]
+ ldrb r0, [r1, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080E54AE
+ strb r6, [r7]
+ strb r0, [r5, 0x8]
+ bl sub_80E6024
+ movs r0, 0x4
+ b _080E54EC
+ .align 2, 0
+_080E54A0: .4byte gPlayerAvatar
+_080E54A4: .4byte gMapObjects
+_080E54A8:
+ ldrb r0, [r5, 0xA]
+ adds r0, 0x1
+ strb r0, [r5, 0xA]
+_080E54AE:
+ ldr r1, _080E54C4
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0x27
+ bls _080E54C8
+ strb r6, [r7]
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0x6
+ b _080E54EC
+ .align 2, 0
+_080E54C4: .4byte gPlayerAvatar
+_080E54C8:
+ ldrb r0, [r7]
+ cmp r0, r6
+ bne _080E54DE
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0xA
+ b _080E54EC
+_080E54DE:
+ cmp r0, 0
+ beq _080E54E8
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ b _080E54EA
+_080E54E8:
+ strb r6, [r7]
+_080E54EA:
+ movs r0, 0x5
+_080E54EC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeStandingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeBunnyHop
+CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E5554
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5558
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5566
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080E555C
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E558A
+ .align 2, 0
+_080E5554: .4byte gPlayerAvatar
+_080E5558: .4byte gMapObjects
+_080E555C:
+ strb r5, [r6]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x8]
+ movs r0, 0x4
+ b _080E558A
+_080E5566:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5570
+ strb r5, [r6]
+ b _080E557C
+_080E5570:
+ cmp r0, r2
+ beq _080E5582
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5582
+ movs r0, 0x1
+_080E557C:
+ strb r0, [r4, 0x2]
+ movs r0, 0x6
+ b _080E558A
+_080E5582:
+ ldr r1, _080E5598
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x7
+_080E558A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5598: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeBunnyHop
+
+ thumb_func_start CheckMovementInputAcroBikeMovingWheelie
+CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E55F8
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E55FC
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r9, r0
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5634
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080E5620
+ strb r1, [r4, 0x8]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5600
+ strb r5, [r6]
+ b _080E560A
+ .align 2, 0
+_080E55F8: .4byte gPlayerAvatar
+_080E55FC: .4byte gMapObjects
+_080E5600:
+ cmp r0, r5
+ beq _080E5610
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5610
+_080E560A:
+ strb r1, [r4, 0x2]
+ movs r0, 0x4
+ b _080E5664
+_080E5610:
+ ldr r1, _080E561C
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xC
+ b _080E5664
+ .align 2, 0
+_080E561C: .4byte gPlayerAvatar
+_080E5620:
+ mov r0, r9
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E5664
+_080E5634:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E564A
+ strb r5, [r6]
+ mov r1, r9
+ strb r1, [r4, 0x8]
+ strb r0, [r4, 0x2]
+ bl sub_80E6024
+ movs r0, 0x5
+ b _080E5664
+_080E564A:
+ cmp r2, r0
+ beq _080E565C
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E565C
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ b _080E5664
+_080E565C:
+ ldr r1, _080E5674
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xA
+_080E5664:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5674: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeMovingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode5
+CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _080E56CC
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E56D0
+ adds r0, r1
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 28
+ lsrs r1, 28
+ bl FieldObjectSetDirection
+ movs r0, 0
+ strb r0, [r6, 0x8]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56CC: .4byte gPlayerAvatar
+_080E56D0: .4byte gMapObjects
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode5
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode6
+CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E56F4
+ movs r3, 0
+ strb r3, [r4, 0x8]
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56F4: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode6
+
+ thumb_func_start sub_80E56F8
+sub_80E56F8: @ 80E56F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E56F8
+
+ thumb_func_start sub_80E5708
+sub_80E5708: @ 80E5708
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E573C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5740
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E572E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E572E:
+ adds r0, r4, 0
+ bl PlayerFaceDirection
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E573C: .4byte gPlayerAvatar
+_080E5740: .4byte gMapObjects
+ thumb_func_end sub_80E5708
+
+ thumb_func_start sub_80E5744
+sub_80E5744: @ 80E5744
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5774
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5778
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E577C
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E56F8
+ b _080E57B6
+ .align 2, 0
+_080E5774: .4byte gPlayerAvatar
+_080E5778: .4byte gMapObjects
+_080E577C:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E57B0
+ cmp r1, 0x6
+ bne _080E579E
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E57B6
+_080E579E:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E57B6
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E57B6
+_080E57B0:
+ adds r0, r6, 0
+ bl npc_use_some_d2s
+_080E57B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5744
+
+ thumb_func_start sub_80E57BC
+sub_80E57BC: @ 80E57BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E57F0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E57F4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E57E2
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E57E2:
+ adds r0, r4, 0
+ bl sub_805951C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E57F0: .4byte gPlayerAvatar
+_080E57F4: .4byte gMapObjects
+ thumb_func_end sub_80E57BC
+
+ thumb_func_start sub_80E57F8
+sub_80E57F8: @ 80E57F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E582C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5830
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E581E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E581E:
+ adds r0, r4, 0
+ bl sub_8059534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E582C: .4byte gPlayerAvatar
+_080E5830: .4byte gMapObjects
+ thumb_func_end sub_80E57F8
+
+ thumb_func_start sub_80E5834
+sub_80E5834: @ 80E5834
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E5868
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E586C
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E585A
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E585A:
+ adds r0, r4, 0
+ bl sub_8059504
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5868: .4byte gPlayerAvatar
+_080E586C: .4byte gMapObjects
+ thumb_func_end sub_80E5834
+
+ thumb_func_start sub_80E5870
+sub_80E5870: @ 80E5870
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58A4
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58A8
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5896
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E5896:
+ adds r0, r4, 0
+ bl sub_805954C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E58A4: .4byte gPlayerAvatar
+_080E58A8: .4byte gMapObjects
+ thumb_func_end sub_80E5870
+
+ thumb_func_start sub_80E58AC
+sub_80E58AC: @ 80E58AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58D8
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58DC
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E58E0
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E5870
+ b _080E591A
+ .align 2, 0
+_080E58D8: .4byte gPlayerAvatar
+_080E58DC: .4byte gMapObjects
+_080E58E0:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E5914
+ cmp r1, 0x9
+ beq _080E5914
+ cmp r1, 0x6
+ bne _080E58FE
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E591A
+_080E58FE:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E591A
+ cmp r1, 0xB
+ bhi _080E5914
+ adds r0, r4, 0
+ bl sub_80E5870
+ b _080E591A
+_080E5914:
+ adds r0, r4, 0
+ bl sub_8059570
+_080E591A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E58AC
+
+ thumb_func_start sub_80E5920
+sub_80E5920: @ 80E5920
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _080E5954
+ cmp r0, 0x7
+ beq _080E5980
+ cmp r0, 0x9
+ bls _080E594C
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl sub_80E5EC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5954
+_080E594C:
+ adds r0, r5, 0
+ bl sub_80E5708
+ b _080E5980
+_080E5954:
+ ldr r0, _080E5988
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E598C
+ adds r4, r0
+ movs r0, 0x22
+ bl PlaySE
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80608A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl player_npc_set_state_and_x22_etc
+_080E5980:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5988: .4byte gPlayerAvatar
+_080E598C: .4byte gMapObjects
+ thumb_func_end sub_80E5920
+
+ thumb_func_start sub_80E5990
+sub_80E5990: @ 80E5990
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80595B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5990
+
+ thumb_func_start sub_80E59A0
+sub_80E59A0: @ 80E59A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E59D0
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E59D4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E59D8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059504
+ b _080E5A28
+ .align 2, 0
+_080E59D0: .4byte gPlayerAvatar
+_080E59D4: .4byte gMapObjects
+_080E59D8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5A1E
+ cmp r1, 0x6
+ bne _080E59FA
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5A28
+_080E59FA:
+ cmp r1, 0x9
+ beq _080E5A0E
+ cmp r1, 0x4
+ bhi _080E5A28
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5A16
+_080E5A0E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5A28
+_080E5A16:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5A28
+_080E5A1E:
+ adds r0, r6, 0
+ bl sub_8059618
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5A28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E59A0
+
+ thumb_func_start sub_80E5A30
+sub_80E5A30: @ 80E5A30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E5A60
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5A64
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5A68
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_805951C
+ b _080E5AB8
+ .align 2, 0
+_080E5A60: .4byte gPlayerAvatar
+_080E5A64: .4byte gMapObjects
+_080E5A68:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5AAE
+ cmp r1, 0x6
+ bne _080E5A8A
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5AB8
+_080E5A8A:
+ cmp r1, 0x9
+ beq _080E5A9E
+ cmp r1, 0x4
+ bhi _080E5AB8
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5AA6
+_080E5A9E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5AB8
+_080E5AA6:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5AB8
+_080E5AAE:
+ adds r0, r6, 0
+ bl sub_8059600
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5AB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5A30
+
+ thumb_func_start sub_80E5AC0
+sub_80E5AC0: @ 80E5AC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5AF0
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5AF4
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5AF8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059534
+ b _080E5B32
+ .align 2, 0
+_080E5AF0: .4byte gPlayerAvatar
+_080E5AF4: .4byte gMapObjects
+_080E5AF8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5B2C
+ cmp r1, 0x6
+ bne _080E5B1A
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E5B32
+_080E5B1A:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5B32
+ adds r0, r4, 0
+ bl sub_8059534
+ b _080E5B32
+_080E5B2C:
+ adds r0, r6, 0
+ bl sub_8059630
+_080E5B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5AC0
+
+ thumb_func_start sub_80E5B38
+sub_80E5B38: @ 80E5B38
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r0, _080E5B5C
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5B56
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_80E5B60
+_080E5B56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5B5C: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5B38
+
+ thumb_func_start sub_80E5B60
+sub_80E5B60: @ 80E5B60
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r5, 0
+ bl sub_80E5CF4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r4, _080E5B88
+ ldr r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5B8C
+ ldrb r0, [r4, 0x14]
+ cmp r0, 0xFE
+ bhi _080E5B96
+ adds r0, 0x1
+ strb r0, [r4, 0x14]
+ b _080E5B96
+ .align 2, 0
+_080E5B88: .4byte gPlayerAvatar
+_080E5B8C:
+ adds r0, r2, 0
+ bl sub_80E5C7C
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5B96:
+ movs r0, 0xF
+ adds r2, r5, 0
+ ands r2, r0
+ ldr r4, _080E5BB4
+ ldr r0, [r4, 0x10]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5BB8
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0xFE
+ bhi _080E5BC2
+ adds r0, 0x1
+ strb r0, [r4, 0x1C]
+ b _080E5BC2
+ .align 2, 0
+_080E5BB4: .4byte gPlayerAvatar
+_080E5BB8:
+ adds r0, r2, 0
+ bl sub_80E5CB8
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5BC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5B60
+
+ thumb_func_start sub_80E5BC8
+sub_80E5BC8: @ 80E5BC8
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r2, 0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080E5BF2
+ ldr r5, _080E5C0C
+_080E5BD8:
+ adds r0, r2, r5
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _080E5C08
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BD8
+_080E5BF2:
+ movs r2, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080E5C22
+ ldr r3, _080E5C10
+_080E5BFC:
+ adds r0, r2, r3
+ adds r1, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080E5C14
+_080E5C08:
+ movs r0, 0
+ b _080E5C24
+ .align 2, 0
+_080E5C0C: .4byte gUnknown_0202E86C
+_080E5C10: .4byte gUnknown_0202E874
+_080E5C14:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BFC
+_080E5C22:
+ movs r0, 0x1
+_080E5C24:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5BC8
+
+ thumb_func_start sub_80E5C2C
+sub_80E5C2C: @ 80E5C2C
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_080E5C32:
+ ldr r0, _080E5C64
+ adds r4, r5, r0
+ ldr r0, _080E5C68
+ ldr r1, [r0, 0xC]
+ ldr r2, [r0, 0x10]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ ldr r0, [r4, 0xC]
+ ands r2, r0
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x4]
+ cmp r2, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x14]
+ bl sub_80E5BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5C6C
+ ldrb r0, [r4, 0x18]
+ b _080E5C76
+ .align 2, 0
+_080E5C64: .4byte gUnknown_083DB608
+_080E5C68: .4byte gPlayerAvatar
+_080E5C6C:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ bls _080E5C32
+ movs r0, 0
+_080E5C76:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5C2C
+
+ thumb_func_start sub_80E5C7C
+sub_80E5C7C: @ 80E5C7C
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CB4
+ ldr r2, [r3, 0xC]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0xC]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x14
+_080E5C98:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5C98
+ movs r0, 0x1
+ strb r0, [r4, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CB4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5C7C
+
+ thumb_func_start sub_80E5CB8
+sub_80E5CB8: @ 80E5CB8
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CF0
+ ldr r2, [r3, 0x10]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0x10]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x1C
+_080E5CD4:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5CD4
+ movs r0, 0x1
+ strb r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CF0: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5CB8
+
+ thumb_func_start sub_80E5CF4
+sub_80E5CF4: @ 80E5CF4
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D08
+ movs r0, 0x2
+ b _080E5D2E
+_080E5D08:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D14
+ movs r0, 0x1
+ b _080E5D2E
+_080E5D14:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D20
+ movs r0, 0x3
+ b _080E5D2E
+_080E5D20:
+ movs r0, 0x10
+ ands r2, r0
+ cmp r2, 0
+ bne _080E5D2C
+ movs r0, 0
+ b _080E5D2E
+_080E5D2C:
+ movs r0, 0x4
+_080E5D2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5CF4
+
+ thumb_func_start sub_80E5D34
+sub_80E5D34: @ 80E5D34
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080E5D98
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E5D9C
+ adds r4, r0
+ ldrh r1, [r4, 0x10]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldrh r0, [r4, 0x12]
+ mov r5, sp
+ adds r5, 0x6
+ strh r0, [r5]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ bl MoveCoords
+ add r0, sp, 0x4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ add r1, sp, 0x4
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_80E5DA0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5D98: .4byte gPlayerAvatar
+_080E5D9C: .4byte gMapObjects
+ thumb_func_end sub_80E5D34
+
+ thumb_func_start sub_80E5DA0
+sub_80E5DA0: @ 80E5DA0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ str r5, [sp]
+ bl CheckForFieldObjectCollision
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _080E5DE0
+ cmp r4, 0
+ bne _080E5DDC
+ adds r0, r5, 0
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5DD8
+ movs r4, 0x2
+_080E5DD8:
+ cmp r4, 0
+ beq _080E5DE0
+_080E5DDC:
+ bl sub_80E5E4C
+_080E5DE0:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DA0
+
+ thumb_func_start sub_80E5DEC
+sub_80E5DEC: @ 80E5DEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E04
+ ldr r0, _080E5E08
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x8
+ bne _080E5E0C
+_080E5E04:
+ movs r0, 0x1
+ b _080E5E0E
+ .align 2, 0
+_080E5E08: .4byte gMapHeader
+_080E5E0C:
+ movs r0, 0
+_080E5E0E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DEC
+
+ thumb_func_start IsRunningDisallowedByMetatile
+IsRunningDisallowedByMetatile: @ 80E5E14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsRunningDisallowed
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E3E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5E42
+ bl PlayerGetZCoord
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080E5E42
+_080E5E3E:
+ movs r0, 0x1
+ b _080E5E44
+_080E5E42:
+ movs r0, 0
+_080E5E44:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsRunningDisallowedByMetatile
+
+ thumb_func_start sub_80E5E4C
+sub_80E5E4C: @ 80E5E4C
+ push {lr}
+ ldr r0, _080E5E68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E5E62
+ ldr r1, _080E5E6C
+ ldrb r0, [r1]
+ cmp r0, 0x63
+ bhi _080E5E62
+ adds r0, 0x1
+ strb r0, [r1]
+_080E5E62:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5E68: .4byte gUnknown_02039250
+_080E5E6C: .4byte gUnknown_02039251
+ thumb_func_end sub_80E5E4C
+
+ thumb_func_start sub_80E5E70
+sub_80E5E70: @ 80E5E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ movs r1, 0xFD
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080E5E9A
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ b _080E5EAC
+_080E5E9A:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r5, 0
+ bl MetatileBehavior_IsHorizontalRail
+_080E5EAC:
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5EB6
+_080E5EB2:
+ movs r0, 0
+ b _080E5EB8
+_080E5EB6:
+ movs r0, 0x1
+_080E5EB8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5E70
+
+ thumb_func_start sub_80E5EC0
+sub_80E5EC0: @ 80E5EC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r1, r3
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _080E5EE0
+ cmp r0, 0xA
+ beq _080E5EE8
+ cmp r0, 0xC
+ bne _080E5EEC
+ b _080E5EE8
+_080E5EE0:
+ cmp r2, 0xB
+ beq _080E5EE8
+ cmp r2, 0xD
+ bne _080E5EEC
+_080E5EE8:
+ movs r0, 0
+ b _080E5EEE
+_080E5EEC:
+ movs r0, 0x1
+_080E5EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EC0
+
+ thumb_func_start sub_80E5EF4
+sub_80E5EF4: @ 80E5EF4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080E5F30
+ ldrb r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5F34
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5F34
+ movs r0, 0
+ b _080E5F36
+ .align 2, 0
+_080E5F30: .4byte gPlayerAvatar
+_080E5F34:
+ movs r0, 0x1
+_080E5F36:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EF4
+
+ thumb_func_start player_should_look_direction_be_enforced_upon_movement
+player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ ldr r2, _080E5F6C
+ ldr r0, _080E5F70
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ movs r0, 0
+ b _080E5F76
+ .align 2, 0
+_080E5F6C: .4byte gMapObjects
+_080E5F70: .4byte gPlayerAvatar
+_080E5F74:
+ movs r0, 0x1
+_080E5F76:
+ pop {r1}
+ bx r1
+ thumb_func_end player_should_look_direction_be_enforced_upon_movement
+
+ thumb_func_start GetOnOffBike
+GetOnOffBike: @ 80E5F7C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080E5FA4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080E5FA8
+ ldrb r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5FAC
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ bl sav1_reset_battle_music_maybe
+ bl sub_8053E90
+ b _080E5FC0
+ .align 2, 0
+_080E5FA4: .4byte gUnknown_0202E854
+_080E5FA8: .4byte gPlayerAvatar
+_080E5FAC:
+ adds r0, r2, 0
+ bl SetPlayerAvatarTransitionFlags
+ ldr r4, _080E5FC8
+ adds r0, r4, 0
+ bl sav1_set_battle_music_maybe
+ adds r0, r4, 0
+ bl sub_8053FB0
+_080E5FC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5FC8: .4byte 0x00000193
+ thumb_func_end GetOnOffBike
+
+ thumb_func_start sub_80E5FCC
+sub_80E5FCC: @ 80E5FCC
+ push {lr}
+ ldr r2, _080E6008
+ movs r3, 0
+ strb r3, [r2, 0x8]
+ strb r3, [r2, 0x9]
+ strb r3, [r2, 0xA]
+ strb r3, [r2, 0xB]
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+ movs r1, 0
+ adds r2, 0x14
+_080E5FE2:
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FE2
+ movs r1, 0
+ ldr r3, _080E600C
+ movs r2, 0
+_080E5FF6:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FF6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6008: .4byte gPlayerAvatar
+_080E600C: .4byte gUnknown_0202E874
+ thumb_func_end sub_80E5FCC
+
+ thumb_func_start sub_80E6010
+sub_80E6010: @ 80E6010
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E6020
+ strb r0, [r2, 0xA]
+ lsrs r1, r0, 1
+ adds r0, r1
+ strb r0, [r2, 0xB]
+ bx lr
+ .align 2, 0
+_080E6020: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6010
+
+ thumb_func_start sub_80E6024
+sub_80E6024: @ 80E6024
+ ldr r1, _080E6030
+ movs r0, 0
+ strb r0, [r1, 0xA]
+ strb r0, [r1, 0xB]
+ bx lr
+ .align 2, 0
+_080E6030: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6024
+
+ thumb_func_start sub_80E6034
+sub_80E6034: @ 80E6034
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080E605C
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r2, _080E6060
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6064
+ ldrb r0, [r2, 0xA]
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ b _080E607E
+ .align 2, 0
+_080E605C: .4byte gUnknown_083DB600
+_080E6060: .4byte gPlayerAvatar
+_080E6064:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6070
+ movs r0, 0x3
+ b _080E607E
+_080E6070:
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _080E607C
+ movs r0, 0x1
+ b _080E607E
+_080E607C:
+ movs r0, 0x2
+_080E607E:
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E6034
+
+ thumb_func_start sub_80E6084
+sub_80E6084: @ 80E6084
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080E60D4
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E60CC
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E60CC
+ movs r0, 0x2
+ strb r0, [r5, 0x8]
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059C94
+_080E60CC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E60D4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6084
+
+ thumb_func_start sub_80E60D8
+sub_80E60D8: @ 80E60D8
+ push {r4-r7,lr}
+ movs r4, 0x3
+ ldr r0, _080E60F4
+ ldrh r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xD
+ bls _080E60E8
+ b _080E6284
+_080E60E8:
+ lsls r0, r1, 2
+ ldr r1, _080E60F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E60F4: .4byte gUnknown_0202E8CC
+_080E60F8: .4byte _080E60FC
+ .align 2, 0
+_080E60FC:
+ .4byte _080E6134
+ .4byte _080E613C
+ .4byte _080E6144
+ .4byte _080E614C
+ .4byte _080E6154
+ .4byte _080E619C
+ .4byte _080E616C
+ .4byte _080E61BC
+ .4byte _080E61E0
+ .4byte _080E61FC
+ .4byte _080E6200
+ .4byte _080E6214
+ .4byte _080E623C
+ .4byte _080E6260
+_080E6134:
+ ldr r1, _080E6138
+ b _080E624C
+ .align 2, 0
+_080E6138: .4byte gSaveBlock1 + 0x2B1C
+_080E613C:
+ ldr r1, _080E6140
+ b _080E6276
+ .align 2, 0
+_080E6140: .4byte gSaveBlock1 + 0x2B28
+_080E6144:
+ ldr r1, _080E6148
+ b _080E624C
+ .align 2, 0
+_080E6148: .4byte gSaveBlock1 + 0x2B34
+_080E614C:
+ ldr r1, _080E6150
+ b _080E6276
+ .align 2, 0
+_080E6150: .4byte gSaveBlock1 + 0x2B40
+_080E6154:
+ ldr r0, _080E6164
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6168
+ adds r1, r0, r1
+ b _080E624C
+ .align 2, 0
+_080E6164: .4byte gUnknown_0202E8CE
+_080E6168: .4byte gSaveBlock1 + 0x2B4C
+_080E616C:
+ ldr r0, _080E6194
+ movs r2, 0
+ ldr r1, _080E6198
+ mov r12, r1
+ adds r3, r0, 0
+ adds r3, 0xE
+ adds r5, r0, 0x2
+ adds r6, r3, 0
+_080E617C:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080E617C
+ adds r1, r6, 0
+ b _080E627A
+ .align 2, 0
+_080E6194: .4byte gSaveBlock1 + 0x2D94
+_080E6198: .4byte sub_80546B8
+_080E619C:
+ ldr r0, _080E61B0
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61B4
+ adds r1, r0, r1
+ ldr r0, _080E61B8
+ ldrb r4, [r0]
+ b _080E6276
+ .align 2, 0
+_080E61B0: .4byte gUnknown_0202E8CE
+_080E61B4: .4byte gSaveBlock1 + 0x273C
+_080E61B8: .4byte gUnknown_0202E8D0
+_080E61BC:
+ ldr r0, _080E61D4
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E61D8
+ adds r1, r0
+ ldr r0, _080E61DC
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ b _080E624A
+ .align 2, 0
+_080E61D4: .4byte gUnknown_0202E8CE
+_080E61D8: .4byte gSaveBlock1 + 0x2754
+_080E61DC: .4byte gUnknown_0202E8D0
+_080E61E0:
+ ldr r0, _080E61F4
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61F8
+ adds r1, r0, r1
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E61F4: .4byte gUnknown_0202E8CE
+_080E61F8: .4byte gSaveBlock1 + 0x273A
+_080E61FC:
+ movs r1, 0
+ b _080E624C
+_080E6200:
+ ldr r1, _080E620C
+ ldr r2, _080E6210
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E624A
+ .align 2, 0
+_080E620C: .4byte gSaveBlock1 + 0x2B16
+_080E6210: .4byte 0x0000ffff
+_080E6214:
+ ldr r0, _080E6230
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E6234
+ adds r1, r0
+ ldr r0, _080E6238
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E6230: .4byte gUnknown_0202E8CE
+_080E6234: .4byte gSaveBlock1 + 0x273C
+_080E6238: .4byte gUnknown_0202E8D0
+_080E623C:
+ ldr r0, _080E6254
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6258
+ adds r1, r0, r1
+_080E624A:
+ movs r4, 0x1
+_080E624C:
+ ldr r0, _080E625C
+ mov r12, r0
+ b _080E627A
+ .align 2, 0
+_080E6254: .4byte gUnknown_0202E8CE
+_080E6258: .4byte gSaveBlock1 + 0x2750
+_080E625C: .4byte sub_80546B8
+_080E6260:
+ ldr r1, _080E628C
+ ldr r0, _080E6290
+ adds r2, r1, r0
+ ldr r0, _080E6294
+ strh r0, [r2]
+ ldr r0, _080E6298
+ adds r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ adds r1, r2, 0
+_080E6276:
+ ldr r2, _080E629C
+ mov r12, r2
+_080E627A:
+ ldrb r0, [r7]
+ mov r2, r12
+ adds r3, r4, 0
+ bl sub_80E62A0
+_080E6284:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E628C: .4byte 0x02001000
+_080E6290: .4byte 0x00009c7c
+_080E6294: .4byte 0x0000ffff
+_080E6298: .4byte 0x00009c7e
+_080E629C: .4byte sub_80546B8
+ thumb_func_end sub_80E60D8
+
+ thumb_func_start sub_80E62A0
+sub_80E62A0: @ 80E62A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080E62DC
+ str r2, [r4]
+ str r1, [r4, 0x4]
+ strb r0, [r4, 0x8]
+ strb r3, [r4, 0xB]
+ cmp r0, 0x9
+ bne _080E62D0
+ ldr r0, _080E62E0
+ adds r2, r4, r0
+ str r2, [r4, 0x4]
+ ldr r0, _080E62E4
+ ldr r3, _080E62E8
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ strh r1, [r2]
+ ldr r1, _080E62EC
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r2, _080E62F0
+ adds r0, r4, r2
+ strh r1, [r0]
+_080E62D0:
+ ldr r0, _080E62F4
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E62DC: .4byte 0x02001000
+_080E62E0: .4byte 0x00009c7c
+_080E62E4: .4byte gSaveBlock1
+_080E62E8: .4byte 0x00002dd8
+_080E62EC: .4byte 0x00002dda
+_080E62F0: .4byte 0x00009c7e
+_080E62F4: .4byte sub_80E62F8
+ thumb_func_end sub_80E62A0
+
+ thumb_func_start sub_80E62F8
+sub_80E62F8: @ 80E62F8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080E6314
+ ldr r1, _080E6318
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080E6344
+ lsls r0, 2
+ ldr r1, _080E631C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6314: .4byte gMain
+_080E6318: .4byte 0x0000043c
+_080E631C: .4byte _080E6320
+ .align 2, 0
+_080E6320:
+ .4byte _080E6344
+ .4byte _080E6380
+ .4byte _080E638C
+ .4byte _080E63A8
+ .4byte _080E63AE
+ .4byte _080E63B4
+ .4byte _080E63BE
+ .4byte _080E63D8
+ .4byte _080E63EA
+_080E6344:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl dp12_8087EA4
+ bl remove_some_task
+ bl sub_80EAD08
+ ldr r2, _080E637C
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080E6402
+ .align 2, 0
+_080E637C: .4byte gUnknown_083DB698
+_080E6380:
+ ldr r0, _080E6388
+ bl SetUpWindowConfig
+ b _080E6402
+ .align 2, 0
+_080E6388: .4byte gWindowConfig_81E6DA8
+_080E638C:
+ ldr r0, _080E63A0
+ bl InitMenuWindow
+ ldr r0, _080E63A4
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080E6402
+ .align 2, 0
+_080E63A0: .4byte gWindowConfig_81E6D54
+_080E63A4: .4byte gWindowConfig_81E6DA8
+_080E63A8:
+ bl sub_80E6424
+ b _080E6402
+_080E63AE:
+ bl sub_80E8DD8
+ b _080E6402
+_080E63B4:
+ bl sub_80E8218
+ bl sub_80E8CEC
+ b _080E6402
+_080E63BE:
+ bl sub_80E69F8
+ ldr r0, _080E63D0
+ bl sub_80E682C
+ ldr r0, _080E63D4
+ bl SetVBlankCallback
+ b _080E6402
+ .align 2, 0
+_080E63D0: .4byte sub_80E6AA8
+_080E63D4: .4byte sub_80E6A6C
+_080E63D8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _080E6402
+_080E63EA:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E6414
+ bl SetMainCallback2
+ ldr r0, _080E6418
+ bl FlagSet
+_080E6402:
+ ldr r1, _080E641C
+ ldr r0, _080E6420
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6414: .4byte sub_80E6A88
+_080E6418: .4byte 0x00000805
+_080E641C: .4byte gMain
+_080E6420: .4byte 0x0000043c
+ thumb_func_end sub_80E62F8
+
+ thumb_func_start sub_80E6424
+sub_80E6424: @ 80E6424
+ push {lr}
+ ldr r2, _080E6444
+ ldr r0, _080E6448
+ ldrb r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2, 0x9]
+ ldrb r0, [r2, 0x9]
+ adds r3, r2, 0
+ cmp r0, 0x5
+ bhi _080E6512
+ lsls r0, 2
+ ldr r1, _080E644C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6444: .4byte 0x02001000
+_080E6448: .4byte gUnknown_083DB6A4
+_080E644C: .4byte _080E6450
+ .align 2, 0
+_080E6450:
+ .4byte _080E64A0
+ .4byte _080E64B8
+ .4byte _080E64DA
+ .4byte _080E64F6
+ .4byte _080E6468
+ .4byte _080E6480
+_080E6468:
+ movs r2, 0x4
+ strb r2, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x5
+ b _080E64D0
+_080E6480:
+ movs r1, 0x4
+ strb r1, [r3, 0xA]
+ adds r2, r3, 0
+ adds r2, 0x83
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x84
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ b _080E6510
+_080E64A0:
+ movs r0, 0x6
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x84
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r1, 0x5
+ b _080E64CE
+_080E64B8:
+ movs r2, 0
+ movs r0, 0x9
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ strb r0, [r1]
+ adds r1, 0x4
+_080E64CE:
+ movs r0, 0x4
+_080E64D0:
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ strh r2, [r0]
+ b _080E6512
+_080E64DA:
+ movs r1, 0x1
+ strb r1, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ b _080E6510
+_080E64F6:
+ movs r0, 0x2
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3
+_080E6510:
+ strh r0, [r1]
+_080E6512:
+ adds r1, r3, 0
+ adds r1, 0x86
+ movs r0, 0
+ strb r0, [r1]
+ subs r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x2
+ strb r0, [r1]
+ subs r1, 0x61
+ strb r0, [r1]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80E6554
+ bl sub_80EAECC
+ bl sub_80EB040
+ bl sub_80E7E50
+ bl sub_80E6630
+ bl sub_80E6690
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6424
+
+ thumb_func_start sub_80E6554
+sub_80E6554: @ 80E6554
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r4, 0
+ movs r7, 0
+ ldr r0, _080E6564
+ mov r12, r0
+ b _080E656E
+ .align 2, 0
+_080E6564: .4byte 0x02001000
+_080E6568:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080E656E:
+ movs r5, 0
+ lsls r3, r7, 1
+ mov r6, r12
+ adds r6, 0x2A
+ adds r2, r3, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ beq _080E65A6
+_080E6586:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bhi _080E65A2
+ adds r2, r5, r3
+ adds r2, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ bne _080E6586
+_080E65A2:
+ cmp r4, 0x11
+ bne _080E6568
+_080E65A6:
+ movs r0, 0x11
+ mov r1, r12
+ strh r0, [r1, 0x28]
+ cmp r4, 0x15
+ bhi _080E6612
+ mov r6, r12
+ adds r2, r6, 0
+ adds r2, 0x78
+_080E65B6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r2, [sp]
+ bl sub_80EAD7C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [sp]
+ cmp r1, 0
+ beq _080E65FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E65DC
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+_080E65DC:
+ lsls r0, r7, 1
+ adds r0, r5, r0
+ adds r1, r6, 0
+ adds r1, 0x2A
+ adds r0, r1
+ strb r4, [r0]
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrh r0, [r6, 0x28]
+ adds r0, 0x1
+ strh r0, [r6, 0x28]
+ mov r12, r6
+ b _080E6608
+_080E65FC:
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, _080E662C
+ mov r12, r0
+_080E6608:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x15
+ bls _080E65B6
+_080E6612:
+ mov r1, r12
+ ldrh r0, [r1, 0x28]
+ adds r0, 0x1
+ asrs r0, 1
+ movs r1, 0xDB
+ lsls r1, 1
+ add r1, r12
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E662C: .4byte 0x02001000
+ thumb_func_end sub_80E6554
+
+ thumb_func_start sub_80E6630
+sub_80E6630: @ 80E6630
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r0, _080E6664
+ mov r12, r0
+_080E6638:
+ lsls r0, r1, 4
+ mov r2, r12
+ adds r5, r0, r2
+ movs r3, 0
+ ldrb r0, [r5]
+ adds r7, r1, 0x1
+ cmp r0, 0xFF
+ beq _080E6680
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r4, r0, 1
+ ldr r6, _080E6668
+_080E6650:
+ adds r0, r5, r3
+ ldrb r1, [r0]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _080E666C
+ adds r0, r3, r4
+ adds r0, r6
+ adds r1, 0x46
+ strb r1, [r0]
+ b _080E6672
+ .align 2, 0
+_080E6664: .4byte gUnknown_083DB6B2
+_080E6668: .4byte 0x02001040
+_080E666C:
+ adds r0, r3, r4
+ adds r0, r6
+ strb r2, [r0]
+_080E6672:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E6650
+_080E6680:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080E6638
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6630
+
+ thumb_func_start sub_80E6690
+sub_80E6690: @ 80E6690
+ push {r4-r6,lr}
+ sub sp, 0x10
+ mov r0, sp
+ ldr r1, _080E66E0
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldr r1, [r1]
+ str r1, [r0]
+ movs r5, 0
+ ldr r6, _080E66E4
+_080E66A4:
+ ldr r0, _080E66E8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E66EC
+ adds r4, r0, r1
+ lsls r0, r5, 3
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl StringCopy
+ adds r3, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _080E66F0
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4, 0x4]
+ bl StringCopy
+ b _080E670A
+ .align 2, 0
+_080E66E0: .4byte gUnknown_083DB7DC
+_080E66E4: .4byte gUnknown_083DB7C0
+_080E66E8: .4byte 0x02001000
+_080E66EC: .4byte gUnknown_083DB6F4
+_080E66F0:
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r1, [r4, 0x4]
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+_080E670A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E66A4
+ movs r5, 0
+ ldr r3, _080E6758
+ ldr r0, _080E675C
+ adds r2, r3, r0
+ movs r1, 0
+_080E671E:
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x23
+ bls _080E671E
+ ldr r1, _080E675C
+ adds r0, r3, r1
+ adds r0, r5, r0
+ movs r4, 0x1
+ negs r4, r4
+ adds r2, r4, 0
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, _080E6760
+ adds r3, r0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x11
+ strb r0, [r3, 0x1]
+ movs r0, 0xE0
+ strb r0, [r3, 0x2]
+ strb r2, [r3, 0x3]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6758: .4byte 0x02001000
+_080E675C: .4byte 0x00009da4
+_080E6760: .4byte 0x00009f6e
+ thumb_func_end sub_80E6690
+
+ thumb_func_start sub_80E6764
+sub_80E6764: @ 80E6764
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r4, _080E680C
+ ldr r2, _080E6810
+_080E676C:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080E676C
+ movs r3, 0
+ ldr r4, _080E6814
+ ldr r2, _080E6818
+_080E6786:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E6786
+ movs r3, 0
+ ldr r5, _080E681C
+ ldr r0, _080E6820
+ adds r4, r0, 0
+ adds r6, r5, 0
+ adds r6, 0xC
+_080E67A6:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ orrs r0, r4
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E67A6
+ movs r3, 0
+ ldr r6, _080E6824
+ ldr r0, _080E6820
+ adds r5, r0, 0
+_080E67CA:
+ movs r2, 0
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r4, r0, 2
+_080E67D2:
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x8
+ bls _080E67D2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080E67CA
+ movs r3, 0
+ ldr r2, _080E6828
+ movs r1, 0
+_080E67F8:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080E67F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E680C: .4byte gSaveBlock1 + 0x2B1C
+_080E6810: .4byte gUnknown_083DB7EC
+_080E6814: .4byte gSaveBlock1 + 0x2B28
+_080E6818: .4byte gUnknown_083DB7F4
+_080E681C: .4byte gSaveBlock1 + 0x2B34
+_080E6820: .4byte 0x0000ffff
+_080E6824: .4byte gSaveBlock1 + 0x2B4C
+_080E6828: .4byte gSaveBlock1 + 0x2D8C
+ thumb_func_end sub_80E6764
+
+ thumb_func_start sub_80E682C
+sub_80E682C: @ 80E682C
+ ldr r1, _080E6838
+ str r0, [r1, 0x20]
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ bx lr
+ .align 2, 0
+_080E6838: .4byte 0x02001000
+ thumb_func_end sub_80E682C
+
+ thumb_func_start sub_80E683C
+sub_80E683C: @ 80E683C
+ push {r4,r5,lr}
+ ldr r1, _080E6890
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _080E6898
+ movs r1, 0
+ movs r0, 0xDB
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ bge _080E6876
+ movs r0, 0xD5
+ lsls r0, 1
+ adds r5, r2, r0
+ movs r4, 0x2
+_080E6864:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ blt _080E6864
+_080E6876:
+ adds r0, r2, r1
+ ldr r1, _080E6894
+ adds r3, r0, r1
+ ldrh r0, [r2, 0x28]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r3]
+ cmp r0, 0
+ bne _080E68B8
+ movs r0, 0x2
+ strb r0, [r3]
+ b _080E68B8
+ .align 2, 0
+_080E6890: .4byte 0x02001000
+_080E6894: .4byte 0x000001a9
+_080E6898:
+ movs r3, 0xD5
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r1, _080E68E0
+ adds r3, r2, r1
+ movs r1, 0x6
+ strb r1, [r3]
+ movs r3, 0xD6
+ lsls r3, 1
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r1, r2, r3
+ strb r0, [r1]
+_080E68B8:
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080E68E4
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0xC
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r2, r3
+ strb r0, [r1]
+ bl sub_80E9A4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E68E0: .4byte 0x000001ab
+_080E68E4: .4byte 0x000001a9
+ thumb_func_end sub_80E683C
+
+ thumb_func_start sub_80E68E8
+sub_80E68E8: @ 80E68E8
+ push {r4-r6,lr}
+ bl sub_80EB0B0
+ ldr r3, _080E694C
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E695C
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E6950
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E6954
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E693A
+ ldr r3, _080E6958
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E6928:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E6928
+_080E693A:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E6958
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E6950
+ b _080E69AC
+ .align 2, 0
+_080E694C: .4byte 0x02001000
+_080E6950: .4byte 0x00004178
+_080E6954: .4byte 0x00009a28
+_080E6958: .4byte 0x000099a6
+_080E695C:
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E69E0
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E69E4
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E699C
+ ldr r3, _080E69E8
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E698A:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E698A
+_080E699C:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E69E8
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E69E0
+_080E69AC:
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0
+ bne _080E69C0
+ movs r0, 0x2
+ strb r0, [r2]
+_080E69C0:
+ ldr r1, _080E69EC
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080E69F0
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r3, _080E69F4
+ adds r0, r5, r3
+ strb r1, [r0]
+ bl sub_80E9A4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E69E0: .4byte 0x00004142
+_080E69E4: .4byte 0x00009a28
+_080E69E8: .4byte 0x000099a6
+_080E69EC: .4byte 0x000099a4
+_080E69F0: .4byte 0x000099a5
+_080E69F4: .4byte 0x00009a29
+ thumb_func_end sub_80E68E8
+
+ thumb_func_start sub_80E69F8
+sub_80E69F8: @ 80E69F8
+ push {r4,lr}
+ ldr r0, _080E6A10
+ ldrb r1, [r0, 0x8]
+ adds r4, r0, 0
+ cmp r1, 0xD
+ bhi _080E6A50
+ lsls r0, r1, 2
+ ldr r1, _080E6A14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6A10: .4byte 0x02001000
+_080E6A14: .4byte _080E6A18
+ .align 2, 0
+_080E6A18:
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+_080E6A50:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ b _080E6A66
+_080E6A58:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ bl sub_80E8BF4
+_080E6A66:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E69F8
+
+ thumb_func_start sub_80E6A6C
+sub_80E6A6C: @ 80E6A6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80EAC5C
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6A6C
+
+ thumb_func_start sub_80E6A88
+sub_80E6A88: @ 80E6A88
+ push {lr}
+ ldr r0, _080E6AA4
+ ldr r0, [r0, 0x20]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl sub_80EAD08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AA4: .4byte 0x02001000
+ thumb_func_end sub_80E6A88
+
+ thumb_func_start sub_80E6AA8
+sub_80E6AA8: @ 80E6AA8
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6ABA
+ ldr r0, _080E6AC0
+ bl sub_80E682C
+_080E6ABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AC0: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6AA8
+
+ thumb_func_start sub_80E6AC4
+sub_80E6AC4: @ 80E6AC4
+ push {lr}
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8398
+ movs r0, 0
+ bl sub_80E91D4
+ ldr r0, _080E6AE0
+ bl sub_80E682C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AE0: .4byte sub_80E6AE4
+ thumb_func_end sub_80E6AC4
+
+ thumb_func_start sub_80E6AE4
+sub_80E6AE4: @ 80E6AE4
+ push {r4,r5,lr}
+ bl sub_80E75D8
+ ldr r4, _080E6B44
+ adds r1, r4, 0
+ adds r1, 0x87
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6AFE
+ movs r0, 0x5
+ bl PlaySE
+_080E6AFE:
+ ldr r2, _080E6B48
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _080E6BA4
+ movs r0, 0x5
+ bl PlaySE
+ adds r1, r4, 0
+ adds r1, 0x86
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldrb r2, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E6B78
+ adds r0, r4, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080E6B60
+ cmp r0, 0x1
+ bgt _080E6B4C
+ cmp r0, 0
+ beq _080E6B52
+ b _080E6BA4
+ .align 2, 0
+_080E6B44: .4byte 0x02001000
+_080E6B48: .4byte gMain
+_080E6B4C:
+ cmp r0, 0x2
+ beq _080E6B6C
+ b _080E6BA4
+_080E6B52:
+ ldr r0, _080E6B5C
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B5C: .4byte sub_80E6BC0
+_080E6B60:
+ ldr r0, _080E6B68
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B68: .4byte sub_80E6C84
+_080E6B6C:
+ ldr r0, _080E6B74
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B74: .4byte sub_80E6D7C
+_080E6B78:
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x85
+ adds r3, r0, 0
+ muls r3, r2
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x27
+ strb r0, [r1]
+ bl sub_80E7574
+ ldr r0, _080E6BA0
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6BA0: .4byte sub_80E6F68
+_080E6BA4:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6BB4
+ ldr r0, _080E6BBC
+ bl sub_80E682C
+_080E6BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6BBC: .4byte sub_80E6C84
+ thumb_func_end sub_80E6AE4
+
+ thumb_func_start sub_80E6BC0
+sub_80E6BC0: @ 80E6BC0
+ push {r4,lr}
+ ldr r4, _080E6BD4
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6C12
+ cmp r0, 0x1
+ bgt _080E6BD8
+ cmp r0, 0
+ beq _080E6BE2
+ b _080E6C76
+ .align 2, 0
+_080E6BD4: .4byte 0x02001000
+_080E6BD8:
+ cmp r0, 0x2
+ beq _080E6C54
+ cmp r0, 0x64
+ beq _080E6C64
+ b _080E6C76
+_080E6BE2:
+ movs r0, 0x2
+ bl sub_80E8398
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6BFA
+ movs r0, 0x6
+ bl sub_80E91D4
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6BFA:
+ movs r0, 0x2
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080E6C3E
+_080E6C12:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6C32
+ cmp r1, 0
+ bgt _080E6C2C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6C46
+ b _080E6C76
+_080E6C2C:
+ cmp r1, 0x1
+ beq _080E6C46
+ b _080E6C76
+_080E6C32:
+ bl sub_80E7D6C
+ bl sub_80E98C4
+ bl sub_80E95A4
+_080E6C3E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6C46:
+ ldr r1, _080E6C50
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6C76
+ .align 2, 0
+_080E6C50: .4byte 0x02001000
+_080E6C54:
+ bl sub_80E81FC
+ ldr r0, _080E6C60
+ bl sub_80E682C
+ b _080E6C76
+ .align 2, 0
+_080E6C60: .4byte sub_80E6AC4
+_080E6C64:
+ ldr r0, _080E6C7C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6C76
+ ldr r0, _080E6C80
+ bl sub_80E682C
+_080E6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6C7C: .4byte gMain
+_080E6C80: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6BC0
+
+ thumb_func_start sub_80E6C84
+sub_80E6C84: @ 80E6C84
+ push {r4,lr}
+ ldr r4, _080E6C98
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6CF4
+ cmp r0, 0x1
+ bgt _080E6C9C
+ cmp r0, 0
+ beq _080E6CA6
+ b _080E6D72
+ .align 2, 0
+_080E6C98: .4byte 0x02001000
+_080E6C9C:
+ cmp r0, 0x2
+ beq _080E6D24
+ cmp r0, 0xFF
+ beq _080E6D64
+ b _080E6D72
+_080E6CA6:
+ movs r0, 0x2
+ bl sub_80E8398
+ movs r0, 0x3
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x9
+ beq _080E6CE8
+ cmp r0, 0x4
+ beq _080E6CE8
+ cmp r0, 0x7
+ beq _080E6CE8
+ cmp r0, 0x8
+ beq _080E6CE8
+ cmp r0, 0xA
+ beq _080E6CE8
+ cmp r0, 0xB
+ beq _080E6CE8
+ cmp r0, 0xC
+ beq _080E6CE8
+ cmp r0, 0x5
+ beq _080E6CE8
+ cmp r0, 0xD
+ bne _080E6D1C
+_080E6CE8:
+ ldr r1, _080E6CF0
+ movs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6CF0: .4byte 0x02001000
+_080E6CF4:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D06
+ cmp r1, 0
+ ble _080E6D34
+ b _080E6D3E
+_080E6D06:
+ movs r0, 0x4
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+_080E6D1C:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6D72
+_080E6D24:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D44
+ cmp r1, 0
+ bgt _080E6D3E
+_080E6D34:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6D58
+ b _080E6D72
+_080E6D3E:
+ cmp r1, 0x1
+ beq _080E6D58
+ b _080E6D72
+_080E6D44:
+ ldr r0, _080E6D50
+ strh r1, [r0]
+ ldr r0, _080E6D54
+ bl sub_80E682C
+ b _080E6D72
+ .align 2, 0
+_080E6D50: .4byte gScriptResult
+_080E6D54: .4byte sub_80E752C
+_080E6D58:
+ ldr r1, _080E6D60
+ movs r0, 0xFF
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6D60: .4byte 0x02001000
+_080E6D64:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r0, _080E6D78
+ bl sub_80E682C
+_080E6D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6D78: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6C84
+
+ thumb_func_start sub_80E6D7C
+sub_80E6D7C: @ 80E6D7C
+ push {r4-r7,lr}
+ ldr r5, _080E6D98
+ ldrh r0, [r5, 0x24]
+ cmp r0, 0xA
+ bne _080E6D88
+ b _080E6F06
+_080E6D88:
+ cmp r0, 0xA
+ bgt _080E6D9C
+ cmp r0, 0
+ beq _080E6DB6
+ cmp r0, 0x1
+ beq _080E6E3C
+ b _080E6F5E
+ .align 2, 0
+_080E6D98: .4byte 0x02001000
+_080E6D9C:
+ cmp r0, 0x65
+ bne _080E6DA2
+ b _080E6F30
+_080E6DA2:
+ cmp r0, 0x65
+ bgt _080E6DAE
+ cmp r0, 0x64
+ bne _080E6DAC
+ b _080E6F24
+_080E6DAC:
+ b _080E6F5E
+_080E6DAE:
+ cmp r0, 0x66
+ bne _080E6DB4
+ b _080E6F50
+_080E6DB4:
+ b _080E6F5E
+_080E6DB6:
+ movs r0, 0x2
+ bl sub_80E8398
+ bl sub_80E8054
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6DCA
+ movs r0, 0x5
+ b _080E6DEE
+_080E6DCA:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6DFC
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6DDE
+ movs r0, 0x8
+ b _080E6DEE
+_080E6DDE:
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6DF8
+ cmp r0, r1
+ beq _080E6DEC
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6DFC
+_080E6DEC:
+ movs r0, 0x9
+_080E6DEE:
+ bl sub_80E91D4
+ movs r0, 0xA
+ strh r0, [r5, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6DF8: .4byte 0x0000ffff
+_080E6DFC:
+ ldr r0, _080E6E18
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ bne _080E6E20
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6E20
+ ldr r0, _080E6E1C
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6E18: .4byte 0x02001000
+_080E6E1C: .4byte sub_80E6C84
+_080E6E20:
+ movs r0, 0x1
+ bl sub_80E91D4
+ bl sub_80E9744
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ b _080E6F3C
+_080E6E3C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _080E6E5C
+ cmp r6, 0
+ bgt _080E6E56
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E56:
+ cmp r6, 0x1
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E5C:
+ ldr r7, _080E6EC8
+ bl sub_80E7FA8
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r0, 31
+ strh r0, [r7]
+ bl sub_80E7D9C
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ bne _080E6E82
+ ldr r4, _080E6ECC
+ bl sub_80E8094
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E82:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6E9C
+ bl sub_80E81C0
+ ldr r4, _080E6ECC
+ ldr r1, _080E6ED0
+ adds r0, r5, r1
+ bl sub_80FA364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E9C:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0xD
+ bne _080E6EBE
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6ED4
+ cmp r0, r1
+ beq _080E6EB0
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6EB2
+_080E6EB0:
+ strh r6, [r7]
+_080E6EB2:
+ ldr r4, _080E6ECC
+ bl sub_80E810C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6EBE:
+ ldr r0, _080E6ED8
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6EC8: .4byte gScriptResult
+_080E6ECC: .4byte gUnknown_0202E8CC
+_080E6ED0: .4byte 0x00009c7c
+_080E6ED4: .4byte 0x0000ffff
+_080E6ED8: .4byte sub_80E752C
+_080E6EDC:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r4, _080E6EFC
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6F00
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6F00
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6EFC: .4byte 0x02001000
+_080E6F00:
+ bl sub_80E95A4
+ b _080E6F12
+_080E6F06:
+ ldr r0, _080E6F1C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F12:
+ ldr r0, _080E6F20
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6F1C: .4byte gMain
+_080E6F20: .4byte sub_80E6AC4
+_080E6F24:
+ movs r0, 0x7
+ bl sub_80E91D4
+ ldrh r0, [r5, 0x24]
+ adds r0, 0x1
+ strh r0, [r5, 0x24]
+_080E6F30:
+ ldr r0, _080E6F48
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F3C:
+ ldr r1, _080E6F4C
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6F48: .4byte gMain
+_080E6F4C: .4byte 0x02001000
+_080E6F50:
+ bl sub_80E7E50
+ bl sub_80E95A4
+ ldr r0, _080E6F64
+ bl sub_80E682C
+_080E6F5E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6F64: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6D7C
+
+ thumb_func_start sub_80E6F68
+sub_80E6F68: @ 80E6F68
+ push {r4,lr}
+ ldr r4, _080E6F78
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0
+ beq _080E6F7C
+ cmp r0, 0x1
+ beq _080E6F9C
+ b _080E6FBC
+ .align 2, 0
+_080E6F78: .4byte 0x02001000
+_080E6F7C:
+ movs r0, 0x1
+ bl sub_80E8398
+ movs r0, 0xA
+ bl sub_80E91D4
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6FBC
+_080E6F9C:
+ bl sub_80E9EA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6FBC
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E6FC4
+ bl sub_80E682C
+_080E6FBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6FC4: .4byte sub_80E6FC8
+ thumb_func_end sub_80E6F68
+
+ thumb_func_start sub_80E6FC8
+sub_80E6FC8: @ 80E6FC8
+ push {r4,lr}
+ bl sub_80E77C8
+ adds r1, r0, 0
+ ldr r4, _080E7000
+ adds r0, r4, 0
+ adds r0, 0x96
+ strb r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E700C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E7004
+ str r1, [r0]
+ ldr r0, _080E7008
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E7000: .4byte 0x02001000
+_080E7004: .4byte sub_80E6FC8
+_080E7008: .4byte sub_80E7458
+_080E700C:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E7018
+ movs r0, 0x5
+ bl PlaySE
+_080E7018:
+ ldr r0, _080E7054
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70E8
+ ldr r2, _080E7058
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7090
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ beq _080E7070
+ cmp r0, 0x2
+ bgt _080E705C
+ cmp r0, 0x1
+ beq _080E7062
+ b _080E710A
+ .align 2, 0
+_080E7054: .4byte gMain
+_080E7058: .4byte 0x000001b7
+_080E705C:
+ cmp r0, 0x3
+ beq _080E70F0
+ b _080E710A
+_080E7062:
+ ldr r0, _080E706C
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E706C: .4byte sub_80E718C
+_080E7070:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ beq _080E710A
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ ldr r1, _080E708C
+ bl sub_80E7F00
+ bl sub_80E7574
+ bl sub_80E95A4
+ b _080E710A
+ .align 2, 0
+_080E708C: .4byte 0x0000ffff
+_080E7090:
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E70CA
+ ldr r2, _080E70DC
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r2, _080E70E0
+ adds r1, r4, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080E710A
+_080E70CA:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E7AD4
+ ldr r0, _080E70E4
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70DC: .4byte 0x000001a9
+_080E70E0: .4byte 0x00004142
+_080E70E4: .4byte sub_80E7218
+_080E70E8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70FC
+_080E70F0:
+ ldr r0, _080E70F8
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70F8: .4byte sub_80E7114
+_080E70FC:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E710A
+ ldr r0, _080E7110
+ bl sub_80E682C
+_080E710A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7110: .4byte sub_80E718C
+ thumb_func_end sub_80E6FC8
+
+ thumb_func_start sub_80E7114
+sub_80E7114: @ 80E7114
+ push {lr}
+ ldr r0, _080E712C
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E7182
+ lsls r0, r1, 2
+ ldr r1, _080E7130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E712C: .4byte 0x02001000
+_080E7130: .4byte _080E7134
+ .align 2, 0
+_080E7134:
+ .4byte _080E7148
+ .4byte _080E715C
+ .4byte _080E715C
+ .4byte _080E7164
+ .4byte _080E717C
+_080E7148:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8D8C
+ b _080E716E
+_080E715C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E7182
+_080E7164:
+ bl sub_80E9F50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7182
+_080E716E:
+ ldr r1, _080E7178
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7182
+ .align 2, 0
+_080E7178: .4byte 0x02001000
+_080E717C:
+ ldr r0, _080E7188
+ bl sub_80E682C
+_080E7182:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7188: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7114
+
+ thumb_func_start sub_80E718C
+sub_80E718C: @ 80E718C
+ push {r4,lr}
+ ldr r0, _080E71A4
+ ldrh r1, [r0, 0x24]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ beq _080E71C6
+ cmp r1, 0x1
+ bgt _080E71A8
+ cmp r1, 0
+ beq _080E71AE
+ b _080E71EC
+ .align 2, 0
+_080E71A4: .4byte 0x02001000
+_080E71A8:
+ cmp r1, 0x8
+ beq _080E71F4
+ b _080E71EC
+_080E71AE:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ bl sub_80E8D54
+ b _080E720E
+_080E71C6:
+ bl sub_80E9FD4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ movs r2, 0
+ adds r1, r4, 0
+ adds r1, 0x26
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080E71DE
+ movs r2, 0x1
+_080E71DE:
+ strb r2, [r1]
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+_080E71EC:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E720E
+_080E71F4:
+ bl sub_80EA014
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E7214
+ bl sub_80E682C
+_080E720E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7214: .4byte sub_80E6FC8
+ thumb_func_end sub_80E718C
+
+ thumb_func_start sub_80E7218
+sub_80E7218: @ 80E7218
+ push {r4,lr}
+ ldr r4, _080E7230
+ ldrh r0, [r4, 0x24]
+ adds r1, r4, 0
+ cmp r0, 0x9
+ beq _080E7260
+ cmp r0, 0x9
+ bgt _080E7234
+ cmp r0, 0x8
+ beq _080E7244
+ b _080E723C
+ .align 2, 0
+_080E7230: .4byte 0x02001000
+_080E7234:
+ cmp r0, 0xA
+ beq _080E7276
+ cmp r0, 0xB
+ beq _080E7288
+_080E723C:
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7288
+_080E7244:
+ movs r0, 0
+ bl sub_80E8D8C
+ bl sub_80E8504
+ bl sub_80E9AD4
+ bl sub_80E68E8
+ bl sub_80E88F0
+ bl sub_80E9E98
+ b _080E726E
+_080E7260:
+ bl sub_80EA050
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7288
+ bl sub_80E9C94
+_080E726E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7288
+_080E7276:
+ movs r0, 0x1
+ bl sub_80E87CC
+ movs r0, 0x1
+ bl sub_80E8958
+ ldr r0, _080E7290
+ bl sub_80E682C
+_080E7288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7290: .4byte sub_80E7294
+ thumb_func_end sub_80E7218
+
+ thumb_func_start sub_80E7294
+sub_80E7294: @ 80E7294
+ push {r4,lr}
+ bl sub_80E7B40
+ adds r1, r0, 0
+ ldr r4, _080E72CC
+ ldr r2, _080E72D0
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E72DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E72D4
+ str r1, [r0]
+ ldr r0, _080E72D8
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E72CC: .4byte 0x02001000
+_080E72D0: .4byte 0x000001b9
+_080E72D4: .4byte sub_80E7294
+_080E72D8: .4byte sub_80E7458
+_080E72DC:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E72E8
+ movs r0, 0x5
+ bl PlaySE
+_080E72E8:
+ ldr r0, _080E7304
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E730C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080E7308
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E7304: .4byte gMain
+_080E7308: .4byte sub_80E7324
+_080E730C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E731A
+ ldr r0, _080E7320
+ bl sub_80E682C
+_080E731A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7320: .4byte sub_80E73D0
+ thumb_func_end sub_80E7294
+
+ thumb_func_start sub_80E7324
+sub_80E7324: @ 80E7324
+ push {lr}
+ ldr r0, _080E733C
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E73C6
+ lsls r0, r1, 2
+ ldr r1, _080E7340
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E733C: .4byte 0x02001000
+_080E7340: .4byte _080E7344
+ .align 2, 0
+_080E7344:
+ .4byte _080E7358
+ .4byte _080E737C
+ .4byte _080E7384
+ .4byte _080E738A
+ .4byte _080E73A4
+_080E7358:
+ bl sub_80E7DD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7370
+ ldr r0, _080E736C
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E736C: .4byte sub_80E7294
+_080E7370:
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E87CC
+ b _080E7394
+_080E737C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E73C6
+_080E7384:
+ bl sub_80E9E98
+ b _080E7394
+_080E738A:
+ bl sub_80EA184
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C6
+_080E7394:
+ ldr r1, _080E73A0
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E73C6
+ .align 2, 0
+_080E73A0: .4byte 0x02001000
+_080E73A4:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0x6
+ bne _080E73C0
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C0
+ ldr r0, _080E73BC
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E73BC: .4byte sub_80E6D7C
+_080E73C0:
+ ldr r0, _080E73CC
+ bl sub_80E682C
+_080E73C6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E73CC: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7324
+
+ thumb_func_start sub_80E73D0
+sub_80E73D0: @ 80E73D0
+ push {lr}
+ ldr r0, _080E73E4
+ ldrh r0, [r0, 0x24]
+ cmp r0, 0x4
+ bhi _080E744E
+ lsls r0, 2
+ ldr r1, _080E73E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E73E4: .4byte 0x02001000
+_080E73E8: .4byte _080E73EC
+ .align 2, 0
+_080E73EC:
+ .4byte _080E7400
+ .4byte _080E740C
+ .4byte _080E7416
+ .4byte _080E742C
+ .4byte _080E7444
+_080E7400:
+ movs r0, 0
+ bl sub_80E87CC
+ bl sub_80E88F0
+ b _080E7436
+_080E740C:
+ bl sub_80E9AD4
+ bl sub_80E9E98
+ b _080E7436
+_080E7416:
+ bl sub_80EA0E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E744E
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E9A14
+ b _080E7436
+_080E742C:
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+_080E7436:
+ ldr r1, _080E7440
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E744E
+ .align 2, 0
+_080E7440: .4byte 0x02001000
+_080E7444:
+ bl sub_80E9974
+ ldr r0, _080E7454
+ bl sub_80E682C
+_080E744E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7454: .4byte sub_80E6FC8
+ thumb_func_end sub_80E73D0
+
+ thumb_func_start sub_80E7458
+sub_80E7458: @ 80E7458
+ push {r4,r5,lr}
+ ldr r4, _080E7468
+ ldrh r5, [r4, 0x24]
+ cmp r5, 0
+ beq _080E746C
+ cmp r5, 0x1
+ beq _080E74A4
+ b _080E7518
+ .align 2, 0
+_080E7468: .4byte 0x02001000
+_080E746C:
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E7480
+ cmp r1, r0
+ bne _080E7484
+ bl sub_80E9D7C
+ b _080E7488
+ .align 2, 0
+_080E7480: .4byte sub_80E6FC8
+_080E7484:
+ bl sub_80E9D00
+_080E7488:
+ ldr r4, _080E74A0
+ movs r2, 0xDF
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80E9E08
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7518
+ .align 2, 0
+_080E74A0: .4byte 0x02001000
+_080E74A4:
+ bl sub_80E9E54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7518
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E74DC
+ cmp r1, r0
+ bne _080E74E4
+ bl sub_80E9D7C
+ ldr r2, _080E74E0
+ adds r1, r4, r2
+ adds r2, 0xB
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7A98
+ adds r0, r4, 0
+ adds r0, 0x96
+ b _080E74FE
+ .align 2, 0
+_080E74DC: .4byte sub_80E6FC8
+_080E74E0: .4byte 0x000001b5
+_080E74E4:
+ ldr r0, _080E7520
+ adds r1, r4, r0
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7D30
+ ldr r1, _080E7524
+ adds r0, r4, r1
+_080E74FE:
+ strb r5, [r0]
+ ldr r1, _080E7528
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0x2
+ strb r0, [r2]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ bl sub_80E682C
+_080E7518:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7520: .4byte 0x00009a29
+_080E7524: .4byte 0x000001b9
+_080E7528: .4byte 0x02001000
+ thumb_func_end sub_80E7458
+
+ thumb_func_start sub_80E752C
+sub_80E752C: @ 80E752C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080E7540
+ ldrh r1, [r4, 0x24]
+ cmp r1, 0
+ beq _080E7544
+ cmp r1, 0x1
+ beq _080E755C
+ b _080E756C
+ .align 2, 0
+_080E7540: .4byte 0x02001000
+_080E7544:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E756C
+_080E755C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E756C
+ ldr r0, [r4]
+ bl SetMainCallback2
+_080E756C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E752C
+
+ thumb_func_start sub_80E7574
+sub_80E7574: @ 80E7574
+ push {r4,r5,lr}
+ ldr r4, _080E75B8
+ ldrb r5, [r4, 0x8]
+ cmp r5, 0x1
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r4, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ lsls r0, 1
+ subs r1, 0x72
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ beq _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x7D
+ strb r5, [r0]
+ adds r1, r4, 0
+ b _080E75C6
+ .align 2, 0
+_080E75B8: .4byte 0x02001000
+_080E75BC:
+ ldr r1, _080E75D4
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0
+ strb r0, [r2]
+_080E75C6:
+ adds r1, 0x7D
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E75D4: .4byte 0x02001000
+ thumb_func_end sub_80E7574
+
+ thumb_func_start sub_80E75D8
+sub_80E75D8: @ 80E75D8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r2, _080E75FC
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7604
+ ldr r1, _080E7600
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x86
+ strb r0, [r2]
+ adds r1, 0x85
+ movs r0, 0x2
+ b _080E768E
+ .align 2, 0
+_080E75FC: .4byte gMain
+_080E7600: .4byte 0x02001000
+_080E7604:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7630
+ ldr r2, _080E762C
+ adds r1, r2, 0
+ adds r1, 0x86
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E765C
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080E765C
+ .align 2, 0
+_080E762C: .4byte 0x02001000
+_080E7630:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7658
+ ldr r0, _080E7684
+ adds r3, r0, 0
+ adds r3, 0x86
+ ldrb r1, [r3]
+ adds r1, 0x1
+ strb r1, [r3]
+ adds r0, 0x84
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ ble _080E7656
+ strb r4, [r3]
+_080E7656:
+ movs r4, 0x1
+_080E7658:
+ cmp r4, 0
+ beq _080E76EA
+_080E765C:
+ ldr r2, _080E7684
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0x2
+ bne _080E7692
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7688
+ adds r0, r2, 0
+ adds r0, 0x85
+ strb r3, [r0]
+ b _080E77BC
+ .align 2, 0
+_080E7684: .4byte 0x02001000
+_080E7688:
+ adds r1, r2, 0
+ adds r1, 0x85
+ movs r0, 0
+_080E768E:
+ strb r0, [r1]
+ b _080E77BC
+_080E7692:
+ movs r0, 0x85
+ adds r0, r2
+ mov r12, r0
+ adds r4, r2, 0
+ adds r4, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrb r3, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _080E76B0
+ subs r0, r3, 0x1
+ mov r1, r12
+ strb r0, [r1]
+_080E76B0:
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r3, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ beq _080E77BC
+ ldrb r0, [r4]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, 0
+ mov r5, r12
+ ldrb r5, [r5]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+ mov r6, r12
+ strb r0, [r6]
+ b _080E77BC
+_080E76EA:
+ ldrh r2, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080E7744
+ ldr r2, _080E7728
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E77BC
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r4, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E772C
+ movs r0, 0x2
+ b _080E77BA
+ .align 2, 0
+_080E7728: .4byte 0x02001000
+_080E772C:
+ adds r0, r2, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ subs r1, r0, 0x1
+ strb r1, [r3]
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ b _080E77B2
+_080E7744:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080E77C0
+ ldr r2, _080E777C
+ adds r5, r2, 0
+ adds r5, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7780
+ adds r1, r2, 0
+ adds r1, 0x85
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ ble _080E77BC
+ strb r4, [r1]
+ b _080E77BC
+ .align 2, 0
+_080E777C: .4byte 0x02001000
+_080E7780:
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r6, 0x83
+ adds r6, r2
+ mov r12, r6
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ blt _080E779E
+ strb r4, [r3]
+_080E779E:
+ ldrb r1, [r5]
+ mov r4, r12
+ ldrb r0, [r4]
+ adds r5, r0, 0
+ muls r5, r1
+ adds r0, r5, 0
+ ldrb r6, [r3]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+_080E77B2:
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+_080E77BA:
+ strb r0, [r3]
+_080E77BC:
+ movs r0, 0x1
+ b _080E77C2
+_080E77C0:
+ movs r0, 0
+_080E77C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E75D8
+
+ thumb_func_start sub_80E77C8
+sub_80E77C8: @ 80E77C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r1, _080E780C
+ ldr r2, _080E7810
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080E783E
+ ldr r1, _080E7814
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7818
+ movs r4, 0xD4
+ lsls r4, 1
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ ble _080E7806
+ b _080E7948
+_080E7806:
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7948
+ .align 2, 0
+_080E780C: .4byte 0x02001000
+_080E7810: .4byte 0x000001b7
+_080E7814: .4byte gMain
+_080E7818:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _080E7822
+ b _080E7950
+_080E7822:
+ movs r5, 0xD4
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080E7838
+ b _080E7948
+_080E7838:
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080E7948
+_080E783E:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E789A
+ movs r4, 0
+ ldr r1, _080E7870
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7874
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r1, r3, r6
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7944
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7944
+ .align 2, 0
+_080E7870: .4byte gMain
+_080E7874:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E7894
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080E7892
+ strb r7, [r1]
+_080E7892:
+ movs r4, 0x1
+_080E7894:
+ cmp r4, 0
+ beq _080E7950
+ b _080E7944
+_080E789A:
+ movs r4, 0
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r5, r3, r1
+ strb r7, [r5]
+ ldr r1, _080E78E0
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E78E8
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E78C4
+ b _080E7A88
+_080E78C4:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E78E4
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7932
+ movs r0, 0xFF
+ strb r0, [r5]
+ b _080E7932
+ .align 2, 0
+_080E78E0: .4byte gMain
+_080E78E4: .4byte 0x000001b5
+_080E78E8:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E792E
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ movs r4, 0xDB
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E790E
+ b _080E7A88
+_080E790E:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E794C
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x3
+ cmp r1, r0
+ ble _080E792C
+ movs r0, 0x1
+ strb r0, [r5]
+_080E792C:
+ movs r4, 0x1
+_080E792E:
+ cmp r4, 0
+ beq _080E7950
+_080E7932:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7944
+ b _080E7A88
+_080E7944:
+ bl sub_80E7A98
+_080E7948:
+ movs r0, 0x1
+ b _080E7A8A
+ .align 2, 0
+_080E794C: .4byte 0x000001b5
+_080E7950:
+ ldrh r1, [r6, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _080E7992
+ ldr r5, _080E7974
+ adds r2, r3, r5
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080E7978
+ subs r0, r1, 0x1
+ strb r0, [r2]
+ b _080E79E6
+ .align 2, 0
+_080E7974: .4byte 0x000001a9
+_080E7978:
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r4, 0xD5
+ lsls r4, 1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ b _080E79E6
+_080E7992:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E79E2
+ ldr r5, _080E79D4
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E79CC
+ ldr r0, _080E79D8
+ adds r4, r3, r0
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD5
+ lsls r2, 1
+ adds r0, r3, r2
+ adds r1, r0
+ ldrb r5, [r4]
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E79DC
+_080E79CC:
+ ldr r4, _080E79D8
+ adds r0, r3, r4
+ strb r6, [r0]
+ b _080E79E0
+ .align 2, 0
+_080E79D4: .4byte 0x000001b7
+_080E79D8: .4byte 0x000001a9
+_080E79DC:
+ adds r0, r5, 0x1
+ strb r0, [r4]
+_080E79E0:
+ movs r7, 0x1
+_080E79E2:
+ cmp r7, 0
+ beq _080E7A88
+_080E79E6:
+ adds r2, r3, 0
+ ldr r5, _080E7A48
+ adds r7, r2, r5
+ ldrb r6, [r7]
+ mov r9, r6
+ movs r1, 0
+ ldr r0, _080E7A4C
+ adds r0, r2
+ mov r12, r0
+ subs r5, 0xF
+ adds r4, r2, r5
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r6, 0xD5
+ lsls r6, 1
+ adds r6, r2
+ mov r8, r6
+ add r0, r8
+ mov r6, r12
+ movs r5, 0
+ ldrsb r5, [r6, r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E7A1C
+ movs r1, 0x1
+_080E7A1C:
+ strb r1, [r7]
+ cmp r1, 0
+ beq _080E7A58
+ ldr r0, _080E7A50
+ adds r1, r2, r0
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ subs r0, r1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7A36
+ b _080E7948
+_080E7A36:
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080E7A54
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r2, r12
+ strb r0, [r2]
+ b _080E7948
+ .align 2, 0
+_080E7A48: .4byte 0x000001b7
+_080E7A4C: .4byte 0x000001a9
+_080E7A50: .4byte 0x000001b5
+_080E7A54: .4byte 0x000001ab
+_080E7A58:
+ mov r6, r9
+ cmp r6, 0
+ bne _080E7A60
+ b _080E7948
+_080E7A60:
+ ldr r1, _080E7A84
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ adds r0, r2
+ strb r0, [r4]
+ cmp r5, 0
+ bne _080E7A72
+ b _080E7948
+_080E7A72:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r0, r8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r4, r12
+ strb r0, [r4]
+ b _080E7948
+ .align 2, 0
+_080E7A84: .4byte 0x000001b5
+_080E7A88:
+ movs r0, 0
+_080E7A8A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E77C8
+
+ thumb_func_start sub_80E7A98
+sub_80E7A98: @ 80E7A98
+ push {lr}
+ ldr r1, _080E7ACC
+ ldr r0, _080E7AD0
+ adds r3, r1, r0
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0x2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ ldrb r2, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080E7AC6
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080E7AC6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7ACC: .4byte 0x02001000
+_080E7AD0: .4byte 0x000001a9
+ thumb_func_end sub_80E7A98
+
+ thumb_func_start sub_80E7AD4
+sub_80E7AD4: @ 80E7AD4
+ push {lr}
+ ldr r3, _080E7B08
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7B10
+ ldr r1, _080E7B0C
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x2A
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r2, 0x10
+ b _080E7B34
+ .align 2, 0
+_080E7B08: .4byte 0x02001000
+_080E7B0C: .4byte 0x000001a9
+_080E7B10:
+ ldr r1, _080E7B3C
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r1, 0x1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r3, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r2, 0xDC
+ lsls r2, 1
+_080E7B34:
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7B3C: .4byte 0x000001a9
+ thumb_func_end sub_80E7AD4
+
+ thumb_func_start sub_80E7B40
+sub_80E7B40: @ 80E7B40
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r2, _080E7B8C
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r6, r2, r0
+ strb r5, [r6]
+ ldr r1, _080E7B90
+ ldrh r4, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r4
+ adds r3, r2, 0
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080E7B9C
+ ldr r2, _080E7B94
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E7B6E
+ b _080E7D1A
+_080E7B6E:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E7B98
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7BF2
+ movs r0, 0xFF
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7B8C: .4byte 0x02001000
+_080E7B90: .4byte gMain
+_080E7B94: .4byte 0x000099a4
+_080E7B98: .4byte 0x00009a29
+_080E7B9C:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _080E7BEE
+ ldr r0, _080E7BE0
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r4, _080E7BE4
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E7BBE
+ b _080E7D1A
+_080E7BBE:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E7BE8
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ cmp r1, r0
+ blt _080E7BEC
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7BE0: .4byte 0x000099a4
+_080E7BE4: .4byte 0x00009a28
+_080E7BE8: .4byte 0x00009a29
+_080E7BEC:
+ movs r5, 0x1
+_080E7BEE:
+ cmp r5, 0
+ beq _080E7BFA
+_080E7BF2:
+ bl sub_80E7D30
+_080E7BF6:
+ movs r0, 0x1
+ b _080E7D1C
+_080E7BFA:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080E7C38
+ ldr r4, _080E7C30
+ adds r2, r3, r4
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7BF6
+ ldr r6, _080E7C34
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, 0x1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r2]
+ b _080E7BF6
+ .align 2, 0
+_080E7C30: .4byte 0x000099a5
+_080E7C34: .4byte 0x000099a4
+_080E7C38:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7C70
+ ldr r6, _080E7C68
+ adds r4, r3, r6
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r2, _080E7C6C
+ adds r1, r3, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r6, 0x1
+ adds r1, r3, r6
+ adds r2, r1
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ blt _080E7BF6
+ strb r5, [r4]
+ b _080E7BF6
+ .align 2, 0
+_080E7C68: .4byte 0x000099a5
+_080E7C6C: .4byte 0x000099a4
+_080E7C70:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7CC4
+ ldr r1, _080E7CBC
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7CA2
+ negs r0, r1
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r2, r3, r4
+ strb r0, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E7CA2
+ strb r1, [r2]
+_080E7CA2:
+ ldr r6, _080E7CC0
+ adds r1, r3, r6
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ ldrb r4, [r1]
+ adds r0, r4
+ strb r0, [r1]
+ movs r6, 0xDF
+ lsls r6, 1
+ adds r1, r3, r6
+ b _080E7D16
+ .align 2, 0
+_080E7CBC: .4byte 0x00009a29
+_080E7CC0: .4byte 0x000099a4
+_080E7CC4:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7D1A
+ ldr r0, _080E7D24
+ adds r4, r3, r0
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r6, _080E7D28
+ adds r2, r3, r6
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ subs r0, 0x4
+ cmp r1, r0
+ bge _080E7CFE
+ ldrb r1, [r4]
+ adds r1, 0x4
+ ldrb r0, [r2]
+ subs r0, r1
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080E7CFE
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7CFE:
+ ldr r4, _080E7D2C
+ adds r1, r3, r4
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ movs r4, 0xDF
+ lsls r4, 1
+ adds r1, r3, r4
+_080E7D16:
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7D1A:
+ movs r0, 0
+_080E7D1C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7D24: .4byte 0x00009a29
+_080E7D28: .4byte 0x00009a28
+_080E7D2C: .4byte 0x000099a4
+ thumb_func_end sub_80E7B40
+
+ thumb_func_start sub_80E7D30
+sub_80E7D30: @ 80E7D30
+ push {r4,lr}
+ ldr r0, _080E7D60
+ ldr r1, _080E7D64
+ adds r4, r0, r1
+ ldr r2, _080E7D68
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r2, 0x2
+ adds r0, r2
+ adds r1, r0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ ldrb r3, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ blt _080E7D5A
+ subs r0, r3, 0x1
+ strb r0, [r4]
+_080E7D5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D60: .4byte 0x02001000
+_080E7D64: .4byte 0x000099a5
+_080E7D68: .4byte 0x000099a4
+ thumb_func_end sub_80E7D30
+
+ thumb_func_start sub_80E7D6C
+sub_80E7D6C: @ 80E7D6C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080E7D94
+ ldrb r1, [r0, 0xA]
+ cmp r4, r1
+ bcs _080E7D8E
+ adds r5, r0, 0
+_080E7D7A:
+ adds r0, r4, 0
+ ldr r1, _080E7D98
+ bl sub_80E7F00
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r5, 0xA]
+ cmp r4, r0
+ bcc _080E7D7A
+_080E7D8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D94: .4byte 0x02001000
+_080E7D98: .4byte 0x0000ffff
+ thumb_func_end sub_80E7D6C
+
+ thumb_func_start sub_80E7D9C
+sub_80E7D9C: @ 80E7D9C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _080E7DCC
+ ldrb r1, [r0, 0xA]
+ cmp r2, r1
+ bcs _080E7DC6
+ adds r3, r0, 0
+ ldr r4, [r3, 0x4]
+ adds r5, r3, 0
+ adds r5, 0xC
+_080E7DB0:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r3, 0xA]
+ cmp r2, r0
+ bcc _080E7DB0
+_080E7DC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7DCC: .4byte 0x02001000
+ thumb_func_end sub_80E7D9C
+
+ thumb_func_start sub_80E7DD0
+sub_80E7DD0: @ 80E7DD0
+ push {r4,lr}
+ ldr r2, _080E7E28
+ ldr r1, _080E7E2C
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r3, _080E7E30
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0
+ adds r3, 0x86
+ adds r0, r2, r3
+ adds r1, r0
+ ldrh r4, [r1]
+ adds r0, r2, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E7E34
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080E7E34
+ adds r0, r4, 0
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bne _080E7E34
+ movs r0, 0
+ b _080E7E46
+ .align 2, 0
+_080E7E28: .4byte 0x02001000
+_080E7E2C: .4byte 0x000099a5
+_080E7E30: .4byte 0x000099a4
+_080E7E34:
+ ldr r0, _080E7E4C
+ adds r0, 0x27
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80E7F00
+ bl sub_80E95A4
+ movs r0, 0x1
+_080E7E46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7E4C: .4byte 0x02001000
+ thumb_func_end sub_80E7DD0
+
+ thumb_func_start sub_80E7E50
+sub_80E7E50: @ 80E7E50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r5, 0
+ movs r2, 0
+ ldr r1, _080E7EF0
+ adds r3, r1, 0
+ adds r3, 0x84
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r2, r0
+ bge _080E7EDE
+ mov r8, r1
+ adds r0, r1, 0
+ str r0, [sp]
+_080E7E74:
+ mov r0, r8
+ adds r0, 0x7E
+ adds r0, r2, r0
+ movs r1, 0
+ strb r1, [r0]
+ movs r3, 0
+ ldr r6, _080E7EF4
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ cmp r3, r0
+ bge _080E7ECE
+ ldr r6, [sp]
+ mov r12, r6
+ movs r0, 0
+ mov r10, r0
+ ldr r1, _080E7EF4
+ mov r9, r1
+ ldr r7, _080E7EF8
+ lsls r4, r2, 1
+_080E7E9E:
+ lsls r1, r5, 1
+ adds r2, r1, r7
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r0, r3, r4
+ mov r1, r12
+ adds r1, 0x8C
+ adds r0, r1
+ mov r1, r10
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r6, r9
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r3, r0
+ blt _080E7E9E
+_080E7ECE:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r6, _080E7EFC
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080E7E74
+_080E7EDE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7EF0: .4byte 0x02001000
+_080E7EF4: .4byte 0x02001083
+_080E7EF8: .4byte 0x0200100c
+_080E7EFC: .4byte 0x02001084
+ thumb_func_end sub_80E7E50
+
+ thumb_func_start sub_80E7F00
+sub_80E7F00: @ 80E7F00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r7, _080E7F68
+ adds r0, r7, 0
+ adds r0, 0x83
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r1, r7, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r9
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, 0x7
+ bne _080E7F6C
+ cmp r3, 0x7
+ beq _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _080E7F7A
+ .align 2, 0
+_080E7F68: .4byte 0x02001000
+_080E7F6C:
+ cmp r3, 0x7
+ bne _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ adds r0, 0x1
+_080E7F7A:
+ strb r0, [r1]
+_080E7F7C:
+ movs r3, 0
+ ldr r2, _080E7FA4
+ lsls r0, r5, 1
+ add r0, r8
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r0, r1
+ strb r3, [r0]
+ lsls r0, r6, 1
+ adds r2, 0xC
+ adds r0, r2
+ mov r1, r9
+ strh r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7FA4: .4byte 0x02001000
+ thumb_func_end sub_80E7F00
+
+ thumb_func_start sub_80E7FA8
+sub_80E7FA8: @ 80E7FA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080E8040
+ ldrb r1, [r0, 0xA]
+ cmp r8, r1
+ bcs _080E802E
+ ldr r3, _080E8044
+ adds r6, r0, r3
+ ldr r1, _080E8048
+ adds r1, r0
+ mov r9, r1
+_080E7FC8:
+ ldr r3, _080E804C
+ adds r7, r6, r3
+ ldr r0, [r7, 0x4]
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r1, _080E8050
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0
+ bl sub_80EB218
+ adds r1, r6, 0
+ mov r2, r9
+ ldrb r0, [r1]
+ adds r4, r5, 0x1
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _080E8018
+ adds r3, r7, 0
+ cmp r0, 0xFF
+ beq _080E8010
+_080E8000:
+ adds r1, 0x1
+ adds r2, 0x1
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bne _080E8018
+ cmp r0, 0xFF
+ bne _080E8000
+_080E8010:
+ ldrb r0, [r1]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080E8024
+_080E8018:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r3, _080E8040
+_080E8024:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r3, 0xA]
+ cmp r5, r3
+ bcc _080E7FC8
+_080E802E:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E8040: .4byte 0x02001000
+_080E8044: .4byte 0x00009e14
+_080E8048: .4byte 0x00009e41
+_080E804C: .4byte 0xffff61ec
+_080E8050: .4byte 0xffff61f8
+ thumb_func_end sub_80E7FA8
+
+ thumb_func_start sub_80E8054
+sub_80E8054: @ 80E8054
+ push {r4,lr}
+ movs r1, 0
+ ldr r2, _080E8078
+ ldrb r0, [r2, 0xA]
+ cmp r1, r0
+ bcs _080E808A
+ adds r4, r2, 0
+ adds r4, 0xC
+ ldr r3, _080E807C
+ adds r2, r0, 0
+_080E8068:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _080E8080
+ movs r0, 0
+ b _080E808C
+ .align 2, 0
+_080E8078: .4byte 0x02001000
+_080E807C: .4byte 0x0000ffff
+_080E8080:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080E8068
+_080E808A:
+ movs r0, 0x1
+_080E808C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8054
+
+ thumb_func_start sub_80E8094
+sub_80E8094: @ 80E8094
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, _080E80C4
+ adds r7, r6, 0
+ adds r7, 0x2D
+_080E809E:
+ lsls r4, r5, 1
+ ldr r1, _080E80C8
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r0, _080E80CC
+ adds r4, r0
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r3, r6, 0
+ adds r4, r7, 0
+ b _080E80D8
+ .align 2, 0
+_080E80C4: .4byte 0x0200ae14
+_080E80C8: .4byte 0xffff61f8
+_080E80CC: .4byte gMysteryEventPhrase
+_080E80D0:
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r2, r1
+ bne _080E80F4
+_080E80D8:
+ ldrb r2, [r3]
+ adds r0, r2, 0
+ cmp r0, 0xFF
+ beq _080E80EE
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _080E80D0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E80F4
+_080E80EE:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080E80F8
+_080E80F4:
+ movs r0, 0
+ b _080E8104
+_080E80F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E809E
+ movs r0, 0x1
+_080E8104:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8094
+
+ thumb_func_start sub_80E810C
+sub_80E810C: @ 80E810C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080E8198
+ ldr r0, _080E819C
+ adds r0, r6
+ mov r9, r0
+ movs r1, 0
+ mov r8, r1
+ adds r7, r6, 0
+ adds r7, 0x80
+ ldr r2, _080E81A0
+ mov r10, r2
+_080E812C:
+ mov r0, r9
+ ldrh r1, [r0, 0xC]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, 0x1
+ mov r2, r9
+ ldrh r1, [r2, 0xE]
+ movs r2, 0
+ bl sub_80EB218
+ lsls r4, r5, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81A4
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ adds r0, r6, 0
+ adds r3, r7, 0
+ adds r4, r5, 0x1
+_080E8170:
+ ldrb r2, [r0]
+ cmp r2, 0xFF
+ beq _080E818A
+ ldrb r1, [r3]
+ cmp r1, 0xFF
+ beq _080E8184
+ adds r3, 0x1
+ adds r0, 0x1
+ cmp r2, r1
+ beq _080E8170
+_080E8184:
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E81A8
+_080E818A:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E81A8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _080E81B2
+ .align 2, 0
+_080E8198: .4byte 0x0200ae6e
+_080E819C: .4byte 0xffff6192
+_080E81A0: .4byte gBerryMasterWifePhrases
+_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
+_080E81A8:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080E812C
+ movs r0, 0
+_080E81B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E810C
+
+ thumb_func_start sub_80E81C0
+sub_80E81C0: @ 80E81C0
+ push {r4,lr}
+ ldr r0, _080E81EC
+ ldr r4, _080E81F0
+ ldr r2, _080E81F4
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_80EB218
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81F8
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E81EC: .4byte gStringVar2
+_080E81F0: .4byte 0x02001000
+_080E81F4: .4byte 0x00009c7c
+_080E81F8: .4byte 0x00009c7e
+ thumb_func_end sub_80E81C0
+
+ thumb_func_start sub_80E81FC
+sub_80E81FC: @ 80E81FC
+ push {lr}
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E95A4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E81FC
+
+ thumb_func_start sub_80E8218
+sub_80E8218: @ 80E8218
+ push {r4,r5,lr}
+ sub sp, 0x40
+ mov r1, sp
+ ldr r0, _080E8260
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r4, sp, 0x28
+ adds r1, r4, 0
+ ldr r0, _080E8264
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ bl sub_80E8268
+ bl sub_80E8818
+ bl sub_80E8A7C
+ add sp, 0x40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8260: .4byte gSpriteSheets_Interview
+_080E8264: .4byte gSpritePalettes_Interview
+ thumb_func_end sub_80E8218
+
+ thumb_func_start sub_80E8268
+sub_80E8268: @ 80E8268
+ push {lr}
+ ldr r0, _080E82B0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E82B4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080E82B8
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x8
+ movs r2, 0
+ strh r0, [r1, 0x22]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r0, r3, 0
+ adds r0, 0x98
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E82B0: .4byte gSpriteTemplate_83DBBFC
+_080E82B4: .4byte gSprites
+_080E82B8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8268
+
+ thumb_func_start sub_80E82BC
+sub_80E82BC: @ 80E82BC
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E838C
+ ldr r0, _080E8334
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x87
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E836C
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0
+ movs r1, 0
+ cmp r7, r4
+ bcs _080E8316
+ lsls r6, r5, 1
+ adds r2, 0x8C
+_080E8300:
+ adds r0, r1, r6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bcc _080E8300
+_080E8316:
+ mov r0, r12
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E8338
+ movs r0, 0x60
+ strh r0, [r3, 0x22]
+ lsls r0, r4, 3
+ subs r0, r4
+ adds r0, 0x3
+ b _080E8356
+ .align 2, 0
+_080E8334: .4byte gUnknown_083DB694
+_080E8338:
+ adds r1, r2, 0
+ adds r1, 0x8A
+ lsls r0, r5, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ adds r0, r7
+ movs r1, 0xB
+ muls r1, r4
+ adds r0, r1
+_080E8356:
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3, 0x20]
+ movs r1, 0
+ ldr r0, _080E8368
+ strh r0, [r3, 0x24]
+ strh r1, [r3, 0x2E]
+ b _080E838C
+ .align 2, 0
+_080E8368: .4byte 0x0000fffa
+_080E836C:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E838C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x24]
+ adds r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E838C
+ ldr r0, _080E8394
+ strh r0, [r3, 0x24]
+_080E838C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8394: .4byte 0x0000fffa
+ thumb_func_end sub_80E82BC
+
+ thumb_func_start sub_80E8398
+sub_80E8398: @ 80E8398
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ beq _080E83D4
+ cmp r3, 0x1
+ bgt _080E83AC
+ cmp r3, 0
+ beq _080E83B2
+ b _080E8416
+_080E83AC:
+ cmp r3, 0x2
+ beq _080E83F8
+ b _080E8416
+_080E83B2:
+ ldr r0, _080E83D0
+ ldr r0, [r0]
+ adds r0, 0x98
+ ldr r1, [r0]
+ strh r3, [r1, 0x30]
+ ldr r1, [r0]
+ strh r3, [r1, 0x24]
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83D0: .4byte gUnknown_083DB694
+_080E83D4:
+ ldr r0, _080E83F4
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r0, [r1]
+ movs r2, 0
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83F4: .4byte gUnknown_083DB694
+_080E83F8:
+ ldr r0, _080E841C
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_080E8414:
+ strb r0, [r1]
+_080E8416:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E841C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8398
+
+ thumb_func_start sub_80E8420
+sub_80E8420: @ 80E8420
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E84E0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E84E4
+ ldr r7, [r1]
+ adds r5, r7, 0
+ adds r5, 0x9C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _080E84E8
+ adds r1, r4
+ str r1, [r5]
+ ldr r0, _080E84EC
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F0
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r7, 0
+ adds r6, 0xA0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r6]
+ ldr r0, _080E84F4
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F8
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r7, 0
+ adds r2, 0xA4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2]
+ ldr r0, [r5]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r6]
+ strh r1, [r0, 0x2E]
+ ldr r0, [r2]
+ strh r1, [r0, 0x2E]
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r2, _080E84FC
+ adds r0, r2
+ strh r0, [r1, 0x34]
+ bl sub_80E8534
+ adds r1, r7, 0
+ adds r1, 0x96
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080E8500
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E84E0: .4byte gSpriteTemplate_83DBCAC
+_080E84E4: .4byte gUnknown_083DB694
+_080E84E8: .4byte gSprites
+_080E84EC: .4byte gSpriteAnimTable_83DBC8C
+_080E84F0: .4byte sub_80E872C
+_080E84F4: .4byte gSpriteAnimTable_83DBC9C
+_080E84F8: .4byte sub_80E8760
+_080E84FC: .4byte 0x00000101
+_080E8500: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8420
+
+ thumb_func_start sub_80E8504
+sub_80E8504: @ 80E8504
+ push {r4,lr}
+ ldr r0, _080E8530
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x9C
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldr r0, [r0]
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8530: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8504
+
+ thumb_func_start sub_80E8534
+sub_80E8534: @ 80E8534
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _080E8554
+ ldr r3, [r1]
+ ldr r2, _080E8558
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080E8560
+ ldr r1, _080E855C
+ movs r0, 0x1
+ b _080E8598
+ .align 2, 0
+_080E8554: .4byte gUnknown_083DB694
+_080E8558: .4byte 0x000001b7
+_080E855C: .4byte gUnknown_020388AC
+_080E8560:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080E8578
+ ldr r0, _080E8574
+ strb r2, [r0]
+ adds r7, r0, 0
+ b _080E859C
+ .align 2, 0
+_080E8574: .4byte gUnknown_020388AC
+_080E8578:
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _080E8594
+ ldr r1, _080E8590
+ movs r0, 0x2
+ b _080E8598
+ .align 2, 0
+_080E8590: .4byte gUnknown_020388AC
+_080E8594:
+ ldr r1, _080E85F4
+ movs r0, 0x3
+_080E8598:
+ strb r0, [r1]
+ adds r7, r1, 0
+_080E859C:
+ ldr r2, [r4]
+ adds r4, r2, 0
+ adds r4, 0x9C
+ ldr r1, [r4]
+ ldrb r0, [r7]
+ movs r3, 0
+ mov r8, r3
+ strh r0, [r1, 0x32]
+ adds r5, r2, 0
+ adds r5, 0xA0
+ ldr r1, [r5]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ adds r6, r2, 0
+ adds r6, 0xA4
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r5]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r6]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ movs r1, 0x8
+ strh r1, [r0, 0x38]
+ ldr r0, [r4]
+ strh r1, [r0, 0x3A]
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E85F4: .4byte gUnknown_020388AC
+ thumb_func_end sub_80E8534
+
+ thumb_func_start sub_80E85F8
+sub_80E85F8: @ 80E85F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E8624
+ ldr r1, _080E8620
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r0, 0x8
+ strh r0, [r5, 0x38]
+ b _080E863A
+ .align 2, 0
+_080E8620: .4byte gSineTable
+_080E8624:
+ ldr r1, _080E8688
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 21
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r5, 0x3A]
+_080E863A:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldr r2, _080E868C
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 8
+ ldrh r1, [r5, 0x38]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080E8690
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E871A
+ bl sub_80E8534
+ adds r1, r6, 0
+ adds r1, 0x9C
+ ldr r0, [r1]
+ movs r2, 0x8
+ strh r2, [r0, 0x38]
+ ldr r0, [r1]
+ strh r2, [r0, 0x3A]
+ ldr r1, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080E86C4
+ cmp r0, 0x1
+ bgt _080E8694
+ cmp r0, 0
+ beq _080E869E
+ b _080E871A
+ .align 2, 0
+_080E8688: .4byte gSineTable
+_080E868C: .4byte REG_BLDALPHA
+_080E8690: .4byte gUnknown_083DB694
+_080E8694:
+ cmp r0, 0x2
+ beq _080E86D6
+ cmp r0, 0x3
+ beq _080E86DE
+ b _080E871A
+_080E869E:
+ ldr r2, _080E86C0
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x20
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0xC
+ b _080E870A
+ .align 2, 0
+_080E86C0: .4byte 0x000001a9
+_080E86C4:
+ movs r0, 0xD8
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080E8714
+_080E86D6:
+ movs r0, 0x97
+ strh r0, [r5, 0x20]
+ movs r0, 0x60
+ b _080E8718
+_080E86DE:
+ ldr r4, _080E8720
+ ldr r2, _080E8724
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r3, r6, r0
+ movs r2, 0
+ ldrsb r2, [r3, r2]
+ lsls r0, r2, 3
+ subs r0, r2
+ adds r1, r0
+ adds r1, r4
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 3
+ adds r0, 0x1F
+ strh r0, [r5, 0x20]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ ldr r2, _080E8728
+_080E870A:
+ adds r1, r6, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+_080E8714:
+ lsls r0, 4
+ adds r0, 0x60
+_080E8718:
+ strh r0, [r5, 0x22]
+_080E871A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8720: .4byte gUnknown_083DBCC4
+_080E8724: .4byte 0x000001a9
+_080E8728: .4byte 0x000001b5
+ thumb_func_end sub_80E85F8
+
+ thumb_func_start sub_80E872C
+sub_80E872C: @ 80E872C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E875C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8756
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E8756
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E8756:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E875C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E872C
+
+ thumb_func_start sub_80E8760
+sub_80E8760: @ 80E8760
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E8780
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E879E
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080E8784
+ cmp r0, 0x2
+ beq _080E878E
+ b _080E879E
+ .align 2, 0
+_080E8780: .4byte gUnknown_083DB694
+_080E8784:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x40
+ b _080E8796
+_080E878E:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x15
+_080E8796:
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E879E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8760
+
+ thumb_func_start sub_80E87A4
+sub_80E87A4: @ 80E87A4
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _080E87C8
+ ldr r1, [r1]
+ adds r2, r1, 0
+ adds r2, 0xA8
+ ldr r3, [r2]
+ movs r4, 0
+ cmp r0, 0
+ bne _080E87BA
+ movs r4, 0x1
+_080E87BA:
+ movs r1, 0
+ strh r4, [r3, 0x30]
+ ldr r0, [r2]
+ strh r1, [r0, 0x24]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E87C8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E87A4
+
+ thumb_func_start sub_80E87CC
+sub_80E87CC: @ 80E87CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E8810
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0xA8
+ ldr r0, [r0]
+ movs r3, 0
+ cmp r4, 0
+ bne _080E87E6
+ movs r3, 0x1
+_080E87E6:
+ adds r2, r0, 0
+ adds r2, 0x3E
+ lsls r3, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl sub_80E87A4
+ cmp r4, 0
+ beq _080E880A
+ ldr r0, _080E8814
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080E880A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8810: .4byte gUnknown_083DB694
+_080E8814: .4byte 0x000001b9
+ thumb_func_end sub_80E87CC
+
+ thumb_func_start sub_80E8818
+sub_80E8818: @ 80E8818
+ push {lr}
+ ldr r0, _080E8850
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E8854
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ ldr r0, _080E8858
+ ldr r0, [r0]
+ adds r0, 0xA8
+ str r1, [r0]
+ ldr r0, _080E885C
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ bl sub_80E87CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8850: .4byte gSpriteTemplate_83DBBFC
+_080E8854: .4byte gSprites
+_080E8858: .4byte gUnknown_083DB694
+_080E885C: .4byte sub_80E8860
+ thumb_func_end sub_80E8818
+
+ thumb_func_start sub_80E8860
+sub_80E8860: @ 80E8860
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ bne _080E88E4
+ ldr r0, _080E88B0
+ ldr r3, [r0]
+ ldr r1, _080E88B4
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080E88C4
+ ldr r5, _080E88B8
+ adds r0, r3, r5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x2C
+ strh r0, [r2, 0x20]
+ ldr r1, _080E88BC
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r5, 0x84
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+ lsls r0, 4
+ adds r0, 0x60
+ strh r0, [r2, 0x22]
+ ldr r0, _080E88C0
+ strh r0, [r2, 0x24]
+ strh r4, [r2, 0x2E]
+ b _080E88E4
+ .align 2, 0
+_080E88B0: .4byte gUnknown_083DB694
+_080E88B4: .4byte 0x000001b9
+_080E88B8: .4byte 0x000099a5
+_080E88BC: .4byte 0x000099a4
+_080E88C0: .4byte 0x0000fffa
+_080E88C4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E88E4
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E88E4
+ ldr r0, _080E88EC
+ strh r0, [r2, 0x24]
+_080E88E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E88EC: .4byte 0x0000fffa
+ thumb_func_end sub_80E8860
+
+ thumb_func_start sub_80E88F0
+sub_80E88F0: @ 80E88F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r0, _080E8950
+ mov r8, r0
+ ldr r0, [r0]
+ movs r6, 0x4
+ movs r5, 0
+ movs r1, 0xB4
+ adds r1, r0
+ mov r12, r1
+ adds r7, r0, 0
+ adds r7, 0xAC
+_080E890C:
+ lsls r2, r4, 2
+ adds r3, r7, r2
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r5, [r0, 0x30]
+ add r2, r12
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r2]
+ strh r5, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E890C
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, _080E8954
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8950: .4byte gUnknown_083DB694
+_080E8954: .4byte 0x00009c70
+ thumb_func_end sub_80E88F0
+
+ thumb_func_start sub_80E8958
+sub_80E8958: @ 80E8958
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _080E89B4
+ movs r0, 0x64
+ mov r9, r0
+ ldr r0, _080E8998
+ ldr r2, [r0]
+ ldr r3, _080E899C
+ adds r1, r2, r3
+ ldr r3, _080E89A0
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E89A8
+ movs r1, 0xDB
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E89A4
+ adds r1, r2, r3
+ strb r0, [r1]
+ b _080E8A00
+ .align 2, 0
+_080E8998: .4byte gUnknown_083DB694
+_080E899C: .4byte 0x00009c6c
+_080E89A0: .4byte 0x000001b5
+_080E89A4: .4byte 0x00009c71
+_080E89A8:
+ ldr r1, _080E89B0
+ adds r0, r2, r1
+ strb r7, [r0]
+ b _080E8A00
+ .align 2, 0
+_080E89B0: .4byte 0x00009c71
+_080E89B4:
+ movs r3, 0x78
+ mov r9, r3
+ ldr r0, _080E8A64
+ ldr r2, [r0]
+ ldr r0, _080E8A68
+ adds r1, r2, r0
+ ldr r3, _080E8A6C
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r1, _080E8A70
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E8A74
+ adds r1, r2, r3
+ strb r0, [r1]
+ movs r4, 0
+ adds r5, r2, 0
+ adds r5, 0xB4
+ movs r0, 0x5
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x1
+_080E89E2:
+ lsls r3, r4, 2
+ adds r3, r5, r3
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r6, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E89E2
+_080E8A00:
+ ldr r0, _080E8A64
+ ldr r2, [r0]
+ ldr r3, _080E8A74
+ adds r1, r2, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E8A14
+ movs r0, 0
+ strb r0, [r1]
+_080E8A14:
+ movs r4, 0
+ adds r6, r2, 0
+ adds r6, 0xAC
+ movs r0, 0x5
+ negs r0, r0
+ mov r8, r0
+_080E8A20:
+ lsls r2, r4, 2
+ adds r2, r6, r2
+ ldr r0, [r2]
+ mov r1, r9
+ strh r1, [r0, 0x20]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r5, 0x1
+ strh r5, [r0, 0x30]
+ ldr r0, [r2]
+ adds r1, r7, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E8A20
+ ldr r0, _080E8A64
+ ldr r0, [r0]
+ ldr r1, _080E8A78
+ adds r0, r1
+ strb r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8A64: .4byte gUnknown_083DB694
+_080E8A68: .4byte 0x00009c6c
+_080E8A6C: .4byte 0x00009a29
+_080E8A70: .4byte 0x00009a28
+_080E8A74: .4byte 0x00009c71
+_080E8A78: .4byte 0x00009c70
+ thumb_func_end sub_80E8958
+
+ thumb_func_start sub_80E8A7C
+sub_80E8A7C: @ 80E8A7C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E8B68
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r5, 0
+_080E8A8E:
+ lsls r2, r5, 3
+ adds r2, r5
+ lsls r2, 19
+ movs r0, 0xA8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C
+ ldr r2, [r0]
+ lsls r0, r5, 2
+ adds r2, 0xAC
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ adds r3, 0x3F
+ movs r0, 0x1
+ adds r2, r5, 0
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3]
+ movs r4, 0x3
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8A8E
+ mov r0, sp
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _080E8B74
+ str r0, [sp, 0x8]
+ movs r5, 0
+ movs r7, 0x3F
+ movs r6, 0x40
+_080E8AF6:
+ lsls r4, r5, 2
+ adds r1, r4, r5
+ lsls r1, 19
+ movs r0, 0x8E
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C
+ ldr r2, [r0]
+ adds r2, 0xB4
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x1]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x3]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x3]
+ ldr r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8AF6
+ movs r0, 0
+ bl sub_80E8958
+ bl sub_80E88F0
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8B68: .4byte gSpriteTemplate_83DBD18
+_080E8B6C: .4byte gUnknown_083DB694
+_080E8B70: .4byte gSprites
+_080E8B74: .4byte gUnknown_083DBD10
+ thumb_func_end sub_80E8A7C
+
+ thumb_func_start sub_80E8B78
+sub_80E8B78: @ 80E8B78
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080E8BB0
+ ldr r1, [r0]
+ ldr r2, _080E8BB4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _080E8BBC
+ movs r4, 0
+ ldr r2, _080E8BB8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E8BD6
+ b _080E8BD4
+ .align 2, 0
+_080E8BB0: .4byte gUnknown_083DB694
+_080E8BB4: .4byte 0x00009c70
+_080E8BB8: .4byte 0x00009c6c
+_080E8BBC:
+ movs r4, 0
+ ldr r2, _080E8BF0
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x5
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E8BD6
+_080E8BD4:
+ movs r4, 0x1
+_080E8BD6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ lsls r3, r4, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E8BE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8BF0: .4byte 0x00009c6c
+ thumb_func_end sub_80E8B78
+
+ thumb_func_start sub_80E8BF4
+sub_80E8BF4: @ 80E8BF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r0, _080E8C28
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ ldr r0, _080E8C2C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ cmp r2, 0x2
+ beq _080E8C20
+ cmp r2, 0x5
+ beq _080E8C30
+_080E8C20:
+ movs r4, 0x40
+ movs r5, 0x28
+ b _080E8C34
+ .align 2, 0
+_080E8C28: .4byte gUnknown_083DBD30
+_080E8C2C: .4byte gUnknown_083DBD38
+_080E8C30:
+ movs r4, 0x24
+ movs r5, 0x30
+_080E8C34:
+ cmp r3, 0
+ beq _080E8C3C
+ cmp r3, 0x1
+ beq _080E8C40
+_080E8C3C:
+ movs r0, 0x43
+ b _080E8C42
+_080E8C40:
+ movs r0, 0x44
+_080E8C42:
+ mov r8, r0
+ add r0, sp, 0x4
+ bl LoadCompressedObjectPic
+ add r0, sp, 0xC
+ bl LoadSpritePalette
+ ldr r0, _080E8CDC
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r0, _080E8CE0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x69
+ cmp r0, 0
+ bne _080E8C68
+ movs r1, 0x64
+_080E8C68:
+ ldr r7, _080E8CE4
+ adds r2, r4, 0
+ subs r2, 0xC
+ movs r6, 0
+ str r6, [sp]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8C9E
+ ldr r1, _080E8CE8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_080E8C9E:
+ adds r2, r4, 0
+ adds r2, 0xC
+ str r6, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8CD0
+ ldr r1, _080E8CE8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8CD0:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8CDC: .4byte gSpriteTemplate_83DBD48
+_080E8CE0: .4byte gSaveBlock2
+_080E8CE4: .4byte SpriteCallbackDummy
+_080E8CE8: .4byte gSprites
+ thumb_func_end sub_80E8BF4
+
+ thumb_func_start sub_80E8CEC
+sub_80E8CEC: @ 80E8CEC
+ push {lr}
+ ldr r0, _080E8D24
+ bl LoadCompressedObjectPic
+ ldr r0, _080E8D28
+ bl LoadSpritePalette
+ ldr r0, _080E8D2C
+ movs r1, 0xE0
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080E8D3C
+ ldr r0, _080E8D30
+ ldr r2, [r0]
+ ldr r0, _080E8D34
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8D38
+ adds r0, r1
+ str r0, [r2]
+ b _080E8D48
+ .align 2, 0
+_080E8D24: .4byte gUnknown_083DBD60
+_080E8D28: .4byte gUnknown_083DBD68
+_080E8D2C: .4byte gSpriteTemplate_83DBDE4
+_080E8D30: .4byte gUnknown_083DB694
+_080E8D34: .4byte 0x00009c74
+_080E8D38: .4byte gSprites
+_080E8D3C:
+ ldr r0, _080E8D4C
+ ldr r0, [r0]
+ ldr r1, _080E8D50
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080E8D48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8D4C: .4byte gUnknown_083DB694
+_080E8D50: .4byte 0x00009c74
+ thumb_func_end sub_80E8CEC
+
+ thumb_func_start sub_80E8D54
+sub_80E8D54: @ 80E8D54
+ push {lr}
+ ldr r0, _080E8D78
+ ldr r2, [r0]
+ ldr r1, _080E8D7C
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8D88
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8D80
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080E8D88
+ .align 2, 0
+_080E8D78: .4byte gUnknown_083DB694
+_080E8D7C: .4byte 0x00009c74
+_080E8D80:
+ adds r0, r1, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8D88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D54
+
+ thumb_func_start sub_80E8D8C
+sub_80E8D8C: @ 80E8D8C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080E8DB8
+ ldr r2, [r0]
+ ldr r1, _080E8DBC
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8DD2
+ cmp r3, 0
+ beq _080E8DCA
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8DC0
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _080E8DD2
+ .align 2, 0
+_080E8DB8: .4byte gUnknown_083DB694
+_080E8DBC: .4byte 0x00009c74
+_080E8DC0:
+ adds r0, r1, 0
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080E8DD2
+_080E8DCA:
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl StartSpriteAnim
+_080E8DD2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D8C
+
+ thumb_func_start sub_80E8DD8
+sub_80E8DD8: @ 80E8DD8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ ldr r0, _080E8F2C
+ movs r6, 0
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ subs r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ ldr r1, _080E8F30
+ movs r2, 0x8B
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E8F34
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E8F38
+ ldr r1, _080E8F3C
+ ldr r1, [r1]
+ mov r8, r1
+ movs r4, 0xE4
+ lsls r4, 1
+ add r4, r8
+ movs r5, 0xA0
+ lsls r5, 2
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F40
+ movs r1, 0xD9
+ lsls r1, 3
+ add r1, r8
+ bl LZ77UnCompWram
+ ldr r0, _080E8F44
+ ldr r1, _080E8F48
+ bl LZ77UnCompVram
+ ldr r1, _080E8F4C
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F50
+ movs r1, 0x40
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r1, _080E8F54
+ ldr r2, _080E8F58
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F5C
+ movs r5, 0x80
+ lsls r5, 4
+ mov r0, sp
+ strh r6, [r0]
+ ldr r4, _080E8F60
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r0, r5, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F64
+ ldr r2, _080E8F68
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _080E8F6C
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F70
+ bl LZ77UnCompVram
+ ldr r0, _080E8F74
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F78
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080E8F7C
+ ldr r2, _080E8F80
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F84
+ movs r0, 0
+ mov r9, r0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r5, 2
+ movs r0, 0x85
+ lsls r0, 24
+ orrs r5, r0
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F88
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F8C
+ adds r1, r0, 0
+ adds r1, 0x7E
+ ldr r3, _080E8F90
+ strh r3, [r1]
+ subs r1, 0x1C
+ ldr r2, _080E8F94
+ strh r2, [r1]
+ adds r0, 0x70
+ ldr r1, _080E8F98
+ strh r1, [r0]
+ ldr r0, _080E8F9C
+ adds r4, r0, 0
+ adds r4, 0x7E
+ strh r3, [r4]
+ adds r3, r0, 0
+ adds r3, 0x62
+ strh r2, [r3]
+ adds r0, 0x70
+ strh r1, [r0]
+ movs r1, 0xBC
+ add r8, r1
+ mov r2, r8
+ strb r6, [r2]
+ bl sub_80E8FA4
+ bl sub_80E948C
+ movs r0, 0xA
+ bl sub_80E9198
+ movs r0, 0
+ bl sub_80E91D4
+ bl sub_80E95A4
+ ldr r0, _080E8FA0
+ mov r1, r9
+ strh r1, [r0]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8F2C: .4byte REG_BG0HOFS
+_080E8F30: .4byte REG_BG0CNT
+_080E8F34: .4byte 0x00000d09
+_080E8F38: .4byte gUnknown_08E945D0
+_080E8F3C: .4byte gUnknown_083DB694
+_080E8F40: .4byte gUnknown_08E953D0
+_080E8F44: .4byte gMenuWordGroupFrame_Gfx
+_080E8F48: .4byte 0x06008000
+_080E8F4C: .4byte 0x06006800
+_080E8F50: .4byte gMenuWordGroupFrame1_Pal
+_080E8F54: .4byte REG_BG2CNT
+_080E8F58: .4byte 0x00000e02
+_080E8F5C: .4byte 0x06007000
+_080E8F60: .4byte 0x040000d4
+_080E8F64: .4byte gUnknown_08E9AB00
+_080E8F68: .4byte 0x06006000
+_080E8F6C: .4byte 0x80000020
+_080E8F70: .4byte gUnknown_08E9AB60
+_080E8F74: .4byte gUnknown_08E9AB40
+_080E8F78: .4byte gUnknown_083DBDFC
+_080E8F7C: .4byte REG_BG3CNT
+_080E8F80: .4byte 0x00000f0f
+_080E8F84: .4byte 0x06007800
+_080E8F88: .4byte gUnknown_083DBE40
+_080E8F8C: .4byte gPlttBufferUnfaded
+_080E8F90: .4byte 0x00007fff
+_080E8F94: .4byte 0x00006f5b
+_080E8F98: .4byte 0x0000739c
+_080E8F9C: .4byte gPlttBufferFaded
+_080E8FA0: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8DD8
+
+ thumb_func_start sub_80E8FA4
+sub_80E8FA4: @ 80E8FA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x24]
+ add r2, sp, 0xC
+ mov r12, r2
+_080E8FBE:
+ mov r3, r9
+ lsls r1, r3, 1
+ ldr r4, _080E90F4
+ adds r0, r1, r4
+ ldrh r2, [r0]
+ movs r0, 0x1F
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp]
+ ldr r5, _080E90F8
+ adds r1, r5
+ ldrh r1, [r1]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0xC]
+ lsls r2, 16
+ lsrs r0, r2, 21
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r0, 8
+ str r0, [sp, 0x4]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r3
+ lsls r0, 8
+ mov r4, r12
+ str r0, [r4, 0x4]
+ lsrs r2, 26
+ ands r2, r3
+ lsls r2, 8
+ str r2, [sp, 0x8]
+ lsrs r1, 26
+ ands r1, r3
+ lsls r1, 8
+ str r1, [r4, 0x8]
+ movs r3, 0
+ mov r5, r9
+ lsls r5, 3
+ mov r10, r5
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x28]
+ ldr r4, [sp, 0x24]
+_080E9016:
+ lsls r0, r3, 2
+ adds r2, r4, r0
+ mov r5, r12
+ adds r1, r5, r0
+ add r0, sp
+ ldr r1, [r1]
+ ldr r0, [r0]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080E902C
+ adds r0, 0x7
+_080E902C:
+ asrs r0, 3
+ str r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9016
+ movs r4, 0
+ ldr r0, _080E90FC
+ ldr r1, [r0]
+ mov r0, r10
+ add r0, r9
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x1F
+ ldr r6, [sp, 0x24]
+ ldr r0, _080E9100
+ adds r7, r1, r0
+_080E9050:
+ lsls r2, r4, 1
+ add r2, r8
+ adds r2, r7, r2
+ ldr r1, [sp, 0x8]
+ asrs r1, 8
+ ands r1, r5
+ lsls r1, 10
+ ldr r0, [sp, 0x4]
+ asrs r0, 8
+ ands r0, r5
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp]
+ asrs r0, 8
+ ands r0, r5
+ orrs r1, r0
+ strh r1, [r2]
+ movs r3, 0
+ adds r4, 0x1
+_080E9076:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ adds r0, r6, r0
+ ldr r1, [r2]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9076
+ lsls r0, r4, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080E9050
+ ldr r2, _080E90FC
+ ldr r3, [r2]
+ mov r0, r10
+ add r0, r9
+ adds r0, r4
+ lsls r0, 1
+ ldr r4, _080E9100
+ adds r2, r3, r4
+ adds r2, r0
+ mov r5, r12
+ ldr r1, [r5, 0x8]
+ asrs r1, 8
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 10
+ ldr r0, [r5, 0x4]
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp, 0xC]
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r5, [sp, 0x28]
+ lsls r0, r5, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x2
+ bhi _080E90DA
+ b _080E8FBE
+_080E90DA:
+ ldr r0, _080E9104
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
+_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
+_080E90FC: .4byte gUnknown_083DB694
+_080E9100: .4byte 0x00009c34
+_080E9104: .4byte 0x00009c32
+ thumb_func_end sub_80E8FA4
+
+ thumb_func_start sub_80E9108
+sub_80E9108: @ 80E9108
+ push {r4-r7,lr}
+ lsls r0, 24
+ ldr r1, _080E9164
+ ldr r2, [r1]
+ ldr r3, _080E9168
+ adds r1, r2, r3
+ lsrs r0, 24
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+ movs r4, 0
+ ldr r0, _080E916C
+ mov r12, r0
+ adds r6, r1, 0
+ ldr r3, _080E9170
+ adds r5, r2, r3
+ ldr r7, _080E9174
+_080E912A:
+ adds r2, r4, 0
+ adds r2, 0x51
+ lsls r2, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r2, r7
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080E912A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9164: .4byte gUnknown_083DB694
+_080E9168: .4byte 0x00009c32
+_080E916C: .4byte gPlttBufferUnfaded
+_080E9170: .4byte 0x00009c34
+_080E9174: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E9108
+
+ thumb_func_start sub_80E9178
+sub_80E9178: @ 80E9178
+ push {lr}
+ ldr r0, _080E9190
+ ldr r0, [r0]
+ ldr r1, _080E9194
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80E9108
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9190: .4byte gUnknown_083DB694
+_080E9194: .4byte 0x00009c32
+ thumb_func_end sub_80E9178
+
+ thumb_func_start sub_80E9198
+sub_80E9198: @ 80E9198
+ ldr r1, _080E91A0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080E91A0: .4byte gUnknown_03000740
+ thumb_func_end sub_80E9198
+
+ thumb_func_start sub_80E91A4
+sub_80E91A4: @ 80E91A4
+ ldr r0, _080E91AC
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080E91AC: .4byte gUnknown_03000740
+ thumb_func_end sub_80E91A4
+
+ thumb_func_start sub_80E91B0
+sub_80E91B0: @ 80E91B0
+ push {lr}
+ sub sp, 0x8
+ lsls r2, 24
+ lsls r1, 27
+ lsrs r1, 24
+ lsrs r2, 21
+ lsls r3, 27
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ movs r3, 0xB0
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E91B0
+
+ thumb_func_start sub_80E91D4
+sub_80E91D4: @ 80E91D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E91FC
+ bl BasicInitMenuWindow
+ cmp r4, 0xA
+ bne _080E9200
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0xA
+ bl sub_80E9198
+ b _080E935C
+ .align 2, 0
+_080E91FC: .4byte gWindowConfig_81E6DA8
+_080E9200:
+ bl sub_80E91A4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _080E9218
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080E9218:
+ adds r0, r4, 0
+ bl sub_80E9198
+ cmp r4, 0x9
+ bls _080E9224
+ b _080E935C
+_080E9224:
+ lsls r0, r4, 2
+ ldr r1, _080E9230
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9230: .4byte _080E9234
+ .align 2, 0
+_080E9234:
+ .4byte _080E925C
+ .4byte _080E9284
+ .4byte _080E92AC
+ .4byte _080E92C4
+ .4byte _080E92F0
+ .4byte _080E9308
+ .4byte _080E9310
+ .4byte _080E9318
+ .4byte _080E933C
+ .4byte _080E9350
+_080E925C:
+ ldr r0, _080E9278
+ ldr r4, [r0]
+ ldr r1, _080E927C
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9280
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E9278: .4byte gUnknown_083DB694
+_080E927C: .4byte 0x00009c80
+_080E9280: .4byte 0x00009cc9
+_080E9284:
+ ldr r0, _080E92A0
+ ldr r4, [r0]
+ ldr r1, _080E92A4
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92A8
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E92A0: .4byte gUnknown_083DB694
+_080E92A4: .4byte 0x00009d12
+_080E92A8: .4byte 0x00009d5b
+_080E92AC:
+ ldr r0, _080E92BC
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92C0
+ b _080E9326
+ .align 2, 0
+_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
+_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
+_080E92C4:
+ ldr r0, _080E92D8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ beq _080E92E0
+ cmp r0, 0x9
+ bne _080E92E8
+ ldr r0, _080E92DC
+ b _080E933E
+ .align 2, 0
+_080E92D8: .4byte gUnknown_083DB694
+_080E92DC: .4byte gOtherText_QuitGivingInfo
+_080E92E0:
+ ldr r0, _080E92E4
+ b _080E933E
+ .align 2, 0
+_080E92E4: .4byte gOtherText_StopGivingMail
+_080E92E8:
+ ldr r0, _080E92EC
+ b _080E933E
+ .align 2, 0
+_080E92EC: .4byte gOtherText_QuitEditing
+_080E92F0:
+ ldr r0, _080E9300
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9304
+ b _080E9326
+ .align 2, 0
+_080E9300: .4byte gOtherText_EditedTextNoSavePage1
+_080E9304: .4byte gOtherText_EditedTextNoSavePage2
+_080E9308:
+ ldr r0, _080E930C
+ b _080E933E
+ .align 2, 0
+_080E930C: .4byte gOtherText_EnterAPhraseOrWord
+_080E9310:
+ ldr r0, _080E9314
+ b _080E933E
+ .align 2, 0
+_080E9314: .4byte gOtherText_TextNoDelete
+_080E9318:
+ ldr r0, _080E9334
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9338
+_080E9326:
+ movs r1, 0x4
+ movs r2, 0x11
+ movs r3, 0x2
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E9334: .4byte gOtherText_OnlyOnePhrase
+_080E9338: .4byte gOtherText_OriginalSongRestored
+_080E933C:
+ ldr r0, _080E934C
+_080E933E:
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E934C: .4byte gOtherText_TrendyAlready
+_080E9350:
+ ldr r0, _080E9364
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+_080E935C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9364: .4byte gOtherText_CombineTwoPhrases
+ thumb_func_end sub_80E91D4
+
+ thumb_func_start sub_80E9368
+sub_80E9368: @ 80E9368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080E93F8
+ lsls r0, 2
+ ldr r1, _080E937C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E937C: .4byte _080E9380
+ .align 2, 0
+_080E9380:
+ .4byte _080E93B8
+ .4byte _080E93C0
+ .4byte _080E93C8
+ .4byte _080E93D0
+ .4byte _080E93F8
+ .4byte _080E93E8
+ .4byte _080E93D8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E0
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93F0
+_080E93B8:
+ ldr r4, _080E93BC
+ b _080E93FA
+ .align 2, 0
+_080E93BC: .4byte gOtherText_Profile
+_080E93C0:
+ ldr r4, _080E93C4
+ b _080E93FA
+ .align 2, 0
+_080E93C4: .4byte gOtherText_AtBattleStart
+_080E93C8:
+ ldr r4, _080E93CC
+ b _080E93FA
+ .align 2, 0
+_080E93CC: .4byte gOtherText_UponWinningBattle
+_080E93D0:
+ ldr r4, _080E93D4
+ b _080E93FA
+ .align 2, 0
+_080E93D4: .4byte gOtherText_UponLosingBattle
+_080E93D8:
+ ldr r4, _080E93DC
+ b _080E93FA
+ .align 2, 0
+_080E93DC: .4byte gOtherText_TheBardsSong
+_080E93E0:
+ ldr r4, _080E93E4
+ b _080E93FA
+ .align 2, 0
+_080E93E4: .4byte gOtherText_WhatsHipHappening
+_080E93E8:
+ ldr r4, _080E93EC
+ b _080E93FA
+ .align 2, 0
+_080E93EC: .4byte gOtherText_Interview
+_080E93F0:
+ ldr r4, _080E93F4
+ b _080E93FA
+ .align 2, 0
+_080E93F4: .4byte gOtherText_GoodSaying
+_080E93F8:
+ movs r4, 0
+_080E93FA:
+ ldr r0, _080E943C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9440
+ ldr r2, [r0]
+ ldr r0, _080E9444
+ adds r5, r2, r0
+ movs r3, 0xFC
+ strb r3, [r5]
+ adds r0, 0x1
+ adds r1, r2, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080E9448
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ cmp r4, 0
+ beq _080E9450
+ ldr r1, _080E944C
+ adds r0, r2, r1
+ adds r1, r4, 0
+ movs r2, 0xF0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ b _080E9476
+ .align 2, 0
+_080E943C: .4byte gWindowConfig_81E6D8C
+_080E9440: .4byte gUnknown_083DB694
+_080E9444: .4byte 0x00009f8e
+_080E9448: .4byte 0x00009f90
+_080E944C: .4byte 0x00009f91
+_080E9450:
+ ldr r0, _080E9484
+ adds r1, r2, r0
+ strb r3, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0
+ bl MenuPrint
+_080E9476:
+ ldr r0, _080E9488
+ bl BasicInitMenuWindow
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9484: .4byte 0x00009f91
+_080E9488: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9368
+
+ thumb_func_start sub_80E948C
+sub_80E948C: @ 80E948C
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080E94A8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bls _080E949C
+ b _080E9594
+_080E949C:
+ lsls r0, 2
+ ldr r1, _080E94AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E94A8: .4byte gUnknown_083DB694
+_080E94AC: .4byte _080E94B0
+ .align 2, 0
+_080E94B0:
+ .4byte _080E9508
+ .4byte _080E9530
+ .4byte _080E9554
+ .4byte _080E9578
+ .4byte _080E94C8
+ .4byte _080E94E8
+_080E94C8:
+ ldr r0, _080E94E0
+ ldr r3, _080E94E4
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1A
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x6
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ b _080E9568
+ .align 2, 0
+_080E94E0: .4byte 0x06006800
+_080E94E4: .4byte gUnknown_08E94AD0
+_080E94E8:
+ ldr r0, _080E9500
+ ldr r3, _080E9504
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0xD
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+ b _080E951E
+ .align 2, 0
+_080E9500: .4byte 0x06006800
+_080E9504: .4byte gUnknown_08E94AD0
+_080E9508:
+ ldr r0, _080E9528
+ ldr r3, _080E952C
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+_080E951E:
+ movs r2, 0x2
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9528: .4byte 0x06006800
+_080E952C: .4byte gUnknown_08E94AD0
+_080E9530:
+ ldr r0, _080E954C
+ ldr r3, _080E9550
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0xA
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E954C: .4byte 0x06006800
+_080E9550: .4byte gUnknown_08E94AD0
+_080E9554:
+ ldr r0, _080E9570
+ ldr r3, _080E9574
+ movs r2, 0xD
+ str r2, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+_080E9568:
+ movs r2, 0x3
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9570: .4byte 0x06006800
+_080E9574: .4byte gUnknown_08E94AD0
+_080E9578:
+ ldr r0, _080E959C
+ ldr r3, _080E95A0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ movs r2, 0x2
+ bl sub_809D104
+_080E9594:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E959C: .4byte 0x06006800
+_080E95A0: .4byte gUnknown_08E94AD0
+ thumb_func_end sub_80E948C
+
+ thumb_func_start sub_80E95A4
+sub_80E95A4: @ 80E95A4
+ push {lr}
+ ldr r0, _080E95C0
+ bl BasicInitMenuWindow
+ ldr r0, _080E95C4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9612
+ lsls r0, 2
+ ldr r1, _080E95C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E95C0: .4byte gWindowConfig_81E6D8C
+_080E95C4: .4byte gUnknown_083DB694
+_080E95C8: .4byte _080E95CC
+ .align 2, 0
+_080E95CC:
+ .4byte _080E95F2
+ .4byte _080E95F6
+ .4byte _080E9600
+ .4byte _080E960A
+ .4byte _080E95E4
+ .4byte _080E95EE
+_080E95E4:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E9620
+ b _080E9612
+_080E95EE:
+ movs r0, 0x2
+ b _080E9602
+_080E95F2:
+ movs r0, 0x3
+ b _080E95F8
+_080E95F6:
+ movs r0, 0
+_080E95F8:
+ movs r1, 0x5
+ bl sub_80E9620
+ b _080E9612
+_080E9600:
+ movs r0, 0x4
+_080E9602:
+ movs r1, 0x11
+ bl sub_80E9620
+ b _080E9612
+_080E960A:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E9620
+_080E9612:
+ ldr r0, _080E961C
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E961C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E95A4
+
+ thumb_func_start sub_80E9620
+sub_80E9620: @ 80E9620
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r1, 0
+ mov r10, r1
+ lsrs r7, r0, 16
+ mov r9, r1
+ ldr r0, _080E9644
+ ldr r0, [r0]
+ b _080E971A
+ .align 2, 0
+_080E9644: .4byte gUnknown_083DB694
+_080E9648:
+ ldr r6, [sp, 0x14]
+ movs r2, 0
+ mov r8, r2
+ adds r0, r7, 0x2
+ str r0, [sp, 0x1C]
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x18]
+ b _080E96E4
+_080E965A:
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _080E9690
+ cmp r0, r2
+ bne _080E969C
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, _080E9694
+ adds r1, r6, 0
+ adds r2, r7, 0
+ ldr r3, _080E9698
+ bl sub_8095C8C
+ adds r0, r6, 0
+ adds r0, 0xB
+ b _080E96CC
+ .align 2, 0
+_080E9690: .4byte 0x0000ffff
+_080E9694: .4byte 0x06007000
+_080E9698: .4byte gUnknown_083DBE1C
+_080E969C:
+ ldr r0, _080E9738
+ adds r4, r5, r0
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ movs r2, 0xB
+ bl sub_80EB218
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl MenuPrint
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r8
+ adds r1, r5, 0
+ adds r1, 0x8C
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xB
+ ldrb r1, [r1]
+ adds r0, r1
+_080E96CC:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080E96E4:
+ ldr r0, _080E973C
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080E970A
+ ldrb r2, [r5, 0xA]
+ cmp r10, r2
+ bcc _080E965A
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ ldr r0, _080E9740
+ bl MenuPrint
+_080E970A:
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r5, 0
+_080E971A:
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r9, r0
+ blt _080E9648
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9738: .4byte 0x00009e14
+_080E973C: .4byte gUnknown_083DB694
+_080E9740: .4byte gUnknown_083DBEA8
+ thumb_func_end sub_80E9620
+
+ thumb_func_start sub_80E9744
+sub_80E9744: @ 80E9744
+ push {lr}
+ ldr r0, _080E9760
+ bl BasicInitMenuWindow
+ ldr r0, _080E9764
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E97B2
+ lsls r0, 2
+ ldr r1, _080E9768
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9760: .4byte gWindowConfig_81E6D8C
+_080E9764: .4byte gUnknown_083DB694
+_080E9768: .4byte _080E976C
+ .align 2, 0
+_080E976C:
+ .4byte _080E9792
+ .4byte _080E9796
+ .4byte _080E97A0
+ .4byte _080E97AA
+ .4byte _080E9784
+ .4byte _080E978E
+_080E9784:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E97C0
+ b _080E97B2
+_080E978E:
+ movs r0, 0x2
+ b _080E97A2
+_080E9792:
+ movs r0, 0x3
+ b _080E9798
+_080E9796:
+ movs r0, 0
+_080E9798:
+ movs r1, 0x5
+ bl sub_80E97C0
+ b _080E97B2
+_080E97A0:
+ movs r0, 0x4
+_080E97A2:
+ movs r1, 0x11
+ bl sub_80E97C0
+ b _080E97B2
+_080E97AA:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E97C0
+_080E97B2:
+ ldr r0, _080E97BC
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E97BC: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9744
+
+ thumb_func_start sub_80E97C0
+sub_80E97C0: @ 80E97C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r7, 0
+ movs r3, 0
+ ldr r1, _080E98B8
+ ldr r0, [r1]
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080E98A6
+_080E97EA:
+ ldr r1, [r1]
+ ldr r0, _080E98BC
+ adds r2, r1, r0
+ movs r6, 0
+ adds r0, r1, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r4, [sp]
+ lsls r4, 24
+ mov r8, r4
+ lsls r4, r5, 24
+ mov r9, r4
+ adds r5, 0x2
+ mov r10, r5
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ cmp r6, r0
+ bge _080E985E
+ ldrb r1, [r1, 0xA]
+ cmp r7, r1
+ bcs _080E985E
+ ldr r0, _080E98B8
+ ldr r4, [r0]
+ ldr r5, _080E98C0
+_080E981E:
+ lsls r0, r7, 1
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _080E983E
+ adds r1, r0, 0
+ adds r0, r2, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+_080E983E:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E985E
+ ldrb r0, [r4, 0xA]
+ cmp r7, r0
+ bcc _080E981E
+_080E985E:
+ ldr r1, _080E98B8
+ ldr r4, [r1]
+ adds r0, r4, 0
+ adds r0, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xB
+ muls r1, r0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ lsls r1, 3
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _080E98BC
+ adds r0, r4, r2
+ mov r3, r8
+ lsrs r1, r3, 24
+ mov r3, r9
+ lsrs r2, r3, 24
+ bl MenuPrint
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ ldr r1, _080E98B8
+ adds r4, 0x84
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r3, r0
+ blt _080E97EA
+_080E98A6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E98B8: .4byte gUnknown_083DB694
+_080E98BC: .4byte 0x00009e6e
+_080E98C0: .4byte 0x0000ffff
+ thumb_func_end sub_80E97C0
+
+ thumb_func_start sub_80E98C4
+sub_80E98C4: @ 80E98C4
+ push {lr}
+ ldr r0, _080E98E0
+ bl BasicInitMenuWindow
+ ldr r0, _080E98E4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9936
+ lsls r0, 2
+ ldr r1, _080E98E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E98E0: .4byte gWindowConfig_81E6D8C
+_080E98E4: .4byte gUnknown_083DB694
+_080E98E8: .4byte _080E98EC
+ .align 2, 0
+_080E98EC:
+ .4byte _080E990A
+ .4byte _080E9910
+ .4byte _080E9916
+ .4byte _080E991A
+ .4byte _080E9904
+ .4byte _080E990A
+_080E9904:
+ movs r1, 0x4
+ movs r3, 0x2
+ b _080E991E
+_080E990A:
+ movs r1, 0x3
+ movs r3, 0x2
+ b _080E991E
+_080E9910:
+ movs r1, 0x1
+ movs r3, 0x3
+ b _080E991E
+_080E9916:
+ movs r1, 0x4
+ b _080E991C
+_080E991A:
+ movs r1, 0x3
+_080E991C:
+ movs r3, 0x1
+_080E991E:
+ lsls r3, 1
+ adds r3, r1, r3
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x2
+ movs r2, 0x1B
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080E993C
+ bl BasicInitMenuWindow
+_080E9936:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E993C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E98C4
+
+ thumb_func_start sub_80E9940
+sub_80E9940: @ 80E9940
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 24
+ lsrs r5, 24
+ movs r4, 0x7
+ ands r4, r5
+ lsls r3, r4, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0x2
+ movs r2, 0x1F
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80E9A7C
+ lsls r4, 1
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_80E9A60
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9940
+
+ thumb_func_start sub_80E9974
+sub_80E9974: @ 80E9974
+ push {r4-r6,lr}
+ ldr r0, _080E99C4
+ bl BasicInitMenuWindow
+ ldr r0, _080E99C8
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E99D4
+ ldr r1, _080E99CC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ adds r0, 0x4
+ cmp r4, r0
+ bge _080E9A08
+ adds r5, r2, 0
+ ldr r2, _080E99CC
+ adds r6, r5, r2
+_080E99A4:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E99D0
+ adds r0, r5, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, 0x4
+ cmp r4, r0
+ blt _080E99A4
+ b _080E9A08
+ .align 2, 0
+_080E99C4: .4byte gWindowConfig_81E6D54
+_080E99C8: .4byte gUnknown_083DB694
+_080E99CC: .4byte 0x000001b5
+_080E99D0: .4byte 0x00009dc9
+_080E99D4:
+ bl sub_80E9AD4
+ ldr r4, _080E9A10
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x20
+ movs r1, 0x2
+ movs r2, 0x2
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x2
+ movs r2, 0x4
+ bl sub_80E9A60
+ adds r4, 0x60
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ bl sub_80E9A60
+_080E9A08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A10: .4byte gUnknown_083DBEAC
+ thumb_func_end sub_80E9974
+
+ thumb_func_start sub_80E9A14
+sub_80E9A14: @ 80E9A14
+ push {lr}
+ bl sub_80E9A4C
+ ldr r0, _080E9A44
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E9A40
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r3, _080E9A48
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+_080E9A40:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A44: .4byte gUnknown_083DB694
+_080E9A48: .4byte 0x000001b5
+ thumb_func_end sub_80E9A14
+
+ thumb_func_start sub_80E9A4C
+sub_80E9A4C: @ 80E9A4C
+ ldr r0, _080E9A5C
+ ldr r0, [r0]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080E9A5C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A4C
+
+ thumb_func_start sub_80E9A60
+sub_80E9A60: @ 80E9A60
+ push {lr}
+ lsls r2, 16
+ movs r3, 0xF0
+ lsls r3, 12
+ ands r3, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r3, 16
+ adds r2, r3, 0
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9A60
+
+ thumb_func_start sub_80E9A7C
+sub_80E9A7C: @ 80E9A7C
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r0, r7, 17
+ lsrs r5, r0, 16
+ movs r4, 0
+ ldr r0, _080E9AD0
+ ldr r6, [r0]
+_080E9A8E:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ muls r0, r4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r7, 1
+ adds r1, r4, r1
+ adds r0, r6, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0xB
+ bl sub_80EAD64
+ adds r2, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r6, 0x28]
+ cmp r5, r0
+ bcs _080E9ACA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E9A8E
+_080E9ACA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AD0: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A7C
+
+ thumb_func_start sub_80E9AD4
+sub_80E9AD4: @ 80E9AD4
+ push {r4,lr}
+ ldr r0, _080E9AF4
+ bl BasicInitMenuWindow
+ movs r4, 0
+_080E9ADE:
+ adds r0, r4, 0
+ bl sub_80E9C74
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080E9ADE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AF4: .4byte gWindowConfig_81E6D54
+ thumb_func_end sub_80E9AD4
+
+ thumb_func_start sub_80E9AF8
+sub_80E9AF8: @ 80E9AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ bl sub_80E9C74
+ ldr r4, _080E9B7C
+ ldr r5, [r4]
+ ldr r0, _080E9B80
+ adds r0, r5
+ mov r8, r0
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ ldr r2, _080E9B84
+ adds r2, r5
+ mov r8, r2
+ adds r0, r5, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E9BF4
+ movs r6, 0
+ ldr r3, _080E9B88
+ adds r0, r5, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _080E9B4A
+ b _080E9C52
+_080E9B4A:
+ lsls r0, r7, 2
+ mov r9, r0
+ ldr r1, _080E9B8C
+ adds r1, r5, r1
+ str r1, [sp]
+ lsls r2, r7, 17
+ mov r10, r2
+_080E9B58:
+ lsls r4, r6, 1
+ mov r3, r9
+ adds r0, r4, r3
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r4, 0
+ cmp r0, 0x7
+ bne _080E9B94
+ ldr r0, _080E9B90
+ bl BasicInitMenuWindow
+ b _080E9B9A
+ .align 2, 0
+_080E9B7C: .4byte gUnknown_083DB694
+_080E9B80: .4byte 0x00009e14
+_080E9B84: .4byte 0x00009e17
+_080E9B88: .4byte 0x000099a6
+_080E9B8C: .4byte 0x00009a2a
+_080E9B90: .4byte gWindowConfig_81E6D70
+_080E9B94:
+ ldr r0, _080E9BE0
+ bl BasicInitMenuWindow
+_080E9B9A:
+ ldr r2, _080E9BE4
+ ldr r4, [r2]
+ mov r3, r9
+ adds r1, r5, r3
+ ldr r2, _080E9BE8
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ ldr r3, _080E9BEC
+ adds r0, r4, r3
+ movs r1, 0xB
+ muls r1, r6
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ mov r3, r10
+ lsrs r2, r3, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080E9BF0
+ adds r4, r0
+ adds r4, r7
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r6, r0
+ blt _080E9B58
+ b _080E9C52
+ .align 2, 0
+_080E9BE0: .4byte gWindowConfig_81E6D54
+_080E9BE4: .4byte gUnknown_083DB694
+_080E9BE8: .4byte 0x00009a2a
+_080E9BEC: .4byte 0x00009e14
+_080E9BF0: .4byte 0x000099a6
+_080E9BF4:
+ ldr r0, _080E9C64
+ bl BasicInitMenuWindow
+ movs r6, 0
+ ldr r1, _080E9C68
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E9C52
+ adds r4, r5, 0
+ adds r0, r4, r1
+ adds r0, r7
+ mov r9, r0
+ lsls r5, r7, 17
+_080E9C16:
+ lsls r1, r6, 1
+ lsls r0, r7, 2
+ adds r1, r0
+ ldr r2, _080E9C6C
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ movs r0, 0xB
+ adds r1, r6, 0
+ muls r1, r0
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _080E9C70
+ adds r0, r4, r3
+ lsrs r2, r5, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r9
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r6, r0
+ blt _080E9C16
+_080E9C52:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9C64: .4byte gWindowConfig_81E6D54
+_080E9C68: .4byte 0x000099a6
+_080E9C6C: .4byte 0x00009a2a
+_080E9C70: .4byte 0x00009e14
+ thumb_func_end sub_80E9AF8
+
+ thumb_func_start sub_80E9C74
+sub_80E9C74: @ 80E9C74
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ lsls r3, r1, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C74
+
+ thumb_func_start sub_80E9C94
+sub_80E9C94: @ 80E9C94
+ push {r4-r6,lr}
+ ldr r0, _080E9CAC
+ ldr r0, [r0]
+ ldr r2, _080E9CB0
+ adds r1, r0, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x3
+ bgt _080E9CB4
+ lsls r0, 16
+ lsrs r0, 16
+ b _080E9CB6
+ .align 2, 0
+_080E9CAC: .4byte gUnknown_083DB694
+_080E9CB0: .4byte 0x00009a28
+_080E9CB4:
+ movs r0, 0x4
+_080E9CB6:
+ adds r5, r0, 0
+ movs r4, 0
+ cmp r4, r5
+ bcs _080E9CF4
+ ldr r0, _080E9CE0
+ ldr r0, [r0]
+ ldr r1, _080E9CE4
+ adds r6, r0, r1
+_080E9CC6:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80E9AF8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080E9CC6
+ b _080E9CF4
+ .align 2, 0
+_080E9CE0: .4byte gUnknown_083DB694
+_080E9CE4: .4byte 0x00009a29
+_080E9CE8:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_80E9C74
+_080E9CF4:
+ cmp r4, 0x3
+ bls _080E9CE8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C94
+
+ thumb_func_start sub_80E9D00
+sub_80E9D00: @ 80E9D00
+ push {r4-r6,lr}
+ ldr r0, _080E9D28
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080E9D30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D2C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ b _080E9D46
+ .align 2, 0
+_080E9D28: .4byte gUnknown_083DB694
+_080E9D2C: .4byte 0x00009a29
+_080E9D30:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D74
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r4
+_080E9D46:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080E9D78
+ cmp r4, r0
+ beq _080E9D6E
+ adds r6, r0, 0
+_080E9D58:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_80E9AF8
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r6
+ bne _080E9D58
+_080E9D6E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9D74: .4byte 0x00009a29
+_080E9D78: .4byte 0x0000ffff
+ thumb_func_end sub_80E9D00
+
+ thumb_func_start sub_80E9D7C
+sub_80E9D7C: @ 80E9D7C
+ push {r4-r7,lr}
+ ldr r0, _080E9DAC
+ bl BasicInitMenuWindow
+ ldr r0, _080E9DB0
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E9DB8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DB4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r6
+ b _080E9DCC
+ .align 2, 0
+_080E9DAC: .4byte gWindowConfig_81E6D54
+_080E9DB0: .4byte gUnknown_083DB694
+_080E9DB4: .4byte 0x000001b5
+_080E9DB8:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DFC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+_080E9DCC:
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0
+ cmp r5, r6
+ bcs _080E9DF6
+ ldr r0, _080E9E00
+ ldr r7, [r0]
+_080E9DDA:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E9E04
+ adds r0, r7, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r6
+ bcc _080E9DDA
+_080E9DF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9DFC: .4byte 0x000001b5
+_080E9E00: .4byte gUnknown_083DB694
+_080E9E04: .4byte 0x00009dc9
+ thumb_func_end sub_80E9D7C
+
+ thumb_func_start sub_80E9E08
+sub_80E9E08: @ 80E9E08
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E9E4C
+ ldr r3, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r2, r3, r5
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7F
+ ands r0, r1
+ subs r5, 0x4
+ adds r1, r3, r5
+ strh r0, [r1]
+ adds r1, r4, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bge _080E9E3E
+ negs r1, r4
+_080E9E3E:
+ ldr r2, _080E9E50
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9E4C: .4byte gUnknown_083DB694
+_080E9E50: .4byte 0x000001bf
+ thumb_func_end sub_80E9E08
+
+ thumb_func_start sub_80E9E54
+sub_80E9E54: @ 80E9E54
+ push {r4,lr}
+ ldr r0, _080E9E8C
+ ldr r2, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r3, r2, r0
+ ldr r1, _080E9E90
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r4, [r3]
+ adds r0, r4
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r3]
+ movs r3, 0
+ movs r4, 0xDE
+ lsls r4, 1
+ adds r1, r2, r4
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080E9E84
+ movs r3, 0x1
+_080E9E84:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E9E8C: .4byte gUnknown_083DB694
+_080E9E90: .4byte 0x000001bf
+ thumb_func_end sub_80E9E54
+
+ thumb_func_start nullsub_23
+nullsub_23: @ 80E9E94
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start sub_80E9E98
+sub_80E9E98: @ 80E9E98
+ ldr r0, _080E9EA4
+ ldr r0, [r0]
+ adds r0, 0xBE
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080E9EA4: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9E98
+
+ thumb_func_start sub_80E9EA8
+sub_80E9EA8: @ 80E9EA8
+ push {lr}
+ ldr r1, _080E9EC4
+ ldr r0, [r1]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _080E9F48
+ lsls r0, 2
+ ldr r1, _080E9EC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9EC4: .4byte gUnknown_083DB694
+_080E9EC8: .4byte _080E9ECC
+ .align 2, 0
+_080E9ECC:
+ .4byte _080E9EE4
+ .4byte _080E9EF4
+ .4byte _080E9F0C
+ .4byte _080E9F24
+ .4byte _080E9F38
+ .4byte _080E9F44
+_080E9EE4:
+ bl sub_80EA24C
+ ldr r0, _080E9F08
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9EF4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA4A4
+ ldr r0, _080E9F08
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F08: .4byte gUnknown_083DB694
+_080E9F0C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA704
+ ldr r0, _080E9F20
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F20: .4byte gUnknown_083DB694
+_080E9F24:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ ldr r0, _080E9F34
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F34: .4byte gUnknown_083DB694
+_080E9F38:
+ ldr r1, [r2]
+_080E9F3A:
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9F48
+_080E9F44:
+ movs r0, 0x1
+ b _080E9F4A
+_080E9F48:
+ movs r0, 0
+_080E9F4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9EA8
+
+ thumb_func_start sub_80E9F50
+sub_80E9F50: @ 80E9F50
+ push {lr}
+ ldr r0, _080E9F68
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bhi _080E9FCC
+ lsls r0, 2
+ ldr r1, _080E9F6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9F68: .4byte gUnknown_083DB694
+_080E9F6C: .4byte _080E9F70
+ .align 2, 0
+_080E9F70:
+ .4byte _080E9F8C
+ .4byte _080E9FAC
+ .4byte _080E9F96
+ .4byte _080E9FAC
+ .4byte _080E9F9C
+ .4byte _080E9FAC
+ .4byte _080E9FC8
+_080E9F8C:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080E9FA0
+_080E9F96:
+ bl sub_80EA5A0
+ b _080E9FA0
+_080E9F9C:
+ bl sub_80EA348
+_080E9FA0:
+ ldr r0, _080E9FC4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9FAC:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9FCC
+ ldr r0, _080E9FC4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9FCC
+ .align 2, 0
+_080E9FC4: .4byte gUnknown_083DB694
+_080E9FC8:
+ movs r0, 0x1
+ b _080E9FCE
+_080E9FCC:
+ movs r0, 0
+_080E9FCE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9F50
+
+ thumb_func_start sub_80E9FD4
+sub_80E9FD4: @ 80E9FD4
+ push {r4,lr}
+ ldr r0, _080E9FEC
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080E9FF0
+ cmp r0, 0x1
+ beq _080E9FFE
+ b _080EA00C
+ .align 2, 0
+_080E9FEC: .4byte gUnknown_083DB694
+_080E9FF0:
+ bl nullsub_23
+ bl sub_80EA5A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080E9FFE:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA00C
+ movs r0, 0x1
+ b _080EA00E
+_080EA00C:
+ movs r0, 0
+_080EA00E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9FD4
+
+ thumb_func_start sub_80EA014
+sub_80EA014: @ 80EA014
+ push {r4,lr}
+ ldr r0, _080EA02C
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EA030
+ cmp r0, 0x1
+ beq _080EA03A
+ b _080EA048
+ .align 2, 0
+_080EA02C: .4byte gUnknown_083DB694
+_080EA030:
+ bl sub_80EA4A4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA03A:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA048
+ movs r0, 0x1
+ b _080EA04A
+_080EA048:
+ movs r0, 0
+_080EA04A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA014
+
+ thumb_func_start sub_80EA050
+sub_80EA050: @ 80EA050
+ push {lr}
+ ldr r0, _080EA068
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA0DC
+ lsls r0, 2
+ ldr r1, _080EA06C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA068: .4byte gUnknown_083DB694
+_080EA06C: .4byte _080EA070
+ .align 2, 0
+_080EA070:
+ .4byte _080EA084
+ .4byte _080EA08E
+ .4byte _080EA09E
+ .4byte _080EA0B4
+ .4byte _080EA0D8
+_080EA084:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080EA0C4
+_080EA08E:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA7F4
+ b _080EA0C4
+_080EA09E:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA8BC
+ b _080EA0C4
+_080EA0B4:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+_080EA0C4:
+ ldr r0, _080EA0D4
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA0DC
+ .align 2, 0
+_080EA0D4: .4byte gUnknown_083DB694
+_080EA0D8:
+ movs r0, 0x1
+ b _080EA0DE
+_080EA0DC:
+ movs r0, 0
+_080EA0DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA050
+
+ thumb_func_start sub_80EA0E4
+sub_80EA0E4: @ 80EA0E4
+ push {lr}
+ ldr r0, _080EA0FC
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA17C
+ lsls r0, 2
+ ldr r1, _080EA100
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA0FC: .4byte gUnknown_083DB694
+_080EA100: .4byte _080EA104
+ .align 2, 0
+_080EA104:
+ .4byte _080EA118
+ .4byte _080EA128
+ .4byte _080EA144
+ .4byte _080EA15C
+ .4byte _080EA178
+_080EA118:
+ bl sub_80EA948
+ ldr r0, _080EA140
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EA128:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EAA44
+ b _080EA166
+ .align 2, 0
+_080EA140: .4byte gUnknown_083DB694
+_080EA144:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EA704
+ b _080EA166
+_080EA15C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+_080EA166:
+ ldr r0, _080EA174
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA17C
+ .align 2, 0
+_080EA174: .4byte gUnknown_083DB694
+_080EA178:
+ movs r0, 0x1
+ b _080EA17E
+_080EA17C:
+ movs r0, 0
+_080EA17E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA0E4
+
+ thumb_func_start sub_80EA184
+sub_80EA184: @ 80EA184
+ push {r4,lr}
+ ldr r0, _080EA1A0
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EA1B4
+ cmp r0, 0x1
+ bgt _080EA1A4
+ cmp r0, 0
+ beq _080EA1AA
+ b _080EA1D8
+ .align 2, 0
+_080EA1A0: .4byte gUnknown_083DB694
+_080EA1A4:
+ cmp r0, 0x2
+ beq _080EA1D0
+ b _080EA1D8
+_080EA1AA:
+ bl sub_80EAAD4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA1B4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA1D8
+ ldr r0, _080EA1CC
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA1D8
+ .align 2, 0
+_080EA1CC: .4byte gUnknown_083DB694
+_080EA1D0:
+ bl sub_80E9178
+ movs r0, 0x1
+ b _080EA1DA
+_080EA1D8:
+ movs r0, 0
+_080EA1DA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA184
+
+ thumb_func_start sub_80EA1E0
+sub_80EA1E0: @ 80EA1E0
+ push {r4-r6,lr}
+ ldr r0, _080EA240
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EA244
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EA228
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EA200:
+ lsls r0, r4, 4
+ adds r0, 0xC8
+ adds r0, r5, r0
+ bl sub_80EAC0C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ bl sub_80EAC48
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EA200
+_080EA228:
+ ldr r0, _080EA240
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xBC
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080EA246
+ .align 2, 0
+_080EA240: .4byte gUnknown_083DB694
+_080EA244:
+ movs r0, 0x1
+_080EA246:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA1E0
+
+ thumb_func_start sub_80EA24C
+sub_80EA24C: @ 80EA24C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA340
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ ldr r1, _080EA344
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r6, 0x10
+ str r6, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0x9
+ mov r3, r8
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA340: .4byte gUnknown_083DB694
+_080EA344: .4byte 0x0000fffe
+ thumb_func_end sub_80EA24C
+
+ thumb_func_start sub_80EA348
+sub_80EA348: @ 80EA348
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA49C
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r5, 0xF
+ str r5, [sp]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EA4A0
+ mov r8, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r5, 0x10
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0x2
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xE
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA49C: .4byte gUnknown_083DB694
+_080EA4A0: .4byte 0x0000fffe
+ thumb_func_end sub_80EA348
+
+ thumb_func_start sub_80EA4A4
+sub_80EA4A4: @ 80EA4A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA598
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r1, _080EA59C
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x10
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r6, 0x1
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA598: .4byte gUnknown_083DB694
+_080EA59C: .4byte 0x0000ffff
+ thumb_func_end sub_80EA4A4
+
+ thumb_func_start sub_80EA5A0
+sub_80EA5A0: @ 80EA5A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA6FC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EA700
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r1, r8
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA6FC: .4byte gUnknown_083DB694
+_080EA700: .4byte 0x0000ffff
+ thumb_func_end sub_80EA5A0
+
+ thumb_func_start sub_80EA704
+sub_80EA704: @ 80EA704
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA75C
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r1, 0x14
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r3, _080EA760
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0xA
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xC2
+ strh r5, [r0]
+ adds r1, r6, 0
+ adds r1, 0xC4
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA75C: .4byte gUnknown_083DB694
+_080EA760: .4byte 0x0000ffff
+ thumb_func_end sub_80EA704
+
+ thumb_func_start sub_80EA764
+sub_80EA764: @ 80EA764
+ push {r4-r7,lr}
+ sub sp, 0x14
+ ldr r0, _080EA7EC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EA7F0
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1E
+ movs r2, 0xC
+ movs r3, 0x1F
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0xC
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA7EC: .4byte gUnknown_083DB694
+_080EA7F0: .4byte 0x0000ffff
+ thumb_func_end sub_80EA764
+
+ thumb_func_start sub_80EA7F4
+sub_80EA7F4: @ 80EA7F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r0, _080EA8B4
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x14
+ movs r2, 0xA
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ ldr r3, _080EA8B8
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r2, r7
+ mov r8, r2
+ str r2, [sp, 0x4]
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x3
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA8B4: .4byte gUnknown_083DB694
+_080EA8B8: .4byte 0x0000ffff
+ thumb_func_end sub_80EA7F4
+
+ thumb_func_start sub_80EA8BC
+sub_80EA8BC: @ 80EA8BC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA944
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA944: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EA8BC
+
+ thumb_func_start sub_80EA948
+sub_80EA948: @ 80EA948
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EAA3C
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EAA40
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x80
+ adds r1, r7
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x5
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1A
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ movs r2, 0xA
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x19
+ movs r2, 0xA
+ movs r3, 0x1A
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAA3C: .4byte gUnknown_083DB694
+_080EAA40: .4byte 0x0000ffff
+ thumb_func_end sub_80EA948
+
+ thumb_func_start sub_80EAA44
+sub_80EAA44: @ 80EAA44
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EAACC
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EAAD0
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x17
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAACC: .4byte gUnknown_083DB694
+_080EAAD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAA44
+
+ thumb_func_start sub_80EAAD4
+sub_80EAAD4: @ 80EAAD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EABCC
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r1, 0xF
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r5, 0x1
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EABD0
+ str r6, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xF
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x68
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EABCC: .4byte gUnknown_083DB694
+_080EABD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAAD4
+
+ thumb_func_start sub_80EABD4
+sub_80EABD4: @ 80EABD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r8, r7
+ strh r1, [r0]
+ strh r3, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r5, [r0, 0x6]
+ strh r6, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r4, r8
+ strh r4, [r0, 0xE]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EABD4
+
+ thumb_func_start sub_80EAC0C
+sub_80EAC0C: @ 80EAC0C
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0xA]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0xC]
+ ldrh r2, [r0, 0x4]
+ adds r1, r2
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0, 0xE]
+ ldrh r2, [r0, 0x6]
+ adds r1, r2
+ strh r1, [r0, 0x6]
+ bx lr
+ thumb_func_end sub_80EAC0C
+
+ thumb_func_start sub_80EAC30
+sub_80EAC30: @ 80EAC30
+ push {r4,r5,lr}
+ ldr r4, [sp, 0xC]
+ ldr r5, [sp, 0x10]
+ strh r1, [r0]
+ strh r2, [r0, 0x2]
+ strh r3, [r0, 0x4]
+ strh r4, [r0, 0x6]
+ str r5, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EAC30
+
+ thumb_func_start sub_80EAC48
+sub_80EAC48: @ 80EAC48
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0x6]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ bx lr
+ thumb_func_end sub_80EAC48
+
+ thumb_func_start sub_80EAC5C
+sub_80EAC5C: @ 80EAC5C
+ push {r4-r6,lr}
+ ldr r0, _080EACB4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EACAC
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EACA2
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EAC7C:
+ lsls r1, r4, 4
+ adds r1, 0xC8
+ adds r1, r5, r1
+ lsls r2, r4, 1
+ adds r2, r4
+ lsls r2, 2
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r2, r0
+ adds r2, r5, r2
+ ldr r0, _080EACB8
+ bl sub_80EACBC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EAC7C
+_080EACA2:
+ ldr r0, _080EACB4
+ ldr r0, [r0]
+ adds r0, 0xBC
+ movs r1, 0
+ strb r1, [r0]
+_080EACAC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EACB4: .4byte gUnknown_083DB694
+_080EACB8: .4byte 0x06006800
+ thumb_func_end sub_80EAC5C
+
+ thumb_func_start sub_80EACBC
+sub_80EACBC: @ 80EACBC
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r3]
+ subs r2, r0
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r3, 0x4]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, r2, 16
+ cmp r6, 0
+ ble _080EACFE
+ lsls r5, r0, 16
+ cmp r5, 0
+ ble _080EACFE
+ ldrh r1, [r3]
+ ldrh r2, [r3, 0x4]
+ ldr r3, [r4, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp]
+ ldrh r0, [r4, 0x2]
+ str r0, [sp, 0x4]
+ lsrs r0, r6, 16
+ str r0, [sp, 0x8]
+ lsrs r0, r5, 16
+ str r0, [sp, 0xC]
+ adds r0, r7, 0
+ bl sub_809D104
+_080EACFE:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EACBC
+
+ thumb_func_start sub_80EAD08
+sub_80EAD08: @ 80EAD08
+ push {r4,r5,lr}
+ ldr r0, _080EAD58
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080EAD5C
+ adds r4, r0, r1
+ adds r4, 0xB0
+ ldr r0, _080EAD60
+ ldr r1, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r2, r0, 0
+ subs r2, 0x58
+ movs r0, 0xFF
+ ands r2, r0
+ movs r3, 0
+ movs r5, 0xFF
+_080EAD32:
+ ldrh r0, [r1]
+ adds r0, r3
+ cmp r0, 0x80
+ bne _080EAD42
+ negs r0, r3
+ adds r2, r0, 0
+ subs r2, 0x58
+ ands r2, r5
+_080EAD42:
+ strh r2, [r4]
+ adds r4, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080EAD32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAD58: .4byte gUnknown_03004DC0
+_080EAD5C: .4byte gUnknown_03004DE0
+_080EAD60: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EAD08
+
+ thumb_func_start sub_80EAD64
+sub_80EAD64: @ 80EAD64
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080EAD78
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAD78: .4byte gEasyChatGroupNames
+ thumb_func_end sub_80EAD64
+
+ thumb_func_start sub_80EAD7C
+sub_80EAD7C: @ 80EAD7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x14
+ beq _080EADA2
+ cmp r0, 0x14
+ bgt _080EAD9C
+ cmp r0, 0x11
+ blt _080EADBA
+ ldr r0, _080EAD98
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EAD98: .4byte 0x00000804
+_080EAD9C:
+ cmp r1, 0x15
+ beq _080EADB0
+ b _080EADBA
+_080EADA2:
+ ldr r0, _080EADAC
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EADAC: .4byte 0x00000806
+_080EADB0:
+ bl sub_80EB9C8
+_080EADB4:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EADBC
+_080EADBA:
+ movs r0, 0x1
+_080EADBC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EAD7C
+
+ thumb_func_start sub_80EADC0
+sub_80EADC0: @ 80EADC0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r2, 0x15
+ bhi _080EAE82
+ lsls r0, r2, 2
+ ldr r1, _080EADD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EADD8: .4byte _080EADDC
+ .align 2, 0
+_080EADDC:
+ .4byte _080EAE50
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE34
+ .4byte _080EAE78
+_080EAE34:
+ ldr r0, _080EAE4C
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EAE70
+ lsls r0, r3, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ b _080EAE7C
+ .align 2, 0
+_080EAE4C: .4byte gUnknown_083DB694
+_080EAE50:
+ adds r0, r3, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ b _080EAE7C
+_080EAE62:
+ ldr r0, _080EAE74
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EAE82
+_080EAE70:
+ movs r0, 0
+ b _080EAE84
+ .align 2, 0
+_080EAE74: .4byte gUnknown_083DB694
+_080EAE78:
+ bl sub_80EB9C8
+_080EAE7C:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAE84
+_080EAE82:
+ movs r0, 0x1
+_080EAE84:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EADC0
+
+ thumb_func_start sub_80EAE88
+sub_80EAE88: @ 80EAE88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080EAEA6
+ cmp r4, 0x14
+ beq _080EAEB2
+ adds r0, r4, 0
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EAEBC
+ movs r0, 0
+ b _080EAEC2
+_080EAEA6:
+ movs r0, 0
+ bl sub_8090F68
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EAEC2
+_080EAEB2:
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAEC2
+_080EAEBC:
+ ldr r0, _080EAEC8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+_080EAEC2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAEC8: .4byte gEasyChatGroupSizes
+ thumb_func_end sub_80EAE88
+
+ thumb_func_start sub_80EAECC
+sub_80EAECC: @ 80EAECC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _080EAF10
+ ldr r0, [r1]
+ ldr r3, _080EAF14
+ adds r3, r0, r3
+ str r3, [sp, 0x4]
+_080EAEE6:
+ ldr r1, _080EAF18
+ mov r7, r8
+ lsls r2, r7, 1
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ mov r3, r8
+ adds r3, 0x1
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r0
+ adds r6, r4, 0
+ mov r10, r2
+ str r3, [sp, 0x8]
+ b _080EB00C
+ .align 2, 0
+_080EAF10: .4byte gUnknown_083DB694
+_080EAF14: .4byte 0x00004142
+_080EAF18: .4byte gEasyChatWordsByLetter
+_080EAF1C:
+ ldr r2, _080EAFB0
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r4, r1, 0
+ ldr r0, _080EAFB4
+ cmp r1, r0
+ bls _080EAFCC
+ movs r0, 0xFF
+ ands r1, r0
+ movs r7, 0
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r3, _080EAFB8
+ cmp r5, r3
+ beq _080EB00C
+ mov r1, r8
+ lsls r0, r1, 8
+ subs r0, r1
+ lsls r3, r0, 1
+_080EAF4E:
+ adds r1, r6, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 1
+ ldr r0, _080EAFB0
+ adds r1, r0
+ ldrh r4, [r1]
+ lsrs r0, r4, 9
+ ldr r1, _080EAFBC
+ adds r2, r1, 0
+ adds r1, r4, 0
+ ands r1, r2
+ str r3, [sp, 0xC]
+ bl sub_80EADC0
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _080EAFA2
+ cmp r7, 0
+ bne _080EAFA2
+ ldr r7, _080EAFC0
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 1
+ adds r1, r3
+ ldr r7, _080EAFC4
+ adds r0, r2, r7
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _080EAFC8
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ movs r7, 0x1
+_080EAFA2:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080EAFB8
+ cmp r5, r1
+ bne _080EAF4E
+ b _080EB00C
+ .align 2, 0
+_080EAFB0: .4byte gEasyChatWordsAlphabetized
+_080EAFB4: .4byte 0x0000feff
+_080EAFB8: .4byte 0x0000ffff
+_080EAFBC: .4byte 0x000001ff
+_080EAFC0: .4byte gUnknown_083DB694
+_080EAFC4: .4byte 0x00000b78
+_080EAFC8: .4byte 0x00004142
+_080EAFCC:
+ lsrs r0, r4, 9
+ ldr r3, _080EB030
+ adds r2, r3, 0
+ adds r1, r4, 0
+ ands r1, r2
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB00C
+ ldr r7, _080EB034
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r3, r8
+ lsls r0, r3, 8
+ subs r0, r3
+ adds r0, r1
+ lsls r0, 1
+ ldr r7, _080EB038
+ adds r1, r2, r7
+ adds r1, r0
+ strh r4, [r1]
+ ldr r0, _080EB03C
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EB00C:
+ ldr r1, [sp]
+ cmp r6, r1
+ bcc _080EAF1C
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1A
+ bhi _080EB020
+ b _080EAEE6
+_080EB020:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB030: .4byte 0x000001ff
+_080EB034: .4byte gUnknown_083DB694
+_080EB038: .4byte 0x00000b78
+_080EB03C: .4byte 0x00004142
+ thumb_func_end sub_80EAECC
+
+ thumb_func_start sub_80EB040
+sub_80EB040: @ 80EB040
+ push {r4-r6,lr}
+ movs r3, 0
+_080EB044:
+ adds r6, r3, 0x1
+ cmp r3, 0
+ beq _080EB094
+ cmp r3, 0x15
+ beq _080EB094
+ cmp r3, 0x12
+ beq _080EB094
+ cmp r3, 0x13
+ beq _080EB094
+ ldr r0, _080EB0A4
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r4, 0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _080EB094
+ ldr r0, _080EB0A8
+ ldr r0, [r0]
+ ldr r1, _080EB0AC
+ adds r5, r0, r1
+_080EB06E:
+ lsls r0, r4, 2
+ lsls r1, r3, 10
+ adds r0, r1
+ adds r0, r5, r0
+ str r2, [r0]
+ ldrb r0, [r2]
+ adds r1, r4, 0x1
+ cmp r0, 0xFF
+ beq _080EB088
+_080EB080:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB080
+_080EB088:
+ adds r2, 0x1
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB06E
+_080EB094:
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x15
+ bls _080EB044
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB0A4: .4byte gEasyChatGroupWords
+_080EB0A8: .4byte gUnknown_083DB694
+_080EB0AC: .4byte 0x000041a4
+ thumb_func_end sub_80EB040
+
+ thumb_func_start sub_80EB0B0
+sub_80EB0B0: @ 80EB0B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r3, _080EB184
+ ldr r4, [r3]
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080EB19C
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r2, r4, r0
+ ldrb r6, [r2]
+ lsls r1, r6, 1
+ ldr r7, _080EB188
+ adds r0, r4, r7
+ adds r0, r1
+ strh r5, [r0]
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080EB18C
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080EB190
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB0FE
+ b _080EB1FA
+_080EB0FE:
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r2, r4, r2
+ str r2, [sp, 0x4]
+ lsls r5, r6, 24
+ mov r10, r5
+_080EB10A:
+ mov r1, r8
+ lsls r0, r1, 1
+ ldr r2, [sp]
+ adds r5, r0, r2
+ ldrh r1, [r5]
+ mov r2, r10
+ lsrs r0, r2, 24
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB16A
+ ldr r0, _080EB184
+ ldr r3, [r0]
+ lsls r1, r7, 1
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r1, r0
+ ldr r0, _080EB194
+ adds r4, r3, r0
+ adds r4, r1
+ movs r0, 0x7F
+ ands r0, r6
+ lsls r0, 9
+ ldrh r1, [r5]
+ ldr r5, _080EB198
+ adds r2, r5, 0
+ ands r1, r2
+ orrs r0, r1
+ strh r0, [r4]
+ lsls r0, r6, 1
+ ldr r1, _080EB188
+ adds r3, r1
+ adds r3, r0
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _080EB16A
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+_080EB16A:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080EB190
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB10A
+ b _080EB1FA
+ .align 2, 0
+_080EB184: .4byte gUnknown_083DB694
+_080EB188: .4byte 0x00004178
+_080EB18C: .4byte gEasyChatGroupOrders
+_080EB190: .4byte gEasyChatGroupSizes
+_080EB194: .4byte 0x00009a2a
+_080EB198: .4byte 0x000001ff
+_080EB19C:
+ movs r5, 0xDC
+ lsls r5, 1
+ adds r0, r4, r5
+ ldrb r2, [r0]
+ movs r3, 0
+ movs r6, 0
+ movs r5, 0
+ lsls r1, r2, 1
+ ldr r7, _080EB20C
+ adds r0, r4, r7
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r5, r0
+ bcs _080EB1FA
+ ldr r7, _080EB210
+ adds r7, r4
+ mov r8, r7
+ lsls r0, r2, 8
+ subs r0, r2
+ lsls r7, r0, 1
+ ldr r0, _080EB214
+ adds r2, r4, r0
+ adds r4, r1, 0
+_080EB1CA:
+ lsls r1, r3, 1
+ lsls r0, r6, 2
+ adds r1, r0
+ add r1, r8
+ lsls r0, r5, 1
+ adds r0, r7
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _080EB1EE
+ movs r3, 0
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB1EE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r1, [r4]
+ cmp r5, r1
+ bcc _080EB1CA
+_080EB1FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB20C: .4byte 0x00004142
+_080EB210: .4byte 0x00009a2a
+_080EB214: .4byte 0x00000b78
+ thumb_func_end sub_80EB0B0
+
+ thumb_func_start sub_80EB218
+sub_80EB218: @ 80EB218
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB240
+ ldr r1, _080EB23C
+ b _080EB2A2
+ .align 2, 0
+_080EB23C: .4byte gOtherText_ThreeQuestions
+_080EB240:
+ ldr r0, _080EB250
+ cmp r4, r0
+ bne _080EB254
+ adds r1, r5, 0
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080EB2AA
+ .align 2, 0
+_080EB250: .4byte 0x0000ffff
+_080EB254:
+ lsrs r2, r6, 25
+ ldr r1, _080EB268
+ ands r1, r7
+ cmp r2, 0x13
+ bgt _080EB26C
+ cmp r2, 0x12
+ bge _080EB280
+ cmp r2, 0
+ beq _080EB270
+ b _080EB290
+ .align 2, 0
+_080EB268: .4byte 0x000001ff
+_080EB26C:
+ cmp r2, 0x15
+ bne _080EB290
+_080EB270:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB27C
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB27C: .4byte gSpeciesNames
+_080EB280:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB28C
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB28C: .4byte gMoveNames
+_080EB290:
+ ldr r0, _080EB2CC
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB2D0
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB2A2:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r1, r0, 0
+_080EB2AA:
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ mov r2, r8
+ lsls r0, r2, 3
+ strb r0, [r1, 0x2]
+ adds r1, 0x3
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB2CC: .4byte gUnknown_083DB694
+_080EB2D0: .4byte 0x000041a4
+ thumb_func_end sub_80EB218
+
+ thumb_func_start sub_80EB2D4
+sub_80EB2D4: @ 80EB2D4
+ push {r4-r6,lr}
+ lsls r5, r0, 16
+ lsrs r4, r5, 16
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB2F8
+ ldr r0, _080EB2F4
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EB374
+ .align 2, 0
+_080EB2F4: .4byte gOtherText_ThreeQuestions
+_080EB2F8:
+ ldr r0, _080EB304
+ cmp r4, r0
+ bne _080EB308
+ movs r0, 0
+ b _080EB374
+ .align 2, 0
+_080EB304: .4byte 0x0000ffff
+_080EB308:
+ lsrs r2, r5, 25
+ ldr r1, _080EB31C
+ ands r1, r6
+ cmp r2, 0x13
+ bgt _080EB320
+ cmp r2, 0x12
+ bge _080EB334
+ cmp r2, 0
+ beq _080EB324
+ b _080EB344
+ .align 2, 0
+_080EB31C: .4byte 0x000001ff
+_080EB320:
+ cmp r2, 0x15
+ bne _080EB344
+_080EB324:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB330
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB330: .4byte gSpeciesNames
+_080EB334:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB340
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB340: .4byte gMoveNames
+_080EB344:
+ ldr r0, _080EB35C
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB360
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB356:
+ movs r2, 0
+ b _080EB36C
+ .align 2, 0
+_080EB35C: .4byte gUnknown_083DB694
+_080EB360: .4byte 0x000041a4
+_080EB364:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB36C:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB364
+ adds r0, r2, 0
+_080EB374:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB2D4
+
+ thumb_func_start sub_80EB37C
+sub_80EB37C: @ 80EB37C
+ push {r4,r5,lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB3A0
+ cmp r3, r0
+ beq _080EB3EA
+ lsrs r2, r1, 25
+ ldr r5, _080EB3A4
+ ands r5, r3
+ cmp r2, 0x15
+ bhi _080EB3F4
+ cmp r2, 0x13
+ bgt _080EB3A8
+ cmp r2, 0x12
+ bge _080EB3AC
+ cmp r2, 0
+ beq _080EB3AC
+ b _080EB3E0
+ .align 2, 0
+_080EB3A0: .4byte 0x0000ffff
+_080EB3A4: .4byte 0x000001ff
+_080EB3A8:
+ cmp r2, 0x15
+ bne _080EB3E0
+_080EB3AC:
+ ldr r0, _080EB3D8
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r4, [r1]
+ movs r3, 0
+ ldr r0, _080EB3DC
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080EB3F4
+ adds r1, r0, 0
+_080EB3C2:
+ lsls r0, r3, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080EB3EA
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _080EB3C2
+ b _080EB3F4
+ .align 2, 0
+_080EB3D8: .4byte gEasyChatGroupWords
+_080EB3DC: .4byte gEasyChatGroupSizes
+_080EB3E0:
+ ldr r0, _080EB3F0
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080EB3F4
+_080EB3EA:
+ movs r0, 0
+ b _080EB3F6
+ .align 2, 0
+_080EB3F0: .4byte gEasyChatGroupSizes
+_080EB3F4:
+ movs r0, 0x1
+_080EB3F6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB37C
+
+ thumb_func_start sub_80EB3FC
+sub_80EB3FC: @ 80EB3FC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB420
+ ldr r1, _080EB41C
+ adds r0, r5, 0
+ bl StringCopy
+ b _080EB4A6
+ .align 2, 0
+_080EB41C: .4byte gOtherText_ThreeQuestions
+_080EB420:
+ ldr r0, _080EB43C
+ cmp r4, r0
+ beq _080EB4A0
+ lsrs r1, r6, 25
+ ldr r2, _080EB440
+ ands r2, r7
+ cmp r1, 0x13
+ bgt _080EB444
+ cmp r1, 0x12
+ bge _080EB458
+ cmp r1, 0
+ beq _080EB448
+ b _080EB468
+ .align 2, 0
+_080EB43C: .4byte 0x0000ffff
+_080EB440: .4byte 0x000001ff
+_080EB444:
+ cmp r1, 0x15
+ bne _080EB468
+_080EB448:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB454
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB454: .4byte gSpeciesNames
+_080EB458:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB464
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB464: .4byte gMoveNames
+_080EB468:
+ ldr r0, _080EB4AC
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB4B0
+ cmp r2, r0
+ beq _080EB498
+ adds r3, r0, 0
+_080EB47E:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB490
+_080EB488:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB488
+_080EB490:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB47E
+_080EB498:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+_080EB4A0:
+ movs r0, 0xFF
+ strb r0, [r5]
+ adds r0, r5, 0
+_080EB4A6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB4AC: .4byte gEasyChatGroupWords
+_080EB4B0: .4byte 0x0000ffff
+ thumb_func_end sub_80EB3FC
+
+ thumb_func_start ConvertEasyChatWordsToString
+ConvertEasyChatWordsToString: @ 80EB4B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ ldr r0, _080EB53C
+ adds r2, r0
+ lsrs r7, r2, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _080EB524
+_080EB4D6:
+ movs r6, 0
+ adds r0, 0x1
+ mov r8, r0
+ cmp r6, r7
+ bcs _080EB508
+ ldr r2, _080EB540
+_080EB4E2:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB4FC
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB4FC:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EB4E2
+_080EB508:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ movs r0, 0xFE
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcc _080EB4D6
+_080EB524:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB53C: .4byte 0xffff0000
+_080EB540: .4byte 0x0000ffff
+ thumb_func_end ConvertEasyChatWordsToString
+
+ thumb_func_start sub_80EB544
+sub_80EB544: @ 80EB544
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ ldr r0, _080EB5B0
+ adds r2, r0
+ lsrs r2, 16
+ mov r8, r2
+ movs r7, 0
+ cmp r7, r10
+ bcs _080EB5C8
+_080EB56A:
+ movs r6, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+ cmp r6, r8
+ bcs _080EB59C
+ ldr r2, _080EB5B4
+_080EB576:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB590
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB590:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r8
+ bcc _080EB576
+_080EB59C:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ cmp r7, 0
+ bne _080EB5B8
+ movs r0, 0xFE
+ b _080EB5BA
+ .align 2, 0
+_080EB5B0: .4byte 0xffff0000
+_080EB5B4: .4byte 0x0000ffff
+_080EB5B8:
+ movs r0, 0xFA
+_080EB5BA:
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, r10
+ bcc _080EB56A
+_080EB5C8:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB544
+
+ thumb_func_start unref_sub_80EB5E0
+unref_sub_80EB5E0: @ 80EB5E0
+ push {lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB5F0
+ cmp r3, r0
+ bne _080EB5F4
+ movs r0, 0
+ b _080EB67C
+ .align 2, 0
+_080EB5F0: .4byte 0x0000ffff
+_080EB5F4:
+ lsrs r1, 25
+ ldr r2, _080EB608
+ ands r2, r3
+ cmp r1, 0x13
+ bgt _080EB60C
+ cmp r1, 0x12
+ bge _080EB620
+ cmp r1, 0
+ beq _080EB610
+ b _080EB630
+ .align 2, 0
+_080EB608: .4byte 0x000001ff
+_080EB60C:
+ cmp r1, 0x15
+ bne _080EB630
+_080EB610:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB61C
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB61C: .4byte gSpeciesNames
+_080EB620:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB62C
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB62C: .4byte gMoveNames
+_080EB630:
+ ldr r0, _080EB664
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB668
+ cmp r2, r0
+ beq _080EB660
+ adds r3, r0, 0
+_080EB646:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB658
+_080EB650:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB650
+_080EB658:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB646
+_080EB660:
+ movs r2, 0
+ b _080EB674
+ .align 2, 0
+_080EB664: .4byte gEasyChatGroupWords
+_080EB668: .4byte 0x0000ffff
+_080EB66C:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB674:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB66C
+ adds r0, r2, 0
+_080EB67C:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80EB5E0
+
+ thumb_func_start sub_80EB680
+sub_80EB680: @ 80EB680
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80EB680
+
+ thumb_func_start unref_sub_80EB684
+unref_sub_80EB684: @ 80EB684
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, 0x7
+ beq _080EB6B4
+ cmp r0, 0x7
+ bgt _080EB69E
+ cmp r0, 0x5
+ beq _080EB6A4
+ b _080EB6EE
+_080EB69E:
+ cmp r2, 0x8
+ beq _080EB6C4
+ b _080EB6EE
+_080EB6A4:
+ movs r2, 0x6
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6B0
+ b _080EB6CE
+ .align 2, 0
+_080EB6B0: .4byte gSaveBlock1 + 0x273C
+_080EB6B4:
+ movs r2, 0x2
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6C0
+ b _080EB6CE
+ .align 2, 0
+_080EB6C0: .4byte gSaveBlock1 + 0x2754
+_080EB6C4:
+ movs r2, 0x1
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6F4
+_080EB6CE:
+ adds r1, r0, r1
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB6F8
+ cmp r2, r0
+ beq _080EB6EE
+ adds r4, r0, 0
+ adds r3, r0, 0
+_080EB6E0:
+ strh r4, [r1]
+ adds r1, 0x2
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB6E0
+_080EB6EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB6F4: .4byte gSaveBlock1 + 0x273A
+_080EB6F8: .4byte 0x0000ffff
+ thumb_func_end unref_sub_80EB684
+
+ thumb_func_start sub_80EB6FC
+sub_80EB6FC: @ 80EB6FC
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldr r0, _080EB724
+ adds r1, r0
+ lsrs r0, r1, 16
+ ldr r1, _080EB728
+ cmp r0, r1
+ beq _080EB71E
+ adds r3, r1, 0
+_080EB710:
+ strh r3, [r2]
+ adds r2, 0x2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bne _080EB710
+_080EB71E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB724: .4byte 0xffff0000
+_080EB728: .4byte 0x0000ffff
+ thumb_func_end sub_80EB6FC
+
+ thumb_func_start sub_80EB72C
+sub_80EB72C: @ 80EB72C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080EB778
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r4, 0
+ beq _080EB758
+ cmp r4, 0x15
+ beq _080EB758
+ cmp r4, 0x12
+ beq _080EB758
+ cmp r4, 0x13
+ bne _080EB766
+_080EB758:
+ ldr r1, _080EB77C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r2, [r0]
+_080EB766:
+ movs r0, 0x7F
+ ands r0, r4
+ lsls r0, 9
+ ldr r1, _080EB780
+ ands r2, r1
+ orrs r0, r2
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB778: .4byte gEasyChatGroupSizes
+_080EB77C: .4byte gEasyChatGroupWords
+_080EB780: .4byte 0x000001ff
+ thumb_func_end sub_80EB72C
+
+ thumb_func_start sub_80EB784
+sub_80EB784: @ 80EB784
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB7A0
+ ldr r0, _080EB79C
+ b _080EB7BE
+ .align 2, 0
+_080EB79C: .4byte 0x0000ffff
+_080EB7A0:
+ cmp r4, 0
+ beq _080EB7AE
+ cmp r4, 0x14
+ bne _080EB7B4
+ bl sub_80EB960
+ b _080EB7BA
+_080EB7AE:
+ bl sub_80EB9D8
+ b _080EB7BA
+_080EB7B4:
+ adds r0, r4, 0
+ bl sub_80EB72C
+_080EB7BA:
+ lsls r0, 16
+ lsrs r0, 16
+_080EB7BE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB784
+
+ thumb_func_start sub_80EB7C4
+sub_80EB7C4: @ 80EB7C4
+ push {r4,r5,lr}
+ ldr r0, _080EB7D8
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080EB7F0
+ cmp r0, 0x1
+ bgt _080EB7DC
+ cmp r0, 0
+ beq _080EB7E6
+ b _080EB82E
+ .align 2, 0
+_080EB7D8: .4byte gUnknown_0202E8CC
+_080EB7DC:
+ cmp r0, 0x2
+ beq _080EB810
+ cmp r0, 0x3
+ beq _080EB818
+ b _080EB82E
+_080EB7E6:
+ ldr r5, _080EB7EC
+ movs r2, 0x2
+ b _080EB81C
+ .align 2, 0
+_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
+_080EB7F0:
+ ldr r5, _080EB80C
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x14
+ bl sub_80EB680
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB81A
+ movs r2, 0x2
+ movs r3, 0x3
+ b _080EB81E
+ .align 2, 0
+_080EB80C: .4byte gSaveBlock1 + 0x2B28
+_080EB810:
+ ldr r5, _080EB814
+ b _080EB81A
+ .align 2, 0
+_080EB814: .4byte gSaveBlock1 + 0x2B34
+_080EB818:
+ ldr r5, _080EB834
+_080EB81A:
+ movs r2, 0x3
+_080EB81C:
+ movs r3, 0x2
+_080EB81E:
+ ldr r4, _080EB838
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldAutoScrollMessage
+_080EB82E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB834: .4byte gSaveBlock1 + 0x2B40
+_080EB838: .4byte gStringVar4
+ thumb_func_end sub_80EB7C4
+
+ thumb_func_start sub_80EB83C
+sub_80EB83C: @ 80EB83C
+ push {lr}
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0xC
+ cmp r1, 0
+ beq _080EB84E
+ movs r0, 0xD
+_080EB84E:
+ bl sub_80EB784
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _080EB864
+ bl sub_80EB3FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB864: .4byte gStringVar2
+ thumb_func_end sub_80EB83C
+
+ thumb_func_start sub_80EB868
+sub_80EB868: @ 80EB868
+ lsls r0, 24
+ lsrs r2, r0, 27
+ movs r1, 0xE0
+ lsls r1, 19
+ ands r1, r0
+ lsrs r1, 24
+ ldr r0, _080EB888
+ ldr r3, _080EB88C
+ adds r0, r3
+ adds r2, r0
+ ldrb r0, [r2]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_080EB888: .4byte gSaveBlock1
+_080EB88C: .4byte 0x00002d8c
+ thumb_func_end sub_80EB868
+
+ thumb_func_start sub_80EB890
+sub_80EB890: @ 80EB890
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x20
+ bhi _080EB8B2
+ lsrs r2, r0, 27
+ movs r1, 0x7
+ ands r1, r3
+ ldr r0, _080EB8B8
+ ldr r3, _080EB8BC
+ adds r0, r3
+ adds r2, r0
+ movs r0, 0x1
+ lsls r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_080EB8B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB8B8: .4byte gSaveBlock1
+_080EB8BC: .4byte 0x00002d8c
+ thumb_func_end sub_80EB890
+
+ thumb_func_start sub_80EB8C0
+sub_80EB8C0: @ 80EB8C0
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_080EB8C6:
+ adds r0, r4, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB8D8
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080EB8D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x20
+ bls _080EB8C6
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB8C0
+
+ thumb_func_start sub_80EB8EC
+sub_80EB8EC: @ 80EB8EC
+ push {r4-r6,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x21
+ bne _080EB918
+ b _080EB952
+_080EB8FC:
+ adds r0, r5, 0
+ bl sub_80EB890
+ ldr r0, _080EB914
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB954
+ .align 2, 0
+_080EB914: .4byte 0x000001ff
+_080EB918:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x21
+ subs r1, r4
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+_080EB92E:
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB948
+ cmp r6, 0
+ beq _080EB8FC
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB948:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB92E
+_080EB952:
+ ldr r0, _080EB95C
+_080EB954:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB95C: .4byte 0x0000ffff
+ thumb_func_end sub_80EB8EC
+
+ thumb_func_start sub_80EB960
+sub_80EB960: @ 80EB960
+ push {r4,r5,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080EB984
+ b _080EB9BA
+_080EB970:
+ ldr r0, _080EB980
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB9BC
+ .align 2, 0
+_080EB980: .4byte 0x000001ff
+_080EB984:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+_080EB998:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB9B0
+ cmp r5, 0
+ beq _080EB970
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EB9B0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB998
+_080EB9BA:
+ ldr r0, _080EB9C4
+_080EB9BC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB9C4: .4byte 0x0000ffff
+ thumb_func_end sub_80EB960
+
+ thumb_func_start sub_80EB9C8
+sub_80EB9C8: @ 80EB9C8
+ push {lr}
+ bl sub_806912C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB9C8
+
+ thumb_func_start sub_80EB9D8
+sub_80EB9D8: @ 80EB9D8
+ push {r4-r7,lr}
+ movs r0, 0
+ bl sub_80EAE88
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _080EB9F8
+ b _080EBA46
+_080EB9EA:
+ ldrh r1, [r5]
+ ldr r0, _080EB9F4
+ ands r0, r1
+ b _080EBA48
+ .align 2, 0
+_080EB9F4: .4byte 0x000001ff
+_080EB9F8:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080EBA50
+ ldr r5, [r0]
+ movs r6, 0
+ ldr r0, _080EBA54
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080EBA46
+ adds r7, r0, 0
+_080EBA1A:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBA3A
+ cmp r4, 0
+ beq _080EB9EA
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EBA3A:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EBA1A
+_080EBA46:
+ ldr r0, _080EBA58
+_080EBA48:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EBA50: .4byte gEasyChatGroupWords
+_080EBA54: .4byte gEasyChatGroupSizes
+_080EBA58: .4byte 0x0000ffff
+ thumb_func_end sub_80EB9D8
+
+ thumb_func_start sub_80EBA5C
+sub_80EBA5C: @ 80EBA5C
+ push {lr}
+ ldr r0, _080EBA74
+ ldr r2, _080EBA78
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bhi _080EBABC
+ lsls r0, 2
+ ldr r1, _080EBA7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBA74: .4byte gMain
+_080EBA78: .4byte 0x0000043c
+_080EBA7C: .4byte _080EBA80
+ .align 2, 0
+_080EBA80:
+ .4byte _080EBAC0
+ .4byte _080EBB08
+ .4byte _080EBB10
+ .4byte _080EBB16
+ .4byte _080EBB1C
+ .4byte _080EBB22
+ .4byte _080EBB28
+ .4byte _080EBB2E
+ .4byte _080EBB3E
+ .4byte _080EBB4C
+ .4byte _080EBB5C
+ .4byte _080EBB6C
+ .4byte _080EBB7C
+ .4byte _080EBB90
+ .4byte _080EBBA0
+_080EBABC:
+ movs r0, 0
+ strb r0, [r1]
+_080EBAC0:
+ bl is_c1_link_related_active
+ ldr r3, _080EBAF0
+ ldr r2, _080EBAF4
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080EBBC0
+ ldr r1, _080EBAF8
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r1, _080EBAFC
+ ldr r2, _080EBB00
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBB04
+ bl SetMainCallback2
+ b _080EBBC0
+ .align 2, 0
+_080EBAF0: .4byte 0x02000000
+_080EBAF4: .4byte 0x00006dac
+_080EBAF8: .4byte 0x00006dab
+_080EBAFC: .4byte gMain
+_080EBB00: .4byte 0x0000043c
+_080EBB04: .4byte sub_80EBBE8
+_080EBB08:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080EBBC0
+_080EBB10:
+ bl ResetPaletteFade
+ b _080EBBC0
+_080EBB16:
+ bl ResetSpriteData
+ b _080EBBC0
+_080EBB1C:
+ bl FreeAllSpritePalettes
+ b _080EBBC0
+_080EBB22:
+ bl ResetTasks
+ b _080EBBC0
+_080EBB28:
+ bl remove_some_task
+ b _080EBBC0
+_080EBB2E:
+ bl sub_80F1A90
+ ldr r1, _080EBB44
+ ldr r0, _080EBB48
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB3E:
+ bl sub_80F1AC4
+ b _080EBB80
+ .align 2, 0
+_080EBB44: .4byte gMain
+_080EBB48: .4byte 0x0000043c
+_080EBB4C:
+ bl sub_80F2688
+ ldr r1, _080EBB64
+ ldr r2, _080EBB68
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB5C:
+ bl sub_80F26BC
+ b _080EBB80
+ .align 2, 0
+_080EBB64: .4byte gMain
+_080EBB68: .4byte 0x0000043c
+_080EBB6C:
+ bl sub_80F36F0
+ ldr r1, _080EBB88
+ ldr r0, _080EBB8C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB7C:
+ bl sub_80F3724
+_080EBB80:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EBBCC
+ b _080EBBC0
+ .align 2, 0
+_080EBB88: .4byte gMain
+_080EBB8C: .4byte 0x0000043c
+_080EBB90:
+ bl sub_80EBC10
+ ldr r0, _080EBB9C
+ bl sub_80EBDBC
+ b _080EBBC0
+ .align 2, 0
+_080EBB9C: .4byte sub_80EBDD8
+_080EBBA0:
+ ldr r0, _080EBBD0
+ ldr r1, _080EBBD4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x6E
+ bl PlaySE
+ ldr r0, _080EBBD8
+ bl SetMainCallback2
+ ldr r0, _080EBBDC
+ bl SetVBlankCallback
+ bl sub_80F1A74
+_080EBBC0:
+ ldr r1, _080EBBE0
+ ldr r2, _080EBBE4
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBBCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBBD0: .4byte 0x02000000
+_080EBBD4: .4byte 0x00006dab
+_080EBBD8: .4byte sub_80EBD90
+_080EBBDC: .4byte sub_80EBD18
+_080EBBE0: .4byte gMain
+_080EBBE4: .4byte 0x0000043c
+ thumb_func_end sub_80EBA5C
+
+ thumb_func_start sub_80EBBE8
+sub_80EBBE8: @ 80EBBE8
+ push {r4,lr}
+ ldr r0, _080EBC08
+ ldr r2, _080EBC0C
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080EBC02
+ adds r4, r1, 0
+_080EBBF8:
+ bl sub_80EBA5C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080EBBF8
+_080EBC02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC08: .4byte 0x02000000
+_080EBC0C: .4byte 0x00006dab
+ thumb_func_end sub_80EBBE8
+
+ thumb_func_start sub_80EBC10
+sub_80EBC10: @ 80EBC10
+ push {r4-r7,lr}
+ ldr r1, _080EBC7C
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r2, _080EBC80
+ ldr r1, _080EBC84
+ adds r3, r2, r1
+ movs r1, 0
+ strb r0, [r3]
+ ldr r3, _080EBC88
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC8C
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC90
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080EBC94
+ adds r0, r2, r3
+ str r1, [r0]
+ movs r3, 0
+ ldr r0, _080EBC98
+ adds r7, r2, r0
+ mov r12, r2
+ movs r6, 0
+ ldr r5, _080EBC9C
+ movs r4, 0x9B
+_080EBC4C:
+ adds r0, r3, r7
+ strb r6, [r0]
+ lsls r1, r3, 2
+ adds r1, r2
+ adds r0, r1, r5
+ strh r4, [r0]
+ ldr r0, _080EBCA0
+ adds r1, r0
+ movs r0, 0x5B
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080EBC4C
+ ldr r1, _080EBCA4
+ add r1, r12
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80EBCA8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC7C: .4byte gKeyRepeatStartDelay
+_080EBC80: .4byte 0x02000000
+_080EBC84: .4byte 0x00008828
+_080EBC88: .4byte 0x00006ddc
+_080EBC8C: .4byte 0x00009344
+_080EBC90: .4byte 0x00008768
+_080EBC94: .4byte 0x0000ced0
+_080EBC98: .4byte 0x00008fff
+_080EBC9C: .4byte 0x00009040
+_080EBCA0: .4byte 0x00009042
+_080EBCA4: .4byte 0x00006e95
+ thumb_func_end sub_80EBC10
+
+ thumb_func_start sub_80EBCA8
+sub_80EBCA8: @ 80EBCA8
+ push {r4,lr}
+ ldr r4, _080EBCDC
+ ldr r0, _080EBCE0
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBCE4
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080EBCE8
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _080EBCEC
+ bl FlagGet
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EBCF4
+ ldr r0, _080EBCF0
+ adds r1, r4, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080EBCFA
+ .align 2, 0
+_080EBCDC: .4byte 0x02000000
+_080EBCE0: .4byte 0x00006db2
+_080EBCE4: .4byte 0x00006db3
+_080EBCE8: .4byte 0x00006db4
+_080EBCEC: .4byte 0x0000083b
+_080EBCF0: .4byte 0x00006db5
+_080EBCF4:
+ ldr r1, _080EBD0C
+ adds r0, r4, r1
+ strb r2, [r0]
+_080EBCFA:
+ ldr r0, _080EBD10
+ ldr r1, _080EBD14
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBD0C: .4byte 0x00006db5
+_080EBD10: .4byte 0x02000000
+_080EBD14: .4byte 0x00006db6
+ thumb_func_end sub_80EBCA8
+
+ thumb_func_start sub_80EBD18
+sub_80EBD18: @ 80EBD18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F1FF0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD18
+
+ thumb_func_start sub_80EBD30
+sub_80EBD30: @ 80EBD30
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80FB260
+ bl sub_80EFE7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD30
+
+ thumb_func_start sub_80EBD4C
+sub_80EBD4C: @ 80EBD4C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F5BF0
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD4C
+
+ thumb_func_start sub_80EBD68
+sub_80EBD68: @ 80EBD68
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F6F64
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD68
+
+ thumb_func_start sub_80EBD80
+sub_80EBD80: @ 80EBD80
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD80
+
+ thumb_func_start sub_80EBD90
+sub_80EBD90: @ 80EBD90
+ push {lr}
+ ldr r0, _080EBDB8
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ bl sub_80F19FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBDB8: .4byte 0x02000000
+ thumb_func_end sub_80EBD90
+
+ thumb_func_start sub_80EBDBC
+sub_80EBDBC: @ 80EBDBC
+ ldr r2, _080EBDD4
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r1, r2, r3
+ str r0, [r1]
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080EBDD4: .4byte 0x02000000
+ thumb_func_end sub_80EBDBC
+
+ thumb_func_start sub_80EBDD8
+sub_80EBDD8: @ 80EBDD8
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080EBDF8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x11
+ bls _080EBDEE
+ b _080EC000
+_080EBDEE:
+ lsls r0, 2
+ ldr r1, _080EBDFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBDF8: .4byte 0x02000000
+_080EBDFC: .4byte _080EBE00
+ .align 2, 0
+_080EBE00:
+ .4byte _080EBE48
+ .4byte _080EBE80
+ .4byte _080EBE92
+ .4byte _080EBEAC
+ .4byte _080EBEC0
+ .4byte _080EBED2
+ .4byte _080EBEF0
+ .4byte _080EBF04
+ .4byte _080EBF18
+ .4byte _080EBF2C
+ .4byte _080EBF48
+ .4byte _080EBF54
+ .4byte _080EBF74
+ .4byte _080EBF88
+ .4byte _080EBFA0
+ .4byte _080EBFB4
+ .4byte _080EBFD0
+ .4byte _080EBFE8
+_080EBE48:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080EBE74
+ ldr r3, _080EBE78
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ subs r3, 0x2F
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EBE7C
+ adds r2, r1, r0
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBE74: .4byte 0x02000000
+_080EBE78: .4byte 0x00006ddc
+_080EBE7C: .4byte 0x00006dae
+_080EBE80:
+ bl sub_80F3FF0
+ ldr r1, _080EBEA8
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBE92:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBE9E
+ b _080EC000
+_080EBE9E:
+ ldr r1, _080EBEA8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEA8: .4byte 0x02000000
+_080EBEAC:
+ bl sub_80F2598
+ ldr r1, _080EBEBC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBEBC: .4byte 0x02000000
+_080EBEC0:
+ bl sub_80EEE20
+ ldr r1, _080EBEEC
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBED2:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBEDE
+ b _080EC000
+_080EBEDE:
+ bl sub_80EEE08
+ ldr r1, _080EBEEC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEEC: .4byte 0x02000000
+_080EBEF0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EBF14
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF04:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBF12
+ b _080EC000
+_080EBF12:
+ b _080EBFD4
+ .align 2, 0
+_080EBF14: .4byte 0x02000000
+_080EBF18:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EBF44
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF2C:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBF44
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF44: .4byte 0x02000000
+_080EBF48:
+ ldr r0, _080EBF50
+ bl SetVBlankCallback
+ b _080EBFD4
+ .align 2, 0
+_080EBF50: .4byte sub_80EBD18
+_080EBF54:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080EBF70
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBF70: .4byte 0x02000000
+_080EBF74:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EBF84
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF84: .4byte 0x02000000
+_080EBF88:
+ ldr r0, _080EBF9C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r2, r3
+ b _080EBFDC
+ .align 2, 0
+_080EBF9C: .4byte gPaletteFade
+_080EBFA0:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EBFCC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBFB4:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBFCC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBFCC: .4byte 0x02000000
+_080EBFD0:
+ bl sub_80F1DF0
+_080EBFD4:
+ ldr r1, _080EBFE4
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080EBFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC000
+ .align 2, 0
+_080EBFE4: .4byte 0x02000000
+_080EBFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ movs r0, 0
+ movs r1, 0
+ bl sub_80EF428
+ ldr r0, _080EC008
+ bl sub_80EBDBC
+_080EC000:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC008: .4byte sub_80EC268
+ thumb_func_end sub_80EBDD8
+
+ thumb_func_start sub_80EC00C
+sub_80EC00C: @ 80EC00C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC02C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080EC022
+ b _080EC1FA
+_080EC022:
+ lsls r0, 2
+ ldr r1, _080EC030
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC02C: .4byte 0x02000000
+_080EC030: .4byte _080EC034
+ .align 2, 0
+_080EC034:
+ .4byte _080EC06C
+ .4byte _080EC0C0
+ .4byte _080EC0D4
+ .4byte _080EC0F0
+ .4byte _080EC104
+ .4byte _080EC120
+ .4byte _080EC12A
+ .4byte _080EC154
+ .4byte _080EC168
+ .4byte _080EC180
+ .4byte _080EC194
+ .4byte _080EC1A8
+ .4byte _080EC1C4
+ .4byte _080EC1DC
+_080EC06C:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC078
+ b _080EC1FA
+_080EC078:
+ ldr r0, _080EC0AC
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080EC0B0
+ ldr r1, _080EC0B4
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080EC0B8
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080EC0BC
+ adds r1, r4, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC1FA
+ .align 2, 0
+_080EC0AC: .4byte sub_80EBD80
+_080EC0B0: .4byte 0x02000000
+_080EC0B4: .4byte 0x00006ddc
+_080EC0B8: .4byte 0x00006dad
+_080EC0BC: .4byte 0x00006dae
+_080EC0C0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EC0EC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC0D4:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC0E2
+ b _080EC1FA
+_080EC0E2:
+ ldr r1, _080EC0EC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC0EC: .4byte 0x02000000
+_080EC0F0:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EC11C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC104:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC112
+ b _080EC1FA
+_080EC112:
+ ldr r1, _080EC11C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC11C: .4byte 0x02000000
+_080EC120:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC1FA
+ b _080EC1C8
+_080EC12A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EC150
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC150: .4byte sub_80EBD18
+_080EC154:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EC164
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC164: .4byte 0x02000000
+_080EC168:
+ ldr r0, _080EC17C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC1FA
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC17C: .4byte gPaletteFade
+_080EC180:
+ bl sub_80F2598
+ ldr r1, _080EC190
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC190: .4byte 0x02000000
+_080EC194:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EC1C0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC1A8:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r1, _080EC1C0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC1C0: .4byte 0x02000000
+_080EC1C4:
+ bl sub_80F1DF0
+_080EC1C8:
+ ldr r1, _080EC1D8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080EC1D0:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC1FA
+ .align 2, 0
+_080EC1D8: .4byte 0x02000000
+_080EC1DC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r0, _080EC204
+ ldr r1, _080EC208
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ ldr r0, _080EC20C
+ bl sub_80EBDBC
+_080EC1FA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC204: .4byte 0x02000000
+_080EC208: .4byte 0x00006dad
+_080EC20C: .4byte sub_80EC268
+ thumb_func_end sub_80EC00C
+
+ thumb_func_start sub_80EC210
+sub_80EC210: @ 80EC210
+ push {r4,r5,lr}
+ ldr r5, _080EC228
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC22C
+ cmp r0, 0x1
+ beq _080EC24C
+ b _080EC25C
+ .align 2, 0
+_080EC228: .4byte 0x02000000
+_080EC22C:
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080EC248
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC25C
+ .align 2, 0
+_080EC248: .4byte 0x00006ddc
+_080EC24C:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC25C
+ ldr r0, _080EC264
+ bl sub_80EBDBC
+_080EC25C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC264: .4byte sub_80EC268
+ thumb_func_end sub_80EC210
+
+ thumb_func_start sub_80EC268
+sub_80EC268: @ 80EC268
+ push {r4-r6,lr}
+ ldr r4, _080EC290
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0x3
+ bne _080EC27A
+ b _080EC3BE
+_080EC27A:
+ cmp r0, 0x3
+ bgt _080EC294
+ cmp r0, 0x1
+ bne _080EC284
+ b _080EC3A2
+_080EC284:
+ cmp r0, 0x1
+ ble _080EC28A
+ b _080EC3B4
+_080EC28A:
+ cmp r0, 0
+ beq _080EC2AE
+ b _080EC492
+ .align 2, 0
+_080EC290: .4byte 0x02000000
+_080EC294:
+ cmp r0, 0x6
+ bne _080EC29A
+ b _080EC414
+_080EC29A:
+ cmp r0, 0x6
+ bgt _080EC2A6
+ cmp r0, 0x4
+ bne _080EC2A4
+ b _080EC3DC
+_080EC2A4:
+ b _080EC492
+_080EC2A6:
+ cmp r0, 0xFF
+ bne _080EC2AC
+ b _080EC44C
+_080EC2AC:
+ b _080EC492
+_080EC2AE:
+ bl sub_80EEC10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC2D4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC2D0
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC2D0: .4byte 0x00006dad
+_080EC2D4:
+ ldr r0, _080EC310
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC394
+ ldr r2, _080EC314
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x2F
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r2, 0x2A
+ adds r1, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x4
+ bls _080EC304
+ b _080EC492
+_080EC304:
+ lsls r0, 2
+ ldr r1, _080EC318
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC310: .4byte gMain
+_080EC314: .4byte 0x00006dad
+_080EC318: .4byte _080EC31C
+ .align 2, 0
+_080EC31C:
+ .4byte _080EC330
+ .4byte _080EC344
+ .4byte _080EC380
+ .4byte _080EC36C
+ .4byte _080EC358
+_080EC330:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC340
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC340: .4byte sub_80EC4A0
+_080EC344:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC354
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC354: .4byte sub_80EC81C
+_080EC358:
+ ldr r0, _080EC368
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC368: .4byte 0x02000000
+_080EC36C:
+ ldr r0, _080EC37C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC37C: .4byte 0x02000000
+_080EC380:
+ ldr r0, _080EC390
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC390: .4byte 0x02000000
+_080EC394:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC39E
+ b _080EC492
+_080EC39E:
+ strh r2, [r6]
+ b _080EC492
+_080EC3A2:
+ bl sub_80F208C
+ ldr r0, _080EC3B0
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC3B0: .4byte sub_80EE96C
+_080EC3B4:
+ bl sub_80F6208
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_080EC3BE:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC3D8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC492
+ .align 2, 0
+_080EC3D8: .4byte 0x02000000
+_080EC3DC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC400
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080EC408
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC404
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC400: .4byte 0x00008fe8
+_080EC404: .4byte sub_80EDB88
+_080EC408:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x5
+ b _080EC442
+_080EC414:
+ bl sub_80F6C20
+ ldr r2, _080EC430
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EC438
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC434
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC430: .4byte 0x0000d158
+_080EC434: .4byte sub_80EE3D8
+_080EC438:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x6
+_080EC442:
+ bl sub_80EF428
+ movs r0, 0xFF
+ strh r0, [r6]
+ b _080EC492
+_080EC44C:
+ bl sub_80EEC10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080EC478
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC474
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ movs r0, 0
+ strh r0, [r6]
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC474: .4byte 0x00006dad
+_080EC478:
+ ldr r0, _080EC498
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC492
+ ldr r2, _080EC49C
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ strh r5, [r6]
+_080EC492:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC498: .4byte gMain
+_080EC49C: .4byte 0x00006dad
+ thumb_func_end sub_80EC268
+
+ thumb_func_start sub_80EC4A0
+sub_80EC4A0: @ 80EC4A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC4C0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xE
+ bls _080EC4B6
+ b _080EC66A
+_080EC4B6:
+ lsls r0, 2
+ ldr r1, _080EC4C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC4C0: .4byte 0x02000000
+_080EC4C4: .4byte _080EC4C8
+ .align 2, 0
+_080EC4C8:
+ .4byte _080EC504
+ .4byte _080EC510
+ .4byte _080EC544
+ .4byte _080EC578
+ .4byte _080EC594
+ .4byte _080EC5A8
+ .4byte _080EC5AE
+ .4byte _080EC5C0
+ .4byte _080EC5D0
+ .4byte _080EC5E4
+ .4byte _080EC5F8
+ .4byte _080EC614
+ .4byte _080EC61E
+ .4byte _080EC63E
+ .4byte _080EC658
+_080EC504:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EC644
+_080EC510:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC51C
+ b _080EC66A
+_080EC51C:
+ ldr r0, _080EC53C
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x8
+ ands r0, r1
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080EC52C
+ movs r1, 0x7
+_080EC52C:
+ adds r0, r1, 0
+ bl sub_80EEFBC
+ ldr r1, _080EC540
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC53C: .4byte gSaveBlock2
+_080EC540: .4byte 0x02000000
+_080EC544:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EC552
+ b _080EC66A
+_080EC552:
+ ldr r4, _080EC574
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+ .align 2, 0
+_080EC574: .4byte 0x02000000
+_080EC578:
+ ldr r0, _080EC590
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ b _080EC644
+ .align 2, 0
+_080EC590: .4byte gPaletteFade
+_080EC594:
+ bl sub_80F2620
+ ldr r1, _080EC5A4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC5A4: .4byte 0x02000000
+_080EC5A8:
+ bl sub_80EF814
+ b _080EC644
+_080EC5AE:
+ bl sub_80EF840
+ ldr r1, _080EC5CC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5C0:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5CC: .4byte 0x02000000
+_080EC5D0:
+ movs r0, 0x4
+ bl sub_80F2C80
+ ldr r1, _080EC5F4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5E4:
+ movs r0, 0x4
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5F4: .4byte 0x02000000
+_080EC5F8:
+ bl sub_80F2DD8
+ ldr r0, _080EC60C
+ bl SetVBlankCallback
+ ldr r1, _080EC610
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC60C: .4byte sub_80EBD30
+_080EC610: .4byte 0x02000000
+_080EC614:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+_080EC61E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+_080EC63E:
+ movs r0, 0x1
+ bl sub_80EED2C
+_080EC644:
+ ldr r1, _080EC654
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EC64C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC66A
+ .align 2, 0
+_080EC654: .4byte 0x02000000
+_080EC658:
+ ldr r0, _080EC674
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ ldr r0, _080EC678
+ bl sub_80EBDBC
+_080EC66A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC674: .4byte gPaletteFade
+_080EC678: .4byte sub_80EC67C
+ thumb_func_end sub_80EC4A0
+
+ thumb_func_start sub_80EC67C
+sub_80EC67C: @ 80EC67C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080EC69C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080EC692
+ b _080EC800
+_080EC692:
+ lsls r0, 2
+ ldr r1, _080EC6A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC69C: .4byte 0x02000000
+_080EC6A0: .4byte _080EC6A4
+ .align 2, 0
+_080EC6A4:
+ .4byte _080EC6BC
+ .4byte _080EC718
+ .4byte _080EC746
+ .4byte _080EC77C
+ .4byte _080EC7A0
+ .4byte _080EC7C4
+_080EC6BC:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080EC6E2
+ cmp r0, 0x3
+ bgt _080EC6D2
+ cmp r0, 0x1
+ beq _080EC6DC
+ b _080EC800
+_080EC6D2:
+ cmp r0, 0x4
+ beq _080EC6E8
+ cmp r0, 0x5
+ beq _080EC700
+ b _080EC800
+_080EC6DC:
+ bl sub_80EED9C
+ b _080EC800
+_080EC6E2:
+ bl sub_80EF9F8
+ b _080EC800
+_080EC6E8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC6FC
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC6FC: .4byte 0x02000000
+_080EC700:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC714
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC714: .4byte 0x02000000
+_080EC718:
+ ldr r1, _080EC730
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EC734
+ bl sub_80FAEC4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC7BC
+ .align 2, 0
+_080EC730: .4byte 0x00006e90
+_080EC734:
+ movs r0, 0x1
+ bl sub_80EFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80FAEC4
+ b _080EC7B6
+_080EC746:
+ bl sub_80FAFC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ ldr r5, _080EC76C
+ ldr r1, _080EC770
+ adds r0, r5, r1
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080EC774
+ bl sub_80EFBB0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r5, r2
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC76C: .4byte 0x02000000
+_080EC770: .4byte 0x00006e90
+_080EC774:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+ b _080EC7BC
+_080EC77C:
+ movs r0, 0
+ bl sub_80EFBDC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EC800
+ bl sub_80EFBB0
+ ldr r0, _080EC79C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC79C: .4byte 0x02000000
+_080EC7A0:
+ movs r2, 0xC2
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080EC7B6:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EC7BC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC800
+_080EC7C4:
+ ldr r0, _080EC808
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80F2DF4
+ movs r0, 0x4
+ bl sub_80F2D04
+ ldr r3, _080EC80C
+ movs r2, 0
+ ldr r0, _080EC810
+ ldr r1, _080EC814
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EC7EC
+ movs r2, 0x1
+_080EC7EC:
+ lsls r2, 3
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x15]
+ ldr r0, _080EC818
+ bl sub_80EBDBC
+_080EC800:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC808: .4byte gPaletteFade
+_080EC80C: .4byte gSaveBlock2
+_080EC810: .4byte 0x02000000
+_080EC814: .4byte 0x00006e90
+_080EC818: .4byte sub_80EC00C
+ thumb_func_end sub_80EC67C
+
+ thumb_func_start sub_80EC81C
+sub_80EC81C: @ 80EC81C
+ push {r4,lr}
+ ldr r0, _080EC834
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC838
+ cmp r0, 0x1
+ beq _080EC850
+ b _080EC860
+ .align 2, 0
+_080EC834: .4byte 0x02000000
+_080EC838:
+ movs r0, 0
+ bl sub_80F2D04
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC860
+_080EC850:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC860
+ ldr r0, _080EC868
+ bl sub_80EBDBC
+_080EC860:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC868: .4byte sub_80EC86C
+ thumb_func_end sub_80EC81C
+
+ thumb_func_start sub_80EC86C
+sub_80EC86C: @ 80EC86C
+ push {r4-r6,lr}
+ ldr r4, _080EC884
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080EC888
+ cmp r0, 0x1
+ beq _080EC944
+ b _080EC954
+ .align 2, 0
+_080EC884: .4byte 0x02000000
+_080EC888:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC8B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC8AC
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC954
+ .align 2, 0
+_080EC8AC: .4byte 0x00006dad
+_080EC8B0:
+ ldr r0, _080EC8E4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC918
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080EC8E8
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x43
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080EC900
+ cmp r0, 0x1
+ bgt _080EC8EC
+ cmp r0, 0
+ beq _080EC8F2
+ b _080EC954
+ .align 2, 0
+_080EC8E4: .4byte gMain
+_080EC8E8: .4byte 0x00006dad
+_080EC8EC:
+ cmp r0, 0x2
+ beq _080EC90C
+ b _080EC954
+_080EC8F2:
+ ldr r0, _080EC8FC
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC8FC: .4byte sub_80ED620
+_080EC900:
+ ldr r0, _080EC908
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC908: .4byte sub_80EC960
+_080EC90C:
+ ldr r0, _080EC914
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC914: .4byte sub_80EC210
+_080EC918:
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC954
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC93C
+ adds r0, r4, r1
+ strb r6, [r0]
+ ldr r2, _080EC940
+ adds r0, r4, r2
+ strb r6, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EC954
+ .align 2, 0
+_080EC93C: .4byte 0x00006df0
+_080EC940: .4byte 0x00006dad
+_080EC944:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC954
+ ldr r0, _080EC95C
+ bl sub_80EBDBC
+_080EC954:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC95C: .4byte sub_80EC210
+ thumb_func_end sub_80EC86C
+
+ thumb_func_start sub_80EC960
+sub_80EC960: @ 80EC960
+ push {r4,lr}
+ ldr r0, _080EC978
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC97C
+ cmp r0, 0x1
+ beq _080EC98E
+ b _080EC99E
+ .align 2, 0
+_080EC978: .4byte 0x02000000
+_080EC97C:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC99E
+_080EC98E:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC99E
+ ldr r0, _080EC9A4
+ bl sub_80EBDBC
+_080EC99E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC9A4: .4byte sub_80ECC08
+ thumb_func_end sub_80EC960
+
+ thumb_func_start sub_80EC9A8
+sub_80EC9A8: @ 80EC9A8
+ push {r4,r5,lr}
+ ldr r5, _080EC9C0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC9C4
+ cmp r0, 0x1
+ beq _080EC9E4
+ b _080ECA00
+ .align 2, 0
+_080EC9C0: .4byte 0x02000000
+_080EC9C4:
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080EC9E0
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xC
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECA00
+ .align 2, 0
+_080EC9E0: .4byte 0x00006df0
+_080EC9E4:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECA00
+ ldr r0, _080ECA08
+ bl sub_80EBDBC
+ ldr r1, _080ECA0C
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+_080ECA00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECA08: .4byte sub_80EC86C
+_080ECA0C: .4byte 0x00006dad
+ thumb_func_end sub_80EC9A8
+
+ thumb_func_start sub_80ECA10
+sub_80ECA10: @ 80ECA10
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECA30
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080ECA26
+ b _080ECBF2
+_080ECA26:
+ lsls r0, 2
+ ldr r1, _080ECA34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECA30: .4byte 0x02000000
+_080ECA34: .4byte _080ECA38
+ .align 2, 0
+_080ECA38:
+ .4byte _080ECA70
+ .4byte _080ECAC4
+ .4byte _080ECAD8
+ .4byte _080ECAF4
+ .4byte _080ECB08
+ .4byte _080ECB24
+ .4byte _080ECB2E
+ .4byte _080ECB58
+ .4byte _080ECB6C
+ .4byte _080ECB72
+ .4byte _080ECB8C
+ .4byte _080ECBA0
+ .4byte _080ECBBC
+ .4byte _080ECBD4
+_080ECA70:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECA7C
+ b _080ECBF2
+_080ECA7C:
+ ldr r0, _080ECAB0
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080ECAB4
+ ldr r1, _080ECAB8
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECABC
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080ECAC0
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECBF2
+ .align 2, 0
+_080ECAB0: .4byte sub_80EBD80
+_080ECAB4: .4byte 0x02000000
+_080ECAB8: .4byte 0x00006df0
+_080ECABC: .4byte 0x00006dad
+_080ECAC0: .4byte 0x00006dae
+_080ECAC4:
+ movs r0, 0x1
+ bl sub_80EF248
+ ldr r1, _080ECAF0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECAD8:
+ movs r0, 0x1
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECAE6
+ b _080ECBF2
+_080ECAE6:
+ ldr r1, _080ECAF0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECAF0: .4byte 0x02000000
+_080ECAF4:
+ movs r0, 0x1
+ bl sub_80F1B8C
+ ldr r1, _080ECB20
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECB08:
+ movs r0, 0x1
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECB20
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB20: .4byte 0x02000000
+_080ECB24:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ECBF2
+ b _080ECBC0
+_080ECB2E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECB54
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECBC8
+ .align 2, 0
+_080ECB54: .4byte sub_80EBD18
+_080ECB58:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080ECB68
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB68: .4byte 0x02000000
+_080ECB6C:
+ bl sub_80F2598
+ b _080ECBC0
+_080ECB72:
+ ldr r0, _080ECB88
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECBF2
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB88: .4byte gPaletteFade
+_080ECB8C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECBB8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECBA0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECBB8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECBB8: .4byte 0x02000000
+_080ECBBC:
+ bl sub_80F1DF0
+_080ECBC0:
+ ldr r1, _080ECBD0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ECBC8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ECBF2
+ .align 2, 0
+_080ECBD0: .4byte 0x02000000
+_080ECBD4:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r0, _080ECBFC
+ ldr r1, _080ECC00
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ ldr r0, _080ECC04
+ bl sub_80EBDBC
+_080ECBF2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECBFC: .4byte 0x02000000
+_080ECC00: .4byte 0x00006dad
+_080ECC04: .4byte sub_80EC86C
+ thumb_func_end sub_80ECA10
+
+ thumb_func_start sub_80ECC08
+sub_80ECC08: @ 80ECC08
+ push {r4,r5,lr}
+ ldr r4, _080ECC20
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080ECC24
+ cmp r0, 0x1
+ bne _080ECC1E
+ b _080ECD64
+_080ECC1E:
+ b _080ECD74
+ .align 2, 0
+_080ECC20: .4byte 0x02000000
+_080ECC24:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECC4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080ECC48
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080ECD74
+ .align 2, 0
+_080ECC48: .4byte 0x00006dad
+_080ECC4C:
+ ldr r0, _080ECC78
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECC5A
+ b _080ECD40
+_080ECC5A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECC7C
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _080ECD0C
+ lsls r0, 2
+ ldr r1, _080ECC80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECC78: .4byte gMain
+_080ECC7C: .4byte 0x00006dad
+_080ECC80: .4byte _080ECC84
+ .align 2, 0
+_080ECC84:
+ .4byte _080ECC9C
+ .4byte _080ECCB0
+ .4byte _080ECCC4
+ .4byte _080ECCD8
+ .4byte _080ECCEC
+ .4byte _080ECD00
+_080ECC9C:
+ ldr r0, _080ECCA8
+ ldr r3, _080ECCAC
+ adds r0, r3
+ movs r1, 0x16
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCA8: .4byte 0x02000000
+_080ECCAC: .4byte 0x000087d8
+_080ECCB0:
+ ldr r0, _080ECCBC
+ ldr r1, _080ECCC0
+ adds r0, r1
+ movs r1, 0x17
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCBC: .4byte 0x02000000
+_080ECCC0: .4byte 0x000087d8
+_080ECCC4:
+ ldr r0, _080ECCD0
+ ldr r2, _080ECCD4
+ adds r0, r2
+ movs r1, 0x18
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCD0: .4byte 0x02000000
+_080ECCD4: .4byte 0x000087d8
+_080ECCD8:
+ ldr r0, _080ECCE4
+ ldr r3, _080ECCE8
+ adds r0, r3
+ movs r1, 0x21
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCE4: .4byte 0x02000000
+_080ECCE8: .4byte 0x000087d8
+_080ECCEC:
+ ldr r0, _080ECCF8
+ ldr r1, _080ECCFC
+ adds r0, r1
+ movs r1, 0x2F
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCF8: .4byte 0x02000000
+_080ECCFC: .4byte 0x000087d8
+_080ECD00:
+ ldr r0, _080ECD08
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD08: .4byte sub_80EC9A8
+_080ECD0C:
+ ldr r1, _080ECD2C
+ ldr r2, _080ECD30
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ ldr r3, _080ECD34
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080ECD38
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080ECD3C
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD2C: .4byte 0x02000000
+_080ECD30: .4byte 0x00006dad
+_080ECD34: .4byte 0x00006dfc
+_080ECD38: .4byte 0x000076aa
+_080ECD3C: .4byte sub_80ED01C
+_080ECD40:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECD74
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECD60
+ adds r1, r4, r2
+ movs r0, 0x5
+ strb r0, [r1]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080ECD74
+ .align 2, 0
+_080ECD60: .4byte 0x00006dad
+_080ECD64:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECD74
+ ldr r0, _080ECD7C
+ bl sub_80EBDBC
+_080ECD74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECD7C: .4byte sub_80EC9A8
+ thumb_func_end sub_80ECC08
+
+ thumb_func_start sub_80ECD80
+sub_80ECD80: @ 80ECD80
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECDA0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x14
+ bls _080ECD96
+ b _080ED006
+_080ECD96:
+ lsls r0, 2
+ ldr r1, _080ECDA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECDA0: .4byte 0x02000000
+_080ECDA4: .4byte _080ECDA8
+ .align 2, 0
+_080ECDA8:
+ .4byte _080ECDFC
+ .4byte _080ECE1A
+ .4byte _080ECE34
+ .4byte _080ECE4C
+ .4byte _080ECE64
+ .4byte _080ECE78
+ .4byte _080ECE80
+ .4byte _080ECEAC
+ .4byte _080ECEC0
+ .4byte _080ECED4
+ .4byte _080ECEE8
+ .4byte _080ECF04
+ .4byte _080ECF10
+ .4byte _080ECF3C
+ .4byte _080ECF44
+ .4byte _080ECF58
+ .4byte _080ECF70
+ .4byte _080ECF84
+ .4byte _080ECFB0
+ .4byte _080ECFC4
+ .4byte _080ECFE8
+_080ECDFC:
+ movs r3, 0xC2
+ lsls r3, 2
+ adds r0, r4, r3
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+_080ECE1A:
+ ldr r0, _080ECE30
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECE28
+ b _080ED006
+_080ECE28:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE30: .4byte gPaletteFade
+_080ECE34:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECE40
+ b _080ED006
+_080ECE40:
+ ldr r0, _080ECE48
+ bl SetVBlankCallback
+ b _080ECFD4
+ .align 2, 0
+_080ECE48: .4byte sub_80EBD80
+_080ECE4C:
+ bl sub_80EED1C
+ bl sub_80F3130
+ ldr r1, _080ECE60
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECE60: .4byte 0x02000000
+_080ECE64:
+ movs r0, 0x1
+ bl sub_80F2D6C
+ ldr r1, _080ECE74
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE74: .4byte 0x02000000
+_080ECE78:
+ movs r0, 0x5
+ bl sub_80F2D6C
+ b _080ECFD4
+_080ECE80:
+ ldr r1, _080ECEA0
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECEA4
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r3, _080ECEA8
+ adds r1, r4, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECEA0: .4byte 0x00006dfc
+_080ECEA4: .4byte 0x00006dad
+_080ECEA8: .4byte 0x00006dae
+_080ECEAC:
+ movs r0, 0x2
+ bl sub_80EF248
+ ldr r1, _080ECED0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEC0:
+ movs r0, 0x2
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECECE
+ b _080ED006
+_080ECECE:
+ b _080ECFD4
+ .align 2, 0
+_080ECED0: .4byte 0x02000000
+_080ECED4:
+ movs r0, 0x2
+ bl sub_80F1B8C
+ ldr r1, _080ECF00
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEE8:
+ movs r0, 0x2
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECEF6
+ b _080ED006
+_080ECEF6:
+ ldr r1, _080ECF00
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF00: .4byte 0x02000000
+_080ECF04:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ECF0E
+ b _080ED006
+_080ECF0E:
+ b _080ECFD4
+_080ECF10:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECF38
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF38: .4byte sub_80EBD18
+_080ECF3C:
+ movs r0, 0
+ bl sub_80EED2C
+ b _080ECFD4
+_080ECF44:
+ bl sub_80F2598
+ ldr r1, _080ECF54
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECF54: .4byte 0x02000000
+_080ECF58:
+ ldr r0, _080ECF6C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED006
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF6C: .4byte gPaletteFade
+_080ECF70:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECFA8
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECF84:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED006
+ ldr r0, _080ECFA8
+ ldr r3, _080ECFAC
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED006
+ .align 2, 0
+_080ECFA8: .4byte 0x02000000
+_080ECFAC: .4byte 0x00000306
+_080ECFB0:
+ movs r0, 0x5
+ bl sub_80F2C80
+ ldr r1, _080ECFE4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECFC4:
+ movs r0, 0x5
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ bl sub_80F1DF0
+_080ECFD4:
+ ldr r1, _080ECFE4
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080ECFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED006
+ .align 2, 0
+_080ECFE4: .4byte 0x02000000
+_080ECFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ ldr r0, _080ED010
+ ldr r1, _080ED014
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ ldr r0, _080ED018
+ bl sub_80EBDBC
+_080ED006:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED010: .4byte 0x02000000
+_080ED014: .4byte 0x00006dad
+_080ED018: .4byte sub_80ECC08
+ thumb_func_end sub_80ECD80
+
+ thumb_func_start sub_80ED01C
+sub_80ED01C: @ 80ED01C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED03C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x13
+ bls _080ED032
+ b _080ED308
+_080ED032:
+ lsls r0, 2
+ ldr r1, _080ED040
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED03C: .4byte 0x02000000
+_080ED040: .4byte _080ED044
+ .align 2, 0
+_080ED044:
+ .4byte _080ED094
+ .4byte _080ED0B4
+ .4byte _080ED0D4
+ .4byte _080ED108
+ .4byte _080ED138
+ .4byte _080ED14C
+ .4byte _080ED15E
+ .4byte _080ED18C
+ .4byte _080ED1AC
+ .4byte _080ED1C4
+ .4byte _080ED1D8
+ .4byte _080ED1F4
+ .4byte _080ED208
+ .4byte _080ED220
+ .4byte _080ED24C
+ .4byte _080ED260
+ .4byte _080ED28C
+ .4byte _080ED2A0
+ .4byte _080ED2CC
+ .4byte _080ED2EA
+_080ED094:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080ED0B0
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED0B0: .4byte 0x02000000
+_080ED0B4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED0C0
+ b _080ED308
+_080ED0C0:
+ movs r0, 0
+ bl sub_80EEFBC
+ ldr r1, _080ED0D0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED0D0: .4byte 0x02000000
+_080ED0D4:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED0E2
+ b _080ED308
+_080ED0E2:
+ ldr r4, _080ED104
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED104: .4byte 0x02000000
+_080ED108:
+ ldr r0, _080ED130
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED116
+ b _080ED308
+_080ED116:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r1, _080ED134
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED130: .4byte gPaletteFade
+_080ED134: .4byte 0x02000000
+_080ED138:
+ bl sub_80F2620
+ ldr r1, _080ED148
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED148: .4byte 0x02000000
+_080ED14C:
+ bl sub_80F4D44
+ ldr r1, _080ED178
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED15E:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED17C
+ ldr r1, _080ED178
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED178: .4byte 0x02000000
+_080ED17C:
+ ldr r1, _080ED188
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED188: .4byte 0x02000000
+_080ED18C:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED196
+ b _080ED308
+_080ED196:
+ ldr r1, _080ED1A8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED1A8: .4byte 0x02000000
+_080ED1AC:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED1B6
+ b _080ED308
+_080ED1B6:
+ ldr r1, _080ED1C0
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED1C0: .4byte 0x02000000
+_080ED1C4:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED1F0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED1D8:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED1E4
+ b _080ED308
+_080ED1E4:
+ ldr r1, _080ED1F0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED27C
+ .align 2, 0
+_080ED1F0: .4byte 0x02000000
+_080ED1F4:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r1, _080ED204
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED204: .4byte 0x02000000
+_080ED208:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED212
+ b _080ED308
+_080ED212:
+ ldr r1, _080ED21C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED21C: .4byte 0x02000000
+_080ED220:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED248
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED248: .4byte sub_80EBD18
+_080ED24C:
+ movs r0, 0x4
+ bl sub_80EED2C
+ ldr r1, _080ED25C
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED25C: .4byte 0x02000000
+_080ED260:
+ ldr r0, _080ED284
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ED308
+ ldr r2, _080ED288
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r4, r3
+_080ED27C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED284: .4byte gPaletteFade
+_080ED288: .4byte 0x00000306
+_080ED28C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED2C4
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED2A0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED308
+ ldr r0, _080ED2C4
+ ldr r3, _080ED2C8
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED308
+ .align 2, 0
+_080ED2C4: .4byte 0x02000000
+_080ED2C8: .4byte 0x00000306
+_080ED2CC:
+ ldr r4, _080ED310
+ ldr r2, _080ED314
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2C80
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r4, r3
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080ED2EA:
+ ldr r0, _080ED310
+ ldr r1, _080ED314
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED308
+ ldr r0, _080ED318
+ bl sub_80EBDBC
+_080ED308:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED310: .4byte 0x02000000
+_080ED314: .4byte 0x00006dfc
+_080ED318: .4byte sub_80ED31C
+ thumb_func_end sub_80ED01C
+
+ thumb_func_start sub_80ED31C
+sub_80ED31C: @ 80ED31C
+ push {r4,lr}
+ ldr r0, _080ED338
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080ED3A8
+ cmp r0, 0x1
+ bgt _080ED33C
+ cmp r0, 0
+ beq _080ED342
+ b _080ED3CA
+ .align 2, 0
+_080ED338: .4byte 0x02000000
+_080ED33C:
+ cmp r0, 0x2
+ beq _080ED3C0
+ b _080ED3CA
+_080ED342:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080ED374
+ cmp r0, 0x2
+ beq _080ED380
+ ldr r0, _080ED36C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED38C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED370
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED36C: .4byte gMain
+_080ED370: .4byte sub_80ED4D8
+_080ED374:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080ED3CA
+_080ED380:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED38C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED3CA
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED3A4
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED3A4: .4byte sub_80ECD80
+_080ED3A8:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED3CA
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED3C0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED3CA
+_080ED3C8:
+ strh r0, [r4]
+_080ED3CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED31C
+
+ thumb_func_start sub_80ED3D0
+sub_80ED3D0: @ 80ED3D0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080ED3EC
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080ED4C6
+ lsls r0, 2
+ ldr r1, _080ED3F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED3EC: .4byte 0x02000000
+_080ED3F0: .4byte _080ED3F4
+ .align 2, 0
+_080ED3F4:
+ .4byte _080ED418
+ .4byte _080ED420
+ .4byte _080ED42A
+ .4byte _080ED432
+ .4byte _080ED446
+ .4byte _080ED458
+ .4byte _080ED462
+ .4byte _080ED498
+ .4byte _080ED4B4
+_080ED418:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080ED49E
+_080ED420:
+ bl sub_80EED0C
+ bl sub_80F6134
+ b _080ED49E
+_080ED42A:
+ movs r0, 0
+ bl sub_80EEFBC
+ b _080ED49E
+_080ED432:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED454
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED446:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+ .align 2, 0
+_080ED454: .4byte 0x02000000
+_080ED458:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+_080ED462:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r4, _080ED490
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED494
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ED4A6
+ .align 2, 0
+_080ED490: .4byte 0x02000000
+_080ED494: .4byte sub_80EBD18
+_080ED498:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080ED49E:
+ ldr r1, _080ED4B0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED4A6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED4C6
+ .align 2, 0
+_080ED4B0: .4byte 0x02000000
+_080ED4B4:
+ ldr r0, _080ED4D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED4C6
+ ldr r0, _080ED4D4
+ bl sub_80EBDBC
+_080ED4C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED4D0: .4byte gPaletteFade
+_080ED4D4: .4byte sub_80ED31C
+ thumb_func_end sub_80ED3D0
+
+ thumb_func_start sub_80ED4D8
+sub_80ED4D8: @ 80ED4D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED4F8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080ED4EE
+ b _080ED60E
+_080ED4EE:
+ lsls r0, 2
+ ldr r1, _080ED4FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED4F8: .4byte 0x02000000
+_080ED4FC: .4byte _080ED500
+ .align 2, 0
+_080ED500:
+ .4byte _080ED524
+ .4byte _080ED542
+ .4byte _080ED564
+ .4byte _080ED57C
+ .4byte _080ED582
+ .4byte _080ED594
+ .4byte _080ED5A4
+ .4byte _080ED5E0
+ .4byte _080ED5FC
+_080ED524:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+_080ED542:
+ ldr r0, _080ED560
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ b _080ED5E6
+ .align 2, 0
+_080ED560: .4byte gPaletteFade
+_080ED564:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED60E
+ ldr r1, _080ED578
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED578: .4byte 0x02000000
+_080ED57C:
+ bl sub_80F4CF0
+ b _080ED5E6
+_080ED582:
+ bl sub_80EFF34
+ ldr r1, _080ED5A0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED594:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED60E
+ b _080ED5E6
+ .align 2, 0
+_080ED5A0: .4byte 0x02000000
+_080ED5A4:
+ bl sub_80F35B4
+ movs r0, 0x2
+ bl sub_80EEFBC
+ ldr r4, _080ED5D8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED5DC
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED5D8: .4byte 0x02000000
+_080ED5DC: .4byte sub_80EBD4C
+_080ED5E0:
+ movs r0, 0x2
+ bl sub_80EED2C
+_080ED5E6:
+ ldr r1, _080ED5F8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED5EE:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED60E
+ .align 2, 0
+_080ED5F8: .4byte 0x02000000
+_080ED5FC:
+ ldr r0, _080ED618
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ ldr r0, _080ED61C
+ bl sub_80EBDBC
+_080ED60E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED618: .4byte gPaletteFade
+_080ED61C: .4byte sub_80ED858
+ thumb_func_end sub_80ED4D8
+
+ thumb_func_start sub_80ED620
+sub_80ED620: @ 80ED620
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED640
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ bls _080ED636
+ b _080ED846
+_080ED636:
+ lsls r0, 2
+ ldr r1, _080ED644
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED640: .4byte 0x02000000
+_080ED644: .4byte _080ED648
+ .align 2, 0
+_080ED648:
+ .4byte _080ED68C
+ .4byte _080ED6A4
+ .4byte _080ED6B8
+ .4byte _080ED6EC
+ .4byte _080ED730
+ .4byte _080ED736
+ .4byte _080ED750
+ .4byte _080ED762
+ .4byte _080ED76C
+ .4byte _080ED784
+ .4byte _080ED78A
+ .4byte _080ED7C0
+ .4byte _080ED7D4
+ .4byte _080ED7EC
+ .4byte _080ED800
+ .4byte _080ED820
+ .4byte _080ED834
+_080ED68C:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080ED6A0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED6A0: .4byte 0x02000000
+_080ED6A4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED6B0
+ b _080ED846
+_080ED6B0:
+ movs r0, 0x1
+ bl sub_80EEFBC
+ b _080ED80C
+_080ED6B8:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED6C6
+ b _080ED846
+_080ED6C6:
+ ldr r4, _080ED6E8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED6E8: .4byte 0x02000000
+_080ED6EC:
+ ldr r0, _080ED724
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080ED6FE
+ b _080ED846
+_080ED6FE:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r0, _080ED728
+ ldr r2, _080ED72C
+ adds r1, r0, r2
+ strb r4, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED846
+ .align 2, 0
+_080ED724: .4byte gPaletteFade
+_080ED728: .4byte 0x02000000
+_080ED72C: .4byte 0x000076aa
+_080ED730:
+ bl sub_80F2620
+ b _080ED80C
+_080ED736:
+ ldr r0, _080ED74C
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80F4BD0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED74C: .4byte 0x0000d162
+_080ED750:
+ bl sub_80EFF34
+ ldr r1, _080ED768
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED762:
+ bl sub_80EFF68
+ b _080ED806
+ .align 2, 0
+_080ED768: .4byte 0x02000000
+_080ED76C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED846
+ ldr r1, _080ED780
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED780: .4byte 0x02000000
+_080ED784:
+ bl sub_8055870
+ b _080ED808
+_080ED78A:
+ bl sub_80F33A8
+ ldr r4, _080ED7B8
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED7BC
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7B8: .4byte 0x02000000
+_080ED7BC: .4byte sub_80EBD4C
+_080ED7C0:
+ movs r0, 0x2
+ bl sub_80EED2C
+ ldr r1, _080ED7D0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED7D0: .4byte 0x02000000
+_080ED7D4:
+ ldr r0, _080ED7E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED846
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7E8: .4byte gPaletteFade
+_080ED7EC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED81C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED800:
+ movs r0, 0x1
+ bl sub_80F2CBC
+_080ED806:
+ lsls r0, 24
+_080ED808:
+ cmp r0, 0
+ bne _080ED846
+_080ED80C:
+ ldr r1, _080ED81C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ED814:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED846
+ .align 2, 0
+_080ED81C: .4byte 0x02000000
+_080ED820:
+ movs r0, 0x6
+ bl sub_80F2C80
+ ldr r1, _080ED850
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED834:
+ movs r0, 0x6
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED846
+ ldr r0, _080ED854
+ bl sub_80EBDBC
+_080ED846:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED850: .4byte 0x02000000
+_080ED854: .4byte sub_80ED858
+ thumb_func_end sub_80ED620
+
+ thumb_func_start sub_80ED858
+sub_80ED858: @ 80ED858
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080ED878
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xB
+ bls _080ED86E
+ b _080EDB7A
+_080ED86E:
+ lsls r0, 2
+ ldr r1, _080ED87C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED878: .4byte 0x02000000
+_080ED87C: .4byte _080ED880
+ .align 2, 0
+_080ED880:
+ .4byte _080ED8B0
+ .4byte _080ED8CC
+ .4byte _080ED8EC
+ .4byte _080ED904
+ .4byte _080ED91A
+ .4byte _080EDA68
+ .4byte _080EDA8C
+ .4byte _080EDAA4
+ .4byte _080EDAC0
+ .4byte _080EDAE8
+ .4byte _080EDB7A
+ .4byte _080EDB28
+_080ED8B0:
+ bl sub_80F4F78
+ bl sub_80F5B38
+ ldr r0, _080ED8C8
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8C8: .4byte 0x02000000
+_080ED8CC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED8D8
+ b _080EDB7A
+_080ED8D8:
+ ldr r0, _080ED8E8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8E8: .4byte 0x02000000
+_080ED8EC:
+ movs r0, 0x1
+ bl sub_80F0174
+ ldr r0, _080ED900
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED900: .4byte 0x02000000
+_080ED904:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED910
+ b _080EDB7A
+_080ED910:
+ bl sub_80F3C94
+ bl sub_80F3D00
+ b _080EDAD4
+_080ED91A:
+ ldr r2, _080ED960
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080ED970
+ ldr r1, _080ED964
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED970
+ ldr r2, _080ED968
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED948
+ ldr r4, _080ED96C
+ adds r0, r5, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080ED970
+_080ED948:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ b _080ED9B8
+ .align 2, 0
+_080ED960: .4byte gMain
+_080ED964: .4byte 0x000087cb
+_080ED968: .4byte 0x000076aa
+_080ED96C: .4byte 0x000087dc
+_080ED970:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r4, _080ED9C0
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r1, _080ED9C4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9A2
+ ldr r2, _080ED9C8
+ adds r0, r5, r2
+ subs r4, 0x57
+ adds r1, r5, r4
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r2, r0
+ bge _080ED9CC
+_080ED9A2:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+_080ED9B8:
+ movs r0, 0x5
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080ED9C0: .4byte 0x000087cb
+_080ED9C4: .4byte 0x000076aa
+_080ED9C8: .4byte 0x000087dc
+_080ED9CC:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080ED9F8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4FDC
+ bl move_anim_execute
+ ldr r0, _080ED9F4
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x9
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED9F4: .4byte 0x02000000
+_080ED9F8:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080EDA02
+ b _080EDB7A
+_080EDA02:
+ adds r4, r5, 0
+ ldr r2, _080EDA38
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDA44
+ ldr r1, _080EDA3C
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r2, _080EDA40
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080EDA26
+ b _080EDB7A
+_080EDA26:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ movs r0, 0x9
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA38: .4byte 0x000076aa
+_080EDA3C: .4byte 0x000087dc
+_080EDA40: .4byte 0x000087da
+_080EDA44:
+ ldr r1, _080EDA64
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EDA50
+ b _080EDB7A
+_080EDA50:
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0x7
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA64: .4byte 0x00006dac
+_080EDA68:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDA74
+ b _080EDB7A
+_080EDA74:
+ bl sub_80F3D00
+ ldr r0, _080EDA88
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDA88: .4byte 0x02000000
+_080EDA8C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDB7A
+ ldr r0, _080EDAA0
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EDADC
+ .align 2, 0
+_080EDAA0: .4byte 0x02000000
+_080EDAA4:
+ movs r0, 0x3
+ bl sub_80EEFBC
+ bl sub_80F3668
+ ldr r0, _080EDABC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDABC: .4byte 0x02000000
+_080EDAC0:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDB7A
+ movs r0, 0x2
+ bl sub_80EEFBC
+ bl sub_80F3698
+_080EDAD4:
+ ldr r0, _080EDAE4
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+_080EDADC:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDAE4: .4byte 0x02000000
+_080EDAE8:
+ bl sub_80F5038
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EDB7A
+ movs r0, 0
+ bl sub_80F0174
+ bl sub_80F2F48
+ ldr r5, _080EDB24
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r4, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0xB
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDB24: .4byte 0x02000000
+_080EDB28:
+ ldr r0, _080EDB60
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDB7A
+ bl sub_80F3CE8
+ bl sub_80F5BDC
+ ldr r0, _080EDB64
+ ldr r4, _080EDB68
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDB70
+ bl sub_80F357C
+ movs r0, 0x1
+ bl sub_80F2D6C
+ movs r0, 0x6
+ bl sub_80F2D6C
+ ldr r0, _080EDB6C
+ bl sub_80EBDBC
+ b _080EDB7A
+ .align 2, 0
+_080EDB60: .4byte gPaletteFade
+_080EDB64: .4byte 0x02000000
+_080EDB68: .4byte 0x000076aa
+_080EDB6C: .4byte sub_80ECA10
+_080EDB70:
+ bl sub_80F3614
+ ldr r0, _080EDB84
+ bl sub_80EBDBC
+_080EDB7A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDB84: .4byte sub_80ED3D0
+ thumb_func_end sub_80ED858
+
+ thumb_func_start sub_80EDB88
+sub_80EDB88: @ 80EDB88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDBA8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EDB9E
+ b _080EDDAA
+_080EDB9E:
+ lsls r0, 2
+ ldr r1, _080EDBAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDBA8: .4byte 0x02000000
+_080EDBAC: .4byte _080EDBB0
+ .align 2, 0
+_080EDBB0:
+ .4byte _080EDBF8
+ .4byte _080EDC04
+ .4byte _080EDC24
+ .4byte _080EDC58
+ .4byte _080EDC7C
+ .4byte _080EDC90
+ .4byte _080EDCA2
+ .4byte _080EDCC0
+ .4byte _080EDCDC
+ .4byte _080EDCE6
+ .4byte _080EDCFA
+ .4byte _080EDD0C
+ .4byte _080EDD20
+ .4byte _080EDD34
+ .4byte _080EDD48
+ .4byte _080EDD52
+ .4byte _080EDD7C
+ .4byte _080EDD98
+_080EDBF8:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EDD82
+_080EDC04:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDC10
+ b _080EDDAA
+_080EDC10:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ ldr r1, _080EDC20
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC20: .4byte 0x02000000
+_080EDC24:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EDC32
+ b _080EDDAA
+_080EDC32:
+ ldr r4, _080EDC54
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC54: .4byte 0x02000000
+_080EDC58:
+ ldr r0, _080EDC78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDC66
+ b _080EDDAA
+_080EDC66:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ b _080EDD82
+ .align 2, 0
+_080EDC78: .4byte gPaletteFade
+_080EDC7C:
+ bl sub_80F2620
+ ldr r1, _080EDC8C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC8C: .4byte 0x02000000
+_080EDC90:
+ bl sub_80F638C
+ ldr r1, _080EDCBC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCA2:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDD82
+ ldr r1, _080EDCBC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCBC: .4byte 0x02000000
+_080EDCC0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r1, _080EDCD8
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCD8: .4byte 0x02000000
+_080EDCDC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDCE6:
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EDD08
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCFA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD08: .4byte 0x02000000
+_080EDD0C:
+ movs r0, 0x2
+ bl sub_80F2C80
+ ldr r1, _080EDD30
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDD20:
+ movs r0, 0x2
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD30: .4byte 0x02000000
+_080EDD34:
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r1, _080EDD44
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD44: .4byte 0x02000000
+_080EDD48:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDD52:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EDD78
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD78: .4byte sub_80EBD18
+_080EDD7C:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EDD82:
+ ldr r1, _080EDD94
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EDD8A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDD94: .4byte 0x02000000
+_080EDD98:
+ ldr r0, _080EDDB4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r0, _080EDDB8
+ bl sub_80EBDBC
+_080EDDAA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDDB4: .4byte gPaletteFade
+_080EDDB8: .4byte sub_80EDDBC
+ thumb_func_end sub_80EDB88
+
+ thumb_func_start sub_80EDDBC
+sub_80EDDBC: @ 80EDDBC
+ push {r4,lr}
+ ldr r0, _080EDDD8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EDE48
+ cmp r0, 0x1
+ bgt _080EDDDC
+ cmp r0, 0
+ beq _080EDDE2
+ b _080EDE6A
+ .align 2, 0
+_080EDDD8: .4byte 0x02000000
+_080EDDDC:
+ cmp r0, 0x2
+ beq _080EDE60
+ b _080EDE6A
+_080EDDE2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EDE14
+ cmp r0, 0x2
+ beq _080EDE20
+ ldr r0, _080EDE0C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE2C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE10
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE0C: .4byte gMain
+_080EDE10: .4byte sub_80EDEE4
+_080EDE14:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080EDE6A
+_080EDE20:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE2C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE6A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE44
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE44: .4byte sub_80EDE70
+_080EDE48:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDE6A
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE60:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDE6A
+_080EDE68:
+ strh r0, [r4]
+_080EDE6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDDBC
+
+ thumb_func_start sub_80EDE70
+sub_80EDE70: @ 80EDE70
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EDE8C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EDEAE
+ cmp r2, 0x1
+ bgt _080EDE90
+ cmp r2, 0
+ beq _080EDE96
+ b _080EDED6
+ .align 2, 0
+_080EDE8C: .4byte 0x02000000
+_080EDE90:
+ cmp r2, 0x2
+ beq _080EDED0
+ b _080EDED6
+_080EDE96:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EDEC4
+_080EDEAE:
+ ldr r0, _080EDECC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDED6
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+_080EDEC4:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EDED6
+ .align 2, 0
+_080EDECC: .4byte gPaletteFade
+_080EDED0:
+ ldr r0, _080EDEE0
+ bl sub_80EBDBC
+_080EDED6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDEE0: .4byte sub_80EC00C
+ thumb_func_end sub_80EDE70
+
+ thumb_func_start sub_80EDEE4
+sub_80EDEE4: @ 80EDEE4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDF04
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _080EDEFA
+ b _080EE060
+_080EDEFA:
+ lsls r0, 2
+ ldr r1, _080EDF08
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDF04: .4byte 0x02000000
+_080EDF08: .4byte _080EDF0C
+ .align 2, 0
+_080EDF0C:
+ .4byte _080EDF38
+ .4byte _080EDF50
+ .4byte _080EDF80
+ .4byte _080EDF98
+ .4byte _080EDFB0
+ .4byte _080EDFC8
+ .4byte _080EDFE0
+ .4byte _080EDFF8
+ .4byte _080EE01C
+ .4byte _080EE030
+ .4byte _080EE050
+_080EDF38:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE03C
+_080EDF50:
+ ldr r0, _080EDF78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDF5E
+ b _080EE060
+_080EDF5E:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ ldr r1, _080EDF7C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDF78: .4byte gPaletteFade
+_080EDF7C: .4byte 0x02000000
+_080EDF80:
+ bl sub_80F66E0
+ bl sub_80EEE08
+ ldr r1, _080EDF94
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDF94: .4byte 0x02000000
+_080EDF98:
+ bl sub_80F1080
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFAC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFAC: .4byte 0x02000000
+_080EDFB0:
+ movs r0, 0x5
+ bl sub_80EEFBC
+ bl sub_80F38B8
+ ldr r1, _080EDFDC
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDFC8:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFDC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFDC: .4byte 0x02000000
+_080EDFE0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFF4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDFF4: .4byte 0x02000000
+_080EDFF8:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE018
+ bl SetVBlankCallback
+ b _080EE03C
+ .align 2, 0
+_080EE018: .4byte sub_80EBD18
+_080EE01C:
+ movs r0, 0x3
+ bl sub_80EED2C
+ ldr r1, _080EE02C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EE02C: .4byte 0x02000000
+_080EE030:
+ ldr r0, _080EE04C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE060
+_080EE03C:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+_080EE042:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE060
+ .align 2, 0
+_080EE04C: .4byte gPaletteFade
+_080EE050:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r0, _080EE068
+ bl sub_80EBDBC
+_080EE060:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE068: .4byte sub_80EE06C
+ thumb_func_end sub_80EDEE4
+
+ thumb_func_start sub_80EE06C
+sub_80EE06C: @ 80EE06C
+ push {r4,r5,lr}
+ ldr r1, _080EE08C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE080
+ b _080EE288
+_080EE080:
+ lsls r0, 2
+ ldr r1, _080EE090
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE08C: .4byte 0x02000000
+_080EE090: .4byte _080EE094
+ .align 2, 0
+_080EE094:
+ .4byte _080EE0B8
+ .4byte _080EE0CC
+ .4byte _080EE180
+ .4byte _080EE19C
+ .4byte _080EE1B8
+ .4byte _080EE1D0
+ .4byte _080EE1F8
+ .4byte _080EE250
+ .4byte _080EE26C
+_080EE0B8:
+ bl sub_80F15A8
+ ldr r1, _080EE0C8
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0C8: .4byte 0x02000000
+_080EE0CC:
+ ldr r2, _080EE0FC
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE104
+ ldr r1, _080EE100
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE104
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F6A4C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0FC: .4byte gMain
+_080EE100: .4byte 0x000087dc
+_080EE104:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE140
+ ldr r1, _080EE138
+ adds r0, r4, r1
+ ldr r2, _080EE13C
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE140
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F6A4C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE1C4
+ .align 2, 0
+_080EE138: .4byte 0x000087dc
+_080EE13C: .4byte 0x00008774
+_080EE140:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080EE164
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ bl sub_80EEFBC
+ ldr r0, _080EE160
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EE262
+ .align 2, 0
+_080EE160: .4byte 0x02000000
+_080EE164:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _080EE16E
+ b _080EE288
+_080EE16E:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE17C
+ bl sub_80EBDBC
+ b _080EE288
+ .align 2, 0
+_080EE17C: .4byte sub_80EE294
+_080EE180:
+ bl sub_80F6AF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE18C
+ b _080EE288
+_080EE18C:
+ ldr r1, _080EE198
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE1C4
+ .align 2, 0
+_080EE198: .4byte 0x02000000
+_080EE19C:
+ bl sub_8055870
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EE288
+ ldr r0, _080EE1B4
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE1B4: .4byte 0x02000000
+_080EE1B8:
+ bl sub_80F3B00
+ ldr r1, _080EE1CC
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE1C4:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE288
+ .align 2, 0
+_080EE1CC: .4byte 0x02000000
+_080EE1D0:
+ bl sub_80F3B58
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ bl sub_80F1494
+ ldr r1, _080EE1F4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl sub_80EED9C
+ b _080EE288
+ .align 2, 0
+_080EE1F4: .4byte 0x02000000
+_080EE1F8:
+ bl sub_80F68E8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080EE224
+ cmp r0, 0x1
+ bne _080EE224
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE220
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ movs r1, 0x7
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE220: .4byte 0x02000000
+_080EE224:
+ ldr r0, _080EE248
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE288
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE24C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE248: .4byte gMain
+_080EE24C: .4byte 0x02000000
+_080EE250:
+ bl sub_80F3BD4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ ldr r0, _080EE268
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+_080EE262:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE268: .4byte 0x02000000
+_080EE26C:
+ bl sub_80F3BD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EE288
+ movs r0, 0x5
+ bl sub_80EEFBC
+ ldr r0, _080EE290
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r4, [r0]
+_080EE288:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE290: .4byte 0x02000000
+ thumb_func_end sub_80EE06C
+
+ thumb_func_start sub_80EE294
+sub_80EE294: @ 80EE294
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EE2B4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE2AA
+ b _080EE3C6
+_080EE2AA:
+ lsls r0, 2
+ ldr r1, _080EE2B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE2B4: .4byte 0x02000000
+_080EE2B8: .4byte _080EE2BC
+ .align 2, 0
+_080EE2BC:
+ .4byte _080EE2E0
+ .4byte _080EE2FE
+ .4byte _080EE324
+ .4byte _080EE33C
+ .4byte _080EE34C
+ .4byte _080EE370
+ .4byte _080EE37A
+ .4byte _080EE39A
+ .4byte _080EE3B4
+_080EE2E0:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE2FE:
+ ldr r0, _080EE320
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3C2C
+ bl sub_80EEE08
+ b _080EE3A0
+ .align 2, 0
+_080EE320: .4byte gPaletteFade
+_080EE324:
+ bl sub_80F6134
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EE348
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE33C:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+ .align 2, 0
+_080EE348: .4byte 0x02000000
+_080EE34C:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r0, _080EE368
+ bl SetVBlankCallback
+ ldr r1, _080EE36C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE3A8
+ .align 2, 0
+_080EE368: .4byte sub_80EBD18
+_080EE36C: .4byte 0x02000000
+_080EE370:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+_080EE37A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE39A:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EE3A0:
+ ldr r1, _080EE3B0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE3A8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE3C6
+ .align 2, 0
+_080EE3B0: .4byte 0x02000000
+_080EE3B4:
+ ldr r0, _080EE3D0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ ldr r0, _080EE3D4
+ bl sub_80EBDBC
+_080EE3C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE3D0: .4byte gPaletteFade
+_080EE3D4: .4byte sub_80EDDBC
+ thumb_func_end sub_80EE294
+
+ thumb_func_start sub_80EE3D8
+sub_80EE3D8: @ 80EE3D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE3F8
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EE3EC
+ b _080EE57A
+_080EE3EC:
+ lsls r0, 2
+ ldr r1, _080EE3FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE3F8: .4byte 0x02000000
+_080EE3FC: .4byte _080EE400
+ .align 2, 0
+_080EE400:
+ .4byte _080EE438
+ .4byte _080EE444
+ .4byte _080EE458
+ .4byte _080EE48C
+ .4byte _080EE4B0
+ .4byte _080EE4B6
+ .4byte _080EE4CA
+ .4byte _080EE4DC
+ .4byte _080EE4F0
+ .4byte _080EE504
+ .4byte _080EE50C
+ .4byte _080EE516
+ .4byte _080EE54C
+ .4byte _080EE568
+_080EE438:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EE552
+_080EE444:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE450
+ b _080EE57A
+_080EE450:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ b _080EE552
+_080EE458:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EE466
+ b _080EE57A
+_080EE466:
+ ldr r4, _080EE488
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE488: .4byte 0x02000000
+_080EE48C:
+ ldr r0, _080EE4AC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ bl sub_80EEE08
+ b _080EE552
+ .align 2, 0
+_080EE4AC: .4byte gPaletteFade
+_080EE4B0:
+ bl sub_80F2620
+ b _080EE552
+_080EE4B6:
+ movs r0, 0x2
+ bl sub_80F0264
+ ldr r1, _080EE4D8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4CA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE4D8: .4byte 0x02000000
+_080EE4DC:
+ movs r0, 0x3
+ bl sub_80F2C80
+ ldr r1, _080EE500
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4F0:
+ movs r0, 0x3
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE500: .4byte 0x02000000
+_080EE504:
+ movs r0, 0x2
+ bl sub_80F3008
+ b _080EE552
+_080EE50C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+_080EE516:
+ bl sub_80F6F10
+ ldr r4, _080EE544
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE548
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE544: .4byte 0x02000000
+_080EE548: .4byte sub_80EBD68
+_080EE54C:
+ movs r0, 0x5
+ bl sub_80EED2C
+_080EE552:
+ ldr r1, _080EE564
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE55A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE57A
+ .align 2, 0
+_080EE564: .4byte 0x02000000
+_080EE568:
+ ldr r0, _080EE584
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ ldr r0, _080EE588
+ bl sub_80EBDBC
+_080EE57A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE584: .4byte gPaletteFade
+_080EE588: .4byte sub_80EE58C
+ thumb_func_end sub_80EE3D8
+
+ thumb_func_start sub_80EE58C
+sub_80EE58C: @ 80EE58C
+ push {r4,r5,lr}
+ ldr r5, _080EE5A8
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EE624
+ cmp r0, 0x1
+ bgt _080EE5AC
+ cmp r0, 0
+ beq _080EE5B2
+ b _080EE652
+ .align 2, 0
+_080EE5A8: .4byte 0x02000000
+_080EE5AC:
+ cmp r0, 0x2
+ beq _080EE648
+ b _080EE652
+_080EE5B2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EE5E4
+ cmp r0, 0x2
+ beq _080EE5FC
+ ldr r0, _080EE5DC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE608
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE5E0
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE5DC: .4byte gMain
+_080EE5E0: .4byte sub_80EE658
+_080EE5E4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EE5F8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080EE652
+ .align 2, 0
+_080EE5F8: .4byte 0x0000876e
+_080EE5FC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+_080EE608:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE652
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE620
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE620: .4byte sub_80EE8F4
+_080EE624:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE652
+ ldr r1, _080EE644
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+ .align 2, 0
+_080EE644: .4byte 0x0000876e
+_080EE648:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE652
+_080EE650:
+ strh r0, [r4]
+_080EE652:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE58C
+
+ thumb_func_start sub_80EE658
+sub_80EE658: @ 80EE658
+ push {r4,r5,lr}
+ ldr r1, _080EE678
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EE66C
+ b _080EE8E8
+_080EE66C:
+ lsls r0, 2
+ ldr r1, _080EE67C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE678: .4byte 0x02000000
+_080EE67C: .4byte _080EE680
+ .align 2, 0
+_080EE680:
+ .4byte _080EE6C8
+ .4byte _080EE6DA
+ .4byte _080EE6F4
+ .4byte _080EE708
+ .4byte _080EE71C
+ .4byte _080EE730
+ .4byte _080EE758
+ .4byte _080EE76A
+ .4byte _080EE780
+ .4byte _080EE820
+ .4byte _080EE840
+ .4byte _080EE854
+ .4byte _080EE868
+ .4byte _080EE86E
+ .4byte _080EE880
+ .4byte _080EE898
+ .4byte _080EE8B4
+ .4byte _080EE8D4
+_080EE6C8:
+ movs r0, 0x1
+ bl sub_80F3294
+ movs r0, 0xA
+ bl sub_80EEFBC
+ bl sub_80F0B24
+ b _080EE8BE
+_080EE6DA:
+ bl sub_80F0B44
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE6E6
+ b _080EE8E8
+_080EE6E6:
+ ldr r1, _080EE6F0
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE6F0: .4byte 0x02000000
+_080EE6F4:
+ bl sub_80F0F64
+ ldr r1, _080EE704
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE704: .4byte 0x02000000
+_080EE708:
+ bl sub_80F0FEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE714
+ b _080EE8E8
+_080EE714:
+ movs r0, 0x1
+ bl sub_80F6FB8
+ b _080EE8BE
+_080EE71C:
+ bl sub_80F6DB8
+ ldr r1, _080EE72C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE72C: .4byte 0x02000000
+_080EE730:
+ ldr r4, _080EE750
+ adds r0, r4, 0
+ subs r0, 0x1A
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_80F700C
+ adds r0, r4, 0
+ bl sub_80F42C4
+ ldr r1, _080EE754
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE8E8
+ .align 2, 0
+_080EE750: .4byte 0x02008788
+_080EE754: .4byte 0xffff7b7c
+_080EE758:
+ bl sub_80F0CD8
+ ldr r1, _080EE77C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE76A:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE776
+ b _080EE8E8
+_080EE776:
+ bl sub_80F0D5C
+ b _080EE8B8
+ .align 2, 0
+_080EE77C: .4byte 0x02000000
+_080EE780:
+ ldr r2, _080EE7B0
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE7B8
+ ldr r1, _080EE7B4
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE7B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F708C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE7E8
+ .align 2, 0
+_080EE7B0: .4byte gMain
+_080EE7B4: .4byte 0x000087dc
+_080EE7B8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE7F8
+ ldr r1, _080EE7F0
+ adds r0, r4, r1
+ ldr r2, _080EE7F4
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE7F8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F708C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EE7E8:
+ movs r0, 0x10
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE7F0: .4byte 0x000087dc
+_080EE7F4: .4byte 0x00008774
+_080EE7F8:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE8E8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4394
+ bl sub_80F0EC0
+ ldr r1, _080EE81C
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE81C: .4byte 0x02000000
+_080EE820:
+ bl sub_80F6ED4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ bl sub_80F0EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ movs r0, 0
+ bl sub_80F6FB8
+ bl sub_80F2FB0
+ b _080EE8BE
+_080EE840:
+ bl sub_80F6134
+ ldr r1, _080EE850
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE850: .4byte 0x02000000
+_080EE854:
+ bl sub_80F0FA0
+ ldr r1, _080EE864
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE864: .4byte 0x02000000
+_080EE868:
+ bl sub_80F0FEC
+ b _080EE8B8
+_080EE86E:
+ bl sub_80F0C28
+ ldr r1, _080EE87C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE87C: .4byte 0x02000000
+_080EE880:
+ bl sub_80F0C48
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r1, _080EE894
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE894: .4byte 0x02000000
+_080EE898:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ movs r0, 0
+ bl sub_80F3294
+ ldr r0, _080EE8B0
+ bl sub_80EBDBC
+ bl sub_80EED9C
+ b _080EE8E8
+ .align 2, 0
+_080EE8B0: .4byte sub_80EE58C
+_080EE8B4:
+ bl sub_80F70FC
+_080EE8B8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+_080EE8BE:
+ ldr r1, _080EE8D0
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+_080EE8C6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE8D0: .4byte 0x02000000
+_080EE8D4:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r0, _080EE8F0
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+_080EE8E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE8F0: .4byte 0x02000000
+ thumb_func_end sub_80EE658
+
+ thumb_func_start sub_80EE8F4
+sub_80EE8F4: @ 80EE8F4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE910
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EE932
+ cmp r2, 0x1
+ bgt _080EE914
+ cmp r2, 0
+ beq _080EE91A
+ b _080EE95E
+ .align 2, 0
+_080EE910: .4byte 0x02000000
+_080EE914:
+ cmp r2, 0x2
+ beq _080EE958
+ b _080EE95E
+_080EE91A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE94C
+_080EE932:
+ ldr r0, _080EE954
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE95E
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+ bl sub_80F6FFC
+_080EE94C:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE95E
+ .align 2, 0
+_080EE954: .4byte gPaletteFade
+_080EE958:
+ ldr r0, _080EE968
+ bl sub_80EBDBC
+_080EE95E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE968: .4byte sub_80EC00C
+ thumb_func_end sub_80EE8F4
+
+ thumb_func_start sub_80EE96C
+sub_80EE96C: @ 80EE96C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _080EE99C
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ cmp r4, 0
+ bne _080EE9A0
+ movs r0, 0x6F
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EE9B4
+ .align 2, 0
+_080EE99C: .4byte 0x02000000
+_080EE9A0:
+ ldr r0, _080EE9BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE9B4
+ bl sub_80F5BDC
+ bl sub_805469C
+_080EE9B4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9BC: .4byte gPaletteFade
+ thumb_func_end sub_80EE96C
+
+ thumb_func_start sub_80EE9C0
+sub_80EE9C0: @ 80EE9C0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ bl sub_80F1E84
+ ldr r1, _080EE9FC
+ ldr r2, _080EEA00
+ adds r0, r1, r2
+ movs r2, 0
+ strb r4, [r0]
+ ldr r3, _080EEA04
+ adds r0, r1, r3
+ strb r5, [r0]
+ adds r3, 0x1
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EEA08
+ adds r1, r0
+ strb r6, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9FC: .4byte 0x02000000
+_080EEA00: .4byte 0x00006e14
+_080EEA04: .4byte 0x00006e15
+_080EEA08: .4byte 0x00006e17
+ thumb_func_end sub_80EE9C0
+
+ thumb_func_start sub_80EEA0C
+sub_80EEA0C: @ 80EEA0C
+ push {r4,lr}
+ ldr r1, _080EEA28
+ ldr r2, _080EEA2C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x8
+ bls _080EEA1E
+ b _080EEBFA
+_080EEA1E:
+ lsls r0, 2
+ ldr r1, _080EEA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEA28: .4byte 0x02000000
+_080EEA2C: .4byte 0x00006e16
+_080EEA30: .4byte _080EEA34
+ .align 2, 0
+_080EEA34:
+ .4byte _080EEA58
+ .4byte _080EEA98
+ .4byte _080EEAAE
+ .4byte _080EEAD4
+ .4byte _080EEB3E
+ .4byte _080EEB68
+ .4byte _080EEB88
+ .4byte _080EEBAC
+ .4byte _080EEBE4
+_080EEA58:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEA64
+ b _080EEC08
+_080EEA64:
+ ldr r1, _080EEA7C
+ ldr r4, _080EEA80
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _080EEA88
+ ldr r0, _080EEA84
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA7C: .4byte 0x02000000
+_080EEA80: .4byte 0x00006e17
+_080EEA84: .4byte 0x00006e16
+_080EEA88:
+ ldr r2, _080EEA94
+ adds r1, r2
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA94: .4byte 0x00006e16
+_080EEA98:
+ ldr r4, _080EEAC8
+ ldr r1, _080EEACC
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2C80
+ ldr r2, _080EEAD0
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEAAE:
+ ldr r4, _080EEAC8
+ ldr r1, _080EEACC
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEAC2
+ b _080EEC08
+_080EEAC2:
+ ldr r2, _080EEAD0
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEAC8: .4byte 0x02000000
+_080EEACC: .4byte 0x00006e17
+_080EEAD0: .4byte 0x00006e16
+_080EEAD4:
+ adds r2, r3, 0
+ ldr r4, _080EEAF8
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ subs r4, 0x68
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldr r1, _080EEAFC
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080EEB14
+ cmp r0, 0x1
+ bgt _080EEB00
+ cmp r0, 0
+ beq _080EEB06
+ b _080EEB28
+ .align 2, 0
+_080EEAF8: .4byte 0x00006e15
+_080EEAFC: .4byte 0x00006e14
+_080EEB00:
+ cmp r0, 0x2
+ beq _080EEB20
+ b _080EEB28
+_080EEB06:
+ ldr r4, _080EEB10
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080EEB26
+ .align 2, 0
+_080EEB10: .4byte 0x00006dae
+_080EEB14:
+ ldr r0, _080EEB1C
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _080EEB26
+ .align 2, 0
+_080EEB1C: .4byte 0x00006dae
+_080EEB20:
+ ldr r2, _080EEB58
+ adds r1, r3, r2
+ movs r0, 0x6
+_080EEB26:
+ strb r0, [r1]
+_080EEB28:
+ ldr r4, _080EEB5C
+ ldr r1, _080EEB60
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1B8C
+ ldr r2, _080EEB64
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEB3E:
+ ldr r4, _080EEB5C
+ ldr r1, _080EEB60
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r2, _080EEB64
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEB58: .4byte 0x00006dae
+_080EEB5C: .4byte 0x02000000
+_080EEB60: .4byte 0x00006e14
+_080EEB64: .4byte 0x00006e16
+_080EEB68:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEB80
+ ldr r4, _080EEB84
+ adds r1, r4
+_080EEB76:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEB80: .4byte 0x02000000
+_080EEB84: .4byte 0x00006e16
+_080EEB88:
+ bl sub_80F1DF0
+ ldr r4, _080EEBA0
+ ldr r1, _080EEBA4
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80EF490
+ ldr r2, _080EEBA8
+ adds r4, r2
+ b _080EEBCC
+ .align 2, 0
+_080EEBA0: .4byte 0x02000000
+_080EEBA4: .4byte 0x00006e14
+_080EEBA8: .4byte 0x00006e16
+_080EEBAC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r4, _080EEBD4
+ ldr r1, _080EEBD8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080EEBDC
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80EF428
+ ldr r0, _080EEBE0
+ adds r4, r0
+_080EEBCC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080EEC08
+ .align 2, 0
+_080EEBD4: .4byte 0x02000000
+_080EEBD8: .4byte 0x00006e14
+_080EEBDC: .4byte 0x00006dad
+_080EEBE0: .4byte 0x00006e16
+_080EEBE4:
+ bl sub_80EF4F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEC00
+ ldr r2, _080EEC04
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EEBFA:
+ movs r0, 0
+ b _080EEC0A
+ .align 2, 0
+_080EEC00: .4byte 0x02000000
+_080EEC04: .4byte 0x00006e16
+_080EEC08:
+ movs r0, 0x1
+_080EEC0A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEA0C
+
+ thumb_func_start sub_80EEC10
+sub_80EEC10: @ 80EEC10
+ push {r4,lr}
+ ldr r0, _080EEC48
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC50
+ ldr r1, _080EEC4C
+ adds r3, r1, 0x1
+ adds r2, r1, 0x5
+_080EEC24:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EEC36
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r1]
+_080EEC36:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC24
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC48: .4byte gMain
+_080EEC4C: .4byte 0x02006dad
+_080EEC50:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC88
+ ldr r1, _080EEC84
+ movs r4, 0
+ movs r2, 0x1
+ ldrsb r2, [r1, r2]
+ adds r3, r1, 0x5
+_080EEC62:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r2
+ blt _080EEC72
+ strb r4, [r1]
+_080EEC72:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC62
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC84: .4byte 0x02006dad
+_080EEC88:
+ movs r0, 0
+_080EEC8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC10
+
+ thumb_func_start sub_80EEC90
+sub_80EEC90: @ 80EEC90
+ push {r4,lr}
+ ldr r0, _080EECC0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080EECD0
+ ldr r2, _080EECC4
+ ldr r0, _080EECC8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EECF8
+ ldr r3, _080EECCC
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r1]
+ b _080EECF8
+ .align 2, 0
+_080EECC0: .4byte gMain
+_080EECC4: .4byte 0x02000000
+_080EECC8: .4byte 0x00006dad
+_080EECCC: .4byte 0x00006dae
+_080EECD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EED04
+ ldr r0, _080EECFC
+ ldr r4, _080EED00
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ adds r1, 0x1
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r0, r4
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080EECF8
+ strb r3, [r2]
+_080EECF8:
+ movs r0, 0x1
+ b _080EED06
+ .align 2, 0
+_080EECFC: .4byte 0x02000000
+_080EED00: .4byte 0x00006dad
+_080EED04:
+ movs r0, 0
+_080EED06:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC90
+
+ thumb_func_start sub_80EED0C
+sub_80EED0C: @ 80EED0C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED0C
+
+ thumb_func_start sub_80EED1C
+sub_80EED1C: @ 80EED1C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x92
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED1C
+
+ thumb_func_start sub_80EED2C
+sub_80EED2C: @ 80EED2C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080EED98
+ lsls r0, 2
+ ldr r1, _080EED40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EED40: .4byte _080EED44
+ .align 2, 0
+_080EED44:
+ .4byte _080EED5C
+ .4byte _080EED66
+ .4byte _080EED7E
+ .4byte _080EED74
+ .4byte _080EED74
+ .4byte _080EED8C
+_080EED5C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED66:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED70
+ b _080EED94
+ .align 2, 0
+_080EED70: .4byte 0x00001741
+_080EED74:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED7E:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED88
+ b _080EED94
+ .align 2, 0
+_080EED88: .4byte 0x00007b40
+_080EED8C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+_080EED94:
+ adds r0, r2, 0
+ strh r0, [r1]
+_080EED98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EED2C
+
+ thumb_func_start sub_80EED9C
+sub_80EED9C: @ 80EED9C
+ push {lr}
+ ldr r2, _080EEDB8
+ ldr r0, _080EEDBC
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r1, _080EEDC0
+ str r1, [r0]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDB8: .4byte gUnknown_03000744
+_080EEDBC: .4byte 0x02000000
+_080EEDC0: .4byte sub_80EEDC4
+ thumb_func_end sub_80EED9C
+
+ thumb_func_start sub_80EEDC4
+sub_80EEDC4: @ 80EEDC4
+ push {lr}
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080EEDDC
+ ldr r0, _080EEDE0
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, _080EEDE4
+ ldr r1, [r1]
+ str r1, [r0]
+_080EEDDC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDE0: .4byte 0x02000000
+_080EEDE4: .4byte gUnknown_03000744
+ thumb_func_end sub_80EEDC4
+
+ thumb_func_start sub_80EEDE8
+sub_80EEDE8: @ 80EEDE8
+ ldr r0, _080EEE04
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE04: .4byte REG_BG0HOFS
+ thumb_func_end sub_80EEDE8
+
+ thumb_func_start sub_80EEE08
+sub_80EEE08: @ 80EEE08
+ ldr r0, _080EEE18
+ ldr r0, [r0]
+ ldr r1, _080EEE1C
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE18: .4byte gUnknown_083DFEC4
+_080EEE1C: .4byte 0x0000d160
+ thumb_func_end sub_80EEE08
+
+ thumb_func_start sub_80EEE20
+sub_80EEE20: @ 80EEE20
+ push {lr}
+ ldr r0, _080EEE48
+ ldr r0, [r0]
+ ldr r1, _080EEE4C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EEE50
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EEE42
+_080EEE38:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEE38
+_080EEE42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEE48: .4byte gUnknown_083DFEC4
+_080EEE4C: .4byte 0x0000d160
+_080EEE50: .4byte 0x00006dac
+ thumb_func_end sub_80EEE20
+
+ thumb_func_start sub_80EEE54
+sub_80EEE54: @ 80EEE54
+ push {lr}
+ ldr r1, _080EEE70
+ ldr r0, [r1]
+ ldr r2, _080EEE74
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _080EEF02
+ lsls r0, 2
+ ldr r1, _080EEE78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEE70: .4byte gUnknown_083DFEC4
+_080EEE74: .4byte 0x0000d160
+_080EEE78: .4byte _080EEE7C
+ .align 2, 0
+_080EEE7C:
+ .4byte _080EEE90
+ .4byte _080EEEA4
+ .4byte _080EEEB8
+ .4byte _080EEEC8
+ .4byte _080EEEDC
+_080EEE90:
+ ldr r0, _080EEE9C
+ ldr r1, _080EEEA0
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
+_080EEEA0: .4byte 0x0600c000
+_080EEEA4:
+ ldr r0, _080EEEB0
+ ldr r1, _080EEEB4
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEEB0: .4byte gUnknown_08E99FB0
+_080EEEB4: .4byte 0x0600d800
+_080EEEB8:
+ ldr r0, _080EEEC4
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ b _080EEF18
+ .align 2, 0
+_080EEEC4: .4byte gPokenavHoennMap1_Pal
+_080EEEC8:
+ movs r0, 0
+ bl sub_80EF58C
+ movs r0, 0x1
+ bl sub_80EF58C
+ movs r0, 0x2
+ bl sub_80EF58C
+ b _080EEF18
+_080EEEDC:
+ ldr r2, [r2]
+ movs r3, 0xC3
+ lsls r3, 2
+ adds r0, r2, r3
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080EEF08
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080EEF0C
+ ldr r3, _080EEF10
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080EEF14
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EEF02:
+ movs r0, 0
+ b _080EEF28
+ .align 2, 0
+_080EEF08: .4byte REG_BG1HOFS
+_080EEF0C: .4byte REG_BG1CNT
+_080EEF10: .4byte 0x00001b0c
+_080EEF14: .4byte 0x0000d160
+_080EEF18:
+ ldr r0, _080EEF2C
+ ldr r1, [r0]
+ ldr r2, _080EEF30
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080EEF28:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF2C: .4byte gUnknown_083DFEC4
+_080EEF30: .4byte 0x0000d160
+ thumb_func_end sub_80EEE54
+
+ thumb_func_start sub_80EEF34
+sub_80EEF34: @ 80EEF34
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF50
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x20
+ bne _080EEF54
+ movs r0, 0
+ b _080EEF6E
+ .align 2, 0
+_080EEF50: .4byte gUnknown_083DFEC4
+_080EEF54:
+ adds r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080EEF66
+ movs r0, 0x20
+ strh r0, [r2]
+ movs r3, 0
+_080EEF66:
+ ldr r1, _080EEF74
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEF6E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF74: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF34
+
+ thumb_func_start sub_80EEF78
+sub_80EEF78: @ 80EEF78
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF94
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bne _080EEF98
+ movs r0, 0
+ b _080EEFB0
+ .align 2, 0
+_080EEF94: .4byte gUnknown_083DFEC4
+_080EEF98:
+ subs r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080EEFA8
+ movs r0, 0
+ strh r0, [r2]
+ movs r3, 0
+_080EEFA8:
+ ldr r1, _080EEFB8
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEFB0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEFB8: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF78
+
+ thumb_func_start sub_80EEFBC
+sub_80EEFBC: @ 80EEFBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EEFF4
+ ldr r3, _080EEFF8
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0x16
+ bl sub_809D104
+ cmp r4, 0xB
+ bls _080EEFE8
+ b _080EF234
+_080EEFE8:
+ lsls r0, r4, 2
+ ldr r1, _080EEFFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEFF4: .4byte 0x0600d800
+_080EEFF8: .4byte gUnknown_08E9A100
+_080EEFFC: .4byte _080EF000
+ .align 2, 0
+_080EF000:
+ .4byte _080EF030
+ .4byte _080EF234
+ .4byte _080EF08C
+ .4byte _080EF100
+ .4byte _080EF13C
+ .4byte _080EF1D4
+ .4byte _080EF234
+ .4byte _080EF178
+ .4byte _080EF190
+ .4byte _080EF1D4
+ .4byte _080EF218
+ .4byte _080EF06C
+_080EF030:
+ ldr r6, _080EF064
+ ldr r0, _080EF068
+ mov r8, r0
+ movs r0, 0x11
+ str r0, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r4, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF064: .4byte 0x0600d800
+_080EF068: .4byte gUnknown_08E9A100
+_080EF06C:
+ ldr r0, _080EF084
+ ldr r3, _080EF088
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ b _080EF0EE
+ .align 2, 0
+_080EF084: .4byte 0x0600d800
+_080EF088: .4byte gUnknown_08E9A100
+_080EF08C:
+ ldr r0, _080EF0C8
+ ldr r0, [r0]
+ ldr r1, _080EF0CC
+ adds r0, r1
+ ldrb r7, [r0]
+ cmp r7, 0
+ bne _080EF0D8
+ ldr r5, _080EF0D0
+ ldr r6, _080EF0D4
+ movs r0, 0xA
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ str r7, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF0C8: .4byte gUnknown_083DFEC4
+_080EF0CC: .4byte 0x00006dac
+_080EF0D0: .4byte 0x0600d800
+_080EF0D4: .4byte gUnknown_08E9A100
+_080EF0D8:
+ ldr r0, _080EF0F8
+ ldr r3, _080EF0FC
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+_080EF0EE:
+ movs r2, 0x16
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF0F8: .4byte 0x0600d800
+_080EF0FC: .4byte gUnknown_08E9A100
+_080EF100:
+ ldr r6, _080EF134
+ ldr r0, _080EF138
+ mov r8, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF134: .4byte 0x0600d800
+_080EF138: .4byte gUnknown_08E9A100
+_080EF13C:
+ ldr r5, _080EF170
+ ldr r6, _080EF174
+ movs r0, 0x14
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF170: .4byte 0x0600d800
+_080EF174: .4byte gUnknown_08E9A100
+_080EF178:
+ ldr r5, _080EF188
+ ldr r6, _080EF18C
+ movs r1, 0xA
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ b _080EF1A0
+ .align 2, 0
+_080EF188: .4byte 0x0600d800
+_080EF18C: .4byte gUnknown_08E9A100
+_080EF190:
+ ldr r5, _080EF1CC
+ ldr r6, _080EF1D0
+ movs r0, 0x14
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+_080EF1A0:
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x7
+_080EF1C2:
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF1CC: .4byte 0x0600d800
+_080EF1D0: .4byte gUnknown_08E9A100
+_080EF1D4:
+ ldr r6, _080EF210
+ ldr r1, _080EF214
+ mov r8, r1
+ movs r5, 0
+ str r5, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x8
+_080EF204:
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF210: .4byte 0x0600d800
+_080EF214: .4byte gUnknown_08E9A100
+_080EF218:
+ ldr r0, _080EF240
+ ldr r3, _080EF244
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ movs r2, 0x16
+ bl sub_809D104
+_080EF234:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF240: .4byte 0x0600d800
+_080EF244: .4byte gUnknown_08E9A100
+ thumb_func_end sub_80EEFBC
+
+ thumb_func_start sub_80EF248
+sub_80EF248: @ 80EF248
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EF278
+ ldr r0, [r0]
+ ldr r1, _080EF27C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF280
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF270
+_080EF264:
+ adds r0, r4, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF264
+_080EF270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF278: .4byte gUnknown_083DFEC4
+_080EF27C: .4byte 0x0000d160
+_080EF280: .4byte 0x00006dac
+ thumb_func_end sub_80EF248
+
+ thumb_func_start sub_80EF284
+sub_80EF284: @ 80EF284
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080EF2A8
+ ldr r0, [r1]
+ ldr r3, _080EF2AC
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080EF29C
+ b _080EF3F6
+_080EF29C:
+ lsls r0, 2
+ ldr r1, _080EF2B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF2A8: .4byte gUnknown_083DFEC4
+_080EF2AC: .4byte 0x0000d160
+_080EF2B0: .4byte _080EF2B4
+ .align 2, 0
+_080EF2B4:
+ .4byte _080EF2E4
+ .4byte _080EF2EA
+ .4byte _080EF2F8
+ .4byte _080EF304
+ .4byte _080EF310
+ .4byte _080EF330
+ .4byte _080EF344
+ .4byte _080EF368
+ .4byte _080EF37C
+ .4byte _080EF390
+ .4byte _080EF3A4
+ .4byte _080EF3CC
+_080EF2E4:
+ bl sub_80EEDE8
+ b _080EF40C
+_080EF2EA:
+ ldr r0, _080EF2F4
+ bl SetUpWindowConfig
+ b _080EF40C
+ .align 2, 0
+_080EF2F4: .4byte gWindowConfig_81E7224
+_080EF2F8:
+ ldr r0, _080EF300
+ bl MultistepInitMenuWindowBegin
+ b _080EF40C
+ .align 2, 0
+_080EF300: .4byte gWindowConfig_81E7224
+_080EF304:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080EF30E
+ b _080EF40C
+_080EF30E:
+ b _080EF41A
+_080EF310:
+ ldr r1, _080EF320
+ ldr r2, _080EF324
+ ldr r0, _080EF328
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF32C
+ b _080EF350
+ .align 2, 0
+_080EF320: .4byte gUnknown_083DFEEC
+_080EF324: .4byte 0x06005000
+_080EF328: .4byte 0x040000d4
+_080EF32C: .4byte 0x80000050
+_080EF330:
+ ldr r0, _080EF33C
+ ldr r1, _080EF340
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF33C: .4byte gUnknown_083DFF8C
+_080EF340: .4byte 0x0600f800
+_080EF344:
+ ldr r1, _080EF358
+ ldr r2, _080EF35C
+ ldr r0, _080EF360
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF364
+_080EF350:
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080EF40C
+ .align 2, 0
+_080EF358: .4byte gUnknown_083E005C
+_080EF35C: .4byte 0x06008000
+_080EF360: .4byte 0x040000d4
+_080EF364: .4byte 0x80000010
+_080EF368:
+ ldr r0, _080EF374
+ ldr r1, _080EF378
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF374: .4byte gUnknown_083E007C
+_080EF378: .4byte 0x0600e000
+_080EF37C:
+ ldr r0, _080EF388
+ ldr r1, _080EF38C
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF388: .4byte gPokenavOutlineTilemap
+_080EF38C: .4byte 0x0600e800
+_080EF390:
+ ldr r0, _080EF39C
+ ldr r1, _080EF3A0
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF39C: .4byte gPokenavOutlineTiles
+_080EF3A0: .4byte 0x06008020
+_080EF3A4:
+ adds r0, r2, 0
+ bl sub_80EF54C
+ ldr r0, _080EF3C4
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080EF3C8
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EF7D4
+ b _080EF40C
+ .align 2, 0
+_080EF3C4: .4byte gUnknown_083DFECC
+_080EF3C8: .4byte gPokenavOutlinePalette
+_080EF3CC:
+ ldr r1, _080EF3FC
+ ldr r2, _080EF400
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080EF404
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ ldr r3, _080EF408
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF3F6:
+ movs r0, 0
+ b _080EF41C
+ .align 2, 0
+_080EF3FC: .4byte REG_BG0CNT
+_080EF400: .4byte 0x00001f01
+_080EF404: .4byte 0x00001d0a
+_080EF408: .4byte 0x0000d160
+_080EF40C:
+ ldr r0, _080EF420
+ ldr r1, [r0]
+ ldr r0, _080EF424
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF41A:
+ movs r0, 0x1
+_080EF41C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF420: .4byte gUnknown_083DFEC4
+_080EF424: .4byte 0x0000d160
+ thumb_func_end sub_80EF284
+
+ thumb_func_start sub_80EF428
+sub_80EF428: @ 80EF428
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ movs r1, 0
+ cmp r0, 0x1
+ beq _080EF454
+ cmp r0, 0x1
+ bgt _080EF444
+ cmp r0, 0
+ beq _080EF44A
+ b _080EF464
+_080EF444:
+ cmp r3, 0x2
+ beq _080EF45C
+ b _080EF464
+_080EF44A:
+ ldr r1, _080EF450
+ b _080EF45E
+ .align 2, 0
+_080EF450: .4byte gUnknown_083E31B0
+_080EF454:
+ ldr r1, _080EF458
+ b _080EF45E
+ .align 2, 0
+_080EF458: .4byte gUnknown_083E31CC
+_080EF45C:
+ ldr r1, _080EF488
+_080EF45E:
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+_080EF464:
+ ldr r0, _080EF48C
+ ldr r4, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0xC0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF488: .4byte gUnknown_083E31D8
+_080EF48C: .4byte gUnknown_083DFEC8
+ thumb_func_end sub_80EF428
+
+ thumb_func_start sub_80EF490
+sub_80EF490: @ 80EF490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF49C
+ movs r2, 0x1
+_080EF49C:
+ ldr r0, _080EF4C4
+ ldr r3, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r2, r1, 1
+ ldr r4, _080EF4C8
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldr r2, _080EF4CC
+ adds r0, r3, r2
+ ldrh r2, [r0]
+ lsls r1, 17
+ lsrs r0, r1, 16
+ cmp r2, r0
+ bcs _080EF4D0
+ adds r4, 0x2
+ adds r1, r3, r4
+ movs r0, 0x2
+ b _080EF4EA
+ .align 2, 0
+_080EF4C4: .4byte gUnknown_083DFEC4
+_080EF4C8: .4byte 0x0000ce4e
+_080EF4CC: .4byte 0x0000ce4c
+_080EF4D0:
+ cmp r2, r0
+ bls _080EF4E4
+ ldr r0, _080EF4DC
+ adds r1, r3, r0
+ ldr r0, _080EF4E0
+ b _080EF4EA
+ .align 2, 0
+_080EF4DC: .4byte 0x0000ce50
+_080EF4E0: .4byte 0x0000fffe
+_080EF4E4:
+ ldr r2, _080EF4F4
+ adds r1, r3, r2
+ movs r0, 0
+_080EF4EA:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF4F4: .4byte 0x0000ce50
+ thumb_func_end sub_80EF490
+
+ thumb_func_start sub_80EF4F8
+sub_80EF4F8: @ 80EF4F8
+ push {r4,lr}
+ ldr r0, _080EF530
+ ldr r1, [r0]
+ ldr r0, _080EF534
+ adds r2, r1, r0
+ ldr r3, _080EF538
+ adds r0, r1, r3
+ ldrh r3, [r2]
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080EF544
+ ldr r4, _080EF53C
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ strh r0, [r2]
+ ldr r3, _080EF540
+ adds r0, r1, r3
+ ldrh r1, [r2]
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x1
+ b _080EF546
+ .align 2, 0
+_080EF530: .4byte gUnknown_083DFEC4
+_080EF534: .4byte 0x0000ce4c
+_080EF538: .4byte 0x0000ce4e
+_080EF53C: .4byte 0x0000ce50
+_080EF540: .4byte 0x0000ce52
+_080EF544:
+ movs r0, 0
+_080EF546:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EF4F8
+
+ thumb_func_start sub_80EF54C
+sub_80EF54C: @ 80EF54C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF558
+ movs r2, 0x1
+_080EF558:
+ ldr r0, _080EF580
+ ldr r0, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 1
+ ldr r3, _080EF584
+ adds r2, r0, r3
+ strh r1, [r2]
+ ldrh r1, [r2]
+ lsls r1, 1
+ ldr r2, _080EF588
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF580: .4byte gUnknown_083DFEC4
+_080EF584: .4byte 0x0000ce4c
+_080EF588: .4byte 0x0000ce52
+ thumb_func_end sub_80EF54C
+
+ thumb_func_start sub_80EF58C
+sub_80EF58C: @ 80EF58C
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080EF5D0
+ cmp r0, 0x1
+ bgt _080EF5A4
+ cmp r0, 0
+ beq _080EF5AA
+ b _080EF610
+_080EF5A4:
+ cmp r1, 0x2
+ beq _080EF5F8
+ b _080EF610
+_080EF5AA:
+ movs r1, 0
+ ldr r0, _080EF5C8
+ ldr r0, [r0]
+ ldr r3, _080EF5CC
+ adds r2, r0, r3
+ movs r3, 0
+_080EF5B6:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3D
+ bls _080EF5B6
+ b _080EF610
+ .align 2, 0
+_080EF5C8: .4byte gUnknown_083DFEC4
+_080EF5CC: .4byte 0x0000ce52
+_080EF5D0:
+ ldr r0, _080EF5EC
+ ldr r0, [r0]
+ ldr r1, _080EF5F0
+ adds r2, r0, r1
+ ldr r1, _080EF5F4
+ adds r0, r1, 0x2
+ adds r1, 0x6
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+ b _080EF610
+ .align 2, 0
+_080EF5EC: .4byte gUnknown_083DFEC4
+_080EF5F0: .4byte 0x0000ce52
+_080EF5F4: .4byte gUnknown_083E003C
+_080EF5F8:
+ ldr r0, _080EF618
+ ldr r0, [r0]
+ ldr r3, _080EF61C
+ adds r2, r0, r3
+ ldr r1, _080EF620
+ adds r0, r1, 0x6
+ adds r1, 0xE
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+_080EF610:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF618: .4byte gUnknown_083DFEC4
+_080EF61C: .4byte 0x0000ce8e
+_080EF620: .4byte gUnknown_083E003C
+ thumb_func_end sub_80EF58C
+
+ thumb_func_start sub_80EF624
+sub_80EF624: @ 80EF624
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x58]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ lsls r0, r3, 16
+ ldr r1, [sp, 0x10]
+ cmp r1, r3
+ bcs _080EF72E
+ subs r2, 0x1
+ str r2, [sp, 0x20]
+ str r0, [sp, 0x2C]
+_080EF654:
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r7, r0, 8
+ lsls r1, 16
+ lsrs r0, r1, 21
+ movs r2, 0x1F
+ ands r0, r2
+ lsls r6, r0, 8
+ lsrs r1, 26
+ ands r1, r2
+ lsls r5, r1, 8
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp, 0x18]
+ lsrs r1, 26
+ ands r1, r2
+ lsls r1, 8
+ str r1, [sp, 0x1C]
+ ldr r1, [sp, 0x14]
+ subs r0, r1, r7
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r10, r0
+ ldr r2, [sp, 0x18]
+ subs r0, r2, r6
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r9, r0
+ ldr r1, [sp, 0x1C]
+ subs r0, r1, r5
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r8, r0
+ adds r3, r4, 0
+ movs r4, 0
+ ldr r2, [sp]
+ adds r2, 0x2
+ str r2, [sp, 0x30]
+ ldr r0, [sp, 0x4]
+ adds r0, 0x2
+ str r0, [sp, 0x34]
+ adds r1, r3, 0x2
+ str r1, [sp, 0x24]
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ ldr r0, [sp, 0x20]
+ cmp r4, r0
+ bge _080EF700
+ ldr r1, [sp, 0xC]
+ lsls r1, 1
+ mov r12, r1
+_080EF6D6:
+ lsls r0, r7, 8
+ lsrs r2, r0, 16
+ lsls r0, r6, 8
+ lsrs r1, r0, 16
+ lsls r0, r5, 8
+ lsrs r0, 16
+ lsls r0, 10
+ lsls r1, 5
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ add r3, r12
+ add r7, r10
+ add r6, r9
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x20]
+ cmp r4, r2
+ blt _080EF6D6
+_080EF700:
+ ldr r4, [sp, 0x14]
+ lsrs r2, r4, 8
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 2
+ ldr r4, [sp, 0x18]
+ lsrs r1, r4, 3
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ ldr r0, [sp, 0x30]
+ str r0, [sp]
+ ldr r1, [sp, 0x34]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x2C]
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x10]
+ cmp r2, r0
+ bcc _080EF654
+_080EF72E:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF624
+
+ thumb_func_start sub_80EF740
+sub_80EF740: @ 80EF740
+ push {lr}
+ ldr r0, _080EF770
+ ldr r3, [r0]
+ ldr r0, _080EF774
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2]
+ cmp r0, 0
+ beq _080EF762
+ ldr r2, _080EF778
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF762:
+ ldr r0, _080EF77C
+ ldr r2, _080EF778
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF770: .4byte gUnknown_083DFEC4
+_080EF774: .4byte 0x00006da0
+_080EF778: .4byte 0x00006da2
+_080EF77C: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF740
+
+ thumb_func_start sub_80EF780
+sub_80EF780: @ 80EF780
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080EF7B0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080EF7AA
+ ldr r0, _080EF7B4
+ ldr r3, [r0]
+ ldr r0, _080EF7B8
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080EF7BC
+_080EF7AA:
+ bl sub_80EF740
+ b _080EF7C8
+ .align 2, 0
+_080EF7B0: .4byte gTasks
+_080EF7B4: .4byte gUnknown_083DFEC4
+_080EF7B8: .4byte 0x00006da2
+_080EF7BC:
+ strh r1, [r2]
+ ldr r2, _080EF7CC
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r0, _080EF7D0
+ strh r1, [r0]
+_080EF7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF7CC: .4byte 0x00006da0
+_080EF7D0: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF780
+
+ thumb_func_start sub_80EF7D4
+sub_80EF7D4: @ 80EF7D4
+ push {r4,lr}
+ ldr r0, _080EF800
+ ldr r4, [r0]
+ ldr r1, _080EF804
+ adds r0, r4, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _080EF808
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080EF80C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080EF810
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF800: .4byte gUnknown_083DFEC4
+_080EF804: .4byte 0x00006da2
+_080EF808: .4byte 0x00006da0
+_080EF80C: .4byte sub_80EF780
+_080EF810: .4byte 0x00006da4
+ thumb_func_end sub_80EF7D4
+
+ thumb_func_start sub_80EF814
+sub_80EF814: @ 80EF814
+ push {lr}
+ ldr r0, _080EF834
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF830
+ ldr r0, _080EF838
+ ldr r0, [r0]
+ ldr r1, _080EF83C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl DestroyTask
+_080EF830:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF834: .4byte sub_80EF780
+_080EF838: .4byte gUnknown_083DFEC4
+_080EF83C: .4byte 0x00006da4
+ thumb_func_end sub_80EF814
+
+ thumb_func_start sub_80EF840
+sub_80EF840: @ 80EF840
+ push {lr}
+ ldr r0, _080EF868
+ ldr r0, [r0]
+ ldr r1, _080EF86C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF870
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF862
+_080EF858:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF858
+_080EF862:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF868: .4byte gUnknown_083DFEC4
+_080EF86C: .4byte 0x0000d160
+_080EF870: .4byte 0x00006dac
+ thumb_func_end sub_80EF840
+
+ thumb_func_start sub_80EF874
+sub_80EF874: @ 80EF874
+ push {lr}
+ ldr r0, _080EF890
+ ldr r0, [r0]
+ ldr r1, _080EF894
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xB
+ bls _080EF886
+ b _080EF9D8
+_080EF886:
+ lsls r0, 2
+ ldr r1, _080EF898
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF890: .4byte gUnknown_083DFEC4
+_080EF894: .4byte 0x0000d160
+_080EF898: .4byte _080EF89C
+ .align 2, 0
+_080EF89C:
+ .4byte _080EF8CC
+ .4byte _080EF8D2
+ .4byte _080EF8E0
+ .4byte _080EF8EC
+ .4byte _080EF8F6
+ .4byte _080EF8FC
+ .4byte _080EF920
+ .4byte _080EF92C
+ .4byte _080EF940
+ .4byte _080EF954
+ .4byte _080EF960
+ .4byte _080EF972
+_080EF8CC:
+ bl sub_80EEDE8
+ b _080EF9DC
+_080EF8D2:
+ ldr r0, _080EF8DC
+ bl SetUpWindowConfig
+ b _080EF9DC
+ .align 2, 0
+_080EF8DC: .4byte gWindowConfig_81E7224
+_080EF8E0:
+ ldr r0, _080EF8E8
+ bl MultistepInitMenuWindowBegin
+ b _080EF9DC
+ .align 2, 0
+_080EF8E8: .4byte gWindowConfig_81E7224
+_080EF8EC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _080EF9DC
+ b _080EF9EA
+_080EF8F6:
+ bl MenuZeroFillScreen
+ b _080EF9DC
+_080EF8FC:
+ ldr r0, _080EF914
+ ldr r0, [r0]
+ ldr r2, _080EF918
+ adds r0, r2
+ ldr r1, _080EF91C
+ ldrb r1, [r1, 0x15]
+ lsrs r1, 3
+ movs r2, 0x1
+ ands r1, r2
+ bl sub_80FA904
+ b _080EF9DC
+ .align 2, 0
+_080EF914: .4byte gUnknown_083DFEC4
+_080EF918: .4byte 0x00006e18
+_080EF91C: .4byte gSaveBlock2
+_080EF920:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF92C:
+ ldr r0, _080EF938
+ ldr r1, _080EF93C
+ bl LZ77UnCompVram
+ b _080EF9DC
+ .align 2, 0
+_080EF938: .4byte gPokenavHoennMapSquares_Gfx
+_080EF93C: .4byte 0x06005000
+_080EF940:
+ ldr r0, _080EF950
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EFC3C
+ b _080EF9DC
+ .align 2, 0
+_080EF950: .4byte gPokenavHoennMapSquares_Pal
+_080EF954:
+ bl sub_80EFC64
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF960:
+ movs r0, 0xD
+ movs r1, 0x3
+ movs r2, 0x1D
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ bl sub_80EF9F8
+ b _080EF9DC
+_080EF972:
+ ldr r0, _080EF990
+ ldr r1, [r0]
+ ldr r2, _080EF994
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF9A0
+ ldr r2, _080EF998
+ adds r0, r1, r2
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080EF99C
+ strh r1, [r0]
+ b _080EF9B0
+ .align 2, 0
+_080EF990: .4byte gUnknown_083DFEC4
+_080EF994: .4byte 0x00006e90
+_080EF998: .4byte 0x00007698
+_080EF99C: .4byte REG_BG0VOFS
+_080EF9A0:
+ ldr r0, _080EF9C8
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r0, _080EF9CC
+ strh r2, [r0]
+_080EF9B0:
+ ldr r2, _080EF9D0
+ ldrh r0, [r2]
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080EF9D4
+ movs r0, 0
+ strh r0, [r1]
+ b _080EF9DC
+ .align 2, 0
+_080EF9C8: .4byte 0x00007698
+_080EF9CC: .4byte REG_BG0VOFS
+_080EF9D0: .4byte REG_BG0CNT
+_080EF9D4: .4byte REG_BLDCNT
+_080EF9D8:
+ movs r0, 0
+ b _080EF9EC
+_080EF9DC:
+ ldr r0, _080EF9F0
+ ldr r1, [r0]
+ ldr r2, _080EF9F4
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF9EA:
+ movs r0, 0x1
+_080EF9EC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF9F0: .4byte gUnknown_083DFEC4
+_080EF9F4: .4byte 0x0000d160
+ thumb_func_end sub_80EF874
+
+ thumb_func_start sub_80EF9F8
+sub_80EF9F8: @ 80EF9F8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ movs r5, 0x4
+ ldr r0, _080EFA18
+ ldr r0, [r0]
+ ldr r1, _080EFA1C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080EFA0E
+ b _080EFB6A
+_080EFA0E:
+ lsls r0, 2
+ ldr r1, _080EFA20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFA18: .4byte gUnknown_083DFEC4
+_080EFA1C: .4byte 0x00006e2e
+_080EFA20: .4byte _080EFA24
+ .align 2, 0
+_080EFA24:
+ .4byte _080EFB6A
+ .4byte _080EFA38
+ .4byte _080EFAC0
+ .4byte _080EFB4C
+ .4byte _080EFA38
+_080EFA38:
+ ldr r0, _080EFA64
+ ldr r0, [r0]
+ ldr r2, _080EFA68
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080EFA6C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EFA70
+ bl sub_80F1A80
+ b _080EFB82
+ .align 2, 0
+_080EFA64: .4byte gUnknown_083DFEC4
+_080EFA68: .4byte 0x00006e18
+_080EFA6C: .4byte gLinkOpen
+_080EFA70:
+ movs r4, 0
+ b _080EFA92
+_080EFA74:
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EFA92:
+ cmp r4, 0x3
+ bhi _080EFB6A
+ ldr r0, _080EFAB8
+ ldr r1, [r0]
+ ldr r2, _080EFABC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_811A8CC
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EFA74
+ b _080EFB6A
+ .align 2, 0
+_080EFAB8: .4byte gUnknown_083DFEC4
+_080EFABC: .4byte 0x00006e2c
+_080EFAC0:
+ ldr r0, _080EFB38
+ ldr r4, [r0]
+ ldr r1, _080EFB3C
+ adds r0, r4, r1
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _080EFB40
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ adds r2, 0x3
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _080EFB44
+ adds r4, r1
+ adds r6, r4, r0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _080EFB6A
+ lsls r4, r5, 24
+ lsrs r4, 24
+ movs r0, 0xE
+ adds r1, r4, 0
+ movs r2, 0xF
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x1A
+ adds r1, r4, 0
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080EFB48
+ ldr r3, [r6]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x10
+ movs r2, 0x6
+ bl sub_8095C8C
+ adds r0, r5, 0
+ adds r0, 0xB
+ b _080EFB66
+ .align 2, 0
+_080EFB38: .4byte gUnknown_083DFEC4
+_080EFB3C: .4byte 0x00006e18
+_080EFB40: .4byte 0x00006e2c
+_080EFB44: .4byte 0x0000cdcc
+_080EFB48: .4byte 0x0600f800
+_080EFB4C:
+ ldr r0, _080EFB98
+ ldr r0, [r0]
+ ldr r2, _080EFB9C
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+_080EFB66:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EFB6A:
+ movs r0, 0
+ cmp r0, 0
+ bne _080EFB82
+ cmp r5, 0xF
+ bhi _080EFB82
+ lsls r1, r5, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+_080EFB82:
+ ldr r0, _080EFB98
+ ldr r0, [r0]
+ ldr r1, _080EFBA0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080EFBA4
+ bl sub_80EFD74
+ b _080EFBA8
+ .align 2, 0
+_080EFB98: .4byte gUnknown_083DFEC4
+_080EFB9C: .4byte 0x00006e18
+_080EFBA0: .4byte 0x00006e2e
+_080EFBA4:
+ bl sub_80EFDA0
+_080EFBA8:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF9F8
+
+ thumb_func_start sub_80EFBB0
+sub_80EFBB0: @ 80EFBB0
+ push {lr}
+ ldr r0, _080EFBC8
+ ldr r0, [r0]
+ ldr r1, _080EFBCC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFBD0
+ movs r0, 0x8
+ bl sub_80EEFBC
+ b _080EFBD6
+ .align 2, 0
+_080EFBC8: .4byte gUnknown_083DFEC4
+_080EFBCC: .4byte 0x00006e90
+_080EFBD0:
+ movs r0, 0x7
+ bl sub_80EEFBC
+_080EFBD6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFBB0
+
+ thumb_func_start sub_80EFBDC
+sub_80EFBDC: @ 80EFBDC
+ push {r4,lr}
+ lsls r0, 24
+ movs r4, 0x1
+ ldr r2, _080EFBFC
+ ldr r1, [r2]
+ ldr r3, _080EFC00
+ adds r1, r3
+ ldrh r3, [r1]
+ cmp r0, 0
+ beq _080EFC08
+ cmp r3, 0xA8
+ bls _080EFC04
+ adds r0, r3, 0
+ subs r0, 0x8
+ b _080EFC10
+ .align 2, 0
+_080EFBFC: .4byte gUnknown_083DFEC4
+_080EFC00: .4byte 0x00007698
+_080EFC04:
+ movs r3, 0xA0
+ b _080EFC1A
+_080EFC08:
+ cmp r3, 0xF7
+ bhi _080EFC16
+ adds r0, r3, 0
+ adds r0, 0x8
+_080EFC10:
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080EFC1C
+_080EFC16:
+ movs r3, 0x80
+ lsls r3, 1
+_080EFC1A:
+ movs r4, 0
+_080EFC1C:
+ ldr r0, [r2]
+ ldr r1, _080EFC34
+ adds r0, r1
+ strh r3, [r0]
+ ldr r1, _080EFC38
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EFC34: .4byte 0x00007698
+_080EFC38: .4byte REG_BG0VOFS
+ thumb_func_end sub_80EFBDC
+
+ thumb_func_start sub_80EFC3C
+sub_80EFC3C: @ 80EFC3C
+ push {lr}
+ ldr r0, _080EFC58
+ ldr r0, [r0]
+ ldr r2, _080EFC5C
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080EFC60
+ adds r0, r1
+ strb r2, [r0]
+ bl sub_80EFD3C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFC58: .4byte gUnknown_083DFEC4
+_080EFC5C: .4byte 0x0000bc9a
+_080EFC60: .4byte 0x0000bc9b
+ thumb_func_end sub_80EFC3C
+
+ thumb_func_start sub_80EFC64
+sub_80EFC64: @ 80EFC64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, _080EFCD0
+ ldr r2, [r4]
+ ldr r0, _080EFCD4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r1, _080EFCD8
+ adds r0, r2, r1
+ ldrb r7, [r0]
+ movs r2, 0
+ ldr r0, _080EFCDC
+ mov r9, r0
+ adds r3, r4, 0
+_080EFC8E:
+ lsls r0, r2, 2
+ mov r4, r8
+ lsls r1, r4, 3
+ adds r6, r0, r1
+ mov r1, r9
+ adds r0, r6, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080EFCE8
+ movs r0, 0xC8
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r4, _080EFCE0
+ adds r5, r4
+ ldr r4, [r3]
+ adds r5, r4, r5
+ adds r0, r1, 0
+ adds r1, r5, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl LZ77UnCompVram
+ ldr r0, _080EFCE4
+ adds r4, r0
+ adds r4, r6
+ str r5, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ b _080EFCF2
+ .align 2, 0
+_080EFCD0: .4byte gUnknown_083DFEC4
+_080EFCD4: .4byte 0x0000bc9a
+_080EFCD8: .4byte 0x0000bc9b
+_080EFCDC: .4byte gPokenavCityMaps
+_080EFCE0: .4byte 0x0000bc9c
+_080EFCE4: .4byte 0x0000cdcc
+_080EFCE8:
+ ldr r0, [r3]
+ ldr r4, _080EFD1C
+ adds r0, r4
+ adds r0, r6
+ str r1, [r0]
+_080EFCF2:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080EFC8E
+ ldr r0, _080EFD20
+ ldr r2, [r0]
+ ldr r0, _080EFD24
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldr r1, _080EFD28
+ adds r0, r2, r1
+ strb r7, [r0]
+ movs r0, 0x1
+ b _080EFD2E
+ .align 2, 0
+_080EFD1C: .4byte 0x0000cdcc
+_080EFD20: .4byte gUnknown_083DFEC4
+_080EFD24: .4byte 0x0000bc9a
+_080EFD28: .4byte 0x0000bc9b
+_080EFD2C:
+ movs r0, 0
+_080EFD2E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EFC64
+
+ thumb_func_start sub_80EFD3C
+sub_80EFD3C: @ 80EFD3C
+ ldr r0, _080EFD60
+ ldr r1, [r0]
+ ldr r2, _080EFD64
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, _080EFD68
+ adds r3, r1, r0
+ movs r0, 0x2F
+ strb r0, [r3]
+ ldr r3, _080EFD6C
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EFD70
+ adds r1, r0
+ strh r2, [r1]
+ bx lr
+ .align 2, 0
+_080EFD60: .4byte gUnknown_083DFEC4
+_080EFD64: .4byte 0x0000769e
+_080EFD68: .4byte 0x0000769c
+_080EFD6C: .4byte 0x0000769d
+_080EFD70: .4byte 0x0000769a
+ thumb_func_end sub_80EFD3C
+
+ thumb_func_start sub_80EFD74
+sub_80EFD74: @ 80EFD74
+ push {lr}
+ ldr r0, _080EFD94
+ ldr r2, [r0]
+ ldr r0, _080EFD98
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EFD9C
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080EFD90
+ movs r0, 0x2
+ strb r0, [r2]
+_080EFD90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFD94: .4byte gUnknown_083DFEC4
+_080EFD98: .4byte 0x0000769e
+_080EFD9C: .4byte 0x0000769d
+ thumb_func_end sub_80EFD74
+
+ thumb_func_start sub_80EFDA0
+sub_80EFDA0: @ 80EFDA0
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFDD4
+ ldr r3, _080EFDD8
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xF
+ str r2, [sp, 0x8]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ ldr r0, _080EFDDC
+ ldr r0, [r0]
+ ldr r1, _080EFDE0
+ adds r0, r1
+ strb r4, [r0]
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFDD4: .4byte 0x0600f800
+_080EFDD8: .4byte gUnknown_08E9AC2C
+_080EFDDC: .4byte gUnknown_083DFEC4
+_080EFDE0: .4byte 0x0000769e
+ thumb_func_end sub_80EFDA0
+
+ thumb_func_start sub_80EFDE4
+sub_80EFDE4: @ 80EFDE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EFE68
+ ldr r1, [r0]
+ ldr r2, _080EFE6C
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x3C
+ subs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080EFE06
+ movs r4, 0xF
+_080EFE06:
+ ldr r3, _080EFE70
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EFE58
+ ldr r0, _080EFE74
+ mov r8, r0
+ ldr r3, _080EFE78
+ mov r9, r3
+ str r2, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r7, 0x1
+ str r7, [sp, 0xC]
+ movs r6, 0x3C
+ str r6, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ cmp r4, 0xE
+ bhi _080EFE58
+ adds r1, r4, 0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0xF
+ subs r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+ str r6, [sp, 0x10]
+ mov r0, r8
+ movs r2, 0x10
+ mov r3, r9
+ bl sub_8095C8C
+_080EFE58:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFE68: .4byte gUnknown_083DFEC4
+_080EFE6C: .4byte 0x0000769c
+_080EFE70: .4byte 0x0000769e
+_080EFE74: .4byte 0x0600f800
+_080EFE78: .4byte gUnknown_08E9ABB4
+ thumb_func_end sub_80EFDE4
+
+ thumb_func_start sub_80EFE7C
+sub_80EFE7C: @ 80EFE7C
+ push {r4,lr}
+ ldr r0, _080EFE98
+ ldr r2, [r0]
+ ldr r0, _080EFE9C
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080EFF08
+ cmp r1, 0x1
+ bgt _080EFEA0
+ cmp r1, 0
+ beq _080EFEA6
+ b _080EFF2E
+ .align 2, 0
+_080EFE98: .4byte gUnknown_083DFEC4
+_080EFE9C: .4byte 0x0000769d
+_080EFEA0:
+ cmp r1, 0x2
+ beq _080EFF24
+ b _080EFF2E
+_080EFEA6:
+ ldr r0, _080EFED4
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _080EFEBA
+ strb r1, [r4]
+_080EFEBA:
+ ldr r1, _080EFED8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ bl sub_80EFDE4
+ ldrb r0, [r4]
+ cmp r0, 0xF
+ beq _080EFEE4
+ cmp r0, 0xF
+ bgt _080EFEDC
+ cmp r0, 0
+ beq _080EFEE4
+ b _080EFF2E
+ .align 2, 0
+_080EFED4: .4byte 0x0000769c
+_080EFED8: .4byte 0x0000769e
+_080EFEDC:
+ cmp r0, 0x1E
+ beq _080EFEE4
+ cmp r0, 0x2D
+ bne _080EFF2E
+_080EFEE4:
+ ldr r0, _080EFEFC
+ ldr r1, [r0]
+ ldr r0, _080EFF00
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, _080EFF04
+ adds r1, r0
+ strh r3, [r1]
+ b _080EFF2E
+ .align 2, 0
+_080EFEFC: .4byte gUnknown_083DFEC4
+_080EFF00: .4byte 0x0000769d
+_080EFF04: .4byte 0x0000769a
+_080EFF08:
+ ldr r0, _080EFF20
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x78
+ bls _080EFF2E
+ movs r0, 0
+ strh r0, [r1]
+ b _080EFF2C
+ .align 2, 0
+_080EFF20: .4byte 0x0000769a
+_080EFF24:
+ movs r0, 0x1
+ bl sub_80EFDE4
+ movs r0, 0x1
+_080EFF2C:
+ strb r0, [r4]
+_080EFF2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFE7C
+
+ thumb_func_start sub_80EFF34
+sub_80EFF34: @ 80EFF34
+ push {lr}
+ ldr r0, _080EFF5C
+ ldr r0, [r0]
+ ldr r1, _080EFF60
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EFF64
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFF56
+_080EFF4C:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EFF4C
+_080EFF56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFF5C: .4byte gUnknown_083DFEC4
+_080EFF60: .4byte 0x0000d160
+_080EFF64: .4byte 0x00006dac
+ thumb_func_end sub_80EFF34
+
+ thumb_func_start sub_80EFF68
+sub_80EFF68: @ 80EFF68
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFF88
+ ldr r0, [r0]
+ ldr r1, _080EFF8C
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EFF7C
+ b _080F0150
+_080EFF7C:
+ lsls r0, 2
+ ldr r1, _080EFF90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFF88: .4byte gUnknown_083DFEC4
+_080EFF8C: .4byte 0x0000d160
+_080EFF90: .4byte _080EFF94
+ .align 2, 0
+_080EFF94:
+ .4byte _080EFFCC
+ .4byte _080EFFE8
+ .4byte _080EFFF4
+ .4byte _080F0000
+ .4byte _080F000C
+ .4byte _080F0012
+ .4byte _080F0018
+ .4byte _080F0028
+ .4byte _080F003C
+ .4byte _080F005C
+ .4byte _080F0098
+ .4byte _080F00AC
+ .4byte _080F00F8
+ .4byte _080F0118
+_080EFFCC:
+ bl sub_80EEDE8
+ ldr r0, _080EFFE0
+ ldr r0, [r0]
+ ldr r2, _080EFFE4
+ adds r0, r2
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F0154
+ .align 2, 0
+_080EFFE0: .4byte gUnknown_083DFEC4
+_080EFFE4: .4byte 0x0000d162
+_080EFFE8:
+ ldr r0, _080EFFF0
+ bl SetUpWindowConfig
+ b _080F0154
+ .align 2, 0
+_080EFFF0: .4byte gWindowConfig_81E7080
+_080EFFF4:
+ ldr r0, _080EFFFC
+ bl MultistepInitMenuWindowBegin
+ b _080F0154
+ .align 2, 0
+_080EFFFC: .4byte gWindowConfig_81E7080
+_080F0000:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F000A
+ b _080F0154
+_080F000A:
+ b _080F0162
+_080F000C:
+ bl MenuZeroFillScreen
+ b _080F0154
+_080F0012:
+ bl sub_80F1614
+ b _080F0154
+_080F0018:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0026
+ b _080F0154
+_080F0026:
+ b _080F0162
+_080F0028:
+ ldr r0, _080F0034
+ ldr r1, _080F0038
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F0034: .4byte gPokenavConditionView_Gfx
+_080F0038: .4byte 0x06005000
+_080F003C:
+ ldr r0, _080F0050
+ ldr r1, _080F0054
+ bl LZ77UnCompVram
+ ldr r0, _080F0058
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F0154
+ .align 2, 0
+_080F0050: .4byte gUnknown_08E9AC4C
+_080F0054: .4byte 0x0600f000
+_080F0058: .4byte gPokenavConditionMenu2_Pal
+_080F005C:
+ ldr r0, _080F0088
+ ldr r0, [r0]
+ ldr r1, _080F008C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0154
+ ldr r0, _080F0090
+ ldr r3, _080F0094
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0154
+ .align 2, 0
+_080F0088: .4byte gUnknown_083DFEC4
+_080F008C: .4byte 0x000076aa
+_080F0090: .4byte 0x0600f000
+_080F0094: .4byte gUnknown_083E01AC
+_080F0098:
+ ldr r0, _080F00A4
+ ldr r1, _080F00A8
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F00A4: .4byte gUnknown_08E9FEB4
+_080F00A8: .4byte 0x0600b800
+_080F00AC:
+ ldr r0, _080F00EC
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F00F0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F00F4
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F0154
+ .align 2, 0
+_080F00EC: .4byte gUnknown_083E0254
+_080F00F0: .4byte gUnknownPalette_81E6692
+_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F00F8:
+ ldr r0, _080F0110
+ ldr r0, [r0]
+ ldr r2, _080F0114
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F0154
+ .align 2, 0
+_080F0110: .4byte gUnknown_083DFEC4
+_080F0114: .4byte 0x00008fe9
+_080F0118:
+ ldr r1, _080F013C
+ ldr r2, _080F0140
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F0144
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F0148
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F014C
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F0154
+ .align 2, 0
+_080F013C: .4byte REG_BG3CNT
+_080F0140: .4byte 0x00001e03
+_080F0144: .4byte 0x00001702
+_080F0148: .4byte 0x00000844
+_080F014C: .4byte 0x0000040b
+_080F0150:
+ movs r0, 0
+ b _080F0164
+_080F0154:
+ ldr r0, _080F016C
+ ldr r1, [r0]
+ ldr r0, _080F0170
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0162:
+ movs r0, 0x1
+_080F0164:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F016C: .4byte gUnknown_083DFEC4
+_080F0170: .4byte 0x0000d160
+ thumb_func_end sub_80EFF68
+
+ thumb_func_start sub_80F0174
+sub_80F0174: @ 80F0174
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F018E
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ b _080F019A
+_080F018E:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F01A0
+ ands r0, r1
+ strh r0, [r2]
+_080F019A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F01A0: .4byte 0x0000fbff
+ thumb_func_end sub_80F0174
+
+ thumb_func_start sub_80F01A4
+sub_80F01A4: @ 80F01A4
+ ldr r1, _080F01CC
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _080F01D0
+ ldr r2, _080F01D4
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080F01D8
+ ldr r2, _080F01DC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F01CC: .4byte REG_WIN0H
+_080F01D0: .4byte REG_WIN0V
+_080F01D4: .4byte 0x00003879
+_080F01D8: .4byte REG_WININ
+_080F01DC: .4byte 0x00003f3f
+ thumb_func_end sub_80F01A4
+
+ thumb_func_start sub_80F01E0
+sub_80F01E0: @ 80F01E0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080F0248
+ lsls r0, r4, 6
+ ldr r2, _080F024C
+ adds r0, r2
+ ldr r5, [r1]
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r1, _080F0250
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0242
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _080F0254
+ adds r0, r2
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, _080F0258
+ adds r4, r5, r0
+ ldr r1, _080F025C
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r0, r5, r0
+ ldr r1, _080F0260
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 18
+ lsrs r1, 23
+ adds r0, r4, 0
+ bl sub_80F443C
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F0242:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0248: .4byte gUnknown_083DFEC4
+_080F024C: .4byte 0x00008829
+_080F0250: .4byte 0x000076aa
+_080F0254: .4byte 0x000088e9
+_080F0258: .4byte 0x00008788
+_080F025C: .4byte 0x000087dc
+_080F0260: .4byte 0x0000893e
+ thumb_func_end sub_80F01E0
+
+ thumb_func_start sub_80F0264
+sub_80F0264: @ 80F0264
+ push {lr}
+ ldr r1, _080F0290
+ ldr r2, [r1]
+ ldr r1, _080F0294
+ adds r3, r2, r1
+ movs r1, 0
+ strh r1, [r3]
+ ldr r3, _080F0298
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _080F029C
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F028C
+_080F0282:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0282
+_080F028C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0290: .4byte gUnknown_083DFEC4
+_080F0294: .4byte 0x00000306
+_080F0298: .4byte 0x000087ca
+_080F029C: .4byte 0x00006dac
+ thumb_func_end sub_80F0264
+
+ thumb_func_start sub_80F02A0
+sub_80F02A0: @ 80F02A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ ldr r1, _080F02C4
+ ldr r0, [r1]
+ ldr r2, _080F02C8
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F02BA
+ b _080F05FA
+_080F02BA:
+ lsls r0, 2
+ ldr r1, _080F02CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F02C4: .4byte gUnknown_083DFEC4
+_080F02C8: .4byte 0x00000306
+_080F02CC: .4byte _080F02D0
+ .align 2, 0
+_080F02D0:
+ .4byte _080F030C
+ .4byte _080F0344
+ .4byte _080F0350
+ .4byte _080F035C
+ .4byte _080F0368
+ .4byte _080F036E
+ .4byte _080F0380
+ .4byte _080F0394
+ .4byte _080F04BC
+ .4byte _080F053C
+ .4byte _080F0550
+ .4byte _080F0574
+ .4byte _080F057A
+ .4byte _080F0586
+ .4byte _080F05BC
+_080F030C:
+ bl sub_80EEDE8
+ ldr r0, _080F0334
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _080F0338
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0322
+ movs r2, 0x1
+_080F0322:
+ ldr r3, _080F033C
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F0340
+ adds r1, r0
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080F0618
+ .align 2, 0
+_080F0334: .4byte gUnknown_083DFEC4
+_080F0338: .4byte 0x000087ca
+_080F033C: .4byte 0x000087c8
+_080F0340: .4byte 0x0000d162
+_080F0344:
+ ldr r0, _080F034C
+ bl SetUpWindowConfig
+ b _080F0618
+ .align 2, 0
+_080F034C: .4byte gWindowConfig_81E70D4
+_080F0350:
+ ldr r0, _080F0358
+ bl MultistepInitMenuWindowBegin
+ b _080F0618
+ .align 2, 0
+_080F0358: .4byte gWindowConfig_81E70D4
+_080F035C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F0366
+ b _080F0618
+_080F0366:
+ b _080F0626
+_080F0368:
+ bl MenuZeroFillScreen
+ b _080F0618
+_080F036E:
+ ldr r0, _080F0378
+ ldr r1, _080F037C
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0378: .4byte gUnknown_08E9FC64
+_080F037C: .4byte 0x0600e800
+_080F0380:
+ ldr r0, _080F038C
+ ldr r1, _080F0390
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F038C: .4byte gPokenavConditionSearch2_Gfx
+_080F0390: .4byte 0x06008000
+_080F0394:
+ ldr r6, _080F03FC
+ adds r0, r6, 0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0400
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0404
+ ldr r0, [r0]
+ ldr r1, _080F0408
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F0418
+ ldr r4, _080F040C
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F0410
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0414
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F03FC: .4byte gUnknown_083E02B4
+_080F0400: .4byte gUnknown_083E0334
+_080F0404: .4byte gUnknown_083DFEC4
+_080F0408: .4byte 0x000087ca
+_080F040C: .4byte gPokenavConditionSearch2_Pal
+_080F0410: .4byte gPlttBufferUnfaded
+_080F0414: .4byte gUnknownPalette_81E6692
+_080F0418:
+ cmp r0, 0x1
+ bne _080F0464
+ ldr r4, _080F0458
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F045C
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0460
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F0458: .4byte gUnknown_083E0274
+_080F045C: .4byte gPlttBufferUnfaded
+_080F0460: .4byte gUnknownPalette_81E6692
+_080F0464:
+ ldr r4, _080F04B0
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F04B4
+ adds r5, r4, 0
+ adds r5, 0xA
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F04B8
+ movs r1, 0x50
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x5F
+_080F04A8:
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F0618
+ .align 2, 0
+_080F04B0: .4byte gUnknown_08E9F9E8
+_080F04B4: .4byte gPlttBufferUnfaded
+_080F04B8: .4byte gUnknown_083E0314
+_080F04BC:
+ ldr r0, _080F04E8
+ ldr r0, [r0]
+ ldr r2, _080F04EC
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F04F8
+ ldr r0, _080F04F0
+ ldr r3, _080F04F4
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F04E8: .4byte gUnknown_083DFEC4
+_080F04EC: .4byte 0x000087ca
+_080F04F0: .4byte 0x0600e800
+_080F04F4: .4byte gUnknown_08E9FD1C
+_080F04F8:
+ ldr r3, _080F0530
+ mov r8, r3
+ ldr r3, _080F0534
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r5, 0xC
+ str r5, [sp, 0x8]
+ movs r6, 0xA
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_8095C8C
+ ldr r3, _080F0538
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x8
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F0530: .4byte 0x0600e800
+_080F0534: .4byte gUnknown_08E9FE54
+_080F0538: .4byte gUnknown_08E9FD64
+_080F053C:
+ ldr r0, _080F0548
+ ldr r1, _080F054C
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0548: .4byte gUnknown_083E0354
+_080F054C: .4byte 0x06005000
+_080F0550:
+ ldr r2, _080F0568
+ add r1, sp, 0x14
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F056C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F0570
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F0618
+ .align 2, 0
+_080F0568: .4byte 0x0600f800
+_080F056C: .4byte 0x040000d4
+_080F0570: .4byte 0x81000400
+_080F0574:
+ bl sub_80F0900
+ b _080F0618
+_080F057A:
+ bl sub_80F0944
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F0618
+ b _080F0626
+_080F0586:
+ ldr r0, _080F059C
+ ldr r4, [r0]
+ ldr r1, _080F05A0
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F05A4
+ bl ShowMapNamePopUpWindow
+ b _080F0618
+ .align 2, 0
+_080F059C: .4byte gUnknown_083DFEC4
+_080F05A0: .4byte 0x000087ca
+_080F05A4:
+ movs r0, 0
+ bl sub_80F081C
+ ldr r2, _080F05B8
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080F0618
+ .align 2, 0
+_080F05B8: .4byte 0x0000876e
+_080F05BC:
+ ldr r1, _080F0600
+ ldr r3, _080F0604
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0xF9
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x6
+ adds r3, 0xFE
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x16
+ movs r0, 0xF8
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F0608
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xF8
+ strh r0, [r2]
+ ldr r2, _080F060C
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r0, _080F0610
+ strh r3, [r0]
+ ldr r3, _080F0614
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F05FA:
+ movs r0, 0
+ b _080F0628
+ .align 2, 0
+_080F0600: .4byte REG_BG2CNT
+_080F0604: .4byte 0x00001d0a
+_080F0608: .4byte 0x00008776
+_080F060C: .4byte 0x00008778
+_080F0610: .4byte REG_BLDCNT
+_080F0614: .4byte 0x0000d160
+_080F0618:
+ ldr r0, _080F0634
+ ldr r1, [r0]
+ ldr r0, _080F0638
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0626:
+ movs r0, 0x1
+_080F0628:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0634: .4byte gUnknown_083DFEC4
+_080F0638: .4byte 0x00000306
+ thumb_func_end sub_80F02A0
+
+ thumb_func_start sub_80F063C
+sub_80F063C: @ 80F063C
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r3, _080F0664
+ ldr r2, [r3]
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ lsls r1, r4, 4
+ ldr r6, _080F0668
+ adds r0, r2, r6
+ strh r1, [r0]
+ adds r7, r3, 0
+ cmp r4, 0x1
+ beq _080F065E
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _080F066C
+_080F065E:
+ movs r1, 0x4
+ b _080F066E
+ .align 2, 0
+_080F0664: .4byte gUnknown_083DFEC4
+_080F0668: .4byte 0x0000877c
+_080F066C:
+ movs r1, 0x8
+_080F066E:
+ ldr r3, _080F06C0
+ adds r0, r2, r3
+ strh r1, [r0]
+ lsls r0, r5, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bge _080F06CC
+ ldr r4, [r7]
+ ldr r6, _080F06C0
+ adds r1, r4, r6
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+ subs r6, 0x2
+ adds r1, r4, r6
+ lsls r0, r3, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080F06C4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080F06B8
+ ldr r2, _080F06C8
+ adds r1, r4, r2
+ adds r0, 0x1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06B8:
+ negs r0, r3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080F06E6
+ .align 2, 0
+_080F06C0: .4byte 0x0000877a
+_080F06C4: .4byte 0x00008770
+_080F06C8: .4byte 0x00008774
+_080F06CC:
+ ldr r1, [r7]
+ ldr r3, _080F070C
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F0710
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06E6:
+ ldr r0, [r7]
+ ldr r1, _080F0714
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ ble _080F06FA
+ movs r2, 0
+_080F06FA:
+ movs r1, 0x1F
+ adds r0, r2, 0
+ ands r1, r6
+ adds r2, r5, 0
+ bl sub_80F0954
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F070C: .4byte 0x00008778
+_080F0710: .4byte 0x00008772
+_080F0714: .4byte 0x00008774
+ thumb_func_end sub_80F063C
+
+ thumb_func_start sub_80F0718
+sub_80F0718: @ 80F0718
+ push {r4,r5,lr}
+ bl sub_80F098C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0790
+ ldr r0, _080F073C
+ ldr r4, [r0]
+ ldr r0, _080F0740
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0744
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F073C: .4byte gUnknown_083DFEC4
+_080F0740: .4byte 0x0000877c
+_080F0744:
+ ldr r0, _080F0780
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ subs r0, r2, r0
+ strh r0, [r3]
+ ldr r0, _080F0784
+ adds r2, r4, r0
+ ldrh r0, [r1]
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r5, 0xFF
+ ands r0, r5
+ strh r0, [r2]
+ ldr r1, _080F0788
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0790
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ adds r0, 0x8
+ ands r0, r5
+ asrs r1, r0, 3
+ ldr r2, _080F078C
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F0780: .4byte 0x0000877a
+_080F0784: .4byte 0x00008776
+_080F0788: .4byte REG_BG3VOFS
+_080F078C: .4byte 0x00008778
+_080F0790:
+ movs r0, 0x1
+_080F0792:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0718
+
+ thumb_func_start ShowMapNamePopUpWindow
+ShowMapNamePopUpWindow: @ 80F0798
+ push {lr}
+ ldr r0, _080F07B0
+ ldr r2, [r0]
+ ldr r1, _080F07B4
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F07B8
+ cmp r0, 0x1
+ beq _080F07E0
+ b _080F080A
+ .align 2, 0
+_080F07B0: .4byte gUnknown_083DFEC4
+_080F07B4: .4byte 0x000087ca
+_080F07B8:
+ ldr r3, _080F07D8
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r1, r2, r1
+ ldr r2, _080F07DC
+ adds r1, r2
+ ldrh r1, [r1]
+ lsls r1, 18
+ lsrs r1, 23
+ bl sub_80F443C
+ b _080F07F4
+ .align 2, 0
+_080F07D8: .4byte 0x00008788
+_080F07DC: .4byte 0x0000893e
+_080F07E0:
+ ldr r3, _080F0810
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F445C
+_080F07F4:
+ ldr r0, _080F0814
+ bl BasicInitMenuWindow
+ ldr r0, _080F0818
+ ldr r0, [r0]
+ ldr r1, _080F0810
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F080A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0810: .4byte 0x00008788
+_080F0814: .4byte gWindowConfig_81E710C
+_080F0818: .4byte gUnknown_083DFEC4
+ thumb_func_end ShowMapNamePopUpWindow
+
+ thumb_func_start sub_80F081C
+sub_80F081C: @ 80F081C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F0838
+ bl BasicInitMenuWindow
+ cmp r5, 0x4
+ bhi _080F08C6
+ lsls r0, r5, 2
+ ldr r1, _080F083C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0838: .4byte gWindowConfig_81E710C
+_080F083C: .4byte _080F0840
+ .align 2, 0
+_080F0840:
+ .4byte _080F0854
+ .4byte _080F0854
+ .4byte _080F0862
+ .4byte _080F088C
+ .4byte _080F089A
+_080F0854:
+ ldr r0, _080F08CC
+ movs r1, 0xA
+ movs r2, 0x9
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F0862:
+ ldr r0, _080F08D0
+ ldr r0, [r0]
+ ldr r1, _080F08D4
+ adds r4, r0, r1
+ ldr r2, _080F08D8
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xB
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F088C:
+ ldr r0, _080F08DC
+ movs r1, 0xA
+ movs r2, 0xD
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F089A:
+ movs r0, 0x9
+ bl sub_8053108
+ adds r1, r0, 0
+ ldr r0, _080F08E0
+ cmp r1, r0
+ bls _080F08AA
+ adds r1, r0, 0
+_080F08AA:
+ ldr r0, _080F08D0
+ ldr r4, [r0]
+ ldr r0, _080F08D4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xF
+ bl sub_8072B4C
+_080F08C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08CC: .4byte gOtherText_NumberRegistered
+_080F08D0: .4byte gUnknown_083DFEC4
+_080F08D4: .4byte 0x00008788
+_080F08D8: .4byte 0x00008774
+_080F08DC: .4byte gOtherText_NumberBattles
+_080F08E0: .4byte 0x0001869f
+ thumb_func_end sub_80F081C
+
+ thumb_func_start sub_80F08E4
+sub_80F08E4: @ 80F08E4
+ push {lr}
+ ldr r0, _080F08FC
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0xB
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08FC: .4byte gWindowConfig_81E710C
+ thumb_func_end sub_80F08E4
+
+ thumb_func_start sub_80F0900
+sub_80F0900: @ 80F0900
+ push {r4,r5,lr}
+ ldr r0, _080F093C
+ ldr r0, [r0]
+ ldr r2, _080F0940
+ adds r1, r0, r2
+ subs r2, 0x2
+ adds r5, r0, r2
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r4, r0, 16
+ asrs r0, r4, 16
+ cmp r0, 0x7
+ bgt _080F092A
+ movs r0, 0xC
+ movs r1, 0x1
+ movs r2, 0x1F
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080F092A:
+ ldrh r0, [r5]
+ lsrs r2, r4, 16
+ movs r1, 0
+ bl sub_80F0954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F093C: .4byte gUnknown_083DFEC4
+_080F0940: .4byte 0x00008772
+ thumb_func_end sub_80F0900
+
+ thumb_func_start sub_80F0944
+sub_80F0944: @ 80F0944
+ push {lr}
+ bl sub_80F098C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0944
+
+ thumb_func_start sub_80F0954
+sub_80F0954: @ 80F0954
+ push {r4,r5,lr}
+ ldr r3, _080F097C
+ ldr r3, [r3]
+ ldr r5, _080F0980
+ adds r4, r3, r5
+ movs r5, 0
+ strh r0, [r4]
+ ldr r4, _080F0984
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, _080F0988
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x6
+ adds r3, r4
+ strh r5, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F097C: .4byte gUnknown_083DFEC4
+_080F0980: .4byte 0x0000877e
+_080F0984: .4byte 0x00008780
+_080F0988: .4byte 0x00008784
+ thumb_func_end sub_80F0954
+
+ thumb_func_start sub_80F098C
+sub_80F098C: @ 80F098C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F09A4
+ ldr r6, [r0]
+ ldr r0, _080F09A8
+ adds r7, r6, r0
+ ldrh r0, [r7]
+ cmp r0, 0
+ bne _080F09AC
+_080F09A0:
+ movs r0, 0
+ b _080F0A02
+ .align 2, 0
+_080F09A4: .4byte gUnknown_083DFEC4
+_080F09A8: .4byte 0x00008784
+_080F09AC:
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080F0A0C
+ ldr r2, _080F0A10
+ adds r0, r6, r2
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r1
+ ldr r0, _080F0A14
+ adds r4, r6, r0
+ ldrh r0, [r4]
+ ldr r1, _080F0A18
+ adds r5, r6, r1
+ ldrh r1, [r5]
+ ldr r2, [r2]
+ bl _call_via_r2
+ ldrh r0, [r7]
+ subs r0, 0x1
+ strh r0, [r7]
+ ldr r2, _080F0A1C
+ adds r1, r2, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _080F09A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ands r0, r1
+ ldr r2, _080F0A20
+ adds r1, r6, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _080F09F6
+ mov r0, r8
+ strh r0, [r4]
+_080F09F6:
+ ldrh r0, [r5]
+ adds r0, 0x2
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r5]
+ movs r0, 0x1
+_080F0A02:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0A0C: .4byte gUnknown_083E3270
+_080F0A10: .4byte 0x000087ca
+_080F0A14: .4byte 0x0000877e
+_080F0A18: .4byte 0x00008780
+_080F0A1C: .4byte 0x0000ffff
+_080F0A20: .4byte 0x00008774
+ thumb_func_end sub_80F098C
+
+ thumb_func_start sub_80F0A24
+sub_80F0A24: @ 80F0A24
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _080F0A64
+ ldr r4, [r0]
+ ldr r1, _080F0A68
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r2, 0x1
+ cmp r0, 0
+ bne _080F0A40
+ movs r2, 0x2
+_080F0A40:
+ ldr r0, _080F0A6C
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r3, 0
+ bl sub_80F4428
+ ldr r0, _080F0A70
+ bl BasicInitMenuWindow
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0A64: .4byte gUnknown_083DFEC4
+_080F0A68: .4byte 0x000087c8
+_080F0A6C: .4byte 0x00008788
+_080F0A70: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0A24
+
+ thumb_func_start sub_80F0A74
+sub_80F0A74: @ 80F0A74
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r0, _080F0ADC
+ ldr r5, [r0]
+ ldr r0, _080F0AE0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80F700C
+ movs r0, 0x1F
+ ands r7, r0
+ ldr r0, _080F0AE4
+ bl BasicInitMenuWindow
+ lsls r2, r7, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ ldr r1, _080F0AE8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _080F0AF8
+ lsls r0, r6, 3
+ adds r0, r5, r0
+ ldr r1, _080F0AEC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F0AF8
+ ldr r0, _080F0AF0
+ ldr r3, _080F0AF4
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+ b _080F0B14
+ .align 2, 0
+_080F0ADC: .4byte gUnknown_083DFEC4
+_080F0AE0: .4byte 0x00008788
+_080F0AE4: .4byte gWindowConfig_81E70D4
+_080F0AE8: .4byte 0x0000d158
+_080F0AEC: .4byte 0x0000ceed
+_080F0AF0: .4byte 0x0600f000
+_080F0AF4: .4byte gUnknown_083E039C
+_080F0AF8:
+ ldr r0, _080F0B1C
+ ldr r3, _080F0B20
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+_080F0B14:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0B1C: .4byte 0x0600f000
+_080F0B20: .4byte gUnknown_083E03A0
+ thumb_func_end sub_80F0A74
+
+ thumb_func_start sub_80F0B24
+sub_80F0B24: @ 80F0B24
+ ldr r0, _080F0B38
+ ldr r0, [r0]
+ ldr r2, _080F0B3C
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0B40
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0B38: .4byte gUnknown_083DFEC4
+_080F0B3C: .4byte 0x0000d15c
+_080F0B40: .4byte 0x00000306
+ thumb_func_end sub_80F0B24
+
+ thumb_func_start sub_80F0B44
+sub_80F0B44: @ 80F0B44
+ push {r4-r6,lr}
+ ldr r0, _080F0B58
+ ldr r5, [r0]
+ ldr r0, _080F0B5C
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ cmp r0, 0x8
+ bls _080F0B60
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0B58: .4byte gUnknown_083DFEC4
+_080F0B5C: .4byte 0x0000d15c
+_080F0B60:
+ ldr r0, _080F0BBC
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0C20
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r6]
+ cmp r0, 0x7
+ bhi _080F0BCC
+ ldr r0, _080F0BC0
+ adds r1, r5, r0
+ ldrh r2, [r6]
+ lsls r0, r2, 1
+ ldrh r1, [r1]
+ adds r4, r0, r1
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r1, _080F0BC4
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ beq _080F0BAA
+ ldr r0, _080F0BC8
+ bl BasicInitMenuWindow
+ adds r1, r4, 0
+ adds r3, r1, 0x1
+ movs r0, 0xC
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+_080F0BAA:
+ ldrh r0, [r6]
+ cmp r0, 0
+ bne _080F0BB4
+ bl sub_80F08E4
+_080F0BB4:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _080F0C20
+ .align 2, 0
+_080F0BBC: .4byte 0x00000306
+_080F0BC0: .4byte 0x00008778
+_080F0BC4: .4byte 0x0000876c
+_080F0BC8: .4byte gWindowConfig_81E70D4
+_080F0BCC:
+ ldr r0, _080F0C10
+ bl BasicInitMenuWindow
+ ldr r1, _080F0C14
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+ movs r0, 0x1F
+ ands r4, r0
+ movs r5, 0
+_080F0BE2:
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ adds r4, 0x2
+ movs r0, 0x1F
+ ands r4, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F0BE2
+ ldr r0, _080F0C18
+ ldr r1, [r0]
+ ldr r0, _080F0C1C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0C10: .4byte gWindowConfig_81E70D4
+_080F0C14: .4byte 0x00008778
+_080F0C18: .4byte gUnknown_083DFEC4
+_080F0C1C: .4byte 0x0000d15c
+_080F0C20:
+ movs r0, 0x1
+_080F0C22:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0B44
+
+ thumb_func_start sub_80F0C28
+sub_80F0C28: @ 80F0C28
+ ldr r0, _080F0C3C
+ ldr r0, [r0]
+ ldr r2, _080F0C40
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0C44
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0C3C: .4byte gUnknown_083DFEC4
+_080F0C40: .4byte 0x0000d15c
+_080F0C44: .4byte 0x00000306
+ thumb_func_end sub_80F0C28
+
+ thumb_func_start sub_80F0C48
+sub_80F0C48: @ 80F0C48
+ push {r4-r6,lr}
+ ldr r0, _080F0C5C
+ ldr r4, [r0]
+ ldr r0, _080F0C60
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bls _080F0C64
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0C5C: .4byte gUnknown_083DFEC4
+_080F0C60: .4byte 0x0000d15c
+_080F0C64:
+ ldr r2, _080F0CBC
+ adds r1, r4, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r2, _080F0CC0
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0CD0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0CC4
+ bl BasicInitMenuWindow
+ ldr r0, _080F0CC8
+ adds r1, r4, r0
+ ldrh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080F0CCC
+ adds r2, r4, r1
+ ldrh r1, [r5]
+ lsls r1, 1
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F0A74
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ ands r0, r6
+ cmp r0, 0x7
+ bls _080F0CD0
+ movs r0, 0
+ bl sub_80F081C
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0CBC: .4byte 0x00000306
+_080F0CC0: .4byte 0x0000ffff
+_080F0CC4: .4byte gWindowConfig_81E70D4
+_080F0CC8: .4byte 0x00008770
+_080F0CCC: .4byte 0x00008778
+_080F0CD0:
+ movs r0, 0x1
+_080F0CD2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0C48
+
+ thumb_func_start sub_80F0CD8
+sub_80F0CD8: @ 80F0CD8
+ push {r4,r5,lr}
+ ldr r4, _080F0D40
+ ldr r1, [r4]
+ ldr r2, _080F0D44
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _080F0D48
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r2, _080F0D4C
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ adds r0, r1, r0
+ ldr r2, _080F0D50
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r3, _080F0D54
+ adds r1, r3
+ ldr r2, _080F0D58
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, r0, 0
+ movs r1, 0
+ adds r5, r4, 0
+ adds r4, r3, 0
+_080F0D14:
+ ldrb r0, [r2]
+ adds r3, r1, 0x1
+ cmp r0, 0xFF
+ beq _080F0D24
+_080F0D1C:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080F0D1C
+_080F0D24:
+ ldr r0, [r5]
+ lsls r1, r3, 2
+ adds r0, r4
+ adds r0, r1
+ adds r2, 0x1
+ str r2, [r0]
+ lsls r0, r3, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bls _080F0D14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0D40: .4byte gUnknown_083DFEC4
+_080F0D44: .4byte 0x00000306
+_080F0D48: .4byte 0x0000d15c
+_080F0D4C: .4byte 0x0000876e
+_080F0D50: .4byte 0x0000ceec
+_080F0D54: .4byte 0x0000d110
+_080F0D58: .4byte gTrainerEyeDescriptions
+ thumb_func_end sub_80F0CD8
+
+ thumb_func_start sub_80F0D5C
+sub_80F0D5C: @ 80F0D5C
+ push {r4,r5,lr}
+ ldr r0, _080F0D70
+ ldr r4, [r0]
+ ldr r0, _080F0D74
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bne _080F0D78
+_080F0D6C:
+ movs r0, 0
+ b _080F0EB0
+ .align 2, 0
+_080F0D70: .4byte gUnknown_083DFEC4
+_080F0D74: .4byte 0x0000d15c
+_080F0D78:
+ ldr r0, _080F0DB8
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080F0D8C
+ b _080F0EAE
+_080F0D8C:
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0DBC
+ bl BasicInitMenuWindow
+ ldr r0, _080F0DC0
+ adds r1, r4, r0
+ ldrh r3, [r5]
+ lsls r0, r3, 1
+ adds r0, 0x2
+ ldrh r1, [r1]
+ adds r5, r0, r1
+ movs r0, 0x1F
+ ands r5, r0
+ cmp r3, 0x6
+ bhi _080F0D6C
+ lsls r0, r3, 2
+ ldr r1, _080F0DC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0DB8: .4byte 0x00000306
+_080F0DBC: .4byte gWindowConfig_81E70D4
+_080F0DC0: .4byte 0x00008778
+_080F0DC4: .4byte _080F0DC8
+ .align 2, 0
+_080F0DC8:
+ .4byte _080F0DE4
+ .4byte _080F0DF0
+ .4byte _080F0E08
+ .4byte _080F0E14
+ .4byte _080F0E2C
+ .4byte _080F0E38
+ .4byte _080F0E6C
+_080F0DE4:
+ ldr r0, _080F0DEC
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0DEC: .4byte gOtherText_Strategy
+_080F0DF0:
+ ldr r0, _080F0DFC
+ ldr r0, [r0]
+ ldr r1, _080F0E00
+ adds r4, r0, r1
+ ldr r1, _080F0E04
+ b _080F0E42
+ .align 2, 0
+_080F0DFC: .4byte gUnknown_083DFEC4
+_080F0E00: .4byte 0x00008788
+_080F0E04: .4byte 0x0000d110
+_080F0E08:
+ ldr r0, _080F0E10
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E10: .4byte gOtherText_TrainersPokemon
+_080F0E14:
+ ldr r0, _080F0E20
+ ldr r0, [r0]
+ ldr r1, _080F0E24
+ adds r4, r0, r1
+ ldr r1, _080F0E28
+ b _080F0E42
+ .align 2, 0
+_080F0E20: .4byte gUnknown_083DFEC4
+_080F0E24: .4byte 0x00008788
+_080F0E28: .4byte 0x0000d114
+_080F0E2C:
+ ldr r0, _080F0E34
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E34: .4byte gOtherText_SelfIntroduction
+_080F0E38:
+ ldr r0, _080F0E60
+ ldr r0, [r0]
+ ldr r1, _080F0E64
+ adds r4, r0, r1
+ ldr r1, _080F0E68
+_080F0E42:
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+_080F0E54:
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ b _080F0EA0
+ .align 2, 0
+_080F0E60: .4byte gUnknown_083DFEC4
+_080F0E64: .4byte 0x00008788
+_080F0E68: .4byte 0x0000d118
+_080F0E6C:
+ ldr r0, _080F0E94
+ ldr r0, [r0]
+ ldr r1, _080F0E98
+ adds r4, r0, r1
+ ldr r1, _080F0E9C
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl sub_80729D8
+ b _080F0D6C
+ .align 2, 0
+_080F0E94: .4byte gUnknown_083DFEC4
+_080F0E98: .4byte 0x00008788
+_080F0E9C: .4byte 0x0000d11c
+_080F0EA0:
+ ldr r0, _080F0EB8
+ ldr r1, [r0]
+ ldr r0, _080F0EBC
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0EAE:
+ movs r0, 0x1
+_080F0EB0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0EB8: .4byte gUnknown_083DFEC4
+_080F0EBC: .4byte 0x0000d15c
+ thumb_func_end sub_80F0D5C
+
+ thumb_func_start sub_80F0EC0
+sub_80F0EC0: @ 80F0EC0
+ push {lr}
+ ldr r0, _080F0EE4
+ ldr r0, [r0]
+ ldr r2, _080F0EE8
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r3, _080F0EEC
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _080F0EF0
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0EE4: .4byte gUnknown_083DFEC4
+_080F0EE8: .4byte 0x00000306
+_080F0EEC: .4byte 0x0000d15c
+_080F0EF0: .4byte 0x00008788
+ thumb_func_end sub_80F0EC0
+
+ thumb_func_start sub_80F0EF4
+sub_80F0EF4: @ 80F0EF4
+ push {r4,r5,lr}
+ ldr r0, _080F0F08
+ ldr r2, [r0]
+ ldr r0, _080F0F0C
+ adds r5, r2, r0
+ ldrh r0, [r5]
+ cmp r0, 0x6
+ bls _080F0F10
+ movs r0, 0
+ b _080F0F52
+ .align 2, 0
+_080F0F08: .4byte gUnknown_083DFEC4
+_080F0F0C: .4byte 0x0000d15c
+_080F0F10:
+ ldr r0, _080F0F58
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0F50
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080F0F5C
+ adds r0, r2, r1
+ ldrh r4, [r5]
+ lsls r4, 1
+ adds r4, 0x2
+ ldrh r0, [r0]
+ adds r4, r0
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r0, _080F0F60
+ bl BasicInitMenuWindow
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F0F50:
+ movs r0, 0x1
+_080F0F52:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0F58: .4byte 0x00000306
+_080F0F5C: .4byte 0x00008778
+_080F0F60: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0EF4
+
+ thumb_func_start sub_80F0F64
+sub_80F0F64: @ 80F0F64
+ push {r4,lr}
+ ldr r0, _080F0F90
+ ldr r3, [r0]
+ ldr r1, _080F0F94
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r1, r2, 4
+ ldr r4, _080F0F98
+ adds r0, r3, r4
+ strh r1, [r0]
+ movs r1, 0x8
+ cmp r2, 0x1
+ bne _080F0F82
+ movs r1, 0x4
+_080F0F82:
+ ldr r2, _080F0F9C
+ adds r0, r3, r2
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0F90: .4byte gUnknown_083DFEC4
+_080F0F94: .4byte 0x0000876c
+_080F0F98: .4byte 0x0000877c
+_080F0F9C: .4byte 0x0000877a
+ thumb_func_end sub_80F0F64
+
+ thumb_func_start sub_80F0FA0
+sub_80F0FA0: @ 80F0FA0
+ push {r4,lr}
+ ldr r0, _080F0FDC
+ ldr r3, [r0]
+ ldr r1, _080F0FE0
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ negs r0, r0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ ldr r4, _080F0FE4
+ adds r1, r3, r4
+ strh r2, [r1]
+ movs r1, 0x1
+ negs r1, r1
+ movs r4, 0x8
+ negs r4, r4
+ adds r2, r4, 0
+ cmp r0, r1
+ bne _080F0FD0
+ movs r0, 0x4
+ negs r0, r0
+ adds r2, r0, 0
+_080F0FD0:
+ ldr r1, _080F0FE8
+ adds r0, r3, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0FDC: .4byte gUnknown_083DFEC4
+_080F0FE0: .4byte 0x0000876c
+_080F0FE4: .4byte 0x0000877c
+_080F0FE8: .4byte 0x0000877a
+ thumb_func_end sub_80F0FA0
+
+ thumb_func_start sub_80F0FEC
+sub_80F0FEC: @ 80F0FEC
+ push {lr}
+ bl sub_80F0718
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0FEC
+
+ thumb_func_start sub_80F0FFC
+sub_80F0FFC: @ 80F0FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r1, _080F1048
+ ldr r4, [r1]
+ ldr r1, _080F104C
+ adds r5, r4, r1
+ lsrs r0, 21
+ adds r0, r4, r0
+ ldr r1, _080F1050
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080F1054
+ bl BasicInitMenuWindow
+ adds r0, r5, 0
+ bl sub_80F19DC
+ ldr r0, _080F1058
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x58
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1048: .4byte gUnknown_083DFEC4
+_080F104C: .4byte 0x00008788
+_080F1050: .4byte 0x0000ceea
+_080F1054: .4byte gWindowConfig_81E710C
+_080F1058: .4byte 0x0000d138
+ thumb_func_end sub_80F0FFC
+
+ thumb_func_start sub_80F105C
+sub_80F105C: @ 80F105C
+ push {lr}
+ ldr r0, _080F1078
+ ldr r1, [r0]
+ ldr r2, _080F107C
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0xA
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_80F0A74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1078: .4byte gUnknown_083DFEC4
+_080F107C: .4byte 0x0000876e
+ thumb_func_end sub_80F105C
+
+ thumb_func_start sub_80F1080
+sub_80F1080: @ 80F1080
+ push {r4,lr}
+ ldr r1, _080F10A0
+ ldr r0, [r1]
+ ldr r2, _080F10A4
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F1094
+ b _080F1204
+_080F1094:
+ lsls r0, 2
+ ldr r1, _080F10A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F10A0: .4byte gUnknown_083DFEC4
+_080F10A4: .4byte 0x0000d160
+_080F10A8: .4byte _080F10AC
+ .align 2, 0
+_080F10AC:
+ .4byte _080F10E8
+ .4byte _080F1104
+ .4byte _080F1110
+ .4byte _080F111C
+ .4byte _080F1128
+ .4byte _080F112E
+ .4byte _080F1134
+ .4byte _080F1142
+ .4byte _080F1160
+ .4byte _080F1166
+ .4byte _080F116C
+ .4byte _080F1180
+ .4byte _080F1194
+ .4byte _080F11DC
+ .4byte _080F11E2
+_080F10E8:
+ bl sub_80EEDE8
+ ldr r0, _080F10FC
+ ldr r0, [r0]
+ ldr r3, _080F1100
+ adds r0, r3
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F1218
+ .align 2, 0
+_080F10FC: .4byte gUnknown_083DFEC4
+_080F1100: .4byte 0x0000d162
+_080F1104:
+ ldr r0, _080F110C
+ bl SetUpWindowConfig
+ b _080F1218
+ .align 2, 0
+_080F110C: .4byte gWindowConfig_81E70B8
+_080F1110:
+ ldr r0, _080F1118
+ bl MultistepInitMenuWindowBegin
+ b _080F1218
+ .align 2, 0
+_080F1118: .4byte gWindowConfig_81E70B8
+_080F111C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F1126
+ b _080F1218
+_080F1126:
+ b _080F1226
+_080F1128:
+ bl MenuZeroFillScreen
+ b _080F1218
+_080F112E:
+ bl sub_80F1614
+ b _080F1218
+_080F1134:
+ movs r0, 0x1
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1218
+ b _080F1226
+_080F1142:
+ ldr r0, _080F1154
+ ldr r1, _080F1158
+ ldr r1, [r1]
+ ldr r2, _080F115C
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1218
+ .align 2, 0
+_080F1154: .4byte gUnknown_08E9FBA0
+_080F1158: .4byte gUnknown_083DFEC4
+_080F115C: .4byte 0x0000934c
+_080F1160:
+ bl sub_80F1238
+ b _080F1218
+_080F1166:
+ bl sub_80F13FC
+ b _080F1218
+_080F116C:
+ ldr r0, _080F1178
+ ldr r1, _080F117C
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F1178: .4byte gPokenavRibbonView_Gfx
+_080F117C: .4byte 0x06008000
+_080F1180:
+ ldr r0, _080F118C
+ ldr r1, _080F1190
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F118C: .4byte gUnknown_083E040C
+_080F1190: .4byte 0x06008200
+_080F1194:
+ ldr r0, _080F11CC
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F11D0
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F11D4
+ movs r1, 0x30
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _080F11D8
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x1E
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F1218
+ .align 2, 0
+_080F11CC: .4byte gPokenavRibbonView_Pal
+_080F11D0: .4byte gUnknown_083E03A8
+_080F11D4: .4byte gUnknown_083E3C60
+_080F11D8: .4byte gUnknownPalette_81E6692
+_080F11DC:
+ bl sub_80F1438
+ b _080F1218
+_080F11E2:
+ ldr r1, _080F1208
+ ldr r3, _080F120C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080F1210
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F1214
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1204:
+ movs r0, 0
+ b _080F1228
+ .align 2, 0
+_080F1208: .4byte REG_BG2CNT
+_080F120C: .4byte 0x00001e02
+_080F1210: .4byte 0x0000170b
+_080F1214: .4byte 0x0000d160
+_080F1218:
+ ldr r0, _080F1230
+ ldr r1, [r0]
+ ldr r2, _080F1234
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1226:
+ movs r0, 0x1
+_080F1228:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1230: .4byte gUnknown_083DFEC4
+_080F1234: .4byte 0x0000d160
+ thumb_func_end sub_80F1080
+
+ thumb_func_start sub_80F1238
+sub_80F1238: @ 80F1238
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r6, 0x8B
+ ldr r0, _080F1318
+ ldr r2, [r0]
+ ldr r1, _080F131C
+ adds r0, r2, r1
+ ldr r3, _080F1320
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r7, 0
+ mov r5, sp
+ adds r4, r2, 0
+_080F1264:
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ strh r0, [r5]
+ lsls r1, r7, 5
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r2, _080F1324
+ adds r1, r2
+ adds r1, r4, r1
+ mov r0, sp
+ ldr r2, _080F1328
+ bl CpuSet
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x7
+ bls _080F1264
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ movs r7, 0
+ mov r9, r0
+ cmp r0, 0
+ beq _080F1342
+ ldr r0, _080F1318
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r1, _080F132C
+ mov r10, r1
+ ldr r5, _080F1324
+ add r5, r8
+_080F12A4:
+ ldr r0, _080F1330
+ add r0, r8
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r10
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r10
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r3, 0x80
+ lsls r3, 21
+ adds r0, r3
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r4, r7, 0x1
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __modsi3
+ cmp r0, 0
+ bne _080F1334
+ adds r0, r6, 0
+ adds r0, 0x30
+ b _080F1336
+ .align 2, 0
+_080F1318: .4byte gUnknown_083DFEC4
+_080F131C: .4byte 0x0000bc8e
+_080F1320: .4byte 0x0000bc8f
+_080F1324: .4byte 0x0000934c
+_080F1328: .4byte 0x01000012
+_080F132C: .4byte gUnknown_083E4698
+_080F1330: .4byte 0x0000bc4c
+_080F1334:
+ adds r0, r6, 0x2
+_080F1336:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r4, 16
+ lsrs r7, r0, 16
+ cmp r0, r9
+ bcc _080F12A4
+_080F1342:
+ ldr r6, _080F13E8
+ movs r7, 0
+ ldr r1, _080F13EC
+ ldr r0, [r1]
+ ldr r2, _080F13F0
+ adds r1, r0, r2
+ ldrb r3, [r1]
+ cmp r7, r3
+ bcs _080F13D8
+ subs r2, 0x43
+ adds r2, r0
+ mov r10, r2
+ ldr r3, _080F13F4
+ mov r8, r3
+ ldr r2, _080F13F8
+ adds r5, r0, r2
+ mov r9, r1
+_080F1364:
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r7
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r8
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r8
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 21
+ adds r0, r1
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r0, r6, 0x2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r9
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080F1364
+_080F13D8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F13E8: .4byte 0x0000014b
+_080F13EC: .4byte gUnknown_083DFEC4
+_080F13F0: .4byte 0x0000bc8f
+_080F13F4: .4byte gUnknown_083E4698
+_080F13F8: .4byte 0x0000934c
+ thumb_func_end sub_80F1238
+
+ thumb_func_start sub_80F13FC
+sub_80F13FC: @ 80F13FC
+ ldr r0, _080F141C
+ ldr r0, [r0]
+ ldr r1, _080F1420
+ adds r0, r1
+ ldr r2, _080F1424
+ ldr r1, _080F1428
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F142C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _080F1430
+ ldr r0, _080F1434
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F141C: .4byte gUnknown_083DFEC4
+_080F1420: .4byte 0x0000934c
+_080F1424: .4byte 0x0600b800
+_080F1428: .4byte 0x040000d4
+_080F142C: .4byte 0x84000140
+_080F1430: .4byte gPlttBufferUnfaded
+_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C
+ thumb_func_end sub_80F13FC
+
+ thumb_func_start sub_80F1438
+sub_80F1438: @ 80F1438
+ push {r4,r5,lr}
+ ldr r0, _080F1470
+ ldr r4, [r0]
+ ldr r1, _080F1474
+ adds r0, r4, r1
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, _080F1478
+ adds r5, r4, r0
+ ldr r1, _080F147C
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_80F445C
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1470: .4byte gUnknown_083DFEC4
+_080F1474: .4byte 0x00008829
+_080F1478: .4byte 0x00008788
+_080F147C: .4byte 0x0000876e
+ thumb_func_end sub_80F1438
+
+ thumb_func_start sub_80F1480
+sub_80F1480: @ 80F1480
+ push {lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F1480
+
+ thumb_func_start sub_80F1494
+sub_80F1494: @ 80F1494
+ push {r4-r7,lr}
+ ldr r0, _080F14D4
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 4
+ adds r6, r0, r1
+ ldr r2, _080F14D8
+ adds r7, r0, r2
+ ldr r0, _080F14DC
+ ldr r3, [r0]
+ ldr r4, _080F14E0
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _080F14F0
+ ldr r5, _080F14E4
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r4, 0x1
+ adds r2, r3, r4
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ strh r0, [r5]
+ ldr r1, _080F14E8
+ adds r0, r3, r1
+ ldrh r2, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r4, _080F14EC
+ b _080F152E
+ .align 2, 0
+_080F14D4: .4byte gUnknown_083DFEC8
+_080F14D8: .4byte 0x00000a98
+_080F14DC: .4byte gUnknown_083DFEC4
+_080F14E0: .4byte 0x0000bc91
+_080F14E4: .4byte gUnknown_020388B4
+_080F14E8: .4byte 0x0000bc4c
+_080F14EC: .4byte gRibbonDescriptions
+_080F14F0:
+ ldr r5, _080F1558
+ ldr r4, _080F155C
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r2, _080F1560
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ subs r0, r1
+ strh r0, [r5]
+ ldrh r1, [r5]
+ adds r4, 0x2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ subs r2, 0x43
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _080F1564
+ ldrh r1, [r5]
+ adds r0, r1
+ ldr r4, _080F1568
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r5]
+ cmp r0, 0
+ beq _080F1570
+ subs r0, 0x1
+ strh r0, [r5]
+ ldr r4, _080F156C
+_080F152E:
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ b _080F158A
+ .align 2, 0
+_080F1558: .4byte gUnknown_020388B4
+_080F155C: .4byte 0x0000bc8e
+_080F1560: .4byte 0x0000bc8f
+_080F1564: .4byte gSaveBlock1
+_080F1568: .4byte 0x000030f7
+_080F156C: .4byte gGiftRibbonDescriptions
+_080F1570:
+ ldr r4, _080F15A4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+_080F158A:
+ adds r0, r6, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F15A4: .4byte gEmptyString_81E72B0
+ thumb_func_end sub_80F1494
+
+ thumb_func_start sub_80F15A8
+sub_80F15A8: @ 80F15A8
+ push {r4,r5,lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ ldr r0, _080F1600
+ ldr r4, [r0]
+ ldr r0, _080F1604
+ adds r5, r4, r0
+ ldr r1, _080F1608
+ adds r0, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldr r1, _080F160C
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, _080F1610
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1600: .4byte gUnknown_083DFEC4
+_080F1604: .4byte 0x00008788
+_080F1608: .4byte gOtherText_Ribbons
+_080F160C: .4byte 0x000087dc
+_080F1610: .4byte 0x0000893c
+ thumb_func_end sub_80F15A8
+
+ thumb_func_start sub_80F1614
+sub_80F1614: @ 80F1614
+ ldr r0, _080F1624
+ ldr r0, [r0]
+ ldr r1, _080F1628
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F1624: .4byte gUnknown_083DFEC4
+_080F1628: .4byte 0x00008764
+ thumb_func_end sub_80F1614
+
+ thumb_func_start sub_80F162C
+sub_80F162C: @ 80F162C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F164C
+ ldr r0, [r0]
+ ldr r2, _080F1650
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F165E
+ cmp r0, 0x1
+ bgt _080F1654
+ cmp r0, 0
+ beq _080F16F0
+ b _080F16D0
+ .align 2, 0
+_080F164C: .4byte gUnknown_083DFEC4
+_080F1650: .4byte 0x00008764
+_080F1654:
+ cmp r0, 0x2
+ beq _080F1670
+ cmp r0, 0x3
+ beq _080F1694
+ b _080F16D0
+_080F165E:
+ ldr r0, _080F1668
+ ldr r1, _080F166C
+ bl LZ77UnCompVram
+ b _080F16F0
+ .align 2, 0
+_080F1668: .4byte gUnknown_08E9FF58
+_080F166C: .4byte 0x0600e800
+_080F1670:
+ ldr r1, _080F1684
+ ldr r2, _080F1688
+ ldr r0, _080F168C
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F1690
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F16F0
+ .align 2, 0
+_080F1684: .4byte gPokenavRibbonPokeView_Gfx
+_080F1688: .4byte 0x0600e000
+_080F168C: .4byte 0x040000d4
+_080F1690: .4byte 0x80000070
+_080F1694:
+ cmp r1, 0
+ bne _080F16A8
+ ldr r0, _080F16A4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F16B2
+ .align 2, 0
+_080F16A4: .4byte gUnknown_083E0124
+_080F16A8:
+ ldr r0, _080F16D4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+_080F16B2:
+ ldr r0, _080F16D8
+ ldr r1, [r0]
+ ldr r3, _080F16DC
+ adds r2, r1, r3
+ ldr r0, _080F16E0
+ strh r0, [r2]
+ ldr r2, _080F16E4
+ ldr r3, _080F16E8
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _080F16EC
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F16D0:
+ movs r0, 0
+ b _080F1700
+ .align 2, 0
+_080F16D4: .4byte gUnknown_083E0144
+_080F16D8: .4byte gUnknown_083DFEC4
+_080F16DC: .4byte 0x00008766
+_080F16E0: .4byte 0x0000ffb0
+_080F16E4: .4byte REG_BG0CNT
+_080F16E8: .4byte 0x00001d0d
+_080F16EC: .4byte 0x00008764
+_080F16F0:
+ ldr r0, _080F1704
+ ldr r1, [r0]
+ ldr r2, _080F1708
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1700:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1704: .4byte gUnknown_083DFEC4
+_080F1708: .4byte 0x00008764
+ thumb_func_end sub_80F162C
+
+ thumb_func_start sub_80F170C
+sub_80F170C: @ 80F170C
+ push {lr}
+ ldr r0, _080F1734
+ ldr r0, [r0]
+ ldr r2, _080F1738
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080F1726
+ movs r0, 0
+ strh r0, [r1]
+_080F1726:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1734: .4byte gUnknown_083DFEC4
+_080F1738: .4byte 0x00008766
+ thumb_func_end sub_80F170C
+
+ thumb_func_start sub_80F173C
+sub_80F173C: @ 80F173C
+ push {lr}
+ ldr r0, _080F176C
+ ldr r0, [r0]
+ ldr r2, _080F1770
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ subs r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x50
+ negs r2, r2
+ cmp r0, r2
+ bge _080F175C
+ ldr r0, _080F1774
+ strh r0, [r1]
+_080F175C:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F176C: .4byte gUnknown_083DFEC4
+_080F1770: .4byte 0x00008766
+_080F1774: .4byte 0x0000ffb0
+ thumb_func_end sub_80F173C
+
+ thumb_func_start sub_80F1778
+sub_80F1778: @ 80F1778
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080F1798
+ ldr r0, [r0]
+ ldr r1, _080F179C
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x9
+ bls _080F178C
+ b _080F1910
+_080F178C:
+ lsls r0, 2
+ ldr r1, _080F17A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F1798: .4byte gUnknown_083DFEC4
+_080F179C: .4byte 0x0000d160
+_080F17A0: .4byte _080F17A4
+ .align 2, 0
+_080F17A4:
+ .4byte _080F17CC
+ .4byte _080F17E8
+ .4byte _080F17EE
+ .4byte _080F17FE
+ .4byte _080F1810
+ .4byte _080F1830
+ .4byte _080F1858
+ .4byte _080F186C
+ .4byte _080F18B8
+ .4byte _080F18D8
+_080F17CC:
+ bl sub_80EEDE8
+ ldr r0, _080F17E0
+ ldr r0, [r0]
+ ldr r2, _080F17E4
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ b _080F1914
+ .align 2, 0
+_080F17E0: .4byte gUnknown_083DFEC4
+_080F17E4: .4byte 0x0000d162
+_080F17E8:
+ bl sub_80F1614
+ b _080F1914
+_080F17EE:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F17FC
+ b _080F1914
+_080F17FC:
+ b _080F1922
+_080F17FE:
+ ldr r0, _080F1808
+ ldr r1, _080F180C
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1808: .4byte gPokenavConditionView_Gfx
+_080F180C: .4byte 0x06005000
+_080F1810:
+ ldr r0, _080F1824
+ ldr r1, _080F1828
+ bl LZ77UnCompVram
+ ldr r0, _080F182C
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F1914
+ .align 2, 0
+_080F1824: .4byte gUnknown_08E9AC4C
+_080F1828: .4byte 0x0600f000
+_080F182C: .4byte gPokenavConditionMenu2_Pal
+_080F1830:
+ ldr r0, _080F1850
+ ldr r3, _080F1854
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0xC
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xD
+ bl sub_8095C8C
+ b _080F1914
+ .align 2, 0
+_080F1850: .4byte 0x0600f000
+_080F1854: .4byte gUnknown_083E01F4
+_080F1858:
+ ldr r0, _080F1864
+ ldr r1, _080F1868
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1864: .4byte gUnknown_08E9FEB4
+_080F1868: .4byte 0x0600b800
+_080F186C:
+ ldr r0, _080F18AC
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F18B0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F18B4
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F1914
+ .align 2, 0
+_080F18AC: .4byte gUnknown_083E0254
+_080F18B0: .4byte gUnknownPalette_81E6692
+_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F18B8:
+ ldr r0, _080F18D0
+ ldr r0, [r0]
+ ldr r1, _080F18D4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F1914
+ .align 2, 0
+_080F18D0: .4byte gUnknown_083DFEC4
+_080F18D4: .4byte 0x00008fe9
+_080F18D8:
+ ldr r1, _080F18FC
+ ldr r2, _080F1900
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F1904
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F1908
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F190C
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F1914
+ .align 2, 0
+_080F18FC: .4byte REG_BG3CNT
+_080F1900: .4byte 0x00001e03
+_080F1904: .4byte 0x00001702
+_080F1908: .4byte 0x00000844
+_080F190C: .4byte 0x0000040b
+_080F1910:
+ movs r0, 0
+ b _080F1924
+_080F1914:
+ ldr r0, _080F192C
+ ldr r1, [r0]
+ ldr r0, _080F1930
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1922:
+ movs r0, 0x1
+_080F1924:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F192C: .4byte gUnknown_083DFEC4
+_080F1930: .4byte 0x0000d160
+ thumb_func_end sub_80F1778
+
+ thumb_func_start sub_80F1934
+sub_80F1934: @ 80F1934
+ push {r4,r5,lr}
+ ldr r0, _080F1990
+ ldr r1, [r0]
+ ldr r0, _080F1994
+ adds r5, r1, r0
+ ldr r3, _080F1998
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _080F199C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F19AC
+ ldrb r0, [r2]
+ bl sub_8137124
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F19A0
+ adds r0, r1
+ bl GetNature
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F19A4
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r0, _080F19A8
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+ b _080F19B8
+ .align 2, 0
+_080F1990: .4byte gUnknown_083DFEC4
+_080F1994: .4byte 0x00008788
+_080F1998: .4byte 0x000087dc
+_080F199C: .4byte 0x0000893f
+_080F19A0: .4byte gPlayerParty
+_080F19A4: .4byte gOtherText_Nature2
+_080F19A8: .4byte gNatureNames
+_080F19AC:
+ ldr r1, _080F19D0
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+_080F19B8:
+ ldr r0, _080F19D4
+ ldr r0, [r0]
+ ldr r1, _080F19D8
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x70
+ movs r3, 0x1
+ bl sub_80729D8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F19D0: .4byte gEmptyString_81E72B0
+_080F19D4: .4byte gUnknown_083DFEC4
+_080F19D8: .4byte 0x00008788
+ thumb_func_end sub_80F1934
+
+ thumb_func_start sub_80F19DC
+sub_80F19DC: @ 80F19DC
+ push {lr}
+ adds r1, r0, 0
+ b _080F19E4
+_080F19E2:
+ adds r1, 0x1
+_080F19E4:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F19F8
+ cmp r0, 0xFC
+ bne _080F19E2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080F19E2
+ movs r0, 0xFF
+ strb r0, [r1]
+_080F19F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F19DC
+
+ thumb_func_start sub_80F19FC
+sub_80F19FC: @ 80F19FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080F1A68
+ ldrb r4, [r5]
+ cmp r4, 0x1
+ bne _080F1A60
+ ldr r0, _080F1A6C
+ ldr r1, [r0]
+ ldr r2, _080F1A70
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ ldrb r2, [r5, 0x1]
+ bl sub_811A8CC
+ cmp r0, 0
+ beq _080F1A46
+ ldrb r2, [r5, 0x1]
+ lsls r2, 20
+ movs r1, 0xC0
+ lsls r1, 14
+ adds r2, r1
+ lsrs r2, 16
+ str r4, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080F1A60
+_080F1A46:
+ ldrb r1, [r5, 0x1]
+ lsls r1, 25
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0
+ strb r0, [r5]
+_080F1A60:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1A68: .4byte gUnknown_020388B0
+_080F1A6C: .4byte gUnknown_083DFEC4
+_080F1A70: .4byte 0x00006e2c
+ thumb_func_end sub_80F19FC
+
+ thumb_func_start sub_80F1A74
+sub_80F1A74: @ 80F1A74
+ ldr r1, _080F1A7C
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080F1A7C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A74
+
+ thumb_func_start sub_80F1A80
+sub_80F1A80: @ 80F1A80
+ ldr r0, _080F1A8C
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F1A8C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A80
+
+ thumb_func_start sub_80F1A90
+sub_80F1A90: @ 80F1A90
+ push {lr}
+ ldr r0, _080F1AB8
+ ldr r0, [r0]
+ ldr r1, _080F1ABC
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1AC0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1AB2
+_080F1AA8:
+ bl sub_80F1AC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1AA8
+_080F1AB2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1AB8: .4byte gUnknown_083DFEC4
+_080F1ABC: .4byte 0x00000306
+_080F1AC0: .4byte 0x00006dac
+ thumb_func_end sub_80F1A90
+
+ thumb_func_start sub_80F1AC4
+sub_80F1AC4: @ 80F1AC4
+ push {r4,r5,lr}
+ ldr r0, _080F1AE0
+ ldr r1, [r0]
+ ldr r2, _080F1AE4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F1B34
+ cmp r0, 0x1
+ bgt _080F1AE8
+ cmp r0, 0
+ beq _080F1AF2
+ b _080F1B6C
+ .align 2, 0
+_080F1AE0: .4byte gUnknown_083DFEC4
+_080F1AE4: .4byte 0x00000306
+_080F1AE8:
+ cmp r0, 0x2
+ beq _080F1B40
+ cmp r0, 0x3
+ beq _080F1B54
+ b _080F1B6C
+_080F1AF2:
+ movs r0, 0
+ movs r2, 0xC8
+ lsls r2, 2
+ adds r4, r1, r2
+ movs r5, 0
+_080F1AFC:
+ movs r2, 0
+ adds r1, r0, 0x1
+ lsls r3, r0, 4
+_080F1B02:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r4, r0
+ str r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F1B02
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _080F1AFC
+ ldr r0, _080F1B2C
+ ldr r0, [r0]
+ ldr r1, _080F1B30
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _080F1B6C
+ .align 2, 0
+_080F1B2C: .4byte gUnknown_083DFEC4
+_080F1B30: .4byte 0x00000311
+_080F1B34:
+ ldr r0, _080F1B3C
+ movs r2, 0xE2
+ lsls r2, 2
+ b _080F1B44
+ .align 2, 0
+_080F1B3C: .4byte gPokenavMenuOptions_Gfx
+_080F1B40:
+ ldr r0, _080F1B4C
+ ldr r2, _080F1B50
+_080F1B44:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1B6C
+ .align 2, 0
+_080F1B4C: .4byte gPokenavConditionMenu_Gfx
+_080F1B50: .4byte 0x00001788
+_080F1B54:
+ ldr r0, _080F1B64
+ ldr r2, _080F1B68
+ adds r1, r2
+ bl LZ77UnCompWram
+ movs r0, 0
+ b _080F1B7C
+ .align 2, 0
+_080F1B64: .4byte gPokenavConditionSearch_Gfx
+_080F1B68: .4byte 0x00002388
+_080F1B6C:
+ ldr r0, _080F1B84
+ ldr r1, [r0]
+ ldr r0, _080F1B88
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1B7C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1B84: .4byte gUnknown_083DFEC4
+_080F1B88: .4byte 0x00000306
+ thumb_func_end sub_80F1AC4
+
+ thumb_func_start sub_80F1B8C
+sub_80F1B8C: @ 80F1B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F1BBC
+ ldr r0, [r0]
+ ldr r1, _080F1BC0
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1BC4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1BB4
+_080F1BA8:
+ adds r0, r4, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1BA8
+_080F1BB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1BBC: .4byte gUnknown_083DFEC4
+_080F1BC0: .4byte 0x00000306
+_080F1BC4: .4byte 0x00006dac
+ thumb_func_end sub_80F1B8C
+
+ thumb_func_start sub_80F1BC8
+sub_80F1BC8: @ 80F1BC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080F1BF4
+ ldr r2, [r1]
+ ldr r3, _080F1BF8
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x1
+ beq _080F1C0A
+ cmp r0, 0x1
+ bgt _080F1BFC
+ cmp r0, 0
+ beq _080F1C02
+ b _080F1DC4
+ .align 2, 0
+_080F1BF4: .4byte gUnknown_083DFEC4
+_080F1BF8: .4byte 0x00000306
+_080F1BFC:
+ cmp r0, 0x2
+ beq _080F1C12
+ b _080F1DC4
+_080F1C02:
+ mov r0, r9
+ bl sub_80F2458
+ b _080F1DC8
+_080F1C0A:
+ mov r0, r9
+ bl sub_80F2514
+ b _080F1DC8
+_080F1C12:
+ mov r4, r9
+ cmp r4, 0x1
+ beq _080F1C40
+ cmp r4, 0x1
+ bgt _080F1C22
+ cmp r4, 0
+ beq _080F1C2A
+ b _080F1DC4
+_080F1C22:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _080F1C54
+ b _080F1DC4
+_080F1C2A:
+ movs r0, 0x2A
+ str r0, [sp, 0x4]
+ movs r1, 0x14
+ str r1, [sp, 0x8]
+ ldr r4, _080F1C3C
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080F1C62
+ .align 2, 0
+_080F1C3C: .4byte 0x0000030e
+_080F1C40:
+ movs r5, 0x38
+ str r5, [sp, 0x4]
+ movs r0, 0x14
+ str r0, [sp, 0x8]
+ ldr r4, _080F1C50
+ adds r1, r2, r4
+ movs r0, 0x3
+ b _080F1C62
+ .align 2, 0
+_080F1C50: .4byte 0x0000030e
+_080F1C54:
+ movs r5, 0x28
+ str r5, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ ldr r4, _080F1CDC
+ adds r1, r2, r4
+ movs r0, 0x6
+_080F1C62:
+ strb r0, [r1]
+ movs r5, 0
+ str r5, [sp]
+ mov r8, r5
+ adds r1, r3, 0
+ ldr r0, [r1]
+ ldr r2, _080F1CDC
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ blt _080F1C7E
+ b _080F1DC8
+_080F1C7E:
+ ldr r4, [sp, 0x8]
+ mov r3, r8
+ muls r3, r4
+ ldr r5, [sp, 0x4]
+ adds r0, r5, r3
+ subs r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, [r1]
+ mov r2, r8
+ lsls r1, r2, 1
+ movs r5, 0xC5
+ lsls r5, 2
+ adds r2, r4, r5
+ adds r2, r1
+ lsls r1, r0, 8
+ adds r0, 0x11
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r9
+ cmp r0, 0
+ bne _080F1CF2
+ ldr r1, _080F1CE0
+ adds r0, r4, r1
+ mov r2, r8
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F1CE8
+ movs r5, 0
+ ldr r0, _080F1CE4
+ ldr r0, [r0]
+ lsls r2, 4
+ movs r3, 0xC8
+ lsls r3, 2
+ adds r1, r0, r3
+ movs r3, 0
+_080F1CC8:
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r1, r0
+ str r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CC8
+ b _080F1D92
+ .align 2, 0
+_080F1CDC: .4byte 0x0000030e
+_080F1CE0: .4byte 0x00006db2
+_080F1CE4: .4byte gUnknown_083DFEC4
+_080F1CE8:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 18
+ lsrs r0, 16
+ str r0, [sp]
+_080F1CF2:
+ movs r5, 0
+ ldr r4, [sp, 0x4]
+ adds r0, r4, r3
+ lsls r0, 16
+ mov r10, r0
+_080F1CFC:
+ lsls r6, r5, 5
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r6, r0
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r0, _080F1DB4
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F1DC4
+ ldr r0, _080F1DB8
+ ldr r2, [r0]
+ lsls r1, r5, 2
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r4, r2, r1
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F1DBC
+ adds r0, r1
+ str r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldr r0, [r4]
+ strh r5, [r0, 0x30]
+ ldr r1, [r4]
+ adds r0, r6, 0
+ adds r0, 0x98
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ strh r7, [r0, 0x34]
+ ldr r0, [r4]
+ ldr r1, [sp]
+ adds r2, r1, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ mov r2, r9
+ cmp r2, 0x2
+ beq _080F1D6E
+ cmp r2, 0
+ bne _080F1D88
+_080F1D6E:
+ mov r3, r8
+ cmp r3, 0x2
+ bls _080F1D88
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r3, [r4]
+ lsls r0, 4
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x5]
+_080F1D88:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CFC
+_080F1D92:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080F1DB8
+ ldr r0, [r1]
+ ldr r4, _080F1DC0
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080F1DB0
+ b _080F1C7E
+_080F1DB0:
+ b _080F1DC8
+ .align 2, 0
+_080F1DB4: .4byte gSpriteTemplate_83E4454
+_080F1DB8: .4byte gUnknown_083DFEC4
+_080F1DBC: .4byte gSprites
+_080F1DC0: .4byte 0x0000030e
+_080F1DC4:
+ movs r0, 0
+ b _080F1DD8
+_080F1DC8:
+ ldr r0, _080F1DE8
+ ldr r1, [r0]
+ ldr r5, _080F1DEC
+ adds r1, r5
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1DD8:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1DE8: .4byte gUnknown_083DFEC4
+_080F1DEC: .4byte 0x00000306
+ thumb_func_end sub_80F1BC8
+
+ thumb_func_start sub_80F1DF0
+sub_80F1DF0: @ 80F1DF0
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _080F1E44
+ ldr r3, [r0]
+ ldr r0, _080F1E48
+ adds r1, r3, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1E38
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r3, r0
+ adds r6, r1, 0
+ ldr r5, _080F1E4C
+_080F1E0E:
+ movs r1, 0
+ adds r3, r2, 0x1
+ lsls r2, 4
+_080F1E14:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1E22
+ str r5, [r0, 0x1C]
+_080F1E22:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1E14
+ lsls r0, r3, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1E0E
+_080F1E38:
+ movs r0, 0x6
+ bl PlaySE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1E44: .4byte gUnknown_083DFEC4
+_080F1E48: .4byte 0x0000030e
+_080F1E4C: .4byte sub_80F2218
+ thumb_func_end sub_80F1DF0
+
+ thumb_func_start sub_80F1E50
+sub_80F1E50: @ 80F1E50
+ push {lr}
+ bl sub_80F22F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E60
+ movs r0, 0x1
+ b _080F1E66
+_080F1E60:
+ bl sub_80F2108
+ movs r0, 0
+_080F1E66:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E50
+
+ thumb_func_start sub_80F1E6C
+sub_80F1E6C: @ 80F1E6C
+ push {lr}
+ bl sub_80F22F8
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E7C
+ movs r1, 0x1
+_080F1E7C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E6C
+
+ thumb_func_start sub_80F1E84
+sub_80F1E84: @ 80F1E84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _080F1EFC
+ ldr r4, [r5]
+ ldr r1, _080F1F00
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80F2148
+ movs r2, 0
+ ldr r3, _080F1F04
+ adds r1, r4, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1EF2
+ ldr r0, _080F1F08
+ adds r7, r4, r0
+ adds r6, r1, 0
+ mov r8, r5
+ ldr r1, _080F1F0C
+ mov r12, r1
+_080F1EB4:
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ adds r5, r2, 0x1
+ cmp r2, r0
+ beq _080F1EE6
+ movs r1, 0
+ mov r3, r8
+ ldr r0, [r3]
+ lsls r3, r2, 4
+ movs r4, 0xC8
+ lsls r4, 2
+ adds r2, r0, r4
+ mov r4, r12
+_080F1ECE:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1EDC
+ str r4, [r0, 0x1C]
+_080F1EDC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1ECE
+_080F1EE6:
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1EB4
+_080F1EF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1EFC: .4byte gUnknown_083DFEC4
+_080F1F00: .4byte 0x0000030f
+_080F1F04: .4byte 0x0000030e
+_080F1F08: .4byte 0x00006dad
+_080F1F0C: .4byte sub_80F2240
+ thumb_func_end sub_80F1E84
+
+ thumb_func_start sub_80F1F10
+sub_80F1F10: @ 80F1F10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F1F2C
+ ldr r4, [r0]
+ ldr r1, _080F1F30
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F1F34
+ cmp r0, 0x1
+ beq _080F1FC0
+ b _080F1FE4
+ .align 2, 0
+_080F1F2C: .4byte gUnknown_083DFEC4
+_080F1F30: .4byte 0x0000030f
+_080F1F34:
+ bl sub_80F2360
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ movs r6, 0
+ adds r7, r4, 0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r0, r7
+ mov r8, r0
+_080F1F4A:
+ lsls r5, r6, 2
+ ldr r1, _080F1FAC
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ adds r0, r5, r0
+ add r0, r8
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080F1FB0
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ subs r5, 0x6
+ strh r5, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ strh r0, [r4, 0x38]
+ ldr r0, _080F1FB4
+ str r0, [r4, 0x1C]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _080F1F4A
+ bl sub_80F2170
+ ldr r0, _080F1FB8
+ ldr r1, [r0]
+ ldr r0, _080F1FBC
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F1FE4
+ .align 2, 0
+_080F1FAC: .4byte 0x00006dad
+_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB4: .4byte sub_80F2240
+_080F1FB8: .4byte gUnknown_083DFEC4
+_080F1FBC: .4byte 0x0000030f
+_080F1FC0:
+ bl sub_80F23C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ bl sub_80F21F8
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ b _080F1FE6
+_080F1FE4:
+ movs r0, 0x1
+_080F1FE6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1F10
+
+ thumb_func_start sub_80F1FF0
+sub_80F1FF0: @ 80F1FF0
+ push {r4,lr}
+ ldr r0, _080F203C
+ ldr r4, [r0]
+ ldr r1, _080F2040
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F2058
+ ldr r2, _080F2044
+ ldr r3, _080F2048
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r0, r4, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _080F204C
+ ldr r1, _080F2050
+ ldr r0, _080F2054
+ adds r2, r4, r0
+ ldrh r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r3]
+ ldrh r0, [r2]
+ adds r0, 0x3
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2]
+ b _080F2078
+ .align 2, 0
+_080F203C: .4byte gUnknown_083DFEC4
+_080F2040: .4byte 0x00000311
+_080F2044: .4byte REG_WIN0V
+_080F2048: .4byte 0x00006dad
+_080F204C: .4byte REG_BLDY
+_080F2050: .4byte gSineTable
+_080F2054: .4byte 0x00000312
+_080F2058:
+ cmp r0, 0x2
+ bne _080F2078
+ ldr r2, _080F2080
+ ldr r1, _080F2084
+ ldr r0, _080F2088
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r3]
+ cmp r0, 0xE
+ bhi _080F2078
+ adds r0, 0x1
+ strh r0, [r3]
+_080F2078:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2080: .4byte REG_BLDALPHA
+_080F2084: .4byte gUnknown_083E42F8
+_080F2088: .4byte 0x00000312
+ thumb_func_end sub_80F1FF0
+
+ thumb_func_start sub_80F208C
+sub_80F208C: @ 80F208C
+ push {lr}
+ bl sub_80F2148
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F208C
+
+ thumb_func_start sub_80F2098
+sub_80F2098: @ 80F2098
+ ldr r1, _080F20DC
+ ldr r2, _080F20E0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080F20E4
+ ldr r0, _080F20E8
+ ldr r1, [r0]
+ ldr r3, _080F20EC
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldr r1, _080F20F0
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1F
+ strh r0, [r1]
+ subs r2, 0x44
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F20DC: .4byte REG_WIN0H
+_080F20E0: .4byte 0x000077f0
+_080F20E4: .4byte REG_WIN0V
+_080F20E8: .4byte gUnknown_083DFEC4
+_080F20EC: .4byte 0x00006dad
+_080F20F0: .4byte REG_WININ
+ thumb_func_end sub_80F2098
+
+ thumb_func_start sub_80F20F4
+sub_80F20F4: @ 80F20F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F2104
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F2104: .4byte 0x0000dfff
+ thumb_func_end sub_80F20F4
+
+ thumb_func_start sub_80F2108
+sub_80F2108: @ 80F2108
+ push {lr}
+ ldr r0, _080F2134
+ ldr r3, [r0]
+ ldr r0, _080F2138
+ adds r1, r3, r0
+ ldrb r2, [r1]
+ cmp r2, 0
+ bne _080F2130
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080F213C
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r1, _080F2140
+ movs r0, 0x90
+ strh r0, [r1]
+ ldr r0, _080F2144
+ strh r2, [r0]
+ bl sub_80F2098
+_080F2130:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2134: .4byte gUnknown_083DFEC4
+_080F2138: .4byte 0x00000311
+_080F213C: .4byte 0x00000312
+_080F2140: .4byte REG_BLDCNT
+_080F2144: .4byte REG_BLDY
+ thumb_func_end sub_80F2108
+
+ thumb_func_start sub_80F2148
+sub_80F2148: @ 80F2148
+ push {lr}
+ ldr r0, _080F2164
+ ldr r0, [r0]
+ ldr r1, _080F2168
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F216C
+ strh r1, [r0]
+ bl sub_80F20F4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2164: .4byte gUnknown_083DFEC4
+_080F2168: .4byte 0x00000311
+_080F216C: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2148
+
+ thumb_func_start sub_80F2170
+sub_80F2170: @ 80F2170
+ push {r4-r7,lr}
+ ldr r7, _080F21E4
+ ldr r4, [r7]
+ ldr r1, _080F21E8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F21DC
+ bl sub_80F20F4
+ movs r3, 0
+ ldr r2, _080F21EC
+ adds r5, r4, r2
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r0
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r6, 0x4
+_080F2198:
+ lsls r1, r3, 2
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r4, r1
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ mov r0, r12
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F2198
+ ldr r1, [r7]
+ ldr r0, _080F21E8
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r2, _080F21F0
+ adds r1, r2
+ strh r3, [r1]
+ ldr r1, _080F21F4
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+_080F21DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F21E4: .4byte gUnknown_083DFEC4
+_080F21E8: .4byte 0x00000311
+_080F21EC: .4byte 0x00006dad
+_080F21F0: .4byte 0x00000312
+_080F21F4: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2170
+
+ thumb_func_start sub_80F21F8
+sub_80F21F8: @ 80F21F8
+ ldr r0, _080F220C
+ ldr r0, [r0]
+ ldr r1, _080F2210
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F2214
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F220C: .4byte gUnknown_083DFEC4
+_080F2210: .4byte 0x00000311
+_080F2214: .4byte REG_BLDCNT
+ thumb_func_end sub_80F21F8
+
+ thumb_func_start sub_80F2218
+sub_80F2218: @ 80F2218
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x32]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bgt _080F2236
+ strh r3, [r2, 0x20]
+ ldr r0, _080F223C
+ str r0, [r2, 0x1C]
+_080F2236:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F223C: .4byte sub_80F22B0
+ thumb_func_end sub_80F2218
+
+ thumb_func_start sub_80F2240
+sub_80F2240: @ 80F2240
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080F2288
+ ldr r0, [r0]
+ ldr r1, _080F228C
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F2290
+ ldrh r3, [r2, 0x38]
+ movs r4, 0x38
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ beq _080F2270
+ ldrh r0, [r2, 0x36]
+ ldrh r4, [r2, 0x20]
+ adds r1, r0, r4
+ strh r1, [r2, 0x20]
+ subs r0, r3, r0
+ strh r0, [r2, 0x38]
+_080F2270:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+ b _080F22A8
+ .align 2, 0
+_080F2288: .4byte gUnknown_083DFEC4
+_080F228C: .4byte 0x00006dad
+_080F2290:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+_080F22A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2240
+
+ thumb_func_start sub_80F22B0
+sub_80F22B0: @ 80F22B0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F22DC
+ ldr r0, [r0]
+ ldr r1, _080F22E0
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F22E4
+ ldrh r3, [r2, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _080F22F2
+ subs r0, r3, 0x4
+ b _080F22F0
+ .align 2, 0
+_080F22DC: .4byte gUnknown_083DFEC4
+_080F22E0: .4byte 0x00006dad
+_080F22E4:
+ ldrh r1, [r2, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _080F22F2
+ adds r0, r1, 0x4
+_080F22F0:
+ strh r0, [r2, 0x24]
+_080F22F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F22B0
+
+ thumb_func_start sub_80F22F8
+sub_80F22F8: @ 80F22F8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _080F233C
+ ldr r1, [r0]
+ ldr r2, _080F2340
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080F2358
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r4, r1, r7
+ movs r5, 0x10
+ negs r5, r5
+ adds r6, r0, 0
+_080F231A:
+ movs r1, 0
+ lsls r2, r3, 4
+_080F231E:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F2358
+ movs r7, 0x24
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ beq _080F2344
+ cmp r0, r5
+ beq _080F2344
+ movs r0, 0
+ b _080F235A
+ .align 2, 0
+_080F233C: .4byte gUnknown_083DFEC4
+_080F2340: .4byte 0x00006dae
+_080F2344:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F231E
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r6
+ blt _080F231A
+_080F2358:
+ movs r0, 0x1
+_080F235A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F22F8
+
+ thumb_func_start sub_80F2360
+sub_80F2360: @ 80F2360
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080F23A0
+ ldr r2, [r0]
+ ldr r1, _080F23A4
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r4, r1
+ bge _080F23C0
+ ldr r3, _080F23A8
+ adds r0, r2, r3
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r5, r1, 0
+_080F237E:
+ cmp r4, r6
+ beq _080F23B6
+ movs r1, 0
+ ldr r0, _080F23A0
+ ldr r0, [r0]
+ lsls r3, r4, 4
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r2, r0, r7
+_080F2390:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23AC
+ movs r0, 0
+ b _080F23C2
+ .align 2, 0
+_080F23A0: .4byte gUnknown_083DFEC4
+_080F23A4: .4byte 0x0000030e
+_080F23A8: .4byte 0x00006dad
+_080F23AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F2390
+_080F23B6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ blt _080F237E
+_080F23C0:
+ movs r0, 0x1
+_080F23C2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2360
+
+ thumb_func_start sub_80F23C8
+sub_80F23C8: @ 80F23C8
+ push {lr}
+ movs r2, 0
+ ldr r0, _080F23F4
+ ldr r1, [r0]
+ ldr r3, _080F23F8
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r3, r0, 4
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r1, r0
+_080F23E2:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23FC
+ movs r0, 0
+ b _080F2408
+ .align 2, 0
+_080F23F4: .4byte gUnknown_083DFEC4
+_080F23F8: .4byte 0x00006dad
+_080F23FC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F23E2
+ movs r0, 0x1
+_080F2408:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F23C8
+
+ thumb_func_start sub_80F240C
+sub_80F240C: @ 80F240C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F2454
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 2
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r1
+ movs r0, 0
+ str r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F2446
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080F2446:
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2454: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F240C
+
+ thumb_func_start sub_80F2458
+sub_80F2458: @ 80F2458
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ beq _080F24A0
+ cmp r4, 0x1
+ bgt _080F246C
+ cmp r4, 0
+ beq _080F2472
+ b _080F2502
+_080F246C:
+ cmp r4, 0x2
+ beq _080F24D0
+ b _080F2502
+_080F2472:
+ ldr r2, _080F2498
+ ldr r3, [r2]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r5, 0xE2
+ lsls r5, 2
+ adds r0, r3, r5
+ str r0, [r1]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r0, 0xA0
+ lsls r0, 5
+ strh r0, [r1]
+ ldr r1, _080F249C
+ adds r0, r3, r1
+ strh r4, [r0]
+ b _080F24F6
+ .align 2, 0
+_080F2498: .4byte gUnknown_083DFEC4
+_080F249C: .4byte 0x00000386
+_080F24A0:
+ ldr r4, _080F24C4
+ ldr r1, [r4]
+ movs r3, 0xE0
+ lsls r3, 2
+ adds r2, r1, r3
+ ldr r5, _080F24C8
+ adds r0, r1, r5
+ str r0, [r2]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 4
+ strh r0, [r2]
+ ldr r5, _080F24CC
+ adds r1, r5
+ b _080F24F2
+ .align 2, 0
+_080F24C4: .4byte gUnknown_083DFEC4
+_080F24C8: .4byte 0x00001788
+_080F24CC: .4byte 0x00000386
+_080F24D0:
+ ldr r4, _080F2508
+ ldr r1, [r4]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r1, r0
+ ldr r3, _080F250C
+ adds r0, r1, r3
+ str r0, [r2]
+ movs r5, 0xE1
+ lsls r5, 2
+ adds r2, r1, r5
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 5
+ strh r0, [r2]
+ ldr r0, _080F2510
+ adds r1, r0
+_080F24F2:
+ strh r3, [r1]
+ adds r2, r4, 0
+_080F24F6:
+ ldr r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 2
+ adds r0, r1
+ bl LoadSpriteSheet
+_080F2502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2508: .4byte gUnknown_083DFEC4
+_080F250C: .4byte 0x00002388
+_080F2510: .4byte 0x00000386
+ thumb_func_end sub_80F2458
+
+ thumb_func_start sub_80F2514
+sub_80F2514: @ 80F2514
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080F2558
+ cmp r0, 0x1
+ bgt _080F252C
+ cmp r0, 0
+ beq _080F2532
+ b _080F2586
+_080F252C:
+ cmp r1, 0x2
+ beq _080F2568
+ b _080F2586
+_080F2532:
+ ldr r0, _080F254C
+ str r0, [sp]
+ ldr r1, _080F2550
+ mov r4, sp
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2554
+ b _080F257A
+ .align 2, 0
+_080F254C: .4byte gPokenavMenuOptions1_Pal
+_080F2550: .4byte 0xffff0000
+_080F2554: .4byte gPokenavMenuOptions2_Pal
+_080F2558:
+ ldr r0, _080F2564
+ str r0, [sp]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ b _080F2580
+ .align 2, 0
+_080F2564: .4byte gPokenavConditionMenu_Pal
+_080F2568:
+ ldr r0, _080F2590
+ str r0, [sp]
+ mov r4, sp
+ movs r0, 0
+ strh r0, [r4, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2594
+_080F257A:
+ str r0, [sp]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+_080F2580:
+ mov r0, sp
+ bl LoadSpritePalette
+_080F2586:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2590: .4byte gPokenavCondition6_Pal
+_080F2594: .4byte gPokenavCondition7_Pal
+ thumb_func_end sub_80F2514
+
+ thumb_func_start sub_80F2598
+sub_80F2598: @ 80F2598
+ push {r4,lr}
+ ldr r0, _080F25F0
+ ldr r0, [r0]
+ ldr r1, _080F25F4
+ adds r4, r0, r1
+ movs r0, 0
+ str r0, [r4]
+ ldr r1, _080F25F8
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082C0C
+ cmp r0, 0x1
+ bne _080F2618
+ ldr r0, _080F25FC
+ bl LoadSpriteSheet
+ ldr r0, _080F2600
+ bl LoadSpritePalette
+ ldr r0, _080F2604
+ movs r1, 0xC
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F260C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2608
+ adds r0, r1
+ str r0, [r4]
+ b _080F2618
+ .align 2, 0
+_080F25F0: .4byte gUnknown_083DFEC4
+_080F25F4: .4byte 0x00006d9c
+_080F25F8: .4byte gSaveBlock1
+_080F25FC: .4byte gSpriteSheet_PokenavBlueLight
+_080F2600: .4byte gSpritePalette_PokenavBlueLight
+_080F2604: .4byte gSpriteTemplate_83E4484
+_080F2608: .4byte gSprites
+_080F260C:
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+_080F2618:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2598
+
+ thumb_func_start sub_80F2620
+sub_80F2620: @ 80F2620
+ push {r4,lr}
+ ldr r0, _080F264C
+ ldr r0, [r0]
+ ldr r1, _080F2650
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2644
+ bl DestroySprite
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2644:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F264C: .4byte gUnknown_083DFEC4
+_080F2650: .4byte 0x00006d9c
+ thumb_func_end sub_80F2620
+
+ thumb_func_start sub_80F2654
+sub_80F2654: @ 80F2654
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080F2682
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080F2682:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2654
+
+ thumb_func_start sub_80F2688
+sub_80F2688: @ 80F2688
+ push {lr}
+ ldr r0, _080F26B0
+ ldr r0, [r0]
+ ldr r1, _080F26B4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F26B8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F26AA
+_080F26A0:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F26A0
+_080F26AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F26B0: .4byte gUnknown_083DFEC4
+_080F26B4: .4byte 0x00000306
+_080F26B8: .4byte 0x00006dac
+ thumb_func_end sub_80F2688
+
+ thumb_func_start sub_80F26BC
+sub_80F26BC: @ 80F26BC
+ push {lr}
+ ldr r0, _080F26D8
+ ldr r0, [r0]
+ ldr r1, _080F26DC
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bls _080F26CE
+ b _080F27BC
+_080F26CE:
+ lsls r0, 2
+ ldr r1, _080F26E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F26D8: .4byte gUnknown_083DFEC4
+_080F26DC: .4byte 0x00000306
+_080F26E0: .4byte _080F26E4
+ .align 2, 0
+_080F26E4:
+ .4byte _080F2704
+ .4byte _080F271C
+ .4byte _080F2734
+ .4byte _080F274C
+ .4byte _080F2764
+ .4byte _080F277C
+ .4byte _080F2794
+ .4byte _080F27B0
+_080F2704:
+ ldr r0, _080F2710
+ ldr r1, _080F2714
+ ldr r1, [r1]
+ ldr r2, _080F2718
+ b _080F279C
+ .align 2, 0
+_080F2710: .4byte gPokenavMainMenu_Gfx
+_080F2714: .4byte gUnknown_083DFEC4
+_080F2718: .4byte 0x00003b98
+_080F271C:
+ ldr r0, _080F2728
+ ldr r1, _080F272C
+ ldr r1, [r1]
+ ldr r2, _080F2730
+ b _080F279C
+ .align 2, 0
+_080F2728: .4byte gPokenavConditionMenuHeader_Gfx
+_080F272C: .4byte gUnknown_083DFEC4
+_080F2730: .4byte 0x00004198
+_080F2734:
+ ldr r0, _080F2740
+ ldr r1, _080F2744
+ ldr r1, [r1]
+ ldr r2, _080F2748
+ b _080F279C
+ .align 2, 0
+_080F2740: .4byte gPokenavRibbonsHeader_Gfx
+_080F2744: .4byte gUnknown_083DFEC4
+_080F2748: .4byte 0x00004d98
+_080F274C:
+ ldr r0, _080F2758
+ ldr r1, _080F275C
+ ldr r1, [r1]
+ ldr r2, _080F2760
+ b _080F279C
+ .align 2, 0
+_080F2758: .4byte gPokenavHoennMapHeader_Gfx
+_080F275C: .4byte gUnknown_083DFEC4
+_080F2760: .4byte 0x00005398
+_080F2764:
+ ldr r0, _080F2770
+ ldr r1, _080F2774
+ ldr r1, [r1]
+ ldr r2, _080F2778
+ b _080F279C
+ .align 2, 0
+_080F2770: .4byte gPokenavConditionMenuOptions_Gfx
+_080F2774: .4byte gUnknown_083DFEC4
+_080F2778: .4byte 0x00005f98
+_080F277C:
+ ldr r0, _080F2788
+ ldr r1, _080F278C
+ ldr r1, [r1]
+ ldr r2, _080F2790
+ b _080F279C
+ .align 2, 0
+_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx
+_080F278C: .4byte gUnknown_083DFEC4
+_080F2790: .4byte 0x00006798
+_080F2794:
+ ldr r0, _080F27A4
+ ldr r1, _080F27A8
+ ldr r1, [r1]
+ ldr r2, _080F27AC
+_080F279C:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F27C0
+ .align 2, 0
+_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx
+_080F27A8: .4byte gUnknown_083DFEC4
+_080F27AC: .4byte 0x00004798
+_080F27B0:
+ ldr r0, _080F27B8
+ bl LoadSpritePalettes
+ b _080F27C0
+ .align 2, 0
+_080F27B8: .4byte gUnknown_083E449C
+_080F27BC:
+ movs r0, 0
+ b _080F27D0
+_080F27C0:
+ ldr r0, _080F27D4
+ ldr r1, [r0]
+ ldr r0, _080F27D8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F27D0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F27D4: .4byte gUnknown_083DFEC4
+_080F27D8: .4byte 0x00000306
+ thumb_func_end sub_80F26BC
+
+ thumb_func_start sub_80F27DC
+sub_80F27DC: @ 80F27DC
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bls _080F27EA
+ b _080F29A0
+_080F27EA:
+ lsls r0, 2
+ ldr r1, _080F27F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F27F4: .4byte _080F27F8
+ .align 2, 0
+_080F27F8:
+ .4byte _080F2828
+ .4byte _080F2858
+ .4byte _080F28B8
+ .4byte _080F2888
+ .4byte _080F28E8
+ .4byte _080F2918
+ .4byte _080F2928
+ .4byte _080F2978
+ .4byte _080F2938
+ .4byte _080F2948
+ .4byte _080F2968
+ .4byte _080F2958
+_080F2828:
+ ldr r0, _080F2848
+ ldr r0, [r0]
+ ldr r1, _080F284C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2850
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2854
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2848: .4byte gUnknown_083DFEC4
+_080F284C: .4byte 0x00003b98
+_080F2850: .4byte 0xffff0000
+_080F2854: .4byte 0x0000ffff
+_080F2858:
+ ldr r0, _080F2878
+ ldr r0, [r0]
+ ldr r1, _080F287C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2880
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2884
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2878: .4byte gUnknown_083DFEC4
+_080F287C: .4byte 0x00004198
+_080F2880: .4byte 0xffff0000
+_080F2884: .4byte 0x0000ffff
+_080F2888:
+ ldr r0, _080F28A8
+ ldr r0, [r0]
+ ldr r1, _080F28AC
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28B0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28B4
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28A8: .4byte gUnknown_083DFEC4
+_080F28AC: .4byte 0x00004798
+_080F28B0: .4byte 0xffff0000
+_080F28B4: .4byte 0x0000ffff
+_080F28B8:
+ ldr r0, _080F28D8
+ ldr r0, [r0]
+ ldr r1, _080F28DC
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28E0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28E4
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28D8: .4byte gUnknown_083DFEC4
+_080F28DC: .4byte 0x00004d98
+_080F28E0: .4byte 0xffff0000
+_080F28E4: .4byte 0x0000ffff
+_080F28E8:
+ ldr r0, _080F2908
+ ldr r0, [r0]
+ ldr r1, _080F290C
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2910
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, _080F2914
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2908: .4byte gUnknown_083DFEC4
+_080F290C: .4byte 0x00005398
+_080F2910: .4byte 0xffff0000
+_080F2914: .4byte 0x0000ffff
+_080F2918:
+ ldr r0, _080F2920
+ ldr r0, [r0]
+ ldr r1, _080F2924
+ b _080F297E
+ .align 2, 0
+_080F2920: .4byte gUnknown_083DFEC4
+_080F2924: .4byte 0x00005f98
+_080F2928:
+ ldr r0, _080F2930
+ ldr r0, [r0]
+ ldr r1, _080F2934
+ b _080F297E
+ .align 2, 0
+_080F2930: .4byte gUnknown_083DFEC4
+_080F2934: .4byte 0x00006198
+_080F2938:
+ ldr r0, _080F2940
+ ldr r0, [r0]
+ ldr r1, _080F2944
+ b _080F297E
+ .align 2, 0
+_080F2940: .4byte gUnknown_083DFEC4
+_080F2944: .4byte 0x00006398
+_080F2948:
+ ldr r0, _080F2950
+ ldr r0, [r0]
+ ldr r1, _080F2954
+ b _080F297E
+ .align 2, 0
+_080F2950: .4byte gUnknown_083DFEC4
+_080F2954: .4byte 0x00006598
+_080F2958:
+ ldr r0, _080F2960
+ ldr r0, [r0]
+ ldr r1, _080F2964
+ b _080F297E
+ .align 2, 0
+_080F2960: .4byte gUnknown_083DFEC4
+_080F2964: .4byte 0x00006998
+_080F2968:
+ ldr r0, _080F2970
+ ldr r0, [r0]
+ ldr r1, _080F2974
+ b _080F297E
+ .align 2, 0
+_080F2970: .4byte gUnknown_083DFEC4
+_080F2974: .4byte 0x00006798
+_080F2978:
+ ldr r0, _080F29A8
+ ldr r0, [r0]
+ ldr r1, _080F29AC
+_080F297E:
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F29B0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ ldr r1, _080F29B4
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+_080F2996:
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+_080F29A0:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F29A8: .4byte gUnknown_083DFEC4
+_080F29AC: .4byte 0x00006b98
+_080F29B0: .4byte 0xffff0000
+_080F29B4: .4byte 0x0000ffff
+ thumb_func_end sub_80F27DC
+
+ thumb_func_start sub_80F29B8
+sub_80F29B8: @ 80F29B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ cmp r7, 0xB
+ bls _080F29D2
+ b _080F2BA6
+_080F29D2:
+ lsls r0, r7, 2
+ ldr r1, _080F29DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F29DC: .4byte _080F29E0
+ .align 2, 0
+_080F29E0:
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A58
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A98
+_080F2A10:
+ ldr r3, _080F2A44
+ ldr r0, _080F2A48
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x8
+ str r4, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A4C
+ adds r4, r2
+ mov r9, r4
+ ldr r2, _080F2A50
+ mov r8, r2
+ cmp r7, 0x3
+ beq _080F2AC8
+ ldr r4, _080F2A54
+ mov r8, r4
+ b _080F2AC8
+ .align 2, 0
+_080F2A44: .4byte 0x0000ffa0
+_080F2A48: .4byte gUnknown_083DFEC4
+_080F2A4C: .4byte 0x00003b88
+_080F2A50: .4byte gSpriteTemplate_83E44F8
+_080F2A54: .4byte gSpriteTemplate_83E44E0
+_080F2A58:
+ movs r3, 0x88
+ lsls r3, 1
+ ldr r0, _080F2A84
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080F2A88
+ str r4, [sp]
+ movs r1, 0x98
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A8C
+ mov r8, r4
+ ldr r4, _080F2A90
+ b _080F2AC4
+ .align 2, 0
+_080F2A84: .4byte gUnknown_083DFEC4
+_080F2A88: .4byte 0x0000fff8
+_080F2A8C: .4byte gSpriteTemplate_83E44E0
+_080F2A90: .4byte 0x00003b88
+_080F2A94:
+ ldr r0, _080F2B40
+ mov r8, r0
+_080F2A98:
+ mov r1, r8
+ cmp r1, 0
+ bne _080F2AA2
+ ldr r2, _080F2B44
+ mov r8, r2
+_080F2AA2:
+ ldr r3, _080F2B48
+ ldr r0, _080F2B4C
+ ldr r2, [r0]
+ movs r4, 0xC3
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x44
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x8
+ str r1, [sp]
+ movs r4, 0x10
+ str r4, [sp, 0x4]
+ movs r1, 0x20
+ ldr r4, _080F2B50
+_080F2AC4:
+ adds r4, r2
+ mov r9, r4
+_080F2AC8:
+ movs r6, 0
+ lsls r1, 16
+ str r1, [sp, 0x10]
+ lsls r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ str r0, [sp, 0xC]
+ ldr r0, _080F2B54
+ mov r10, r0
+_080F2ADA:
+ ldr r1, [sp, 0x10]
+ asrs r0, r1, 16
+ adds r5, r6, 0
+ muls r5, r0
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, r8
+ ldr r3, [sp, 0xC]
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _080F2B9C
+ lsls r0, r4, 4
+ adds r1, r0, r4
+ lsls r1, 2
+ mov r2, r10
+ adds r3, r1, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ strh r1, [r3, 0x30]
+ strh r6, [r3, 0x32]
+ strh r7, [r3, 0x34]
+ adds r5, r0, 0
+ cmp r7, 0x4
+ bne _080F2B5C
+ cmp r6, 0x1
+ bne _080F2B5C
+ ldr r0, _080F2B4C
+ ldr r0, [r0]
+ ldr r1, _080F2B58
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2B36
+ movs r1, 0x1
+_080F2B36:
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F2B6A
+ .align 2, 0
+_080F2B40: .4byte gSpriteTemplate_83E4530
+_080F2B44: .4byte gSpriteTemplate_83E4548
+_080F2B48: .4byte 0x0000ffa0
+_080F2B4C: .4byte gUnknown_083DFEC4
+_080F2B50: .4byte 0x00003b90
+_080F2B54: .4byte gSprites
+_080F2B58: .4byte 0x00006e90
+_080F2B5C:
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r10
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+_080F2B6A:
+ ldr r2, _080F2BB8
+ mov r12, r2
+ cmp r7, 0x3
+ bhi _080F2B90
+ cmp r6, 0x1
+ bne _080F2B90
+ adds r2, r5, r4
+ lsls r2, 2
+ add r2, r10
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+_080F2B90:
+ lsls r1, r6, 2
+ add r1, r9
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r12
+ str r0, [r1]
+_080F2B9C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F2ADA
+_080F2BA6:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2BB8: .4byte gSprites
+ thumb_func_end sub_80F29B8
+
+ thumb_func_start sub_80F2BBC
+sub_80F2BBC: @ 80F2BBC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x2E]
+ adds r3, r0, r1
+ strh r3, [r2, 0x20]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r4, r1
+ bgt _080F2BE0
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bge _080F2BE8
+ cmp r4, r1
+ blt _080F2C08
+_080F2BE0:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bgt _080F2C08
+_080F2BE8:
+ ldrh r0, [r2, 0x30]
+ strh r0, [r2, 0x20]
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bne _080F2C04
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F2C04
+ ldr r0, _080F2C00
+ b _080F2C06
+ .align 2, 0
+_080F2C00: .4byte sub_80F2C58
+_080F2C04:
+ ldr r0, _080F2C10
+_080F2C06:
+ str r0, [r2, 0x1C]
+_080F2C08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C10: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F2BBC
+
+ thumb_func_start sub_80F2C14
+sub_80F2C14: @ 80F2C14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ adds r0, 0x20
+ lsls r0, 16
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bls _080F2C50
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080F2C4A
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _080F2C44
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ b _080F2C4A
+_080F2C44:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+_080F2C4A:
+ adds r0, r4, 0
+ bl DestroySprite
+_080F2C50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2C14
+
+ thumb_func_start sub_80F2C58
+sub_80F2C58: @ 80F2C58
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F2C78
+ ldr r0, [r0]
+ ldr r1, _080F2C7C
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2C6E
+ movs r1, 0x1
+_080F2C6E:
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C78: .4byte gUnknown_083DFEC4
+_080F2C7C: .4byte 0x00006e90
+ thumb_func_end sub_80F2C58
+
+ thumb_func_start sub_80F2C80
+sub_80F2C80: @ 80F2C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F2CB0
+ ldr r0, [r0]
+ ldr r1, _080F2CB4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F2CB8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F2CA8
+_080F2C9C:
+ adds r0, r4, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F2C9C
+_080F2CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2CB0: .4byte gUnknown_083DFEC4
+_080F2CB4: .4byte 0x00000306
+_080F2CB8: .4byte 0x00006dac
+ thumb_func_end sub_80F2C80
+
+ thumb_func_start sub_80F2CBC
+sub_80F2CBC: @ 80F2CBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F2CD8
+ ldr r0, [r0]
+ ldr r2, _080F2CDC
+ adds r4, r0, r2
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080F2CE0
+ cmp r0, 0x1
+ beq _080F2CF0
+ b _080F2CFC
+ .align 2, 0
+_080F2CD8: .4byte gUnknown_083DFEC4
+_080F2CDC: .4byte 0x00000306
+_080F2CE0:
+ adds r0, r1, 0
+ bl sub_80F27DC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080F2CFE
+_080F2CF0:
+ adds r0, r1, 0
+ bl sub_80F29B8
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F2CFC:
+ movs r0, 0
+_080F2CFE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2CBC
+
+ thumb_func_start sub_80F2D04
+sub_80F2D04: @ 80F2D04
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2D3C
+ movs r1, 0
+ ldr r0, _080F2D30
+ ldr r0, [r0]
+ ldr r3, _080F2D34
+ adds r2, r0, r3
+ ldr r3, _080F2D38
+_080F2D1A:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D1A
+ b _080F2D5A
+ .align 2, 0
+_080F2D30: .4byte gUnknown_083DFEC4
+_080F2D34: .4byte 0x00003b88
+_080F2D38: .4byte sub_80F2C14
+_080F2D3C:
+ movs r1, 0
+ ldr r0, _080F2D60
+ ldr r0, [r0]
+ ldr r3, _080F2D64
+ adds r2, r0, r3
+ ldr r3, _080F2D68
+_080F2D48:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D48
+_080F2D5A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2D60: .4byte gUnknown_083DFEC4
+_080F2D64: .4byte 0x00003b90
+_080F2D68: .4byte sub_80F2C14
+ thumb_func_end sub_80F2D04
+
+ thumb_func_start sub_80F2D6C
+sub_80F2D6C: @ 80F2D6C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2DA4
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2D9C
+ ldr r0, [r0]
+ ldr r1, _080F2DA0
+ adds r5, r0, r1
+_080F2D86:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2D86
+ b _080F2DC8
+ .align 2, 0
+_080F2D9C: .4byte gUnknown_083DFEC4
+_080F2DA0: .4byte 0x00003b88
+_080F2DA4:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2DD0
+ ldr r0, [r0]
+ ldr r1, _080F2DD4
+ adds r5, r0, r1
+_080F2DB4:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2DB4
+_080F2DC8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2DD0: .4byte gUnknown_083DFEC4
+_080F2DD4: .4byte 0x00003b90
+ thumb_func_end sub_80F2D6C
+
+ thumb_func_start sub_80F2DD8
+sub_80F2DD8: @ 80F2DD8
+ push {lr}
+ movs r0, 0x7
+ movs r1, 0x7
+ bl sub_80FBB3C
+ movs r0, 0x8
+ movs r1, 0x8
+ bl sub_80FBCF0
+ bl sub_80FBF94
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DD8
+
+ thumb_func_start sub_80F2DF4
+sub_80F2DF4: @ 80F2DF4
+ push {lr}
+ bl sub_80FAB10
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DF4
+
+ thumb_func_start sub_80F2E00
+sub_80F2E00: @ 80F2E00
+ ldr r1, _080F2E10
+ ldr r1, [r1]
+ ldr r2, _080F2E14
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x26
+ strh r1, [r0, 0x20]
+ bx lr
+ .align 2, 0
+_080F2E10: .4byte gUnknown_083DFEC4
+_080F2E14: .4byte 0x00008766
+ thumb_func_end sub_80F2E00
+
+ thumb_func_start sub_80F2E18
+sub_80F2E18: @ 80F2E18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080F2EA8
+ ldr r4, [r0]
+ ldr r0, _080F2EAC
+ adds r7, r4, r0
+ ldr r1, [r7]
+ mov r8, r1
+ cmp r1, 0
+ bne _080F2EFC
+ ldr r0, _080F2EB0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080F2EB4
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, _080F2EB8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ lsls r0, r3, 13
+ ldr r1, _080F2EBC
+ adds r0, r1
+ adds r0, r4, r0
+ str r0, [sp, 0x20]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ str r0, [sp, 0x18]
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F2EC0
+ adds r5, r4, r2
+ strh r0, [r5]
+ add r0, sp, 0x20
+ bl LoadSpriteSheet
+ ldr r1, _080F2EC4
+ adds r6, r4, r1
+ strh r0, [r6]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F2EC8
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ mov r2, r8
+ str r2, [r7]
+ b _080F2F26
+ .align 2, 0
+_080F2EA8: .4byte gUnknown_083DFEC4
+_080F2EAC: .4byte 0x00008768
+_080F2EB0: .4byte gUnknown_083E4568
+_080F2EB4: .4byte gSpriteTemplate_83E4570
+_080F2EB8: .4byte gUnknown_083E4588
+_080F2EBC: .4byte 0x0000d1e4
+_080F2EC0: .4byte 0x0000d1dc
+_080F2EC4: .4byte 0x0000d1de
+_080F2EC8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2EF0
+ adds r0, r1
+ str r0, [r7]
+ ldr r0, _080F2EF4
+ adds r1, r4, r0
+ ldrh r0, [r6]
+ lsls r0, 5
+ ldr r2, _080F2EF8
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ lsls r0, 4
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6
+ strh r0, [r5]
+ b _080F2F26
+ .align 2, 0
+_080F2EF0: .4byte gSprites
+_080F2EF4: .4byte 0x0000d1e0
+_080F2EF8: .4byte 0x06010000
+_080F2EFC:
+ lsls r0, r3, 13
+ ldr r1, _080F2F34
+ adds r0, r1
+ adds r0, r4, r0
+ ldr r2, _080F2F38
+ adds r1, r4, r2
+ ldr r2, [r1]
+ ldr r1, _080F2F3C
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F2F40
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ ldr r5, _080F2F44
+ adds r1, r4, r5
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_080F2F26:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F34: .4byte 0x0000d1e4
+_080F2F38: .4byte 0x0000d1e0
+_080F2F3C: .4byte 0x040000d4
+_080F2F40: .4byte 0x80000400
+_080F2F44: .4byte 0x0000d1dc
+ thumb_func_end sub_80F2E18
+
+ thumb_func_start sub_80F2F48
+sub_80F2F48: @ 80F2F48
+ push {r4,lr}
+ ldr r0, _080F2F74
+ ldr r0, [r0]
+ ldr r1, _080F2F78
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2F6C
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2F6C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F74: .4byte gUnknown_083DFEC4
+_080F2F78: .4byte 0x00008768
+ thumb_func_end sub_80F2F48
+
+ thumb_func_start sub_80F2F7C
+sub_80F2F7C: @ 80F2F7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2E18
+ ldr r0, _080F2FA0
+ ldr r0, [r0]
+ ldr r1, _080F2FA4
+ adds r2, r0, r1
+ ldr r1, _080F2FA8
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r0, _080F2FAC
+ str r0, [r1, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FA0: .4byte gUnknown_083DFEC4
+_080F2FA4: .4byte 0x0000ced0
+_080F2FA8: .4byte 0x00008768
+_080F2FAC: .4byte sub_80F2FEC
+ thumb_func_end sub_80F2F7C
+
+ thumb_func_start sub_80F2FB0
+sub_80F2FB0: @ 80F2FB0
+ push {r4,r5,lr}
+ ldr r0, _080F2FE0
+ ldr r5, [r0]
+ ldr r0, _080F2FE4
+ adds r4, r5, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2FDA
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r1, 0
+ str r1, [r4]
+ ldr r2, _080F2FE8
+ adds r0, r5, r2
+ str r1, [r0]
+_080F2FDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FE0: .4byte gUnknown_083DFEC4
+_080F2FE4: .4byte 0x0000ced0
+_080F2FE8: .4byte 0x00008768
+ thumb_func_end sub_80F2FB0
+
+ thumb_func_start sub_80F2FEC
+sub_80F2FEC: @ 80F2FEC
+ ldr r1, _080F3000
+ ldr r1, [r1]
+ ldr r2, _080F3004
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x28
+ strh r1, [r0, 0x20]
+ movs r1, 0x68
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F3000: .4byte gUnknown_083DFEC4
+_080F3004: .4byte 0x0000d15a
+ thumb_func_end sub_80F2FEC
+
+ thumb_func_start sub_80F3008
+sub_80F3008: @ 80F3008
+ push {r4,r5,lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r1, sp
+ ldr r0, _080F3060
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, _080F3064
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ cmp r2, 0x2
+ bgt _080F3032
+ cmp r2, 0x1
+ blt _080F3032
+ ldr r0, _080F3068
+ str r0, [sp, 0x18]
+_080F3032:
+ mov r0, sp
+ bl LoadSpriteSheets
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ ldr r0, _080F306C
+ movs r1, 0x5F
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3078
+ ldr r0, _080F3070
+ ldr r0, [r0]
+ ldr r1, _080F3074
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F3120
+ .align 2, 0
+_080F3060: .4byte gUnknown_083E4590
+_080F3064: .4byte gUnknown_083E45A8
+_080F3068: .4byte gUnknown_08E9F988
+_080F306C: .4byte gSpriteTemplate_83E45B8
+_080F3070: .4byte gUnknown_083DFEC4
+_080F3074: .4byte 0x000087cc
+_080F3078:
+ ldr r0, _080F30F4
+ ldr r2, [r0]
+ ldr r3, _080F30F8
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC
+ adds r0, r1
+ str r0, [r2]
+ movs r4, 0
+ movs r5, 0
+_080F3090:
+ lsls r2, r4, 7
+ adds r2, 0x8
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _080F3100
+ movs r1, 0xA8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3108
+ ldr r0, _080F30F4
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ ldr r3, _080F3104
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC
+ adds r3, r0, r1
+ str r3, [r2]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r3, 0x2E]
+ strh r5, [r3, 0x30]
+ movs r0, 0x1
+ cmp r4, 0
+ bne _080F30DE
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_080F30DE:
+ strh r0, [r3, 0x32]
+ strh r4, [r3, 0x34]
+ movs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F3116
+ .align 2, 0
+_080F30F4: .4byte gUnknown_083DFEC4
+_080F30F8: .4byte 0x000087cc
+_080F30FC: .4byte gSprites
+_080F3100: .4byte gSpriteTemplate_83E45F0
+_080F3104: .4byte 0x000087d0
+_080F3108:
+ ldr r0, _080F3128
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F312C
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080F3116:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F3090
+_080F3120:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3128: .4byte gUnknown_083DFEC4
+_080F312C: .4byte 0x000087d0
+ thumb_func_end sub_80F3008
+
+ thumb_func_start sub_80F3130
+sub_80F3130: @ 80F3130
+ push {r4-r6,lr}
+ ldr r0, _080F3184
+ ldr r6, [r0]
+ ldr r0, _080F3188
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3154
+ bl DestroySprite
+ movs r0, 0x9
+ bl FreeSpriteTilesByTag
+ movs r0, 0x9
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F3154:
+ movs r5, 0
+ ldr r0, _080F318C
+ adds r6, r0
+_080F315A:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F316C
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F316C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F315A
+ movs r0, 0xA
+ bl FreeSpriteTilesByTag
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3184: .4byte gUnknown_083DFEC4
+_080F3188: .4byte 0x000087cc
+_080F318C: .4byte 0x000087d0
+ thumb_func_end sub_80F3130
+
+ thumb_func_start sub_80F3190
+sub_80F3190: @ 80F3190
+ ldr r1, _080F31A4
+ ldr r1, [r1]
+ ldr r2, _080F31A8
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 4
+ adds r1, 0x10
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F31A4: .4byte gUnknown_083DFEC4
+_080F31A8: .4byte 0x0000876c
+ thumb_func_end sub_80F3190
+
+ thumb_func_start sub_80F31AC
+sub_80F31AC: @ 80F31AC
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F31E8
+ ldr r1, [r0]
+ ldr r2, _080F31EC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F325C
+ movs r4, 0x36
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _080F3226
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r0, 0
+ bne _080F31F4
+ movs r2, 0
+ ldr r4, _080F31F0
+ adds r0, r1, r4
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F31DE
+ movs r2, 0x1
+_080F31DE:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, 2
+ b _080F3214
+ .align 2, 0
+_080F31E8: .4byte gUnknown_083DFEC4
+_080F31EC: .4byte 0x000087c9
+_080F31F0: .4byte 0x00008770
+_080F31F4:
+ movs r4, 0
+ ldr r2, _080F3250
+ adds r0, r1, r2
+ ldr r5, _080F3254
+ adds r1, r5
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bne _080F320C
+ movs r4, 0x1
+_080F320C:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, r4, 2
+_080F3214:
+ ldrb r1, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ strh r0, [r3, 0x36]
+_080F3226:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080F325C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080F3258
+ ldrh r0, [r3, 0x32]
+ ldrh r2, [r3, 0x26]
+ adds r0, r2
+ strh r0, [r3, 0x26]
+ b _080F325C
+ .align 2, 0
+_080F3250: .4byte 0x00008772
+_080F3254: .4byte 0x00008774
+_080F3258:
+ strh r1, [r3, 0x30]
+ strh r1, [r3, 0x26]
+_080F325C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F31AC
+
+ thumb_func_start sub_80F3264
+sub_80F3264: @ 80F3264
+ push {lr}
+ movs r1, 0
+ ldr r0, _080F328C
+ ldr r0, [r0]
+ ldr r3, _080F3290
+ adds r2, r0, r3
+ movs r3, 0x1
+_080F3272:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F327E
+ strh r3, [r0, 0x36]
+_080F327E:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F3272
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F328C: .4byte gUnknown_083DFEC4
+_080F3290: .4byte 0x000087d0
+ thumb_func_end sub_80F3264
+
+ thumb_func_start sub_80F3294
+sub_80F3294: @ 80F3294
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F32F4
+ ldr r4, [r0]
+ ldr r1, _080F32F8
+ adds r0, r4, r1
+ ldr r2, [r0]
+ adds r2, 0x3E
+ movs r0, 0x1
+ adds r1, r6, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080F32FC
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F331A
+ cmp r6, 0x1
+ bne _080F3308
+ ldr r1, _080F3300
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, _080F3304
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1]
+ b _080F331A
+ .align 2, 0
+_080F32F4: .4byte gUnknown_083DFEC4
+_080F32F8: .4byte 0x000087cc
+_080F32FC: .4byte 0x000087c9
+_080F3300: .4byte 0x000087d0
+_080F3304: .4byte 0x000087d4
+_080F3308:
+ ldr r1, _080F3320
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ strh r1, [r0, 0x36]
+ ldr r2, _080F3324
+ adds r0, r4, r2
+ ldr r0, [r0]
+ strh r1, [r0, 0x36]
+_080F331A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3320: .4byte 0x000087d0
+_080F3324: .4byte 0x000087d4
+ thumb_func_end sub_80F3294
+
+ thumb_func_start sub_80F3328
+sub_80F3328: @ 80F3328
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F334C
+ ldr r0, [r0]
+ ldr r1, _080F3350
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bne _080F3354
+ adds r0, r2, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _080F335C
+ .align 2, 0
+_080F334C: .4byte gUnknown_083DFEC4
+_080F3350: .4byte 0x000087dc
+_080F3354:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080F335C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3328
+
+ thumb_func_start sub_80F3360
+sub_80F3360: @ 80F3360
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F3384
+ ldr r0, [r0]
+ ldr r2, _080F3388
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _080F338C
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _080F3390
+ movs r0, 0x4
+ b _080F3392
+ .align 2, 0
+_080F3384: .4byte gUnknown_083DFEC4
+_080F3388: .4byte 0x000087dc
+_080F338C: .4byte 0x000087da
+_080F3390:
+ movs r0, 0x5
+_080F3392:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3360
+
+ thumb_func_start sub_80F33A8
+sub_80F33A8: @ 80F33A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x50
+ mov r1, sp
+ ldr r0, _080F3440
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ add r4, sp, 0x20
+ adds r1, r4, 0
+ ldr r0, _080F3444
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ add r5, sp, 0x38
+ adds r1, r5, 0
+ ldr r0, _080F3448
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ movs r6, 0
+ ldr r2, _080F344C
+ ldr r1, [r2]
+ ldr r3, _080F3450
+ adds r0, r1, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ subs r0, 0x1
+ adds r7, r5, 0
+ cmp r6, r0
+ bge _080F347A
+ adds r5, r2, 0
+ adds r0, r3, 0
+ adds r0, r1
+ mov r8, r0
+_080F3406:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ lsls r2, 18
+ movs r1, 0x80
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE2
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F345C
+ ldr r0, [r5]
+ ldr r2, _080F3454
+ adds r0, r2
+ adds r0, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r2, _080F3458
+ adds r1, r2
+ str r1, [r0]
+ strh r6, [r1, 0x2E]
+ b _080F3468
+ .align 2, 0
+_080F3440: .4byte gUnknown_083E4628
+_080F3444: .4byte gUnknown_083E4648
+_080F3448: .4byte gSpriteTemplate_83E4660
+_080F344C: .4byte gUnknown_083DFEC4
+_080F3450: .4byte 0x000087da
+_080F3454: .4byte 0x000087e4
+_080F3458: .4byte gSprites
+_080F345C:
+ ldr r0, [r5]
+ ldr r3, _080F34C8
+ adds r0, r3
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F3468:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r4, r8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080F3406
+_080F347A:
+ movs r0, 0x4
+ strh r0, [r7]
+ ldr r0, _080F34CC
+ str r0, [r7, 0x14]
+ cmp r6, 0x5
+ bhi _080F34EE
+ ldr r5, _080F34D0
+_080F3488:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE6
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F34D8
+ ldr r2, [r5]
+ ldr r0, _080F34C8
+ adds r2, r0
+ adds r2, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F34D4
+ adds r1, r0
+ str r1, [r2]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _080F34E4
+ .align 2, 0
+_080F34C8: .4byte 0x000087e4
+_080F34CC: .4byte SpriteCallbackDummy
+_080F34D0: .4byte gUnknown_083DFEC4
+_080F34D4: .4byte gSprites
+_080F34D8:
+ ldr r0, [r5]
+ ldr r1, _080F3548
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F34E4:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F3488
+_080F34EE:
+ movs r0, 0x5
+ strh r0, [r7]
+ ldr r0, _080F354C
+ str r0, [r7, 0x14]
+ lsls r5, r6, 2
+ adds r2, r5, r6
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xDE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F3558
+ ldr r0, _080F3550
+ ldr r4, [r0]
+ ldr r6, _080F3548
+ adds r4, r6
+ adds r4, r5
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F3554
+ adds r1, r0
+ str r1, [r4]
+ ldrb r3, [r1, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ ands r2, r0
+ movs r0, 0x80
+ orrs r2, r0
+ strb r2, [r1, 0x3]
+ b _080F3566
+ .align 2, 0
+_080F3548: .4byte 0x000087e4
+_080F354C: .4byte sub_80F3360
+_080F3550: .4byte gUnknown_083DFEC4
+_080F3554: .4byte gSprites
+_080F3558:
+ ldr r0, _080F3574
+ ldr r0, [r0]
+ ldr r1, _080F3578
+ adds r0, r1
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_080F3566:
+ add sp, 0x50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3574: .4byte gUnknown_083DFEC4
+_080F3578: .4byte 0x000087e4
+ thumb_func_end sub_80F33A8
+
+ thumb_func_start sub_80F357C
+sub_80F357C: @ 80F357C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F35AC
+ ldr r0, [r0]
+ ldr r1, _080F35B0
+ adds r6, r0, r1
+_080F3588:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F359A
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F359A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080F3588
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35AC: .4byte gUnknown_083DFEC4
+_080F35B0: .4byte 0x000087e4
+ thumb_func_end sub_80F357C
+
+ thumb_func_start sub_80F35B4
+sub_80F35B4: @ 80F35B4
+ push {r4,lr}
+ ldr r0, _080F35FC
+ ldr r4, [r0]
+ ldr r1, _080F3600
+ adds r0, r4, r1
+ movs r1, 0x1C
+ strh r1, [r0]
+ ldr r1, _080F3604
+ adds r2, r4, r1
+ movs r1, 0x13
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ ldr r2, _080F3608
+ movs r0, 0x1B
+ movs r1, 0x15
+ bl sub_80F7920
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0xC0
+ strh r1, [r0, 0x20]
+ movs r1, 0x20
+ strh r1, [r0, 0x22]
+ ldr r1, _080F360C
+ str r1, [r0, 0x1C]
+ ldr r1, _080F3610
+ adds r4, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35FC: .4byte gUnknown_083DFEC4
+_080F3600: .4byte 0x000076b0
+_080F3604: .4byte 0x000076b2
+_080F3608: .4byte gUnknown_083E4678
+_080F360C: .4byte sub_80F363C
+_080F3610: .4byte 0x000076ac
+ thumb_func_end sub_80F35B4
+
+ thumb_func_start sub_80F3614
+sub_80F3614: @ 80F3614
+ push {lr}
+ ldr r0, _080F3634
+ ldr r0, [r0]
+ ldr r1, _080F3638
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ movs r0, 0x1B
+ bl FreeSpriteTilesByTag
+ movs r0, 0x15
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3634: .4byte gUnknown_083DFEC4
+_080F3638: .4byte 0x000076ac
+ thumb_func_end sub_80F3614
+
+ thumb_func_start sub_80F363C
+sub_80F363C: @ 80F363C
+ push {lr}
+ ldr r1, _080F365C
+ ldr r1, [r1]
+ ldr r3, _080F3660
+ adds r2, r1, r3
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ ldr r3, _080F3664
+ adds r1, r3
+ adds r1, r2
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F365C: .4byte gUnknown_083DFEC4
+_080F3660: .4byte 0x00008fe9
+_080F3664: .4byte 0x00008934
+ thumb_func_end sub_80F363C
+
+ thumb_func_start sub_80F3668
+sub_80F3668: @ 80F3668
+ push {lr}
+ ldr r0, _080F368C
+ ldr r0, [r0]
+ ldr r2, _080F3690
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, _080F3694
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl sub_80F7418
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F368C: .4byte gUnknown_083DFEC4
+_080F3690: .4byte 0x00008fe9
+_080F3694: .4byte 0x00008934
+ thumb_func_end sub_80F3668
+
+ thumb_func_start sub_80F3698
+sub_80F3698: @ 80F3698
+ push {r4,lr}
+ ldr r0, _080F36DC
+ ldr r3, [r0]
+ ldr r1, _080F36E0
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ ldr r4, _080F36E4
+ adds r1, r4
+ adds r1, r3, r1
+ ldr r2, _080F36E8
+ adds r0, r3, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r4, 0x8
+ adds r0, r3, r4
+ adds r0, r2
+ ldr r2, _080F36EC
+ adds r3, r2
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r1, 0x1]
+ ldr r1, [r1]
+ lsls r1, 11
+ lsrs r1, 27
+ ldrb r2, [r3]
+ bl sub_80F4548
+ bl sub_80F7470
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F36DC: .4byte gUnknown_083DFEC4
+_080F36E0: .4byte 0x000087dc
+_080F36E4: .4byte 0x0000893c
+_080F36E8: .4byte 0x00008fe9
+_080F36EC: .4byte 0x000076b4
+ thumb_func_end sub_80F3698
+
+ thumb_func_start sub_80F36F0
+sub_80F36F0: @ 80F36F0
+ push {lr}
+ ldr r0, _080F3718
+ ldr r0, [r0]
+ ldr r1, _080F371C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F3720
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3712
+_080F3708:
+ bl sub_80F3724
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3708
+_080F3712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3718: .4byte gUnknown_083DFEC4
+_080F371C: .4byte 0x00000306
+_080F3720: .4byte 0x00006dac
+ thumb_func_end sub_80F36F0
+
+ thumb_func_start sub_80F3724
+sub_80F3724: @ 80F3724
+ push {r4,lr}
+ ldr r0, _080F3740
+ ldr r1, [r0]
+ ldr r0, _080F3744
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080F3764
+ cmp r0, 0x1
+ bgt _080F3748
+ cmp r0, 0
+ beq _080F374E
+ b _080F377A
+ .align 2, 0
+_080F3740: .4byte gUnknown_083DFEC4
+_080F3744: .4byte 0x00000306
+_080F3748:
+ cmp r0, 0x2
+ beq _080F376E
+ b _080F377A
+_080F374E:
+ ldr r0, _080F375C
+ ldr r2, _080F3760
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F377E
+ .align 2, 0
+_080F375C: .4byte gUnknown_083E3D00
+_080F3760: .4byte 0x0000984c
+_080F3764:
+ bl sub_80F379C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F376E:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F377E
+ b _080F378C
+_080F377A:
+ movs r0, 0
+ b _080F378E
+_080F377E:
+ ldr r0, _080F3794
+ ldr r1, [r0]
+ ldr r0, _080F3798
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F378C:
+ movs r0, 0x1
+_080F378E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3794: .4byte gUnknown_083DFEC4
+_080F3798: .4byte 0x00000306
+ thumb_func_end sub_80F3724
+
+ thumb_func_start sub_80F379C
+sub_80F379C: @ 80F379C
+ push {lr}
+ ldr r0, _080F37C4
+ ldr r0, [r0]
+ ldr r1, _080F37C8
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F37CC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F37BE
+_080F37B4:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F37B4
+_080F37BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F37C4: .4byte gUnknown_083DFEC4
+_080F37C8: .4byte 0x0000bc93
+_080F37CC: .4byte 0x00006dac
+ thumb_func_end sub_80F379C
+
+ thumb_func_start sub_80F37D0
+sub_80F37D0: @ 80F37D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F3898
+ ldr r1, [r0]
+ ldr r2, _080F389C
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0xB
+ bhi _080F38A8
+ movs r3, 0
+ mov r8, r3
+ movs r7, 0xF
+ mov r9, r7
+_080F37F0:
+ ldr r2, [r2]
+ ldr r1, _080F389C
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 8
+ ldr r3, _080F38A0
+ adds r0, r3
+ adds r4, r2, r0
+ lsls r1, 9
+ ldr r7, _080F38A4
+ adds r1, r7
+ adds r5, r2, r1
+ movs r6, 0
+_080F380A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl CpuFastSet
+ adds r5, 0x40
+ adds r4, 0x20
+ movs r1, 0
+ adds r6, 0x1
+ mov r12, r6
+_080F381E:
+ movs r0, 0
+ adds r6, r1, 0x1
+_080F3822:
+ adds r4, 0x4
+ movs r2, 0
+ adds r3, r0, 0x1
+_080F3828:
+ subs r4, 0x1
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ lsrs r0, 4
+ mov r7, r9
+ ands r0, r7
+ orrs r1, r0
+ strb r1, [r5]
+ adds r5, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080F3828
+ adds r4, 0x4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bls _080F3822
+ subs r4, 0x40
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bls _080F381E
+ adds r4, 0x60
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080F380A
+ ldr r2, _080F3898
+ ldr r3, [r2]
+ ldr r7, _080F389C
+ adds r1, r3, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F38A8
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1
+ bls _080F37F0
+ adds r1, r7, 0
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ bhi _080F38A8
+ movs r0, 0x1
+ b _080F38AA
+ .align 2, 0
+_080F3898: .4byte gUnknown_083DFEC4
+_080F389C: .4byte 0x0000bc93
+_080F38A0: .4byte 0x0000984c
+_080F38A4: .4byte 0x0000a44c
+_080F38A8:
+ movs r0, 0
+_080F38AA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F37D0
+
+ thumb_func_start sub_80F38B8
+sub_80F38B8: @ 80F38B8
+ push {lr}
+ ldr r0, _080F38E0
+ ldr r0, [r0]
+ ldr r1, _080F38E4
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F38E8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F38DA
+_080F38D0:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F38D0
+_080F38DA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F38E0: .4byte gUnknown_083DFEC4
+_080F38E4: .4byte 0x00000306
+_080F38E8: .4byte 0x00006dac
+ thumb_func_end sub_80F38B8
+
+ thumb_func_start sub_80F38EC
+sub_80F38EC: @ 80F38EC
+ push {r4,lr}
+ ldr r0, _080F3908
+ ldr r2, [r0]
+ ldr r0, _080F390C
+ adds r4, r2, r0
+ ldrh r1, [r4]
+ cmp r1, 0x1
+ beq _080F3930
+ cmp r1, 0x1
+ bgt _080F3910
+ cmp r1, 0
+ beq _080F391A
+ b _080F394E
+ .align 2, 0
+_080F3908: .4byte gUnknown_083DFEC4
+_080F390C: .4byte 0x00000306
+_080F3910:
+ cmp r1, 0x2
+ beq _080F3938
+ cmp r1, 0x3
+ beq _080F3942
+ b _080F394E
+_080F391A:
+ ldr r3, _080F3928
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080F392C
+ adds r0, r2, r3
+ strb r1, [r0]
+ b _080F3952
+ .align 2, 0
+_080F3928: .4byte 0x00009348
+_080F392C: .4byte 0x0000bc92
+_080F3930:
+ movs r0, 0
+ bl sub_80F2E18
+ b _080F3952
+_080F3938:
+ bl sub_80F3970
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F3942:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F3952
+ b _080F3960
+_080F394E:
+ movs r0, 0
+ b _080F3962
+_080F3952:
+ ldr r0, _080F3968
+ ldr r1, [r0]
+ ldr r0, _080F396C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F3960:
+ movs r0, 0x1
+_080F3962:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3968: .4byte gUnknown_083DFEC4
+_080F396C: .4byte 0x00000306
+ thumb_func_end sub_80F38EC
+
+ thumb_func_start sub_80F3970
+sub_80F3970: @ 80F3970
+ push {lr}
+ ldr r0, _080F3998
+ ldr r0, [r0]
+ ldr r1, _080F399C
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F39A0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3992
+_080F3988:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3988
+_080F3992:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3998: .4byte gUnknown_083DFEC4
+_080F399C: .4byte 0x0000bc93
+_080F39A0: .4byte 0x00006dac
+ thumb_func_end sub_80F3970
+
+ thumb_func_start sub_80F39A4
+sub_80F39A4: @ 80F39A4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r0, _080F3A18
+ ldr r1, [r0]
+ ldr r0, _080F3A1C
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xB
+ bhi _080F3A30
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r2, _080F3A20
+ adds r0, r2
+ adds r0, r1, r0
+ str r0, [sp]
+ ldr r5, _080F3A24
+ ldr r2, [sp, 0x4]
+ ands r2, r5
+ movs r0, 0x80
+ lsls r0, 2
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldrb r1, [r4]
+ adds r1, 0xB
+ lsls r1, 16
+ ldr r0, _080F3A28
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bhi _080F3A04
+ lsls r0, 5
+ ldr r1, _080F3A2C
+ adds r0, r1
+ str r0, [sp, 0x8]
+ ldrb r2, [r4]
+ adds r2, 0xA
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_080F3A04:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F3A30
+ movs r0, 0x1
+ b _080F3A32
+ .align 2, 0
+_080F3A18: .4byte gUnknown_083DFEC4
+_080F3A1C: .4byte 0x0000bc93
+_080F3A20: .4byte 0x0000a44c
+_080F3A24: .4byte 0xffff0000
+_080F3A28: .4byte 0x0000ffff
+_080F3A2C: .4byte gUnknown_083E3C60
+_080F3A30:
+ movs r0, 0
+_080F3A32:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F39A4
+
+ thumb_func_start sub_80F3A3C
+sub_80F3A3C: @ 80F3A3C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, 0x2
+ bhi _080F3A60
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080F3A5C
+ b _080F3A78
+ .align 2, 0
+_080F3A5C: .4byte gUnknown_083DFEC4
+_080F3A60:
+ ldr r2, _080F3AD0
+ ldr r1, [r2]
+ ldr r3, _080F3AD4
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ ldr r6, _080F3AD8
+ adds r1, r6
+ ldrb r1, [r1]
+ subs r0, r1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080F3A78:
+ ldr r0, [r2]
+ ldr r7, _080F3ADC
+ adds r0, r7
+ adds r0, r1
+ ldrb r2, [r0]
+ mov r1, sp
+ ldr r0, _080F3AE0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ mov r3, sp
+ ldr r1, _080F3AE4
+ lsls r2, 2
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r0, 0xB
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r0, [r2]
+ adds r0, 0xA
+ strh r0, [r3, 0x2]
+ lsls r1, r5, 20
+ movs r0, 0xC0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r4, 20
+ movs r3, 0xA0
+ lsls r3, 14
+ adds r2, r3
+ asrs r2, 16
+ mov r0, sp
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3AE8
+ movs r0, 0
+ b _080F3AF2
+ .align 2, 0
+_080F3AD0: .4byte gUnknown_083DFEC4
+_080F3AD4: .4byte 0x0000bc8e
+_080F3AD8: .4byte 0x0000bc8f
+_080F3ADC: .4byte 0x0000bc4c
+_080F3AE0: .4byte gSpriteTemplate_83E476C
+_080F3AE4: .4byte gUnknown_083E4698
+_080F3AE8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3AFC
+ adds r0, r1
+_080F3AF2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3AFC: .4byte gSprites
+ thumb_func_end sub_80F3A3C
+
+ thumb_func_start sub_80F3B00
+sub_80F3B00: @ 80F3B00
+ push {r4,lr}
+ ldr r0, _080F3B34
+ ldr r4, [r0]
+ ldr r1, _080F3B38
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F3B3C
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F3A3C
+ adds r2, r0, 0
+ ldr r1, _080F3B40
+ adds r0, r4, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _080F3B48
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r2, _080F3B44
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3B4E
+ .align 2, 0
+_080F3B34: .4byte gUnknown_083DFEC4
+_080F3B38: .4byte 0x0000bc90
+_080F3B3C: .4byte 0x0000bc91
+_080F3B40: .4byte 0x00009348
+_080F3B44: .4byte 0x0000bc92
+_080F3B48:
+ ldr r1, _080F3B54
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3B4E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3B54: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B00
+
+ thumb_func_start sub_80F3B58
+sub_80F3B58: @ 80F3B58
+ push {lr}
+ ldr r0, _080F3B6C
+ ldr r1, [r0]
+ ldr r0, _080F3B70
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F3B74
+ movs r0, 0
+ b _080F3B8A
+ .align 2, 0
+_080F3B6C: .4byte gUnknown_083DFEC4
+_080F3B70: .4byte 0x0000bc92
+_080F3B74:
+ ldr r3, _080F3B90
+ adds r0, r1, r3
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+_080F3B8A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3B90: .4byte 0x00009348
+ thumb_func_end sub_80F3B58
+
+ thumb_func_start sub_80F3B94
+sub_80F3B94: @ 80F3B94
+ push {r4,lr}
+ ldr r0, _080F3BB8
+ ldr r4, [r0]
+ ldr r1, _080F3BBC
+ adds r0, r4, r1
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080F3BC4
+ adds r0, r2, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080F3BC0
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3BCA
+ .align 2, 0
+_080F3BB8: .4byte gUnknown_083DFEC4
+_080F3BBC: .4byte 0x00009348
+_080F3BC0: .4byte 0x0000bc92
+_080F3BC4:
+ ldr r1, _080F3BD0
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3BD0: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B94
+
+ thumb_func_start sub_80F3BD4
+sub_80F3BD4: @ 80F3BD4
+ push {r4-r6,lr}
+ ldr r0, _080F3C18
+ ldr r1, [r0]
+ ldr r0, _080F3C1C
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F3C24
+ ldr r0, _080F3C20
+ adds r4, r1, r0
+ ldr r0, [r4]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r5]
+ adds r6, r0, 0
+ cmp r6, 0
+ bne _080F3C12
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ str r6, [r4]
+_080F3C12:
+ ldrb r0, [r5]
+ b _080F3C26
+ .align 2, 0
+_080F3C18: .4byte gUnknown_083DFEC4
+_080F3C1C: .4byte 0x0000bc92
+_080F3C20: .4byte 0x00009348
+_080F3C24:
+ movs r0, 0
+_080F3C26:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F3BD4
+
+ thumb_func_start sub_80F3C2C
+sub_80F3C2C: @ 80F3C2C
+ push {r4,lr}
+ ldr r0, _080F3C8C
+ ldr r0, [r0]
+ ldr r1, _080F3C90
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3C50
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F3C50:
+ movs r4, 0
+_080F3C52:
+ adds r0, r4, 0
+ adds r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xB
+ bls _080F3C52
+ movs r4, 0
+_080F3C6A:
+ adds r0, r4, 0
+ adds r0, 0xA
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F3C6A
+ bl sub_80F2F48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3C8C: .4byte gUnknown_083DFEC4
+_080F3C90: .4byte 0x00009348
+ thumb_func_end sub_80F3C2C
+
+ thumb_func_start sub_80F3C94
+sub_80F3C94: @ 80F3C94
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080F3CDC
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080F3CE0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r0, sp
+ bl LoadSpriteSheet
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r1, 0
+ ldr r0, _080F3CE4
+ ldr r0, [r0]
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r0, r3
+ movs r3, 0
+_080F3CC6:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ str r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9
+ bls _080F3CC6
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3CDC: .4byte gUnknown_083E4784
+_080F3CE0: .4byte gUnknown_083E478C
+_080F3CE4: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3C94
+
+ thumb_func_start sub_80F3CE8
+sub_80F3CE8: @ 80F3CE8
+ push {lr}
+ bl move_anim_execute
+ movs r0, 0x17
+ bl FreeSpriteTilesByTag
+ movs r0, 0xF
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3CE8
+
+ thumb_func_start sub_80F3D00
+sub_80F3D00: @ 80F3D00
+ push {r4,r5,lr}
+ ldr r0, _080F3D34
+ ldr r2, [r0]
+ ldr r1, _080F3D38
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ ldr r1, _080F3D3C
+ adds r0, r1
+ adds r0, r2, r0
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3D94
+ ldr r3, _080F3D40
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldr r3, _080F3D44
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r5, [r0]
+ movs r4, 0
+ b _080F3D86
+ .align 2, 0
+_080F3D34: .4byte gUnknown_083DFEC4
+_080F3D38: .4byte 0x000087dc
+_080F3D3C: .4byte 0x0000893c
+_080F3D40: .4byte 0x00008fe9
+_080F3D44: .4byte 0x00008931
+_080F3D48:
+ ldr r0, _080F3D9C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3D8C
+ ldr r0, _080F3DA0
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3DA4
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F3D86:
+ adds r0, r5, 0x1
+ cmp r4, r0
+ blt _080F3D48
+_080F3D8C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80F3F20
+_080F3D94:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3D9C: .4byte gSpriteTemplate_83E4800
+_080F3DA0: .4byte gUnknown_083DFEC4
+_080F3DA4: .4byte gSprites
+ thumb_func_end sub_80F3D00
+
+ thumb_func_start move_anim_execute
+move_anim_execute: @ 80F3DA8
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F3DD8
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+_080F3DB6:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3DD2
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3DB6
+_080F3DD2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3DD8: .4byte gUnknown_083DFEC4
+ thumb_func_end move_anim_execute
+
+ thumb_func_start sub_80F3DDC
+sub_80F3DDC: @ 80F3DDC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080F3DFE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80F3F20
+_080F3DFE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3DDC
+
+ thumb_func_start sub_80F3E04
+sub_80F3E04: @ 80F3E04
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3E1C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r0, _080F3E20
+ str r0, [r2, 0x1C]
+_080F3E1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E20: .4byte sub_80F3DDC
+ thumb_func_end sub_80F3E04
+
+ thumb_func_start sub_80F3E24
+sub_80F3E24: @ 80F3E24
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F3E64
+ ldr r0, [r0]
+ ldr r1, _080F3E68
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3E70
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ ldr r2, _080F3E6C
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 2
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ b _080F3E8E
+ .align 2, 0
+_080F3E64: .4byte gUnknown_083DFEC4
+_080F3E68: .4byte 0x00008768
+_080F3E6C: .4byte gUnknown_083E4794
+_080F3E70:
+ ldr r1, _080F3E98
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x28
+ strh r0, [r3, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x68
+_080F3E8E:
+ strh r0, [r3, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E98: .4byte gUnknown_083E4794
+ thumb_func_end sub_80F3E24
+
+ thumb_func_start sub_80F3E9C
+sub_80F3E9C: @ 80F3E9C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080F3ECA
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F3F14
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080F3ECA:
+ adds r0, r4, 0
+ bl sub_80F3E24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3F14
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080F3F10
+ cmp r1, 0x9
+ bne _080F3F08
+ bl sub_80F3FAC
+ ldr r0, _080F3F04
+ b _080F3F12
+ .align 2, 0
+_080F3F04: .4byte sub_80F3E04
+_080F3F08:
+ ldr r0, _080F3F0C
+ b _080F3F12
+ .align 2, 0
+_080F3F0C: .4byte sub_80F3DDC
+_080F3F10:
+ ldr r0, _080F3F1C
+_080F3F12:
+ str r0, [r4, 0x1C]
+_080F3F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3F1C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F3E9C
+
+ thumb_func_start sub_80F3F20
+sub_80F3F20: @ 80F3F20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080F3F6C
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r7, r0, r1
+_080F3F3C:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3F92
+ strh r5, [r0, 0x2E]
+ ldr r1, [r4]
+ lsls r0, r5, 4
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r0, [r4]
+ strh r6, [r0, 0x32]
+ ldr r0, [r4]
+ strh r5, [r0, 0x34]
+ mov r3, r8
+ cmp r3, 0
+ beq _080F3F62
+ cmp r6, 0x9
+ beq _080F3F74
+_080F3F62:
+ ldr r1, [r4]
+ ldr r0, _080F3F70
+ str r0, [r1, 0x1C]
+ b _080F3F92
+ .align 2, 0
+_080F3F6C: .4byte gUnknown_083DFEC4
+_080F3F70: .4byte sub_80F3E9C
+_080F3F74:
+ ldr r0, [r4]
+ bl sub_80F3E24
+ bl sub_80F3FAC
+ ldr r2, [r4]
+ ldr r0, _080F3FA8
+ str r0, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x5
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+_080F3F92:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FA8: .4byte sub_80F3E04
+ thumb_func_end sub_80F3F20
+
+ thumb_func_start sub_80F3FAC
+sub_80F3FAC: @ 80F3FAC
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r0, _080F3FEC
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+ movs r0, 0x5
+ negs r0, r0
+ adds r7, r0, 0
+_080F3FC0:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3FDA
+ movs r1, 0
+ bl SeekSpriteAnim
+ ldr r1, [r4]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ ands r0, r7
+ strb r0, [r1]
+_080F3FDA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3FC0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FEC: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3FAC
+
+ thumb_func_start sub_80F3FF0
+sub_80F3FF0: @ 80F3FF0
+ push {lr}
+ ldr r0, _080F4018
+ ldr r0, [r0]
+ ldr r1, _080F401C
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F4020
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4012
+_080F4008:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4008
+_080F4012:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4018: .4byte gUnknown_083DFEC4
+_080F401C: .4byte 0x00000306
+_080F4020: .4byte 0x00006dac
+ thumb_func_end sub_80F3FF0
+
+ thumb_func_start sub_80F4024
+sub_80F4024: @ 80F4024
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _080F4040
+ ldr r4, [r0]
+ ldr r1, _080F4044
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F4068
+ cmp r0, 0x1
+ bgt _080F4048
+ cmp r0, 0
+ beq _080F4052
+ b _080F4106
+ .align 2, 0
+_080F4040: .4byte gUnknown_083DFEC4
+_080F4044: .4byte 0x00000306
+_080F4048:
+ cmp r0, 0x2
+ beq _080F4084
+ cmp r0, 0x3
+ beq _080F40B8
+ b _080F4106
+_080F4052:
+ ldr r0, _080F4060
+ ldr r2, _080F4064
+ adds r1, r4, r2
+ bl LZ77UnCompWram
+ b _080F4118
+ .align 2, 0
+_080F4060: .4byte gUnknown_083E329C
+_080F4064: .4byte 0x000131e4
+_080F4068:
+ ldr r1, _080F407C
+ adds r0, r4, r1
+ str r0, [sp]
+ ldr r0, _080F4080
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ b _080F4118
+ .align 2, 0
+_080F407C: .4byte 0x000131e4
+_080F4080: .4byte 0x00181000
+_080F4084:
+ ldr r0, _080F40B4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r0, 0x10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r2, r4, r1
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ movs r0, 0x3
+ negs r0, r0
+ bics r0, r1
+ str r0, [r2]
+ b _080F4118
+ .align 2, 0
+_080F40B4: .4byte gUnknown_083E4818
+_080F40B8:
+ ldr r0, _080F40E4
+ movs r1, 0xDA
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F40F0
+ ldr r0, _080F40E8
+ adds r2, r4, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F40EC
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _080F40F8
+ .align 2, 0
+_080F40E4: .4byte gSpriteTemplate_83E4850
+_080F40E8: .4byte 0x00006d98
+_080F40EC: .4byte gSprites
+_080F40F0:
+ ldr r2, _080F410C
+ adds r1, r4, r2
+ movs r0, 0
+ str r0, [r1]
+_080F40F8:
+ ldr r0, _080F4110
+ ldr r1, [r0]
+ ldr r0, _080F4114
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F4106:
+ movs r0, 0
+ b _080F4128
+ .align 2, 0
+_080F410C: .4byte 0x00006d98
+_080F4110: .4byte gUnknown_083DFEC4
+_080F4114: .4byte 0x00000306
+_080F4118:
+ ldr r0, _080F4130
+ ldr r1, [r0]
+ ldr r2, _080F4134
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F4128:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4130: .4byte gUnknown_083DFEC4
+_080F4134: .4byte 0x00000306
+ thumb_func_end sub_80F4024
+
+ thumb_func_start sub_80F4138
+sub_80F4138: @ 80F4138
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F4170
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _080F4174
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ b _080F418C
+ .align 2, 0
+_080F4170: .4byte gUnknown_083DFEC4
+_080F4174:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ movs r0, 0
+_080F418C:
+ strh r0, [r2, 0x2E]
+_080F418E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4138
+
+ thumb_func_start sub_80F4194
+sub_80F4194: @ 80F4194
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080F42A4
+ ldr r6, [r0]
+ mov r0, sp
+ ldr r1, _080F42A8
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r4, _080F42AC
+ str r0, [r4]
+ str r6, [r4, 0x4]
+ ldr r3, _080F42B0
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0x80
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r5, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080F42B4
+ adds r1, r6, 0
+ bl sub_8004E3C
+ movs r3, 0x88
+ lsls r3, 2
+ adds r1, r6, r3
+ mov r0, sp
+ movs r3, 0
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r2, _080F42B8
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC4
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r1, 0x80
+ lsls r1, 2
+ adds r2, r6, r1
+ ldr r0, [r2]
+ ldr r1, _080F42BC
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r3, 0xC0
+ lsls r3, 3
+ adds r2, r6, r3
+ ldr r0, [r2]
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r1, 0
+ ldr r2, _080F42C0
+_080F4268:
+ lsls r0, r1, 7
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 8
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ lsls r0, r1, 7
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 3
+ adds r0, 0x4
+ lsls r0, 5
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080F4268
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F42A4: .4byte gUnknown_083DFEC8
+_080F42A8: .4byte 0x00001111
+_080F42AC: .4byte 0x040000d4
+_080F42B0: .4byte 0x81000140
+_080F42B4: .4byte gWindowConfig_81E70F0
+_080F42B8: .4byte 0x81000030
+_080F42BC: .4byte 0x0fffffff
+_080F42C0: .4byte 0x80000040
+ thumb_func_end sub_80F4194
+
+ thumb_func_start sub_80F42C4
+sub_80F42C4: @ 80F42C4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r1, r0, 0
+ ldr r0, _080F433C
+ ldr r0, [r0]
+ ldr r2, _080F4340
+ adds r0, r2
+ str r0, [sp]
+ ldr r2, _080F4344
+ str r2, [sp, 0x4]
+ bl sub_80F4194
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080F4348
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r4, 0
+ ldr r6, _080F434C
+_080F42EE:
+ lsls r1, r4, 21
+ movs r7, 0xE2
+ lsls r7, 15
+ adds r1, r7
+ asrs r1, 16
+ ldr r0, _080F4350
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080F4360
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r6
+ ldrh r2, [r3, 0x4]
+ lsls r0, r2, 22
+ lsrs r0, 22
+ adds r0, r5, r0
+ ldr r7, _080F4354
+ adds r1, r7, 0
+ ands r0, r1
+ ldr r7, _080F4358
+ adds r1, r7, 0
+ ands r2, r1
+ orrs r2, r0
+ strh r2, [r3, 0x4]
+ ldr r0, _080F433C
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F435C
+ adds r0, r2
+ adds r0, r1
+ str r3, [r0]
+ b _080F4370
+ .align 2, 0
+_080F433C: .4byte gUnknown_083DFEC4
+_080F4340: .4byte 0x0000d1e4
+_080F4344: .4byte 0x001a0500
+_080F4348: .4byte gUnknown_083E4868
+_080F434C: .4byte gSprites
+_080F4350: .4byte gSpriteTemplate_83E4878
+_080F4354: .4byte 0x000003ff
+_080F4358: .4byte 0xfffffc00
+_080F435C: .4byte 0x0000ced4
+_080F4360:
+ ldr r0, _080F438C
+ ldr r1, [r0]
+ lsls r0, r4, 2
+ ldr r7, _080F4390
+ adds r1, r7
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_080F4370:
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F42EE
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F438C: .4byte gUnknown_083DFEC4
+_080F4390: .4byte 0x0000ced4
+ thumb_func_end sub_80F42C4
+
+ thumb_func_start sub_80F4394
+sub_80F4394: @ 80F4394
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080F43CC
+ ldr r0, [r0]
+ ldr r1, _080F43D0
+ adds r5, r0, r1
+_080F43A0:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F43AE
+ bl DestroySprite
+_080F43AE:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F43A0
+ movs r0, 0x1A
+ bl FreeSpriteTilesByTag
+ movs r0, 0x12
+ bl FreeSpritePaletteByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F43CC: .4byte gUnknown_083DFEC4
+_080F43D0: .4byte 0x0000ced4
+ thumb_func_end sub_80F4394
+
+ thumb_func_start sub_80F43D4
+sub_80F43D4: @ 80F43D4
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r0, _080F4410
+ ldr r0, [r0]
+ ldr r2, _080F4414
+ adds r4, r0, r2
+ adds r0, r4, 0
+ bl sub_80F4194
+ movs r0, 0x1A
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F4418
+ cmp r1, r0
+ beq _080F4408
+ lsls r0, r1, 5
+ ldr r1, _080F441C
+ adds r0, r1
+ ldr r1, _080F4420
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080F4424
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080F4408:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4410: .4byte gUnknown_083DFEC4
+_080F4414: .4byte 0x0000d1e4
+_080F4418: .4byte 0x0000ffff
+_080F441C: .4byte 0x06010000
+_080F4420: .4byte 0x040000d4
+_080F4424: .4byte 0x84000140
+ thumb_func_end sub_80F43D4
+
+ thumb_func_start sub_80F4428
+sub_80F4428: @ 80F4428
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80F6514
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4428
+
+ thumb_func_start sub_80F443C
+sub_80F443C: @ 80F443C
+ push {r4,lr}
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r1, _080F4458
+ bl StringCopy
+ adds r1, r4, 0
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_8072C14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4458: .4byte gOtherText_Number
+ thumb_func_end sub_80F443C
+
+ thumb_func_start sub_80F445C
+sub_80F445C: @ 80F445C
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x17
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r3, 0xFC
+ strb r3, [r4]
+ movs r2, 0x11
+ strb r2, [r4, 0x1]
+ movs r1, 0x1
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ strb r3, [r4]
+ strb r2, [r4, 0x1]
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _080F44A8
+ ldr r0, [r0]
+ ldr r1, _080F44AC
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x32
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F44A8: .4byte gUnknown_083DFEC4
+_080F44AC: .4byte 0x00008774
+ thumb_func_end sub_80F445C
+
+ thumb_func_start sub_80F44B0
+sub_80F44B0: @ 80F44B0
+ push {r4,lr}
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r0, 0xE
+ bne _080F44F4
+ cmp r4, 0x2
+ beq _080F44C8
+ cmp r4, 0x7
+ bne _080F44E0
+_080F44C8:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44DC
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44DC: .4byte gPlayerParty
+_080F44E0:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44F0
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44F0: .4byte gPlayerParty
+_080F44F4:
+ cmp r4, 0x2
+ beq _080F44FC
+ cmp r4, 0x7
+ bne _080F4520
+_080F44FC:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F451C
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetBoxMonData
+ b _080F453C
+ .align 2, 0
+_080F451C: .4byte gUnknown_020300A4
+_080F4520:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F4544
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetBoxMonData
+_080F453C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4544: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F44B0
+
+ thumb_func_start sub_80F4548
+sub_80F4548: @ 80F4548
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ mov r0, sp
+ strb r2, [r0]
+ cmp r3, 0xE
+ bne _080F4574
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F4570
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _080F4592
+ .align 2, 0
+_080F4570: .4byte gPlayerParty
+_080F4574:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ ldr r2, _080F459C
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_080F4592:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F459C: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F4548
+
+ thumb_func_start sub_80F45A0
+sub_80F45A0: @ 80F45A0
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080F45F0
+ ldr r5, [r1]
+ lsls r1, r0, 16
+ asrs r0, r1, 14
+ adds r4, r5, r0
+ ldr r2, _080F45F4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r7, r0, 31
+ cmp r7, 0
+ beq _080F4644
+ lsls r0, r6, 6
+ ldr r2, _080F45F8
+ adds r0, r2
+ adds r0, r5, r0
+ lsrs r1, 16
+ movs r2, 0
+ bl sub_80F4428
+ ldr r1, _080F45FC
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0xE
+ bne _080F4608
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4600
+ adds r0, r2
+ adds r0, r5, r0
+ ldr r1, _080F4604
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ b _080F4624
+ .align 2, 0
+_080F45F0: .4byte gUnknown_083DFEC4
+_080F45F4: .4byte 0x0000893f
+_080F45F8: .4byte 0x00008829
+_080F45FC: .4byte 0x0000893d
+_080F4600: .4byte 0x000088e9
+_080F4604: .4byte gOtherText_InParty
+_080F4608:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F4634
+ adds r0, r1
+ adds r0, r5, r0
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _080F4638
+ adds r1, r2
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+_080F4624:
+ ldr r0, _080F463C
+ ldr r0, [r0]
+ ldr r2, _080F4640
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080F4676
+ .align 2, 0
+_080F4634: .4byte 0x000088e9
+_080F4638: .4byte gUnknown_020383E4
+_080F463C: .4byte gUnknown_083DFEC4
+_080F4640: .4byte 0x00008937
+_080F4644:
+ lsls r0, r6, 6
+ ldr r1, _080F467C
+ adds r0, r1
+ adds r0, r5, r0
+ ldr r4, _080F4680
+ adds r1, r4, 0
+ movs r2, 0x68
+ movs r3, 0
+ bl sub_8072C74
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4684
+ adds r0, r2
+ adds r0, r5, r0
+ adds r1, r4, 0
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ ldr r1, _080F4688
+ adds r0, r5, r1
+ adds r0, r6
+ strb r7, [r0]
+_080F4676:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F467C: .4byte 0x00008829
+_080F4680: .4byte gEmptyString_81E72B0
+_080F4684: .4byte 0x000088e9
+_080F4688: .4byte 0x00008937
+ thumb_func_end sub_80F45A0
+
+ thumb_func_start sub_80F468C
+sub_80F468C: @ 80F468C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F475C
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F4760
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080F46B2
+ b _080F47C4
+_080F46B2:
+ ldr r3, _080F4764
+ adds r0, r1, r3
+ ldrb r5, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r6, r0, 27
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x16
+ movs r3, 0
+ bl sub_80F44B0
+ mov r3, r9
+ lsls r3, 2
+ mov r8, r3
+ mov r4, r8
+ add r4, r9
+ ldr r2, _080F4768
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x2F
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F476C
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x21
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4770
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F4774
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4778
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldr r3, _080F477C
+ adds r0, r7, r3
+ mov r7, r9
+ adds r4, r0, r7
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0xFF
+ beq _080F4780
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F4782
+ .align 2, 0
+_080F475C: .4byte gUnknown_083DFEC4
+_080F4760: .4byte 0x0000893f
+_080F4764: .4byte 0x0000893d
+_080F4768: .4byte 0x00008ff0
+_080F476C: .4byte 0x00008ff1
+_080F4770: .4byte 0x00008ff2
+_080F4774: .4byte 0x00008ff3
+_080F4778: .4byte 0x00008ff4
+_080F477C: .4byte 0x00008931
+_080F4780:
+ movs r0, 0x9
+_080F4782:
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r1, _080F47B4
+ ldr r1, [r1]
+ ldr r3, _080F47B8
+ adds r2, r1, r3
+ add r2, r9
+ strb r0, [r2]
+ mov r2, r8
+ add r2, r9
+ ldr r7, _080F47BC
+ adds r0, r2, r7
+ adds r0, r1, r0
+ lsls r2, 2
+ ldr r3, _080F47C0
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F55AC
+ b _080F480A
+ .align 2, 0
+_080F47B4: .4byte gUnknown_083DFEC4
+_080F47B8: .4byte 0x00008934
+_080F47BC: .4byte 0x00008ff0
+_080F47C0: .4byte 0x00009004
+_080F47C4:
+ movs r3, 0
+ mov r0, r9
+ lsls r0, 2
+ mov r8, r0
+ adds r4, r7, 0
+ mov r2, r8
+ add r2, r9
+ ldr r1, _080F4818
+ adds r6, r4, r1
+ lsls r5, r2, 2
+ mov r9, r3
+ ldr r7, _080F481C
+ mov r8, r7
+ movs r0, 0x9B
+ mov r12, r0
+_080F47E2:
+ adds r0, r3, r2
+ adds r0, r6, r0
+ mov r1, r9
+ strb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r5
+ adds r0, r4, r0
+ mov r7, r8
+ adds r1, r0, r7
+ mov r7, r12
+ strh r7, [r1]
+ ldr r1, _080F4820
+ adds r0, r1
+ movs r1, 0x5B
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080F47E2
+_080F480A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4818: .4byte 0x00008ff0
+_080F481C: .4byte 0x00009004
+_080F4820: .4byte 0x00009006
+ thumb_func_end sub_80F468C
+
+ thumb_func_start sub_80F4824
+sub_80F4824: @ 80F4824
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F48E0
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F48E4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F48D0
+ ldr r6, _080F48E8
+ adds r0, r1, r6
+ ldrb r6, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ lsls r4, 27
+ lsrs r4, 27
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x41
+ movs r3, 0
+ bl sub_80F44B0
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_80F44B0
+ mov r8, r0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r4, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _080F48EC
+ adds r0, r1
+ ldr r2, _080F48F0
+ lsls r1, r5, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r6, _080F48F4
+ adds r3, r7, r6
+ mov r6, r9
+ lsls r2, r6, 13
+ ldr r6, _080F48F8
+ adds r2, r6
+ adds r2, r7, r2
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r4, 0
+ bl species_and_otid_get_pal
+ mov r2, r9
+ lsls r1, r2, 7
+ adds r1, r7, r1
+ bl LZ77UnCompWram
+ mov r6, r9
+ lsls r1, r6, 1
+ ldr r2, _080F48FC
+ adds r0, r7, r2
+ adds r0, r1
+ strh r5, [r0]
+_080F48D0:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F48E0: .4byte gUnknown_083DFEC4
+_080F48E4: .4byte 0x0000893f
+_080F48E8: .4byte 0x0000893d
+_080F48EC: .4byte gMonFrontPicTable
+_080F48F0: .4byte gMonFrontPicCoords
+_080F48F4: .4byte 0x000131e4
+_080F48F8: .4byte 0x0000d1e4
+_080F48FC: .4byte 0x0000d1d6
+ thumb_func_end sub_80F4824
+
+ thumb_func_start sub_80F4900
+sub_80F4900: @ 80F4900
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F45A0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F468C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F4824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4900
+
+ thumb_func_start sub_80F492C
+sub_80F492C: @ 80F492C
+ ldr r0, _080F493C
+ ldr r0, [r0]
+ ldr r1, _080F4940
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F493C: .4byte gUnknown_083DFEC4
+_080F4940: .4byte 0x00008fe4
+ thumb_func_end sub_80F492C
+
+ thumb_func_start sub_80F4944
+sub_80F4944: @ 80F4944
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ movs r2, 0
+ ldr r1, _080F4978
+ ldr r5, [r1]
+ ldr r3, _080F497C
+ adds r0, r5, r3
+ ldrh r4, [r0]
+ lsrs r3, r4, 1
+ mov r8, r1
+ cmp r4, r3
+ beq _080F499C
+ adds r6, r5, 0
+ mov r0, r12
+ ldrb r5, [r0]
+ ldr r7, _080F4980
+_080F4968:
+ lsls r0, r3, 2
+ adds r0, r6, r0
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080F4984
+ adds r4, r3, 0
+ b _080F498A
+ .align 2, 0
+_080F4978: .4byte gUnknown_083DFEC4
+_080F497C: .4byte 0x00008fe4
+_080F4980: .4byte 0x0000893c
+_080F4984:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F498A:
+ subs r0, r4, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, r3
+ bne _080F4968
+_080F499C:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r1, _080F49EC
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ lsls r6, r3, 2
+ cmp r4, r3
+ bls _080F49C6
+ ldr r0, _080F49F0
+ adds r5, r2, r0
+_080F49B0:
+ lsls r2, r4, 2
+ adds r2, r5, r2
+ subs r1, r4, 0x1
+ lsls r0, r1, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ str r0, [r2]
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, r3
+ bhi _080F49B0
+_080F49C6:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r3, _080F49F0
+ adds r0, r2, r3
+ adds r0, r6
+ mov r3, r12
+ ldr r1, [r3]
+ str r1, [r0]
+ ldr r0, _080F49EC
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F49EC: .4byte 0x00008fe4
+_080F49F0: .4byte 0x0000893c
+ thumb_func_end sub_80F4944
+
+ thumb_func_start sub_80F49F4
+sub_80F49F4: @ 80F49F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r3, _080F4A64
+ ldr r4, [r3]
+ ldr r7, _080F4A68
+ adds r2, r4, r7
+ ldrh r1, [r2]
+ ldr r0, _080F4A6C
+ mov r12, r0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+ movs r5, 0x1
+ ldr r1, _080F4A70
+ adds r0, r4, r1
+ ldrh r3, [r0]
+ cmp r5, r3
+ bcs _080F4A9E
+ adds r6, r4, 0
+ ldr r1, _080F4A74
+ mov r8, r1
+ ldr r3, _080F4A78
+ mov r10, r3
+ mov r9, r0
+_080F4A2C:
+ lsls r0, r5, 2
+ adds r3, r6, r0
+ mov r0, r8
+ adds r2, r3, r0
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r4, r6, r0
+ mov r0, r8
+ adds r1, r4, r0
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080F4A7C
+ adds r0, r4, r7
+ ldrh r0, [r0]
+ lsls r0, 18
+ lsrs r0, 23
+ adds r3, r7
+ ldr r1, _080F4A78
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, r5, 0x1
+ b _080F4A92
+ .align 2, 0
+_080F4A64: .4byte gUnknown_083DFEC4
+_080F4A68: .4byte 0x0000893e
+_080F4A6C: .4byte 0xffffc01f
+_080F4A70: .4byte 0x00008fe4
+_080F4A74: .4byte 0x0000893c
+_080F4A78: .4byte 0x000001ff
+_080F4A7C:
+ adds r4, r5, 0x1
+ adds r3, r7
+ adds r1, r4, 0
+ mov r0, r10
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_080F4A92:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ mov r1, r9
+ ldrh r1, [r1]
+ cmp r5, r1
+ bcc _080F4A2C
+_080F4A9E:
+ ldr r3, _080F4AC4
+ ldr r2, [r3]
+ ldr r1, _080F4AC8
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r3, _080F4ACC
+ adds r0, r2, r3
+ strh r1, [r0]
+ subs r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _080F4AD0
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F4AD4
+ subs r1, r0, 0x1
+ b _080F4AD6
+ .align 2, 0
+_080F4AC4: .4byte gUnknown_083DFEC4
+_080F4AC8: .4byte 0x0000876c
+_080F4ACC: .4byte 0x00008770
+_080F4AD0: .4byte 0x00008fe4
+_080F4AD4:
+ movs r1, 0x7
+_080F4AD6:
+ ldr r3, _080F4B10
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _080F4B14
+ ldr r2, [r0]
+ ldr r1, _080F4B18
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ adds r3, 0x2
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F4AFA
+ movs r1, 0x1
+_080F4AFA:
+ ldr r3, _080F4B1C
+ adds r0, r2, r3
+ strb r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4B10: .4byte 0x00008772
+_080F4B14: .4byte gUnknown_083DFEC4
+_080F4B18: .4byte 0x00008fe4
+_080F4B1C: .4byte 0x000087c9
+ thumb_func_end sub_80F49F4
+
+ thumb_func_start sub_80F4B20
+sub_80F4B20: @ 80F4B20
+ push {r4-r6,lr}
+ ldr r0, _080F4B5C
+ ldr r4, [r0]
+ ldr r0, _080F4B60
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0
+ bl sub_80F4900
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _080F4B64
+ adds r2, r4, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F4B6C
+ ldr r2, _080F4B68
+ adds r0, r4, r2
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ b _080F4BBE
+ .align 2, 0
+_080F4B5C: .4byte gUnknown_083DFEC4
+_080F4B60: .4byte 0x000087dc
+_080F4B64: .4byte 0x000087da
+_080F4B68: .4byte 0x00008fe9
+_080F4B6C:
+ ldr r0, _080F4BC4
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080F4BC8
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080F4BCC
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrh r3, [r5]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ ldrh r6, [r2]
+ movs r4, 0
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080F4B9A
+ movs r5, 0
+_080F4B9A:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r0, 0
+ bge _080F4BAA
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F4BAA:
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_80F4900
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_80F4900
+_080F4BBE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4BC4: .4byte 0x00008fe9
+_080F4BC8: .4byte 0x00008fea
+_080F4BCC: .4byte 0x00008feb
+ thumb_func_end sub_80F4B20
+
+ thumb_func_start sub_80F4BD0
+sub_80F4BD0: @ 80F4BD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r7, 0
+ ldr r0, _080F4CC4
+ ldr r2, [r0]
+ ldr r3, _080F4CC8
+ adds r1, r2, r3
+ mov r9, r0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bcs _080F4C66
+ mov r10, r9
+ adds r4, r3, 0
+ adds r4, r2
+ mov r8, r4
+_080F4BF6:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F4CCC
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4C58
+ mov r0, r10
+ ldr r3, [r0]
+ lsls r0, r7, 2
+ adds r3, r0
+ ldr r2, _080F4CD0
+ adds r1, r3, r2
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r4, _080F4CD4
+ adds r5, r3, r4
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r5]
+ movs r4, 0x20
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5]
+ adds r4, r7, 0x1
+ ldr r7, _080F4CD8
+ adds r0, r7, 0
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 5
+ ldrh r0, [r5]
+ ldr r7, _080F4CDC
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5]
+ ldr r0, _080F4CE0
+ adds r3, r0
+ ldrb r0, [r3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r4, 16
+ lsrs r7, r4, 16
+_080F4C58:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r6, r1
+ bcc _080F4BF6
+_080F4C66:
+ mov r2, r9
+ ldr r4, [r2]
+ lsls r1, r7, 2
+ adds r1, r4, r1
+ ldr r3, _080F4CD0
+ adds r0, r1, r3
+ movs r5, 0
+ strb r5, [r0]
+ ldr r0, _080F4CD4
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r2]
+ ldrh r3, [r2]
+ ldr r0, _080F4CDC
+ ands r0, r3
+ strh r0, [r2]
+ ldr r2, _080F4CE0
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r3, _080F4CE4
+ adds r0, r4, r3
+ strh r5, [r0]
+ adds r1, r7, 0x1
+ ldr r7, _080F4CE8
+ adds r0, r4, r7
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r0, _080F4CEC
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4CC4: .4byte gUnknown_083DFEC4
+_080F4CC8: .4byte 0x00008828
+_080F4CCC: .4byte gPlayerParty
+_080F4CD0: .4byte 0x0000893d
+_080F4CD4: .4byte 0x0000893e
+_080F4CD8: .4byte 0x000001ff
+_080F4CDC: .4byte 0xffffc01f
+_080F4CE0: .4byte 0x0000893f
+_080F4CE4: .4byte 0x000087dc
+_080F4CE8: .4byte 0x000087da
+_080F4CEC: .4byte 0x000087cb
+ thumb_func_end sub_80F4BD0
+
+ thumb_func_start sub_80F4CF0
+sub_80F4CF0: @ 80F4CF0
+ push {r4,lr}
+ ldr r0, _080F4D1C
+ ldr r4, [r0]
+ ldr r1, _080F4D20
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ ldr r2, _080F4D24
+ adds r0, r4, r2
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r1, _080F4D28
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080F4D30
+ ldr r0, _080F4D2C
+ adds r1, r4, r0
+ movs r0, 0
+ b _080F4D36
+ .align 2, 0
+_080F4D1C: .4byte gUnknown_083DFEC4
+_080F4D20: .4byte 0x0000876e
+_080F4D24: .4byte 0x000087dc
+_080F4D28: .4byte 0x00008774
+_080F4D2C: .4byte 0x000087cb
+_080F4D30:
+ ldr r2, _080F4D40
+ adds r1, r4, r2
+ movs r0, 0x1
+_080F4D36:
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D40: .4byte 0x000087cb
+ thumb_func_end sub_80F4CF0
+
+ thumb_func_start sub_80F4D44
+sub_80F4D44: @ 80F4D44
+ push {r4,lr}
+ ldr r0, _080F4D78
+ ldr r4, [r0]
+ ldr r1, _080F4D7C
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F4D80
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F4D84
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F4D70
+_080F4D66:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4D66
+_080F4D70:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D78: .4byte gUnknown_083DFEC4
+_080F4D7C: .4byte 0x00008fe6
+_080F4D80: .4byte 0x00008fe7
+_080F4D84: .4byte 0x00006dac
+ thumb_func_end sub_80F4D44
+
+ thumb_func_start sub_80F4D88
+sub_80F4D88: @ 80F4D88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r6, _080F4E98
+ ldr r4, [r6]
+ ldr r1, _080F4E9C
+ adds r0, r4, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ bne _080F4DA4
+ b _080F4EB8
+_080F4DA4:
+ cmp r3, 0xF
+ bne _080F4DAA
+ b _080F4F60
+_080F4DAA:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r7, 0
+ mov r10, r6
+ ldr r2, _080F4E9C
+ adds r6, r4, r2
+ ldr r3, _080F4EA0
+ adds r5, r4, r3
+ ldr r0, _080F4EA4
+ adds r0, r4
+ mov r9, r0
+ ldr r1, _080F4EA8
+ mov r8, r1
+_080F4DCA:
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080F4E60
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F4E60
+ ldrb r1, [r6]
+ lsls r1, 8
+ ldr r2, _080F4EAC
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r5]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F4EB0
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ mov r2, r9
+ ldrb r1, [r2]
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F4EB4
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F4E60:
+ mov r3, r10
+ ldr r1, [r3]
+ ldr r0, _080F4EA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r2]
+ movs r3, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F4E8C
+ strb r4, [r2]
+ ldr r2, _080F4E9C
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ands r0, r3
+ cmp r0, 0xE
+ beq _080F4F64
+_080F4E8C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xE
+ bls _080F4DCA
+ b _080F4F64
+ .align 2, 0
+_080F4E98: .4byte gUnknown_083DFEC4
+_080F4E9C: .4byte 0x00008fe6
+_080F4EA0: .4byte 0x00008fe7
+_080F4EA4: .4byte 0x000087d8
+_080F4EA8: .4byte gUnknown_020300A4
+_080F4EAC: .4byte 0xffff00ff
+_080F4EB0: .4byte 0xffe0ffff
+_080F4EB4: .4byte 0xffffff00
+_080F4EB8:
+ mov r2, sp
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ strb r3, [r2, 0x1]
+ movs r7, 0
+ ldr r3, _080F4F44
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080F4F24
+ mov r5, sp
+ mov r8, r6
+ adds r6, r4, r3
+_080F4ED6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080F4F48
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4F18
+ movs r0, 0x1F
+ adds r2, r7, 0
+ ands r2, r0
+ ldrb r0, [r5, 0x2]
+ movs r3, 0x20
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x2]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _080F4F4C
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ mov r0, sp
+ bl sub_80F4944
+_080F4F18:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r3, [r6]
+ cmp r7, r3
+ bcc _080F4ED6
+_080F4F24:
+ bl sub_80F49F4
+ ldr r0, _080F4F50
+ ldr r1, [r0]
+ ldr r2, _080F4F54
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _080F4F58
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _080F4F5C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F4F64
+ .align 2, 0
+_080F4F44: .4byte 0x00008828
+_080F4F48: .4byte gPlayerParty
+_080F4F4C: .4byte 0x000087d8
+_080F4F50: .4byte gUnknown_083DFEC4
+_080F4F54: .4byte 0x00008fe4
+_080F4F58: .4byte 0x000087da
+_080F4F5C: .4byte 0x00008fe6
+_080F4F60:
+ movs r0, 0
+ b _080F4F66
+_080F4F64:
+ movs r0, 0x1
+_080F4F66:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4D88
+
+ thumb_func_start sub_80F4F78
+sub_80F4F78: @ 80F4F78
+ push {lr}
+ ldr r0, _080F4FA4
+ ldr r1, [r0]
+ ldr r2, _080F4FA8
+ adds r0, r1, r2
+ ldr r3, _080F4FAC
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsb r3, [r2, r3]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080F4FB0
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F53EC
+ bl sub_80F5504
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4FA4: .4byte gUnknown_083DFEC4
+_080F4FA8: .4byte 0x00009040
+_080F4FAC: .4byte 0x00008fe9
+_080F4FB0: .4byte 0x00009004
+ thumb_func_end sub_80F4F78
+
+ thumb_func_start sub_80F4FB4
+sub_80F4FB4: @ 80F4FB4
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F170C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F4FD2
+ cmp r0, 0
+ beq _080F4FD4
+_080F4FD2:
+ movs r1, 0x1
+_080F4FD4:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4FB4
+
+ thumb_func_start sub_80F4FDC
+sub_80F4FDC: @ 80F4FDC
+ push {lr}
+ ldr r0, _080F5020
+ ldr r2, [r0]
+ ldr r1, _080F5024
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4FFE
+ ldr r3, _080F5028
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, _080F502C
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080F501A
+_080F4FFE:
+ ldr r1, _080F5030
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080F5034
+ adds r0, r3
+ adds r0, r2, r0
+ adds r3, 0x3C
+ adds r1, r2, r3
+ bl sub_80F53EC
+_080F501A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5020: .4byte gUnknown_083DFEC4
+_080F5024: .4byte 0x000076aa
+_080F5028: .4byte 0x000087dc
+_080F502C: .4byte 0x00008828
+_080F5030: .4byte 0x00008fe9
+_080F5034: .4byte 0x00009004
+ thumb_func_end sub_80F4FDC
+
+ thumb_func_start sub_80F5038
+sub_80F5038: @ 80F5038
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F173C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F5056
+ cmp r0, 0
+ beq _080F5058
+_080F5056:
+ movs r1, 0x1
+_080F5058:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5038
+
+ thumb_func_start sub_80F5060
+sub_80F5060: @ 80F5060
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _080F507C
+ ldr r0, _080F5074
+ ldr r0, [r0]
+ ldr r1, _080F5078
+ adds r0, r1
+ b _080F5084
+ .align 2, 0
+_080F5074: .4byte gUnknown_083DFEC4
+_080F5078: .4byte 0x00008feb
+_080F507C:
+ ldr r0, _080F50FC
+ ldr r0, [r0]
+ ldr r2, _080F5100
+ adds r0, r2
+_080F5084:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F50FC
+ ldr r4, [r0]
+ ldr r3, _080F5104
+ adds r5, r4, r3
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080F5108
+ adds r0, r2
+ adds r0, r4, r0
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r2
+ adds r1, r4, r1
+ bl sub_80F53EC
+ ldr r0, _080F510C
+ adds r3, r4, r0
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 2
+ adds r0, r4, r0
+ ldr r2, _080F5110
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r12, r0
+ cmp r7, 0
+ beq _080F5158
+ ldr r7, _080F5100
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ adds r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5114
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r5, r4, 0
+ ldrh r1, [r3]
+ movs r7, 0
+ ldrsh r0, [r3, r7]
+ cmp r0, 0
+ beq _080F5118
+ subs r2, r1, 0x1
+ b _080F5120
+ .align 2, 0
+_080F50FC: .4byte gUnknown_083DFEC4
+_080F5100: .4byte 0x00008fea
+_080F5104: .4byte 0x00008fe9
+_080F5108: .4byte 0x00009004
+_080F510C: .4byte 0x000087dc
+_080F5110: .4byte 0x0000893f
+_080F5114: .4byte 0x00008fec
+_080F5118:
+ ldr r1, _080F513C
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ subs r2, r0, 0x1
+_080F5120:
+ ldr r1, _080F5140
+ adds r0, r5, r1
+ strh r2, [r0]
+ ldr r2, _080F5144
+ ldr r3, [r2]
+ adds r1, r3, r1
+ ldrh r4, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _080F5148
+ subs r1, r4, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F513C: .4byte 0x000087da
+_080F5140: .4byte 0x000087dc
+_080F5144: .4byte gUnknown_083DFEC4
+_080F5148:
+ ldr r7, _080F5154
+ adds r0, r3, r7
+ ldrh r0, [r0]
+ subs r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F5154: .4byte 0x000087da
+_080F5158:
+ ldr r7, _080F518C
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ subs r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5190
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, r4, 0
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ ldr r5, _080F5194
+ adds r0, r2, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F5198
+ ldrh r0, [r3]
+ adds r3, r0, 0x1
+ b _080F519A
+ .align 2, 0
+_080F518C: .4byte 0x00008feb
+_080F5190: .4byte 0x00008fec
+_080F5194: .4byte 0x000087da
+_080F5198:
+ movs r3, 0
+_080F519A:
+ ldr r1, _080F51C0
+ adds r0, r2, r1
+ strh r3, [r0]
+ ldr r2, _080F51C4
+ ldr r3, [r2]
+ adds r4, r3, r1
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r5, _080F51C8
+ adds r0, r3, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F51CC
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F51C0: .4byte 0x000087dc
+_080F51C4: .4byte gUnknown_083DFEC4
+_080F51C8: .4byte 0x000087da
+_080F51CC:
+ movs r1, 0
+_080F51CE:
+ ldr r4, _080F51FC
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldr r5, _080F5200
+ adds r0, r1, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r3, _080F5204
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r4, r12
+ cmp r4, 0
+ bne _080F520C
+ adds r5, 0x4
+ adds r1, r5
+ ldr r0, _080F5208
+ b _080F5226
+ .align 2, 0
+_080F51FC: .4byte 0x00008fee
+_080F5200: .4byte 0x000087dc
+_080F5204: .4byte 0x0000893f
+_080F5208: .4byte sub_80F5264
+_080F520C:
+ cmp r0, 0
+ bne _080F5220
+ ldr r7, _080F5218
+ adds r1, r7
+ ldr r0, _080F521C
+ b _080F5226
+ .align 2, 0
+_080F5218: .4byte 0x000087e0
+_080F521C: .4byte sub_80F52F8
+_080F5220:
+ ldr r0, _080F5238
+ adds r1, r0
+ ldr r0, _080F523C
+_080F5226:
+ str r0, [r1]
+ ldr r0, [r2]
+ ldr r1, _080F5240
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5238: .4byte 0x000087e0
+_080F523C: .4byte sub_80F5364
+_080F5240: .4byte 0x000087de
+ thumb_func_end sub_80F5060
+
+ thumb_func_start gpu_sync_bg_show
+gpu_sync_bg_show: @ 80F5244
+ push {lr}
+ ldr r0, _080F525C
+ ldr r0, [r0]
+ ldr r1, _080F5260
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F525C: .4byte gUnknown_083DFEC4
+_080F5260: .4byte 0x000087e0
+ thumb_func_end gpu_sync_bg_show
+
+ thumb_func_start sub_80F5264
+sub_80F5264: @ 80F5264
+ push {r4,r5,lr}
+ ldr r0, _080F5280
+ ldr r0, [r0]
+ ldr r1, _080F5284
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ cmp r1, 0x1
+ beq _080F52AA
+ cmp r1, 0x1
+ bgt _080F5288
+ cmp r1, 0
+ beq _080F528E
+ b _080F52F0
+ .align 2, 0
+_080F5280: .4byte gUnknown_083DFEC4
+_080F5284: .4byte 0x000087de
+_080F5288:
+ cmp r1, 0x2
+ beq _080F52EC
+ b _080F52F0
+_080F528E:
+ ldr r2, _080F52D8
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_080F52AA:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F52F0
+ ldr r0, _080F52DC
+ ldr r4, [r0]
+ ldr r1, _080F52E0
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, _080F52E4
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldr r0, _080F52E8
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F52F0
+ .align 2, 0
+_080F52D8: .4byte 0x00008fe9
+_080F52DC: .4byte gUnknown_083DFEC4
+_080F52E0: .4byte 0x00008fee
+_080F52E4: .4byte 0x00008fec
+_080F52E8: .4byte 0x000087de
+_080F52EC:
+ movs r0, 0
+ b _080F52F2
+_080F52F0:
+ movs r0, 0x1
+_080F52F2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5264
+
+ thumb_func_start sub_80F52F8
+sub_80F52F8: @ 80F52F8
+ push {r4,r5,lr}
+ ldr r0, _080F5310
+ ldr r4, [r0]
+ ldr r0, _080F5314
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F5318
+ cmp r0, 0x1
+ beq _080F5358
+ b _080F535C
+ .align 2, 0
+_080F5310: .4byte gUnknown_083DFEC4
+_080F5314: .4byte 0x000087de
+_080F5318:
+ bl sub_80F5038
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F535C
+ ldr r1, _080F5350
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldr r2, _080F5354
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F535C
+ .align 2, 0
+_080F5350: .4byte 0x00008fe9
+_080F5354: .4byte 0x00008fee
+_080F5358:
+ movs r0, 0
+ b _080F535E
+_080F535C:
+ movs r0, 0x1
+_080F535E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F52F8
+
+ thumb_func_start sub_80F5364
+sub_80F5364: @ 80F5364
+ push {r4,r5,lr}
+ ldr r0, _080F5380
+ ldr r4, [r0]
+ ldr r0, _080F5384
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _080F53B8
+ cmp r0, 0x1
+ bgt _080F5388
+ cmp r0, 0
+ beq _080F538E
+ b _080F53E4
+ .align 2, 0
+_080F5380: .4byte gUnknown_083DFEC4
+_080F5384: .4byte 0x000087de
+_080F5388:
+ cmp r0, 0x2
+ beq _080F53CA
+ b _080F53E4
+_080F538E:
+ bl sub_80F5504
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+ ldr r1, _080F53B4
+ adds r4, r1
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F53C2
+ .align 2, 0
+_080F53B4: .4byte 0x00008fe9
+_080F53B8:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+_080F53C2:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F53E4
+_080F53CA:
+ ldr r2, _080F53E0
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ movs r0, 0
+ b _080F53E6
+ .align 2, 0
+_080F53E0: .4byte 0x00008fee
+_080F53E4:
+ movs r0, 0x1
+_080F53E6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5364
+
+ thumb_func_start sub_80F53EC
+sub_80F53EC: @ 80F53EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ mov r9, r1
+ movs r7, 0
+ ldr r0, _080F54F4
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+_080F5404:
+ lsls r4, r7, 2
+ ldr r1, [sp]
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ lsls r5, r1, 8
+ mov r2, r9
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ adds r7, 0x1
+ mov r10, r7
+ mov r8, r4
+_080F5428:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ add r0, r8
+ ldr r7, [sp, 0x4]
+ adds r0, r7, r0
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ movs r7, 0x1
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54F8
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F5428
+ ldr r2, _080F54F4
+ ldr r1, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r1, r0
+ mov r3, r9
+ adds r2, r4, r3
+ ldrh r0, [r2]
+ ldr r7, _080F54F8
+ adds r1, r7
+ strh r0, [r1]
+ ldr r1, [sp]
+ adds r0, r4, r1
+ ldrh r1, [r0, 0x2]
+ lsls r5, r1, 8
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ ldr r0, _080F54F4
+ ldr r0, [r0]
+ mov r12, r0
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ mov r8, r2
+_080F548E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r0
+ add r0, r12
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ mov r7, r8
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54FC
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F548E
+ ldr r7, _080F54F4
+ ldr r2, [r7]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r2, r0
+ mov r3, r9
+ adds r1, r4, r3
+ ldrh r1, [r1, 0x2]
+ ldr r7, _080F54FC
+ adds r0, r7
+ strh r1, [r0]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _080F5404
+ ldr r3, _080F5500
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F54F4: .4byte gUnknown_083DFEC4
+_080F54F8: .4byte 0x00009054
+_080F54FC: .4byte 0x00009056
+_080F5500: .4byte 0x00009342
+ thumb_func_end sub_80F53EC
+
+ thumb_func_start sub_80F5504
+sub_80F5504: @ 80F5504
+ push {r4,lr}
+ ldr r0, _080F551C
+ ldr r2, [r0]
+ ldr r0, _080F5520
+ adds r4, r2, r0
+ ldrh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0x9
+ bls _080F5524
+ movs r0, 0
+ b _080F5544
+ .align 2, 0
+_080F551C: .4byte gUnknown_083DFEC4
+_080F5520: .4byte 0x00009342
+_080F5524:
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F554C
+ adds r0, r1
+ adds r0, r2, r0
+ bl sub_80F556C
+ ldrh r1, [r4]
+ movs r0, 0xA
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_080F5544:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F554C: .4byte 0x00009054
+ thumb_func_end sub_80F5504
+
+ thumb_func_start sub_80F5550
+sub_80F5550: @ 80F5550
+ push {lr}
+ bl sub_80F53EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5550
+
+ thumb_func_start sub_80F555C
+sub_80F555C: @ 80F555C
+ push {lr}
+ bl sub_80F5504
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F555C
+
+ thumb_func_start sub_80F556C
+sub_80F556C: @ 80F556C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _080F55A0
+ ldr r0, [r5]
+ ldr r1, _080F55A4
+ adds r3, r0, r1
+_080F557A:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _080F557A
+ ldr r0, [r5]
+ ldr r1, _080F55A8
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F55A0: .4byte gUnknown_083DFEC4
+_080F55A4: .4byte 0x0000911c
+_080F55A8: .4byte 0x00009344
+ thumb_func_end sub_80F556C
+
+ thumb_func_start sub_80F55AC
+sub_80F55AC: @ 80F55AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ mov r8, r1
+ ldr r1, _080F5674
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r6, 0x1
+ movs r0, 0x9B
+ mov r3, r8
+ strh r0, [r3]
+ movs r0, 0x5B
+ subs r0, r2
+ strh r0, [r3, 0x2]
+ movs r7, 0x40
+ movs r0, 0
+ mov r12, r0
+ movs r2, 0x1
+ mov r9, r2
+ ldr r3, _080F5678
+ mov r10, r3
+_080F55DE:
+ adds r0, r7, 0
+ adds r0, 0x33
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, r12
+ lsls r0, r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r3, r0, 24
+ mov r12, r3
+ cmp r0, 0
+ bge _080F55FC
+ movs r0, 0x4
+ mov r12, r0
+_080F55FC:
+ mov r1, r12
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0x2
+ bne _080F560C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080F560C:
+ ldrb r0, [r6]
+ ldr r2, _080F5674
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r6, 0x1
+ lsls r0, r4, 2
+ mov r1, r8
+ adds r3, r0, r1
+ adds r0, r7, 0
+ adds r0, 0x40
+ lsls r0, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r5, r0, 8
+ adds r0, r5, 0
+ adds r0, 0x9B
+ strh r0, [r3]
+ lsls r0, r7, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ asrs r1, 8
+ movs r0, 0x5B
+ subs r0, r1
+ strh r0, [r3, 0x2]
+ cmp r4, 0x2
+ bgt _080F5658
+ cmp r2, 0x20
+ bne _080F5652
+ cmp r4, 0x2
+ beq _080F5658
+_080F5652:
+ adds r0, r5, 0
+ adds r0, 0x9C
+ strh r0, [r3]
+_080F5658:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _080F55DE
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5674: .4byte gUnknown_083E4890
+_080F5678: .4byte gSineTable
+ thumb_func_end sub_80F55AC
+
+ thumb_func_start sub_80F567C
+sub_80F567C: @ 80F567C
+ push {lr}
+ bl sub_80F55AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F567C
+
+ thumb_func_start sub_80F5688
+sub_80F5688: @ 80F5688
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ str r2, [sp]
+ ldr r7, [sp, 0x34]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _080F56D0
+ adds r2, r0, 0
+ str r2, [sp, 0x4]
+ ldr r3, [sp]
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r5]
+ lsls r4, r1, 10
+ ldrh r2, [r3]
+ mov r10, r2
+ ldr r3, [sp, 0x4]
+ subs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r2, r1
+ b _080F56F2
+_080F56D0:
+ ldrh r0, [r5, 0x2]
+ ldr r1, [sp]
+ ldrh r1, [r1, 0x2]
+ str r1, [sp, 0x4]
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ lsls r4, r1, 10
+ ldrh r3, [r5]
+ mov r10, r3
+ ldr r2, [sp, 0x4]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r3, r1
+_080F56F2:
+ lsls r0, 10
+ mov r1, r8
+ bl __divsi3
+ str r0, [sp, 0x8]
+_080F56FC:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r7, 0
+ bne _080F5746
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r7, r8
+ bcs _080F57D4
+ movs r7, 0x1
+_080F5726:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r1, [sp, 0x8]
+ adds r4, r1
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5726
+ b _080F57D4
+_080F5746:
+ ldr r2, [sp, 0x8]
+ cmp r2, 0
+ ble _080F57E4
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5798
+ ldr r0, _080F57D8
+ cmp r4, r0
+ bgt _080F5798
+ mov r1, r12
+ str r1, [sp, 0x10]
+ mov r10, r0
+_080F5772:
+ ldr r3, [sp, 0x10]
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r3, 0x1
+ ands r0, r3
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5798
+ cmp r4, r10
+ ble _080F5772
+_080F5798:
+ ldr r1, _080F57DC
+ ldr r0, [r1]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ ldr r3, _080F57E0
+ adds r0, r3
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ cmp r5, r8
+ bcs _080F57D4
+ mov r3, r12
+ movs r7, 0x1
+_080F57B6:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F57B6
+_080F57D4:
+ subs r0, r6, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F57D8: .4byte 0x00026bff
+_080F57DC: .4byte gUnknown_083DFEC4
+_080F57E0: .4byte 0x00009340
+_080F57E4:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bge _080F5890
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r2, r9
+ lsls r2, 1
+ mov r12, r2
+ mov r3, r10
+ add r3, r9
+ str r3, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5842
+ adds r3, r2, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ add r1, r9
+ strh r1, [r3]
+ b _080F5838
+_080F5816:
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5842
+ mov r1, r12
+ adds r3, r1, r6
+ asrs r2, r4, 10
+ asrs r0, r4, 9
+ movs r1, 0x1
+ ands r0, r1
+ adds r2, r0
+ add r2, r9
+ strh r2, [r3]
+_080F5838:
+ ldr r0, _080F5884
+ cmp r4, r0
+ bgt _080F5816
+ movs r0, 0x9B
+ strh r0, [r3]
+_080F5842:
+ ldr r2, _080F5888
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r5
+ ldr r2, _080F588C
+ adds r0, r2
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ cmp r5, r8
+ bcs _080F587E
+ mov r3, r12
+ movs r6, 0x1
+_080F5860:
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r6
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5860
+_080F587E:
+ subs r0, r7, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F5884: .4byte 0x00026bff
+_080F5888: .4byte gUnknown_083DFEC4
+_080F588C: .4byte 0x00009340
+_080F5890:
+ ldr r0, _080F58BC
+ ldr r0, [r0]
+ ldr r1, _080F58C0
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x4]
+ strh r2, [r0]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ adds r7, r0
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ ldr r3, [sp]
+ ldrh r0, [r3]
+ strh r0, [r7]
+ movs r0, 0x9B
+ strh r0, [r7, 0x2]
+ b _080F58CC
+ .align 2, 0
+_080F58BC: .4byte gUnknown_083DFEC4
+_080F58C0: .4byte 0x00009340
+_080F58C4:
+ add r0, r12
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r0]
+_080F58CC:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5688
+
+ thumb_func_start sub_80F58DC
+sub_80F58DC: @ 80F58DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x6]
+ cmp r0, r1
+ bcs _080F5914
+ adds r4, r0, 0
+ mov r8, r4
+ ldr r0, _080F590C
+ ldr r0, [r0]
+ ldr r1, _080F5910
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ b _080F5930
+ .align 2, 0
+_080F590C: .4byte gUnknown_083DFEC4
+_080F5910: .4byte 0x00009130
+_080F5914:
+ ldrh r4, [r5, 0x6]
+ mov r8, r4
+ ldr r0, _080F5A08
+ ldr r0, [r0]
+ ldr r1, _080F5A0C
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80F5688
+_080F5930:
+ adds r1, r4, 0
+ ldr r0, _080F5A08
+ ldr r6, [r0]
+ ldr r0, _080F5A0C
+ adds r4, r6, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ movs r3, 0
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xE]
+ cmp r0, r1
+ bhi _080F5958
+ movs r3, 0x1
+_080F5958:
+ adds r2, r5, 0
+ adds r2, 0xC
+ ldr r1, _080F5A10
+ adds r0, r6, r1
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r8
+ bcs _080F5990
+ adds r7, r4, 0
+ movs r3, 0
+ ldr r0, _080F5A14
+ adds r4, r6, r0
+_080F5978:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r7, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r8
+ bcc _080F5978
+_080F5990:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5A08
+ ldr r3, [r0]
+ ldr r4, _080F5A18
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F59BE
+ ldr r4, _080F5A0C
+ adds r3, r4
+ movs r4, 0x9B
+_080F59A8:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F59A8
+_080F59BE:
+ ldr r4, [r6]
+ ldr r1, _080F5A18
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r1, [r5, 0xA]
+ cmp r0, r1
+ bcs _080F59CE
+ adds r0, r1, 0
+_080F59CE:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F59FA
+ ldr r0, _080F5A0C
+ adds r5, r4, r0
+ movs r3, 0
+ ldr r1, _080F5A14
+ adds r4, r1
+_080F59E2:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F59E2
+_080F59FA:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5A08: .4byte gUnknown_083DFEC4
+_080F5A0C: .4byte 0x00009130
+_080F5A10: .4byte 0x00009238
+_080F5A14: .4byte 0x00009132
+_080F5A18: .4byte 0x00009340
+ thumb_func_end sub_80F58DC
+
+ thumb_func_start sub_80F5A1C
+sub_80F5A1C: @ 80F5A1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x12]
+ cmp r0, r1
+ bcs _080F5A54
+ adds r7, r0, 0
+ ldr r0, _080F5A4C
+ ldr r0, [r0]
+ ldr r2, _080F5A50
+ adds r0, r2
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ b _080F5A70
+ .align 2, 0
+_080F5A4C: .4byte gUnknown_083DFEC4
+_080F5A50: .4byte 0x00009238
+_080F5A54:
+ ldrh r7, [r5, 0x12]
+ ldr r0, _080F5B28
+ ldr r0, [r0]
+ ldr r4, _080F5B2C
+ adds r0, r4
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80F5688
+_080F5A70:
+ adds r1, r4, 0
+ ldr r0, _080F5B28
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r4, _080F5B2C
+ add r4, r8
+ adds r2, r5, 0
+ adds r2, 0xC
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r7
+ bcs _080F5AB2
+ adds r6, r4, 0
+ movs r3, 0
+ ldr r4, _080F5B30
+ add r4, r8
+_080F5A9A:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r6, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080F5A9A
+_080F5AB2:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5B28
+ ldr r3, [r0]
+ ldr r4, _080F5B34
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F5AE0
+ ldr r4, _080F5B30
+ adds r3, r4
+ movs r4, 0x9B
+_080F5ACA:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F5ACA
+_080F5AE0:
+ ldrh r0, [r5, 0xE]
+ adds r1, r0, 0x1
+ ldr r3, [r6]
+ ldr r2, _080F5B34
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ cmp r0, r1
+ bge _080F5AF2
+ adds r0, r1, 0
+_080F5AF2:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F5B1C
+ ldr r4, _080F5B2C
+ adds r5, r3, r4
+ movs r4, 0
+ ldr r0, _080F5B30
+ adds r3, r0
+_080F5B04:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r4, [r1]
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F5B04
+_080F5B1C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5B28: .4byte gUnknown_083DFEC4
+_080F5B2C: .4byte 0x00009238
+_080F5B30: .4byte 0x0000923a
+_080F5B34: .4byte 0x00009340
+ thumb_func_end sub_80F5A1C
+
+ thumb_func_start sub_80F5B38
+sub_80F5B38: @ 80F5B38
+ ldr r0, _080F5B48
+ ldr r0, [r0]
+ ldr r1, _080F5B4C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F5B48: .4byte gUnknown_083DFEC4
+_080F5B4C: .4byte 0x00009345
+ thumb_func_end sub_80F5B38
+
+ thumb_func_start sub_80F5B50
+sub_80F5B50: @ 80F5B50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080F5B68
+ ldr r0, [r0]
+ ldr r1, _080F5B6C
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080F5B70
+ cmp r0, 0x1
+ beq _080F5BB4
+ b _080F5BCC
+ .align 2, 0
+_080F5B68: .4byte gUnknown_083DFEC4
+_080F5B6C: .4byte 0x00009345
+_080F5B70:
+ bl dp12_8087EA4
+ ldr r0, _080F5BA8
+ movs r2, 0xEF
+ movs r3, 0xF4
+ lsls r3, 3
+ adds r1, r0, r3
+ adds r0, 0x20
+ movs r3, 0xF
+_080F5B82:
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r1]
+ strh r2, [r1, 0x2]
+ adds r1, 0x4
+ adds r0, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F5B82
+ ldr r0, _080F5BAC
+ ldr r1, [r0]
+ ldr r5, _080F5BB0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080F5BCE
+ .align 2, 0
+_080F5BA8: .4byte gUnknown_03004DE0
+_080F5BAC: .4byte gUnknown_083DFEC4
+_080F5BB0: .4byte 0x00009345
+_080F5BB4:
+ mov r0, sp
+ ldr r1, _080F5BD8
+ ldm r1!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080F5BCC:
+ movs r0, 0
+_080F5BCE:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5BD8: .4byte gUnknown_083E4990
+ thumb_func_end sub_80F5B50
+
+ thumb_func_start sub_80F5BDC
+sub_80F5BDC: @ 80F5BDC
+ push {lr}
+ ldr r1, _080F5BEC
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5BEC: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80F5BDC
+
+ thumb_func_start sub_80F5BF0
+sub_80F5BF0: @ 80F5BF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r0, _080F5CB8
+ ldr r5, [r0]
+ ldr r1, _080F5CBC
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5CA6
+ ldr r0, _080F5CC0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r6, 0
+ ldr r1, _080F5CC4
+ mov r12, r1
+ movs r0, 0xF0
+ lsls r0, 3
+ add r0, r12
+ mov r9, r0
+ adds r7, r5, 0
+ ldr r1, _080F5CC8
+ mov r8, r1
+ ldr r5, _080F5CCC
+ adds r5, r7, r5
+ str r5, [sp]
+ ldr r0, _080F5CD0
+ adds r0, r7, r0
+ str r0, [sp, 0x4]
+ ldr r1, _080F5CD4
+ adds r1, r7
+ mov r10, r1
+_080F5C40:
+ adds r2, r6, 0
+ adds r2, 0x37
+ lsls r3, r2, 2
+ mov r5, r9
+ adds r5, r3, r5
+ str r5, [sp, 0x8]
+ add r3, r12
+ lsls r4, r6, 2
+ ldr r1, [sp]
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r5, [sp, 0x4]
+ adds r1, r5, r4
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r3]
+ mov r1, r8
+ ands r0, r1
+ ldr r5, [sp, 0x8]
+ strh r0, [r5]
+ lsls r2, 1
+ adds r2, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r3, r2, r0
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r5, _080F5CD8
+ adds r0, r7, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ strh r1, [r3]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F5CB8
+ cmp r6, 0x41
+ bls _080F5C40
+ ldr r0, [r0]
+ ldr r1, _080F5CBC
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5CA6:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5CB8: .4byte gUnknown_083DFEC4
+_080F5CBC: .4byte 0x00009344
+_080F5CC0: .4byte 0x0000911c
+_080F5CC4: .4byte gUnknown_03004DE0
+_080F5CC8: .4byte 0x0000ffff
+_080F5CCC: .4byte 0x00009130
+_080F5CD0: .4byte 0x00009132
+_080F5CD4: .4byte 0x00009238
+_080F5CD8: .4byte 0x0000923a
+ thumb_func_end sub_80F5BF0
+
+ thumb_func_start sub_80F5CDC
+sub_80F5CDC: @ 80F5CDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F5DB0
+ ldr r6, [r0]
+ ldr r1, _080F5DB4
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5DA0
+ ldr r0, _080F5DB8
+ adds r4, r6, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r0, 0x37
+ subs r0, r5
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r7, 0
+ ldr r1, _080F5DBC
+ mov r12, r1
+ movs r4, 0xF0
+ lsls r4, 3
+ add r4, r12
+ mov r9, r4
+ ldr r0, _080F5DC0
+ mov r8, r0
+ ldr r1, _080F5DC4
+ adds r1, r6, r1
+ str r1, [sp]
+ ldr r4, _080F5DC8
+ adds r4, r6, r4
+ str r4, [sp, 0x4]
+ ldr r0, _080F5DCC
+ adds r0, r6
+ mov r10, r0
+_080F5D36:
+ lsls r2, r5, 1
+ mov r1, r9
+ adds r1, r2, r1
+ str r1, [sp, 0x8]
+ add r2, r12
+ lsls r3, r7, 2
+ ldr r4, [sp]
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r4, [sp, 0x4]
+ adds r1, r4, r3
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r8
+ ands r0, r1
+ ldr r4, [sp, 0x8]
+ strh r0, [r4]
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r0, r2, r0
+ str r0, [sp, 0x8]
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r3
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r4, _080F5DD0
+ adds r0, r6, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ ldr r4, [sp, 0x8]
+ strh r1, [r4]
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080F5DB0
+ cmp r7, 0x41
+ bls _080F5D36
+ ldr r0, [r0]
+ ldr r1, _080F5DB4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5DA0:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5DB0: .4byte gUnknown_083DFEC4
+_080F5DB4: .4byte 0x00009344
+_080F5DB8: .4byte 0x0000911c
+_080F5DBC: .4byte gUnknown_03004DE0
+_080F5DC0: .4byte 0x0000ffff
+_080F5DC4: .4byte 0x00009130
+_080F5DC8: .4byte 0x00009132
+_080F5DCC: .4byte 0x00009238
+_080F5DD0: .4byte 0x0000923a
+ thumb_func_end sub_80F5CDC
+
+ thumb_func_start sub_80F5DD4
+sub_80F5DD4: @ 80F5DD4
+ push {lr}
+ ldr r0, _080F5DE8
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DEC
+ bl sub_80F5E20
+ b _080F5E18
+ .align 2, 0
+_080F5DE8: .4byte gMain
+_080F5DEC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DFA
+ bl sub_80F5EE4
+ b _080F5E18
+_080F5DFA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5E08
+ bl sub_80F5FB4
+ b _080F5E18
+_080F5E08:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080F5E14
+ movs r0, 0
+ b _080F5E1C
+_080F5E14:
+ bl sub_80F6010
+_080F5E18:
+ lsls r0, 24
+ lsrs r0, 24
+_080F5E1C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5DD4
+
+ thumb_func_start sub_80F5E20
+sub_80F5E20: @ 80F5E20
+ push {r4,r5,lr}
+ ldr r0, _080F5E38
+ ldr r2, [r0]
+ ldr r3, _080F5E3C
+ adds r1, r2, r3
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080F5E40
+ movs r0, 0
+ b _080F5EC8
+ .align 2, 0
+_080F5E38: .4byte gUnknown_083DFEC4
+_080F5E3C: .4byte 0x0000876e
+_080F5E40:
+ ldr r1, _080F5E6C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5E74
+ ldr r3, _080F5E70
+ adds r0, r2, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F5E74
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5EC8
+ .align 2, 0
+_080F5E6C: .4byte 0x000087c9
+_080F5E70: .4byte 0x0000876c
+_080F5E74:
+ ldr r1, [r4]
+ ldr r0, _080F5ED0
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ subs r3, r0, 0x1
+ strh r3, [r2]
+ ldr r5, _080F5ED4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5E98
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080F5E98
+ ldr r3, _080F5ED8
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F5E98:
+ ldr r0, [r4]
+ ldr r5, _080F5EDC
+ adds r2, r0, r5
+ ldr r3, _080F5ED0
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ subs r5, 0x2
+ adds r4, r0, r5
+ strh r2, [r4]
+ ldr r1, _080F5EE0
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5EC6
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5EC6:
+ movs r0, 0x1
+_080F5EC8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5ED0: .4byte 0x0000876c
+_080F5ED4: .4byte 0x000087c9
+_080F5ED8: .4byte 0x00008772
+_080F5EDC: .4byte 0x00008770
+_080F5EE0: .4byte 0x00008774
+ thumb_func_end sub_80F5E20
+
+ thumb_func_start sub_80F5EE4
+sub_80F5EE4: @ 80F5EE4
+ push {r4-r6,lr}
+ ldr r3, _080F5F04
+ ldr r4, [r3]
+ ldr r1, _080F5F08
+ adds r0, r4, r1
+ ldr r2, _080F5F0C
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ adds r5, r3, 0
+ cmp r2, r0
+ bne _080F5F10
+ movs r0, 0
+ b _080F5F98
+ .align 2, 0
+_080F5F04: .4byte gUnknown_083DFEC4
+_080F5F08: .4byte 0x0000876e
+_080F5F0C: .4byte 0x00008774
+_080F5F10:
+ ldr r1, _080F5F38
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5F40
+ ldr r2, _080F5F3C
+ adds r0, r4, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7
+ bne _080F5F40
+ movs r0, 0x1
+ bl sub_80F063C
+ movs r0, 0x1
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5F98
+ .align 2, 0
+_080F5F38: .4byte 0x000087c9
+_080F5F3C: .4byte 0x0000876c
+_080F5F40:
+ ldr r2, [r5]
+ ldr r6, _080F5FA0
+ adds r4, r2, r6
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ strh r1, [r4]
+ ldr r3, _080F5FA4
+ adds r0, r2, r3
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080F5F68
+ adds r6, 0x6
+ adds r0, r2, r6
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _080F5F68
+ strh r3, [r4]
+_080F5F68:
+ ldr r0, [r5]
+ ldr r3, _080F5FA8
+ adds r2, r0, r3
+ ldr r5, _080F5FA0
+ adds r1, r0, r5
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ ldr r6, _080F5FAC
+ adds r4, r0, r6
+ strh r2, [r4]
+ ldr r1, _080F5FB0
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5F96
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5F96:
+ movs r0, 0x1
+_080F5F98:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5FA0: .4byte 0x0000876c
+_080F5FA4: .4byte 0x000087c9
+_080F5FA8: .4byte 0x00008770
+_080F5FAC: .4byte 0x0000876e
+_080F5FB0: .4byte 0x00008774
+ thumb_func_end sub_80F5EE4
+
+ thumb_func_start sub_80F5FB4
+sub_80F5FB4: @ 80F5FB4
+ push {r4,lr}
+ ldr r0, _080F5FD8
+ ldr r1, [r0]
+ ldr r2, _080F5FDC
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ cmp r2, 0
+ beq _080F5FD2
+ ldr r4, _080F5FE0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5FE4
+_080F5FD2:
+ movs r0, 0
+ b _080F6004
+ .align 2, 0
+_080F5FD8: .4byte gUnknown_083DFEC4
+_080F5FDC: .4byte 0x00008770
+_080F5FE0: .4byte 0x000087c9
+_080F5FE4:
+ cmp r2, 0x7
+ bgt _080F5FF0
+ negs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ b _080F5FF2
+_080F5FF0:
+ ldr r0, _080F600C
+_080F5FF2:
+ lsls r4, r0, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F6004:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F600C: .4byte 0x0000fff8
+ thumb_func_end sub_80F5FB4
+
+ thumb_func_start sub_80F6010
+sub_80F6010: @ 80F6010
+ push {r4-r6,lr}
+ ldr r0, _080F603C
+ ldr r3, [r0]
+ ldr r1, _080F6040
+ adds r0, r3, r1
+ ldr r2, _080F6044
+ adds r1, r3, r2
+ ldrh r5, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ ldrh r4, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r2, r0
+ beq _080F6038
+ ldr r1, _080F6048
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F604C
+_080F6038:
+ movs r0, 0
+ b _080F606C
+ .align 2, 0
+_080F603C: .4byte gUnknown_083DFEC4
+_080F6040: .4byte 0x00008772
+_080F6044: .4byte 0x00008774
+_080F6048: .4byte 0x000087c9
+_080F604C:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080F605A
+ movs r4, 0x8
+_080F605A:
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F606C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6010
+
+ thumb_func_start sub_80F6074
+sub_80F6074: @ 80F6074
+ push {r4-r7,lr}
+ ldr r1, _080F6120
+ ldr r6, [r1]
+ ldr r1, _080F6124
+ adds r3, r6, r1
+ ldrh r1, [r3]
+ lsls r0, 16
+ asrs r7, r0, 16
+ adds r2, r7, r1
+ strh r2, [r3]
+ ldr r5, _080F6128
+ adds r4, r6, r5
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60A4
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60A4:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60B6
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60B6:
+ ldr r0, _080F612C
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60D8
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60D8:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60EA
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60EA:
+ ldr r0, _080F6130
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F6108
+ subs r0, r2, 0x1
+ subs r0, r5
+ strh r0, [r3]
+_080F6108:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F611A
+ adds r0, r1, 0x1
+ ldrh r4, [r4]
+ adds r0, r4
+ strh r0, [r3]
+_080F611A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6120: .4byte gUnknown_083DFEC4
+_080F6124: .4byte 0x00008770
+_080F6128: .4byte 0x00008774
+_080F612C: .4byte 0x00008772
+_080F6130: .4byte 0x0000876e
+ thumb_func_end sub_80F6074
+
+ thumb_func_start sub_80F6134
+sub_80F6134: @ 80F6134
+ push {r4-r6,lr}
+ ldr r0, _080F6194
+ ldr r3, [r0]
+ ldr r1, _080F6198
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F61E0
+ ldr r2, _080F619C
+ adds r5, r3, r2
+ movs r4, 0
+ ldrsh r1, [r5, r4]
+ ldr r6, _080F61A0
+ adds r4, r3, r6
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ subs r0, 0x7
+ cmp r1, r0
+ bge _080F61AC
+ subs r6, 0x8
+ adds r1, r3, r6
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, _080F61A4
+ adds r2, r3, r1
+ strh r0, [r2]
+ ldrh r1, [r5]
+ ldr r5, _080F61A8
+ adds r0, r3, r5
+ strh r1, [r0]
+ ldrh r5, [r2]
+ adds r0, r5, 0x7
+ adds r6, 0x6
+ adds r2, r3, r6
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F61F4
+ adds r0, r5, 0x6
+ subs r0, r3
+ strh r0, [r2]
+ b _080F61F4
+ .align 2, 0
+_080F6194: .4byte gUnknown_083DFEC4
+_080F6198: .4byte 0x000087c9
+_080F619C: .4byte 0x000087dc
+_080F61A0: .4byte 0x00008774
+_080F61A4: .4byte 0x00008770
+_080F61A8: .4byte 0x0000876e
+_080F61AC:
+ ldrh r0, [r4]
+ subs r0, 0x7
+ ldr r2, _080F61D4
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrh r1, [r4]
+ ldr r6, _080F61D8
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r5]
+ subs r2, 0x2
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldrh r0, [r4]
+ subs r0, r1
+ movs r1, 0x7
+ subs r1, r0
+ ldr r4, _080F61DC
+ adds r0, r3, r4
+ b _080F61F2
+ .align 2, 0
+_080F61D4: .4byte 0x00008770
+_080F61D8: .4byte 0x00008772
+_080F61DC: .4byte 0x0000876c
+_080F61E0:
+ ldr r5, _080F61FC
+ adds r2, r3, r5
+ ldrh r1, [r2]
+ ldr r6, _080F6200
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6204
+ adds r0, r3, r2
+_080F61F2:
+ strh r1, [r0]
+_080F61F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F61FC: .4byte 0x000087dc
+_080F6200: .4byte 0x0000876c
+_080F6204: .4byte 0x0000876e
+ thumb_func_end sub_80F6134
+
+ thumb_func_start sub_80F6208
+sub_80F6208: @ 80F6208
+ push {lr}
+ ldr r0, _080F623C
+ ldr r1, [r0]
+ ldr r2, _080F6240
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _080F6244
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F6248
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r2, _080F624C
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F6238
+_080F622E:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F622E
+_080F6238:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F623C: .4byte gUnknown_083DFEC4
+_080F6240: .4byte 0x00008fe6
+_080F6244: .4byte 0x00008fe7
+_080F6248: .4byte 0x00008fe8
+_080F624C: .4byte 0x00006dac
+ thumb_func_end sub_80F6208
+
+ thumb_func_start sub_80F6250
+sub_80F6250: @ 80F6250
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6270
+ ldr r2, [r0]
+ ldr r0, _080F6274
+ adds r3, r2, r0
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F6278
+_080F626C:
+ movs r0, 0
+ b _080F637E
+ .align 2, 0
+_080F6270: .4byte gUnknown_083DFEC4
+_080F6274: .4byte 0x00008fe8
+_080F6278:
+ ldr r1, _080F630C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080F631C
+ cmp r0, 0x8
+ beq _080F626C
+ movs r6, 0
+ adds r7, r2, 0
+ adds r5, r7, r1
+ ldr r0, _080F6310
+ adds r4, r7, r0
+ ldr r1, _080F6314
+ mov r8, r1
+ ldr r0, _080F6318
+ add r0, r8
+ mov r9, r0
+_080F629A:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F636C
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r9
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080F636C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r2, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bls _080F62FE
+ strb r1, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r2
+ cmp r0, 0x6
+ bhi _080F637C
+_080F62FE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _080F629A
+ b _080F637C
+ .align 2, 0
+_080F630C: .4byte 0x00008fe6
+_080F6310: .4byte 0x00008fe7
+_080F6314: .4byte gUnknown_020300A4
+_080F6318: .4byte 0x000041a0
+_080F631C:
+ movs r0, 0
+ strb r0, [r3]
+ movs r6, 0
+ b _080F632A
+_080F6324:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080F632A:
+ cmp r6, 0x5
+ bhi _080F634C
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F635C
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ cmp r0, 0
+ beq _080F6324
+ ldr r0, _080F6360
+ ldr r0, [r0]
+ ldr r1, _080F6364
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080F634C:
+ ldr r0, _080F6360
+ ldr r1, [r0]
+ ldr r0, _080F6368
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080F6372
+ .align 2, 0
+_080F635C: .4byte gPlayerParty
+_080F6360: .4byte gUnknown_083DFEC4
+_080F6364: .4byte 0x00008fe8
+_080F6368: .4byte 0x00008fe6
+_080F636C:
+ ldr r0, _080F6378
+ adds r1, r7, r0
+ movs r0, 0x1
+_080F6372:
+ strb r0, [r1]
+ b _080F626C
+ .align 2, 0
+_080F6378: .4byte 0x00008fe8
+_080F637C:
+ movs r0, 0x1
+_080F637E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6250
+
+ thumb_func_start sub_80F638C
+sub_80F638C: @ 80F638C
+ push {r4,lr}
+ ldr r0, _080F63C0
+ ldr r4, [r0]
+ ldr r1, _080F63C4
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F63C8
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F63CC
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F63B8
+_080F63AE:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F63AE
+_080F63B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F63C0: .4byte gUnknown_083DFEC4
+_080F63C4: .4byte 0x00008fe6
+_080F63C8: .4byte 0x00008fe7
+_080F63CC: .4byte 0x00006dac
+ thumb_func_end sub_80F638C
+
+ thumb_func_start sub_80F63D0
+sub_80F63D0: @ 80F63D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080F647C
+ ldr r2, [r0]
+ ldr r1, _080F6480
+ adds r0, r2, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ beq _080F6498
+ cmp r3, 0xF
+ bne _080F63E8
+ b _080F64F6
+_080F63E8:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r6, 0
+ ldr r0, _080F6480
+ adds r5, r2, r0
+ ldr r1, _080F6484
+ adds r4, r2, r1
+_080F63FC:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F6488
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F644E
+ ldrb r1, [r5]
+ lsls r1, 8
+ ldr r2, _080F648C
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r4]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F6490
+ ands r0, r1
+ orrs r0, r2
+ ldr r1, _080F6494
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F644E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ movs r1, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F646E
+ strb r2, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r1
+ cmp r0, 0xE
+ beq _080F6508
+_080F646E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xE
+ bls _080F63FC
+ b _080F6508
+ .align 2, 0
+_080F647C: .4byte gUnknown_083DFEC4
+_080F6480: .4byte 0x00008fe6
+_080F6484: .4byte 0x00008fe7
+_080F6488: .4byte gUnknown_020300A4
+_080F648C: .4byte 0xffff00ff
+_080F6490: .4byte 0xffe0ffff
+_080F6494: .4byte 0xffffff00
+_080F6498:
+ mov r0, sp
+ ldrb r1, [r0, 0x3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x3]
+ strb r3, [r0, 0x1]
+ movs r6, 0
+ mov r4, sp
+_080F64A8:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F64FC
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F64DA
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r4, 0x2]
+ movs r5, 0x20
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x2]
+ strb r3, [r4]
+ mov r0, sp
+ bl sub_80F4944
+_080F64DA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F64A8
+ bl sub_80F49F4
+ ldr r0, _080F6500
+ ldr r1, [r0]
+ ldr r0, _080F6504
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F64F6:
+ movs r0, 0
+ b _080F650A
+ .align 2, 0
+_080F64FC: .4byte gPlayerParty
+_080F6500: .4byte gUnknown_083DFEC4
+_080F6504: .4byte 0x00008fe6
+_080F6508:
+ movs r0, 0x1
+_080F650A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F63D0
+
+ thumb_func_start sub_80F6514
+sub_80F6514: @ 80F6514
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ mov r5, r10
+ ldr r0, _080F65A4
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, _080F65A8
+ adds r1, r0, r2
+ ldrb r6, [r1]
+ mov r8, r6
+ ldr r1, _080F65AC
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r4, r0, 27
+ adds r7, r4, 0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2D
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0
+ beq _080F655E
+ b _080F66CA
+_080F655E:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl sub_80F44B0
+ adds r0, r5, 0
+ bl StringGetEnd10
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_80F44B0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0xE
+ bne _080F65B4
+ movs r0, 0x64
+ muls r4, r0
+ ldr r0, _080F65B0
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ bl GetMonGender
+ b _080F65EA
+ .align 2, 0
+_080F65A4: .4byte gUnknown_083DFEC4
+_080F65A8: .4byte 0x0000893d
+_080F65AC: .4byte 0x0000893e
+_080F65B0: .4byte gPlayerParty
+_080F65B4:
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 4
+ ldr r2, _080F6620
+ adds r1, r2
+ adds r0, r1
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r1, r0, 0
+ mov r0, r9
+ bl GetGenderFromSpeciesAndPersonality
+_080F65EA:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r9
+ mov r1, r10
+ bl sub_8040D8C
+ cmp r0, 0
+ beq _080F65FC
+ movs r4, 0xFF
+_080F65FC:
+ adds r0, r5, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+ movs r1, 0xFC
+ strb r1, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x3F
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _080F6624
+ cmp r4, 0xFE
+ beq _080F663C
+ b _080F6656
+ .align 2, 0
+_080F6620: .4byte gUnknown_020300A4
+_080F6624:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xC
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xD
+ strb r0, [r5, 0x5]
+ movs r0, 0xB5
+ b _080F6652
+_080F663C:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xA
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xB
+ strb r0, [r5, 0x5]
+ movs r0, 0xB6
+_080F6652:
+ strb r0, [r5, 0x6]
+ adds r5, 0x7
+_080F6656:
+ movs r4, 0xFC
+ strb r4, [r5]
+ movs r1, 0x1
+ strb r1, [r5, 0x1]
+ strb r1, [r5, 0x2]
+ strb r4, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0x5
+ strb r0, [r5, 0x5]
+ adds r5, 0x6
+ strb r4, [r5]
+ movs r6, 0x13
+ strb r6, [r5, 0x1]
+ movs r0, 0x46
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xBA
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0x11
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x34
+ strb r0, [r5, 0x4]
+ adds r5, 0x5
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl ConvertIntToDecimalString
+ adds r5, r0, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x1
+ bne _080F66C0
+ ldr r0, _080F66B8
+ ldr r0, [r0]
+ ldr r2, [sp]
+ lsls r1, r2, 2
+ adds r0, r1
+ ldr r1, _080F66BC
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0x80
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r5, r0, 0
+ b _080F66CE
+ .align 2, 0
+_080F66B8: .4byte gUnknown_083DFEC4
+_080F66BC: .4byte 0x0000893c
+_080F66C0:
+ strb r4, [r5]
+ strb r6, [r5, 0x1]
+ movs r0, 0x67
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+_080F66CA:
+ movs r0, 0xFF
+ strb r0, [r5]
+_080F66CE:
+ adds r0, r5, 0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6514
+
+ thumb_func_start sub_80F66E0
+sub_80F66E0: @ 80F66E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080F676C
+ mov r8, r0
+ ldr r4, [r0]
+ ldr r1, _080F6770
+ adds r0, r4, r1
+ ldr r2, _080F6774
+ adds r5, r4, r2
+ ldrh r1, [r5]
+ movs r2, 0
+ bl sub_80F6514
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ movs r1, 0
+ bl sub_80F4824
+ ldrh r1, [r5]
+ ldr r6, _080F6778
+ adds r0, r4, r6
+ movs r6, 0
+ strh r1, [r0]
+ ldr r1, _080F677C
+ adds r0, r4, r1
+ strb r6, [r0]
+ movs r2, 0
+ mov r9, r2
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ lsls r1, 2
+ adds r1, r4, r1
+ ldr r5, _080F6780
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _080F6784
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x52
+ movs r3, 0
+ bl sub_80F44B0
+ adds r7, r0, 0
+ ldr r3, _080F6788
+ adds r4, r3
+ strb r6, [r4]
+ movs r5, 0
+ mov r12, r5
+ mov r10, r8
+_080F674E:
+ ldr r1, _080F678C
+ mov r6, r12
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x36
+ bgt _080F6790
+ cmp r0, 0x32
+ blt _080F6790
+ movs r0, 0x7
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 3
+ movs r0, 0x4
+ b _080F679A
+ .align 2, 0
+_080F676C: .4byte gUnknown_083DFEC4
+_080F6770: .4byte 0x00008829
+_080F6774: .4byte 0x0000876e
+_080F6778: .4byte 0x000087dc
+_080F677C: .4byte 0x0000bc8e
+_080F6780: .4byte 0x0000893d
+_080F6784: .4byte 0x0000893e
+_080F6788: .4byte 0x0000bc8f
+_080F678C: .4byte gUnknown_083E499C
+_080F6790:
+ movs r0, 0x1
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 1
+ movs r0, 0x1
+_080F679A:
+ movs r4, 0
+ adds r1, r2, 0
+ add r0, r9
+ mov r8, r0
+ cmp r4, r1
+ bcs _080F67D4
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r5, _080F6828
+ adds r3, r0, r5
+ ldr r6, _080F682C
+ adds r6, r0, r6
+ str r6, [sp]
+ adds r5, r1, 0
+_080F67B6:
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r6, r9
+ adds r1, r6, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080F67B6
+_080F67D4:
+ cmp r2, 0
+ beq _080F67EC
+ mov r0, r9
+ cmp r0, 0x18
+ bls _080F67EC
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r3, _080F6830
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F67EC:
+ mov r5, r8
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x10
+ bls _080F674E
+ ldr r6, _080F6834
+ ldr r2, [r6]
+ ldr r1, _080F6828
+ adds r0, r2, r1
+ ldr r3, _080F6830
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6840
+ ldr r5, _080F6838
+ adds r0, r2, r5
+ movs r1, 0
+ strb r1, [r0]
+ ldr r6, _080F683C
+ adds r0, r2, r6
+ strb r1, [r0]
+ b _080F6850
+ .align 2, 0
+_080F6828: .4byte 0x0000bc8e
+_080F682C: .4byte 0x0000bc4c
+_080F6830: .4byte 0x0000bc8f
+_080F6834: .4byte gUnknown_083DFEC4
+_080F6838: .4byte 0x0000bc90
+_080F683C: .4byte 0x0000bc91
+_080F6840:
+ ldr r0, _080F6888
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080F688C
+ adds r1, r2, r3
+ movs r0, 0x3
+ strb r0, [r1]
+_080F6850:
+ ldr r5, _080F6890
+ ldr r1, [r5]
+ ldr r6, _080F6894
+ adds r0, r1, r6
+ ldr r2, _080F6898
+ adds r1, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0
+ mov r12, r3
+ adds r3, r5, 0
+ ldr r1, _080F689C
+ movs r4, 0x9
+_080F6870:
+ cmp r2, 0x8
+ bls _080F68A0
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r4, [r0]
+ adds r0, r2, 0
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080F68AA
+ .align 2, 0
+_080F6888: .4byte 0x0000bc90
+_080F688C: .4byte 0x0000bc91
+_080F6890: .4byte gUnknown_083DFEC4
+_080F6894: .4byte 0x0000bc8e
+_080F6898: .4byte 0x0000bc8f
+_080F689C: .4byte 0x0000bc96
+_080F68A0:
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ movs r2, 0
+_080F68AA:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x2
+ bls _080F6870
+ ldr r5, _080F68DC
+ ldr r0, [r5]
+ ldr r6, _080F68E0
+ adds r1, r0, r6
+ add r1, r12
+ ldr r2, _080F68E4
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F68DC: .4byte gUnknown_083DFEC4
+_080F68E0: .4byte 0x0000bc96
+_080F68E4: .4byte 0x0000bc8f
+ thumb_func_end sub_80F66E0
+
+ thumb_func_start sub_80F68E8
+sub_80F68E8: @ 80F68E8
+ push {r4-r7,lr}
+ ldr r3, _080F6918
+ ldr r0, [r3]
+ ldr r2, _080F691C
+ adds r1, r0, r2
+ ldrb r5, [r1]
+ ldr r6, _080F6920
+ adds r0, r6
+ ldrb r4, [r0]
+ movs r0, 0x1
+ mov r12, r0
+ ldr r2, _080F6924
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r7, r2, 0
+ cmp r0, 0
+ beq _080F692E
+ lsls r0, r4, 24
+ cmp r0, 0
+ ble _080F692E
+ b _080F69BC
+ .align 2, 0
+_080F6918: .4byte gUnknown_083DFEC4
+_080F691C: .4byte 0x0000bc90
+_080F6920: .4byte 0x0000bc91
+_080F6924: .4byte gMain
+_080F6928:
+ ldr r1, _080F69B0
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F692E:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F6978
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6978
+ ldr r3, _080F69B4
+ ldr r2, _080F69B8
+_080F6944:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6960
+ adds r0, 0x1
+ lsls r0, 24
+ ldr r1, [r3]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6944
+_080F6960:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F69EC
+ ldr r1, _080F69B0
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F6978:
+ ldrh r2, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080F698A
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ bgt _080F6A3C
+_080F698A:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080F69AA
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ ldr r1, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _080F6A38
+_080F69AA:
+ movs r0, 0
+ mov r12, r0
+ b _080F69FC
+ .align 2, 0
+_080F69B0: .4byte 0x0000bc91
+_080F69B4: .4byte gUnknown_083DFEC4
+_080F69B8: .4byte 0x0000bc96
+_080F69BC:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080F69DA
+ subs r0, 0x1
+ lsls r0, 24
+ ldr r1, [r6]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ ldr r2, _080F6A2C
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F69BC
+_080F69DA:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F6A2C
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6928
+_080F69EC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ blt _080F69FC
+ subs r0, r1, 0x1
+_080F69F8:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080F69FC:
+ mov r0, r12
+ cmp r0, 0
+ beq _080F6A44
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldr r3, [r6]
+ ldr r1, _080F6A30
+ adds r2, r3, r1
+ ldrb r6, [r2]
+ cmp r0, r6
+ bne _080F6A20
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r6, _080F6A34
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6A40
+_080F6A20:
+ strb r5, [r2]
+ ldr r1, _080F6A34
+ adds r0, r3, r1
+ strb r4, [r0]
+ b _080F6A44
+ .align 2, 0
+_080F6A2C: .4byte 0x0000bc96
+_080F6A30: .4byte 0x0000bc90
+_080F6A34: .4byte 0x0000bc91
+_080F6A38:
+ adds r0, r2, 0x1
+ b _080F69F8
+_080F6A3C:
+ subs r0, 0x1
+ b _080F69F8
+_080F6A40:
+ movs r2, 0
+ mov r12, r2
+_080F6A44:
+ mov r0, r12
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F68E8
+
+ thumb_func_start sub_80F6A4C
+sub_80F6A4C: @ 80F6A4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F6AC4
+ ldr r3, [r0]
+ ldr r0, _080F6AC8
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6A74
+ ldr r5, _080F6ACC
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F6A74:
+ ldr r1, _080F6ACC
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F6A88
+ movs r0, 0
+ strh r0, [r2]
+_080F6A88:
+ ldr r1, _080F6AD0
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6AD4
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F6AD8
+ ldr r5, _080F6ADC
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6AE0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r5, _080F6AE4
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6AE8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r5, _080F6AEC
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6AC4: .4byte gUnknown_083DFEC4
+_080F6AC8: .4byte 0x0000876e
+_080F6ACC: .4byte 0x00008774
+_080F6AD0: .4byte 0x0000bc94
+_080F6AD4: .4byte 0x000087dc
+_080F6AD8: .4byte REG_WININ
+_080F6ADC: .4byte 0x00003f37
+_080F6AE0: .4byte 0x00003f3f
+_080F6AE4: .4byte 0x000058f0
+_080F6AE8: .4byte 0x00002060
+_080F6AEC: .4byte 0x000087de
+ thumb_func_end sub_80F6A4C
+
+ thumb_func_start sub_80F6AF0
+sub_80F6AF0: @ 80F6AF0
+ push {r4,lr}
+ ldr r1, _080F6B10
+ ldr r0, [r1]
+ ldr r2, _080F6B14
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F6B04
+ b _080F6C08
+_080F6B04:
+ lsls r0, 2
+ ldr r1, _080F6B18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F6B10: .4byte gUnknown_083DFEC4
+_080F6B14: .4byte 0x000087de
+_080F6B18: .4byte _080F6B1C
+ .align 2, 0
+_080F6B1C:
+ .4byte _080F6B38
+ .4byte _080F6B54
+ .4byte _080F6B6E
+ .4byte _080F6B84
+ .4byte _080F6B9C
+ .4byte _080F6BC0
+ .4byte _080F6BE0
+_080F6B38:
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ ldr r0, _080F6B4C
+ ldr r1, [r0]
+ ldr r3, _080F6B50
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B4C: .4byte gUnknown_083DFEC4
+_080F6B50: .4byte 0x000087de
+_080F6B54:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_80F1480
+ bl sub_80F66E0
+ b _080F6BC6
+_080F6B6E:
+ bl sub_80F1238
+ ldr r0, _080F6B7C
+ ldr r1, [r0]
+ ldr r2, _080F6B80
+ adds r1, r2
+ b _080F6BCE
+ .align 2, 0
+_080F6B7C: .4byte gUnknown_083DFEC4
+_080F6B80: .4byte 0x000087de
+_080F6B84:
+ bl sub_80F13FC
+ ldr r0, _080F6B94
+ ldr r1, [r0]
+ ldr r3, _080F6B98
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B94: .4byte gUnknown_083DFEC4
+_080F6B98: .4byte 0x000087de
+_080F6B9C:
+ ldr r4, [r4]
+ ldr r1, _080F6BB8
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0
+ bl sub_80F4824
+ ldr r3, _080F6BBC
+ adds r4, r3
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F6C18
+ .align 2, 0
+_080F6BB8: .4byte 0x0000876e
+_080F6BBC: .4byte 0x000087de
+_080F6BC0:
+ movs r0, 0
+ bl sub_80F2E18
+_080F6BC6:
+ ldr r0, _080F6BD8
+ ldr r1, [r0]
+ ldr r0, _080F6BDC
+ adds r1, r0
+_080F6BCE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F6C18
+ .align 2, 0
+_080F6BD8: .4byte gUnknown_083DFEC4
+_080F6BDC: .4byte 0x000087de
+_080F6BE0:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ bl sub_80F1438
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F6C0C
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080F6C10
+ ldr r1, [r0]
+ ldr r2, _080F6C14
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F6C08:
+ movs r0, 0
+ b _080F6C1A
+ .align 2, 0
+_080F6C0C: .4byte 0x0000dfff
+_080F6C10: .4byte gUnknown_083DFEC4
+_080F6C14: .4byte 0x000087de
+_080F6C18:
+ movs r0, 0x1
+_080F6C1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6AF0
+
+ thumb_func_start sub_80F6C20
+sub_80F6C20: @ 80F6C20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6D44
+ ldr r0, [r0]
+ ldr r1, _080F6D48
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ mov r8, r1
+ ldr r2, _080F6D4C
+ mov r9, r2
+_080F6C3A:
+ ldr r1, _080F6D50
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r6, r0, r1
+ ldrh r7, [r6]
+ adds r0, r7, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6CA0
+ ldr r0, _080F6D44
+ ldr r4, [r0]
+ ldr r0, _080F6D48
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r1, _080F6D54
+ adds r0, r1
+ strh r7, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r2, _080F6D58
+ adds r0, r2
+ mov r1, r8
+ strb r1, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ mov r1, r8
+ add r1, r9
+ ldrb r1, [r1]
+ adds r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0xA]
+ ldrh r1, [r6, 0xC]
+ bl get_mapheader_by_bank_and_number
+ ldrh r1, [r5]
+ lsls r1, 3
+ adds r4, r1
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080F6D5C
+ adds r4, r1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F6CA0:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x37
+ bls _080F6C3A
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+_080F6CB4:
+ ldr r1, _080F6D60
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ adds r0, r4, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6D0E
+ ldr r0, _080F6D44
+ ldr r2, [r0]
+ ldr r0, _080F6D48
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D54
+ adds r0, r1
+ strh r4, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2]
+ ldr r4, _080F6D5C
+ adds r0, r4
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D64
+ adds r0, r1
+ strb r6, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r2, r0
+ mov r0, r8
+ adds r0, 0x38
+ adds r4, 0x2
+ adds r2, r4
+ strb r0, [r2]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080F6D0E:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0xC
+ bls _080F6CB4
+ ldr r3, _080F6D44
+ ldr r2, [r3]
+ ldr r1, _080F6D68
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080F6D6C
+ adds r0, r2, r4
+ strh r1, [r0]
+ subs r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r1, _080F6D48
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F6D70
+ subs r4, r0, 0x1
+ b _080F6D72
+ .align 2, 0
+_080F6D44: .4byte gUnknown_083DFEC4
+_080F6D48: .4byte 0x0000d158
+_080F6D4C: .4byte gSaveBlock1 + 0x97A
+_080F6D50: .4byte gTrainerEyeTrainers
+_080F6D54: .4byte 0x0000cee8
+_080F6D58: .4byte 0x0000ceec
+_080F6D5C: .4byte 0x0000ceea
+_080F6D60: .4byte gUnknown_083E49C0
+_080F6D64: .4byte 0x0000ceed
+_080F6D68: .4byte 0x0000876c
+_080F6D6C: .4byte 0x00008770
+_080F6D70:
+ movs r4, 0x7
+_080F6D72:
+ ldr r1, _080F6DA8
+ adds r0, r2, r1
+ strh r4, [r0]
+ ldr r3, [r3]
+ ldr r2, _080F6DAC
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ subs r0, 0x1
+ ldr r4, _080F6DB0
+ adds r1, r3, r4
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F6D94
+ movs r1, 0x1
+_080F6D94:
+ ldr r2, _080F6DB4
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DA8: .4byte 0x00008772
+_080F6DAC: .4byte 0x0000d158
+_080F6DB0: .4byte 0x00008774
+_080F6DB4: .4byte 0x000087c9
+ thumb_func_end sub_80F6C20
+
+ thumb_func_start sub_80F6DB8
+sub_80F6DB8: @ 80F6DB8
+ push {r4,lr}
+ movs r1, 0
+ ldr r0, _080F6DEC
+ ldr r4, [r0]
+ ldr r2, _080F6DF0
+ adds r0, r4, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F6DF4
+ adds r1, r4, r0
+ ldr r0, _080F6DF8
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F2F7C
+ ldr r1, _080F6DFC
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldr r2, _080F6E00
+ adds r4, r2
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DEC: .4byte gUnknown_083DFEC4
+_080F6DF0: .4byte 0x00008fe9
+_080F6DF4: .4byte 0x0000d15a
+_080F6DF8: .4byte 0x0000ffb8
+_080F6DFC: .4byte 0x0000876e
+_080F6E00: .4byte 0x000087dc
+ thumb_func_end sub_80F6DB8
+
+ thumb_func_start sub_80F6E04
+sub_80F6E04: @ 80F6E04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F6E78
+ ldr r5, [r0]
+ ldr r1, _080F6E7C
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r0, r5, r0
+ ldr r7, _080F6E80
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r2, _080F6E84
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r6, [r0, 0x3]
+ lsls r0, r6, 3
+ mov r8, r0
+ ldr r0, _080F6E88
+ add r0, r8
+ ldr r2, _080F6E8C
+ lsls r1, r6, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _080F6E90
+ adds r3, r5, r2
+ lsls r2, r4, 13
+ ldr r7, _080F6E94
+ adds r2, r7
+ adds r2, r5, r2
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ movs r2, 0x1
+ bl DecompressPicFromTable_2
+ ldr r0, _080F6E98
+ add r8, r0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 7
+ adds r5, r4
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6E78: .4byte gUnknown_083DFEC4
+_080F6E7C: .4byte 0x0000876e
+_080F6E80: .4byte 0x0000cee8
+_080F6E84: .4byte gTrainers
+_080F6E88: .4byte gTrainerFrontPicTable
+_080F6E8C: .4byte gTrainerFrontPicCoords
+_080F6E90: .4byte 0x000131e4
+_080F6E94: .4byte 0x0000d1e4
+_080F6E98: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_80F6E04
+
+ thumb_func_start sub_80F6E9C
+sub_80F6E9C: @ 80F6E9C
+ push {lr}
+ ldr r0, _080F6EB4
+ ldr r0, [r0]
+ ldr r2, _080F6EB8
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080F6EBC
+ movs r0, 0
+ b _080F6ED0
+ .align 2, 0
+_080F6EB4: .4byte gUnknown_083DFEC4
+_080F6EB8: .4byte 0x0000d15a
+_080F6EBC:
+ adds r0, r2, 0
+ adds r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6ECC
+ movs r0, 0x1
+ b _080F6ED0
+_080F6ECC:
+ movs r0, 0
+ strh r0, [r1]
+_080F6ED0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6E9C
+
+ thumb_func_start sub_80F6ED4
+sub_80F6ED4: @ 80F6ED4
+ push {lr}
+ ldr r0, _080F6F00
+ ldr r0, [r0]
+ ldr r2, _080F6F04
+ adds r1, r0, r2
+ ldrh r3, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x48
+ negs r2, r2
+ cmp r0, r2
+ beq _080F6F0A
+ adds r0, r3, 0
+ subs r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r2
+ ble _080F6F08
+ movs r0, 0x1
+ b _080F6F0C
+ .align 2, 0
+_080F6F00: .4byte gUnknown_083DFEC4
+_080F6F04: .4byte 0x0000d15a
+_080F6F08:
+ strh r2, [r1]
+_080F6F0A:
+ movs r0, 0
+_080F6F0C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6ED4
+
+ thumb_func_start sub_80F6F10
+sub_80F6F10: @ 80F6F10
+ push {lr}
+ ldr r0, _080F6F48
+ ldr r0, [r0]
+ ldr r2, _080F6F4C
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080F6F50
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _080F6F54
+ movs r0, 0xC8
+ strh r0, [r1]
+ ldr r0, _080F6F58
+ strh r2, [r0]
+ subs r1, 0x8
+ ldr r2, _080F6F5C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6F60
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F6FB8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6F48: .4byte gUnknown_083DFEC4
+_080F6F4C: .4byte 0x0000d15e
+_080F6F50: .4byte 0x0000d15f
+_080F6F54: .4byte REG_BLDCNT
+_080F6F58: .4byte REG_BLDY
+_080F6F5C: .4byte 0x00003f3f
+_080F6F60: .4byte 0x00001f1f
+ thumb_func_end sub_80F6F10
+
+ thumb_func_start sub_80F6F64
+sub_80F6F64: @ 80F6F64
+ push {lr}
+ ldr r0, _080F6F9C
+ ldr r1, [r0]
+ ldr r0, _080F6FA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _080F6FB0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080F6FA4
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080F6FAC
+ ldr r1, _080F6FA8
+ movs r0, 0x6
+ strh r0, [r1]
+ b _080F6FB0
+ .align 2, 0
+_080F6F9C: .4byte gUnknown_083DFEC4
+_080F6FA0: .4byte 0x0000d15e
+_080F6FA4: .4byte 0x0000d15f
+_080F6FA8: .4byte REG_BLDY
+_080F6FAC:
+ ldr r0, _080F6FB4
+ strh r1, [r0]
+_080F6FB0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FB4: .4byte REG_BLDY
+ thumb_func_end sub_80F6F64
+
+ thumb_func_start sub_80F6FB8
+sub_80F6FB8: @ 80F6FB8
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6FDC
+ ldr r1, _080F6FD0
+ ldr r2, _080F6FD4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FD8
+ b _080F6FE8
+ .align 2, 0
+_080F6FD0: .4byte REG_WIN0H
+_080F6FD4: .4byte 0x0000e8f0
+_080F6FD8: .4byte 0x00000888
+_080F6FDC:
+ ldr r1, _080F6FF0
+ ldr r2, _080F6FF4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FF8
+_080F6FE8:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FF0: .4byte REG_WIN0H
+_080F6FF4: .4byte 0x0000e8f0
+_080F6FF8: .4byte 0x00000818
+ thumb_func_end sub_80F6FB8
+
+ thumb_func_start sub_80F6FFC
+sub_80F6FFC: @ 80F6FFC
+ ldr r0, _080F7008
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7008: .4byte REG_BLDCNT
+ thumb_func_end sub_80F6FFC
+
+ thumb_func_start sub_80F700C
+sub_80F700C: @ 80F700C
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080F7078
+ ldr r4, [r2]
+ lsls r2, r1, 3
+ adds r2, r4, r2
+ ldr r3, _080F707C
+ adds r2, r3
+ ldrh r3, [r2]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 3
+ ldr r3, _080F7080
+ adds r5, r2, r3
+ adds r3, r0, 0
+ ldr r0, _080F7084
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcs _080F7060
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080F7088
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x4B
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r1, r5, 0x4
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+_080F7060:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x80
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7078: .4byte gUnknown_083DFEC4
+_080F707C: .4byte 0x0000cee8
+_080F7080: .4byte gTrainers
+_080F7084: .4byte 0x0000d158
+_080F7088: .4byte gTrainerClassNames
+ thumb_func_end sub_80F700C
+
+ thumb_func_start sub_80F708C
+sub_80F708C: @ 80F708C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F70E4
+ ldr r3, [r0]
+ ldr r0, _080F70E8
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F70B4
+ ldr r5, _080F70EC
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F70B4:
+ ldr r1, _080F70EC
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F70C8
+ movs r0, 0
+ strh r0, [r2]
+_080F70C8:
+ ldr r1, _080F70F0
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F70F4
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r5, _080F70F8
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F70E4: .4byte gUnknown_083DFEC4
+_080F70E8: .4byte 0x0000876e
+_080F70EC: .4byte 0x00008774
+_080F70F0: .4byte 0x0000bc94
+_080F70F4: .4byte 0x000087dc
+_080F70F8: .4byte 0x000087de
+ thumb_func_end sub_80F708C
+
+ thumb_func_start sub_80F70FC
+sub_80F70FC: @ 80F70FC
+ push {r4-r6,lr}
+ ldr r1, _080F711C
+ ldr r0, [r1]
+ ldr r2, _080F7120
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F7110
+ b _080F7218
+_080F7110:
+ lsls r0, 2
+ ldr r1, _080F7124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F711C: .4byte gUnknown_083DFEC4
+_080F7120: .4byte 0x000087de
+_080F7124: .4byte _080F7128
+ .align 2, 0
+_080F7128:
+ .4byte _080F7144
+ .4byte _080F714A
+ .4byte _080F7164
+ .4byte _080F716C
+ .4byte _080F71A0
+ .4byte _080F71BA
+ .4byte _080F71EA
+_080F7144:
+ bl sub_80F6ED4
+ b _080F71F8
+_080F714A:
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F715C
+ ldr r1, [r0]
+ ldr r2, _080F7160
+ adds r1, r2
+ b _080F7206
+ .align 2, 0
+_080F715C: .4byte gUnknown_083DFEC4
+_080F7160: .4byte 0x000087de
+_080F7164:
+ movs r0, 0
+ bl sub_80F2F7C
+ b _080F71FE
+_080F716C:
+ ldr r4, [r4]
+ ldr r2, _080F7194
+ adds r5, r4, r2
+ ldr r0, _080F7198
+ adds r6, r4, r0
+ ldrh r1, [r6]
+ adds r0, r5, 0
+ bl sub_80F700C
+ adds r0, r5, 0
+ bl sub_80F43D4
+ bl sub_80F105C
+ ldrb r0, [r6]
+ bl sub_80F0FFC
+ ldr r2, _080F719C
+ adds r4, r2
+ b _080F71CC
+ .align 2, 0
+_080F7194: .4byte 0x00008788
+_080F7198: .4byte 0x0000876e
+_080F719C: .4byte 0x000087de
+_080F71A0:
+ bl sub_80F0CD8
+ ldr r0, _080F71D4
+ ldr r1, [r0]
+ ldr r0, _080F71D8
+ adds r2, r1, r0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r2, _080F71DC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71BA:
+ ldr r0, _080F71D4
+ ldr r1, [r0]
+ ldr r0, _080F71D8
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bhi _080F71E0
+ bl sub_80F0D5C
+_080F71CC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F721C
+ .align 2, 0
+_080F71D4: .4byte gUnknown_083DFEC4
+_080F71D8: .4byte 0x0000bc95
+_080F71DC: .4byte 0x000087de
+_080F71E0:
+ ldr r2, _080F7210
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71EA:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+ bl sub_80F0D5C
+_080F71F8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+_080F71FE:
+ ldr r0, _080F7214
+ ldr r1, [r0]
+ ldr r0, _080F7210
+ adds r1, r0
+_080F7206:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F721C
+ .align 2, 0
+_080F7210: .4byte 0x000087de
+_080F7214: .4byte gUnknown_083DFEC4
+_080F7218:
+ movs r0, 0
+ b _080F721E
+_080F721C:
+ movs r0, 0x1
+_080F721E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F70FC
+
+ thumb_func_start sub_80F7224
+sub_80F7224: @ 80F7224
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F7260
+ adds r0, r1
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080F7264
+ ldr r0, [r0]
+ ldr r3, _080F7268
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r3, _080F726C
+ adds r0, r3
+ adds r4, r0, r1
+ cmp r2, 0xFF
+ beq _080F7270
+ adds r0, r2, 0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F7272
+ .align 2, 0
+_080F7260: .4byte gPlayerParty
+_080F7264: .4byte gUnknown_083DFEC4
+_080F7268: .4byte 0x00008fe9
+_080F726C: .4byte 0x00008931
+_080F7270:
+ movs r0, 0x9
+_080F7272:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7224
+
+ thumb_func_start sub_80F727C
+sub_80F727C: @ 80F727C
+ ldr r1, _080F7288
+ str r0, [r1]
+ movs r1, 0
+ strb r1, [r0, 0xB]
+ bx lr
+ .align 2, 0
+_080F7288: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F727C
+
+ thumb_func_start sub_80F728C
+sub_80F728C: @ 80F728C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F72C4
+ ldrb r0, [r0, 0x14]
+ lsrs r0, 3
+ bl GetTextWindowFrameGraphics
+ ldr r3, _080F72C8
+ ldr r2, [r3]
+ ldr r1, [r0]
+ str r1, [r2, 0x28]
+ ldr r0, [r0, 0x4]
+ str r0, [r2, 0x2C]
+ ldr r0, _080F72CC
+ adds r2, r0
+ movs r1, 0
+ strb r1, [r2]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, [r3]
+ adds r1, 0x30
+ ldr r2, _080F72D0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F72C4: .4byte gSaveBlock2
+_080F72C8: .4byte gUnknown_020388B8
+_080F72CC: .4byte 0x000010b0
+_080F72D0: .4byte 0x01000800
+ thumb_func_end sub_80F728C
+
+ thumb_func_start sub_80F72D4
+sub_80F72D4: @ 80F72D4
+ push {r4-r7,lr}
+ ldr r0, _080F72F4
+ ldr r1, [r0]
+ ldr r2, _080F72F8
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ lsls r0, r2, 8
+ adds r0, 0x30
+ adds r5, r1, r0
+ cmp r2, 0xD
+ beq _080F73A4
+ cmp r2, 0xD
+ bgt _080F72FC
+ cmp r2, 0
+ beq _080F7302
+ b _080F734C
+ .align 2, 0
+_080F72F4: .4byte gUnknown_020388B8
+_080F72F8: .4byte 0x000010b0
+_080F72FC:
+ cmp r2, 0xE
+ beq _080F73F0
+ b _080F734C
+_080F7302:
+ ldr r0, [r1, 0x28]
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7312:
+ ldr r6, _080F7344
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x20
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7312
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x40
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r0, _080F7348
+ adds r1, r0
+ b _080F7392
+ .align 2, 0
+_080F7344: .4byte gUnknown_020388B8
+_080F7348: .4byte 0x000010b0
+_080F734C:
+ ldr r0, _080F739C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x60
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7362:
+ ldr r6, _080F739C
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x80
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7362
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xA0
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73A0
+ adds r1, r2
+_080F7392:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F73FC
+ .align 2, 0
+_080F739C: .4byte gUnknown_020388B8
+_080F73A0: .4byte 0x000010b0
+_080F73A4:
+ ldr r0, [r1, 0x28]
+ adds r0, 0xC0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F73B6:
+ ldr r6, _080F73F4
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xE0
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F73B6
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73F8
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F73F0:
+ movs r0, 0
+ b _080F73FE
+ .align 2, 0
+_080F73F4: .4byte gUnknown_020388B8
+_080F73F8: .4byte 0x000010b0
+_080F73FC:
+ movs r0, 0x1
+_080F73FE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F72D4
+
+ thumb_func_start sub_80F7404
+sub_80F7404: @ 80F7404
+ push {lr}
+ bl sub_80F728C
+_080F740A:
+ bl sub_80F72D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F740A
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7404
+
+ thumb_func_start sub_80F7418
+sub_80F7418: @ 80F7418
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ ldr r2, _080F746C
+ ldr r3, [r2]
+ movs r1, 0
+ strb r1, [r3, 0x5]
+ ldr r1, [r2]
+ strb r0, [r1, 0x4]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0x1
+_080F7434:
+ ldr r0, [r4]
+ adds r1, r0, 0x6
+ adds r1, r3
+ ldrb r0, [r0, 0x4]
+ asrs r0, r3
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F7434
+ bl sub_814A7FC
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ ldr r2, _080F746C
+ ldr r3, [r2]
+ ldrh r2, [r3]
+ ldrh r3, [r3, 0x2]
+ bl sub_80F761C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F746C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7418
+
+ thumb_func_start sub_80F7470
+sub_80F7470: @ 80F7470
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080F74FC
+_080F7476:
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080F7476
+ ldr r4, _080F74FC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+_080F74A8:
+ ldr r0, _080F74FC
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r0, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F74A8
+ movs r4, 0
+_080F74C8:
+ ldr r5, _080F74FC
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080F74C8
+ bl sub_814A7FC
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+_080F74F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F74FC: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7470
+
+ thumb_func_start sub_80F7500
+sub_80F7500: @ 80F7500
+ push {r4,r5,lr}
+ sub sp, 0x30
+ ldr r4, _080F7580
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x30
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ ldrh r1, [r2]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r1, [r0]
+ add r1, sp, 0x20
+ ldr r0, _080F7584
+ str r0, [sp, 0x20]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x28
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ beq _080F7558
+ mov r0, sp
+ bl LoadTilesForSpriteSheets
+ ldr r0, [r4]
+ strb r5, [r0, 0xB]
+_080F7558:
+ ldr r0, _080F7588
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F758C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080F75FE
+ ldr r1, [r4]
+ movs r0, 0x5
+ strb r0, [r1, 0x5]
+ b _080F75FE
+ .align 2, 0
+_080F7580: .4byte gUnknown_020388B8
+_080F7584: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7588: .4byte gMain
+_080F758C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ ble _080F75FE
+ ldr r0, [r4]
+ strb r5, [r0, 0x5]
+ b _080F75FE
+_080F75B0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F7602
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r4]
+ movs r1, 0x5
+ ldrsb r1, [r0, r1]
+ cmp r1, 0x4
+ beq _080F75DC
+ cmp r1, 0x5
+ beq _080F7610
+ adds r0, 0x6
+ adds r1, r0, r1
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F75FC
+ movs r2, 0x1
+ b _080F75FC
+_080F75DC:
+ strb r5, [r0, 0x4]
+ movs r3, 0
+_080F75E0:
+ ldr r2, [r4]
+ adds r0, r2, 0x6
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, r3
+ ldrb r1, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F75E0
+ b _080F7610
+_080F75FC:
+ strb r2, [r1]
+_080F75FE:
+ movs r0, 0x1
+ b _080F7612
+_080F7602:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75FE
+ movs r0, 0x5
+ bl PlaySE
+_080F7610:
+ movs r0, 0
+_080F7612:
+ add sp, 0x30
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F7500
+
+ thumb_func_start sub_80F761C
+sub_80F761C: @ 80F761C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x5C
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x50]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x54]
+ ldr r0, _080F7820
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0x30
+ str r0, [sp, 0x1C]
+ add r1, sp, 0x20
+ movs r2, 0
+ mov r9, r2
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x22
+ strh r5, [r0]
+ add r1, sp, 0x24
+ ldr r0, _080F7824
+ str r0, [sp, 0x24]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ adds r0, r5, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x2C
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r6, sp, 0x1C
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ movs r2, 0x18
+ bl memcpy
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r0, [r0, 0x2C]
+ str r0, [sp, 0x34]
+ add r0, sp, 0x38
+ add r1, sp, 0x54
+ ldrh r1, [r1]
+ strh r1, [r0]
+ add r1, sp, 0x3C
+ ldr r0, _080F7828
+ str r0, [sp, 0x3C]
+ ldr r0, [sp, 0x54]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ add r0, sp, 0x44
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r4, sp, 0x34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x18
+ bl memcpy
+ strh r5, [r4]
+ add r2, sp, 0x54
+ ldrh r2, [r2]
+ strh r2, [r4, 0x2]
+ ldr r0, _080F782C
+ str r0, [r4, 0x4]
+ ldr r0, _080F7830
+ str r0, [r4, 0x8]
+ mov r3, r9
+ str r3, [r4, 0xC]
+ ldr r0, _080F7834
+ str r0, [r4, 0x10]
+ ldr r0, _080F7838
+ str r0, [r4, 0x14]
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xB]
+ add r0, sp, 0x4
+ bl AllocTilesForSpriteSheets
+ adds r0, r6, 0
+ bl LoadSpritePalettes
+ movs r5, 0
+ ldr r1, [sp, 0x4C]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r2, r0
+ mov r8, r2
+ str r0, [sp, 0x58]
+ ldr r3, [sp, 0x50]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r7, r0, r1
+ mov r9, r0
+_080F7700:
+ adds r0, r4, 0
+ mov r2, r8
+ asrs r1, r2, 16
+ asrs r2, r7, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080F7718
+ b _080F7850
+_080F7718:
+ ldr r6, _080F7820
+ ldr r2, [r6]
+ lsls r0, r5, 2
+ adds r2, 0xC
+ adds r2, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F783C
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F7700
+ ldr r0, [r6]
+ ldr r1, [r0, 0x10]
+ mov r3, r9
+ asrs r0, r3, 16
+ adds r0, 0x60
+ strh r0, [r1, 0x22]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r0, _080F7840
+ str r0, [r4, 0x8]
+ ldr r0, _080F7844
+ str r0, [r4, 0x14]
+ ldr r0, _080F7848
+ str r0, [r4, 0x4]
+ movs r5, 0
+ ldr r0, [sp, 0x58]
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ mov r10, r0
+_080F7770:
+ lsls r2, r5, 4
+ adds r2, 0x10
+ mov r3, r9
+ asrs r3, 16
+ mov r8, r3
+ add r2, r8
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r4, 0
+ mov r3, r10
+ asrs r1, r3, 16
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7860
+ ldr r6, _080F7820
+ ldr r1, [r6]
+ lsls r0, r5, 2
+ adds r1, 0x14
+ adds r1, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, _080F783C
+ adds r0, r7
+ str r0, [r1]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F7770
+ ldr r0, _080F784C
+ str r0, [r4, 0x14]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7874
+ ldr r1, [r6]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r7
+ str r0, [r1, 0x24]
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3F
+ ands r1, r2
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldr r0, [r6]
+ ldr r2, [r0, 0x24]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x24]
+ movs r1, 0x9
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ ldr r2, [r1, 0x24]
+ ldr r3, [sp, 0x58]
+ asrs r0, r3, 16
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x24]
+ mov r0, r8
+ adds r0, 0x50
+ strh r0, [r2, 0x22]
+ ldr r0, [r1, 0x24]
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ b _080F787A
+ .align 2, 0
+_080F7820: .4byte gUnknown_020388B8
+_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7828: .4byte gUnknown_08E966B8
+_080F782C: .4byte gUnknown_083E5214
+_080F7830: .4byte gSpriteAnimTable_83E52AC
+_080F7834: .4byte gDummySpriteAffineAnimTable
+_080F7838: .4byte nullsub_65
+_080F783C: .4byte gSprites
+_080F7840: .4byte gSpriteAnimTable_83E5274
+_080F7844: .4byte sub_80F78CC
+_080F7848: .4byte gUnknown_083E521C
+_080F784C: .4byte SpriteCallbackDummy
+_080F7850:
+ ldr r0, _080F785C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0xC
+ b _080F7868
+ .align 2, 0
+_080F785C: .4byte gUnknown_020388B8
+_080F7860:
+ ldr r0, _080F7870
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x14
+_080F7868:
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F78B0
+ .align 2, 0
+_080F7870: .4byte gUnknown_020388B8
+_080F7874:
+ ldr r1, [r6]
+ movs r0, 0
+ str r0, [r1, 0x24]
+_080F787A:
+ ldr r4, _080F78C0
+ ldr r1, [r4]
+ ldr r0, [sp, 0x50]
+ adds r0, 0x8
+ strb r0, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xF
+ movs r3, 0
+ bl sub_814A5C0
+ ldr r0, [sp, 0x4C]
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ ldrb r1, [r1, 0xA]
+ bl sub_814A880
+ ldr r0, _080F78C4
+ bl sub_814AABC
+_080F78B0:
+ add sp, 0x5C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F78C0: .4byte gUnknown_020388B8
+_080F78C4: .4byte sub_80F7908
+ thumb_func_end sub_80F761C
+
+ thumb_func_start nullsub_65
+nullsub_65: @ 80F78C8
+ bx lr
+ thumb_func_end nullsub_65
+
+ thumb_func_start sub_80F78CC
+sub_80F78CC: @ 80F78CC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F78F4
+ ldr r0, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ adds r0, 0x6
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F78F8
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080F7902
+ .align 2, 0
+_080F78F4: .4byte gUnknown_020388B8
+_080F78F8:
+ lsls r1, 25
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_080F7902:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F78CC
+
+ thumb_func_start sub_80F7908
+sub_80F7908: @ 80F7908
+ ldr r1, _080F791C
+ ldr r2, [r1]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ lsls r1, 4
+ ldrb r2, [r2, 0xA]
+ adds r1, r2
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F791C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7908
+
+ thumb_func_start sub_80F7920
+sub_80F7920: @ 80F7920
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7930
+ ldr r2, _080F793C
+_080F7930:
+ movs r3, 0x10
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F793C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7920
+
+ thumb_func_start sub_80F7940
+sub_80F7940: @ 80F7940
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7950
+ ldr r2, _080F795C
+_080F7950:
+ movs r3, 0x1
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F795C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7940
+
+ thumb_func_start sub_80F7960
+sub_80F7960: @ 80F7960
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _080F79DC
+ str r4, [sp, 0x18]
+ movs r4, 0x80
+ add r5, sp, 0x18
+ lsrs r6, r0, 16
+ orrs r0, r4
+ str r0, [r5, 0x4]
+ str r2, [sp, 0x20]
+ ldr r0, _080F79E0
+ mov r8, r0
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ mov r2, r8
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r6, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080F79E4
+ str r0, [sp, 0x4]
+ ldr r0, _080F79E8
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080F79EC
+ str r0, [sp, 0x10]
+ ldr r0, _080F79F0
+ str r0, [sp, 0x14]
+ lsls r3, 23
+ lsrs r3, 16
+ ldr r0, [r5, 0x4]
+ mov r1, r8
+ ands r0, r1
+ orrs r0, r3
+ str r0, [r5, 0x4]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F79F4
+ movs r0, 0
+ b _080F79FE
+ .align 2, 0
+_080F79DC: .4byte gUnknown_083E4A14
+_080F79E0: .4byte 0xffff0000
+_080F79E4: .4byte gUnknown_083E52B4
+_080F79E8: .4byte gSpriteAnimTable_83E533C
+_080F79EC: .4byte gDummySpriteAffineAnimTable
+_080F79F0: .4byte nullsub_65
+_080F79F4:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F7A0C
+ adds r0, r1
+_080F79FE:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F7A0C: .4byte gSprites
+ thumb_func_end sub_80F7960
+
+ thumb_func_start sub_80F7A10
+sub_80F7A10: @ 80F7A10
+ lsls r0, 24
+ lsrs r0, 17
+ ldr r2, _080F7A28
+ adds r0, r2
+ ldr r2, _080F7A2C
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080F7A30
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080F7A28: .4byte gUnknown_083E4A14
+_080F7A2C: .4byte 0x040000d4
+_080F7A30: .4byte 0x80000040
+ thumb_func_end sub_80F7A10
+
+ thumb_func_start sub_80F7A34
+sub_80F7A34: @ 80F7A34
+ push {r4,lr}
+ ldr r0, _080F7A64
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r0, 0
+ adds r2, 0x29
+ strb r1, [r2]
+ movs r2, 0
+ adds r4, r0, 0x2
+ ldr r3, _080F7A68
+_080F7A48:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7A48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7A64: .4byte gSaveBlock1 + 0x2D94
+_080F7A68: .4byte gUnknown_083E537C
+ thumb_func_end sub_80F7A34
+
+ thumb_func_start sub_80F7A6C
+sub_80F7A6C: @ 80F7A6C
+ ldr r0, _080F7A78
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A78: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A6C
+
+ thumb_func_start sub_80F7A7C
+sub_80F7A7C: @ 80F7A7C
+ push {lr}
+ bl sub_80F83F8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A7C
+
+ thumb_func_start sub_80F7A88
+sub_80F7A88: @ 80F7A88
+ ldr r0, _080F7A94
+ movs r2, 0
+ movs r1, 0x4
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A94: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A88
+
+ thumb_func_start sub_80F7A98
+sub_80F7A98: @ 80F7A98
+ push {lr}
+ bl sub_81099CC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A98
+
+ thumb_func_start sub_80F7AA4
+sub_80F7AA4: @ 80F7AA4
+ push {lr}
+ ldr r0, _080F7AC8
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 17
+ cmp r0, 0x4
+ bhi _080F7B00
+ lsls r0, 2
+ ldr r1, _080F7ACC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7AC8: .4byte gSaveBlock2
+_080F7ACC: .4byte _080F7AD0
+ .align 2, 0
+_080F7AD0:
+ .4byte _080F7AE4
+ .4byte _080F7AEA
+ .4byte _080F7AF0
+ .4byte _080F7AF6
+ .4byte _080F7AFC
+_080F7AE4:
+ bl sub_80F7A34
+ b _080F7B00
+_080F7AEA:
+ bl sub_80F7A6C
+ b _080F7B00
+_080F7AF0:
+ bl sub_80F7A98
+ b _080F7B00
+_080F7AF6:
+ bl sub_80F7A7C
+ b _080F7B00
+_080F7AFC:
+ bl sub_80F7A88
+_080F7B00:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7AA4
+
+ thumb_func_start GetCurrentMauvilleOldMan
+GetCurrentMauvilleOldMan: @ 80F7B08
+ ldr r0, _080F7B10
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080F7B10: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end GetCurrentMauvilleOldMan
+
+ thumb_func_start sub_80F7B14
+sub_80F7B14: @ 80F7B14
+ push {r4,lr}
+ ldr r4, _080F7B28
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B28: .4byte gScriptResult
+ thumb_func_end sub_80F7B14
+
+ thumb_func_start sub_80F7B2C
+sub_80F7B2C: @ 80F7B2C
+ ldr r0, _080F7B38
+ ldr r1, _080F7B3C
+ adds r1, 0x29
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7B38: .4byte gScriptResult
+_080F7B3C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7B2C
+
+ thumb_func_start sub_80F7B40
+sub_80F7B40: @ 80F7B40
+ push {r4,r5,lr}
+ ldr r5, _080F7B98
+ adds r0, r5, 0
+ adds r0, 0x1A
+ ldr r4, _080F7B9C
+ adds r1, r4, 0
+ bl StringCopy
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x25
+ adds r4, 0xA
+_080F7B58:
+ adds r1, r3, r2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F7B58
+ movs r2, 0
+ movs r0, 0x29
+ adds r0, r5
+ mov r12, r0
+ adds r4, r5, 0x2
+ adds r3, r5, 0
+ adds r3, 0xE
+_080F7B78:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7B78
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B98: .4byte gSaveBlock1 + 0x2D94
+_080F7B9C: .4byte gSaveBlock2
+ thumb_func_end sub_80F7B40
+
+ thumb_func_start sub_80F7BA0
+sub_80F7BA0: @ 80F7BA0
+ push {r4-r7,lr}
+ ldr r1, _080F7C48
+ ldr r0, _080F7C4C
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ adds r5, 0xE
+ cmp r0, 0
+ bne _080F7BB2
+ adds r5, r1, 0x2
+_080F7BB2:
+ ldr r2, _080F7C50
+ adds r4, r2, 0
+ movs r6, 0
+_080F7BB8:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ adds r7, r6, 0x1
+ cmp r2, r4
+ beq _080F7BDA
+ movs r1, 0x37
+_080F7BCC:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BD4
+ strb r1, [r4]
+_080F7BD4:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BCC
+_080F7BDA:
+ adds r4, 0x1
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C02
+ movs r1, 0x37
+_080F7BF4:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BFC
+ strb r1, [r4]
+_080F7BFC:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BF4
+_080F7C02:
+ adds r4, 0x1
+ movs r0, 0xFE
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C2A
+ movs r1, 0x37
+_080F7C1C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7C24
+ strb r1, [r4]
+_080F7C24:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7C1C
+_080F7C2A:
+ cmp r6, 0
+ bne _080F7C3A
+ movs r0, 0xFC
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0xF
+ strb r0, [r2]
+ adds r2, 0x1
+_080F7C3A:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F7BB8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C48: .4byte gSaveBlock1 + 0x2D94
+_080F7C4C: .4byte gUnknown_0202E8CC
+_080F7C50: .4byte gStringVar4
+ thumb_func_end sub_80F7BA0
+
+ thumb_func_start sub_80F7C54
+sub_80F7C54: @ 80F7C54
+ push {lr}
+ ldr r0, _080F7C6C
+ ldrb r0, [r0]
+ bl sub_80F7F80
+ bl MenuDisplayMessageBox
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C6C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F7C54
+
+ thumb_func_start sub_80F7C70
+sub_80F7C70: @ 80F7C70
+ ldr r0, _080F7C7C
+ ldr r1, _080F7C80
+ ldrb r1, [r1, 0x1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7C7C: .4byte gScriptResult
+_080F7C80: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C70
+
+ thumb_func_start sub_80F7C84
+sub_80F7C84: @ 80F7C84
+ ldr r1, _080F7C8C
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7C8C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C84
+
+ thumb_func_start sub_80F7C90
+sub_80F7C90: @ 80F7C90
+ push {lr}
+ bl sub_80EB8EC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F7CA8
+ cmp r1, r0
+ bne _080F7CB0
+ ldr r1, _080F7CAC
+ movs r0, 0
+ b _080F7CBA
+ .align 2, 0
+_080F7CA8: .4byte 0x0000ffff
+_080F7CAC: .4byte gScriptResult
+_080F7CB0:
+ ldr r0, _080F7CC0
+ bl sub_80EB3FC
+ ldr r1, _080F7CC4
+ movs r0, 0x1
+_080F7CBA:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CC0: .4byte gStringVar1
+_080F7CC4: .4byte gScriptResult
+ thumb_func_end sub_80F7C90
+
+ thumb_func_start sub_80F7CC8
+sub_80F7CC8: @ 80F7CC8
+ push {lr}
+ ldr r2, _080F7CDC
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xA
+ bne _080F7CE4
+ ldr r1, _080F7CE0
+ movs r0, 0
+ strh r0, [r1]
+ strb r0, [r2, 0x1]
+ b _080F7CEA
+ .align 2, 0
+_080F7CDC: .4byte gSaveBlock1 + 0x2D94
+_080F7CE0: .4byte gScriptResult
+_080F7CE4:
+ ldr r1, _080F7CF0
+ movs r0, 0x1
+ strh r0, [r1]
+_080F7CEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CF0: .4byte gScriptResult
+ thumb_func_end sub_80F7CC8
+
+ thumb_func_start sub_80F7CF4
+sub_80F7CF4: @ 80F7CF4
+ push {r4-r6,lr}
+ ldr r5, _080F7D50
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ bne _080F7D02
+ bl sub_80F7DC0
+_080F7D02:
+ ldrb r0, [r5, 0x1]
+ lsls r0, 1
+ adds r6, r5, 0x4
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _080F7D54
+ cmp r1, r0
+ beq _080F7D68
+ bl Random
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x7
+ ands r4, r0
+ ldr r0, _080F7D58
+ ldrb r1, [r5, 0x1]
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ ldr r1, _080F7D5C
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080F7D60
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _080F7D64
+ bl StringCopy
+ b _080F7D88
+ .align 2, 0
+_080F7D50: .4byte gSaveBlock1 + 0x2D94
+_080F7D54: .4byte 0x0000ffff
+_080F7D58: .4byte gStringVar4
+_080F7D5C: .4byte gOtherText_Is
+_080F7D60: .4byte gUnknown_083E5388
+_080F7D64: .4byte gOtherText_DontYouAgree
+_080F7D68:
+ ldr r0, _080F7DA0
+ ldr r3, _080F7DA4
+ ldrb r1, [r5, 0x2]
+ adds r2, r1, 0x1
+ strb r2, [r5, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0
+ adds r2, 0x18
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+_080F7D88:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F7DA8
+ movs r0, 0xA
+ b _080F7DAC
+ .align 2, 0
+_080F7DA0: .4byte gStringVar4
+_080F7DA4: .4byte gUnknown_083E53A8
+_080F7DA8:
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+_080F7DAC:
+ strb r0, [r5, 0x1]
+ ldr r1, _080F7DBC
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7DBC: .4byte gScriptResult
+ thumb_func_end sub_80F7CF4
+
+ thumb_func_start sub_80F7DC0
+sub_80F7DC0: @ 80F7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r1, _080F7E84
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r5, 0
+ movs r0, 0x2
+ add r0, sp
+ mov r8, r0
+ ldr r1, _080F7E88
+ adds r1, 0x18
+ adds r3, r1, 0
+_080F7DE4:
+ adds r0, r3, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F7DE4
+ movs r5, 0
+ ldr r2, _080F7E88
+ adds r2, 0x4
+ mov r9, r2
+ adds r6, r1, 0
+_080F7DFC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r6, r5
+ ldrb r7, [r2]
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r7, [r1]
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0x7
+ bls _080F7DFC
+ movs r3, 0
+ mov r10, r3
+ movs r5, 0
+_080F7E2A:
+ lsls r4, r5, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl sub_80EAE88
+ add r4, r8
+ strh r0, [r4]
+ add r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080F7E2A
+ movs r0, 0
+ ldr r2, _080F7E88
+ strb r0, [r2, 0x2]
+ movs r7, 0
+ movs r5, 0
+_080F7E56:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bhi _080F7E90
+ cmp r7, 0x7
+ bhi _080F7E90
+ lsls r0, r5, 1
+ add r0, r9
+ ldr r1, _080F7E8C
+ strh r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, r5, 0x1
+ b _080F7EE2
+ .align 2, 0
+_080F7E84: .4byte gUnknown_083E53C8
+_080F7E88: .4byte gSaveBlock1 + 0x2D94
+_080F7E8C: .4byte 0x0000ffff
+_080F7E90:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ adds r4, r5, 0x1
+ lsls r6, r5, 1
+ cmp r5, 0x5
+ bhi _080F7ECC
+ mov r3, r8
+ ldrh r0, [r3]
+ b _080F7EC2
+_080F7EB2:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r5, 0x5
+ bhi _080F7ECC
+ lsls r0, r1, 2
+ adds r0, r3, r0
+ ldrh r0, [r0]
+_080F7EC2:
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bgt _080F7EB2
+_080F7ECC:
+ cmp r1, 0x6
+ bne _080F7ED2
+ movs r1, 0
+_080F7ED2:
+ lsls r0, r1, 2
+ add r0, sp
+ ldrh r0, [r0]
+ bl sub_80EB784
+ mov r2, r9
+ adds r1, r2, r6
+ strh r0, [r1]
+_080F7EE2:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F7E56
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7DC0
+
+ thumb_func_start sub_80F7EFC
+sub_80F7EFC: @ 80F7EFC
+ ldr r0, _080F7F08
+ adds r0, 0x29
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7F08: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7EFC
+
+ thumb_func_start sub_80F7F0C
+sub_80F7F0C: @ 80F7F0C
+ ldr r1, _080F7F14
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7F14: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7F0C
+
+ thumb_func_start sub_80F7F18
+sub_80F7F18: @ 80F7F18
+ push {lr}
+ bl sub_8109A20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F18
+
+ thumb_func_start sub_80F7F24
+sub_80F7F24: @ 80F7F24
+ push {lr}
+ bl sub_80F8428
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F24
+
+ thumb_func_start sub_80F7F30
+sub_80F7F30: @ 80F7F30
+ push {lr}
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F7F76
+ lsls r0, 2
+ ldr r1, _080F7F48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7F48: .4byte _080F7F4C
+ .align 2, 0
+_080F7F4C:
+ .4byte _080F7F60
+ .4byte _080F7F66
+ .4byte _080F7F72
+ .4byte _080F7F6C
+ .4byte _080F7F76
+_080F7F60:
+ bl sub_80F7EFC
+ b _080F7F76
+_080F7F66:
+ bl sub_80F7F0C
+ b _080F7F76
+_080F7F6C:
+ bl sub_80F7F24
+ b _080F7F76
+_080F7F72:
+ bl sub_80F7F18
+_080F7F76:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F30
+
+ thumb_func_start sub_80F7F80
+sub_80F7F80: @ 80F7F80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F7FA8
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F7FAC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x12]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7FA8: .4byte sub_80F8184
+_080F7FAC: .4byte gTasks
+ thumb_func_end sub_80F7F80
+
+ thumb_func_start sub_80F7FB0
+sub_80F7FB0: @ 80F7FB0
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ bls _080F7FBE
+ b _080F817A
+_080F7FBE:
+ lsls r0, 2
+ ldr r1, _080F7FC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7FC8: .4byte _080F7FCC
+ .align 2, 0
+_080F7FCC:
+ .4byte _080F7FE4
+ .4byte _080F817A
+ .4byte _080F8040
+ .4byte _080F8074
+ .4byte _080F8074
+ .4byte _080F817A
+_080F7FE4:
+ ldr r2, _080F8034
+ ldr r0, _080F8038
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0xE
+ cmp r0, 0
+ bne _080F7FF4
+ adds r1, r2, 0x2
+_080F7FF4:
+ adds r2, r1, 0
+ adds r1, r6, 0
+ adds r1, 0xC
+ movs r3, 0x5
+_080F7FFC:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F7FFC
+ ldr r2, _080F803C
+ adds r4, r2, 0
+ movs r2, 0
+ adds r1, r6, 0
+ adds r1, 0x18
+ movs r3, 0x5
+_080F8016:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F8016
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x4]
+ b _080F817A
+ .align 2, 0
+_080F8034: .4byte gSaveBlock1 + 0x2D94
+_080F8038: .4byte gUnknown_0202E8CC
+_080F803C: .4byte 0x0000ffff
+_080F8040:
+ ldrb r1, [r6]
+ lsls r1, 1
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrh r4, [r0]
+ lsrs r0, r4, 9
+ ldr r1, _080F8070
+ ands r1, r4
+ bl sub_814A2D0
+ adds r1, r0, 0
+ movs r0, 0
+ strh r0, [r6, 0x4]
+ movs r2, 0x3
+ ands r2, r4
+ lsrs r4, 3
+ movs r0, 0x1
+ ands r4, r0
+ adds r2, r4
+ adds r0, r6, 0
+ bl sub_814A2EC
+ b _080F817A
+ .align 2, 0
+_080F8070: .4byte 0x000001ff
+_080F8074:
+ ldrb r1, [r6, 0x1]
+ lsls r0, r1, 3
+ adds r0, 0x18
+ adds r7, r6, r0
+ ldrb r0, [r6, 0x3]
+ cmp r0, 0x1
+ beq _080F8124
+ cmp r0, 0x1
+ bgt _080F808C
+ cmp r0, 0
+ beq _080F8092
+ b _080F817A
+_080F808C:
+ cmp r0, 0xFE
+ beq _080F8170
+ b _080F817A
+_080F8092:
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0
+ bne _080F80D0
+ cmp r1, 0x6
+ beq _080F80A2
+ ldrh r0, [r7]
+ cmp r0, 0xFF
+ bne _080F80A6
+_080F80A2:
+ movs r0, 0xFE
+ b _080F8178
+_080F80A6:
+ ldrh r0, [r7, 0x2]
+ strb r0, [r6, 0x2]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F80CA
+ movs r1, 0x3
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0xF9
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStart
+_080F80CA:
+ movs r0, 0x1
+ strb r0, [r6, 0x3]
+ b _080F8114
+_080F80D0:
+ ldrh r1, [r6, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xA
+ ble _080F80E0
+ ldrh r0, [r6, 0x6]
+ subs r0, 0x2
+ strh r0, [r6, 0x6]
+_080F80E0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F80EE
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x40
+ b _080F80F2
+_080F80EE:
+ ldrh r0, [r6, 0x8]
+ subs r0, 0x40
+_080F80F2:
+ strh r0, [r6, 0x8]
+ ldr r4, _080F811C
+ ldr r5, _080F8120
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+_080F8114:
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+ b _080F817A
+ .align 2, 0
+_080F811C: .4byte gMPlay_SE2
+_080F8120: .4byte 0x0000ffff
+_080F8124:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strb r0, [r6, 0x1]
+ strb r1, [r6, 0x3]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F817A
+ ldrh r0, [r7, 0x6]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x6]
+ ldr r4, _080F8168
+ ldr r5, _080F816C
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r7, [r7, 0x4]
+ adds r0, r7
+ strh r0, [r6, 0x8]
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ b _080F817A
+ .align 2, 0
+_080F8168: .4byte gMPlay_SE2
+_080F816C: .4byte 0x0000ffff
+_080F8170:
+ ldr r0, _080F8180
+ bl m4aMPlayStop
+ movs r0, 0xFF
+_080F8178:
+ strb r0, [r6, 0x3]
+_080F817A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8180: .4byte gMPlay_SE2
+ thumb_func_end sub_80F7FB0
+
+ thumb_func_start sub_80F8184
+sub_80F8184: @ 80F8184
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F81B4
+ adds r5, r0, r1
+ ldr r1, _080F81B8
+ adds r0, r5, 0
+ bl sub_80F7FB0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bls _080F81A8
+ b _080F83C8
+_080F81A8:
+ lsls r0, 2
+ ldr r1, _080F81BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F81B4: .4byte gTasks
+_080F81B8: .4byte gUnknown_03005DA0
+_080F81BC: .4byte _080F81C0
+ .align 2, 0
+_080F81C0:
+ .4byte _080F81D8
+ .4byte _080F8218
+ .4byte _080F8228
+ .4byte _080F82D8
+ .4byte _080F83B8
+ .4byte _080F82C6
+_080F81D8:
+ bl sub_80F7BA0
+ ldr r4, _080F820C
+ ldr r0, [r4]
+ ldr r1, _080F8210
+ bl InitWindowFromConfig
+ ldr r0, [r4]
+ ldr r1, _080F8214
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_8002EB0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ movs r0, 0x4
+ bl FadeOutBGMTemporarily
+ movs r0, 0x1
+ b _080F83C6
+ .align 2, 0
+_080F820C: .4byte gMenuWindowPtr
+_080F8210: .4byte gWindowConfig_81E6CE4
+_080F8214: .4byte gStringVar4
+_080F8218:
+ bl IsBGMPausedOrStopped
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8224
+ b _080F83C8
+_080F8224:
+ movs r0, 0x2
+ b _080F83C6
+_080F8228:
+ ldr r4, _080F8240
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ ldr r0, _080F8244
+ adds r1, r0
+ movs r3, 0
+ ldrb r0, [r1]
+ ldr r7, _080F8248
+ ldrh r2, [r5, 0x12]
+ ldr r6, _080F824C
+ b _080F825A
+ .align 2, 0
+_080F8240: .4byte gSaveBlock1 + 0x2D94
+_080F8244: .4byte gStringVar4
+_080F8248: .4byte gUnknown_03005DA0
+_080F824C: .4byte gUnknown_020388BC
+_080F8250:
+ adds r1, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrb r0, [r1]
+_080F825A:
+ cmp r0, 0
+ beq _080F826A
+ cmp r0, 0xFE
+ beq _080F826A
+ cmp r0, 0xFC
+ beq _080F826A
+ cmp r0, 0xFF
+ bne _080F8250
+_080F826A:
+ cmp r2, 0
+ bne _080F8278
+ movs r0, 0x10
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0x2
+ b _080F8282
+_080F8278:
+ movs r2, 0x10
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0xE
+_080F8282:
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ lsrs r0, 3
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ strh r1, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ adds r1, r3, 0
+ bl __divsi3
+ movs r1, 0
+ strh r0, [r7, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080F82AC
+ movs r0, 0x1
+ strh r0, [r7, 0x4]
+_080F82AC:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82BE
+ movs r0, 0x3
+ b _080F82C0
+_080F82BE:
+ movs r0, 0x5
+_080F82C0:
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ b _080F83C8
+_080F82C6:
+ ldrh r1, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82D2
+ b _080F83C4
+_080F82D2:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F82D8:
+ ldr r1, _080F8304
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ adds r0, r1
+ ldrb r4, [r0]
+ cmp r4, 0xFF
+ bne _080F830C
+ movs r0, 0xC8
+ lsls r0, 1
+ movs r1, 0x6
+ bl FadeInNewBGM
+ ldr r0, _080F8308
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ bl EnableBothScriptContexts
+ adds r0, r6, 0
+ bl DestroyTask
+ b _080F83C8
+ .align 2, 0
+_080F8304: .4byte gStringVar4
+_080F8308: .4byte gMPlay_SE2
+_080F830C:
+ cmp r4, 0
+ bne _080F832C
+ ldr r0, _080F8328
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8328: .4byte gMenuWindowPtr
+_080F832C:
+ cmp r4, 0xFE
+ bne _080F8340
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xC]
+ b _080F83C8
+_080F8340:
+ cmp r4, 0xFC
+ bne _080F8354
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x2
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ movs r0, 0x8
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F8354:
+ cmp r4, 0x37
+ bne _080F8374
+ movs r4, 0
+ strb r4, [r0]
+ ldr r0, _080F8370
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8370: .4byte gMenuWindowPtr
+_080F8374:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080F8394
+ cmp r0, 0x1
+ bgt _080F8386
+ cmp r0, 0
+ beq _080F838C
+ b _080F83C8
+_080F8386:
+ cmp r0, 0x2
+ beq _080F83A0
+ b _080F83C8
+_080F838C:
+ ldr r0, _080F839C
+ ldr r0, [r0]
+ bl sub_8003418
+_080F8394:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ b _080F83C8
+ .align 2, 0
+_080F839C: .4byte gMenuWindowPtr
+_080F83A0:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0xA]
+ ldr r0, _080F83B4
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0xC]
+ movs r0, 0x4
+ b _080F83C6
+ .align 2, 0
+_080F83B4: .4byte gUnknown_03005DA0
+_080F83B8:
+ ldrh r0, [r5, 0xC]
+ subs r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F83C8
+_080F83C4:
+ movs r0, 0x3
+_080F83C6:
+ strh r0, [r5, 0x8]
+_080F83C8:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8184
+
+ thumb_func_start sub_80F83D0
+sub_80F83D0: @ 80F83D0
+ push {r4,lr}
+ ldr r4, _080F83F4
+ bl GetCurrentMauvilleOldMan
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x8A
+ lsls r0, 15
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F83F4: .4byte 0x00004010
+ thumb_func_end sub_80F83D0
+
+ thumb_func_start sub_80F83F8
+sub_80F83F8: @ 80F83F8
+ push {r4,lr}
+ ldr r0, _080F8424
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ movs r4, 0
+ movs r3, 0xFF
+ adds r1, r0, 0x4
+ movs r2, 0x3
+_080F840C:
+ strb r4, [r1]
+ ldrb r0, [r1, 0x4]
+ orrs r0, r3
+ strb r0, [r1, 0x4]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080F840C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8424: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F83F8
+
+ thumb_func_start sub_80F8428
+sub_80F8428: @ 80F8428
+ ldr r0, _080F8434
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F8434: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F8428
+
+ thumb_func_start sub_80F8438
+sub_80F8438: @ 80F8438
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x32
+ bne _080F8444
+ movs r0, 0
+_080F8444:
+ bl sub_8053108
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8438
+
+ thumb_func_start sub_80F844C
+sub_80F844C: @ 80F844C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080F8460
+_080F8454:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080F8464
+ adds r0, r1, 0
+ b _080F846E
+ .align 2, 0
+_080F8460: .4byte gUnknown_083E53E0
+_080F8464:
+ adds r1, 0x10
+ adds r2, 0x1
+ cmp r2, 0x23
+ ble _080F8454
+ ldr r0, _080F8474
+_080F846E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8474: .4byte gUnknown_083E5610
+ thumb_func_end sub_80F844C
+
+ thumb_func_start sub_80F8478
+sub_80F8478: @ 80F8478
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x4]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8478
+
+ thumb_func_start sub_80F8484
+sub_80F8484: @ 80F8484
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8484
+
+ thumb_func_start sub_80F8490
+sub_80F8490: @ 80F8490
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x8]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8490
+
+ thumb_func_start sub_80F849C
+sub_80F849C: @ 80F849C
+ push {lr}
+ movs r1, 0
+ ldr r2, _080F84C4
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080F84BC
+ adds r2, 0x4
+_080F84AA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F84BC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F84AA
+_080F84BC:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F84C4: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F849C
+
+ thumb_func_start sub_80F84C8
+sub_80F84C8: @ 80F84C8
+ lsls r0, 2
+ ldr r1, _080F84E8
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 8
+ orrs r2, r1
+ ldrb r1, [r0, 0x2]
+ lsls r1, 16
+ orrs r2, r1
+ ldrb r0, [r0, 0x3]
+ lsls r0, 24
+ orrs r2, r0
+ adds r0, r2, 0
+ bx lr
+ .align 2, 0
+_080F84E8: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84C8
+
+ thumb_func_start sub_80F84EC
+sub_80F84EC: @ 80F84EC
+ lsls r0, 2
+ ldr r2, _080F8504
+ adds r0, r2
+ strb r1, [r0]
+ lsrs r2, r1, 8
+ strb r2, [r0, 0x1]
+ lsrs r2, r1, 16
+ strb r2, [r0, 0x2]
+ lsrs r1, 24
+ strb r1, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080F8504: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84EC
+
+ thumb_func_start sub_80F8508
+sub_80F8508: @ 80F8508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8528
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ bl sub_80F8438
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84C8
+ cmp r4, r0
+ bhi _080F852C
+ movs r0, 0
+ b _080F852E
+ .align 2, 0
+_080F8528: .4byte gSaveBlock1 + 0x2D94
+_080F852C:
+ movs r0, 0x1
+_080F852E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8508
+
+ thumb_func_start sub_80F8534
+sub_80F8534: @ 80F8534
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r4, r0, 3
+ subs r4, r0
+ ldr r0, _080F855C
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl memcpy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F855C: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8534
+
+ thumb_func_start sub_80F8560
+sub_80F8560: @ 80F8560
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r5, r0, 3
+ subs r5, r0
+ ldr r0, _080F8594
+ adds r5, r0
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8594: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8560
+
+ thumb_func_start sub_80F8598
+sub_80F8598: @ 80F8598
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, _080F85EC
+ adds r0, 0x4
+ adds r0, r5, r0
+ strb r6, [r0]
+ ldr r1, _080F85F0
+ adds r0, r5, 0
+ bl sub_80F8560
+ lsls r4, r6, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84EC
+ ldr r5, _080F85F4
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F85F8
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F85EC: .4byte gSaveBlock1 + 0x2D94
+_080F85F0: .4byte gSaveBlock2
+_080F85F4: .4byte gStringVar1
+_080F85F8: .4byte gStringVar2
+ thumb_func_end sub_80F8598
+
+ thumb_func_start sub_80F85FC
+sub_80F85FC: @ 80F85FC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r5, 0
+ cmp r5, r6
+ bge _080F8612
+_080F8608:
+ adds r0, r7, r5
+ strb r5, [r0]
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080F8608
+_080F8612:
+ cmp r6, 0
+ ble _080F8648
+ adds r5, r6, 0
+_080F8618:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r7, r4
+ ldrb r2, [r4]
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ strb r1, [r4]
+ strb r2, [r0]
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080F8618
+_080F8648:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F85FC
+
+ thumb_func_start sub_80F8650
+sub_80F8650: @ 80F8650
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r7, sp
+ mov r10, sp
+ ldr r0, _080F86D4
+ ldr r0, [r0]
+ lsls r0, 3
+ lsrs r0, 3
+ adds r0, 0x3
+ lsrs r0, 2
+ lsls r0, 2
+ mov r1, sp
+ subs r1, r0
+ mov sp, r1
+ mov r8, sp
+ mov r0, sp
+ movs r1, 0x24
+ bl sub_80F85FC
+ movs r5, 0
+ ldr r0, _080F86D8
+ mov r9, r0
+ ldr r3, _080F86DC
+_080F8686:
+ mov r1, r8
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 4
+ add r0, r9
+ ldrb r4, [r0]
+ ldrb r6, [r0, 0x1]
+ movs r1, 0
+ ldrb r0, [r3, 0x4]
+ cmp r0, r4
+ beq _080F86AC
+ ldr r2, _080F86E0
+_080F869E:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080F86AC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _080F869E
+_080F86AC:
+ cmp r1, 0x4
+ bne _080F86E4
+ adds r0, r4, 0
+ str r3, [r7]
+ bl sub_80F8438
+ ldr r3, [r7]
+ cmp r0, r6
+ bcc _080F86E4
+ movs r0, 0x1
+ strb r0, [r3, 0x1]
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+ b _080F86EC
+ .align 2, 0
+_080F86D4: .4byte gUnknown_083E5620
+_080F86D8: .4byte gUnknown_083E53E0
+_080F86DC: .4byte gSaveBlock1 + 0x2D94
+_080F86E0: .4byte gSaveBlock1 + 0x2D98
+_080F86E4:
+ adds r5, 0x1
+ cmp r5, 0x23
+ ble _080F8686
+ movs r0, 0
+_080F86EC:
+ mov sp, r10
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8650
+
+ thumb_func_start sub_80F8700
+sub_80F8700: @ 80F8700
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8748
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r6, [r0]
+ ldr r4, _080F874C
+ adds r0, r5, 0
+ bl sub_80F84C8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F8750
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _080F8754
+ adds r0, r5, 0
+ bl sub_80F8534
+ adds r0, r6, 0
+ bl sub_80F8484
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8748: .4byte gSaveBlock1 + 0x2D94
+_080F874C: .4byte gStringVar1
+_080F8750: .4byte gStringVar2
+_080F8754: .4byte gStringVar3
+ thumb_func_end sub_80F8700
+
+ thumb_func_start sub_80F8758
+sub_80F8758: @ 80F8758
+ push {r4-r6,lr}
+ bl sub_80F849C
+ adds r3, r0, 0
+ lsls r3, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ bl MenuDrawTextWindow
+ movs r4, 0
+ ldr r1, _080F87BC
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080F87A4
+ adds r6, r1, 0x4
+ movs r5, 0x80
+ lsls r5, 18
+_080F8784:
+ bl sub_80F8478
+ lsrs r2, r5, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080F87A4
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8784
+_080F87A4:
+ ldr r0, _080F87C0
+ lsls r2, r4, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F87BC: .4byte gSaveBlock1 + 0x2D94
+_080F87C0: .4byte gPCText_Cancel
+ thumb_func_end sub_80F8758
+
+ thumb_func_start sub_80F87C4
+sub_80F87C4: @ 80F87C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F87E4
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080F87E8
+ cmp r5, 0x1
+ beq _080F8810
+ b _080F8862
+ .align 2, 0
+_080F87E4: .4byte gTasks
+_080F87E8:
+ bl sub_80F8758
+ bl sub_80F849C
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ movs r0, 0x18
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080F8862
+_080F8810:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _080F8862
+ adds r0, 0x1
+ cmp r4, r0
+ beq _080F8832
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080F8840
+_080F8832:
+ ldr r1, _080F883C
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8848
+ .align 2, 0
+_080F883C: .4byte gScriptResult
+_080F8840:
+ ldr r0, _080F886C
+ strh r5, [r0]
+ ldr r0, _080F8870
+ strb r4, [r0]
+_080F8848:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080F8862:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F886C: .4byte gScriptResult
+_080F8870: .4byte gUnknown_03000748
+ thumb_func_end sub_80F87C4
+
+ thumb_func_start sub_80F8874
+sub_80F8874: @ 80F8874
+ push {lr}
+ ldr r0, _080F8884
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8884: .4byte sub_80F87C4
+ thumb_func_end sub_80F8874
+
+ thumb_func_start sub_80F8888
+sub_80F8888: @ 80F8888
+ push {lr}
+ ldr r0, _080F8898
+ ldrb r0, [r0]
+ bl sub_80F8700
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8898: .4byte gUnknown_03000748
+ thumb_func_end sub_80F8888
+
+ thumb_func_start sub_80F889C
+sub_80F889C: @ 80F889C
+ push {lr}
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F889C
+
+ thumb_func_start sub_80F88AC
+sub_80F88AC: @ 80F88AC
+ push {r4,r5,lr}
+ ldr r1, _080F88C8
+ ldr r5, _080F88CC
+ ldrb r0, [r5]
+ adds r1, 0x4
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl sub_80F8508
+ cmp r0, 0x1
+ beq _080F88D0
+ movs r0, 0
+ b _080F88DA
+ .align 2, 0
+_080F88C8: .4byte gSaveBlock1 + 0x2D94
+_080F88CC: .4byte gUnknown_03000748
+_080F88D0:
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+_080F88DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88AC
+
+ thumb_func_start sub_80F88E0
+sub_80F88E0: @ 80F88E0
+ push {lr}
+ ldr r0, _080F88F0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080F88F4
+ movs r0, 0x1
+ b _080F88F6
+ .align 2, 0
+_080F88F0: .4byte gSaveBlock1 + 0x2D94
+_080F88F4:
+ movs r0, 0
+_080F88F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88E0
+
+ thumb_func_start sub_80F88FC
+sub_80F88FC: @ 80F88FC
+ push {lr}
+ bl sub_80F8650
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88FC
+
+ thumb_func_start sub_80F890C
+sub_80F890C: @ 80F890C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r2, _080F8958
+ adds r1, r2, 0
+ adds r1, 0xFF
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, 0xFE
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x82
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F895C
+ str r0, [r1]
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F8960
+ str r0, [r1]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _080F8964
+ subs r1, 0x79
+ adds r0, r2, 0
+ adds r0, 0xFA
+ strb r1, [r0]
+ b _080F896E
+ .align 2, 0
+_080F8958: .4byte 0x02000000
+_080F895C: .4byte sub_80EB3FC
+_080F8960: .4byte ConvertEasyChatWordsToString
+_080F8964:
+ adds r1, r2, 0
+ adds r1, 0xFA
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+_080F896E:
+ ldr r1, _080F8994
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8980
+ cmp r0, 0x1
+ beq _080F899C
+_080F8980:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F8998
+ b _080F89AC
+ .align 2, 0
+_080F8994: .4byte 0x02000000
+_080F8998: .4byte gUnknown_083E5730
+_080F899C:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F89DC
+_080F89AC:
+ adds r0, r1
+ str r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ ldr r1, _080F89E0
+ adds r0, r1
+ movs r1, 0xCD
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080F89F8
+ ldr r0, _080F89E4
+ adds r1, r0, 0
+ adds r1, 0xFA
+ ldrb r2, [r1]
+ adds r1, r0, 0
+ cmp r2, 0x6
+ beq _080F89E8
+ cmp r2, 0x9
+ beq _080F89F0
+ b _080F89FA
+ .align 2, 0
+_080F89DC: .4byte gUnknown_083E57A4
+_080F89E0: .4byte 0xffff0000
+_080F89E4: .4byte 0x02000000
+_080F89E8:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x1
+ b _080F8A00
+_080F89F0:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x2
+ b _080F8A00
+_080F89F8:
+ ldr r1, _080F8A20
+_080F89FA:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0
+_080F8A00:
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xF4
+ str r4, [r0]
+ subs r0, 0x8
+ str r6, [r0]
+ adds r0, 0xC
+ strb r5, [r0]
+ ldr r0, _080F8A24
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8A20: .4byte 0x02000000
+_080F8A24: .4byte sub_80F8D50
+ thumb_func_end sub_80F890C
+
+ thumb_func_start sub_80F8A28
+sub_80F8A28: @ 80F8A28
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080F8A44
+ ldr r1, _080F8A48
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _080F8A3A
+ b _080F8D3C
+_080F8A3A:
+ lsls r0, 2
+ ldr r1, _080F8A4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F8A44: .4byte gMain
+_080F8A48: .4byte 0x0000043c
+_080F8A4C: .4byte _080F8A50
+ .align 2, 0
+_080F8A50:
+ .4byte _080F8A9C
+ .4byte _080F8AB0
+ .4byte _080F8AC8
+ .4byte _080F8ACE
+ .4byte _080F8AD4
+ .4byte _080F8ADA
+ .4byte _080F8B10
+ .4byte _080F8B1C
+ .4byte _080F8B28
+ .4byte _080F8B34
+ .4byte _080F8B3A
+ .4byte _080F8B54
+ .4byte _080F8B78
+ .4byte _080F8BA0
+ .4byte _080F8C14
+ .4byte _080F8C2C
+ .4byte _080F8C58
+ .4byte _080F8CBC
+ .4byte _080F8CC6
+_080F8A9C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8D30
+_080F8AB0:
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, _080F8AC4
+ add r0, sp, 0x4
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8AC4: .4byte 0x01000200
+_080F8AC8:
+ bl ResetPaletteFade
+ b _080F8D30
+_080F8ACE:
+ bl ResetTasks
+ b _080F8D30
+_080F8AD4:
+ bl ResetSpriteData
+ b _080F8D30
+_080F8ADA:
+ bl FreeAllSpritePalettes
+ ldr r0, _080F8B0C
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x32
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _080F8D30
+ .align 2, 0
+_080F8B0C: .4byte REG_BG0HOFS
+_080F8B10:
+ ldr r0, _080F8B18
+ bl SetUpWindowConfig
+ b _080F8D30
+ .align 2, 0
+_080F8B18: .4byte gWindowConfig_81E6DFC
+_080F8B1C:
+ ldr r0, _080F8B24
+ bl MultistepInitMenuWindowBegin
+ b _080F8D30
+ .align 2, 0
+_080F8B24: .4byte gWindowConfig_81E6DFC
+_080F8B28:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F8B32
+ b _080F8D30
+_080F8B32:
+ b _080F8D3C
+_080F8B34:
+ bl MenuZeroFillScreen
+ b _080F8D30
+_080F8B3A:
+ mov r0, sp
+ adds r0, 0x6
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _080F8B4C
+ ldr r2, _080F8B50
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8B4C: .4byte 0x06004800
+_080F8B50: .4byte 0x01000400
+_080F8B54:
+ ldr r2, _080F8B70
+ ldr r0, _080F8B74
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F8D30
+ .align 2, 0
+_080F8B70: .4byte gMailGraphicsTable
+_080F8B74: .4byte 0x02000000
+_080F8B78:
+ ldr r2, _080F8B94
+ ldr r0, _080F8B98
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _080F8B9C
+ bl LZ77UnCompVram
+ b _080F8D30
+ .align 2, 0
+_080F8B94: .4byte gMailGraphicsTable
+_080F8B98: .4byte 0x02000000
+_080F8B9C: .4byte 0x06004000
+_080F8BA0:
+ ldr r5, _080F8C00
+ ldr r4, _080F8C04
+ adds r4, 0xFA
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r3, _080F8C08
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x10]
+ movs r2, 0xF1
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x12]
+ adds r2, 0xE
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F8C0C
+ ldr r2, _080F8C10
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x14]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x16]
+ b _080F8D30
+ .align 2, 0
+_080F8C00: .4byte gMailGraphicsTable
+_080F8C04: .4byte 0x02000000
+_080F8C08: .4byte gPlttBufferUnfaded
+_080F8C0C: .4byte gUnknown_083E562C
+_080F8C10: .4byte gSaveBlock2
+_080F8C14:
+ ldr r0, _080F8C28
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8C20
+ b _080F8D30
+_080F8C20:
+ bl sub_80F8DA0
+ b _080F8D30
+ .align 2, 0
+_080F8C28: .4byte 0x02000000
+_080F8C2C:
+ ldr r0, _080F8C4C
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8C3A
+ bl sub_80F8E80
+_080F8C3A:
+ ldr r0, _080F8C50
+ bl SetVBlankCallback
+ ldr r2, _080F8C54
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _080F8D30
+ .align 2, 0
+_080F8C4C: .4byte 0x02000000
+_080F8C50: .4byte sub_80F8F18
+_080F8C54: .4byte gPaletteFade
+_080F8C58:
+ ldr r5, _080F8C7C
+ adds r0, r5, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080F8C80
+ cmp r0, 0x2
+ beq _080F8C98
+ b _080F8D30
+ .align 2, 0
+_080F8C7C: .4byte 0x02000000
+_080F8C80:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8C94
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x60
+ b _080F8CA8
+ .align 2, 0
+_080F8C94: .4byte SpriteCallbackDummy
+_080F8C98:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8CB8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x28
+_080F8CA8:
+ movs r3, 0x80
+ bl sub_809D3A4
+ adds r1, r5, 0
+ adds r1, 0xFC
+ strb r0, [r1]
+ b _080F8D30
+ .align 2, 0
+_080F8CB8: .4byte SpriteCallbackDummy
+_080F8CBC:
+ bl sub_8055870
+ cmp r0, 0x1
+ bne _080F8D30
+ b _080F8D3C
+_080F8CC6:
+ ldr r1, _080F8D14
+ ldr r2, _080F8D18
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D1C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _080F8D24
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080F8D28
+ adds r0, 0xF0
+ ldr r1, _080F8D2C
+ str r1, [r0]
+ movs r0, 0x1
+ b _080F8D3E
+ .align 2, 0
+_080F8D14: .4byte REG_BG0CNT
+_080F8D18: .4byte 0x00009f08
+_080F8D1C: .4byte 0x00000801
+_080F8D20: .4byte 0x00000902
+_080F8D24: .4byte gPaletteFade
+_080F8D28: .4byte 0x02000000
+_080F8D2C: .4byte sub_80F8F58
+_080F8D30:
+ ldr r1, _080F8D48
+ ldr r0, _080F8D4C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F8D3C:
+ movs r0, 0
+_080F8D3E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8D48: .4byte gMain
+_080F8D4C: .4byte 0x0000043c
+ thumb_func_end sub_80F8A28
+
+ thumb_func_start sub_80F8D50
+sub_80F8D50: @ 80F8D50
+ push {lr}
+_080F8D52:
+ bl sub_80F8A28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D6C
+ ldr r0, _080F8D68
+ bl SetMainCallback2
+ b _080F8D78
+ .align 2, 0
+_080F8D68: .4byte sub_80F8F2C
+_080F8D6C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D52
+_080F8D78:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8D50
+
+ thumb_func_start sub_80F8D7C
+sub_80F8D7C: @ 80F8D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8D7C
+
+ thumb_func_start sub_80F8DA0
+sub_80F8DA0: @ 80F8DA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r2, _080F8E3C
+ movs r0, 0x86
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080F8E04
+ mov r8, r2
+ adds r7, r1, 0
+_080F8DBE:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ subs r0, r5
+ add r0, r8
+ mov r1, r8
+ adds r1, 0xF4
+ lsls r2, r6, 1
+ ldr r1, [r1]
+ adds r1, r2
+ ldr r2, [r7]
+ ldr r2, [r2, 0x4]
+ lsls r4, r5, 2
+ adds r2, r4, r2
+ ldr r2, [r2]
+ lsls r2, 28
+ lsrs r2, 30
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ ldr r1, [r7]
+ ldr r0, [r1, 0x4]
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r0, 28
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _080F8DBE
+_080F8E04:
+ ldr r2, _080F8E40
+ adds r4, r2, 0
+ subs r4, 0xD8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8E48
+ ldr r1, [r2, 0x1C]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ adds r2, r0, 0
+ ldr r1, _080F8E44
+ bl StringCopy
+ ldr r0, _080F8E40
+ bl StringLength
+ movs r2, 0x86
+ lsls r2, 1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x2]
+ subs r1, r0
+ b _080F8E6A
+ .align 2, 0
+_080F8E3C: .4byte 0x02000000
+_080F8E40: .4byte 0x020000d8
+_080F8E44: .4byte gOtherText_From
+_080F8E48:
+ ldr r1, _080F8E7C
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r1, [r0]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+_080F8E6A:
+ adds r0, r4, 0
+ adds r0, 0xF9
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8E7C: .4byte gOtherText_From
+ thumb_func_end sub_80F8DA0
+
+ thumb_func_start sub_80F8E80
+sub_80F8E80: @ 80F8E80
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _080F8F10
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080F8EF6
+ mov r8, r1
+ adds r7, r2, 0
+_080F8E9E:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r0, r4
+ mov r1, r8
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F8EE8
+ cmp r0, 0
+ beq _080F8EE8
+ ldr r2, [r7]
+ ldr r1, [r2, 0x4]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r3, r0, 24
+ lsrs r3, 28
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0x3]
+ lsrs r1, r2, 4
+ adds r1, r3
+ lsls r2, 28
+ lsrs r2, 28
+ adds r2, r6, r2
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080F8EE8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F8E9E
+_080F8EF6:
+ ldr r0, _080F8F14
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ ldr r2, [r0, 0x34]
+ ldrb r2, [r2, 0x1]
+ bl MenuPrint
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F10: .4byte 0x02000000
+_080F8F14: .4byte 0x020000d8
+ thumb_func_end sub_80F8E80
+
+ thumb_func_start sub_80F8F18
+sub_80F8F18: @ 80F8F18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8F18
+
+ thumb_func_start sub_80F8F2C
+sub_80F8F2C: @ 80F8F2C
+ push {r4,lr}
+ ldr r4, _080F8F54
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8F42
+ bl AnimateSprites
+ bl BuildOamBuffer
+_080F8F42:
+ adds r0, r4, 0
+ adds r0, 0xF0
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F54: .4byte 0x02000000
+ thumb_func_end sub_80F8F2C
+
+ thumb_func_start sub_80F8F58
+sub_80F8F58: @ 80F8F58
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8F6C
+ ldr r0, _080F8F70
+ adds r0, 0xF0
+ ldr r1, _080F8F74
+ str r1, [r0]
+_080F8F6C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F70: .4byte 0x02000000
+_080F8F74: .4byte sub_80F8F78
+ thumb_func_end sub_80F8F58
+
+ thumb_func_start sub_80F8F78
+sub_80F8F78: @ 80F8F78
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F8FA8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080F8FA0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080F8FAC
+ adds r0, 0xF0
+ ldr r1, _080F8FB0
+ str r1, [r0]
+_080F8FA0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8FA8: .4byte gMain
+_080F8FAC: .4byte 0x02000000
+_080F8FB0: .4byte sub_80F8FB4
+ thumb_func_end sub_80F8F78
+
+ thumb_func_start sub_80F8FB4
+sub_80F8FB4: @ 80F8FB4
+ push {r4,lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9012
+ ldr r4, _080F9018
+ adds r0, r4, 0
+ adds r0, 0xEC
+ ldr r0, [r0]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bgt _080F9002
+ cmp r0, 0x1
+ blt _080F9002
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_809D608
+ adds r0, r4, 0
+ adds r0, 0xFC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F901C
+ adds r0, r1
+ bl sub_809D510
+_080F9002:
+ ldr r0, _080F9018
+ movs r2, 0x88
+ lsls r2, 1
+ movs r1, 0
+ bl memset
+ bl ResetPaletteFade
+_080F9012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9018: .4byte 0x02000000
+_080F901C: .4byte gSprites
+ thumb_func_end sub_80F8FB4
+
+ thumb_func_start sub_80F9020
+sub_80F9020: @ 80F9020
+ push {r4,r5,lr}
+ ldr r4, _080F9054
+ movs r5, 0x80
+ lsls r5, 4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r0, r4, r5
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9054: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80F9020
+
+ thumb_func_start sav2_get_text_speed
+sav2_get_text_speed: @ 80F9058
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl MenuDisplayMessageBox
+ cmp r4, 0
+ beq _080F907C
+ ldr r0, _080F908C
+ movs r1, 0x4
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x1A
+ bl sub_80A3FA0
+_080F907C:
+ adds r0, r5, 0
+ bl sub_8072044
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F908C: .4byte gBG1TilemapBuffer
+ thumb_func_end sav2_get_text_speed
+
+ thumb_func_start sub_80F9090
+sub_80F9090: @ 80F9090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F90AC
+ ldr r0, _080F90B4
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F90AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90B4: .4byte gUnknown_0300074C
+ thumb_func_end sub_80F9090
+
+ thumb_func_start DisplayItemMessageOnField
+DisplayItemMessageOnField: @ 80F90B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ adds r1, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sav2_get_text_speed
+ ldr r0, _080F90E8
+ str r5, [r0]
+ ldr r1, _080F90EC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080F90F0
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90E8: .4byte gUnknown_0300074C
+_080F90EC: .4byte gTasks
+_080F90F0: .4byte sub_80F9090
+ thumb_func_end DisplayItemMessageOnField
+
+ thumb_func_start Task_CallYesOrNoCallback
+Task_CallYesOrNoCallback: @ 80F90F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080F911A
+ cmp r1, 0
+ bgt _080F9114
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F9130
+ b _080F9140
+_080F9114:
+ cmp r1, 0x1
+ beq _080F9130
+ b _080F9140
+_080F911A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F912C
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080F9140
+ .align 2, 0
+_080F912C: .4byte gUnknown_020388C4
+_080F9130:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F9148
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F9140:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9148: .4byte gUnknown_020388C4
+ thumb_func_end Task_CallYesOrNoCallback
+
+ thumb_func_start sub_80F914C
+sub_80F914C: @ 80F914C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080F916C
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ ldr r2, _080F9170
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080F9174
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080F916C: .4byte gUnknown_020388C4
+_080F9170: .4byte gTasks
+_080F9174: .4byte Task_CallYesOrNoCallback
+ thumb_func_end sub_80F914C
+
+ thumb_func_start brm_trade_1
+brm_trade_1: @ 80F9178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ ldr r1, _080F91C0
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ cmp r4, 0xFF
+ beq _080F91CC
+ mov r0, sp
+ strb r4, [r0, 0x2]
+ ldr r4, _080F91C4
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ mov r1, sp
+ ldr r0, _080F91C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x2]
+ adds r0, r4, 0
+ bl StringAppend
+ b _080F91D4
+ .align 2, 0
+_080F91C0: .4byte gUnknown_083E5A18
+_080F91C4: .4byte gStringVar4
+_080F91C8: .4byte gMenuWindowPtr
+_080F91CC:
+ ldr r0, _080F91E8
+ adds r1, r5, 0
+ bl StringCopy
+_080F91D4:
+ ldr r0, _080F91E8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F91E8: .4byte gStringVar4
+ thumb_func_end brm_trade_1
+
+ thumb_func_start unref_sub_80F91EC
+unref_sub_80F91EC: @ 80F91EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r0, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r6, _080F9234
+ adds r0, r6, 0
+ mov r1, r12
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _080F9238
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl brm_trade_1
+ b _080F9242
+ .align 2, 0
+_080F9234: .4byte gStringVar1
+_080F9238:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl MenuPrint
+_080F9242:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80F91EC
+
+ thumb_func_start unref_sub_80F924C
+unref_sub_80F924C: @ 80F924C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F9280
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl brm_trade_1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9280: .4byte gUnknown_083E5A1C
+ thumb_func_end unref_sub_80F924C
+
+ thumb_func_start sub_80F9284
+sub_80F9284: @ 80F9284
+ push {lr}
+ ldr r0, _080F92A0
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92B6
+ ldr r0, _080F92A4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92A8
+ movs r0, 0x1
+ b _080F92B8
+ .align 2, 0
+_080F92A0: .4byte gSaveBlock2
+_080F92A4: .4byte gMain
+_080F92A8:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92B6
+ movs r0, 0x2
+ b _080F92B8
+_080F92B6:
+ movs r0, 0
+_080F92B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9284
+
+ thumb_func_start sub_80F92BC
+sub_80F92BC: @ 80F92BC
+ push {lr}
+ ldr r0, _080F92D8
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92EE
+ ldr r0, _080F92DC
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92E0
+ movs r0, 0x1
+ b _080F92F0
+ .align 2, 0
+_080F92D8: .4byte gSaveBlock2
+_080F92DC: .4byte gMain
+_080F92E0:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92EE
+ movs r0, 0x2
+ b _080F92F0
+_080F92EE:
+ movs r0, 0
+_080F92F0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92BC
+
+ thumb_func_start sub_80F92F4
+sub_80F92F4: @ 80F92F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _080F9314
+ ldr r0, _080F930C
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080F9310
+ cmp r1, r0
+ bne _080F9314
+ movs r0, 0
+ b _080F9316
+ .align 2, 0
+_080F930C: .4byte gSaveBlock1
+_080F9310: .4byte 0x00001919
+_080F9314:
+ movs r0, 0x1
+_080F9316:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92F4
+
+ thumb_func_start sub_80F931C
+sub_80F931C: @ 80F931C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ bne _080F933C
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F933C
+ movs r0, 0
+ b _080F933E
+_080F933C:
+ movs r0, 0x1
+_080F933E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F931C
+
+ thumb_func_start sub_80F9344
+sub_80F9344: @ 80F9344
+ push {lr}
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ beq _080F9356
+ ldr r0, _080F935C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F9360
+_080F9356:
+ movs r0, 0x1
+ b _080F9362
+ .align 2, 0
+_080F935C: .4byte gReceivedRemoteLinkPlayers
+_080F9360:
+ movs r0, 0
+_080F9362:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9344
+
+ thumb_func_start sub_80F9368
+sub_80F9368: @ 80F9368
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x14
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _080F9430
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080F9434
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080F93C6:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _080F93C6
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, _080F9430
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9430: .4byte 0x040000d4
+_080F9434: .4byte 0x81000800
+ thumb_func_end sub_80F9368
+
+ thumb_func_start sub_80F9438
+sub_80F9438: @ 80F9438
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9438
+
+ thumb_func_start sub_80F944C
+sub_80F944C: @ 80F944C
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080F9478
+ movs r3, 0xFF
+_080F9454:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080F9454
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080F947C
+ bl LoadSpritePalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9478: .4byte gUnknown_020388C0
+_080F947C: .4byte gUnknown_083E5968
+ thumb_func_end sub_80F944C
+
+ thumb_func_start sub_80F9480
+sub_80F9480: @ 80F9480
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ cmp r2, r1
+ bcs _080F949E
+ movs r4, 0xFF
+_080F9490:
+ adds r0, r3, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _080F9490
+_080F949E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9480
+
+ thumb_func_start sub_80F94A4
+sub_80F94A4: @ 80F94A4
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r3, 16
+ lsrs r2, r3, 16
+ cmp r4, 0x5
+ bhi _080F94E8
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ bne _080F94D0
+ ldr r0, _080F94F0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+_080F94D0:
+ subs r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F94F4
+ adds r0, r1
+ adds r1, r4, 0
+ bl StartSpriteAnim
+_080F94E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F94F0: .4byte gSpriteTemplate_83E5A00
+_080F94F4: .4byte gSprites
+ thumb_func_end sub_80F94A4
+
+ thumb_func_start sub_80F94F8
+sub_80F94F8: @ 80F94F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9516
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F951C
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F951C: .4byte gSprites
+ thumb_func_end sub_80F94F8
+
+ thumb_func_start sub_80F9520
+sub_80F9520: @ 80F9520
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080F9526:
+ adds r0, r5, r4
+ bl sub_80F94F8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080F9526
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9520
+
+ thumb_func_start sub_80F953C
+sub_80F953C: @ 80F953C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r4, 0x3
+ bls _080F9550
+ b _080F9790
+_080F9550:
+ cmp r4, 0x1
+ beq _080F95F6
+ cmp r4, 0x1
+ bgt _080F9564
+ cmp r4, 0
+ beq _080F9578
+ ldr r5, _080F9560
+ b _080F977A
+ .align 2, 0
+_080F9560: .4byte gUnknown_020388C0
+_080F9564:
+ cmp r4, 0x2
+ bne _080F956A
+ b _080F967C
+_080F956A:
+ cmp r4, 0x3
+ bne _080F9570
+ b _080F96F8
+_080F9570:
+ ldr r5, _080F9574
+ b _080F977A
+ .align 2, 0
+_080F9574: .4byte gUnknown_020388C0
+_080F9578:
+ ldr r0, _080F95D8
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9584
+ b _080F977A
+_080F9584:
+ ldr r0, _080F95DC
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+ ldr r3, _080F95E0
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F95E4
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0xFF
+ beq _080F95E8
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ b _080F9650
+ .align 2, 0
+_080F95D8: .4byte gUnknown_020388C0
+_080F95DC: .4byte gSpriteTemplate_83E59D0
+_080F95E0: .4byte gSprites
+_080F95E4: .4byte 0x0000ffff
+_080F95E8:
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x34]
+ b _080F977A
+_080F95F6:
+ ldr r0, _080F9660
+ ldrb r1, [r0, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9602
+ b _080F977A
+_080F9602:
+ ldr r0, _080F9664
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x1]
+ ldr r3, _080F9668
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x32]
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F966C
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+_080F9650:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x34]
+ strh r0, [r1, 0x34]
+ b _080F977A
+ .align 2, 0
+_080F9660: .4byte gUnknown_020388C0
+_080F9664: .4byte gSpriteTemplate_83E59D0
+_080F9668: .4byte gSprites
+_080F966C:
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ b _080F977A
+_080F967C:
+ ldr r0, _080F96E4
+ ldrb r1, [r0, 0x2]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F96E8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x2]
+ ldr r3, _080F96EC
+ ldrb r1, [r5, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F96F0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0xFF
+ beq _080F96F4
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F96E4: .4byte gUnknown_020388C0
+_080F96E8: .4byte gSpriteTemplate_83E59E8
+_080F96EC: .4byte gSprites
+_080F96F0: .4byte 0x0000ffff
+_080F96F4:
+ ldrb r0, [r5, 0x2]
+ b _080F976E
+_080F96F8:
+ ldr r0, _080F9760
+ ldrb r1, [r0, 0x3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F9764
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x3]
+ ldr r3, _080F9768
+ ldrb r1, [r5, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080F976C
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F9760: .4byte gUnknown_020388C0
+_080F9764: .4byte gSpriteTemplate_83E59E8
+_080F9768: .4byte gSprites
+_080F976C:
+ ldrb r0, [r5, 0x3]
+_080F976E:
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+_080F9778:
+ strh r0, [r1, 0x30]
+_080F977A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9798
+ adds r0, r1
+ movs r1, 0x1
+ ands r1, r4
+ bl StartSpriteAnim
+_080F9790:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9798: .4byte gSprites
+ thumb_func_end sub_80F953C
+
+ thumb_func_start sub_80F979C
+sub_80F979C: @ 80F979C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r2, 0x3
+ bhi _080F97D4
+ ldr r0, _080F97D8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F97D4
+ ldr r2, _080F97DC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ movs r0, 0x1
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+_080F97D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F97D8: .4byte gUnknown_020388C0
+_080F97DC: .4byte gSprites
+ thumb_func_end sub_80F979C
+
+ thumb_func_start SetBgTilemapBuffer
+SetBgTilemapBuffer: @ 80F97E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F9808
+ ldr r0, _080F9810
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9808
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9814
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9808:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9810: .4byte gUnknown_020388C0
+_080F9814: .4byte gSprites
+ thumb_func_end SetBgTilemapBuffer
+
+ thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818
+ push {lr}
+ ldr r0, _080F9824
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9824: .4byte gUnknown_083E5968
+ thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+
+ thumb_func_start BuyMenuFreeMemory
+BuyMenuFreeMemory: @ 80F9828
+ push {lr}
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end BuyMenuFreeMemory
+
+ thumb_func_start sub_80F9834
+sub_80F9834: @ 80F9834
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9848
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080F9848:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9858
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+_080F9858:
+ ldrh r1, [r2, 0x30]
+ adds r1, 0x1
+ movs r3, 0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _080F9870
+ strh r3, [r2, 0x30]
+_080F9870:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x2
+ ble _080F987A
+ strh r3, [r2, 0x34]
+_080F987A:
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F988A
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F988C
+_080F988A:
+ strh r3, [r2, 0x24]
+_080F988C:
+ movs r0, 0x26
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F989C
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F98A0
+_080F989C:
+ movs r0, 0
+ strh r0, [r2, 0x26]
+_080F98A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9834
+
+ thumb_func_start sub_80F98A4
+sub_80F98A4: @ 80F98A4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F98D0
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F98CA
+ cmp r1, 0x3
+ bhi _080F98CA
+ ldr r2, _080F98D4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F98D8
+ str r1, [r0]
+_080F98CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F98D0: .4byte gUnknown_020388C0
+_080F98D4: .4byte gSprites
+_080F98D8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F98A4
+
+ thumb_func_start sub_80F98DC
+sub_80F98DC: @ 80F98DC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9908
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F9902
+ cmp r1, 0x3
+ bhi _080F9902
+ ldr r2, _080F990C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F9910
+ str r1, [r0]
+_080F9902:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9908: .4byte gUnknown_020388C0
+_080F990C: .4byte gSprites
+_080F9910: .4byte sub_80F9834
+ thumb_func_end sub_80F98DC
+
+ thumb_func_start sub_80F9914
+sub_80F9914: @ 80F9914
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9964
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F995C
+ cmp r1, 0x3
+ bhi _080F995C
+ ldr r3, _080F9968
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0
+ strh r2, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x26]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x34]
+_080F995C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9964: .4byte gUnknown_020388C0
+_080F9968: .4byte gSprites
+ thumb_func_end sub_80F9914
+
+ thumb_func_start sub_80F996C
+sub_80F996C: @ 80F996C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F98A4
+ adds r0, r4, 0
+ bl sub_80F9914
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F996C
+
+ thumb_func_start sub_80F9988
+sub_80F9988: @ 80F9988
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r0, _080F99C4
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F99BE
+ cmp r2, 0x3
+ bhi _080F99BE
+ ldr r2, _080F99C8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080F99BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F99C4: .4byte gUnknown_020388C0
+_080F99C8: .4byte gSprites
+ thumb_func_end sub_80F9988
+
+ thumb_func_start sub_80F99CC
+sub_80F99CC: @ 80F99CC
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A04
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A08
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ subs r0, 0x3
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A04: .4byte sub_80F9A8C
+_080F9A08: .4byte gTasks
+ thumb_func_end sub_80F99CC
+
+ thumb_func_start sub_80F9A0C
+sub_80F9A0C: @ 80F9A0C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A44
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ subs r0, 0x4
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A44: .4byte sub_80F9A8C
+_080F9A48: .4byte gTasks
+ thumb_func_end sub_80F9A0C
+
+ thumb_func_start sub_80F9A4C
+sub_80F9A4C: @ 80F9A4C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A84
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x7
+ strh r0, [r1, 0x8]
+ subs r0, 0x8
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A84: .4byte sub_80F9A8C
+_080F9A88: .4byte gTasks
+ thumb_func_end sub_80F9A4C
+
+ thumb_func_start sub_80F9A8C
+sub_80F9A8C: @ 80F9A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080F9AC4
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9ABE
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080F9AC8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_806AFAC
+ adds r0, r4, 0
+ bl DestroyTask
+_080F9ABE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9AC4: .4byte gPaletteFade
+_080F9AC8: .4byte gTasks
+ thumb_func_end sub_80F9A8C
+
+ thumb_func_start sub_80F9ACC
+sub_80F9ACC: @ 80F9ACC
+ push {r4,r5,lr}
+ ldr r1, _080F9AEC
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9AE2
+ b _080F9BF6
+_080F9AE2:
+ lsls r0, 2
+ ldr r1, _080F9AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9AEC: .4byte 0x0201b000
+_080F9AF0: .4byte _080F9AF4
+ .align 2, 0
+_080F9AF4:
+ .4byte _080F9B14
+ .4byte _080F9B54
+ .4byte _080F9B5A
+ .4byte _080F9B6E
+ .4byte _080F9B98
+ .4byte _080F9B9E
+ .4byte _080F9BB0
+ .4byte _080F9BC8
+_080F9B14:
+ ldr r0, _080F9B3C
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9B40
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9B48
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9B44
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9BF0
+ .align 2, 0
+_080F9B3C: .4byte 0x00000266
+_080F9B40: .4byte gPlayerPartyCount
+_080F9B44: .4byte gPlayerParty
+_080F9B48:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+_080F9B54:
+ bl sub_806DA98
+ b _080F9BB4
+_080F9B5A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9BBC
+_080F9B6E:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9B94
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9B94: .4byte 0x00000266
+_080F9B98:
+ bl sub_806E334
+ b _080F9BB4
+_080F9B9E:
+ bl sub_806E0C4
+ ldr r1, _080F9BAC
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9BAC: .4byte 0x0201b000
+_080F9BB0:
+ bl sub_80F9C00
+_080F9BB4:
+ ldr r1, _080F9BC4
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9BBC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9BF6
+ .align 2, 0
+_080F9BC4: .4byte 0x0201b000
+_080F9BC8:
+ ldr r0, _080F9BEC
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9BF8
+ .align 2, 0
+_080F9BEC: .4byte 0x00000266
+_080F9BF0:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9BF6:
+ movs r0, 0
+_080F9BF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9ACC
+
+ thumb_func_start sub_80F9C00
+sub_80F9C00: @ 80F9C00
+ push {r4,lr}
+ movs r4, 0
+ b _080F9C58
+_080F9C06:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9C24
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F9C52
+ lsls r0, 2
+ ldr r1, _080F9C28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9C24: .4byte gPlayerParty
+_080F9C28: .4byte _080F9C2C
+ .align 2, 0
+_080F9C2C:
+ .4byte _080F9C40
+ .4byte _080F9C4A
+ .4byte _080F9C4A
+ .4byte _080F9C40
+ .4byte _080F9C40
+_080F9C40:
+ adds r0, r4, 0
+ movs r1, 0x7E
+ bl sub_806BC3C
+ b _080F9C52
+_080F9C4A:
+ adds r0, r4, 0
+ movs r1, 0x70
+ bl sub_806BC3C
+_080F9C52:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9C58:
+ ldr r0, _080F9C68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9C06
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9C68: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9C00
+
+ thumb_func_start sub_80F9C6C
+sub_80F9C6C: @ 80F9C6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F9C94
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9CD8
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9C98
+ cmp r0, 0x2
+ beq _080F9CC0
+ b _080F9CD8
+ .align 2, 0
+_080F9C94: .4byte gPaletteFade
+_080F9C98:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _080F9CB8
+ strb r0, [r1]
+ ldr r2, _080F9CBC
+ ldrb r0, [r1]
+ strh r0, [r2]
+ adds r0, r4, 0
+ bl sub_8123138
+ b _080F9CD8
+ .align 2, 0
+_080F9CB8: .4byte gUnknown_02038694
+_080F9CBC: .4byte gUnknown_0202E8CC
+_080F9CC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9CE0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080F9CE4
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8123138
+_080F9CD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9CE0: .4byte gUnknown_02038694
+_080F9CE4: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9C6C
+
+ thumb_func_start sub_80F9CE8
+sub_80F9CE8: @ 80F9CE8
+ push {r4,r5,lr}
+ ldr r1, _080F9D08
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9CFE
+ b _080F9E12
+_080F9CFE:
+ lsls r0, 2
+ ldr r1, _080F9D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9D08: .4byte 0x0201b000
+_080F9D0C: .4byte _080F9D10
+ .align 2, 0
+_080F9D10:
+ .4byte _080F9D30
+ .4byte _080F9D70
+ .4byte _080F9D76
+ .4byte _080F9D8A
+ .4byte _080F9DB4
+ .4byte _080F9DBA
+ .4byte _080F9DCC
+ .4byte _080F9DE4
+_080F9D30:
+ ldr r0, _080F9D58
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9D5C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9D64
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9D60
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9E0C
+ .align 2, 0
+_080F9D58: .4byte 0x00000266
+_080F9D5C: .4byte gPlayerPartyCount
+_080F9D60: .4byte gPlayerParty
+_080F9D64:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+_080F9D70:
+ bl sub_806DA98
+ b _080F9DD0
+_080F9D76:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9DD8
+_080F9D8A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9DB0
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DB0: .4byte 0x00000266
+_080F9DB4:
+ bl sub_806E334
+ b _080F9DD0
+_080F9DBA:
+ bl sub_806E0C4
+ ldr r1, _080F9DC8
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DC8: .4byte 0x0201b000
+_080F9DCC:
+ bl sub_80F9E1C
+_080F9DD0:
+ ldr r1, _080F9DE0
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9DD8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9E12
+ .align 2, 0
+_080F9DE0: .4byte 0x0201b000
+_080F9DE4:
+ ldr r0, _080F9E08
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9E14
+ .align 2, 0
+_080F9E08: .4byte 0x00000266
+_080F9E0C:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9E12:
+ movs r0, 0
+_080F9E14:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9CE8
+
+ thumb_func_start sub_80F9E1C
+sub_80F9E1C: @ 80F9E1C
+ push {r4,lr}
+ movs r4, 0
+ b _080F9E52
+_080F9E22:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9E40
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9E44
+ adds r0, r4, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _080F9E4C
+ .align 2, 0
+_080F9E40: .4byte gPlayerParty
+_080F9E44:
+ adds r0, r4, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_080F9E4C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9E52:
+ ldr r0, _080F9E60
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9E22
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9E60: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9E1C
+
+ thumb_func_start sub_80F9E64
+sub_80F9E64: @ 80F9E64
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F9E8C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9EE2
+ adds r0, r6, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9E90
+ cmp r0, 0x2
+ beq _080F9ED0
+ b _080F9EE2
+ .align 2, 0
+_080F9E8C: .4byte gPaletteFade
+_080F9E90:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080F9EC4
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r5, _080F9EC8
+ ldrh r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9ECC
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_8123138
+ b _080F9EE2
+ .align 2, 0
+_080F9EC4: .4byte gUnknown_0202E8CC
+_080F9EC8: .4byte gUnknown_0202E8CE
+_080F9ECC: .4byte gPlayerParty
+_080F9ED0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9EE8
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r6, 0
+ bl sub_8123138
+_080F9EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9EE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9E64
+
+ thumb_func_start sub_80F9EEC
+sub_80F9EEC: @ 80F9EEC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080F9F20
+ ldr r1, _080F9F24
+ ldrb r1, [r1]
+ ldr r2, _080F9F28
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080F9F2C
+ movs r4, 0
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, _080F9F30
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ ldr r1, _080F9F34
+ ldr r0, _080F9F38
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F20: .4byte gPlayerParty
+_080F9F24: .4byte gUnknown_0202E8CC
+_080F9F28: .4byte gPlayerPartyCount
+_080F9F2C: .4byte c2_exit_to_overworld_2_switch
+_080F9F30: .4byte 0x02018000
+_080F9F34: .4byte gUnknown_0300485C
+_080F9F38: .4byte sub_8080990
+ thumb_func_end sub_80F9EEC
+
+ thumb_func_start sub_80F9F3C
+sub_80F9F3C: @ 80F9F3C
+ push {r4,r5,lr}
+ ldr r1, _080F9F78
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r5, r1, 0
+_080F9F48:
+ ldr r0, _080F9F7C
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9F80
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0xD
+ bl GetMonData
+ cmp r0, 0
+ beq _080F9F66
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9F66:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080F9F48
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F78: .4byte gScriptResult
+_080F9F7C: .4byte gUnknown_0202E8CC
+_080F9F80: .4byte gPlayerParty
+ thumb_func_end sub_80F9F3C
+
+ thumb_func_start sub_80F9F84
+sub_80F9F84: @ 80F9F84
+ push {r4,r5,lr}
+ ldr r0, _080F9FC4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, _080F9FC8
+ adds r5, r0
+ ldr r0, _080F9FCC
+ ldrh r1, [r0]
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, _080F9FD0
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, _080F9FD4
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _080F9FD8
+ adds r1, r2
+ bl StringCopy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9FC4: .4byte gUnknown_0202E8CC
+_080F9FC8: .4byte gPlayerParty
+_080F9FCC: .4byte gUnknown_0202E8CE
+_080F9FD0: .4byte gStringVar1
+_080F9FD4: .4byte gStringVar2
+_080F9FD8: .4byte gMoveNames
+ thumb_func_end sub_80F9F84
+
+ thumb_func_start sub_80F9FDC
+sub_80F9FDC: @ 80F9FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0xD
+ str r3, [sp, 0xC]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r7, r5, 0
+ adds r7, 0x11
+ str r7, [sp, 0x10]
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x5
+ str r1, [sp, 0x18]
+ strb r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0x11
+ str r3, [sp, 0x1C]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ add r7, sp, 0x4
+ mov r10, r7
+ strb r0, [r7]
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ mov r6, sp
+ adds r6, 0x6
+ strb r0, [r6]
+ ldr r1, _080FA0D8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ lsls r5, 1
+ asrs r2, r5
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r4, 1
+ asrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r6]
+ ldrb r0, [r6]
+ bics r0, r3
+ strb r0, [r6]
+ lsls r2, r4
+ lsls r1, r5
+ adds r2, r1
+ ldrb r0, [r6]
+ orrs r0, r2
+ strb r0, [r6]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r6, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA0D8: .4byte gUnknown_08208238
+ thumb_func_end sub_80F9FDC
+
+ thumb_func_start sub_80FA0DC
+sub_80FA0DC: @ 80FA0DC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080FA13C
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080FA140
+ adds r0, r5
+ ldr r4, _080FA144
+ ldrb r2, [r4]
+ movs r1, 0
+ bl SetMonMoveSlot
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r6
+ adds r0, r5
+ ldrb r1, [r4]
+ bl RemoveMonPPBonus
+ ldrh r4, [r4]
+ cmp r4, 0x2
+ bhi _080FA130
+_080FA10E:
+ ldr r0, _080FA13C
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA140
+ adds r0, r1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_80F9FDC
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x2
+ bls _080FA10E
+_080FA130:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA13C: .4byte gUnknown_0202E8CC
+_080FA140: .4byte gPlayerParty
+_080FA144: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80FA0DC
+
+ thumb_func_start sub_80FA148
+sub_80FA148: @ 80FA148
+ push {r4,lr}
+ ldr r0, _080FA170
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA174
+ adds r0, r1
+ ldr r4, _080FA178
+ movs r1, 0
+ strh r1, [r4]
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _080FA16A
+ movs r0, 0x1
+ strh r0, [r4]
+_080FA16A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA170: .4byte gUnknown_0202E8CC
+_080FA174: .4byte gPlayerParty
+_080FA178: .4byte gScriptResult
+ thumb_func_end sub_80FA148
+
+ thumb_func_start sub_80FA17C
+sub_80FA17C: @ 80FA17C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ ldr r7, _080FA1B4
+ ldr r0, _080FA1B8
+ adds r0, r7
+ mov r9, r0
+ movs r1, 0x1
+ mov r8, r1
+_080FA192:
+ movs r0, 0xA
+ bl sub_80EB72C
+ lsls r4, r6, 3
+ adds r5, r4, r7
+ ldr r2, _080FA1BC
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ mov r1, r8
+ ands r1, r0
+ cmp r1, 0
+ beq _080FA1C0
+ movs r0, 0xC
+ b _080FA1C2
+ .align 2, 0
+_080FA1B4: .4byte gSaveBlock1
+_080FA1B8: .4byte 0x00002dd4
+_080FA1BC: .4byte 0x00002dd8
+_080FA1C0:
+ movs r0, 0xD
+_080FA1C2:
+ bl sub_80EB72C
+ ldr r2, _080FA214
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ adds r3, r4, r7
+ mov r2, r8
+ ands r2, r0
+ ldr r5, _080FA218
+ adds r3, r5
+ lsls r2, 6
+ ldrb r0, [r3]
+ movs r5, 0x41
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ mov r1, r9
+ adds r0, r4, r1
+ bl sub_80FA740
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA192
+ ldr r0, _080FA21C
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA214: .4byte 0x00002dda
+_080FA218: .4byte 0x00002dd5
+_080FA21C: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA17C
+
+ thumb_func_start sub_80FA220
+sub_80FA220: @ 80FA220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FA236
+ b _080FA34E
+_080FA236:
+ lsls r0, r1, 2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x7F
+ mov r9, r1
+ movs r2, 0x80
+ negs r2, r2
+ mov r8, r2
+_080FA24A:
+ ldr r2, [sp]
+ mov r4, r10
+ lsls r0, r4, 3
+ ldr r1, _080FA28C
+ adds r5, r0, r1
+ ldrb r6, [r5, 0x1]
+ movs r0, 0x40
+ ands r0, r6
+ cmp r0, 0
+ bne _080FA2A0
+ ldrb r4, [r5]
+ lsls r3, r4, 25
+ lsrs r1, r3, 25
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bcc _080FA290
+ adds r0, r1, 0
+ subs r0, r2
+ mov r2, r9
+ ands r0, r2
+ mov r1, r8
+ ands r1, r4
+ orrs r1, r0
+ strb r1, [r5]
+ movs r0, 0x7F
+ ands r1, r0
+ cmp r1, 0
+ bne _080FA336
+ movs r0, 0x40
+ orrs r0, r6
+ b _080FA334
+ .align 2, 0
+_080FA28C: .4byte gSaveBlock1 + 0x2DD4
+_080FA290:
+ lsrs r0, r3, 25
+ subs r2, r0
+ mov r0, r8
+ ands r0, r4
+ strb r0, [r5]
+ movs r0, 0x40
+ orrs r0, r6
+ strb r0, [r5, 0x1]
+_080FA2A0:
+ ldrb r7, [r5]
+ lsls r0, r7, 25
+ lsrs r0, 25
+ adds r4, r0, r2
+ ldrh r0, [r5]
+ lsls r6, r0, 18
+ lsls r0, r4, 16
+ lsrs r0, 16
+ lsrs r1, r6, 25
+ cmp r0, r1
+ bls _080FA310
+ adds r0, r4, 0
+ bl __umodsi3
+ adds r3, r0, 0
+ lsrs r1, r6, 25
+ adds r0, r4, 0
+ str r3, [sp, 0x4]
+ bl __udivsi3
+ adds r4, r0, 0
+ movs r0, 0x1
+ eors r4, r0
+ ands r4, r0
+ lsls r2, r4, 6
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ movs r1, 0x40
+ ands r0, r1
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _080FA2FA
+ adds r1, r3, 0
+ mov r0, r9
+ ands r1, r0
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r1
+ strb r0, [r5]
+ b _080FA336
+_080FA2FA:
+ ldrh r0, [r5]
+ lsls r0, 18
+ lsrs r0, 25
+ subs r0, r3
+ mov r1, r9
+ ands r0, r1
+ mov r1, r8
+ ands r1, r7
+ orrs r1, r0
+ strb r1, [r5]
+ b _080FA336
+_080FA310:
+ mov r2, r9
+ ands r4, r2
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r4
+ strb r0, [r5]
+ lsls r0, 25
+ ldrh r1, [r5]
+ lsls r1, 18
+ lsrs r0, 25
+ lsrs r1, 25
+ cmp r0, r1
+ bne _080FA336
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+_080FA334:
+ strb r0, [r5, 0x1]
+_080FA336:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ cmp r0, 0x4
+ bls _080FA24A
+ ldr r0, _080FA360
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+_080FA34E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA360: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA220
+
+ thumb_func_start sub_80FA364
+sub_80FA364: @ 80FA364
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_80FA7C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA462
+ ldr r5, _080FA3B4
+ adds r0, r5, 0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ adds r0, r5, 0
+ bl FlagSet
+ ldr r0, _080FA3B8
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ ldr r1, _080FA3BC
+ ldrh r2, [r4]
+ ldr r3, _080FA3C0
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, 0x2]
+ ldr r2, _080FA3C4
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA3B4: .4byte 0x00000833
+_080FA3B8: .4byte 0x00000834
+_080FA3BC: .4byte gSaveBlock1
+_080FA3C0: .4byte 0x00002dd8
+_080FA3C4: .4byte 0x00002dda
+_080FA3C8:
+ ldrh r1, [r4, 0x2]
+ lsls r1, 16
+ ldrh r0, [r4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0x80
+ lsls r1, 7
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80FA740
+ movs r6, 0
+_080FA3E4:
+ lsls r4, r6, 3
+ ldr r5, _080FA444
+ adds r1, r4, r5
+ mov r0, sp
+ movs r2, 0
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080FA450
+ movs r3, 0x4
+ ldr r0, _080FA448
+ adds r0, r5
+ mov r12, r0
+ cmp r3, r6
+ bls _080FA428
+ mov r5, r12
+ ldr r4, _080FA44C
+_080FA40A:
+ lsls r2, r3, 3
+ adds r2, r5
+ adds r2, r4
+ subs r3, 0x1
+ lsls r0, r3, 3
+ adds r0, r5
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r3, r6
+ bhi _080FA40A
+_080FA428:
+ mov r3, r12
+ adds r2, r7, r3
+ ldr r0, _080FA44C
+ adds r2, r0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0
+ cmp r6, 0
+ bne _080FA464
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA444: .4byte gSaveBlock1 + 0x2DD4
+_080FA448: .4byte 0xffffd22c
+_080FA44C: .4byte 0x00002dd4
+_080FA450:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA3E4
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r5, 0x20]
+ str r1, [r5, 0x24]
+_080FA462:
+ movs r0, 0
+_080FA464:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA364
+
+ thumb_func_start sub_80FA46C
+sub_80FA46C: @ 80FA46C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r2, 0
+ cmp r2, r7
+ bcs _080FA4D4
+_080FA488:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, r7
+ bcs _080FA4CA
+ lsls r0, r2, 3
+ mov r1, r9
+ adds r6, r1, r0
+_080FA49A:
+ lsls r0, r5, 3
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r10
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA4C0
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r6]
+ str r3, [r6, 0x4]
+_080FA4C0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r7
+ bcc _080FA49A
+_080FA4CA:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080FA488
+_080FA4D4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA46C
+
+ thumb_func_start sub_80FA4E4
+sub_80FA4E4: @ 80FA4E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA520
+_080FA500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080FA554
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r5
+ adds r1, r6, r1
+ movs r2, 0x28
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA500
+_080FA520:
+ ldr r5, _080FA554
+ movs r0, 0x80
+ lsls r0, 1
+ adds r3, r5, r0
+ movs r7, 0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA588
+_080FA530:
+ movs r6, 0
+_080FA532:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl sub_80FA828
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp]
+ cmp r0, 0
+ bge _080FA558
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r3!, {r0,r1}
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FA572
+ .align 2, 0
+_080FA554: .4byte 0x02007800
+_080FA558:
+ lsls r1, r0, 3
+ ldr r0, _080FA5B4
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ lsls r1, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bcs _080FA572
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+_080FA572:
+ adds r5, 0x8
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA532
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA530
+_080FA588:
+ ldr r4, _080FA5B4
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x2
+ bl sub_80FA46C
+ adds r5, r4, 0
+ ldr r3, _080FA5B8
+ movs r4, 0
+_080FA59A:
+ ldm r5!, {r0,r1}
+ stm r3!, {r0,r1}
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA59A
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5B4: .4byte 0x02007900
+_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA4E4
+
+ thumb_func_start sub_80FA5BC
+sub_80FA5BC: @ 80FA5BC
+ push {lr}
+ ldr r0, _080FA5D8
+ ldrh r1, [r0]
+ lsls r1, 3
+ ldr r0, _080FA5DC
+ adds r1, r0
+ ldr r0, _080FA5E0
+ adds r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5D8: .4byte gUnknown_0202E8CC
+_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
+_080FA5E0: .4byte gStringVar1
+ thumb_func_end sub_80FA5BC
+
+ thumb_func_start sub_80FA5E4
+sub_80FA5E4: @ 80FA5E4
+ push {r4,lr}
+ movs r4, 0
+ ldr r3, _080FA630
+ ldr r1, _080FA634
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ lsrs r1, 25
+ ldr r2, _080FA638
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 25
+ subs r1, r0
+ cmp r1, 0x1
+ bgt _080FA626
+ ldr r1, _080FA63C
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FA626
+ ldr r1, _080FA640
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r4, r0, 31
+_080FA626:
+ ldr r0, _080FA644
+ strh r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA630: .4byte gSaveBlock1
+_080FA634: .4byte 0x00002dd4
+_080FA638: .4byte 0x00002ddc
+_080FA63C: .4byte 0x00002dd5
+_080FA640: .4byte 0x00002ddd
+_080FA644: .4byte gScriptResult
+ thumb_func_end sub_80FA5E4
+
+ thumb_func_start sub_80FA648
+sub_80FA648: @ 80FA648
+ ldr r2, _080FA664
+ ldr r0, _080FA668
+ ldr r3, _080FA66C
+ adds r1, r0, r3
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080FA664: .4byte gScriptResult
+_080FA668: .4byte gSaveBlock1
+_080FA66C: .4byte 0x00002dd8
+ thumb_func_end sub_80FA648
+
+ thumb_func_start atk90_changetypestoenemyattacktype
+atk90_changetypestoenemyattacktype: @ 80FA670
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r2, 0
+ cmp r2, 0x1
+ beq _080FA6B6
+ cmp r2, 0x1
+ bgt _080FA68A
+ cmp r2, 0
+ beq _080FA690
+ b _080FA732
+_080FA68A:
+ cmp r0, 0x2
+ beq _080FA6E2
+ b _080FA732
+_080FA690:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r3, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ b _080FA6DA
+_080FA6B6:
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+_080FA6DA:
+ cmp r1, r0
+ bcs _080FA732
+_080FA6DE:
+ movs r0, 0
+ b _080FA73A
+_080FA6E2:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x2]
+ ldrh r0, [r5, 0x2]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x4]
+ ldrh r0, [r5, 0x4]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x6]
+ ldrh r0, [r5, 0x6]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+_080FA72E:
+ movs r0, 0x1
+ b _080FA73A
+_080FA732:
+ bl Random
+ movs r1, 0x1
+ ands r0, r1
+_080FA73A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end atk90_changetypestoenemyattacktype
+
+ thumb_func_start sub_80FA740
+sub_80FA740: @ 80FA740
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x32
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x50
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080FA782:
+ adds r1, r4, 0
+ adds r1, 0x1E
+ movs r0, 0x7F
+ ands r1, r0
+ lsls r1, 7
+ ldrh r2, [r5]
+ ldr r0, _080FA7C4
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0x1
+ bl __modsi3
+ adds r0, 0x1E
+ movs r1, 0x7F
+ ands r0, r1
+ ldrb r2, [r5]
+ movs r1, 0x80
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5]
+ bl Random
+ strh r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA7C4: .4byte 0xffffc07f
+ thumb_func_end sub_80FA740
+
+ thumb_func_start sub_80FA7C8
+sub_80FA7C8: @ 80FA7C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080FA7CE:
+ lsls r1, r4, 3
+ ldr r0, _080FA7E4
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA7E8
+ movs r0, 0x1
+ b _080FA7F4
+ .align 2, 0
+_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
+_080FA7E8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA7CE
+ movs r0, 0
+_080FA7F4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7C8
+
+ thumb_func_start sub_80FA7FC
+sub_80FA7FC: @ 80FA7FC
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ movs r4, 0
+_080FA804:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x2
+ cmp r1, r0
+ beq _080FA814
+ movs r0, 0
+ b _080FA820
+_080FA814:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080FA804
+ movs r0, 0x1
+_080FA820:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7FC
+
+ thumb_func_start sub_80FA828
+sub_80FA828: @ 80FA828
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r6, _080FA84C
+ movs r4, 0
+ cmp r4, r5
+ bge _080FA862
+_080FA838:
+ adds r1, r6, 0x4
+ adds r0, r7, 0x4
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA850
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _080FA866
+ .align 2, 0
+_080FA84C: .4byte 0x02007900
+_080FA850:
+ adds r6, 0x8
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _080FA838
+_080FA862:
+ movs r0, 0x1
+ negs r0, r0
+_080FA866:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA828
+
+ thumb_func_start sub_80FA86C
+sub_80FA86C: @ 80FA86C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ ldr r2, _080FA890
+_080FA87A:
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, r4
+ bne _080FA894
+ movs r0, 0x1
+ ldrsb r0, [r2, r0]
+ cmp r0, r1
+ bne _080FA894
+ adds r0, r3, 0x1
+ b _080FA89E
+ .align 2, 0
+_080FA890: .4byte gUnknown_083E5A20
+_080FA894:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x15
+ bls _080FA87A
+ movs r0, 0
+_080FA89E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA86C
+
+ thumb_func_start unref_sub_80FA8A4
+unref_sub_80FA8A4: @ 80FA8A4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FA86C
+ cmp r0, 0
+ beq _080FA8C4
+ lsls r0, 3
+ ldr r1, _080FA8C0
+ adds r0, r1
+ b _080FA8C6
+ .align 2, 0
+_080FA8C0: .4byte gUnknown_083E5A18
+_080FA8C4:
+ movs r0, 0
+_080FA8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80FA8A4
+
+ thumb_func_start sub_80FA8CC
+sub_80FA8CC: @ 80FA8CC
+ push {lr}
+ cmp r0, 0
+ beq _080FA8E4
+ cmp r0, 0x16
+ bhi _080FA8E4
+ lsls r0, 3
+ ldr r1, _080FA8E0
+ adds r0, r1
+ b _080FA8E6
+ .align 2, 0
+_080FA8E0: .4byte gUnknown_083E5A18
+_080FA8E4:
+ movs r0, 0
+_080FA8E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA8CC
+
+ thumb_func_start sub_80FA8EC
+sub_80FA8EC: @ 80FA8EC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80FA904
+_080FA8F6:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA8F6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA8EC
+
+ thumb_func_start sub_80FA904
+sub_80FA904: @ 80FA904
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080FA928
+ str r0, [r3]
+ movs r2, 0x79
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0
+ mov r4, r12
+ strb r2, [r4]
+ adds r0, 0x78
+ strb r1, [r0]
+ ldr r3, [r3]
+ cmp r1, 0
+ bne _080FA930
+ ldr r0, _080FA92C
+ b _080FA932
+ .align 2, 0
+_080FA928: .4byte gUnknown_020388CC
+_080FA92C: .4byte sub_80FAB78
+_080FA930:
+ ldr r0, _080FA93C
+_080FA932:
+ str r0, [r3, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA93C: .4byte sub_80FAD04
+ thumb_func_end sub_80FA904
+
+ thumb_func_start sub_80FA940
+sub_80FA940: @ 80FA940
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080FA95C
+ ldr r0, [r0]
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _080FA952
+ b _080FAAE2
+_080FA952:
+ lsls r0, 2
+ ldr r1, _080FA960
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FA95C: .4byte gUnknown_020388CC
+_080FA960: .4byte _080FA964
+ .align 2, 0
+_080FA964:
+ .4byte _080FA984
+ .4byte _080FA998
+ .4byte _080FA9AC
+ .4byte _080FA9BC
+ .4byte _080FA9D8
+ .4byte _080FA9F4
+ .4byte _080FAA38
+ .4byte _080FAAB4
+_080FA984:
+ ldr r0, _080FA990
+ ldr r1, _080FA994
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA990: .4byte gUnknown_083E5DA0
+_080FA994: .4byte 0x06008000
+_080FA998:
+ ldr r0, _080FA9A4
+ ldr r1, _080FA9A8
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA9A4: .4byte gUnknown_083E6B04
+_080FA9A8: .4byte 0x0600e000
+_080FA9AC:
+ ldr r0, _080FA9B8
+ movs r1, 0x70
+ movs r2, 0x60
+ bl LoadPalette
+ b _080FAAF4
+ .align 2, 0
+_080FA9B8: .4byte gUnknown_083E5D60
+_080FA9BC:
+ ldr r0, _080FA9D0
+ ldr r1, _080FA9D4
+ ldr r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9D0: .4byte gUnknown_083E5AF0
+_080FA9D4: .4byte gUnknown_020388CC
+_080FA9D8:
+ ldr r0, _080FA9EC
+ ldr r1, _080FA9F0
+ ldr r1, [r1]
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r1, r3
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9EC: .4byte gUnknown_083E5B34
+_080FA9F0: .4byte gUnknown_020388CC
+_080FA9F4:
+ bl sub_80FB32C
+ ldr r4, _080FAA34
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x54
+ ldrh r1, [r0]
+ adds r0, 0x20
+ strh r1, [r0]
+ subs r0, 0x1E
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x76
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ bl sub_80FB758
+ ldr r1, [r4]
+ strb r0, [r1, 0x16]
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x14]
+ bl sub_80FB9C0
+ adds r1, r0, 0
+ ldr r0, [r4]
+ strh r1, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+ b _080FAAF4
+ .align 2, 0
+_080FAA34: .4byte gUnknown_020388CC
+_080FAA38:
+ ldr r0, _080FAA60
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x78
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080FAA64
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80FB170
+ b _080FAAF4
+ .align 2, 0
+_080FAA60: .4byte gUnknown_020388CC
+_080FAA64:
+ adds r1, r4, 0
+ adds r1, 0x54
+ ldrh r0, [r1]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0
+ strh r0, [r2]
+ movs r5, 0x56
+ adds r5, r4
+ mov r12, r5
+ ldrh r0, [r5]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r5, r4, 0
+ adds r5, 0x5E
+ strh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r0, r12
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x66
+ strh r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x80
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ b _080FAAF4
+_080FAAB4:
+ bl sub_80FBA18
+ bl sub_80FB260
+ ldr r2, _080FAAE8
+ ldr r0, [r2]
+ movs r1, 0
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x20]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, _080FAAEC
+ ldr r3, _080FAAF0
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FAAE2:
+ movs r0, 0
+ b _080FAB02
+ .align 2, 0
+_080FAAE8: .4byte gUnknown_020388CC
+_080FAAEC: .4byte REG_BG2CNT
+_080FAAF0: .4byte 0x0000bc8a
+_080FAAF4:
+ ldr r0, _080FAB0C
+ ldr r1, [r0]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_080FAB02:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB0C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FA940
+
+ thumb_func_start sub_80FAB10
+sub_80FAB10: @ 80FAB10
+ push {r4,lr}
+ ldr r4, _080FAB5C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FAB34
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB34:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ beq _080FAB54
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x70
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x72
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FAB5C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB10
+
+ thumb_func_start sub_80FAB60
+sub_80FAB60: @ 80FAB60
+ push {lr}
+ ldr r0, _080FAB74
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB74: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB60
+
+ thumb_func_start sub_80FAB78
+sub_80FAB78: @ 80FAB78
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _080FAC14
+ ldr r0, [r2]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r3, _080FAC18
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABAA
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bls _080FABAA
+ adds r1, 0x7C
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABAA:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABC8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0xF
+ bhi _080FABC8
+ adds r1, 0x7C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABC8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABE6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _080FABE6
+ adds r1, 0x7B
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABE6:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAC04
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1B
+ bhi _080FAC04
+ adds r1, 0x7B
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FAC04:
+ ldrh r3, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC1C
+ movs r4, 0x4
+ b _080FAC26
+ .align 2, 0
+_080FAC14: .4byte gUnknown_020388CC
+_080FAC18: .4byte gMain
+_080FAC1C:
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC26
+ movs r4, 0x5
+_080FAC26:
+ cmp r4, 0x1
+ bne _080FAC38
+ ldr r0, [r2]
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, _080FAC40
+ str r0, [r1, 0x18]
+_080FAC38:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAC40: .4byte _swiopen
+ thumb_func_end sub_80FAB78
+
+ thumb_func_start _swiopen
+_swiopen: @ 80FAC44
+ push {r4,r5,lr}
+ ldr r5, _080FAC5C
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FAC60
+ movs r0, 0x2
+ b _080FACFA
+ .align 2, 0
+_080FAC5C: .4byte gUnknown_020388CC
+_080FAC60:
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FAC76
+ adds r1, 0x54
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FAC76:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FAC8E
+ adds r1, 0x54
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FAC8E:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FACA6
+ adds r1, 0x56
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FACA6:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FACBE
+ adds r1, 0x56
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FACBE:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ adds r1, 0x56
+ ldrh r1, [r1]
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x14]
+ cmp r4, r1
+ beq _080FACEE
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FACEE:
+ bl sub_80FBA18
+ ldr r1, [r5]
+ ldr r0, _080FAD00
+ str r0, [r1, 0x18]
+ movs r0, 0x3
+_080FACFA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAD00: .4byte sub_80FAB78
+ thumb_func_end _swiopen
+
+ thumb_func_start sub_80FAD04
+sub_80FAD04: @ 80FAD04
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r3, _080FADD4
+ ldr r0, [r3]
+ mov r12, r0
+ adds r0, 0x6A
+ strh r4, [r0]
+ mov r5, r12
+ adds r5, 0x68
+ strh r4, [r5]
+ ldr r2, _080FADD8
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080FAD3E
+ mov r0, r12
+ adds r0, 0x5E
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x34
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD3E
+ ldr r0, _080FADDC
+ strh r0, [r5]
+ movs r4, 0x1
+_080FAD3E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD5E
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5E
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0x3B
+ bgt _080FAD5E
+ adds r1, 0x68
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD5E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD84
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x2C
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD84
+ adds r1, r2, 0
+ adds r1, 0x6A
+ ldr r0, _080FADDC
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD84:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FADA4
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0xAB
+ bgt _080FADA4
+ adds r1, 0x6A
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FADA4:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADB0
+ movs r4, 0x4
+_080FADB0:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADBA
+ movs r4, 0x5
+_080FADBA:
+ cmp r4, 0x1
+ bne _080FADCA
+ ldr r0, [r6]
+ ldr r1, _080FADE0
+ str r1, [r0, 0x18]
+ adds r0, 0x6C
+ movs r1, 0
+ strh r1, [r0]
+_080FADCA:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FADD4: .4byte gUnknown_020388CC
+_080FADD8: .4byte gMain
+_080FADDC: .4byte 0x0000ffff
+_080FADE0: .4byte sub_80FADE4
+ thumb_func_end sub_80FAD04
+
+ thumb_func_start sub_80FADE4
+sub_80FADE4: @ 80FADE4
+ push {r4,r5,lr}
+ ldr r5, _080FAEB4
+ ldr r2, [r5]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r0, r2, 0
+ adds r0, 0x6A
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ bl sub_80FB238
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080FAEBC
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ cmp r0, 0
+ bge _080FAE3C
+ adds r0, 0x7
+_080FAE3C:
+ asrs r0, 3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r0, r1, 0
+ adds r0, 0x34
+ cmp r0, 0
+ bge _080FAE56
+ adds r0, 0x7
+_080FAE56:
+ asrs r0, 3
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, r2, 0
+ adds r4, 0x64
+ adds r0, r2, 0
+ adds r0, 0x66
+ ldrh r2, [r4]
+ cmp r3, r2
+ bne _080FAE72
+ ldrh r2, [r0]
+ cmp r1, r2
+ beq _080FAEA0
+_080FAE72:
+ strh r3, [r4]
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r3, [r0, 0x14]
+ cmp r4, r3
+ beq _080FAE9C
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FAE9C:
+ bl sub_80FBA18
+_080FAEA0:
+ ldr r0, _080FAEB4
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080FAEB8
+ str r0, [r2, 0x18]
+ movs r0, 0x3
+ b _080FAEBE
+ .align 2, 0
+_080FAEB4: .4byte gUnknown_020388CC
+_080FAEB8: .4byte sub_80FAD04
+_080FAEBC:
+ movs r0, 0x2
+_080FAEBE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FADE4
+
+ thumb_func_start sub_80FAEC4
+sub_80FAEC4: @ 80FAEC4
+ push {r4-r6,lr}
+ ldr r1, _080FAF40
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _080FAF48
+ subs r0, 0x1A
+ strh r3, [r0]
+ subs r0, 0x2
+ strh r3, [r0]
+ str r3, [r2, 0x40]
+ str r3, [r2, 0x3C]
+ adds r4, r2, 0
+ adds r4, 0x54
+ ldrh r0, [r4]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r1, r2, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r0, 0x56
+ adds r0, r2
+ mov r12, r0
+ ldrh r0, [r0]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r3, r2, 0
+ adds r3, 0x62
+ strh r0, [r3]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF10
+ adds r0, 0xF
+_080FAF10:
+ asrs r0, 4
+ str r0, [r2, 0x44]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF20
+ adds r0, 0xF
+_080FAF20:
+ asrs r0, 4
+ str r0, [r2, 0x48]
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r3, r12
+ ldrh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x66
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 9
+ str r0, [r2, 0x4C]
+ ldr r0, _080FAF44
+ b _080FAFA6
+ .align 2, 0
+_080FAF40: .4byte gUnknown_020388CC
+_080FAF44: .4byte 0xfffff800
+_080FAF48:
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ lsls r0, 8
+ str r0, [r2, 0x3C]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r2, 0x40]
+ adds r0, r2, 0
+ adds r0, 0x60
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, [r2, 0x3C]
+ cmp r0, 0
+ bge _080FAF74
+ adds r0, 0xF
+_080FAF74:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x44]
+ ldr r0, [r2, 0x40]
+ cmp r0, 0
+ bge _080FAF82
+ adds r0, 0xF
+_080FAF82:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x48]
+ adds r0, r2, 0
+ adds r0, 0x64
+ ldrh r1, [r0]
+ subs r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x12
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x56
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 8
+ str r0, [r2, 0x4C]
+ movs r0, 0x80
+ lsls r0, 4
+_080FAFA6:
+ str r0, [r2, 0x50]
+ ldr r0, [r5]
+ adds r0, 0x6E
+ movs r1, 0
+ strh r1, [r0]
+ bl sub_80FBCA0
+ bl sub_80FBDF8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FAEC4
+
+ thumb_func_start sub_80FAFC0
+sub_80FAFC0: @ 80FAFC0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080FAFD8
+ ldr r3, [r0]
+ adds r2, r3, 0
+ adds r2, 0x6E
+ ldrh r1, [r2]
+ adds r5, r0, 0
+ cmp r1, 0xF
+ bls _080FAFDC
+ movs r0, 0
+ b _080FB164
+ .align 2, 0
+_080FAFD8: .4byte gUnknown_020388CC
+_080FAFDC:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bne _080FB050
+ str r1, [r3, 0x44]
+ str r1, [r3, 0x48]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r1, [r0]
+ subs r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x6
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ adds r1, 0x1A
+ ldrb r0, [r1]
+ movs r2, 0x80
+ lsls r2, 9
+ cmp r0, 0
+ bne _080FB012
+ movs r2, 0x80
+ lsls r2, 8
+_080FB012:
+ str r2, [r3, 0x4C]
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080FB01E
+ movs r2, 0x1
+_080FB01E:
+ strb r2, [r1]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ ldr r2, _080FB048
+ cmp r0, 0
+ bne _080FB030
+ ldr r2, _080FB04C
+_080FB030:
+ str r2, [r1, 0x18]
+ adds r0, r1, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ bl sub_80FBB3C
+ bl sub_80FBE24
+ movs r4, 0
+ b _080FB132
+ .align 2, 0
+_080FB048: .4byte sub_80FAD04
+_080FB04C: .4byte sub_80FAB78
+_080FB050:
+ ldr r2, [r3, 0x3C]
+ ldr r0, [r3, 0x44]
+ adds r2, r0
+ str r2, [r3, 0x3C]
+ ldr r0, [r3, 0x40]
+ ldr r1, [r3, 0x48]
+ adds r0, r1
+ str r0, [r3, 0x40]
+ asrs r2, 8
+ adds r4, r3, 0
+ adds r4, 0x5C
+ strh r2, [r4]
+ ldr r0, [r3, 0x40]
+ asrs r0, 8
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ ldr r0, [r3, 0x4C]
+ ldr r1, [r3, 0x50]
+ adds r0, r1
+ str r0, [r3, 0x4C]
+ ldr r2, [r3, 0x44]
+ cmp r2, 0
+ bge _080FB090
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ blt _080FB0A4
+_080FB090:
+ cmp r2, 0
+ ble _080FB0B4
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0B4
+_080FB0A4:
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r2, [r0]
+ subs r0, 0x4
+ movs r1, 0
+ strh r2, [r0]
+ str r1, [r3, 0x44]
+_080FB0B4:
+ ldr r2, [r5]
+ ldr r4, [r2, 0x48]
+ cmp r4, 0
+ bge _080FB0D0
+ adds r0, r2, 0
+ adds r0, 0x5E
+ adds r3, r2, 0
+ adds r3, 0x62
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r6, 0
+ ldrsh r0, [r3, r6]
+ cmp r1, r0
+ blt _080FB0E8
+_080FB0D0:
+ cmp r4, 0
+ ble _080FB0FA
+ adds r1, r2, 0
+ adds r1, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x62
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0FA
+_080FB0E8:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x62
+ ldrh r1, [r0]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ movs r0, 0
+ strh r1, [r3]
+ str r0, [r2, 0x48]
+_080FB0FA:
+ ldr r0, _080FB118
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080FB120
+ ldr r1, [r2, 0x4C]
+ ldr r0, _080FB11C
+ cmp r1, r0
+ bgt _080FB130
+ adds r0, 0x1
+ str r0, [r2, 0x4C]
+ str r3, [r2, 0x50]
+ b _080FB130
+ .align 2, 0
+_080FB118: .4byte gUnknown_020388CC
+_080FB11C: .4byte 0x00007fff
+_080FB120:
+ ldr r0, [r2, 0x4C]
+ movs r1, 0x80
+ lsls r1, 9
+ cmp r0, r1
+ ble _080FB130
+ str r1, [r2, 0x4C]
+ movs r0, 0
+ str r0, [r2, 0x50]
+_080FB130:
+ movs r4, 0x1
+_080FB132:
+ ldr r0, _080FB16C
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x5C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ adds r0, r4, 0
+_080FB164:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB16C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAFC0
+
+ thumb_func_start sub_80FB170
+sub_80FB170: @ 80FB170
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r4, 16
+ lsrs r4, 16
+ mov r8, r4
+ lsls r7, 16
+ adds r4, r7, 0
+ lsrs r4, 16
+ mov r9, r4
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080FB230
+ ldr r6, [r4]
+ ldr r7, _080FB234
+ mov r12, r7
+ adds r4, r5, 0
+ adds r4, 0x40
+ lsls r4, 1
+ add r4, r12
+ movs r7, 0
+ ldrsh r4, [r4, r7]
+ str r4, [sp]
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r10, r4
+ str r4, [r6, 0x2C]
+ lsls r5, 1
+ add r5, r12
+ movs r7, 0
+ ldrsh r5, [r5, r7]
+ negs r4, r5
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r12, r4
+ str r4, [r6, 0x30]
+ mov r7, r9
+ muls r7, r5
+ adds r5, r7, 0
+ asrs r5, 8
+ str r5, [r6, 0x34]
+ ldr r7, [sp]
+ mov r4, r9
+ muls r4, r7
+ asrs r4, 8
+ mov r8, r4
+ str r4, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 8
+ lsls r2, 16
+ asrs r2, 16
+ lsls r4, r2, 8
+ adds r0, r4
+ lsls r3, 16
+ asrs r3, 16
+ adds r4, r3, 0
+ muls r4, r5
+ mov r5, r10
+ muls r5, r2
+ adds r4, r5
+ subs r0, r4
+ str r0, [r6, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 8
+ adds r1, r0
+ mov r0, r8
+ muls r0, r3
+ mov r3, r12
+ muls r3, r2
+ adds r2, r3, 0
+ adds r0, r2
+ subs r1, r0
+ str r1, [r6, 0x28]
+ adds r6, 0x7D
+ movs r0, 0x1
+ strb r0, [r6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB230: .4byte gUnknown_020388CC
+_080FB234: .4byte gSineTable
+ thumb_func_end sub_80FB170
+
+ thumb_func_start sub_80FB238
+sub_80FB238: @ 80FB238
+ ldr r2, _080FB25C
+ ldr r2, [r2]
+ lsls r0, 16
+ asrs r0, 8
+ movs r3, 0xE0
+ lsls r3, 5
+ adds r0, r3
+ str r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ movs r0, 0x90
+ lsls r0, 6
+ adds r1, r0
+ str r1, [r2, 0x28]
+ adds r2, 0x7D
+ movs r0, 0x1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080FB25C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB238
+
+ thumb_func_start sub_80FB260
+sub_80FB260: @ 80FB260
+ push {lr}
+ ldr r0, _080FB29C
+ ldr r2, [r0]
+ adds r3, r2, 0
+ adds r3, 0x7D
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080FB298
+ ldr r1, _080FB2A0
+ ldr r0, [r2, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x34]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x38]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x24]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x28]
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r3]
+_080FB298:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB29C: .4byte gUnknown_020388CC
+_080FB2A0: .4byte REG_BG2PA
+ thumb_func_end sub_80FB260
+
+ thumb_func_start sub_80FB2A4
+sub_80FB2A4: @ 80FB2A4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ bl sub_80FB260
+ ldr r0, _080FB2E8
+ ldr r2, [r0]
+ ldr r1, [r2, 0x20]
+ cmp r1, 0
+ beq _080FB2E0
+ negs r0, r4
+ strh r0, [r1, 0x24]
+ ldr r1, [r2, 0x20]
+ negs r0, r5
+ strh r0, [r1, 0x26]
+_080FB2E0:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB2E8: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB2A4
+
+ thumb_func_start sub_80FB2EC
+sub_80FB2EC: @ 80FB2EC
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ ldr r0, _080FB30C
+ adds r1, r0
+ lsrs r2, r1, 16
+ cmp r2, 0xE
+ bhi _080FB306
+ cmp r3, 0
+ beq _080FB306
+ cmp r3, 0x1C
+ bls _080FB310
+_080FB306:
+ movs r0, 0x58
+ b _080FB324
+ .align 2, 0
+_080FB30C: .4byte 0xfffe0000
+_080FB310:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080FB328
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r1
+ ldrb r0, [r0]
+_080FB324:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB328: .4byte gRegionMapSections
+ thumb_func_end sub_80FB2EC
+
+ thumb_func_start sub_80FB32C
+sub_80FB32C: @ 80FB32C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080FB358
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ adds r2, r0, 0
+ cmp r1, 0x19
+ bne _080FB35C
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080FB35C
+ bl sub_80FB600
+ b _080FB5E8
+ .align 2, 0
+_080FB358: .4byte gSaveBlock1
+_080FB35C:
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ bl get_map_light_level_by_bank_and_number
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _080FB3A4
+ lsls r0, 2
+ ldr r1, _080FB37C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB37C: .4byte _080FB380
+ .align 2, 0
+_080FB380:
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB464
+ .4byte _080FB428
+_080FB3A4:
+ ldr r4, _080FB3D4
+ ldr r0, [r4]
+ ldr r3, _080FB3D8
+ ldrb r1, [r3, 0x14]
+ movs r2, 0
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ strb r2, [r0]
+ ldr r0, [r3]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldr r0, _080FB3DC
+ ldrh r6, [r0]
+ ldrh r3, [r0, 0x2]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x45
+ beq _080FB3CC
+ b _080FB4CC
+_080FB3CC:
+ adds r1, 0x7F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080FB4CC
+ .align 2, 0
+_080FB3D4: .4byte gUnknown_020388CC
+_080FB3D8: .4byte gMapHeader
+_080FB3DC: .4byte gSaveBlock1
+_080FB3E0:
+ ldr r4, _080FB420
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r1, 0x25
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB424
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x28]
+ ldrh r3, [r4, 0x2A]
+ b _080FB4CC
+ .align 2, 0
+_080FB420: .4byte gSaveBlock1
+_080FB424: .4byte gUnknown_020388CC
+_080FB428:
+ ldr r4, _080FB45C
+ movs r0, 0x14
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x15
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB460
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x18]
+ ldrh r3, [r4, 0x1A]
+ b _080FB4CC
+ .align 2, 0
+_080FB45C: .4byte gSaveBlock1
+_080FB460: .4byte gUnknown_020388CC
+_080FB464:
+ ldr r5, _080FB48C
+ ldr r0, [r5]
+ ldr r1, _080FB490
+ ldrb r1, [r1, 0x14]
+ strh r1, [r0, 0x14]
+ cmp r1, 0x57
+ beq _080FB498
+ ldr r4, _080FB494
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ b _080FB4B6
+ .align 2, 0
+_080FB48C: .4byte gUnknown_020388CC
+_080FB490: .4byte gMapHeader
+_080FB494: .4byte gSaveBlock1 + 0x24
+_080FB498:
+ ldr r4, _080FB548
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r1, [r5]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1, 0x14]
+_080FB4B6:
+ ldr r0, _080FB54C
+ ldr r0, [r0]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x4]
+ ldrh r3, [r4, 0x6]
+_080FB4CC:
+ mov r9, r6
+ ldr r4, _080FB54C
+ ldr r0, [r4]
+ ldrh r5, [r0, 0x14]
+ lsls r0, r5, 3
+ ldr r1, _080FB550
+ adds r0, r1
+ mov r10, r0
+ ldrb r7, [r0, 0x2]
+ adds r0, r2, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB4F4
+ movs r1, 0x1
+_080FB4F4:
+ adds r0, r6, 0
+ str r3, [sp]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ cmp r6, r7
+ bcc _080FB50C
+ subs r0, r7, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB50C:
+ mov r2, r10
+ ldrb r4, [r2, 0x3]
+ mov r0, r8
+ adds r1, r4, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB526
+ movs r1, 0x1
+_080FB526:
+ adds r0, r3, 0
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ bcc _080FB53A
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080FB53A:
+ cmp r5, 0x24
+ beq _080FB59C
+ cmp r5, 0x24
+ bgt _080FB554
+ cmp r5, 0x1D
+ beq _080FB55E
+ b _080FB5BE
+ .align 2, 0
+_080FB548: .4byte gSaveBlock1 + 0x14
+_080FB54C: .4byte gUnknown_020388CC
+_080FB550: .4byte gRegionMapLocations
+_080FB554:
+ cmp r5, 0x29
+ beq _080FB566
+ cmp r5, 0x33
+ beq _080FB566
+ b _080FB5BE
+_080FB55E:
+ cmp r3, 0
+ beq _080FB5BE
+ movs r6, 0
+ b _080FB5BE
+_080FB566:
+ movs r6, 0
+ ldr r1, _080FB598
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _080FB574
+ movs r6, 0x1
+_080FB574:
+ cmp r0, 0x33
+ ble _080FB57E
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB57E:
+ movs r3, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x25
+ ble _080FB58A
+ movs r3, 0x1
+_080FB58A:
+ cmp r0, 0x38
+ ble _080FB5BE
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080FB5BE
+ .align 2, 0
+_080FB598: .4byte gSaveBlock1
+_080FB59C:
+ movs r6, 0
+ mov r0, r9
+ cmp r0, 0xE
+ bls _080FB5A6
+ movs r6, 0x1
+_080FB5A6:
+ mov r1, r9
+ cmp r1, 0x1C
+ bls _080FB5B2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5B2:
+ mov r2, r9
+ cmp r2, 0x36
+ bls _080FB5BE
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5BE:
+ ldr r0, _080FB5F8
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ adds r0, r3, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+_080FB5E8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB5F8: .4byte gUnknown_020388CC
+_080FB5FC: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB32C
+
+ thumb_func_start sub_80FB600
+sub_80FB600: @ 80FB600
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ mov r4, sp
+ adds r4, 0x1
+ mov r5, sp
+ adds r5, 0x2
+ add r6, sp, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r5
+ cmp r0, 0x4
+ bhi _080FB694
+ lsls r0, 2
+ ldr r1, _080FB63C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB63C: .4byte _080FB640
+ .align 2, 0
+_080FB640:
+ .4byte _080FB694
+ .4byte _080FB654
+ .4byte _080FB664
+ .4byte _080FB674
+ .4byte _080FB684
+_080FB654:
+ ldr r2, _080FB660
+ ldr r1, [r2]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB660: .4byte gUnknown_020388CC
+_080FB664:
+ ldr r2, _080FB670
+ ldr r1, [r2]
+ movs r0, 0xC
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB670: .4byte gUnknown_020388CC
+_080FB674:
+ ldr r2, _080FB680
+ ldr r1, [r2]
+ movs r0, 0x27
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB680: .4byte gUnknown_020388CC
+_080FB684:
+ ldr r2, _080FB690
+ ldr r1, [r2]
+ movs r0, 0x2E
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB690: .4byte gUnknown_020388CC
+_080FB694:
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, _080FB750
+ mov r9, r1
+ ldr r2, [r1]
+ ldrb r1, [r0, 0x14]
+ strh r1, [r2, 0x14]
+ ldr r6, [r0]
+ ldr r1, _080FB754
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r4, [r5, 0x2]
+ ldr r0, [r6]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6C6
+ movs r1, 0x1
+_080FB6C6:
+ mov r2, r10
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r8, r4
+ bcc _080FB6E2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080FB6E2:
+ ldrb r4, [r5, 0x3]
+ ldr r0, [r6, 0x4]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6F6
+ movs r1, 0x1
+_080FB6F6:
+ mov r2, sp
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r2, r9
+ cmp r7, r4
+ bcc _080FB710
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FB710:
+ ldr r0, [r2]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r2]
+ ldr r3, _080FB754
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ add r0, r8
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ adds r0, r7, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB750: .4byte gUnknown_020388CC
+_080FB754: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB600
+
+ thumb_func_start sub_80FB758
+sub_80FB758: @ 80FB758
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x58
+ bls _080FB764
+ b _080FB9A0
+_080FB764:
+ lsls r0, 2
+ ldr r1, _080FB770
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB770: .4byte _080FB774
+ .align 2, 0
+_080FB774:
+ .4byte _080FB8DC
+ .4byte _080FB8E4
+ .4byte _080FB8EA
+ .4byte _080FB8F4
+ .4byte _080FB8FC
+ .4byte _080FB904
+ .4byte _080FB90C
+ .4byte _080FB914
+ .4byte _080FB91C
+ .4byte _080FB924
+ .4byte _080FB92C
+ .4byte _080FB934
+ .4byte _080FB93C
+ .4byte _080FB944
+ .4byte _080FB94C
+ .4byte _080FB954
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB96C
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB988
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB8D8
+_080FB8D8:
+ movs r0, 0
+ b _080FB9A2
+_080FB8DC:
+ ldr r0, _080FB8E0
+ b _080FB956
+ .align 2, 0
+_080FB8E0: .4byte 0x0000080f
+_080FB8E4:
+ movs r0, 0x81
+ lsls r0, 4
+ b _080FB956
+_080FB8EA:
+ ldr r0, _080FB8F0
+ b _080FB956
+ .align 2, 0
+_080FB8F0: .4byte 0x00000811
+_080FB8F4:
+ ldr r0, _080FB8F8
+ b _080FB956
+ .align 2, 0
+_080FB8F8: .4byte 0x00000812
+_080FB8FC:
+ ldr r0, _080FB900
+ b _080FB956
+ .align 2, 0
+_080FB900: .4byte 0x00000813
+_080FB904:
+ ldr r0, _080FB908
+ b _080FB956
+ .align 2, 0
+_080FB908: .4byte 0x00000814
+_080FB90C:
+ ldr r0, _080FB910
+ b _080FB956
+ .align 2, 0
+_080FB910: .4byte 0x00000815
+_080FB914:
+ ldr r0, _080FB918
+ b _080FB956
+ .align 2, 0
+_080FB918: .4byte 0x00000816
+_080FB91C:
+ ldr r0, _080FB920
+ b _080FB956
+ .align 2, 0
+_080FB920: .4byte 0x00000817
+_080FB924:
+ ldr r0, _080FB928
+ b _080FB956
+ .align 2, 0
+_080FB928: .4byte 0x00000818
+_080FB92C:
+ ldr r0, _080FB930
+ b _080FB956
+ .align 2, 0
+_080FB930: .4byte 0x00000819
+_080FB934:
+ ldr r0, _080FB938
+ b _080FB956
+ .align 2, 0
+_080FB938: .4byte 0x0000081a
+_080FB93C:
+ ldr r0, _080FB940
+ b _080FB956
+ .align 2, 0
+_080FB940: .4byte 0x0000081b
+_080FB944:
+ ldr r0, _080FB948
+ b _080FB956
+ .align 2, 0
+_080FB948: .4byte 0x0000081c
+_080FB94C:
+ ldr r0, _080FB950
+ b _080FB956
+ .align 2, 0
+_080FB950: .4byte 0x0000081d
+_080FB954:
+ ldr r0, _080FB968
+_080FB956:
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080FB964
+ movs r1, 0x2
+_080FB964:
+ adds r0, r1, 0
+ b _080FB9A2
+ .align 2, 0
+_080FB968: .4byte 0x0000081e
+_080FB96C:
+ ldr r0, _080FB984
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ asrs r0, 31
+ movs r1, 0x4
+ ands r0, r1
+ b _080FB9A2
+ .align 2, 0
+_080FB984: .4byte 0x00000848
+_080FB988:
+ ldr r0, _080FB99C
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _080FB9A2
+ .align 2, 0
+_080FB99C: .4byte 0x00000849
+_080FB9A0:
+ movs r0, 0x1
+_080FB9A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB758
+
+ thumb_func_start sub_80FB9A8
+sub_80FB9A8: @ 80FB9A8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9A8
+
+ thumb_func_start sub_80FB9C0
+sub_80FB9C0: @ 80FB9C0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _080FB9E8
+ ldrh r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _080FB9FC
+ adds r5, r4, 0
+ adds r6, r4, 0x2
+_080FB9D6:
+ lsls r1, r2, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _080FB9EC
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ b _080FB9FE
+ .align 2, 0
+_080FB9E8: .4byte gUnknown_083E7684
+_080FB9EC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FB9D6
+_080FB9FC:
+ adds r0, r3, 0
+_080FB9FE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9C0
+
+ thumb_func_start sub_80FBA04
+sub_80FBA04: @ 80FBA04
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80FB9C0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBA04
+
+ thumb_func_start sub_80FBA18
+sub_80FBA18: @ 80FBA18
+ push {r4-r6,lr}
+ ldr r0, _080FBA2C
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x58
+ bne _080FBA30
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ b _080FBA96
+ .align 2, 0
+_080FBA2C: .4byte gUnknown_020388CC
+_080FBA30:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBA40
+ adds r0, r1, 0
+ adds r0, 0x54
+ b _080FBA44
+_080FBA40:
+ adds r0, r1, 0
+ adds r0, 0x64
+_080FBA44:
+ ldrh r4, [r0]
+ adds r0, 0x2
+ ldrh r5, [r0]
+ movs r6, 0
+ b _080FBA70
+_080FBA4E:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBA8C
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ bne _080FBA70
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FBA70:
+ cmp r4, 0x1
+ bhi _080FBA4E
+ adds r0, r5, 0
+ bl sub_80FBAA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FBA90
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1D
+ b _080FBA70
+ .align 2, 0
+_080FBA8C: .4byte gUnknown_020388CC
+_080FBA90:
+ ldr r0, _080FBA9C
+ ldr r0, [r0]
+ strb r6, [r0, 0x17]
+_080FBA96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBA9C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBA18
+
+ thumb_func_start sub_80FBAA0
+sub_80FBAA0: @ 80FBAA0
+ push {r4,r5,lr}
+ lsls r0, 16
+ ldr r1, _080FBAB4
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldr r0, _080FBAB8
+ cmp r5, r0
+ bne _080FBAC0
+ b _080FBAE2
+ .align 2, 0
+_080FBAB4: .4byte 0xffff0000
+_080FBAB8: .4byte 0x0000ffff
+_080FBABC:
+ movs r0, 0x1
+ b _080FBAE4
+_080FBAC0:
+ movs r4, 0x1
+_080FBAC2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBAEC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ beq _080FBABC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1C
+ bls _080FBAC2
+_080FBAE2:
+ movs r0, 0
+_080FBAE4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FBAEC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAA0
+
+ thumb_func_start sub_80FBAF0
+sub_80FBAF0: @ 80FBAF0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080FBB34
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0x7A
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ beq _080FBB2E
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r4, [r2, 0x20]
+ adds r0, r4
+ strh r0, [r2, 0x20]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ strh r0, [r2, 0x22]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+_080FBB2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBB34: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAF0
+
+ thumb_func_start nullsub_66
+nullsub_66: @ 80FBB38
+ bx lr
+ thumb_func_end nullsub_66
+
+ thumb_func_start sub_80FBB3C
+sub_80FBB3C: @ 80FBB3C
+ push {r4-r7,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _080FBBAC
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [sp, 0x20]
+ str r2, [sp, 0x24]
+ mov r2, sp
+ ldr r1, _080FBBB0
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ lsrs r3, r0, 16
+ add r2, sp, 0x18
+ ldrh r1, [r2, 0x4]
+ orrs r1, r0
+ str r1, [r2, 0x4]
+ mov r0, sp
+ strh r3, [r0]
+ ldr r0, _080FBBB4
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x58
+ strh r3, [r0]
+ ldr r5, _080FBBB8
+ add r1, sp, 0x20
+ ldr r0, [r1, 0x4]
+ ands r0, r5
+ orrs r0, r6
+ str r0, [r1, 0x4]
+ mov r0, sp
+ strh r6, [r0, 0x2]
+ adds r3, r4, 0
+ adds r0, r3, 0
+ adds r0, 0x5A
+ strh r6, [r0]
+ adds r0, 0x1E
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _080FBBC0
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r3, r1
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ subs r1, 0x80
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBBBC
+ b _080FBBD6
+ .align 2, 0
+_080FBBAC: .4byte gUnknown_083E76E8
+_080FBBB0: .4byte gSpriteTemplate_83E76F0
+_080FBBB4: .4byte gUnknown_020388CC
+_080FBBB8: .4byte 0xffff0000
+_080FBBBC: .4byte sub_80FBAF0
+_080FBBC0:
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r0, r4, r3
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBC38
+_080FBBD6:
+ str r0, [sp, 0x14]
+ adds r0, r2, 0
+ bl LoadSpriteSheet
+ adds r0, r7, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0x38
+ movs r2, 0x48
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080FBC90
+ ldr r4, _080FBC3C
+ ldr r2, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080FBC40
+ adds r3, r0, r1
+ str r3, [r2, 0x1C]
+ adds r2, 0x78
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080FBC44
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r2, [r4]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x8
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ ldr r0, [r2, 0x1C]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080FBC6C
+ .align 2, 0
+_080FBC38: .4byte nullsub_66
+_080FBC3C: .4byte gUnknown_020388CC
+_080FBC40: .4byte gSprites
+_080FBC44:
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x1C]
+ adds r1, 0x56
+ ldrh r0, [r1]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x22]
+_080FBC6C:
+ ldr r4, _080FBC98
+ ldr r0, [r4]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x2
+ strh r0, [r1, 0x30]
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r4, _080FBC9C
+ adds r0, r4
+ strh r0, [r2, 0x32]
+ ldr r1, [r1, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+_080FBC90:
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBC98: .4byte gUnknown_020388CC
+_080FBC9C: .4byte 0x00000101
+ thumb_func_end sub_80FBB3C
+
+ thumb_func_start sub_80FBCA0
+sub_80FBCA0: @ 80FBCA0
+ push {r4,lr}
+ ldr r4, _080FBCCC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FBCC4
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FBCC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBCCC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBCA0
+
+ thumb_func_start unref_sub_80FBCD0
+unref_sub_80FBCD0: @ 80FBCD0
+ ldr r0, _080FBCDC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCDC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCD0
+
+ thumb_func_start unref_sub_80FBCE0
+unref_sub_80FBCE0: @ 80FBCE0
+ ldr r0, _080FBCEC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCEC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCE0
+
+ thumb_func_start sub_80FBCF0
+sub_80FBCF0: @ 80FBCF0
+ push {r4,r5,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080FBD98
+ str r2, [sp, 0x18]
+ movs r2, 0x80
+ add r5, sp, 0x18
+ lsrs r3, r0, 16
+ orrs r0, r2
+ str r0, [r5, 0x4]
+ ldr r0, _080FBD9C
+ str r0, [sp, 0x20]
+ ldr r2, _080FBDA0
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r3, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080FBDA4
+ str r0, [sp, 0x4]
+ ldr r0, _080FBDA8
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080FBDAC
+ str r0, [sp, 0x10]
+ ldr r0, _080FBDB0
+ str r0, [sp, 0x14]
+ ldr r0, _080FBDB4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _080FBD42
+ ldr r0, _080FBDB8
+ str r0, [sp, 0x18]
+ ldr r0, _080FBDBC
+ str r0, [sp, 0x20]
+_080FBD42:
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080FBDC0
+ ldr r2, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080FBDC4
+ adds r1, r0
+ str r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBDCC
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDC8
+ b _080FBDEA
+ .align 2, 0
+_080FBD98: .4byte gUnknown_083E5C40
+_080FBD9C: .4byte gUnknown_083E5C20
+_080FBDA0: .4byte 0xffff0000
+_080FBDA4: .4byte gUnknown_083E7708
+_080FBDA8: .4byte gUnknown_083E7718
+_080FBDAC: .4byte gDummySpriteAffineAnimTable
+_080FBDB0: .4byte SpriteCallbackDummy
+_080FBDB4: .4byte gSaveBlock2
+_080FBDB8: .4byte gUnknown_083E5CE0
+_080FBDBC: .4byte gUnknown_083E5CC0
+_080FBDC0: .4byte gUnknown_020388CC
+_080FBDC4: .4byte gSprites
+_080FBDC8: .4byte sub_80FBF34
+_080FBDCC:
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDF4
+_080FBDEA:
+ str r0, [r1, 0x1C]
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBDF4: .4byte sub_80FBEA4
+ thumb_func_end sub_80FBCF0
+
+ thumb_func_start sub_80FBDF8
+sub_80FBDF8: @ 80FBDF8
+ push {lr}
+ ldr r3, _080FBE1C
+ ldr r0, [r3]
+ ldr r2, [r0, 0x20]
+ cmp r2, 0
+ beq _080FBE16
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, [r0, 0x20]
+ ldr r0, _080FBE20
+ str r0, [r1, 0x1C]
+_080FBE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBE1C: .4byte gUnknown_020388CC
+_080FBE20: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80FBDF8
+
+ thumb_func_start sub_80FBE24
+sub_80FBE24: @ 80FBE24
+ push {lr}
+ ldr r0, _080FBE5C
+ ldr r3, [r0]
+ ldr r1, [r3, 0x20]
+ cmp r1, 0
+ beq _080FBE9A
+ adds r0, r3, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FBE64
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBE60
+ b _080FBE8C
+ .align 2, 0
+_080FBE5C: .4byte gUnknown_020388CC
+_080FBE60: .4byte sub_80FBEA4
+_080FBE64:
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ movs r2, 0
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x24]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x26]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBEA0
+_080FBE8C:
+ str r0, [r1, 0x1C]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080FBE9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBEA0: .4byte sub_80FBF34
+ thumb_func_end sub_80FBE24
+
+ thumb_func_start sub_80FBEA4
+sub_80FBEA4: @ 80FBEA4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080FBF08
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r2, 1
+ negs r2, r2
+ strh r2, [r3, 0x24]
+ adds r1, 0x5E
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r3, 0x26]
+ ldrh r1, [r3, 0x22]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x20]
+ adds r1, r2
+ adds r2, r3, 0
+ adds r2, 0x28
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ strh r2, [r3, 0x30]
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB0
+ bhi _080FBF04
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r2, r0
+ blt _080FBF04
+ cmp r2, 0xF8
+ ble _080FBF0C
+_080FBF04:
+ movs r0, 0
+ b _080FBF0E
+ .align 2, 0
+_080FBF08: .4byte gUnknown_020388CC
+_080FBF0C:
+ movs r0, 0x1
+_080FBF0E:
+ strh r0, [r3, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080FBF20
+ adds r0, r3, 0
+ bl sub_80FBF40
+ b _080FBF2C
+_080FBF20:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080FBF2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBEA4
+
+ thumb_func_start sub_80FBF34
+sub_80FBF34: @ 80FBF34
+ push {lr}
+ bl sub_80FBF40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF34
+
+ thumb_func_start sub_80FBF40
+sub_80FBF40: @ 80FBF40
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FBF80
+ ldr r0, [r0]
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBF84
+ ldrh r0, [r2, 0x3C]
+ adds r0, 0x1
+ strh r0, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FBF90
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FBF90
+ .align 2, 0
+_080FBF80: .4byte gUnknown_020388CC
+_080FBF84:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080FBF90:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF40
+
+ thumb_func_start sub_80FBF94
+sub_80FBF94: @ 80FBF94
+ push {lr}
+ ldr r0, _080FBFB0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBFAA
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+_080FBFAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBFB0: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBF94
+
+ thumb_func_start sub_80FBFB4
+sub_80FBFB4: @ 80FBFB4
+ push {lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r1, 0x56
+ bne _080FBFCA
+ bl GetSecretBaseMapName
+ b _080FBFF2
+_080FBFCA:
+ cmp r1, 0x57
+ bhi _080FBFE4
+ ldr r0, _080FBFE0
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl StringCopy
+ b _080FBFF2
+ .align 2, 0
+_080FBFE0: .4byte gRegionMapLocations
+_080FBFE4:
+ cmp r2, 0
+ bne _080FBFEA
+ movs r2, 0x12
+_080FBFEA:
+ adds r0, r3, 0
+ movs r1, 0
+ bl StringFill
+_080FBFF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFB4
+
+ thumb_func_start sub_80FBFF8
+sub_80FBFF8: @ 80FBFF8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x56
+ beq _080FC014
+ cmp r1, 0x57
+ bne _080FC020
+ ldr r1, _080FC010
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC010: .4byte gOtherText_Ferry
+_080FC014:
+ ldr r1, _080FC01C
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC01C: .4byte gOtherText_SecretBase
+_080FC020:
+ movs r2, 0
+ bl sub_80FBFB4
+_080FC026:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFF8
+
+ thumb_func_start sub_80FC02C
+sub_80FC02C: @ 80FC02C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x42
+ beq _080FC03C
+ bl sub_80FBFF8
+ b _080FC042
+_080FC03C:
+ ldr r1, _080FC048
+ bl StringCopy
+_080FC042:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC048: .4byte gOtherText_Hideout
+ thumb_func_end sub_80FC02C
+
+ thumb_func_start sub_80FC04C
+sub_80FC04C: @ 80FC04C
+ push {r4,r5,lr}
+ ldr r5, [sp, 0xC]
+ lsls r0, 16
+ ldr r4, _080FC070
+ lsrs r0, 13
+ adds r0, r4
+ ldrb r4, [r0]
+ strh r4, [r1]
+ ldrb r1, [r0, 0x1]
+ strh r1, [r2]
+ ldrb r1, [r0, 0x2]
+ strh r1, [r3]
+ ldrb r0, [r0, 0x3]
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC070: .4byte gRegionMapLocations
+ thumb_func_end sub_80FC04C
+
+ thumb_func_start sub_80FC074
+sub_80FC074: @ 80FC074
+ push {r4,lr}
+ ldr r0, _080FC090
+ ldr r1, _080FC094
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080FC084
+ b _080FC1F2
+_080FC084:
+ lsls r0, 2
+ ldr r1, _080FC098
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC090: .4byte gMain
+_080FC094: .4byte 0x0000043c
+_080FC098: .4byte _080FC09C
+ .align 2, 0
+_080FC09C:
+ .4byte _080FC0C4
+ .4byte _080FC104
+ .4byte _080FC110
+ .4byte _080FC120
+ .4byte _080FC15C
+ .4byte _080FC170
+ .4byte _080FC184
+ .4byte _080FC1A4
+ .4byte _080FC1AA
+ .4byte _080FC1C4
+_080FC0C4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080FC1E6
+_080FC104:
+ ldr r0, _080FC10C
+ bl SetUpWindowConfig
+ b _080FC1E6
+ .align 2, 0
+_080FC10C: .4byte gWindowConfig_81E7224
+_080FC110:
+ ldr r0, _080FC11C
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080FC1E6
+ .align 2, 0
+_080FC11C: .4byte gWindowConfig_81E7224
+_080FC120:
+ ldr r4, _080FC158
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBB3C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ adds r1, r4, 0
+ subs r1, 0x8
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x6]
+ movs r2, 0xA4
+ lsls r2, 4
+ adds r4, r2
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl StringFill
+ bl sub_80FC254
+ b _080FC1E6
+ .align 2, 0
+_080FC158: .4byte 0x02000008
+_080FC15C:
+ ldr r0, _080FC168
+ ldr r1, _080FC16C
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC168: .4byte gUnknown_083E773C
+_080FC16C: .4byte 0x0600c000
+_080FC170:
+ ldr r0, _080FC17C
+ ldr r1, _080FC180
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC17C: .4byte gUnknown_083E7774
+_080FC180: .4byte 0x0600f000
+_080FC184:
+ ldr r0, _080FC19C
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080FC1A0
+ movs r1, 0x1
+ movs r2, 0x90
+ movs r3, 0x1
+ bl sub_80729D8
+ b _080FC1E6
+ .align 2, 0
+_080FC19C: .4byte gUnknown_083E771C
+_080FC1A0: .4byte gOtherText_FlyToWhere
+_080FC1A4:
+ bl sub_80FC31C
+ b _080FC1E6
+_080FC1AA:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, _080FC1C0
+ bl SetVBlankCallback
+ b _080FC1E6
+ .align 2, 0
+_080FC1C0: .4byte sub_80FC214
+_080FC1C4:
+ ldr r1, _080FC1F8
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x46
+ ldr r2, _080FC1FC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _080FC200
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080FC204
+ bl sub_80FC244
+ ldr r0, _080FC208
+ bl SetMainCallback2
+_080FC1E6:
+ ldr r1, _080FC20C
+ ldr r0, _080FC210
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FC1F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC1F8: .4byte REG_BLDCNT
+_080FC1FC: .4byte 0x00001e0d
+_080FC200: .4byte 0x00001741
+_080FC204: .4byte sub_80FC5B4
+_080FC208: .4byte sub_80FC228
+_080FC20C: .4byte gMain
+_080FC210: .4byte 0x0000043c
+ thumb_func_end sub_80FC074
+
+ thumb_func_start sub_80FC214
+sub_80FC214: @ 80FC214
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC214
+
+ thumb_func_start sub_80FC228
+sub_80FC228: @ 80FC228
+ push {lr}
+ ldr r0, _080FC240
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC240: .4byte 0x02000000
+ thumb_func_end sub_80FC228
+
+ thumb_func_start sub_80FC244
+sub_80FC244: @ 80FC244
+ ldr r1, _080FC250
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080FC250: .4byte 0x02000000
+ thumb_func_end sub_80FC244
+
+ thumb_func_start sub_80FC254
+sub_80FC254: @ 80FC254
+ push {r4,r5,lr}
+ ldr r4, _080FC2AC
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC262
+ cmp r0, 0x4
+ bne _080FC2EC
+_080FC262:
+ movs r1, 0
+ ldr r2, _080FC2B0
+ adds r5, r4, 0
+_080FC268:
+ lsls r0, r1, 3
+ adds r4, r0, r2
+ ldrh r0, [r5, 0x1C]
+ ldrh r3, [r4, 0x4]
+ cmp r0, r3
+ bne _080FC2B4
+ ldrh r0, [r4, 0x6]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC2BE
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r0, [r5, 0x1F]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1D
+ movs r2, 0x11
+ bl sub_8072B4C
+ b _080FC310
+ .align 2, 0
+_080FC2AC: .4byte 0x02000000
+_080FC2B0: .4byte gUnknown_083E79C0
+_080FC2B4:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080FC268
+_080FC2BE:
+ movs r0, 0
+ cmp r0, 0
+ bne _080FC310
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _080FC2E8
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ b _080FC310
+ .align 2, 0
+_080FC2E8: .4byte 0x02000008
+_080FC2EC:
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080FC318
+ adds r0, r4, r1
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080FC310:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC318: .4byte 0x00000a48
+ thumb_func_end sub_80FC254
+
+ thumb_func_start sub_80FC31C
+sub_80FC31C: @ 80FC31C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080FC360
+ ldr r4, _080FC364
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldr r1, _080FC368
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _080FC36C
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080FC370
+ bl LoadSpritePalette
+ bl sub_80FC374
+ bl sub_80FC484
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC360: .4byte gUnknown_083E784C
+_080FC364: .4byte 0x02000888
+_080FC368: .4byte 0xffff0000
+_080FC36C: .4byte 0x0000ffff
+_080FC370: .4byte gUnknown_083E79CC
+ thumb_func_end sub_80FC31C
+
+ thumb_func_start sub_80FC374
+sub_80FC374: @ 80FC374
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _080FC3D4
+ str r0, [sp, 0xC]
+ movs r1, 0
+ mov r9, r1
+ mov r2, sp
+ adds r2, 0x6
+ str r2, [sp, 0x14]
+ mov r3, sp
+ adds r3, 0xA
+ str r3, [sp, 0x18]
+ mov r0, sp
+ adds r0, 0x8
+ str r0, [sp, 0x10]
+ add r1, sp, 0x4
+ mov r10, r1
+_080FC39E:
+ ldr r2, [sp, 0x18]
+ str r2, [sp]
+ mov r0, r9
+ add r1, sp, 0x4
+ mov r2, sp
+ adds r2, 0x6
+ ldr r3, [sp, 0x10]
+ bl sub_80FC04C
+ mov r3, r10
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3]
+ mov r1, sp
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x2
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x6]
+ ldr r2, [sp, 0x10]
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bne _080FC3D8
+ movs r7, 0x1
+ b _080FC3E4
+ .align 2, 0
+_080FC3D4: .4byte 0x0000080f
+_080FC3D8:
+ ldr r3, [sp, 0x18]
+ ldrh r0, [r3]
+ movs r7, 0
+ cmp r0, 0x2
+ bne _080FC3E4
+ movs r7, 0x2
+_080FC3E4:
+ mov r0, r10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, [sp, 0x14]
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _080FC430
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080FC458
+ ldr r1, _080FC434
+ mov r8, r1
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r6, r0, 2
+ adds r2, r6, r1
+ lsls r3, r7, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldr r0, [sp, 0xC]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC43C
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080FC438
+ str r1, [r0]
+ b _080FC442
+ .align 2, 0
+_080FC430: .4byte gSpriteTemplate_83E7A38
+_080FC434: .4byte gSprites
+_080FC438: .4byte sub_80FC55C
+_080FC43C:
+ adds r0, r7, 0x3
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FC442:
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080FC480
+ adds r4, r0
+ lsls r1, r7, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ mov r2, r9
+ strh r2, [r4, 0x2E]
+_080FC458:
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0xF
+ bls _080FC39E
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC480: .4byte gSprites
+ thumb_func_end sub_80FC374
+
+ thumb_func_start sub_80FC484
+sub_80FC484: @ 80FC484
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080FC54C
+ ldrh r0, [r6, 0x2]
+ cmp r0, 0x58
+ beq _080FC53C
+ mov r5, sp
+ adds r5, 0x6
+ add r7, sp, 0x4
+ ldr r1, _080FC550
+ mov r9, r1
+ movs r0, 0x1C
+ add r0, r9
+ mov r10, r0
+_080FC4AC:
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC524
+ adds r0, r6, 0x2
+ adds r0, r4, r0
+ ldrh r6, [r0]
+ mov r0, sp
+ adds r0, 0xA
+ str r0, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ add r3, sp, 0x8
+ bl sub_80FC04C
+ ldrh r0, [r7]
+ adds r0, 0x1
+ lsls r0, 3
+ strh r0, [r7]
+ ldrh r0, [r5]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r5]
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ ldr r0, _080FC554
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080FC524
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ mov r1, r9
+ adds r4, r2, r1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ add r2, r10
+ ldr r0, _080FC558
+ str r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+_080FC524:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r6, _080FC54C
+ lsls r0, 2
+ adds r1, r6, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FC4AC
+_080FC53C:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC54C: .4byte gUnknown_083E79D4
+_080FC550: .4byte gSprites
+_080FC554: .4byte gSpriteTemplate_83E7A38
+_080FC558: .4byte sub_80FC55C
+ thumb_func_end sub_80FC484
+
+ thumb_func_start sub_80FC55C
+sub_80FC55C: @ 80FC55C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FC59C
+ ldrh r1, [r0, 0x1C]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080FC5A0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FC5AE
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FC5AE
+ .align 2, 0
+_080FC59C: .4byte 0x02000000
+_080FC5A0:
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x15
+ ands r0, r1
+ strb r0, [r2]
+_080FC5AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC55C
+
+ thumb_func_start sub_80FC5B4
+sub_80FC5B4: @ 80FC5B4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC5C8
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC5CC
+ cmp r1, 0x1
+ beq _080FC5E4
+ b _080FC5F4
+ .align 2, 0
+_080FC5C8: .4byte 0x02000000
+_080FC5CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC5F4
+_080FC5E4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC5F4
+ ldr r0, _080FC5FC
+ bl sub_80FC244
+_080FC5F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC5FC: .4byte sub_80FC600
+ thumb_func_end sub_80FC5B4
+
+ thumb_func_start sub_80FC600
+sub_80FC600: @ 80FC600
+ push {r4,lr}
+ ldr r0, _080FC620
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080FC68A
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FC68A
+ lsls r0, 2
+ ldr r1, _080FC624
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC620: .4byte 0x02000000
+_080FC624: .4byte _080FC628
+ .align 2, 0
+_080FC628:
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC640
+ .4byte _080FC646
+ .4byte _080FC674
+_080FC640:
+ bl sub_80FC254
+ b _080FC68A
+_080FC646:
+ ldr r4, _080FC668
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC652
+ cmp r0, 0x4
+ bne _080FC68A
+_080FC652:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r1, _080FC66C
+ adds r0, r4, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080FC670
+ bl sub_80FC244
+ b _080FC68A
+ .align 2, 0
+_080FC668: .4byte 0x02000000
+_080FC66C: .4byte 0x00000a6e
+_080FC670: .4byte sub_80FC69C
+_080FC674:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r0, _080FC690
+ ldr r1, _080FC694
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FC698
+ bl sub_80FC244
+_080FC68A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC690: .4byte 0x02000000
+_080FC694: .4byte 0x00000a6e
+_080FC698: .4byte sub_80FC69C
+ thumb_func_end sub_80FC600
+
+ thumb_func_start sub_80FC69C
+sub_80FC69C: @ 80FC69C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC6B0
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC6B4
+ cmp r1, 0x1
+ beq _080FC6CC
+ b _080FC792
+ .align 2, 0
+_080FC6B0: .4byte 0x02000000
+_080FC6B4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC792
+_080FC6CC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC792
+ bl sub_80FAB10
+ ldr r1, _080FC6F4
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC78C
+ ldrh r0, [r4, 0x1C]
+ cmp r0, 0xF
+ beq _080FC724
+ cmp r0, 0xF
+ bgt _080FC6F8
+ cmp r0, 0
+ beq _080FC710
+ b _080FC748
+ .align 2, 0
+_080FC6F4: .4byte 0x00000a6e
+_080FC6F8:
+ cmp r0, 0x3A
+ beq _080FC708
+ cmp r0, 0x49
+ bne _080FC748
+ movs r0, 0x16
+ bl sub_8053538
+ b _080FC786
+_080FC708:
+ movs r0, 0x15
+ bl sub_8053538
+ b _080FC786
+_080FC710:
+ ldr r0, _080FC720
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xD
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0xC
+ b _080FC73A
+ .align 2, 0
+_080FC720: .4byte gSaveBlock2
+_080FC724:
+ ldr r0, _080FC744
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0xB
+ cmp r0, 0
+ beq _080FC73A
+ ldrb r0, [r4, 0x1F]
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0x14
+_080FC73A:
+ adds r0, r1, 0
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC744: .4byte 0x00000854
+_080FC748:
+ ldr r3, _080FC764
+ ldr r0, _080FC768
+ ldrh r1, [r0, 0x1C]
+ lsls r0, r1, 1
+ adds r2, r0, r1
+ adds r0, r3, 0x2
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FC76C
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC764: .4byte gUnknown_083E7920
+_080FC768: .4byte 0x02000000
+_080FC76C:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ bl warp1_set_2
+_080FC786:
+ bl sub_80865BC
+ b _080FC792
+_080FC78C:
+ ldr r0, _080FC79C
+ bl SetMainCallback2
+_080FC792:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC79C: .4byte sub_808AD58
+ thumb_func_end sub_80FC69C
+
+ thumb_func_start sub_80FC7A0
+sub_80FC7A0: @ 80FC7A0
+ push {lr}
+ ldr r2, _080FC7E8
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FC7EC
+ ldrb r1, [r0, 0x1F]
+ strb r1, [r2]
+ ldr r2, _080FC7F0
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FC7F4
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FC7F8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FC7FC
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FC800
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FC804
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrb r0, [r0]
+ subs r0, 0x2
+ cmp r0, 0x22
+ bls _080FC7DC
+ b _080FC928
+_080FC7DC:
+ lsls r0, 2
+ ldr r1, _080FC808
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC7E8: .4byte gUnknown_03005DEC
+_080FC7EC: .4byte gUnknown_03005E00
+_080FC7F0: .4byte gUnknown_03005DE8
+_080FC7F4: .4byte gUnknown_03005DFC
+_080FC7F8: .4byte gUnknown_03005DF8
+_080FC7FC: .4byte gUnknown_03005DF0
+_080FC800: .4byte gUnknown_03005E04
+_080FC804: .4byte gUnknown_03005DF4
+_080FC808: .4byte _080FC80C
+ .align 2, 0
+_080FC80C:
+ .4byte _080FC898
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8F8
+ .4byte _080FC928
+ .4byte _080FC89E
+ .4byte _080FC8A4
+ .4byte _080FC8B8
+ .4byte _080FC8CA
+ .4byte _080FC928
+ .4byte _080FC8E0
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8E6
+ .4byte _080FC8C4
+ .4byte _080FC8EC
+ .4byte _080FC8F2
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC904
+_080FC898:
+ bl sub_80FCAA4
+ b _080FC928
+_080FC89E:
+ bl sub_80FCB5C
+ b _080FC928
+_080FC8A4:
+ bl sub_80FCD54
+ ldr r0, _080FC8B4
+ ldrb r0, [r0]
+ bl sub_80FCC18
+ b _080FC928
+ .align 2, 0
+_080FC8B4: .4byte gUnknown_03005E00
+_080FC8B8:
+ bl sub_80FCD54
+ bl sub_80FCEA4
+ bl sub_80FCCBC
+_080FC8C4:
+ bl sub_80FCEA4
+ b _080FC928
+_080FC8CA:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ b _080FC928
+_080FC8E0:
+ bl sub_80FCF3C
+ b _080FC928
+_080FC8E6:
+ bl sub_80FCD54
+ b _080FC928
+_080FC8EC:
+ bl sub_80FD06C
+ b _080FC928
+_080FC8F2:
+ bl sub_80FD114
+ b _080FC928
+_080FC8F8:
+ bl sub_80FCAC4
+ movs r0, 0x3
+ bl sub_80FC92C
+ b _080FC928
+_080FC904:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ bl sub_80FCB5C
+ bl sub_80FCB5C
+ movs r0, 0x2
+ bl sub_80FC92C
+ movs r0, 0x4
+ bl sub_80FC9E4
+_080FC928:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC7A0
+
+ thumb_func_start sub_80FC92C
+sub_80FC92C: @ 80FC92C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0
+ ldr r0, _080FC9CC
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FC9BE
+ ldr r1, _080FC9D0
+ mov r12, r1
+ ldr r3, _080FC9D4
+ mov r10, r3
+ ldr r0, _080FC9D8
+ mov r9, r0
+_080FC952:
+ ldr r1, _080FC9DC
+ ldrb r0, [r1]
+ adds r0, r2
+ mov r3, r10
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FC9E0
+ ldr r1, [r3]
+ adds r1, r0
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r4, 0
+ adds r5, r2, 0x1
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080FC9B2
+ movs r6, 0x80
+ lsls r6, 8
+_080FC97E:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FC9A2
+ movs r0, 0x1F
+ ands r0, r1
+ adds r0, r7
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _080FC998
+ movs r2, 0x1F
+_080FC998:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FC9A2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, 0x2
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcc _080FC97E
+_080FC9B2:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ mov r3, r8
+ ldrb r3, [r3]
+ cmp r2, r3
+ bcc _080FC952
+_080FC9BE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC9CC: .4byte gUnknown_03005DF0
+_080FC9D0: .4byte gUnknown_03005DF8
+_080FC9D4: .4byte gUnknown_03005E04
+_080FC9D8: .4byte gUnknown_03005DE8
+_080FC9DC: .4byte gUnknown_03005DFC
+_080FC9E0: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FC92C
+
+ thumb_func_start sub_80FC9E4
+sub_80FC9E4: @ 80FC9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCA8C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCA7C
+ ldr r1, _080FCA90
+ mov r10, r1
+_080FCA02:
+ ldr r3, _080FCA94
+ ldrb r0, [r3]
+ adds r0, r2
+ ldr r3, _080FCA98
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FCA9C
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r3, _080FCAA0
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r5, 0
+ adds r7, r2, 0x1
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FCA70
+ movs r1, 0x80
+ lsls r1, 8
+ mov r9, r1
+ movs r0, 0x1F
+ mov r12, r0
+ mov r1, r8
+ subs r6, r0, r1
+_080FCA38:
+ ldrh r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCA60
+ movs r4, 0x1F
+ mov r2, r12
+ ands r2, r1
+ cmp r2, r6
+ ble _080FCA56
+ mov r1, r8
+ lsrs r0, r1, 1
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FCA56:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FCA60:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, 0x2
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FCA38
+_080FCA70:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FCA8C
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcc _080FCA02
+_080FCA7C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCA8C: .4byte gUnknown_03005DF0
+_080FCA90: .4byte gUnknown_03005DF8
+_080FCA94: .4byte gUnknown_03005DFC
+_080FCA98: .4byte gUnknown_03005E04
+_080FCA9C: .4byte gUnknown_03005DEC
+_080FCAA0: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FC9E4
+
+ thumb_func_start sub_80FCAA4
+sub_80FCAA4: @ 80FCAA4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080FCAC0
+_080FCAAA:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80FD1C8
+ adds r4, 0x1
+ cmp r4, r5
+ bls _080FCAAA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAC0: .4byte 0x00000c7f
+ thumb_func_end sub_80FCAA4
+
+ thumb_func_start sub_80FCAC4
+sub_80FCAC4: @ 80FCAC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCB44
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCB36
+ ldr r0, _080FCB48
+ mov r8, r0
+ ldr r3, _080FCB4C
+_080FCADC:
+ ldr r0, _080FCB50
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCB54
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCB58
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCB2A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCB08:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCB1C
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD39C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCB1C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCB08
+_080FCB2A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCB44
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCADC
+_080FCB36:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCB44: .4byte gUnknown_03005DF0
+_080FCB48: .4byte gUnknown_03005DEC
+_080FCB4C: .4byte gUnknown_03005DF8
+_080FCB50: .4byte gUnknown_03005DFC
+_080FCB54: .4byte gUnknown_03005E04
+_080FCB58: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCAC4
+
+ thumb_func_start sub_80FCB5C
+sub_80FCB5C: @ 80FCB5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FCC00
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCBF2
+ ldr r0, _080FCC04
+ mov r8, r0
+ ldr r3, _080FCC08
+_080FCB74:
+ ldr r0, _080FCC0C
+ ldrb r1, [r0]
+ ldrb r0, [r3]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCC10
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, r2, 0x1
+ cmp r5, r0
+ bge _080FCBE6
+ ldr r6, _080FCC08
+_080FCBAA:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCBD0
+ ldrb r2, [r6]
+ lsls r2, 1
+ adds r2, r4, r2
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD68C
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r3, [sp, 0x4]
+_080FCBD0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FCBAA
+_080FCBE6:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCC00
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCB74
+_080FCBF2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCC00: .4byte gUnknown_03005DF8
+_080FCC04: .4byte gUnknown_03005DEC
+_080FCC08: .4byte gUnknown_03005E04
+_080FCC0C: .4byte gUnknown_03005DFC
+_080FCC10: .4byte gUnknown_03005DE8
+_080FCC14: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FCB5C
+
+ thumb_func_start sub_80FCC18
+sub_80FCC18: @ 80FCC18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCCA4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCC94
+ ldr r0, _080FCCA8
+ mov r9, r0
+ ldr r3, _080FCCAC
+_080FCC38:
+ ldr r0, _080FCCB0
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCCB4
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r9
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCCB8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCC88
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCC64:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCC7A
+ adds r0, r4, 0
+ mov r1, r8
+ str r3, [sp]
+ bl sub_80FD3D0
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCC7A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCC64
+_080FCC88:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCCA4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCC38
+_080FCC94:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCCA4: .4byte gUnknown_03005DF0
+_080FCCA8: .4byte gUnknown_03005DEC
+_080FCCAC: .4byte gUnknown_03005DF8
+_080FCCB0: .4byte gUnknown_03005DFC
+_080FCCB4: .4byte gUnknown_03005E04
+_080FCCB8: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCC18
+
+ thumb_func_start sub_80FCCBC
+sub_80FCCBC: @ 80FCCBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCD3C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCD2E
+ ldr r0, _080FCD40
+ mov r8, r0
+ ldr r3, _080FCD44
+_080FCCD4:
+ ldr r0, _080FCD48
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCD4C
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCD50
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCD22
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCD00:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCD14
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD4DC
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCD14:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCD00
+_080FCD22:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCD3C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCCD4
+_080FCD2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCD3C: .4byte gUnknown_03005DF0
+_080FCD40: .4byte gUnknown_03005DEC
+_080FCD44: .4byte gUnknown_03005DF8
+_080FCD48: .4byte gUnknown_03005DFC
+_080FCD4C: .4byte gUnknown_03005E04
+_080FCD50: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCCBC
+
+ thumb_func_start sub_80FCD54
+sub_80FCD54: @ 80FCD54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080FCDE0
+ ldr r0, _080FCE90
+ mov r8, r0
+_080FCD6A:
+ ldr r0, _080FCE94
+ ldrb r1, [r0]
+ adds r1, r7
+ ldr r0, _080FCE98
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FCE9C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r5, r1, r0
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r6, 0x1
+ adds r5, r4, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, 0x1
+ cmp r6, r0
+ bge _080FCDCA
+_080FCDA2:
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080FCDA2
+_080FCDCA:
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080FCD6A
+_080FCDE0:
+ movs r6, 0
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080FCE80
+ ldr r3, _080FCE90
+ mov r9, r3
+ ldr r0, _080FCE98
+ mov r8, r0
+_080FCDF2:
+ ldr r0, _080FCE94
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r9
+ ldr r2, [r3]
+ adds r2, r0
+ ldr r0, _080FCE9C
+ ldrb r0, [r0]
+ adds r0, r6
+ lsls r0, 1
+ adds r5, r2, r0
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r7, 0x1
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, 0x1
+ cmp r7, r0
+ bge _080FCE64
+ ldr r4, _080FCE98
+_080FCE32:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ ldrb r1, [r4]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _080FCE32
+_080FCE64:
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ ldr r0, _080FCEA0
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080FCDF2
+_080FCE80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE8C: .4byte gUnknown_03005DF0
+_080FCE90: .4byte gUnknown_03005DEC
+_080FCE94: .4byte gUnknown_03005DFC
+_080FCE98: .4byte gUnknown_03005E04
+_080FCE9C: .4byte gUnknown_03005DE8
+_080FCEA0: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FCD54
+
+ thumb_func_start sub_80FCEA4
+sub_80FCEA4: @ 80FCEA4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCF24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCF16
+ ldr r0, _080FCF28
+ mov r8, r0
+ ldr r3, _080FCF2C
+_080FCEBC:
+ ldr r0, _080FCF30
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCF34
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCF38
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCF0A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCEE8:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCEFC
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD53C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCEFC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCEE8
+_080FCF0A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCF24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCEBC
+_080FCF16:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCF24: .4byte gUnknown_03005DF0
+_080FCF28: .4byte gUnknown_03005DEC
+_080FCF2C: .4byte gUnknown_03005DF8
+_080FCF30: .4byte gUnknown_03005DFC
+_080FCF34: .4byte gUnknown_03005E04
+_080FCF38: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCEA4
+
+ thumb_func_start sub_80FCF3C
+sub_80FCF3C: @ 80FCF3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080FD068
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ adds r5, r0, 0
+_080FCF54:
+ movs r7, 0
+_080FCF56:
+ ldrh r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ bne _080FCF66
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FCF66:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FCF56
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FCF54
+ movs r7, 0
+ ldr r1, _080FD068
+ mov r10, r1
+ mov r3, sp
+ movs r2, 0x80
+ lsls r2, 8
+ mov r9, r2
+_080FCF8A:
+ lsls r0, r7, 1
+ mov r2, r10
+ ldr r1, [r2]
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ strh r1, [r3]
+ mov r1, r9
+ strh r1, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ adds r5, r0, 0
+_080FCFA0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r0, r2
+ cmp r0, 0
+ bne _080FCFC0
+ adds r2, r4, 0
+ adds r2, 0x80
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FCFC0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x80
+ cmp r6, 0x3E
+ bls _080FCFA0
+ mov r0, r9
+ strh r0, [r4]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0, r5
+ ldrh r0, [r4]
+ strh r0, [r3]
+ mov r2, r9
+ strh r2, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FCFE8:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ adds r5, r4, 0
+ adds r5, 0x80
+ cmp r0, 0
+ bne _080FD008
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FD008:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r5, 0
+ cmp r6, 0x3E
+ bls _080FCFE8
+ mov r2, r9
+ strh r2, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3F
+ bls _080FCF8A
+ ldr r0, _080FD068
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FD02E:
+ movs r7, 0
+ adds r5, r6, 0x1
+_080FD032:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD044
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FD044:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FD032
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FD02E
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD068: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FCF3C
+
+ thumb_func_start sub_80FD06C
+sub_80FD06C: @ 80FD06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FD0FC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD0EE
+ ldr r0, _080FD100
+ mov r8, r0
+_080FD082:
+ ldr r0, _080FD104
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FD108
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD10C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ adds r4, 0x2
+ ldr r0, _080FD110
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD0E2
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FD0BA:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FD0D0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+_080FD0D0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FD110
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD0BA
+_080FD0E2:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD0FC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD082
+_080FD0EE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD0FC: .4byte gUnknown_03005DF0
+_080FD100: .4byte gUnknown_03005DEC
+_080FD104: .4byte gUnknown_03005DFC
+_080FD108: .4byte gUnknown_03005E04
+_080FD10C: .4byte gUnknown_03005DE8
+_080FD110: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FD06C
+
+ thumb_func_start sub_80FD114
+sub_80FD114: @ 80FD114
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FD1B0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD1A2
+ ldr r0, _080FD1B4
+ mov r8, r0
+ ldr r7, _080FD1B8
+_080FD12C:
+ ldr r0, _080FD1BC
+ ldrb r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD1C0
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD196
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FD166:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080FD180
+ mov r0, sp
+ adds r1, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r2, [sp, 0x4]
+_080FD180:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD166
+_080FD196:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD1B0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD12C
+_080FD1A2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD1B0: .4byte gUnknown_03005DF8
+_080FD1B4: .4byte gUnknown_03005DEC
+_080FD1B8: .4byte gUnknown_03005E04
+_080FD1BC: .4byte gUnknown_03005DFC
+_080FD1C0: .4byte gUnknown_03005DE8
+_080FD1C4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FD114
+
+ thumb_func_start sub_80FD1C8
+sub_80FD1C8: @ 80FD1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r2, sp
+ ldr r3, _080FD234
+ lsls r1, r0, 1
+ add r1, r10
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ mov r5, sp
+ adds r0, r3, 0x2
+ adds r1, r0
+ ldrb r4, [r1]
+ lsls r2, r4, 24
+ lsrs r1, r2, 27
+ movs r0, 0x7
+ ands r1, r0
+ strh r1, [r5, 0x2]
+ lsrs r2, 25
+ mov r9, r2
+ movs r0, 0x3
+ ands r2, r0
+ mov r9, r2
+ movs r5, 0x1
+ ands r5, r4
+ movs r4, 0x1
+ mov r8, r4
+ cmp r8, r1
+ bcs _080FD27A
+ mov r3, sp
+_080FD21A:
+ cmp r5, 0
+ bne _080FD238
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ mov r4, r8
+ subs r0, r4
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ add r0, r8
+ b _080FD24A
+ .align 2, 0
+_080FD234: .4byte gUnknown_083E7A50
+_080FD238:
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+_080FD24A:
+ strb r0, [r1, 0x1]
+ add r2, sp
+ ldrb r0, [r2]
+ cmp r0, 0x3F
+ bhi _080FD25A
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3F
+ bls _080FD262
+_080FD25A:
+ mov r0, r8
+ subs r0, 0x1
+ strh r0, [r3, 0x2]
+ b _080FD27A
+_080FD262:
+ ldrh r0, [r3, 0x2]
+ mov r1, r8
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r3, 0x2]
+ cmp r8, r0
+ bcc _080FD21A
+_080FD27A:
+ movs r2, 0
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcc _080FD288
+ b _080FD38A
+_080FD288:
+ movs r3, 0x1F
+_080FD28A:
+ ldr r1, _080FD2E8
+ mov r4, r8
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r6, r2, r0
+ ldrb r0, [r6, 0x1]
+ lsls r0, 7
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD376
+ movs r7, 0x1F
+ ands r7, r1
+ lsls r0, r1, 16
+ lsrs r5, r0, 21
+ ands r5, r3
+ lsrs r4, r0, 26
+ ands r4, r3
+ mov r0, r9
+ cmp r0, 0
+ blt _080FD36C
+ cmp r0, 0x1
+ ble _080FD2EC
+ cmp r0, 0x3
+ bgt _080FD36C
+ ldrh r0, [r6, 0x2]
+ adds r1, r7, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r1, r5, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r7, 0x1F
+ bls _080FD360
+ movs r7, 0x1F
+ b _080FD360
+ .align 2, 0
+_080FD2E8: .4byte gUnknown_03005DEC
+_080FD2EC:
+ mov r1, r10
+ lsls r0, r1, 1
+ add r0, r10
+ ldr r1, _080FD320
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r0, 3
+ movs r1, 0x7
+ ands r0, r1
+ movs r1, 0x3
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _080FD33C
+ cmp r0, 0x1
+ bgt _080FD324
+ cmp r0, 0
+ beq _080FD32A
+ b _080FD36C
+ .align 2, 0
+_080FD320: .4byte gUnknown_083E7A50
+_080FD324:
+ cmp r0, 0x2
+ beq _080FD34E
+ b _080FD36C
+_080FD32A:
+ ldrh r0, [r6, 0x2]
+ cmp r7, r0
+ bcc _080FD338
+ subs r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FD36C
+_080FD338:
+ movs r7, 0
+ b _080FD36C
+_080FD33C:
+ ldrh r0, [r6, 0x2]
+ cmp r5, r0
+ bcc _080FD34A
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080FD36C
+_080FD34A:
+ movs r5, 0
+ b _080FD36C
+_080FD34E:
+ ldrh r0, [r6, 0x2]
+ cmp r4, r0
+ bcc _080FD35C
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080FD36C
+_080FD35C:
+ movs r4, 0
+ b _080FD36C
+_080FD360:
+ cmp r5, 0x1F
+ bls _080FD366
+ movs r5, 0x1F
+_080FD366:
+ cmp r4, 0x1F
+ bls _080FD36C
+ movs r4, 0x1F
+_080FD36C:
+ lsls r0, r4, 10
+ lsls r1, r5, 5
+ orrs r0, r1
+ orrs r7, r0
+ strh r7, [r2]
+_080FD376:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcs _080FD38A
+ b _080FD28A
+_080FD38A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD1C8
+
+ thumb_func_start sub_80FD39C
+sub_80FD39C: @ 80FD39C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 10
+ lsls r2, r1, 5
+ orrs r0, r2
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD39C
+
+ thumb_func_start sub_80FD3D0
+sub_80FD3D0: @ 80FD3D0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD400
+ cmp r3, 0x10
+ bhi _080FD400
+ cmp r0, 0x10
+ bhi _080FD400
+ adds r0, r4, 0
+ bl sub_80FD40C
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD402
+_080FD400:
+ ldr r0, _080FD408
+_080FD402:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD408: .4byte 0x00007fff
+ thumb_func_end sub_80FD3D0
+
+ thumb_func_start sub_80FD40C
+sub_80FD40C: @ 80FD40C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FD4C4
+ lsls r0, 2
+ ldr r1, _080FD450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FD450: .4byte _080FD454
+ .align 2, 0
+_080FD454:
+ .4byte _080FD46C
+ .4byte _080FD47C
+ .4byte _080FD48C
+ .4byte _080FD49A
+ .4byte _080FD4A8
+ .4byte _080FD4B6
+_080FD46C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r6, 0
+ movs r1, 0
+ mov r8, r1
+ b _080FD4C4
+_080FD47C:
+ movs r7, 0
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r6, r8
+ b _080FD4C4
+_080FD48C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r7
+ b _080FD4C4
+_080FD49A:
+ movs r7, 0
+ movs r6, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD4C2
+_080FD4A8:
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r6
+ b _080FD4C4
+_080FD4B6:
+ movs r7, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+_080FD4C2:
+ mov r8, r0
+_080FD4C4:
+ lsls r0, r7, 10
+ lsls r1, r6, 5
+ orrs r0, r1
+ mov r1, r8
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD40C
+
+ thumb_func_start sub_80FD4DC
+sub_80FD4DC: @ 80FD4DC
+ push {lr}
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD500
+ cmp r3, 0x10
+ bhi _080FD500
+ cmp r0, 0x10
+ bhi _080FD500
+ movs r0, 0
+ b _080FD502
+_080FD500:
+ ldr r0, _080FD508
+_080FD502:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD508: .4byte 0x00007fff
+ thumb_func_end sub_80FD4DC
+
+ thumb_func_start sub_80FD50C
+sub_80FD50C: @ 80FD50C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r3, [r4]
+ cmp r3, 0
+ beq _080FD534
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD526
+ adds r0, r2, 0
+ b _080FD536
+_080FD526:
+ ldrh r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD534
+ ldrh r0, [r4]
+ b _080FD536
+_080FD534:
+ movs r0, 0
+_080FD536:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD50C
+
+ thumb_func_start sub_80FD53C
+sub_80FD53C: @ 80FD53C
+ push {r4,lr}
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ movs r3, 0x1F
+ ands r3, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ lsrs r1, 26
+ subs r3, r0, r3
+ adds r4, r0, 0
+ bics r4, r2
+ adds r2, r4, 0
+ bics r0, r1
+ lsls r0, 10
+ lsls r2, 5
+ orrs r0, r2
+ orrs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD53C
+
+ thumb_func_start sub_80FD568
+sub_80FD568: @ 80FD568
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r1, 0
+ ldrh r4, [r0]
+ ldrh r5, [r7]
+ lsls r6, r4, 16
+ lsls r0, r5, 16
+ mov r12, r0
+ cmp r4, r5
+ beq _080FD5DA
+ mov r2, sp
+ movs r3, 0x1F
+ movs r1, 0x1F
+ adds r0, r1, 0
+ ands r0, r4
+ strh r0, [r2]
+ lsrs r0, r6, 21
+ ands r0, r3
+ strh r0, [r2, 0x2]
+ lsrs r0, r6, 26
+ ands r0, r3
+ strh r0, [r2, 0x4]
+ mov r0, sp
+ ands r1, r5
+ strh r1, [r0, 0x6]
+ mov r1, sp
+ mov r2, r12
+ lsrs r0, r2, 21
+ ands r0, r3
+ strh r0, [r1, 0x8]
+ lsrs r0, r2, 26
+ ands r0, r3
+ strh r0, [r1, 0xA]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x19
+ bhi _080FD5DA
+_080FD5C2:
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x19
+ bls _080FD5DE
+_080FD5DA:
+ ldrh r0, [r7]
+ b _080FD684
+_080FD5DE:
+ movs r4, 0
+ add r6, sp, 0xC
+ mov r7, sp
+ adds r7, 0x6
+ adds r5, r6, 0
+_080FD5E8:
+ lsls r2, r4, 1
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r7, r2
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ cmp r3, r0
+ bls _080FD5FE
+ adds r1, r5, r2
+ subs r0, r3, r0
+ b _080FD602
+_080FD5FE:
+ adds r1, r5, r2
+ subs r0, r3
+_080FD602:
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080FD5E8
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r1]
+ cmp r3, r0
+ bcc _080FD628
+ ldrh r2, [r1, 0x4]
+ cmp r3, r2
+ bcc _080FD622
+ adds r2, r3, 0
+ b _080FD63C
+_080FD622:
+ cmp r0, r2
+ bcs _080FD62E
+ b _080FD636
+_080FD628:
+ ldrh r2, [r1, 0x4]
+ cmp r0, r2
+ bcc _080FD632
+_080FD62E:
+ ldrh r2, [r1, 0x2]
+ b _080FD63C
+_080FD632:
+ cmp r2, r3
+ bcc _080FD63A
+_080FD636:
+ ldrh r2, [r1, 0x4]
+ b _080FD63C
+_080FD63A:
+ ldrh r2, [r6]
+_080FD63C:
+ mov r0, sp
+ ldrh r1, [r0, 0x6]
+ lsrs r0, r2, 1
+ movs r6, 0x1F
+ subs r6, r0
+ adds r0, r1, 0
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ lsls r4, 5
+ orrs r0, r4
+ orrs r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+_080FD684:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD568
+
+ thumb_func_start sub_80FD68C
+sub_80FD68C: @ 80FD68C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD6B4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD6B4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD79C
+_080FD6B4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD736
+ cmp r1, r6
+ bne _080FD736
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD79C
+_080FD736:
+ cmp r7, r6
+ bls _080FD73E
+ subs r0, r7, r6
+ b _080FD740
+_080FD73E:
+ subs r0, r6, r7
+_080FD740:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD74C
+ subs r0, r1, r6
+ b _080FD74E
+_080FD74C:
+ subs r0, r6, r1
+_080FD74E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD758
+ adds r0, r2, 0
+_080FD758:
+ lsrs r0, 1
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD79C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD68C
+
+ thumb_func_start sub_80FD7AC
+sub_80FD7AC: @ 80FD7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD7D4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD7D4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD8BA
+_080FD7D4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD856
+ cmp r1, r6
+ bne _080FD856
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD8BA
+_080FD856:
+ cmp r7, r6
+ bls _080FD85E
+ subs r0, r7, r6
+ b _080FD860
+_080FD85E:
+ subs r0, r6, r7
+_080FD860:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD86C
+ subs r0, r1, r6
+ b _080FD86E
+_080FD86C:
+ subs r0, r6, r1
+_080FD86E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD878
+ adds r0, r2, 0
+_080FD878:
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD8BA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD7AC
+
+ thumb_func_start sub_80FD8CC
+sub_80FD8CC: @ 80FD8CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldrb r1, [r0, 0x1D]
+ lsrs r5, r1, 3
+ ldrb r1, [r0, 0x1E]
+ lsrs r1, 3
+ str r1, [sp, 0x8]
+ ldr r1, [r0, 0x4]
+ str r1, [sp]
+ ldr r2, [r0, 0x10]
+ str r2, [sp, 0x4]
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0x2
+ bne _080FD97C
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcc _080FD8FA
+ b _080FDA08
+_080FD8FA:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD96E
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD90E:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 6
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD91E:
+ lsls r0, r4, 3
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r0, [r2, 0x2]
+ lsls r0, 8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x6]
+ lsls r0, 8
+ ldrh r1, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r2, 0xE]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD91E
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD90E
+_080FD96E:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD8FA
+ b _080FDA08
+_080FD97C:
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcs _080FDA08
+_080FD984:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD9FC
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD998:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 5
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD9A8:
+ lsls r0, r4, 2
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r1, [r2, 0x2]
+ lsls r1, 4
+ ldrh r0, [r2]
+ orrs r1, r0
+ ldrh r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0x6]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3]
+ ldrh r1, [r2, 0xA]
+ lsls r1, 4
+ ldrh r0, [r2, 0x8]
+ orrs r1, r0
+ ldrh r0, [r2, 0xC]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0xE]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD9A8
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD998
+_080FD9FC:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD984
+_080FDA08:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD8CC
+
+ thumb_func_start sub_80FDA18
+sub_80FDA18: @ 80FDA18
+ push {lr}
+ ldr r2, _080FDA68
+ ldrb r1, [r0, 0x18]
+ lsls r1, 4
+ strh r1, [r2]
+ ldr r3, _080FDA6C
+ ldrh r2, [r2]
+ lsls r2, 1
+ ldr r1, [r0, 0x8]
+ adds r1, r2
+ str r1, [r3]
+ ldr r2, _080FDA70
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FDA74
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FDA78
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FDA7C
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FDA80
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FDA84
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FDA88
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrh r0, [r0, 0x14]
+ cmp r0, 0x5
+ bhi _080FDADE
+ lsls r0, 2
+ ldr r1, _080FDA8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDA68: .4byte gUnknown_03005E0C
+_080FDA6C: .4byte gUnknown_03005E08
+_080FDA70: .4byte gUnknown_03005DEC
+_080FDA74: .4byte gUnknown_03005DE8
+_080FDA78: .4byte gUnknown_03005DFC
+_080FDA7C: .4byte gUnknown_03005DF8
+_080FDA80: .4byte gUnknown_03005DF0
+_080FDA84: .4byte gUnknown_03005E04
+_080FDA88: .4byte gUnknown_03005DF4
+_080FDA8C: .4byte _080FDA90
+ .align 2, 0
+_080FDA90:
+ .4byte _080FDAA8
+ .4byte _080FDAB0
+ .4byte _080FDAB8
+ .4byte _080FDAC2
+ .4byte _080FDACC
+ .4byte _080FDAD6
+_080FDAA8:
+ movs r0, 0
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB0:
+ movs r0, 0x1
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB8:
+ bl sub_80FDAE4
+ bl sub_80FDF88
+ b _080FDADE
+_080FDAC2:
+ bl sub_80FDBE4
+ bl sub_80FDED8
+ b _080FDADE
+_080FDACC:
+ bl sub_80FDBA8
+ bl sub_80FDE28
+ b _080FDADE
+_080FDAD6:
+ bl sub_80FDB8C
+ bl sub_80FDD70
+_080FDADE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDA18
+
+ thumb_func_start sub_80FDAE4
+sub_80FDAE4: @ 80FDAE4
+ ldr r2, _080FDB4C
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldr r2, _080FDB50
+ adds r1, r2, 0
+ strh r1, [r0, 0x2]
+ ldr r2, _080FDB54
+ adds r1, r2, 0
+ strh r1, [r0, 0x4]
+ ldr r2, _080FDB58
+ adds r1, r2, 0
+ strh r1, [r0, 0x6]
+ ldr r2, _080FDB5C
+ adds r1, r2, 0
+ strh r1, [r0, 0x8]
+ ldr r2, _080FDB60
+ adds r1, r2, 0
+ strh r1, [r0, 0xA]
+ ldr r2, _080FDB64
+ adds r1, r2, 0
+ strh r1, [r0, 0xC]
+ ldr r2, _080FDB68
+ adds r1, r2, 0
+ strh r1, [r0, 0xE]
+ ldr r2, _080FDB6C
+ adds r1, r2, 0
+ strh r1, [r0, 0x10]
+ ldr r2, _080FDB70
+ adds r1, r2, 0
+ strh r1, [r0, 0x12]
+ ldr r2, _080FDB74
+ adds r1, r2, 0
+ strh r1, [r0, 0x14]
+ ldr r2, _080FDB78
+ adds r1, r2, 0
+ strh r1, [r0, 0x16]
+ ldr r2, _080FDB7C
+ adds r1, r2, 0
+ strh r1, [r0, 0x18]
+ ldr r2, _080FDB80
+ adds r1, r2, 0
+ strh r1, [r0, 0x1A]
+ ldr r2, _080FDB84
+ adds r1, r2, 0
+ strh r1, [r0, 0x1C]
+ ldr r2, _080FDB88
+ adds r1, r2, 0
+ strh r1, [r0, 0x1E]
+ bx lr
+ .align 2, 0
+_080FDB4C: .4byte gUnknown_03005E08
+_080FDB50: .4byte 0x000018c6
+_080FDB54: .4byte 0x000077bd
+_080FDB58: .4byte 0x00002d6b
+_080FDB5C: .4byte 0x000018dd
+_080FDB60: .4byte 0x00001ba6
+_080FDB64: .4byte 0x000074c6
+_080FDB68: .4byte 0x00001bbd
+_080FDB6C: .4byte 0x000074dd
+_080FDB70: .4byte 0x000077a6
+_080FDB74: .4byte 0x0000197d
+_080FDB78: .4byte 0x00001bab
+_080FDB7C: .4byte 0x00007566
+_080FDB80: .4byte 0x00002cdd
+_080FDB84: .4byte 0x00002fa6
+_080FDB88: .4byte 0x000074cb
+ thumb_func_end sub_80FDAE4
+
+ thumb_func_start sub_80FDB8C
+sub_80FDB8C: @ 80FDB8C
+ ldr r2, _080FDBA0
+ ldr r0, [r2]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, [r2]
+ strh r1, [r2, 0x2]
+ ldr r1, _080FDBA4
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080FDBA0: .4byte gUnknown_03005E08
+_080FDBA4: .4byte 0x00007fff
+ thumb_func_end sub_80FDB8C
+
+ thumb_func_start sub_80FDBA8
+sub_80FDBA8: @ 80FDBA8
+ push {r4,r5,lr}
+ ldr r1, _080FDBE0
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, [r1]
+ strh r2, [r0, 0x2]
+ movs r4, 0
+ adds r5, r1, 0
+_080FDBBA:
+ ldr r0, [r5]
+ lsls r2, r4, 1
+ adds r2, r0
+ adds r0, r4, 0x2
+ lsls r3, r0, 1
+ lsls r1, r0, 11
+ lsls r0, 6
+ orrs r1, r0
+ orrs r1, r3
+ strh r1, [r2, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080FDBBA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDBE0: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBA8
+
+ thumb_func_start sub_80FDBE4
+sub_80FDBE4: @ 80FDBE4
+ push {r4,lr}
+ ldr r2, _080FDC14
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0
+ adds r4, r2, 0
+_080FDBF2:
+ ldr r0, [r4]
+ lsls r2, r3, 1
+ adds r2, r0
+ lsls r0, r3, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r3
+ strh r0, [r2, 0x2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _080FDBF2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDC14: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBE4
+
+ thumb_func_start sub_80FDC18
+sub_80FDC18: @ 80FDC18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ movs r1, 0xDF
+ mov r9, r1
+ cmp r0, 0
+ bne _080FDC30
+ movs r2, 0xFF
+ mov r9, r2
+_080FDC30:
+ movs r6, 0
+ ldr r3, _080FDCB4
+ mov r12, r3
+ mov r0, r9
+ lsls r4, r0, 1
+ ldr r5, _080FDCB8
+ cmp r6, r9
+ bcs _080FDC54
+ movs r2, 0
+_080FDC42:
+ ldr r0, [r3]
+ lsls r1, r6, 1
+ adds r1, r0
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r9
+ bcc _080FDC42
+_080FDC54:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldr r2, _080FDCBC
+ adds r1, r2, 0
+ strh r1, [r0]
+ movs r3, 0
+ ldrb r5, [r5]
+ cmp r3, r5
+ bcs _080FDD58
+_080FDC68:
+ ldr r2, _080FDCC0
+ ldr r0, _080FDCC4
+ ldrb r1, [r0]
+ adds r1, r3
+ ldr r0, _080FDCC8
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FDCCC
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDCD0
+ adds r2, r0, 0
+ adds r3, 0x1
+ mov r10, r3
+ ldrb r3, [r2]
+ cmp r6, r3
+ bcs _080FDD4A
+ ldr r0, _080FDCD4
+ mov r8, r0
+_080FDC98:
+ ldrh r0, [r4]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDCD8
+ mov r1, r8
+ ldrh r0, [r1]
+ strh r0, [r4]
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ b _080FDD3E
+ .align 2, 0
+_080FDCB4: .4byte gUnknown_03005E08
+_080FDCB8: .4byte gUnknown_03005DF0
+_080FDCBC: .4byte 0x00003def
+_080FDCC0: .4byte gUnknown_03005DEC
+_080FDCC4: .4byte gUnknown_03005DFC
+_080FDCC8: .4byte gUnknown_03005E04
+_080FDCCC: .4byte gUnknown_03005DE8
+_080FDCD0: .4byte gUnknown_03005DF8
+_080FDCD4: .4byte gUnknown_03005E0C
+_080FDCD8:
+ adds r0, r4, 0
+ bl sub_80FE038
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0x1
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ cmp r3, r9
+ bcs _080FDD34
+ ldr r0, _080FDD04
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ mov r12, r0
+ cmp r1, 0
+ bne _080FDD08
+ strh r5, [r2, 0x2]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080FDD32
+ .align 2, 0
+_080FDD04: .4byte gUnknown_03005E08
+_080FDD08:
+ mov r2, r12
+ ldr r1, [r2]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080FDD2C
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r9
+ bcs _080FDD34
+ lsls r0, r3, 1
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080FDD08
+ strh r5, [r1]
+_080FDD2C:
+ mov r1, r8
+ ldrh r0, [r1]
+ adds r0, r3
+_080FDD32:
+ strh r0, [r4]
+_080FDD34:
+ ldr r2, _080FDD68
+ cmp r3, r9
+ bne _080FDD3E
+ mov r3, r9
+ strh r3, [r4]
+_080FDD3E:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ adds r4, r7, 0
+ ldrb r0, [r2]
+ cmp r6, r0
+ bcc _080FDC98
+_080FDD4A:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ ldr r0, _080FDD6C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _080FDC68
+_080FDD58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDD68: .4byte gUnknown_03005DF8
+_080FDD6C: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDC18
+
+ thumb_func_start sub_80FDD70
+sub_80FDD70: @ 80FDD70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r2, 0
+ ldr r0, _080FDDC4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDE14
+ ldr r0, _080FDDC8
+ mov r8, r0
+_080FDD84:
+ ldr r0, _080FDDCC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDDD0
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDDD4
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDDD8
+ adds r3, r0, 0
+ adds r7, r2, 0x1
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcs _080FDE08
+ ldr r5, _080FDDDC
+_080FDDB0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDDE0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ b _080FDDFA
+ .align 2, 0
+_080FDDC4: .4byte gUnknown_03005DF0
+_080FDDC8: .4byte gUnknown_03005DEC
+_080FDDCC: .4byte gUnknown_03005DFC
+_080FDDD0: .4byte gUnknown_03005E04
+_080FDDD4: .4byte gUnknown_03005DE8
+_080FDDD8: .4byte gUnknown_03005DF8
+_080FDDDC: .4byte gUnknown_03005E0C
+_080FDDE0:
+ adds r0, r4, 0
+ bl sub_80FD4DC
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FDDF2
+ ldrh r0, [r5]
+ adds r0, 0x1
+ b _080FDDF6
+_080FDDF2:
+ ldrh r0, [r5]
+ adds r0, 0x2
+_080FDDF6:
+ strh r0, [r4]
+ ldr r3, _080FDE20
+_080FDDFA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcc _080FDDB0
+_080FDE08:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDE24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDD84
+_080FDE14:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDE20: .4byte gUnknown_03005DF8
+_080FDE24: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDD70
+
+ thumb_func_start sub_80FDE28
+sub_80FDE28: @ 80FDE28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDE7C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDEC4
+ ldr r0, _080FDE80
+ mov r8, r0
+_080FDE3E:
+ ldr r0, _080FDE84
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDE88
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDE8C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDE90
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDEB8
+ ldr r6, _080FDE94
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDE6E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDE98
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDEA8
+ .align 2, 0
+_080FDE7C: .4byte gUnknown_03005DF0
+_080FDE80: .4byte gUnknown_03005DEC
+_080FDE84: .4byte gUnknown_03005DFC
+_080FDE88: .4byte gUnknown_03005E04
+_080FDE8C: .4byte gUnknown_03005DE8
+_080FDE90: .4byte gUnknown_03005DF8
+_080FDE94: .4byte gUnknown_03005E0C
+_080FDE98:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE17C
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDEA8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDED0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDE6E
+_080FDEB8:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDED4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDE3E
+_080FDEC4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDED0: .4byte gUnknown_03005DF8
+_080FDED4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDE28
+
+ thumb_func_start sub_80FDED8
+sub_80FDED8: @ 80FDED8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDF2C
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDF74
+ ldr r0, _080FDF30
+ mov r8, r0
+_080FDEEE:
+ ldr r0, _080FDF34
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDF38
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDF3C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDF40
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDF68
+ ldr r6, _080FDF44
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDF1E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDF48
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDF58
+ .align 2, 0
+_080FDF2C: .4byte gUnknown_03005DF0
+_080FDF30: .4byte gUnknown_03005DEC
+_080FDF34: .4byte gUnknown_03005DFC
+_080FDF38: .4byte gUnknown_03005E04
+_080FDF3C: .4byte gUnknown_03005DE8
+_080FDF40: .4byte gUnknown_03005DF8
+_080FDF44: .4byte gUnknown_03005E0C
+_080FDF48:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE1B0
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDF58:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDF80
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDF1E
+_080FDF68:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDF84
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDEEE
+_080FDF74:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDF80: .4byte gUnknown_03005DF8
+_080FDF84: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDED8
+
+ thumb_func_start sub_80FDF88
+sub_80FDF88: @ 80FDF88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDFDC
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FE024
+ ldr r0, _080FDFE0
+ mov r8, r0
+_080FDF9E:
+ ldr r0, _080FDFE4
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDFE8
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDFEC
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDFF0
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FE018
+ ldr r6, _080FDFF4
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDFCE:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDFF8
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FE008
+ .align 2, 0
+_080FDFDC: .4byte gUnknown_03005DF0
+_080FDFE0: .4byte gUnknown_03005DEC
+_080FDFE4: .4byte gUnknown_03005DFC
+_080FDFE8: .4byte gUnknown_03005E04
+_080FDFEC: .4byte gUnknown_03005DE8
+_080FDFF0: .4byte gUnknown_03005DF8
+_080FDFF4: .4byte gUnknown_03005E0C
+_080FDFF8:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE0AC
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FE008:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FE030
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDFCE
+_080FE018:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FE034
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDF9E
+_080FE024:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE030: .4byte gUnknown_03005DF8
+_080FE034: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDF88
+
+ thumb_func_start sub_80FE038
+sub_80FE038: @ 80FE038
+ push {r4,lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r4, 0x1F
+ ands r4, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r1
+ lsrs r2, r0, 26
+ ands r2, r1
+ movs r1, 0x3
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE05C
+ movs r0, 0x1C
+ ands r0, r4
+ adds r4, r0, 0x4
+_080FE05C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE06A
+ movs r0, 0x1C
+ ands r0, r3
+ adds r3, r0, 0x4
+_080FE06A:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE078
+ movs r0, 0x1C
+ ands r0, r2
+ adds r2, r0, 0x4
+_080FE078:
+ cmp r4, 0x5
+ bhi _080FE07E
+ movs r4, 0x6
+_080FE07E:
+ cmp r4, 0x1E
+ bls _080FE084
+ movs r4, 0x1E
+_080FE084:
+ cmp r3, 0x5
+ bhi _080FE08A
+ movs r3, 0x6
+_080FE08A:
+ cmp r3, 0x1E
+ bls _080FE090
+ movs r3, 0x1E
+_080FE090:
+ cmp r2, 0x5
+ bhi _080FE096
+ movs r2, 0x6
+_080FE096:
+ cmp r2, 0x1E
+ bls _080FE09C
+ movs r2, 0x1E
+_080FE09C:
+ lsls r0, r2, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE038
+
+ thumb_func_start sub_80FE0AC
+sub_80FE0AC: @ 80FE0AC
+ push {lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r3, 0x1F
+ ands r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ ands r2, r1
+ lsrs r0, 26
+ ands r0, r1
+ cmp r3, 0xB
+ bhi _080FE0D0
+ cmp r2, 0xA
+ bhi _080FE0D0
+ cmp r0, 0xA
+ bhi _080FE0D0
+ movs r0, 0x1
+ b _080FE176
+_080FE0D0:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0DC
+ cmp r0, 0x13
+ bhi _080FE100
+_080FE0DC:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0EA
+ cmp r0, 0xE
+ bhi _080FE100
+ b _080FE138
+_080FE0EA:
+ cmp r0, 0x13
+ bls _080FE0F4
+ cmp r2, 0xE
+ bhi _080FE100
+ b _080FE114
+_080FE0F4:
+ cmp r2, 0x13
+ bls _080FE104
+ cmp r0, 0x13
+ bls _080FE104
+ cmp r3, 0xE
+ bls _080FE15C
+_080FE100:
+ movs r0, 0x2
+ b _080FE176
+_080FE104:
+ cmp r3, 0x13
+ bls _080FE128
+ cmp r2, 0xB
+ bls _080FE11C
+ cmp r0, 0xB
+ bls _080FE118
+ cmp r2, r0
+ bcs _080FE138
+_080FE114:
+ movs r0, 0x8
+ b _080FE176
+_080FE118:
+ movs r0, 0xA
+ b _080FE176
+_080FE11C:
+ cmp r0, 0xB
+ bls _080FE124
+ movs r0, 0xD
+ b _080FE176
+_080FE124:
+ movs r0, 0x4
+ b _080FE176
+_080FE128:
+ cmp r2, 0x13
+ bls _080FE14C
+ cmp r3, 0xB
+ bls _080FE140
+ cmp r0, 0xB
+ bls _080FE13C
+ cmp r3, r0
+ bcc _080FE15C
+_080FE138:
+ movs r0, 0x7
+ b _080FE176
+_080FE13C:
+ movs r0, 0xB
+ b _080FE176
+_080FE140:
+ cmp r0, 0xB
+ bls _080FE148
+ movs r0, 0xE
+ b _080FE176
+_080FE148:
+ movs r0, 0x5
+ b _080FE176
+_080FE14C:
+ cmp r0, 0x13
+ bls _080FE174
+ cmp r3, 0xB
+ bls _080FE160
+ cmp r2, 0xB
+ bls _080FE168
+ cmp r3, r2
+ bcs _080FE114
+_080FE15C:
+ movs r0, 0x9
+ b _080FE176
+_080FE160:
+ cmp r2, 0xB
+ bls _080FE168
+ movs r0, 0xC
+ b _080FE176
+_080FE168:
+ cmp r0, 0xB
+ bls _080FE170
+ movs r0, 0xF
+ b _080FE176
+_080FE170:
+ movs r0, 0x6
+ b _080FE176
+_080FE174:
+ movs r0, 0x3
+_080FE176:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE0AC
+
+ thumb_func_start sub_80FE17C
+sub_80FE17C: @ 80FE17C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x1E
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE1A8
+ lsrs r0, 17
+ b _080FE1AA
+_080FE1A8:
+ movs r0, 0x1
+_080FE1AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE17C
+
+ thumb_func_start sub_80FE1B0
+sub_80FE1B0: @ 80FE1B0
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE1B0
+
+ thumb_func_start sub_80FE1DC
+sub_80FE1DC: @ 80FE1DC
+ push {lr}
+ sub sp, 0x8
+ bl sub_80FE2B4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080FE218
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ ldr r0, _080FE21C
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE218: .4byte gUnknown_083EC604
+_080FE21C: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE1DC
+
+ thumb_func_start sub_80FE220
+sub_80FE220: @ 80FE220
+ push {lr}
+ ldr r1, _080FE238
+ movs r0, 0
+ strb r0, [r1]
+ bl ScriptContext2_Enable
+ bl sub_80FE1DC
+ bl sub_80FE394
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE238: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE220
+
+ thumb_func_start sub_80FE23C
+sub_80FE23C: @ 80FE23C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80FE220
+ ldr r1, _080FE25C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE260
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE25C: .4byte gTasks
+_080FE260: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE23C
+
+ thumb_func_start sub_80FE264
+sub_80FE264: @ 80FE264
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE284
+ ldr r0, _080FE288
+ str r0, [r1]
+ adds r0, 0x10
+ str r0, [r1, 0x4]
+ movs r2, 0
+ movs r0, 0x10
+ strb r0, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE284: .4byte 0x0201f000
+_080FE288: .4byte gSaveBlock1 + 0x1A1A
+ thumb_func_end sub_80FE264
+
+ thumb_func_start sub_80FE28C
+sub_80FE28C: @ 80FE28C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE2AC
+ ldr r0, _080FE2B0
+ str r0, [r1]
+ adds r0, 0xC
+ str r0, [r1, 0x4]
+ movs r0, 0xC
+ strb r0, [r1, 0x8]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2AC: .4byte 0x0201f000
+_080FE2B0: .4byte gSaveBlock1 + 0x2688
+ thumb_func_end sub_80FE28C
+
+ thumb_func_start sub_80FE2B4
+sub_80FE2B4: @ 80FE2B4
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080FE2E8
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ add r0, sp, 0x4
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2E8: .4byte gUnknown_083EC654
+ thumb_func_end sub_80FE2B4
+
+ thumb_func_start sub_80FE2EC
+sub_80FE2EC: @ 80FE2EC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r0, _080FE368
+ ldrb r1, [r0, 0x7]
+ movs r5, 0x80
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FE38C
+ ldr r4, _080FE36C
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE324
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _080FE370
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE324:
+ ldrh r1, [r4, 0x2E]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE342
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _080FE370
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE342:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE378
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FE374
+ ldr r0, _080FE370
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080FE38C
+ .align 2, 0
+_080FE368: .4byte gPaletteFade
+_080FE36C: .4byte gMain
+_080FE370: .4byte gUnknown_020388D4
+_080FE374: .4byte gUnknown_083EC604
+_080FE378:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE38C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl gpu_pal_decompress_alloc_tag_and_upload
+_080FE38C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE2EC
+
+ thumb_func_start sub_80FE394
+sub_80FE394: @ 80FE394
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _080FE3BC
+ ldr r0, _080FE3C0
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE3BC: .4byte gUnknown_083EC624
+_080FE3C0: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE394
+
+ thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
+gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080FE404
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _080FE40C
+ ldr r0, _080FE408
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080FE412
+ .align 2, 0
+_080FE404: .4byte 0x0201f000
+_080FE408: .4byte gUnknown_0815F399
+_080FE40C:
+ adds r0, r4, 0
+ bl sub_8139E24
+_080FE412:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
+
+ thumb_func_start sub_80FE418
+sub_80FE418: @ 80FE418
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE418
+
+ thumb_func_start sub_80FE428
+sub_80FE428: @ 80FE428
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FE464
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ bl sub_80FE394
+ ldr r1, _080FE468
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE46C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE464: .4byte gUnknown_020388D4
+_080FE468: .4byte gTasks
+_080FE46C: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE428
+
+ thumb_func_start sub_80FE470
+sub_80FE470: @ 80FE470
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ mov r8, r1
+ mov r9, r2
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072CBC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r7, _080FE51C
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x5
+ mov r10, r0
+ strb r0, [r7, 0x1]
+ strb r5, [r7, 0x2]
+ adds r7, 0x3
+ ldr r1, _080FE520
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r0, r4, 0
+ bl sub_8134194
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ movs r2, 0x56
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ ldr r0, _080FE524
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x4]
+ adds r0, r7, 0
+ movs r2, 0x68
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xFC
+ strb r0, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r0, _080FE51C
+ mov r1, r8
+ mov r2, r9
+ bl MenuPrint
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE51C: .4byte gStringVar4
+_080FE520: .4byte gUnknown_083EC5E4
+_080FE524: .4byte gUnknown_08402E40
+ thumb_func_end sub_80FE470
+
+ thumb_func_start sub_80FE528
+sub_80FE528: @ 80FE528
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ ldr r1, _080FE574
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+_080FE548:
+ ldr r0, _080FE578
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FE57C
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FE57C
+ cmp r5, 0x6
+ beq _080FE57C
+ cmp r5, 0x7
+ beq _080FE57C
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xD
+ bl sub_80FE470
+ b _080FE58E
+ .align 2, 0
+_080FE574: .4byte gTasks
+_080FE578: .4byte 0x0201f000
+_080FE57C:
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+_080FE58E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _080FE548
+ ldr r0, _080FE5A8
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5A8: .4byte gUnknownText_Exit
+ thumb_func_end sub_80FE528
+
+ thumb_func_start sub_80FE5AC
+sub_80FE5AC: @ 80FE5AC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE528
+ ldr r0, _080FE5F8
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x9
+ bl InitMenu
+ ldr r1, _080FE5FC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE600
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5F8: .4byte gUnknown_020388F6
+_080FE5FC: .4byte gTasks
+_080FE600: .4byte sub_80FE604
+ thumb_func_end sub_80FE5AC
+
+ thumb_func_start sub_80FE604
+sub_80FE604: @ 80FE604
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _080FE638
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE61C
+ b _080FE720
+_080FE61C:
+ ldr r2, _080FE63C
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE640
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080FE720
+ .align 2, 0
+_080FE638: .4byte gPaletteFade
+_080FE63C: .4byte gMain
+_080FE640:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE656
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080FE720
+_080FE656:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE70C
+ movs r0, 0x5
+ bl PlaySE
+ bl GetMenuCursorPos
+ ldr r4, _080FE6C0
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _080FE704
+ ldrb r0, [r4]
+ bl sub_8134194
+ ldr r1, _080FE6C4
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE6DC
+ ldrb r0, [r4]
+ bl sub_8134104
+ ldr r2, _080FE6C8
+ ldr r1, _080FE6CC
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r0, r5, 0
+ bl sub_80FEF50
+ bl sub_80F944C
+ ldr r0, _080FE6D0
+ movs r1, 0x8
+ bl sub_80F9480
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FE6D4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE6D8
+ str r1, [r0]
+ b _080FE720
+ .align 2, 0
+_080FE6C0: .4byte gUnknown_020388F6
+_080FE6C4: .4byte gUnknown_020388D5
+_080FE6C8: .4byte gUnknown_020388D0
+_080FE6CC: .4byte gUnknown_08402E40
+_080FE6D0: .4byte gUnknown_020388F7
+_080FE6D4: .4byte gTasks
+_080FE6D8: .4byte sub_80FE868
+_080FE6DC:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE6FC
+ ldr r2, _080FE700
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FE720
+ .align 2, 0
+_080FE6FC: .4byte gSecretBaseText_NoDecors
+_080FE700: .4byte sub_80FE418
+_080FE704:
+ adds r0, r5, 0
+ bl sub_80FE728
+ b _080FE720
+_080FE70C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE720
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80FE728
+_080FE720:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE604
+
+ thumb_func_start sub_80FE728
+sub_80FE728: @ 80FE728
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FE748
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ beq _080FE74C
+ adds r0, r2, 0
+ bl sub_80FE758
+ b _080FE752
+ .align 2, 0
+_080FE748: .4byte gTasks
+_080FE74C:
+ adds r0, r2, 0
+ bl sub_8109DAC
+_080FE752:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE728
+
+ thumb_func_start sub_80FE758
+sub_80FE758: @ 80FE758
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE794
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ beq _080FE79C
+ bl sub_80FE1DC
+ bl MenuDisplayMessageBox
+ bl sub_80FE394
+ ldr r0, _080FE798
+ str r0, [r5]
+ b _080FE7A2
+ .align 2, 0
+_080FE794: .4byte gTasks
+_080FE798: .4byte sub_80FE2EC
+_080FE79C:
+ adds r0, r4, 0
+ bl sub_80B3068
+_080FE7A2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE758
+
+ thumb_func_start sub_80FE7A8
+sub_80FE7A8: @ 80FE7A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FE7CC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x3
+ strh r2, [r1, 0x1E]
+ ldr r1, _080FE7D0
+ strb r3, [r1]
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7CC: .4byte gTasks
+_080FE7D0: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FE7A8
+
+ thumb_func_start sub_80FE7D4
+sub_80FE7D4: @ 80FE7D4
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080FE7E8
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7E8: .4byte gUnknown_083EC5E4
+ thumb_func_end sub_80FE7D4
+
+ thumb_func_start sub_80FE7EC
+sub_80FE7EC: @ 80FE7EC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FEC94
+ ldr r0, _080FE858
+ ldrb r0, [r0]
+ bl sub_80FECB8
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r4, _080FE85C
+ ldr r0, _080FE860
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ ldr r0, _080FE864
+ ldrb r3, [r0]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE858: .4byte gUnknown_020388F6
+_080FE85C: .4byte gUnknown_020388F2
+_080FE860: .4byte gUnknown_020388F4
+_080FE864: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FE7EC
+
+ thumb_func_start sub_80FE868
+sub_80FE868: @ 80FE868
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80FE7EC
+ ldr r1, _080FE88C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE890
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE88C: .4byte gTasks
+_080FE890: .4byte sub_80FE948
+ thumb_func_end sub_80FE868
+
+ thumb_func_start sub_80FE894
+sub_80FE894: @ 80FE894
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0
+ mov r10, r0
+ ldr r6, _080FE920
+ ldrb r1, [r6]
+ ldr r4, _080FE924
+ ldrb r0, [r4]
+ adds r1, r0
+ ldr r2, _080FE928
+ mov r9, r2
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _080FE8C8
+ movs r1, 0x1
+ mov r10, r1
+_080FE8C8:
+ movs r0, 0x5
+ bl PlaySE
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FE8DC
+ bl MoveMenuCursor
+ strb r0, [r6]
+_080FE8DC:
+ cmp r7, 0
+ beq _080FE8EE
+ ldrb r0, [r4]
+ adds r0, r7
+ strb r0, [r4]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_80FEABC
+_080FE8EE:
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r0, r1
+ mov r2, r9
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080FE92C
+ mov r0, r10
+ cmp r0, 0
+ beq _080FE90E
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080FE90E:
+ ldrb r0, [r4]
+ ldrb r6, [r6]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ b _080FE938
+ .align 2, 0
+_080FE920: .4byte gUnknown_020388F2
+_080FE924: .4byte gUnknown_020388F4
+_080FE928: .4byte gUnknown_020388D5
+_080FE92C:
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080FE938:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE894
+
+ thumb_func_start sub_80FE948
+sub_80FE948: @ 80FE948
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FE980
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE95C
+ b _080FEAAC
+_080FE95C:
+ ldr r0, _080FE984
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080FE9A0
+ ldr r0, _080FE988
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE98C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9A0
+ .align 2, 0
+_080FE980: .4byte gPaletteFade
+_080FE984: .4byte gMain
+_080FE988: .4byte gUnknown_020388F2
+_080FE98C:
+ ldr r0, _080FE9C4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE9A0
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FE894
+_080FE9A0:
+ ldr r0, _080FE9C8
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _080FE9EE
+ ldr r2, _080FE9CC
+ ldr r1, _080FE9D0
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9EE
+ .align 2, 0
+_080FE9C4: .4byte gUnknown_020388F4
+_080FE9C8: .4byte gMain
+_080FE9CC: .4byte gUnknown_020388F2
+_080FE9D0: .4byte gUnknown_020388F3
+_080FE9D4:
+ ldr r0, _080FEA38
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ ldr r1, _080FEA3C
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9EE
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80FE894
+_080FE9EE:
+ ldr r0, _080FEA40
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEA7C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080FEA44
+ ldr r1, _080FEA48
+ ldr r0, _080FEA38
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ adds r0, r1
+ strb r0, [r2]
+ ldr r1, _080FEA3C
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEA54
+ ldr r1, _080FEA4C
+ ldr r2, _080FEA50
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ b _080FEA68
+ .align 2, 0
+_080FEA38: .4byte gUnknown_020388F4
+_080FEA3C: .4byte gUnknown_020388D5
+_080FEA40: .4byte gMain
+_080FEA44: .4byte gUnknown_020388F5
+_080FEA48: .4byte gUnknown_020388F2
+_080FEA4C: .4byte gUnknown_083EC634
+_080FEA50: .4byte gTasks
+_080FEA54:
+ ldr r2, _080FEA74
+ ldr r1, _080FEA78
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ lsls r0, 3
+ adds r0, r2
+_080FEA68:
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080FEAAC
+ .align 2, 0
+_080FEA74: .4byte gUnknown_083EC634
+_080FEA78: .4byte gTasks
+_080FEA7C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEAAC
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FEAB4
+ ldr r2, _080FEAB8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080FEAAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEAB4: .4byte gUnknown_083EC634
+_080FEAB8: .4byte gTasks
+ thumb_func_end sub_80FE948
+
+ thumb_func_start sub_80FEABC
+sub_80FEABC: @ 80FEABC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080FEB58
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080FEADE
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080FEAE8
+_080FEADE:
+ movs r0, 0
+ movs r1, 0x3C
+ movs r2, 0x8
+ bl sub_80F953C
+_080FEAE8:
+ ldr r5, _080FEB58
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldr r4, _080FEB5C
+ ldrb r1, [r4]
+ cmp r0, r1
+ bne _080FEAFC
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_080FEAFC:
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldrb r4, [r4]
+ cmp r0, r4
+ bge _080FEB10
+ movs r0, 0x1
+ movs r1, 0x3C
+ movs r2, 0x98
+ bl sub_80F953C
+_080FEB10:
+ ldrb r4, [r5]
+ adds r0, r4, 0
+ adds r0, 0x8
+ cmp r4, r0
+ blt _080FEB1C
+ b _080FEC7E
+_080FEB1C:
+ adds r7, r5, 0
+_080FEB1E:
+ ldrb r1, [r7]
+ subs r1, r4, r1
+ lsls r0, r1, 25
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ lsrs r6, r0, 24
+ ldr r0, _080FEB60
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FEB3C
+ adds r0, r1, 0
+ bl sub_80F94F8
+_080FEB3C:
+ ldr r0, _080FEB5C
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _080FEB68
+ lsls r2, r6, 3
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, _080FEB64
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEC7E
+ .align 2, 0
+_080FEB58: .4byte gUnknown_020388F4
+_080FEB5C: .4byte gUnknown_020388D5
+_080FEB60: .4byte gUnknown_020388F7
+_080FEB64: .4byte gUnknownText_Exit
+_080FEB68:
+ ldr r0, _080FEBC0
+ ldr r1, [r0]
+ adds r2, r1, r4
+ ldrb r1, [r2]
+ mov r12, r0
+ adds r5, r4, 0x1
+ cmp r1, 0
+ bne _080FEB7A
+ b _080FEC70
+_080FEB7A:
+ ldr r0, _080FEBC4
+ ldrb r5, [r0, 0x9]
+ cmp r5, 0x1
+ bne _080FEBDC
+ ldr r0, _080FEBC8
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FEBDC
+ cmp r0, 0x7
+ beq _080FEBDC
+ ldr r0, _080FEBCC
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x1E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080FEBDC
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r0, _080FEBD0
+ adds r1, r0
+ ldr r0, _080FEBD4
+ bl StringCopy
+ lsls r2, r6, 3
+ str r5, [sp]
+ ldr r0, _080FEBD8
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEBF8
+ .align 2, 0
+_080FEBC0: .4byte gUnknown_020388D0
+_080FEBC4: .4byte 0x0201f000
+_080FEBC8: .4byte gUnknown_020388F6
+_080FEBCC: .4byte gTasks
+_080FEBD0: .4byte gDecorations + 0x1
+_080FEBD4: .4byte gStringVar1
+_080FEBD8: .4byte gUnknown_083EC65A
+_080FEBDC:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080FEC00
+ adds r0, r1
+ lsls r2, r6, 3
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+_080FEBF8:
+ movs r1, 0
+ adds r5, r4, 0x1
+ b _080FEC0A
+ .align 2, 0
+_080FEC00: .4byte gDecorations + 0x1
+_080FEC04:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC0A:
+ cmp r1, 0xF
+ bhi _080FEC34
+ ldr r0, _080FEC38
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC04
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC3C
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r3, r2
+ asrs r3, 16
+ movs r0, 0x4
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC34:
+ movs r1, 0
+ b _080FEC46
+ .align 2, 0
+_080FEC38: .4byte gUnknown_020388D6
+_080FEC3C: .4byte gUnknown_020388F7
+_080FEC40:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC46:
+ cmp r1, 0xB
+ bhi _080FEC70
+ ldr r0, _080FEC8C
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC40
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC90
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r0, 0xC0
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x5
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC70:
+ lsls r0, r5, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r7]
+ adds r0, 0x8
+ cmp r4, r0
+ bge _080FEC7E
+ b _080FEB1E
+_080FEC7E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEC8C: .4byte gUnknown_020388E6
+_080FEC90: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEABC
+
+ thumb_func_start sub_80FEC94
+sub_80FEC94: @ 80FEC94
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FEABC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEC94
+
+ thumb_func_start sub_80FECB8
+sub_80FECB8: @ 80FECB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FECB8
+
+ thumb_func_start sub_80FECE0
+sub_80FECE0: @ 80FECE0
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FED14
+ ldr r1, _080FED18
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 5
+ adds r2, 0x18
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x30
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x80
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED14: .4byte gDecorations
+_080FED18: .4byte gUnknown_020388D0
+ thumb_func_end sub_80FECE0
+
+ thumb_func_start sub_80FED1C
+sub_80FED1C: @ 80FED1C
+ push {lr}
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FED1C
+
+ thumb_func_start sub_80FED3C
+sub_80FED3C: @ 80FED3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FED5C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FED60
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED5C: .4byte gTasks
+_080FED60: .4byte sub_80FE868
+ thumb_func_end sub_80FED3C
+
+ thumb_func_start sub_80FED64
+sub_80FED64: @ 80FED64
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _080FED7C
+_080FED6E:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FED80
+ movs r0, 0x1
+ b _080FED8C
+ .align 2, 0
+_080FED7C: .4byte gUnknown_020388D6
+_080FED80:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080FED6E
+ movs r0, 0
+_080FED8C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FED64
+
+ thumb_func_start sub_80FED90
+sub_80FED90: @ 80FED90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r4, _080FEE30
+ movs r1, 0
+ ldr r2, _080FEE34
+_080FEDA4:
+ adds r0, r3, r4
+ strb r1, [r0]
+ cmp r3, 0xB
+ bhi _080FEDB0
+ adds r0, r3, r2
+ strb r1, [r0]
+_080FEDB0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDA4
+ movs r3, 0
+ ldr r0, _080FEE38
+ mov r10, r0
+ ldr r1, _080FEE3C
+ mov r9, r1
+ ldr r2, _080FEE40
+ mov r8, r2
+_080FEDC8:
+ mov r1, r10
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FEE5A
+ movs r1, 0
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEE5A
+ ldr r0, _080FEE38
+ adds r0, r3
+ mov r12, r0
+ ldr r7, _080FEE30
+_080FEDEA:
+ ldr r0, _080FEE44
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEE48
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEE1E
+ ldrb r0, [r7]
+ cmp r0, r4
+ beq _080FEE1E
+ ldr r5, _080FEE30
+ adds r2, r4, 0
+_080FEE0C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEE1E
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEE0C
+_080FEE1E:
+ cmp r1, r6
+ bne _080FEE48
+ adds r0, r6, r7
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEE5A
+ .align 2, 0
+_080FEE30: .4byte gUnknown_020388D6
+_080FEE34: .4byte gUnknown_020388E6
+_080FEE38: .4byte gSaveBlock1 + 0x1A1A
+_080FEE3C: .4byte gUnknown_08402E40
+_080FEE40: .4byte gUnknown_020388F6
+_080FEE44: .4byte gUnknown_020388D0
+_080FEE48:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEDEA
+_080FEE5A:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDC8
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _080FEEE4
+ mov r8, r0
+_080FEE6C:
+ ldr r0, _080FEEE8
+ ldr r1, _080FEEEC
+ adds r0, r1
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ adds r7, r3, 0x1
+ cmp r0, 0
+ beq _080FEF0E
+ movs r1, 0
+ ldr r0, _080FEEF0
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEF0E
+ adds r5, r2, 0
+_080FEE8E:
+ ldr r0, _080FEEF4
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ ldrb r2, [r5]
+ cmp r0, r2
+ bne _080FEEFC
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80FED64
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEEFC
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEED0
+ ldr r2, _080FEEF8
+ ldrb r0, [r2]
+ cmp r0, r4
+ beq _080FEED0
+ adds r3, r2, 0
+ adds r2, r4, 0
+_080FEEBE:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEED0
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEEBE
+_080FEED0:
+ cmp r1, r6
+ bne _080FEEFC
+ ldr r0, _080FEEF8
+ adds r0, r6, r0
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEF0E
+ .align 2, 0
+_080FEEE4: .4byte gUnknown_08402E40
+_080FEEE8: .4byte gSaveBlock1
+_080FEEEC: .4byte 0x00002688
+_080FEEF0: .4byte gUnknown_020388F6
+_080FEEF4: .4byte gUnknown_020388D0
+_080FEEF8: .4byte gUnknown_020388E6
+_080FEEFC:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ ldr r0, _080FEF24
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEE8E
+_080FEF0E:
+ lsls r0, r7, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bls _080FEE6C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF24: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FED90
+
+ thumb_func_start sub_80FEF28
+sub_80FEF28: @ 80FEF28
+ push {lr}
+ ldr r0, _080FEF38
+ ldrb r1, [r0]
+ cmp r1, 0x7
+ bhi _080FEF40
+ ldr r0, _080FEF3C
+ strb r1, [r0]
+ b _080FEF46
+ .align 2, 0
+_080FEF38: .4byte gUnknown_020388D5
+_080FEF3C: .4byte gUnknown_020388F3
+_080FEF40:
+ ldr r1, _080FEF4C
+ movs r0, 0x7
+ strb r0, [r1]
+_080FEF46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF4C: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FEF28
+
+ thumb_func_start sub_80FEF50
+sub_80FEF50: @ 80FEF50
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FED90
+ bl sub_80FEF28
+ ldr r0, _080FEF6C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FEF70
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF6C: .4byte gUnknown_020388F2
+_080FEF70: .4byte gUnknown_020388F4
+ thumb_func_end sub_80FEF50
+
+ thumb_func_start sub_80FEF74
+sub_80FEF74: @ 80FEF74
+ push {lr}
+ ldr r0, _080FEFA0
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEFA0: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEF74
+
+ thumb_func_start sub_80FEFA4
+sub_80FEFA4: @ 80FEFA4
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, _080FEFD0
+ ldrb r0, [r0]
+ ldr r1, _080FEFD4
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0x1
+ ldr r4, _080FEFD8
+ ldr r3, _080FEFDC
+_080FEFB8:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080FEFCC
+ cmp r2, 0xB
+ bhi _080FEFE0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080FEFE0
+_080FEFCC:
+ movs r0, 0
+ b _080FEFEC
+ .align 2, 0
+_080FEFD0: .4byte gUnknown_020388F4
+_080FEFD4: .4byte gUnknown_020388F2
+_080FEFD8: .4byte gUnknown_020388D6
+_080FEFDC: .4byte gUnknown_020388E6
+_080FEFE0:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080FEFB8
+ movs r0, 0x1
+_080FEFEC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FEFA4
+
+ thumb_func_start sub_80FEFF4
+sub_80FEFF4: @ 80FEFF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FF028
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF00E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF020
+_080FF00E:
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r0, _080FF02C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080FF030
+ str r0, [r1]
+_080FF020:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF028: .4byte gMain
+_080FF02C: .4byte gTasks
+_080FF030: .4byte sub_80FE868
+ thumb_func_end sub_80FEFF4
+
+ thumb_func_start sub_80FF034
+sub_80FF034: @ 80FF034
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE5AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF034
+
+ thumb_func_start sub_80FF058
+sub_80FF058: @ 80FF058
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FF08C
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl BuyMenuFreeMemory
+ ldr r1, _080FF090
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FF094
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF08C: .4byte gUnknown_020388F7
+_080FF090: .4byte gTasks
+_080FF094: .4byte sub_80FF034
+ thumb_func_end sub_80FF058
+
+ thumb_func_start sub_80FF098
+sub_80FF098: @ 80FF098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080FF0D4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r3, _080FF0D8
+ ldrb r2, [r3]
+ adds r0, r2, 0x7
+ ldrb r1, [r1]
+ cmp r0, r1
+ ble _080FF0BA
+ cmp r2, 0
+ beq _080FF0BA
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080FF0BA:
+ ldr r0, _080FF0DC
+ ldrb r0, [r0]
+ bl sub_8134104
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl sub_80FEF28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF0D4: .4byte gUnknown_020388D5
+_080FF0D8: .4byte gUnknown_020388F4
+_080FF0DC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF098
+
+ thumb_func_start sub_80FF0E0
+sub_80FF0E0: @ 80FF0E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF10C
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r4, r2, r3
+ ldr r1, _080FF110
+ ldrh r0, [r1]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x10]
+ adds r3, 0x8
+ adds r2, r3
+ adds r1, r2, 0x2
+ adds r0, r2, 0
+ bl PlayerGetDestCoords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF10C: .4byte gTasks
+_080FF110: .4byte gSaveBlock1
+ thumb_func_end sub_80FF0E0
+
+ thumb_func_start sub_80FF114
+sub_80FF114: @ 80FF114
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl DrawWholeMapView
+ ldr r1, _080FF158
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r3, _080FF15C
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r3
+ movs r3, 0xE
+ ldrsb r3, [r4, r3]
+ ldrb r4, [r4, 0x10]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ bl warp1_set
+ bl warp_in
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF158: .4byte gSaveBlock1
+_080FF15C: .4byte gTasks
+ thumb_func_end sub_80FF114
+
+ thumb_func_start sub_80FF160
+sub_80FF160: @ 80FF160
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FF188
+ ldr r1, _080FF180
+ ldr r2, _080FF184
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF1A2
+ .align 2, 0
+_080FF180: .4byte gSecretBaseText_NoDecors
+_080FF184: .4byte sub_80FE428
+_080FF188:
+ ldr r1, _080FF1A8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ ldr r0, _080FF1AC
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_080FF1A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF1A8: .4byte gTasks
+_080FF1AC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF160
+
+ thumb_func_start sub_80FF1B0
+sub_80FF1B0: @ 80FF1B0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080FF1D0
+ cmp r2, 0x22
+ beq _080FF1D8
+ cmp r2, 0x26
+ bne _080FF1E2
+ ldr r0, _080FF1D4
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+ b _080FF1E2
+ .align 2, 0
+_080FF1D0: .4byte 0x0000ffff
+_080FF1D4: .4byte gUnknown_083EC97C
+_080FF1D8:
+ ldr r0, _080FF1E8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+_080FF1E2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF1E8: .4byte gUnknown_083EC984
+ thumb_func_end sub_80FF1B0
+
+ thumb_func_start sub_80FF1EC
+sub_80FF1EC: @ 80FF1EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r4, [sp, 0x54]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x10]
+ movs r2, 0
+ lsls r0, r3, 16
+ cmp r2, r3
+ bcc _080FF222
+ b _080FF384
+_080FF222:
+ ldr r1, [sp, 0x8]
+ str r1, [sp, 0x28]
+ str r0, [sp, 0x2C]
+_080FF228:
+ ldr r3, [sp, 0x4]
+ ldr r4, [sp, 0xC]
+ subs r1, r3, r4
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, 0x1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r10, r0
+ adds r1, r2, 0x1
+ str r1, [sp, 0x30]
+ ldr r3, [sp, 0x28]
+ cmp r10, r3
+ bcc _080FF24C
+ b _080FF374
+_080FF24C:
+ ldr r4, [sp, 0x10]
+ lsls r4, 5
+ str r4, [sp, 0x18]
+ ldr r0, _080FF2B4
+ adds r0, r4, r0
+ str r0, [sp, 0x1C]
+ ldr r0, _080FF2B8
+ adds r0, r4, r0
+ str r0, [sp, 0x24]
+ ldr r3, [sp, 0x8]
+ adds r1, r2, 0
+ muls r1, r3
+ str r1, [sp, 0x20]
+_080FF266:
+ ldr r0, [sp]
+ add r0, r10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x20]
+ add r1, r10
+ ldr r4, [sp, 0x1C]
+ ldr r0, [r4]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ lsls r4, r0, 16
+ lsls r0, r4, 8
+ lsrs r0, 24
+ bl sub_8057288
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FF2AC
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3, 0x11]
+ cmp r0, 0x1
+ beq _080FF2BC
+ lsrs r0, r4, 28
+ cmp r0, 0
+ beq _080FF2BC
+_080FF2AC:
+ movs r4, 0xC0
+ lsls r4, 4
+ mov r8, r4
+ b _080FF2C0
+ .align 2, 0
+_080FF2B4: .4byte gDecorations + 0x1C
+_080FF2B8: .4byte gDecorations
+_080FF2BC:
+ movs r0, 0
+ mov r8, r0
+_080FF2C0:
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r1, 0x11]
+ lsls r7, r5, 16
+ ldr r2, [sp, 0x14]
+ lsls r2, 16
+ mov r9, r2
+ cmp r0, 0x3
+ beq _080FF2EA
+ asrs r0, r7, 16
+ asrs r1, r2, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1
+ cmp r0, 0x1
+ beq _080FF2EC
+_080FF2EA:
+ movs r6, 0
+_080FF2EC:
+ ldr r3, [sp, 0x18]
+ ldr r4, _080FF334
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r4, [sp, 0x20]
+ add r4, r10
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_80FF1B0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080FF338
+ cmp r5, r0
+ beq _080FF33C
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ orrs r3, r5
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileEntryAt
+ b _080FF362
+ .align 2, 0
+_080FF334: .4byte gDecorations
+_080FF338: .4byte 0x0000ffff
+_080FF33C:
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+_080FF362:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldr r4, [sp, 0x28]
+ cmp r10, r4
+ bcs _080FF374
+ b _080FF266
+_080FF374:
+ ldr r1, [sp, 0x30]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r3, [sp, 0x2C]
+ lsrs r0, r3, 16
+ cmp r2, r0
+ bcs _080FF384
+ b _080FF228
+_080FF384:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF1EC
+
+ thumb_func_start sub_80FF394
+sub_80FF394: @ 80FF394
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _080FF3BC
+ lsls r0, r2, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bhi _080FF46C
+ lsls r0, 2
+ ldr r1, _080FF3C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF3BC: .4byte gDecorations
+_080FF3C0: .4byte _080FF3C4
+ .align 2, 0
+_080FF3C4:
+ .4byte _080FF3EC
+ .4byte _080FF3F6
+ .4byte _080FF400
+ .4byte _080FF410
+ .4byte _080FF41A
+ .4byte _080FF424
+ .4byte _080FF434
+ .4byte _080FF43E
+ .4byte _080FF44E
+ .4byte _080FF45E
+_080FF3EC:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF408
+_080FF3F6:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF408
+_080FF400:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF408:
+ movs r3, 0x1
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF410:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ b _080FF42C
+_080FF41A:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF42C
+_080FF424:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+_080FF42C:
+ movs r3, 0x2
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF434:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF456
+_080FF43E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF44E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF456:
+ movs r3, 0x3
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF45E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80FF1EC
+_080FF46C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF394
+
+ thumb_func_start sub_80FF474
+sub_80FF474: @ 80FF474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0
+ ldr r0, _080FF54C
+ mov r8, r0
+ ldr r1, _080FF550
+ mov r9, r1
+ ldr r2, _080FF554
+ mov r10, r2
+ ldr r7, _080FF558
+_080FF490:
+ adds r5, r6, 0
+ adds r5, 0xAE
+ adds r4, r5, 0
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF570
+ adds r0, r4, 0
+ bl FlagReset
+ movs r2, 0
+ mov r4, r8
+ ldr r0, [r4, 0x4]
+ ldrb r6, [r0]
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r0, 0x4]
+ ldrh r0, [r0, 0x14]
+ cmp r0, r5
+ beq _080FF4E0
+ ldr r0, _080FF54C
+ ldr r3, [r0, 0x4]
+ ldrb r6, [r3]
+ adds r4, r5, 0
+_080FF4C6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r3, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _080FF4C6
+_080FF4E0:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r2, 1
+ adds r4, r2
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r2, _080FF55C
+ adds r0, r2, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080FF560
+ ldr r1, [r1]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ mov r6, r9
+ strh r0, [r6]
+ ldr r1, _080FF564
+ ldrh r1, [r1]
+ mov r2, r10
+ strh r1, [r2]
+ ldr r1, _080FF568
+ ldrh r1, [r1]
+ ldr r4, _080FF56C
+ strh r1, [r4]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl show_sprite
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ mov r5, r10
+ movs r6, 0
+ ldrsh r3, [r5, r6]
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ mov r6, r9
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl sub_805C78C
+ b _080FF57A
+ .align 2, 0
+_080FF54C: .4byte gMapHeader
+_080FF550: .4byte gUnknown_0202E8CE
+_080FF554: .4byte gUnknown_0202E8D0
+_080FF558: .4byte gSaveBlock1
+_080FF55C: .4byte 0x00003f20
+_080FF560: .4byte gUnknown_02038900
+_080FF564: .4byte gUnknown_020391A4
+_080FF568: .4byte gUnknown_020391A6
+_080FF56C: .4byte gUnknown_0202E8D2
+_080FF570:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xD
+ bls _080FF490
+_080FF57A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF474
+
+ thumb_func_start sub_80FF58C
+sub_80FF58C: @ 80FF58C
+ push {lr}
+ movs r1, 0
+ ldr r0, _080FF5A8
+ ldrb r2, [r0, 0x8]
+ cmp r1, r2
+ bcs _080FF5B6
+ ldr r3, [r0]
+_080FF59A:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FF5AC
+ movs r0, 0x1
+ b _080FF5B8
+ .align 2, 0
+_080FF5A8: .4byte 0x0201f000
+_080FF5AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080FF59A
+_080FF5B6:
+ movs r0, 0
+_080FF5B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF58C
+
+ thumb_func_start sub_80FF5BC
+sub_80FF5BC: @ 80FF5BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080FF5E4
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FF5F0
+ ldr r0, _080FF5E8
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FF5F0
+ cmp r0, 0x7
+ beq _080FF5F0
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF5EC
+ b _080FF66E
+ .align 2, 0
+_080FF5E4: .4byte 0x0201f000
+_080FF5E8: .4byte gUnknown_020388F6
+_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
+_080FF5F0:
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF688
+ bl sub_80FF58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF62C
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _080FF624
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _080FF628
+ str r1, [r0]
+ b _080FF69C
+ .align 2, 0
+_080FF624: .4byte gTasks
+_080FF628: .4byte sub_80FF6AC
+_080FF62C:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r0, _080FF654
+ ldr r4, _080FF658
+ ldrb r1, [r4, 0x8]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ bne _080FF664
+ ldr r0, _080FF65C
+ ldr r1, _080FF660
+ bl StringExpandPlaceholders
+ b _080FF66C
+ .align 2, 0
+_080FF654: .4byte gStringVar1
+_080FF658: .4byte 0x0201f000
+_080FF65C: .4byte gStringVar4
+_080FF660: .4byte gSecretBaseText_NoMoreDecor
+_080FF664:
+ ldr r0, _080FF67C
+ ldr r1, _080FF680
+ bl StringExpandPlaceholders
+_080FF66C:
+ ldr r1, _080FF67C
+_080FF66E:
+ ldr r2, _080FF684
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF69C
+ .align 2, 0
+_080FF67C: .4byte gStringVar4
+_080FF680: .4byte gSecretBaseText_NoMoreDecor2
+_080FF684: .4byte sub_80FEFF4
+_080FF688:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF6A4
+ ldr r2, _080FF6A8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080FF69C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF6A4: .4byte gSecretBaseText_InUseAlready
+_080FF6A8: .4byte sub_80FEFF4
+ thumb_func_end sub_80FF5BC
+
+ thumb_func_start sub_80FF6AC
+sub_80FF6AC: @ 80FF6AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080FF6D0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _080FF714
+ cmp r0, 0x1
+ bgt _080FF6D4
+ cmp r0, 0
+ beq _080FF6DA
+ b _080FF77A
+ .align 2, 0
+_080FF6D0: .4byte gTasks
+_080FF6D4:
+ cmp r0, 0x2
+ beq _080FF764
+ b _080FF77A
+_080FF6DA:
+ ldr r0, _080FF70C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF77A
+ adds r0, r6, 0
+ bl sub_80FF0E0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _080FF710
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF70C: .4byte gPaletteFade
+_080FF710: .4byte gUnknown_020388F7
+_080FF714:
+ ldr r4, _080FF754
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ ldr r5, _080FF758
+ ldr r0, _080FF75C
+ ldrb r1, [r0]
+ ldr r0, _080FF760
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl AddDecorationIconObjectFromFieldObject
+ adds r0, r6, 0
+ bl sub_80FF960
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl SetUpPlacingDecorationPlayerAvatar
+ bl pal_fill_black
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF754: .4byte gPaletteFade
+_080FF758: .4byte gUnknown_02038900
+_080FF75C: .4byte gUnknown_020388F5
+_080FF760: .4byte gUnknown_020388D0
+_080FF764:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF77A
+ movs r0, 0
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ bl sub_810065C
+_080FF77A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF6AC
+
+ thumb_func_start AddDecorationIconObjectFromFieldObject
+AddDecorationIconObjectFromFieldObject: @ 80FF780
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ adds r0, r5, 0
+ bl sub_81006D0
+ lsls r4, 5
+ ldr r0, _080FF810
+ adds r4, r0
+ str r4, [r5]
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x4
+ beq _080FF834
+ adds r0, r5, 0
+ bl sub_81008BC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl sub_8100930
+ adds r0, r5, 0
+ bl sub_8100874
+ ldr r1, _080FF814
+ adds r0, r5, r1
+ ldr r1, _080FF818
+ ldr r1, [r1]
+ ldr r2, [r1, 0x14]
+ ldr r1, [r5]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ ldr r2, [r2, 0xC]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1, 0xE]
+ lsrs r1, 12
+ bl sub_810070C
+ ldr r0, _080FF81C
+ bl LoadSpritePalette
+ ldr r3, _080FF820
+ ldr r2, _080FF824
+ ldr r4, _080FF828
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ ldr r0, _080FF82C
+ ldr r3, _080FF830
+ ldr r1, [r5]
+ ldrb r2, [r1, 0x12]
+ lsls r2, 2
+ adds r2, r3
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ b _080FF87E
+ .align 2, 0
+_080FF810: .4byte gDecorations
+_080FF814: .4byte 0x00000884
+_080FF818: .4byte gMapHeader
+_080FF81C: .4byte gUnknown_083EC954
+_080FF820: .4byte gUnknown_020391A8
+_080FF824: .4byte gSprites
+_080FF828: .4byte gUnknown_03004880
+_080FF82C: .4byte gSpriteTemplate_83EC93C
+_080FF830: .4byte gUnknown_083EC900
+_080FF834:
+ ldr r2, _080FF888
+ ldr r6, _080FF88C
+ ldr r5, _080FF890
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r2]
+ ldr r0, [r4, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, _080FF894
+ ldr r2, _080FF898
+ ldrb r3, [r4, 0x12]
+ lsls r3, 2
+ adds r3, r2
+ ldrb r2, [r3, 0x2]
+ ldrb r3, [r3, 0x3]
+ movs r4, 0x1
+ str r4, [sp]
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080FF87E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF888: .4byte gUnknown_020391A8
+_080FF88C: .4byte gSprites
+_080FF890: .4byte gUnknown_03004880
+_080FF894: .4byte sub_81009A8
+_080FF898: .4byte gUnknown_083EC900
+ thumb_func_end AddDecorationIconObjectFromFieldObject
+
+ thumb_func_start SetUpPlacingDecorationPlayerAvatar
+SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF8F0
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x12]
+ ldr r3, _080FF8F4
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x12]
+ lsls r1, r4, 2
+ adds r1, r3
+ lsls r0, r2, 4
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ subs r2, 0x1
+ lsls r2, 3
+ subs r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r4, 0x2
+ beq _080FF8D6
+ cmp r4, 0x8
+ beq _080FF8D6
+ cmp r4, 0x9
+ bne _080FF8DE
+_080FF8D6:
+ adds r0, r2, 0
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FF8DE:
+ ldr r0, _080FF8F8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080FF900
+ ldr r1, _080FF8FC
+ str r0, [sp]
+ movs r0, 0xC1
+ b _080FF908
+ .align 2, 0
+_080FF8F0: .4byte gTasks
+_080FF8F4: .4byte gUnknown_083EC900
+_080FF8F8: .4byte gSaveBlock2
+_080FF8FC: .4byte SpriteCallbackDummy
+_080FF900:
+ ldr r1, _080FF94C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_080FF908:
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _080FF950
+ strb r0, [r1]
+ ldr r3, _080FF954
+ ldr r0, _080FF950
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r4, _080FF958
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl DestroySprite
+ ldr r0, _080FF95C
+ ldr r0, [r0, 0x4]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF94C: .4byte SpriteCallbackDummy
+_080FF950: .4byte gUnknown_020391A9
+_080FF954: .4byte gSprites
+_080FF958: .4byte gUnknown_020391A8
+_080FF95C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPlacingDecorationPlayerAvatar
+
+ thumb_func_start sub_80FF960
+sub_80FF960: @ 80FF960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080FF98C
+ ldr r0, _080FF990
+ ldrb r1, [r0]
+ ldr r0, _080FF994
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bls _080FF980
+ b _080FFAA6
+_080FF980:
+ lsls r0, 2
+ ldr r1, _080FF998
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF98C: .4byte gDecorations
+_080FF990: .4byte gUnknown_020388F5
+_080FF994: .4byte gUnknown_020388D0
+_080FF998: .4byte _080FF99C
+ .align 2, 0
+_080FF99C:
+ .4byte _080FF9C4
+ .4byte _080FF9D8
+ .4byte _080FF9F0
+ .4byte _080FFA08
+ .4byte _080FFA1C
+ .4byte _080FFA30
+ .4byte _080FFA44
+ .4byte _080FFA64
+ .4byte _080FFA7C
+ .4byte _080FFA94
+_080FF9C4:
+ ldr r0, _080FF9D4
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _080FFA88
+ .align 2, 0
+_080FF9D4: .4byte gTasks
+_080FF9D8:
+ ldr r1, _080FF9EC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FF9EC: .4byte gTasks
+_080FF9F0:
+ ldr r1, _080FFA04
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FFA04: .4byte gTasks
+_080FFA08:
+ ldr r1, _080FFA18
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ b _080FFAA0
+ .align 2, 0
+_080FFA18: .4byte gTasks
+_080FFA1C:
+ ldr r0, _080FFA2C
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ b _080FFA88
+ .align 2, 0
+_080FFA2C: .4byte gTasks
+_080FFA30:
+ ldr r1, _080FFA40
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ b _080FFAA0
+ .align 2, 0
+_080FFA40: .4byte gTasks
+_080FFA44:
+ ldr r0, _080FFA60
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ movs r0, 0x3
+ strh r0, [r1, 0x14]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _080FFAA6
+ .align 2, 0
+_080FFA60: .4byte gTasks
+_080FFA64:
+ ldr r1, _080FFA78
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x4
+ b _080FFAA4
+ .align 2, 0
+_080FFA78: .4byte gTasks
+_080FFA7C:
+ ldr r0, _080FFA90
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+_080FFA88:
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ b _080FFAA6
+ .align 2, 0
+_080FFA90: .4byte gTasks
+_080FFA94:
+ ldr r1, _080FFAAC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+_080FFAA0:
+ strh r1, [r0, 0x12]
+ movs r1, 0x2
+_080FFAA4:
+ strh r1, [r0, 0x14]
+_080FFAA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAAC: .4byte gTasks
+ thumb_func_end sub_80FF960
+
+ thumb_func_start sub_80FFAB0
+sub_80FFAB0: @ 80FFAB0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFAF8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFAFC
+ ldr r0, _080FFB00
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB04
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8100038
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAF8: .4byte gTasks
+_080FFAFC: .4byte gSprites
+_080FFB00: .4byte gUnknown_020391A8
+_080FFB04: .4byte gUnknown_020391A9
+ thumb_func_end sub_80FFAB0
+
+ thumb_func_start sub_80FFB08
+sub_80FFB08: @ 80FFB08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFB54
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFB58
+ ldr r0, _080FFB5C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB60
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ ldr r1, _080FFB64
+ ldr r2, _080FFB68
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFB54: .4byte gTasks
+_080FFB58: .4byte gSprites
+_080FFB5C: .4byte gUnknown_020391A8
+_080FFB60: .4byte gUnknown_020391A9
+_080FFB64: .4byte gSecretBaseText_CancelDecorating
+_080FFB68: .4byte sub_8100248
+ thumb_func_end sub_80FFB08
+
+ thumb_func_start sub_80FFB6C
+sub_80FFB6C: @ 80FFB6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FFB86
+ cmp r4, 0
+ beq _080FFB8A
+_080FFB86:
+ movs r0, 0
+ b _080FFB8C
+_080FFB8A:
+ movs r0, 0x1
+_080FFB8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB6C
+
+ thumb_func_start sub_80FFB94
+sub_80FFB94: @ 80FFB94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r3, _080FFBD0
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ lsls r1, r4, 16
+ asrs r1, 16
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ cmp r5, 0
+ beq _080FFBD4
+ movs r0, 0
+ b _080FFBD6
+ .align 2, 0
+_080FFBD0: .4byte gTasks
+_080FFBD4:
+ movs r0, 0x1
+_080FFBD6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB94
+
+ thumb_func_start sub_80FFBDC
+sub_80FFBDC: @ 80FFBDC
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC1C
+ ldrb r0, [r5]
+ cmp r0, 0x21
+ bne _080FFC0A
+ adds r0, r4, 0
+ bl sub_8057300
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC18
+_080FFC0A:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFC1C
+_080FFC18:
+ movs r0, 0x1
+ b _080FFC1E
+_080FFC1C:
+ movs r0, 0
+_080FFC1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFBDC
+
+ thumb_func_start sub_80FFC24
+sub_80FFC24: @ 80FFC24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080FFC60
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r0, 0x12]
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x11]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080FFC56
+ b _08100024
+_080FFC56:
+ lsls r0, 2
+ ldr r1, _080FFC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FFC60: .4byte gTasks
+_080FFC64: .4byte _080FFC68
+ .align 2, 0
+_080FFC68:
+ .4byte _080FFC7C
+ .4byte _080FFC7C
+ .4byte _080FFD68
+ .4byte _080FFF1C
+ .4byte _080FFFA0
+_080FFC7C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFC86
+ b _08100024
+_080FFC86:
+ mov r1, r10
+ lsls r1, 2
+ str r1, [sp, 0x1C]
+_080FFC8C:
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r3, _080FFD64
+ adds r0, r3
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _080FFD56
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ asrs r1, 16
+ mov r9, r1
+_080FFCB8:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r2, _080FFD64
+ adds r0, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ adds r0, r6, 0
+ mov r1, r9
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ ldr r1, [sp]
+ bl sub_80FFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD1A
+ b _080FFFF4
+_080FFD1A:
+ mov r0, r10
+ adds r1, r6, 0
+ mov r2, r9
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD2E
+ b _080FFFF4
+_080FFD2E:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0xC]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFD4A
+ cmp r4, 0x10
+ beq _080FFD4A
+ b _080FFFF4
+_080FFD4A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFCB8
+_080FFD56:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, r2
+ bcc _080FFC8C
+ b _08100024
+ .align 2, 0
+_080FFD64: .4byte gTasks
+_080FFD68:
+ movs r6, 0
+ mov r3, r10
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x18]
+ cmp r6, r0
+ bge _080FFE54
+ adds r0, r3, 0
+ add r0, r10
+ lsls r0, 3
+ str r0, [sp, 0x10]
+_080FFD82:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFE48
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFDA0:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FFB6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ b _080FFFF4
+_080FFE0C:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE22
+ b _080FFFF4
+_080FFE22:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _080FFE3A
+ b _080FFFF4
+_080FFE3A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080FFF18
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFDA0
+_080FFE48:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ cmp r6, r3
+ blt _080FFD82
+_080FFE54:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ ldr r1, [sp, 0x4]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE74
+ b _08100024
+_080FFE74:
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFE78:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080FFF18
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, r7, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ adds r0, r4, 0
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ b _080FFFF4
+_080FFEDA:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEF0
+ b _080FFFF4
+_080FFEF0:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFF0A
+ cmp r4, 0x10
+ bne _080FFFF4
+_080FFF0A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE78
+ b _08100024
+ .align 2, 0
+_080FFF18: .4byte gTasks
+_080FFF1C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+_080FFF26:
+ mov r1, r10
+ lsls r0, r1, 2
+ add r0, r10
+ lsls r1, r0, 3
+ ldr r2, _080FFF9C
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFF8C
+ adds r0, r2, 0
+ adds r1, r0
+ mov r8, r1
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r5, r0, 16
+_080FFF50:
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFF4
+ adds r0, r4, 0
+ adds r1, r5, 0x1
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ beq _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFF50
+_080FFF8C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+ .align 2, 0
+_080FFF9C: .4byte gTasks
+_080FFFA0:
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ mov r9, r0
+ movs r7, 0
+ str r1, [sp, 0x1C]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _08100024
+ adds r6, r2, 0
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x20]
+_080FFFC0:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0x5
+ bne _080FFFF8
+_080FFFE8:
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100004
+_080FFFF4:
+ movs r0, 0
+ b _08100026
+_080FFFF8:
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFE8
+_08100004:
+ adds r0, r5, 0
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bne _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFFC0
+_08100024:
+ movs r0, 0x1
+_08100026:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFC24
+
+ thumb_func_start sub_8100038
+sub_8100038: @ 8100038
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810006C
+ ldrb r1, [r0]
+ ldr r0, _08100070
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 5
+ ldr r0, _08100074
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80FFC24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100080
+ ldr r1, _08100078
+ ldr r2, _0810007C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08100092
+ .align 2, 0
+_0810006C: .4byte gUnknown_020388F5
+_08100070: .4byte gUnknown_020388D0
+_08100074: .4byte gDecorations
+_08100078: .4byte gSecretBaseText_PlaceItHere
+_0810007C: .4byte sub_81000A0
+_08100080:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r1, _08100098
+ ldr r2, _0810009C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100092:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100098: .4byte gSecretBaseText_CantBePlacedHere
+_0810009C: .4byte sub_81006A8
+ thumb_func_end sub_8100038
+
+ thumb_func_start sub_81000A0
+sub_81000A0: @ 81000A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _081000C0
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081000C0: .4byte gUnknown_083EC95C
+ thumb_func_end sub_81000A0
+
+ thumb_func_start sub_81000C4
+sub_81000C4: @ 81000C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8100174
+ ldr r2, _0810010C
+ ldr r0, _08100110
+ ldrb r1, [r0]
+ ldr r0, _08100114
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r0, r3, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _0810011C
+ ldr r0, _08100118
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ ldrh r1, [r1, 0xA]
+ adds r2, r3, 0
+ bl sub_80FF394
+ b _0810013C
+ .align 2, 0
+_0810010C: .4byte gDecorations
+_08100110: .4byte gUnknown_020388F5
+_08100114: .4byte gUnknown_020388D0
+_08100118: .4byte gTasks
+_0810011C:
+ ldr r2, _0810015C
+ ldr r0, _08100160
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r2, _08100164
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r0, _08100168
+ bl ScriptContext1_SetupScript
+_0810013C:
+ ldr r2, _0810016C
+ ldr r0, _08100170
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x2
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810015C: .4byte gUnknown_020391A4
+_08100160: .4byte gTasks
+_08100164: .4byte gUnknown_020391A6
+_08100168: .4byte gUnknown_081A2F7B
+_0810016C: .4byte gSprites
+_08100170: .4byte gUnknown_020391A8
+ thumb_func_end sub_81000C4
+
+ thumb_func_start sub_8100174
+sub_8100174: @ 8100174
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ ldr r0, _081001B0
+ ldrb r1, [r0, 0x8]
+ adds r5, r0, 0
+ cmp r3, r1
+ bcs _0810019A
+ ldr r4, [r5]
+_08100188:
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _081001B8
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08100188
+_0810019A:
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ bne _08100204
+ movs r3, 0
+ ldr r0, _081001B4
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _081001F0
+ b _08100210
+ .align 2, 0
+_081001B0: .4byte 0x0201f000
+_081001B4: .4byte gUnknown_020388D6
+_081001B8:
+ ldr r0, _081001E4
+ ldrb r1, [r0]
+ ldr r0, _081001E8
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, [r5, 0x4]
+ adds r2, r3
+ ldr r0, _081001EC
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ subs r0, 0x7
+ lsls r0, 4
+ ldrb r1, [r1, 0xA]
+ subs r1, 0x7
+ adds r0, r1
+ strb r0, [r2]
+ b _0810019A
+ .align 2, 0
+_081001E4: .4byte gUnknown_020388F5
+_081001E8: .4byte gUnknown_020388D0
+_081001EC: .4byte gTasks
+_081001F0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081001F0
+ b _08100236
+_08100204:
+ movs r3, 0
+ ldr r0, _0810021C
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08100224
+_08100210:
+ ldr r0, _08100220
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _0810023E
+ .align 2, 0
+_0810021C: .4byte gUnknown_020388E6
+_08100220: .4byte gUnknown_020388F5
+_08100224:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08100224
+_08100236:
+ ldr r0, _08100244
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+_0810023E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100244: .4byte gUnknown_020388F5
+ thumb_func_end sub_8100174
+
+ thumb_func_start sub_8100248
+sub_8100248: @ 8100248
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08100268
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100268: .4byte gUnknown_083EC964
+ thumb_func_end sub_8100248
+
+ thumb_func_start sub_810026C
+sub_810026C: @ 810026C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810026C
+
+ thumb_func_start sub_810028C
+sub_810028C: @ 810028C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081002B4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081002B8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081002B4: .4byte gTasks
+_081002B8: .4byte c1_overworld_prev_quest
+ thumb_func_end sub_810028C
+
+ thumb_func_start c1_overworld_prev_quest
+c1_overworld_prev_quest: @ 81002BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _081002DC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081002E0
+ cmp r0, 0x1
+ beq _08100300
+ b _0810031C
+ .align 2, 0
+_081002DC: .4byte gTasks
+_081002E0:
+ bl ScriptContext2_Enable
+ ldr r0, _081002FC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810031C
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _0810031C
+ .align 2, 0
+_081002FC: .4byte gPaletteFade
+_08100300:
+ bl sub_81016F4
+ ldr r0, _08100324
+ bl FreeSpritePaletteByTag
+ ldr r1, _08100328
+ ldr r0, _0810032C
+ str r0, [r1]
+ ldr r0, _08100330
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0810031C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100324: .4byte 0x00000bb8
+_08100328: .4byte gUnknown_0300485C
+_0810032C: .4byte sub_8100364
+_08100330: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end c1_overworld_prev_quest
+
+ thumb_func_start sub_8100334
+sub_8100334: @ 8100334
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100354
+ ldr r0, _0810035C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08100360
+ str r0, [r1]
+_08100354:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810035C: .4byte gTasks
+_08100360: .4byte sub_80FE948
+ thumb_func_end sub_8100334
+
+ thumb_func_start sub_8100364
+sub_8100364: @ 8100364
+ push {lr}
+ bl ScriptContext2_Enable
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl pal_fill_black
+ ldr r0, _08100388
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE7EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100388: .4byte sub_8100334
+ thumb_func_end sub_8100364
+
+ thumb_func_start sub_810038C
+sub_810038C: @ 810038C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _081003BC
+ adds r2, r1, r0
+ ldr r0, _081003C0
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081003C4
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ subs r0, r1
+ subs r0, 0x6
+ cmp r0, 0
+ bge _081003C4
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ b _081003DE
+ .align 2, 0
+_081003BC: .4byte gUnknown_03004B28
+_081003C0: .4byte gUnknown_020391AA
+_081003C4:
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bne _081003E8
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ subs r1, 0x7
+ ldr r0, _081003E4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r1, r0
+ blt _081003E8
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+_081003DE:
+ strh r0, [r2, 0x2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_081003E4: .4byte gMapHeader
+_081003E8:
+ ldrb r0, [r3]
+ cmp r0, 0x3
+ bne _081003FE
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, 0x7
+ cmp r0, 0
+ bge _081003FE
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _0810041E
+_081003FE:
+ ldrb r0, [r3]
+ cmp r0, 0x4
+ bne _08100428
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ adds r1, r0
+ subs r1, 0x8
+ ldr r0, _08100424
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _08100428
+ ldrh r0, [r2]
+ subs r0, 0x1
+_0810041E:
+ strh r0, [r2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_08100424: .4byte gMapHeader
+_08100428:
+ movs r0, 0x1
+_0810042A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810038C
+
+ thumb_func_start sub_8100430
+sub_8100430: @ 8100430
+ push {lr}
+ ldr r0, _08100450
+ ldrh r0, [r0, 0x2C]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ beq _08100454
+ cmp r1, 0x80
+ beq _08100454
+ cmp r1, 0x20
+ beq _08100454
+ cmp r1, 0x10
+ beq _08100454
+ movs r0, 0
+ b _08100456
+ .align 2, 0
+_08100450: .4byte gMain
+_08100454:
+ movs r0, 0x1
+_08100456:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100430
+
+ thumb_func_start sub_810045C
+sub_810045C: @ 810045C
+ push {r4,lr}
+ ldr r1, _08100488
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0810048C
+ ldr r3, _08100490
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100488: .4byte gUnknown_020391AA
+_0810048C: .4byte gSprites
+_08100490: .4byte gUnknown_020391A8
+ thumb_func_end sub_810045C
+
+ thumb_func_start sub_8100494
+sub_8100494: @ 8100494
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _081004D0
+ ldr r3, _081004D4
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x36
+ ldrsh r6, [r0, r1]
+ cmp r6, 0
+ beq _081004B2
+ b _081005DE
+_081004B2:
+ ldr r1, _081004D8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _081004E0
+ ldr r0, _081004DC
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ b _081004EE
+ .align 2, 0
+_081004D0: .4byte gSprites
+_081004D4: .4byte gUnknown_020391A8
+_081004D8: .4byte gTasks
+_081004DC: .4byte gUnknown_083EC96C
+_081004E0:
+ cmp r0, 0x2
+ bne _08100500
+ ldr r0, _081004FC
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ adds r0, 0x4
+_081004EE:
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _0810063C
+ .align 2, 0
+_081004FC: .4byte gUnknown_083EC96C
+_08100500:
+ ldr r7, _08100644
+ ldrh r1, [r7, 0x2C]
+ movs r0, 0xF0
+ mov r12, r0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _08100534
+ ldr r1, _08100648
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+_08100534:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x80
+ bne _08100564
+ ldr r1, _08100648
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+_08100564:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x20
+ bne _08100594
+ ldr r1, _08100648
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ subs r0, 0x1
+ strh r0, [r2, 0x8]
+_08100594:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081005C4
+ ldr r1, _08100648
+ movs r0, 0x4
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_081005C4:
+ bl sub_8100430
+ lsls r0, 24
+ cmp r0, 0
+ beq _081005DA
+ adds r0, r4, 0
+ bl sub_810038C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005DE
+_081005DA:
+ bl sub_810045C
+_081005DE:
+ ldr r0, _08100648
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810060C
+ ldr r3, _08100650
+ ldr r2, _08100654
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x36]
+ adds r1, 0x1
+ strh r1, [r0, 0x36]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x36]
+ movs r0, 0x7
+ ands r0, r2
+ strh r0, [r1, 0x36]
+_0810060C:
+ ldr r0, _08100658
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0810063C
+ ldr r4, _08100644
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810062E
+ strh r3, [r2, 0x1C]
+_0810062E:
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810063C
+ strh r3, [r2, 0x1C]
+_0810063C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100644: .4byte gMain
+_08100648: .4byte gUnknown_020391AA
+_0810064C: .4byte 0x0000fffe
+_08100650: .4byte gSprites
+_08100654: .4byte gUnknown_020391A8
+_08100658: .4byte gTasks
+ thumb_func_end sub_8100494
+
+ thumb_func_start sub_810065C
+sub_810065C: @ 810065C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _08100698
+ ldr r0, _0810069C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ strh r2, [r0, 0x3C]
+ ldr r1, _081006A0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _081006A4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100698: .4byte gSprites
+_0810069C: .4byte gUnknown_020391A8
+_081006A0: .4byte gTasks
+_081006A4: .4byte sub_8100494
+ thumb_func_end sub_810065C
+
+ thumb_func_start sub_81006A8
+sub_81006A8: @ 81006A8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081006CC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081006C2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081006C8
+_081006C2:
+ adds r0, r2, 0
+ bl sub_810065C
+_081006C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081006CC: .4byte gMain
+ thumb_func_end sub_81006A8
+
+ thumb_func_start sub_81006D0
+sub_81006D0: @ 81006D0
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ adds r2, r3, 0
+ adds r2, 0x84
+ movs r5, 0
+ ldr r4, _08100708
+_081006DE:
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bls _081006DE
+ movs r1, 0
+ adds r2, r3, 0x4
+ movs r3, 0
+_081006F2:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081006F2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100708: .4byte 0x000007ff
+ thumb_func_end sub_81006D0
+
+ thumb_func_start sub_810070C
+sub_810070C: @ 810070C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ movs r2, 0
+ ldr r0, _0810073C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ lsrs r4, r1, 12
+ ldr r3, [r0, 0x8]
+_0810071E:
+ lsls r1, r2, 1
+ adds r1, r5
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0810071E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810073C: .4byte gMapHeader
+ thumb_func_end sub_810070C
+
+ thumb_func_start sub_8100740
+sub_8100740: @ 8100740
+ push {r4-r7,lr}
+ sub sp, 0x20
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsrs r3, r1, 26
+ cmp r2, 0
+ beq _08100754
+ ldr r0, _08100784
+ ands r2, r0
+_08100754:
+ movs r5, 0
+ ldr r0, _08100788
+ ldr r6, [r0]
+ lsls r4, r2, 5
+_0810075C:
+ mov r0, sp
+ adds r2, r0, r5
+ ldr r0, [r6, 0x10]
+ ldr r0, [r0, 0x4]
+ adds r1, r4, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810075C
+ cmp r3, 0x1
+ beq _081007AE
+ cmp r3, 0x1
+ bgt _0810078C
+ cmp r3, 0
+ beq _08100796
+ b _0810086A
+ .align 2, 0
+_08100784: .4byte 0x000003ff
+_08100788: .4byte gMapHeader
+_0810078C:
+ cmp r3, 0x2
+ beq _0810080E
+ cmp r3, 0x3
+ beq _08100846
+ b _0810086A
+_08100796:
+ movs r5, 0
+_08100798:
+ adds r1, r7, r5
+ mov r2, sp
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _08100798
+ b _0810086A
+_081007AE:
+ movs r5, 0
+ movs r6, 0xF
+_081007B2:
+ lsls r4, r5, 2
+ adds r4, r7
+ adds r5, 0x1
+ lsls r3, r5, 2
+ subs r0, r3, 0x1
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4]
+ subs r0, r3, 0x2
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x1]
+ subs r0, r3, 0x3
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x2]
+ subs r3, 0x4
+ mov r1, sp
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x3]
+ lsls r5, 16
+ lsrs r5, 16
+ cmp r5, 0x7
+ bls _081007B2
+ b _0810086A
+_0810080E:
+ movs r5, 0
+ movs r3, 0x7
+_08100812:
+ lsls r2, r5, 2
+ adds r2, r7
+ subs r1, r3, r5
+ lsls r1, 2
+ mov r4, sp
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r1, 0x1
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ adds r0, r1, 0x2
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ adds r1, 0x3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _08100812
+ b _0810086A
+_08100846:
+ movs r5, 0
+ movs r4, 0x1F
+ movs r6, 0xF
+_0810084C:
+ adds r3, r7, r5
+ subs r0, r4, r5
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810084C
+_0810086A:
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100740
+
+ thumb_func_start sub_8100874
+sub_8100874: @ 8100874
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0810087A:
+ lsls r0, r4, 5
+ adds r0, 0x84
+ adds r0, r5, r0
+ lsls r2, r4, 1
+ adds r1, r5, 0x4
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_8100740
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _0810087A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100874
+
+ thumb_func_start sub_810089C
+sub_810089C: @ 810089C
+ lsls r0, 16
+ ldr r1, _081008B4
+ ldr r1, [r1]
+ ldr r1, [r1, 0x14]
+ ldr r1, [r1, 0xC]
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _081008B8
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_081008B4: .4byte gMapHeader
+_081008B8: .4byte 0x00000fff
+ thumb_func_end sub_810089C
+
+ thumb_func_start sub_81008BC
+sub_81008BC: @ 81008BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ movs r6, 0
+ ldr r1, _0810092C
+ lsls r5, r0, 4
+ adds r0, r5, r1
+ ldrb r0, [r0, 0xC]
+ cmp r6, r0
+ bcs _08100920
+ adds r7, r1, 0
+_081008D8:
+ mov r4, r8
+ ldm r4!, {r1}
+ adds r0, r7, 0x4
+ adds r0, r5, r0
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ ldr r1, [r1, 0x1C]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r5, r1
+ ldr r1, [r1]
+ adds r1, r6
+ lsls r0, 3
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_810089C
+ adds r2, r5, r7
+ ldr r1, [r2]
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0xC]
+ cmp r6, r2
+ bcc _081008D8
+_08100920:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810092C: .4byte gUnknown_083EC860
+ thumb_func_end sub_81008BC
+
+ thumb_func_start sub_8100930
+sub_8100930: @ 8100930
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r3, _08100998
+ movs r1, 0
+ strb r1, [r3]
+ ldrb r2, [r3, 0x1]
+ subs r1, 0x4
+ ands r1, r2
+ movs r4, 0xD
+ negs r4, r4
+ ands r1, r4
+ movs r2, 0x11
+ negs r2, r2
+ ands r1, r2
+ subs r2, 0x10
+ ands r1, r2
+ strb r1, [r3, 0x1]
+ ldr r1, _0810099C
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r5, 0x3F
+ lsls r1, 6
+ strb r1, [r3, 0x1]
+ ldrh r2, [r3, 0x2]
+ ldr r1, _081009A0
+ ands r1, r2
+ strh r1, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 6
+ ands r5, r1
+ orrs r5, r0
+ strb r5, [r3, 0x3]
+ ldrh r1, [r3, 0x4]
+ ldr r0, _081009A4
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ ands r4, r0
+ movs r0, 0x4
+ orrs r4, r0
+ movs r0, 0xF
+ ands r4, r0
+ strb r4, [r3, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100998: .4byte gUnknown_020391AC
+_0810099C: .4byte gUnknown_083EC900
+_081009A0: .4byte 0xfffffe00
+_081009A4: .4byte 0xfffffc00
+ thumb_func_end sub_8100930
+
+ thumb_func_start sub_81009A8
+sub_81009A8: @ 81009A8
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ strh r1, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ ldr r1, _081009BC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_081009BC: .4byte sub_81009C0
+ thumb_func_end sub_81009A8
+
+ thumb_func_start sub_81009C0
+sub_81009C0: @ 81009C0
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081009FA
+ movs r1, 0x3A
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xE
+ bgt _081009E2
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _081009EC
+_081009E2:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+_081009EC:
+ strb r0, [r3]
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x3A]
+ b _08100A06
+_081009FA:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08100A06:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81009C0
+
+ thumb_func_start sub_8100A0C
+sub_8100A0C: @ 8100A0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8100D38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100A44
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08100A3C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08100A40
+ str r1, [r0]
+ b _08100A50
+ .align 2, 0
+_08100A3C: .4byte gTasks
+_08100A40: .4byte sub_8100E70
+_08100A44:
+ ldr r1, _08100A58
+ ldr r2, _08100A5C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100A50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100A58: .4byte gSecretBaseText_NoDecorInUse
+_08100A5C: .4byte sub_80FE428
+ thumb_func_end sub_8100A0C
+
+ thumb_func_start sub_8100A60
+sub_8100A60: @ 8100A60
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08100A78
+ ldr r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3, 0x4]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08100A78: .4byte 0x0201f000
+ thumb_func_end sub_8100A60
+
+ thumb_func_start sub_8100A7C
+sub_8100A7C: @ 8100A7C
+ push {r4-r6,lr}
+ ldr r6, _08100A9C
+ movs r0, 0
+ strh r0, [r6]
+ ldr r2, _08100AA0
+ strh r0, [r2]
+ ldr r4, _08100AA4
+ ldr r1, _08100AA8
+ ldrh r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08100AB8
+ movs r0, 0x1
+ strh r0, [r2]
+ b _08100B0A
+ .align 2, 0
+_08100A9C: .4byte gUnknown_0202E8CE
+_08100AA0: .4byte gScriptResult
+_08100AA4: .4byte gUnknown_0202E8CC
+_08100AA8: .4byte gUnknown_02039234
+_08100AAC:
+ ldr r1, _08100AB4
+ ldrb r0, [r2]
+ strh r0, [r1]
+ b _08100B0A
+ .align 2, 0
+_08100AB4: .4byte gUnknown_0202E8D0
+_08100AB8:
+ ldr r3, _08100B10
+ ldr r2, _08100B14
+ ldr r1, _08100B18
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ bne _08100B0A
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6]
+ ldrb r0, [r4]
+ bl sub_8100A60
+ movs r1, 0
+ ldr r0, _08100B1C
+ ldr r0, [r0, 0x4]
+ ldrb r2, [r0]
+ cmp r1, r2
+ bcs _08100B0A
+ ldr r5, [r0, 0x4]
+ ldrh r4, [r6]
+ adds r3, r2, 0
+_08100AF2:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x14]
+ cmp r0, r4
+ beq _08100AAC
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bcc _08100AF2
+_08100B0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100B10: .4byte gDecorations
+_08100B14: .4byte 0x0201f000
+_08100B18: .4byte gUnknown_020391B4
+_08100B1C: .4byte gMapHeader
+ thumb_func_end sub_8100A7C
+
+ thumb_func_start sub_8100B20
+sub_8100B20: @ 8100B20
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _08100B4C
+ ldr r0, [r0, 0x4]
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcs _08100B64
+ adds r3, r0, 0
+ ldr r5, [r3, 0x4]
+ ldr r0, _08100B50
+ ldrh r4, [r0]
+ ldr r6, _08100B54
+_08100B38:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _08100B58
+ ldrb r0, [r1]
+ strh r0, [r6]
+ b _08100B64
+ .align 2, 0
+_08100B4C: .4byte gMapHeader
+_08100B50: .4byte gUnknown_0202E8CC
+_08100B54: .4byte gUnknown_0202E8CE
+_08100B58:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3]
+ cmp r2, r0
+ bcc _08100B38
+_08100B64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100B20
+
+ thumb_func_start sub_8100B6C
+sub_8100B6C: @ 8100B6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r7, 0
+ b _08100C64
+_08100B7C:
+ lsls r3, r7, 3
+ ldr r0, _08100BE0
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ ldr r2, _08100BE4
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 5
+ ldr r5, _08100BE8
+ adds r0, r5
+ ldrb r2, [r0, 0x11]
+ ldr r5, _08100BE4
+ ldr r0, [r5, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+ mov r9, r1
+ movs r5, 0xF
+ mov r10, r5
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ adds r5, r3, 0
+ adds r3, r7, 0x1
+ str r3, [sp]
+ cmp r2, 0x4
+ beq _08100C5E
+ cmp r6, 0x29
+ bne _08100BD0
+ mov r0, r9
+ adds r0, 0x7
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _08100BD0
+ ldrb r0, [r4, 0x2]
+ adds r0, 0x1
+ strb r0, [r4, 0x2]
+_08100BD0:
+ movs r6, 0
+ ldr r1, _08100BE0
+ adds r2, r5, 0
+ adds r0, r5, r1
+ adds r3, r7, 0x1
+ str r3, [sp]
+ b _08100C4E
+ .align 2, 0
+_08100BE0: .4byte gUnknown_020391B4
+_08100BE4: .4byte 0x0201f000
+_08100BE8: .4byte gDecorations
+_08100BEC:
+ movs r4, 0
+ adds r0, r2, r1
+ adds r7, r6, 0x1
+ str r7, [sp, 0x4]
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ bcs _08100C42
+ ldr r0, _08100C7C
+ adds r0, r5
+ mov r8, r0
+ subs r1, r6, 0x7
+ str r1, [sp, 0x8]
+_08100C04:
+ adds r0, r4, 0x7
+ add r0, r9
+ ldr r1, _08100C80
+ ldr r3, [r1]
+ mov r7, r10
+ subs r2, r7, r6
+ ldr r1, [r3]
+ muls r2, r1
+ mov r7, r9
+ adds r1, r7, r4
+ adds r1, r2
+ ldr r2, [r3, 0xC]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r2, r3, 0
+ orrs r2, r1
+ mov r7, r10
+ ldr r3, [sp, 0x8]
+ subs r1, r7, r3
+ bl MapGridSetMetatileEntryAt
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r7, r8
+ ldrb r7, [r7, 0x1]
+ cmp r4, r7
+ bcc _08100C04
+_08100C42:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r1, _08100C7C
+ adds r2, r5, 0
+ adds r0, r5, r1
+_08100C4E:
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bcc _08100BEC
+ ldr r2, _08100C7C
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ bl sub_8100A60
+_08100C5E:
+ ldr r3, [sp]
+ lsls r0, r3, 24
+ lsrs r7, r0, 24
+_08100C64:
+ ldr r0, _08100C84
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08100B7C
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100C7C: .4byte gUnknown_020391B4
+_08100C80: .4byte gMapHeader
+_08100C84: .4byte gUnknown_02039234
+ thumb_func_end sub_8100B6C
+
+ thumb_func_start sub_8100C88
+sub_8100C88: @ 8100C88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08100CAC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08100CC4
+ cmp r0, 0x1
+ bgt _08100CB0
+ cmp r0, 0
+ beq _08100CBA
+ b _08100D24
+ .align 2, 0
+_08100CAC: .4byte gTasks
+_08100CB0:
+ cmp r0, 0x2
+ beq _08100CF4
+ cmp r0, 0x3
+ beq _08100D08
+ b _08100D24
+_08100CBA:
+ bl sub_8100B6C
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100CC4:
+ ldr r0, _08100CEC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100D24
+ bl DrawWholeMapView
+ ldr r0, _08100CF0
+ bl ScriptContext1_SetupScript
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ strh r0, [r5, 0xC]
+ b _08100D24
+ .align 2, 0
+_08100CEC: .4byte gPaletteFade
+_08100CF0: .4byte gUnknown_081A2F8A
+_08100CF4:
+ bl ScriptContext2_Enable
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl pal_fill_black
+ movs r0, 0x3
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100D08:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100D24
+ ldr r0, _08100D2C
+ strh r0, [r5, 0x22]
+ ldr r1, _08100D30
+ ldr r2, _08100D34
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100D24:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100D2C: .4byte 0x0000ffff
+_08100D30: .4byte gSecretBaseText_DecorReturned
+_08100D34: .4byte sub_81010F0
+ thumb_func_end sub_8100C88
+
+ thumb_func_start sub_8100D38
+sub_8100D38: @ 8100D38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08100D68
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcs _08100D7C
+ adds r5, r4, 0
+ ldr r1, _08100D6C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+_08100D56:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08100D70
+ strh r2, [r1, 0x22]
+ movs r0, 0x1
+ b _08100D7E
+ .align 2, 0
+_08100D68: .4byte 0x0201f000
+_08100D6C: .4byte gTasks
+_08100D70:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcc _08100D56
+_08100D7C:
+ movs r0, 0
+_08100D7E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100D38
+
+ thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
+SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ bl player_get_direction_lower_nybble
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r3, _08100DD8
+ ldr r2, _08100DDC
+ ldr r4, _08100DE0
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ bl sub_81016C8
+ ldr r0, _08100DE4
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ ldr r0, _08100DE8
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08100DF0
+ ldr r1, _08100DEC
+ str r0, [sp]
+ movs r0, 0xC1
+ b _08100DF8
+ .align 2, 0
+_08100DD8: .4byte gUnknown_020391A8
+_08100DDC: .4byte gSprites
+_08100DE0: .4byte gUnknown_03004880
+_08100DE4: .4byte gSpriteTemplate_83ECA88
+_08100DE8: .4byte gSaveBlock2
+_08100DEC: .4byte SpriteCallbackDummy
+_08100DF0:
+ ldr r1, _08100E5C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_08100DF8:
+ movs r2, 0x88
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _08100E60
+ strb r0, [r1]
+ ldr r6, _08100E64
+ ldr r0, _08100E60
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r5, _08100E68
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r0, _08100E6C
+ ldr r0, [r0, 0x4]
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r0, 0x5]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100E5C: .4byte SpriteCallbackDummy
+_08100E60: .4byte gUnknown_020391A9
+_08100E64: .4byte gSprites
+_08100E68: .4byte gUnknown_020391A8
+_08100E6C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
+
+ thumb_func_start sub_8100E70
+sub_8100E70: @ 8100E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08100E94
+ adds r4, r0, r1
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08100EC4
+ cmp r0, 0x1
+ bgt _08100E98
+ cmp r0, 0
+ beq _08100E9E
+ b _08100EE6
+ .align 2, 0
+_08100E94: .4byte gUnknown_03004B28
+_08100E98:
+ cmp r0, 0x2
+ beq _08100ED2
+ b _08100EE6
+_08100E9E:
+ ldr r0, _08100EC0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100EE6
+ adds r0, r5, 0
+ bl sub_80FF0E0
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ bl sub_8072DEC
+ b _08100EE6
+ .align 2, 0
+_08100EC0: .4byte gPaletteFade
+_08100EC4:
+ bl SetUpPuttingAwayDecorationPlayerAvatar
+ bl pal_fill_black
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ b _08100EE6
+_08100ED2:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100EE6
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl sub_8100EEC
+_08100EE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E70
+
+ thumb_func_start sub_8100EEC
+sub_8100EEC: @ 8100EEC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r4, _08100F70
+ ldr r3, _08100F74
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ strh r6, [r0, 0x3C]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08100F78
+ str r1, [r0]
+ ldr r2, _08100F7C
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x88
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x48
+ strh r1, [r0, 0x22]
+ ldr r1, _08100F80
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x1C]
+ ldr r1, _08100F84
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100F70: .4byte gSprites
+_08100F74: .4byte gUnknown_020391A8
+_08100F78: .4byte sub_8101698
+_08100F7C: .4byte gUnknown_020391A9
+_08100F80: .4byte gTasks
+_08100F84: .4byte sub_8100494
+ thumb_func_end sub_8100EEC
+
+ thumb_func_start sub_8100F88
+sub_8100F88: @ 8100F88
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08100FB0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8101024
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100FB0: .4byte gTasks
+ thumb_func_end sub_8100F88
+
+ thumb_func_start sub_8100FB4
+sub_8100FB4: @ 8100FB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810100C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ ldr r3, _08101010
+ ldr r5, _08101014
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _08101018
+ str r1, [r0]
+ ldr r1, _0810101C
+ ldr r2, _08101020
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810100C: .4byte gTasks
+_08101010: .4byte gSprites
+_08101014: .4byte gUnknown_020391A8
+_08101018: .4byte SpriteCallbackDummy
+_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
+_08101020: .4byte sub_810156C
+ thumb_func_end sub_8100FB4
+
+ thumb_func_start sub_8101024
+sub_8101024: @ 8101024
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8101460
+ ldr r0, _08101040
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810104C
+ ldr r1, _08101044
+ ldr r2, _08101048
+ b _081010B0
+ .align 2, 0
+_08101040: .4byte gUnknown_02039234
+_08101044: .4byte gSecretBaseText_ReturnDecor
+_08101048: .4byte sub_8101518
+_0810104C:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, _081010BC
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057238
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101082
+ adds r0, r4, 0
+ bl sub_805738C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081010D4
+_08101082:
+ ldr r3, _081010C0
+ ldr r4, _081010C4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _081010C8
+ str r1, [r0]
+ ldr r1, _081010CC
+ ldr r2, _081010D0
+_081010B0:
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _081010E0
+ .align 2, 0
+_081010BC: .4byte gUnknown_03004B28
+_081010C0: .4byte gSprites
+_081010C4: .4byte gUnknown_020391A8
+_081010C8: .4byte SpriteCallbackDummy
+_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
+_081010D0: .4byte sub_810156C
+_081010D4:
+ ldr r1, _081010E8
+ ldr r2, _081010EC
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_081010E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081010E8: .4byte gSecretBaseText_NoDecor
+_081010EC: .4byte sub_81010F0
+ thumb_func_end sub_8101024
+
+ thumb_func_start sub_81010F0
+sub_81010F0: @ 81010F0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08101114
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810110A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101110
+_0810110A:
+ adds r0, r2, 0
+ bl sub_8100EEC
+_08101110:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101114: .4byte gMain
+ thumb_func_end sub_81010F0
+
+ thumb_func_start sub_8101118
+sub_8101118: @ 8101118
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ ldr r1, _08101130
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r1, [r0, 0x12]
+ cmp r1, 0
+ bne _08101134
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ b _08101192
+ .align 2, 0
+_08101130: .4byte gDecorations
+_08101134:
+ cmp r1, 0x1
+ bne _08101140
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ b _08101194
+_08101140:
+ cmp r1, 0x2
+ bne _0810114C
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ movs r0, 0x1
+ b _08101192
+_0810114C:
+ cmp r1, 0x3
+ bne _08101154
+ movs r0, 0x4
+ b _0810118E
+_08101154:
+ cmp r1, 0x4
+ bne _0810115E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ b _08101192
+_0810115E:
+ cmp r1, 0x5
+ bne _08101166
+ movs r0, 0x1
+ b _0810118E
+_08101166:
+ cmp r1, 0x6
+ bne _08101172
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r0, 0x3
+ b _08101192
+_08101172:
+ cmp r1, 0x7
+ bne _0810117E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ b _08101192
+_0810117E:
+ cmp r1, 0x8
+ bne _08101188
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ b _08101192
+_08101188:
+ cmp r1, 0x9
+ bne _08101194
+ movs r0, 0x3
+_0810118E:
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+_08101192:
+ strb r0, [r2, 0x2]
+_08101194:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101118
+
+ thumb_func_start sub_8101198
+sub_8101198: @ 8101198
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r5, _081011F0
+ ldr r6, _081011F4
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ movs r4, 0x4
+ orrs r3, r4
+ strb r3, [r2]
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r3, r5, 0
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r3, _081011F8
+ str r3, [r2]
+ ldr r4, _081011FC
+ ldrb r3, [r4]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ lsrs r0, 20
+ adds r0, 0x88
+ strh r0, [r2, 0x20]
+ ldrb r2, [r4]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ lsrs r1, 20
+ adds r1, 0x48
+ strh r1, [r0, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081011F0: .4byte gSprites
+_081011F4: .4byte gUnknown_020391A8
+_081011F8: .4byte SpriteCallbackDummy
+_081011FC: .4byte gUnknown_020391A9
+ thumb_func_end sub_8101198
+
+ thumb_func_start sub_8101200
+sub_8101200: @ 8101200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0810128C
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r2, 0xA]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _08101290
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r4, r0, 4
+ movs r5, 0xF
+ ands r5, r0
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0810125A
+ adds r0, r4, 0x7
+ adds r1, r5, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810125A
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+_0810125A:
+ cmp r7, r4
+ bcc _08101294
+ ldrb r1, [r6, 0x1]
+ adds r0, r4, r1
+ cmp r7, r0
+ bge _08101294
+ ldrb r0, [r6, 0x2]
+ subs r0, r5, r0
+ cmp r8, r0
+ ble _08101294
+ cmp r8, r5
+ bhi _08101294
+ subs r0, r7, r4
+ adds r0, 0x1
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ subs r1, r5, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8101198
+ movs r0, 0x1
+ b _08101296
+ .align 2, 0
+_0810128C: .4byte gTasks
+_08101290: .4byte 0x0201f000
+_08101294:
+ movs r0, 0
+_08101296:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101200
+
+ thumb_func_start sub_81012A0
+sub_81012A0: @ 81012A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0810130C
+ ldr r3, _08101310
+ ldr r0, _08101314
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r1, [r0]
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r7, r0, 4
+ movs r6, 0xF
+ ands r6, r0
+ movs r5, 0
+ ldr r0, _08101318
+ mov r8, r0
+ mov r9, r3
+_081012CA:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldr r2, _0810131C
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r7
+ bne _08101328
+ ldr r2, _08101320
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r6
+ bne _08101328
+ ldr r0, _08101324
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101328
+ ldr r0, _08101314
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r9
+ ldrh r1, [r4]
+ strh r1, [r0, 0x4]
+ b _08101332
+ .align 2, 0
+_0810130C: .4byte 0x0201f000
+_08101310: .4byte gUnknown_020391B4
+_08101314: .4byte gUnknown_02039234
+_08101318: .4byte gSaveBlock1
+_0810131C: .4byte 0x00000c24
+_08101320: .4byte 0x00000c26
+_08101324: .4byte 0x00000c34
+_08101328:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _081012CA
+_08101332:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81012A0
+
+ thumb_func_start sub_8101340
+sub_8101340: @ 8101340
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ b _081013A2
+_0810134A:
+ ldr r0, [r0]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810139C
+ ldr r0, _08101390
+ ldrb r2, [r1]
+ lsls r1, r2, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _0810139C
+ ldr r5, _08101394
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl sub_8101118
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ adds r2, r5, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _0810139C
+ strb r6, [r5]
+ bl sub_81012A0
+ ldr r0, _08101398
+ strb r4, [r0]
+ movs r0, 0x1
+ b _081013AC
+ .align 2, 0
+_08101390: .4byte gDecorations
+_08101394: .4byte gUnknown_020391B4
+_08101398: .4byte gUnknown_02039234
+_0810139C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081013A2:
+ ldr r0, _081013B4
+ ldrb r1, [r0, 0x8]
+ cmp r6, r1
+ bcc _0810134A
+ movs r0, 0
+_081013AC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081013B4: .4byte 0x0201f000
+ thumb_func_end sub_8101340
+
+ thumb_func_start sub_81013B8
+sub_81013B8: @ 81013B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r4, 0
+ ldr r7, _08101450
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcs _0810143E
+ adds r6, r7, 0
+ ldr r5, _08101454
+_081013EA:
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r3, r0, 4
+ movs r2, 0xF
+ ands r2, r0
+ cmp r1, 0
+ beq _08101432
+ ldr r0, _08101458
+ lsls r1, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _08101432
+ ldr r0, [sp]
+ cmp r0, r3
+ bhi _08101432
+ cmp r10, r2
+ bhi _08101432
+ cmp r9, r3
+ bcc _08101432
+ cmp r8, r2
+ bcc _08101432
+ ldr r0, _0810145C
+ ldrb r1, [r5]
+ lsls r1, 3
+ adds r1, r0
+ strb r4, [r1]
+ bl sub_81012A0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08101432:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcc _081013EA
+_0810143E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101450: .4byte 0x0201f000
+_08101454: .4byte gUnknown_02039234
+_08101458: .4byte gDecorations
+_0810145C: .4byte gUnknown_020391B4
+ thumb_func_end sub_81013B8
+
+ thumb_func_start sub_8101460
+sub_8101460: @ 8101460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _081014B8
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r6, 0
+ bl sub_8101340
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101504
+ movs r5, 0
+ ldr r0, _081014BC
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcs _081014D2
+ adds r7, r4, 0
+_08101486:
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081014C4
+ ldr r4, _081014C0
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl sub_8101118
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081014C4
+ strb r5, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _081014D2
+ .align 2, 0
+_081014B8: .4byte gUnknown_02039234
+_081014BC: .4byte 0x0201f000
+_081014C0: .4byte gUnknown_020391B4
+_081014C4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810150C
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcc _08101486
+_081014D2:
+ ldr r0, _08101510
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08101504
+ ldr r0, _0810150C
+ ldr r2, _08101514
+ ldrb r1, [r2]
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ movs r3, 0xF
+ ands r3, r1
+ ldrb r1, [r2, 0x2]
+ subs r1, r3, r1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r2, 0x1]
+ adds r2, r0
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_81013B8
+_08101504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810150C: .4byte 0x0201f000
+_08101510: .4byte gUnknown_02039234
+_08101514: .4byte gUnknown_020391B4
+ thumb_func_end sub_8101460
+
+ thumb_func_start sub_8101518
+sub_8101518: @ 8101518
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101538
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101538: .4byte gUnknown_083EC9CC
+ thumb_func_end sub_8101518
+
+ thumb_func_start sub_810153C
+sub_810153C: @ 810153C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08101564
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08101568
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101564: .4byte gTasks
+_08101568: .4byte sub_8100C88
+ thumb_func_end sub_810153C
+
+ thumb_func_start sub_810156C
+sub_810156C: @ 810156C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810158C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810158C: .4byte gUnknown_083EC9D4
+ thumb_func_end sub_810156C
+
+ thumb_func_start sub_8101590
+sub_8101590: @ 8101590
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_81015B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101590
+
+ thumb_func_start sub_81015B0
+sub_81015B0: @ 81015B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081015D8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081015DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081015D8: .4byte gTasks
+_081015DC: .4byte sub_81015E0
+ thumb_func_end sub_81015B0
+
+ thumb_func_start sub_81015E0
+sub_81015E0: @ 81015E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08101600
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08101604
+ cmp r0, 0x1
+ beq _08101620
+ b _08101636
+ .align 2, 0
+_08101600: .4byte gTasks
+_08101604:
+ ldr r0, _0810161C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101636
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08101636
+ .align 2, 0
+_0810161C: .4byte gPaletteFade
+_08101620:
+ bl sub_81016F4
+ ldr r0, _0810163C
+ ldr r1, _08101640
+ str r1, [r0]
+ ldr r0, _08101644
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08101636:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810163C: .4byte gUnknown_0300485C
+_08101640: .4byte sub_8101678
+_08101644: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_81015E0
+
+ thumb_func_start sub_8101648
+sub_8101648: @ 8101648
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101668
+ ldr r0, _08101670
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08101674
+ str r0, [r1]
+_08101668:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101670: .4byte gTasks
+_08101674: .4byte sub_80FE2EC
+ thumb_func_end sub_8101648
+
+ thumb_func_start sub_8101678
+sub_8101678: @ 8101678
+ push {lr}
+ bl pal_fill_black
+ bl MenuDisplayMessageBox
+ bl sub_80FE220
+ ldr r0, _08101694
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101694: .4byte sub_8101648
+ thumb_func_end sub_8101678
+
+ thumb_func_start sub_8101698
+sub_8101698: @ 8101698
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0xF
+ ble _081016B8
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081016C4
+_081016B8:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_081016C4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101698
+
+ thumb_func_start sub_81016C8
+sub_81016C8: @ 81016C8
+ push {lr}
+ ldr r0, _081016DC
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _081016E4
+ ldr r0, _081016E0
+ bl LoadSpritePalette
+ b _081016EA
+ .align 2, 0
+_081016DC: .4byte gSaveBlock2
+_081016E0: .4byte gUnknown_083ECA5C
+_081016E4:
+ ldr r0, _081016F0
+ bl LoadSpritePalette
+_081016EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081016F0: .4byte gUnknown_083ECA64
+ thumb_func_end sub_81016C8
+
+ thumb_func_start sub_81016F4
+sub_81016F4: @ 81016F4
+ push {lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81016F4
+
+ thumb_func_start sub_8101700
+sub_8101700: @ 8101700
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101728
+ ldr r1, _08101720
+ ldr r2, _08101724
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101742
+ .align 2, 0
+_08101720: .4byte gSecretBaseText_NoDecors
+_08101724: .4byte sub_80FE428
+_08101728:
+ ldr r1, _08101748
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810174C
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101748: .4byte gTasks
+_0810174C: .4byte gUnknown_020388F6
+ thumb_func_end sub_8101700
+
+ thumb_func_start unref_sub_8101750
+unref_sub_8101750: @ 8101750
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101778
+ ldr r1, _08101770
+ ldr r2, _08101774
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101792
+ .align 2, 0
+_08101770: .4byte gSecretBaseText_NoDecors
+_08101774: .4byte sub_80FE428
+_08101778:
+ ldr r1, _08101798
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810179C
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101792:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101798: .4byte gTasks
+_0810179C: .4byte gUnknown_020388F6
+ thumb_func_end unref_sub_8101750
+
+ thumb_func_start sub_81017A0
+sub_81017A0: @ 81017A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101808
+ ldr r0, _081017EC
+ ldr r1, _081017F0
+ ldrb r2, [r1]
+ ldr r1, _081017F4
+ ldr r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 5
+ ldr r2, _081017F8
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _081017FC
+ ldr r1, _08101800
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _08101804
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101814
+ .align 2, 0
+_081017EC: .4byte gStringVar1
+_081017F0: .4byte gUnknown_020388F5
+_081017F4: .4byte gUnknown_020388D0
+_081017F8: .4byte gDecorations + 0x1
+_081017FC: .4byte gStringVar4
+_08101800: .4byte gSecretBaseText_WillBeDiscarded
+_08101804: .4byte sub_8101824
+_08101808:
+ ldr r1, _0810181C
+ ldr r2, _08101820
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08101814:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810181C: .4byte gSecretBaseText_DecorInUse
+_08101820: .4byte sub_80FEFF4
+ thumb_func_end sub_81017A0
+
+ thumb_func_start sub_8101824
+sub_8101824: @ 8101824
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101844
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101844: .4byte gUnknown_083ECAA0
+ thumb_func_end sub_8101824
+
+ thumb_func_start sub_8101848
+sub_8101848: @ 8101848
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xE
+ bl MenuZeroFillWindowRect
+ ldr r6, _08101890
+ ldrb r1, [r6]
+ ldr r5, _08101894
+ ldr r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8109A30
+ ldrb r1, [r6]
+ ldr r0, [r5]
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80FF098
+ ldr r1, _08101898
+ ldr r2, _0810189C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101890: .4byte gUnknown_020388F5
+_08101894: .4byte gUnknown_020388D0
+_08101898: .4byte gSecretBaseText_DecorThrownAway
+_0810189C: .4byte sub_80FEFF4
+ thumb_func_end sub_8101848
+
+ thumb_func_start sub_81018A0
+sub_81018A0: @ 81018A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81019B0
+ ldr r0, _081018B4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081018B4: .4byte sub_81018B8
+ thumb_func_end sub_81018A0
+
+ thumb_func_start sub_81018B8
+sub_81018B8: @ 81018B8
+ push {lr}
+ ldr r0, _081018D0
+ ldr r1, _081018D4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _0810194A
+ lsls r0, 2
+ ldr r1, _081018D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081018D0: .4byte gMain
+_081018D4: .4byte 0x0000043c
+_081018D8: .4byte _081018DC
+ .align 2, 0
+_081018DC:
+ .4byte _081018F8
+ .4byte _08101902
+ .4byte _08101908
+ .4byte _08101912
+ .4byte _08101918
+ .4byte _0810191E
+ .4byte _08101938
+_081018F8:
+ bl sub_8101A28
+ bl sub_8101BA4
+ b _08101922
+_08101902:
+ bl sub_8101A8C
+ b _08101922
+_08101908:
+ bl sub_8101AE0
+ bl sub_8101B04
+ b _08101922
+_08101912:
+ bl sub_8101C84
+ b _08101922
+_08101918:
+ bl sub_8101CA0
+ b _08101922
+_0810191E:
+ bl sub_8101CC0
+_08101922:
+ ldr r1, _08101930
+ ldr r0, _08101934
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810194A
+ .align 2, 0
+_08101930: .4byte gMain
+_08101934: .4byte 0x0000043c
+_08101938:
+ bl sub_8101CD4
+ bl sub_8101CEC
+ bl sub_8101A44
+ ldr r0, _08101950
+ bl SetMainCallback2
+_0810194A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101950: .4byte sub_8101954
+ thumb_func_end sub_81018B8
+
+ thumb_func_start sub_8101954
+sub_8101954: @ 8101954
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101954
+
+ thumb_func_start sub_810196C
+sub_810196C: @ 810196C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _081019A8
+ ldr r2, _081019AC
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r0, r2, 0
+ adds r0, 0x5E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019A8: .4byte REG_WIN0H
+_081019AC: .4byte 0x02000000
+ thumb_func_end sub_810196C
+
+ thumb_func_start sub_81019B0
+sub_81019B0: @ 81019B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081019E4
+ movs r1, 0xFF
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081019E8
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ adds r0, 0xA
+ adds r1, r5, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019E4: .4byte nullsub_67
+_081019E8: .4byte gTasks
+ thumb_func_end sub_81019B0
+
+ thumb_func_start sub_81019EC
+sub_81019EC: @ 81019EC
+ push {lr}
+ ldr r0, _08101A18
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ ldr r0, _08101A1C
+ adds r2, r0
+ ldr r1, _08101A20
+ ldrh r0, [r2, 0x8]
+ strb r0, [r1, 0x1]
+ adds r2, 0xA
+ adds r1, 0x64
+ adds r0, r2, 0
+ bl LoadWordFromTwoHalfwords
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A18: .4byte nullsub_67
+_08101A1C: .4byte gTasks
+_08101A20: .4byte 0x02000000
+ thumb_func_end sub_81019EC
+
+ thumb_func_start nullsub_67
+nullsub_67: @ 8101A24
+ bx lr
+ thumb_func_end nullsub_67
+
+ thumb_func_start sub_8101A28
+sub_8101A28: @ 8101A28
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101A28
+
+ thumb_func_start sub_8101A44
+sub_8101A44: @ 8101A44
+ push {r4,lr}
+ ldr r0, _08101A7C
+ bl SetVBlankCallback
+ ldr r3, _08101A80
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08101A84
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08101A88
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A7C: .4byte sub_810196C
+_08101A80: .4byte 0x04000208
+_08101A84: .4byte 0x04000200
+_08101A88: .4byte REG_DISPSTAT
+ thumb_func_end sub_8101A44
+
+ thumb_func_start sub_8101A8C
+sub_8101A8C: @ 8101A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08101AD8
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08101ADC
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08101AAA:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _08101AAA
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101AD8: .4byte 0x040000d4
+_08101ADC: .4byte 0x81000800
+ thumb_func_end sub_8101A8C
+
+ thumb_func_start sub_8101AE0
+sub_8101AE0: @ 8101AE0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08101AFC
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08101B00
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08101AFC: .4byte 0x040000d4
+_08101B00: .4byte 0x81000200
+ thumb_func_end sub_8101AE0
+
+ thumb_func_start sub_8101B04
+sub_8101B04: @ 8101B04
+ push {r4,r5,lr}
+ ldr r5, _08101B70
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _08101B74
+ strh r1, [r2]
+ ldr r3, _08101B78
+ strh r1, [r3]
+ ldr r4, _08101B7C
+ strh r1, [r4]
+ ldr r0, _08101B80
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B84
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _08101B88
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _08101B8C
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _08101B90
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r0, _08101B94
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B98
+ ldr r2, _08101B9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08101BA0
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B70: .4byte REG_BG0CNT
+_08101B74: .4byte REG_BG1CNT
+_08101B78: .4byte REG_BG2CNT
+_08101B7C: .4byte REG_BG3CNT
+_08101B80: .4byte REG_BG0HOFS
+_08101B84: .4byte 0x00001f08
+_08101B88: .4byte 0x00001c01
+_08101B8C: .4byte 0x00001d02
+_08101B90: .4byte 0x00001e02
+_08101B94: .4byte REG_WININ
+_08101B98: .4byte REG_BLDCNT
+_08101B9C: .4byte 0x00001048
+_08101BA0: .4byte 0x00000809
+ thumb_func_end sub_8101B04
+
+ thumb_func_start sub_8101BA4
+sub_8101BA4: @ 8101BA4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_81019EC
+ ldr r5, _08101C74
+ movs r4, 0
+ strb r4, [r5]
+ strb r4, [r5, 0x2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ strb r1, [r5, 0x3]
+ strb r4, [r5, 0x4]
+ movs r0, 0
+ strh r4, [r5, 0x8]
+ strb r0, [r5, 0xA]
+ strb r0, [r5, 0xB]
+ ldr r0, _08101C78
+ ldr r1, _08101C7C
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0xC]
+ strh r4, [r5, 0xE]
+ strh r4, [r5, 0x10]
+ strh r4, [r5, 0x12]
+ strh r4, [r5, 0x18]
+ movs r0, 0x8
+ strh r0, [r5, 0x1A]
+ adds r1, r5, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl GetCurrentMapMusic
+ adds r1, r5, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r7, 0
+ adds r6, r5, 0
+ ldr r2, _08101C80
+ mov r9, r2
+ movs r0, 0x1C
+ adds r0, r6
+ mov r8, r0
+_08101C14:
+ lsls r5, r7, 1
+ adds r0, r6, 0
+ adds r0, 0x22
+ adds r0, r5, r0
+ movs r1, 0
+ strh r1, [r0]
+ adds r4, r6, 0
+ adds r4, 0x28
+ adds r4, r5, r4
+ ldrb r0, [r6, 0x3]
+ lsls r0, 1
+ lsls r1, r7, 2
+ adds r0, r1
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x15
+ bl __modsi3
+ strh r0, [r4]
+ add r5, r8
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ movs r2, 0xFC
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r5]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r1, r2, 0
+ bl __modsi3
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08101C14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C74: .4byte 0x02000000
+_08101C78: .4byte gSaveBlock1
+_08101C7C: .4byte 0x00000494
+_08101C80: .4byte gUnknown_083ECCF8
+ thumb_func_end sub_8101BA4
+
+ thumb_func_start sub_8101C84
+sub_8101C84: @ 8101C84
+ push {r4,lr}
+ ldr r4, _08101C9C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C9C: .4byte gWindowConfig_81E7128
+ thumb_func_end sub_8101C84
+
+ thumb_func_start sub_8101CA0
+sub_8101CA0: @ 8101CA0
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ ldr r1, _08101CBC
+ movs r0, 0x80
+ strb r0, [r1]
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101CBC: .4byte gOamLimit
+ thumb_func_end sub_8101CA0
+
+ thumb_func_start sub_8101CC0
+sub_8101CC0: @ 8101CC0
+ push {lr}
+ bl sub_8106448
+ bl sub_81064B8
+ bl sub_81063C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CC0
+
+ thumb_func_start sub_8101CD4
+sub_8101CD4: @ 8101CD4
+ push {lr}
+ bl sub_8104EA8
+ bl sub_8104F8C
+ bl sub_8103DC8
+ bl sub_81050C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CD4
+
+ thumb_func_start sub_8101CEC
+sub_8101CEC: @ 8101CEC
+ push {lr}
+ bl sub_8104048
+ bl sub_8102DA8
+ bl sub_8104C5C
+ bl sub_8101D04
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CEC
+
+ thumb_func_start sub_8101D04
+sub_8101D04: @ 8101D04
+ push {r4,lr}
+ ldr r4, _08101D20
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D20: .4byte sub_8101D24
+ thumb_func_end sub_8101D04
+
+ thumb_func_start sub_8101D24
+sub_8101D24: @ 8101D24
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08101D50
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _08101D54
+ ldr r5, _08101D58
+_08101D36:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101D36
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D50: .4byte gUnknown_083ECAAC
+_08101D54: .4byte 0x02000000
+_08101D58: .4byte gTasks
+ thumb_func_end sub_8101D24
+
+ thumb_func_start sub_8101D5C
+sub_8101D5C: @ 8101D5C
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r4, _08101D88
+ ldrb r0, [r4, 0x2]
+ bl sub_810423C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101D88: .4byte 0x02000000
+ thumb_func_end sub_8101D5C
+
+ thumb_func_start sub_8101D8C
+sub_8101D8C: @ 8101D8C
+ push {lr}
+ ldr r0, _08101DA8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101DA2
+ ldr r1, _08101DAC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08101DA2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101DA8: .4byte gPaletteFade
+_08101DAC: .4byte 0x02000000
+ thumb_func_end sub_8101D8C
+
+ thumb_func_start sub_8101DB0
+sub_8101DB0: @ 8101DB0
+ push {lr}
+ ldr r2, _08101DD8
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ strh r0, [r2, 0x12]
+ strh r0, [r2, 0x18]
+ ldrb r1, [r2, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r2, 0x4]
+ movs r0, 0x4
+ strb r0, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _08101DDC
+ movs r0, 0x19
+ strb r0, [r2]
+ b _08101DEC
+ .align 2, 0
+_08101DD8: .4byte 0x02000000
+_08101DDC:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _08101DEC
+ movs r0, 0x3
+ strb r0, [r2]
+ movs r0, 0x4
+ bl sub_8104CAC
+_08101DEC:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101DB0
+
+ thumb_func_start sub_8101DF4
+sub_8101DF4: @ 8101DF4
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101E06
+ ldr r1, _08101E0C
+ movs r0, 0x4
+ strb r0, [r1]
+_08101E06:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E0C: .4byte 0x02000000
+ thumb_func_end sub_8101DF4
+
+ thumb_func_start sub_8101E10
+sub_8101E10: @ 8101E10
+ push {lr}
+ movs r0, 0
+ bl sub_8104CAC
+ ldr r2, _08101E34
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08101E38
+ cmp r1, r0
+ ble _08101E2C
+ movs r0, 0x17
+ strb r0, [r2]
+_08101E2C:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E34: .4byte 0x02000000
+_08101E38: .4byte 0x0000270e
+ thumb_func_end sub_8101E10
+
+ thumb_func_start sub_8101E3C
+sub_8101E3C: @ 8101E3C
+ push {r4,lr}
+ ldr r0, _08101E58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08101E60
+ movs r0, 0
+ bl sub_8104AB8
+ ldr r1, _08101E5C
+ movs r0, 0x8
+ strb r0, [r1]
+ b _08101F1A
+ .align 2, 0
+_08101E58: .4byte gMain
+_08101E5C: .4byte 0x02000000
+_08101E60:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EC2
+ ldr r2, _08101EB8
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ subs r0, 0x3
+ movs r3, 0x12
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ cmp r0, 0
+ blt _08101EBC
+ ldrh r4, [r2, 0x12]
+ adds r0, r1, 0
+ cmp r0, 0x2
+ bgt _08101E9C
+_08101E84:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8103D50
+ lsls r0, r4, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101E84
+_08101E9C:
+ ldr r1, _08101EB8
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x3
+ ldrh r3, [r1, 0x12]
+ adds r0, r3
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0x9
+ strb r0, [r1]
+ movs r0, 0x5F
+ bl PlaySE
+ b _08101F1A
+ .align 2, 0
+_08101EB8: .4byte 0x02000000
+_08101EBC:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _08101F1A
+_08101EC2:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EEC
+ ldr r4, _08101F24
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08101EEC
+ movs r0, 0x5F
+ bl PlaySE
+ ldrb r0, [r4, 0x12]
+ bl sub_8103D50
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_08101EEC:
+ ldr r0, _08101F24
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ ldr r2, _08101F28
+ adds r3, r0, 0
+ cmp r1, 0x2
+ bgt _08101F08
+ cmp r1, 0
+ beq _08101F0C
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F0C
+_08101F08:
+ movs r0, 0x9
+ strb r0, [r3]
+_08101F0C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F1A
+ movs r0, 0x15
+ strb r0, [r3]
+_08101F1A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F24: .4byte 0x02000000
+_08101F28: .4byte gMain
+ thumb_func_end sub_8101E3C
+
+ thumb_func_start sub_8101F2C
+sub_8101F2C: @ 8101F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101F2C
+
+ thumb_func_start sub_8101F44
+sub_8101F44: @ 8101F44
+ push {lr}
+ ldr r0, _08101F58
+ bl sub_8101F2C
+ ldr r1, _08101F5C
+ movs r0, 0x7
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F58: .4byte gOtherText_DontHaveThreeCoins
+_08101F5C: .4byte 0x02000000
+ thumb_func_end sub_8101F44
+
+ thumb_func_start sub_8101F60
+sub_8101F60: @ 8101F60
+ push {lr}
+ ldr r0, _08101F80
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F78
+ bl MenuZeroFillScreen
+ ldr r1, _08101F84
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F78:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F80: .4byte gMain
+_08101F84: .4byte 0x02000000
+ thumb_func_end sub_8101F60
+
+ thumb_func_start sub_8101F88
+sub_8101F88: @ 8101F88
+ push {lr}
+ bl sub_8104AEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101F9A
+ ldr r1, _08101FA0
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101FA0: .4byte 0x02000000
+ thumb_func_end sub_8101F88
+
+ thumb_func_start sub_8101FA4
+sub_8101FA4: @ 8101FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8102484
+ bl sub_8104DA4
+ movs r0, 0
+ bl sub_8102DEC
+ movs r0, 0x1
+ bl sub_8102DEC
+ movs r0, 0x2
+ bl sub_8102DEC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r4, _08101FDC
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08101FE0
+ bl sub_810430C
+ movs r0, 0xA
+ b _08101FE8
+ .align 2, 0
+_08101FDC: .4byte 0x02000000
+_08101FE0:
+ movs r0, 0x1
+ bl sub_8104CAC
+ movs r0, 0xB
+_08101FE8:
+ strb r0, [r4]
+ ldr r4, _08102004
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08101FFC
+ bl dp15_jump_random_unknown
+ strh r0, [r4, 0x1A]
+_08101FFC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102004: .4byte 0x02000000
+ thumb_func_end sub_8101FA4
+
+ thumb_func_start sub_8102008
+sub_8102008: @ 8102008
+ push {lr}
+ bl sub_810432C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102028
+ movs r0, 0x1
+ bl sub_8104CAC
+ ldr r1, _08102030
+ ldrb r2, [r1, 0x4]
+ movs r0, 0xDF
+ ands r0, r2
+ strb r0, [r1, 0x4]
+ movs r0, 0xB
+ strb r0, [r1]
+_08102028:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102030: .4byte 0x02000000
+ thumb_func_end sub_8102008
+
+ thumb_func_start sub_8102034
+sub_8102034: @ 8102034
+ push {lr}
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _0810204E
+ bl sub_81024F0
+ ldr r1, _08102054
+ movs r0, 0xC
+ strb r0, [r1]
+_0810204E:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102054: .4byte 0x02000000
+ thumb_func_end sub_8102034
+
+ thumb_func_start sub_8102058
+sub_8102058: @ 8102058
+ push {r4,lr}
+ ldr r0, _08102088
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810207E
+ movs r0, 0x18
+ bl PlaySE
+ ldr r4, _0810208C
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E1C
+ ldrb r0, [r4, 0x18]
+ bl sub_8103C14
+ movs r0, 0xD
+ strb r0, [r4]
+_0810207E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102088: .4byte gMain
+_0810208C: .4byte 0x02000000
+ thumb_func_end sub_8102058
+
+ thumb_func_start sub_8102090
+sub_8102090: @ 8102090
+ push {r4,lr}
+ ldr r4, _081020BC
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E40
+ lsls r0, 24
+ cmp r0, 0
+ bne _081020C0
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r1, 0xC
+ strb r1, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081020B6
+ movs r0, 0xE
+ strb r0, [r4]
+_081020B6:
+ movs r0, 0x1
+ b _081020C2
+ .align 2, 0
+_081020BC: .4byte 0x02000000
+_081020C0:
+ movs r0, 0
+_081020C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102090
+
+ thumb_func_start sub_81020C8
+sub_81020C8: @ 81020C8
+ push {r4,lr}
+ ldr r4, _08102128
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r4, 0x4]
+ bl sub_81027A0
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _081020E8
+ subs r0, 0x1
+ strb r0, [r4, 0xA]
+ ldrb r0, [r4, 0xB]
+ adds r0, 0x1
+ strb r0, [r4, 0xB]
+_081020E8:
+ ldrh r0, [r4, 0x8]
+ cmp r0, 0
+ beq _081021B4
+ movs r0, 0xF
+ strb r0, [r4]
+ bl sub_8102A24
+ bl sub_8103F70
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xE]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0810210C
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_0810210C:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102130
+ ldr r0, _0810212C
+ bl PlayFanfare
+ movs r0, 0x6
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102128: .4byte 0x02000000
+_0810212C: .4byte 0x00000185
+_08102130:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810214C
+ ldr r0, _08102148
+ bl PlayFanfare
+ movs r0, 0x5
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102148: .4byte 0x00000185
+_0810214C:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0x2
+ bl sub_8104CAC
+_0810215A:
+ ldr r1, _081021B0
+ ldrh r3, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 1
+ ands r0, r3
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08102192
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ strb r1, [r2, 0xA]
+ strb r1, [r2, 0xB]
+ strb r1, [r2, 0x3]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+_08102192:
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081021D2
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0xF
+ bhi _081021D2
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r2, 0x2]
+ bl sub_8104064
+ b _081021D2
+ .align 2, 0
+_081021B0: .4byte 0x02000000
+_081021B4:
+ movs r0, 0x3
+ bl sub_8104CAC
+ movs r0, 0x14
+ strb r0, [r4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _081021DC
+ cmp r0, r1
+ ble _081021D2
+ strh r1, [r4, 0x10]
+_081021D2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021DC: .4byte 0x0000270f
+ thumb_func_end sub_81020C8
+
+ thumb_func_start sub_81021E0
+sub_81021E0: @ 81021E0
+ push {lr}
+ bl sub_8102A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _081021F2
+ ldr r1, _081021F8
+ movs r0, 0x10
+ strb r0, [r1]
+_081021F2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021F8: .4byte 0x02000000
+ thumb_func_end sub_81021E0
+
+ thumb_func_start sub_81021FC
+sub_81021FC: @ 81021FC
+ push {r4,lr}
+ bl sub_8103FA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102256
+ ldr r4, _08102260
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102220
+ movs r0, 0x1C
+ bl sav12_xor_increment
+_08102220:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08102236
+ movs r0, 0
+ strh r0, [r4, 0x18]
+ movs r0, 0x9
+ strb r0, [r4]
+_08102236:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08102242
+ movs r0, 0x11
+ strb r0, [r4]
+_08102242:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102256
+ cmp r2, 0
+ beq _08102256
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102256:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102260: .4byte 0x02000000
+ thumb_func_end sub_81021FC
+
+ thumb_func_start sub_8102264
+sub_8102264: @ 8102264
+ push {r4,lr}
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102294
+ ldr r4, _0810229C
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x9
+ strb r0, [r4]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102294:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810229C: .4byte 0x02000000
+ thumb_func_end sub_8102264
+
+ thumb_func_start sub_81022A0
+sub_81022A0: @ 81022A0
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081022C0
+ ldr r2, _081022C8
+ movs r0, 0x13
+ strb r0, [r2]
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081022C0
+ movs r0, 0x9
+ strb r0, [r2]
+_081022C0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022C8: .4byte 0x02000000
+ thumb_func_end sub_81022A0
+
+ thumb_func_start sub_81022CC
+sub_81022CC: @ 81022CC
+ push {lr}
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r1, _081022EC
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022EC: .4byte 0x02000000
+ thumb_func_end sub_81022CC
+
+ thumb_func_start sub_81022F0
+sub_81022F0: @ 81022F0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0810230C
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ ldr r1, _08102314
+ movs r0, 0x13
+ strb r0, [r1]
+_0810230C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102314: .4byte 0x02000000
+ thumb_func_end sub_81022F0
+
+ thumb_func_start sub_8102318
+sub_8102318: @ 8102318
+ push {lr}
+ ldr r0, _0810233C
+ bl sub_8101F2C
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ bl sub_814AB84
+ ldr r1, _08102340
+ movs r0, 0x16
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810233C: .4byte gOtherText_QuitGamePrompt
+_08102340: .4byte 0x02000000
+ thumb_func_end sub_8102318
+
+ thumb_func_start sub_8102344
+sub_8102344: @ 8102344
+ push {lr}
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0810237C
+ bl MenuZeroFillScreen
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r0, _08102378
+ ldrh r1, [r0, 0x12]
+ ldrh r2, [r0, 0xC]
+ adds r1, r2
+ strh r1, [r0, 0xC]
+ movs r1, 0x1B
+ strb r1, [r0]
+ b _08102392
+ .align 2, 0
+_08102378: .4byte 0x02000000
+_0810237C:
+ cmp r1, 0x1
+ beq _08102388
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08102392
+_08102388:
+ bl MenuZeroFillScreen
+ ldr r1, _08102398
+ movs r0, 0x5
+ strb r0, [r1]
+_08102392:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102398: .4byte 0x02000000
+ thumb_func_end sub_8102344
+
+ thumb_func_start sub_810239C
+sub_810239C: @ 810239C
+ push {lr}
+ ldr r0, _081023B0
+ bl sub_8101F2C
+ ldr r1, _081023B4
+ movs r0, 0x18
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023B0: .4byte gOtherText_MaxCoins
+_081023B4: .4byte 0x02000000
+ thumb_func_end sub_810239C
+
+ thumb_func_start sub_81023B8
+sub_81023B8: @ 81023B8
+ push {lr}
+ ldr r0, _081023D8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081023D0
+ bl MenuZeroFillScreen
+ ldr r1, _081023DC
+ movs r0, 0x5
+ strb r0, [r1]
+_081023D0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023D8: .4byte gMain
+_081023DC: .4byte 0x02000000
+ thumb_func_end sub_81023B8
+
+ thumb_func_start sub_81023E0
+sub_81023E0: @ 81023E0
+ push {lr}
+ ldr r0, _081023F4
+ bl sub_8101F2C
+ ldr r1, _081023F8
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023F4: .4byte gOtherText_OutOfCoins
+_081023F8: .4byte 0x02000000
+ thumb_func_end sub_81023E0
+
+ thumb_func_start sub_81023FC
+sub_81023FC: @ 81023FC
+ push {lr}
+ ldr r0, _0810241C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08102414
+ bl MenuZeroFillScreen
+ ldr r1, _08102420
+ movs r0, 0x1B
+ strb r0, [r1]
+_08102414:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810241C: .4byte gMain
+_08102420: .4byte 0x02000000
+ thumb_func_end sub_81023FC
+
+ thumb_func_start sub_8102424
+sub_8102424: @ 8102424
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08102454
+ ldr r4, _08102458
+ ldrh r1, [r4, 0xC]
+ ldr r2, _0810245C
+ adds r0, r2
+ movs r2, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102454: .4byte gSaveBlock1
+_08102458: .4byte 0x02000000
+_0810245C: .4byte 0x00000494
+ thumb_func_end sub_8102424
+
+ thumb_func_start sub_8102460
+sub_8102460: @ 8102460
+ push {lr}
+ ldr r0, _0810247C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08102476
+ ldr r0, _08102480
+ ldr r0, [r0, 0x64]
+ bl SetMainCallback2
+_08102476:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810247C: .4byte gPaletteFade
+_08102480: .4byte 0x02000000
+ thumb_func_end sub_8102460
+
+ thumb_func_start sub_8102484
+sub_8102484: @ 8102484
+ push {r4,lr}
+ ldr r4, _081024E4
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _081024DC
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ bne _081024DC
+ bl sub_8102540
+ lsls r0, 24
+ cmp r0, 0
+ beq _081024C0
+ bl sub_8102578
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ beq _081024C0
+ ldr r1, _081024E8
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ orrs r0, r1
+ strb r0, [r4, 0x4]
+ cmp r3, 0x1
+ bne _081024DC
+_081024C0:
+ bl sub_81025BC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ beq _081024DC
+ ldr r2, _081024E4
+ ldr r1, _081024EC
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+_081024DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081024E4: .4byte 0x02000000
+_081024E8: .4byte gUnknown_083ECE42
+_081024EC: .4byte gUnknown_083ECE48
+ thumb_func_end sub_8102484
+
+ thumb_func_start sub_81024F0
+sub_81024F0: @ 81024F0
+ push {lr}
+ ldr r1, _08102508
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08102502
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_08102502:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102508: .4byte 0x02000000
+ thumb_func_end sub_81024F0
+
+ thumb_func_start sub_810250C
+sub_810250C: @ 810250C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ movs r3, 0x1
+ ldr r4, _08102528
+_08102518:
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0810252C
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ b _0810253A
+ .align 2, 0
+_08102528: .4byte gUnknown_083ECE3A
+_0810252C:
+ lsrs r1, 1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08102518
+ movs r0, 0
+_0810253A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810250C
+
+ thumb_func_start sub_8102540
+sub_8102540: @ 8102540
+ push {r4,lr}
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08102568
+ ldr r1, _0810256C
+ movs r3, 0x12
+ ldrsh r2, [r1, r3]
+ ldrb r3, [r1, 0x1]
+ lsls r1, r3, 1
+ adds r1, r3
+ subs r1, 0x1
+ adds r2, r1
+ adds r2, r4
+ ldrb r1, [r2]
+ cmp r1, r0
+ bhi _08102570
+ movs r0, 0
+ b _08102572
+ .align 2, 0
+_08102568: .4byte gUnknown_083ECD04
+_0810256C: .4byte 0x02000000
+_08102570:
+ movs r0, 0x1
+_08102572:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102540
+
+ thumb_func_start sub_8102578
+sub_8102578: @ 8102578
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _081025B4
+_0810257E:
+ bl Random
+ movs r2, 0xFF
+ ldr r3, _081025B8
+ lsls r1, r5, 16
+ asrs r4, r1, 16
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 1
+ ldrb r3, [r3, 0x1]
+ adds r1, r3
+ adds r1, r6
+ ldrb r1, [r1]
+ ands r2, r0
+ cmp r1, r2
+ bgt _081025AA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810257E
+_081025AA:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081025B4: .4byte gUnknown_083ECD16
+_081025B8: .4byte 0x02000000
+ thumb_func_end sub_8102578
+
+ thumb_func_start sub_81025BC
+sub_81025BC: @ 81025BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08102600
+ mov r8, r0
+ ldr r5, _08102604
+ movs r7, 0x80
+ lsls r7, 17
+_081025CE:
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ lsls r2, r6, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldrb r3, [r5, 0x1]
+ adds r0, r3
+ add r0, r8
+ ldrb r3, [r0]
+ cmp r1, 0
+ bne _08102608
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102608
+ adds r3, 0xA
+ asrs r0, r7, 16
+ cmp r3, r0
+ ble _08102622
+ adds r3, r0, 0
+ b _08102622
+ .align 2, 0
+_08102600: .4byte gUnknown_083ECD28
+_08102604: .4byte 0x02000000
+_08102608:
+ asrs r0, r2, 16
+ cmp r0, 0x4
+ bne _08102622
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102622
+ lsls r0, r3, 16
+ ldr r1, _08102648
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r0, 0
+ bge _08102622
+ movs r3, 0
+_08102622:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r4
+ bgt _08102638
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081025CE
+_08102638:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102648: .4byte 0xfff60000
+ thumb_func_end sub_81025BC
+
+ thumb_func_start sub_810264C
+sub_810264C: @ 810264C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _08102660
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _08102668
+ ldr r0, _08102664
+ b _0810266A
+ .align 2, 0
+_08102660: .4byte 0x02000000
+_08102664: .4byte gUnknown_083ECDAC
+_08102668:
+ ldr r0, _0810267C
+_0810266A:
+ lsls r1, r2, 4
+ adds r1, r2
+ ldrb r3, [r3, 0x2]
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810267C: .4byte gUnknown_083ECD46
+ thumb_func_end sub_810264C
+
+ thumb_func_start sub_8102680
+sub_8102680: @ 8102680
+ push {r4-r6,lr}
+ ldr r1, _081026A4
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _081026D2
+ movs r6, 0x5
+ b _081026AE
+ .align 2, 0
+_081026A4: .4byte 0x02000000
+_081026A8:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081026AE:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ ble _081026CE
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _081026A8
+_081026CE:
+ ldr r0, _081026D8
+ strb r6, [r0, 0x5]
+_081026D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081026D8: .4byte 0x02000000
+ thumb_func_end sub_8102680
+
+ thumb_func_start sub_81026DC
+sub_81026DC: @ 81026DC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r0, _081026FC
+ lsls r4, 1
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcc _08102700
+ movs r0, 0
+ b _08102702
+ .align 2, 0
+_081026FC: .4byte gUnknown_083ECE12
+_08102700:
+ movs r0, 0x1
+_08102702:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81026DC
+
+ thumb_func_start dp15_jump_random_unknown
+dp15_jump_random_unknown: @ 8102708
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _0810271C
+ movs r2, 0x10
+ ldrsh r1, [r0, r2]
+ ldr r0, _08102720
+ cmp r1, r0
+ ble _08102724
+ movs r4, 0x4
+ b _0810273A
+ .align 2, 0
+_0810271C: .4byte 0x02000000
+_08102720: .4byte 0x0000012b
+_08102724:
+ cmp r1, 0xF9
+ ble _0810272C
+ movs r4, 0x3
+ b _0810273A
+_0810272C:
+ cmp r1, 0xC7
+ ble _08102734
+ movs r4, 0x2
+ b _0810273A
+_08102734:
+ cmp r1, 0x95
+ ble _0810273A
+ movs r4, 0x1
+_0810273A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r5, _0810275C
+ lsls r4, 2
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08102760
+ movs r0, 0x4
+ b _0810279A
+ .align 2, 0
+_0810275C: .4byte gUnknown_083ECE1C
+_08102760:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ adds r2, r5, 0x2
+ adds r2, r4, r2
+ ldr r3, _08102790
+ ldr r1, _08102794
+ ldrb r1, [r1, 0xB]
+ lsls r1, 1
+ adds r1, r3
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ adds r1, r2
+ lsls r1, 24
+ cmp r0, r1
+ bcc _08102798
+ movs r0, 0x8
+ b _0810279A
+ .align 2, 0
+_08102790: .4byte gUnknown_083ECE30
+_08102794: .4byte 0x02000000
+_08102798:
+ movs r0, 0x2
+_0810279A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end dp15_jump_random_unknown
+
+ thumb_func_start sub_81027A0
+sub_81027A0: @ 81027A0
+ push {r4,lr}
+ ldr r4, _081027CC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl sub_81027D0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _081027B8
+ bl sub_8102840
+_081027B8:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _081027C4
+ bl sub_810290C
+_081027C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081027CC: .4byte 0x02000000
+ thumb_func_end sub_81027A0
+
+ thumb_func_start sub_81027D0
+sub_81027D0: @ 81027D0
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810282E
+ ldr r2, _08102834
+ ldr r0, _08102838
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _0810283C
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ bl sub_8103E04
+_0810282E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102834: .4byte 0x02000000
+_08102838: .4byte gUnknown_083ECE6C
+_0810283C: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_81027D0
+
+ thumb_func_start sub_8102840
+sub_8102840: @ 8102840
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810289E
+ cmp r1, 0
+ bne _0810287C
+ movs r1, 0x1
+_0810287C:
+ ldr r2, _08102900
+ ldr r0, _08102904
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x1
+ bl sub_8103E04
+_0810289E:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081028FA
+ cmp r1, 0
+ bne _081028D8
+ movs r1, 0x1
+_081028D8:
+ ldr r2, _08102900
+ ldr r0, _08102904
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x2
+ bl sub_8103E04
+_081028FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102900: .4byte 0x02000000
+_08102904: .4byte gUnknown_083ECE6C
+_08102908: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_8102840
+
+ thumb_func_start sub_810290C
+sub_810290C: @ 810290C
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _08102968
+ cmp r1, 0
+ beq _08102962
+ ldr r2, _081029C8
+ ldr r0, _081029CC
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_08102962:
+ movs r0, 0x3
+ bl sub_8103E04
+_08102968:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081029C2
+ cmp r1, 0
+ beq _081029BC
+ ldr r2, _081029C8
+ ldr r0, _081029CC
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_081029BC:
+ movs r0, 0x4
+ bl sub_8103E04
+_081029C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081029C8: .4byte 0x02000000
+_081029CC: .4byte gUnknown_083ECE6C
+_081029D0: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_810290C
+
+ thumb_func_start sub_81029D4
+sub_81029D4: @ 81029D4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, r1
+ bne _081029F8
+ cmp r3, r2
+ bne _081029F8
+ ldr r0, _081029F4
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ b _08102A1E
+ .align 2, 0
+_081029F4: .4byte gUnknown_083ECE52
+_081029F8:
+ cmp r3, 0
+ bne _08102A04
+ cmp r1, 0
+ bne _08102A04
+ cmp r2, 0x1
+ beq _08102A10
+_08102A04:
+ cmp r3, 0x1
+ bne _08102A14
+ cmp r1, 0x1
+ bne _08102A14
+ cmp r2, 0
+ bne _08102A14
+_08102A10:
+ movs r0, 0x6
+ b _08102A1E
+_08102A14:
+ cmp r3, 0x4
+ beq _08102A1C
+ movs r0, 0x9
+ b _08102A1E
+_08102A1C:
+ movs r0, 0
+_08102A1E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81029D4
+
+ thumb_func_start sub_8102A24
+sub_8102A24: @ 8102A24
+ push {r4,lr}
+ ldr r4, _08102A40
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A40: .4byte sub_8102A64
+ thumb_func_end sub_8102A24
+
+ thumb_func_start sub_8102A44
+sub_8102A44: @ 8102A44
+ push {lr}
+ ldr r0, _08102A58
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08102A5C
+ movs r0, 0
+ b _08102A5E
+ .align 2, 0
+_08102A58: .4byte sub_8102A64
+_08102A5C:
+ movs r0, 0x1
+_08102A5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A44
+
+ thumb_func_start sub_8102A64
+sub_8102A64: @ 8102A64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102A94
+ ldr r2, _08102A98
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102A76:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102A76
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A94: .4byte gUnknown_083ECB20
+_08102A98: .4byte gTasks
+ thumb_func_end sub_8102A64
+
+ thumb_func_start sub_8102A9C
+sub_8102A9C: @ 8102A9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8103E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AC8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _08102AC4
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _08102ACA
+ .align 2, 0
+_08102AC4: .4byte 0x02000000
+_08102AC8:
+ movs r0, 0
+_08102ACA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A9C
+
+ thumb_func_start sub_8102AD0
+sub_8102AD0: @ 8102AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08102B22
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AF6
+ movs r0, 0x15
+ bl PlaySE
+_08102AF6:
+ ldr r2, _08102B70
+ ldrh r0, [r2, 0xE]
+ subs r0, 0x1
+ strh r0, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08102B74
+ cmp r1, r0
+ bgt _08102B0E
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xC]
+_08102B0E:
+ movs r0, 0x8
+ strh r0, [r4, 0xA]
+ ldr r0, _08102B78
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B22
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+_08102B22:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B58
+ ldr r0, _08102B78
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B58
+ movs r0, 0x15
+ bl PlaySE
+ ldr r1, _08102B70
+ ldrh r0, [r1, 0xE]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _08102B7C
+ cmp r0, r2
+ ble _08102B54
+ strh r2, [r1, 0xC]
+_08102B54:
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_08102B58:
+ ldr r0, _08102B70
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102B68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08102B68:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102B70: .4byte 0x02000000
+_08102B74: .4byte 0x0000270e
+_08102B78: .4byte gMain
+_08102B7C: .4byte 0x0000270f
+ thumb_func_end sub_8102AD0
+
+ thumb_func_start sub_8102B80
+sub_8102B80: @ 8102B80
+ push {lr}
+ bl sub_8103E7C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B9A
+ ldr r0, _08102BA0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08102B9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BA0: .4byte sub_8102A64
+ thumb_func_end sub_8102B80
+
+ thumb_func_start sub_8102BA4
+sub_8102BA4: @ 8102BA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _08102BF0
+ lsls r2, r4, 1
+ adds r0, 0x28
+ adds r2, r0
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1
+ movs r1, 0x15
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102BD4
+ adds r0, 0x15
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102BD4:
+ ldr r2, _08102BF4
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BF0: .4byte 0x02000000
+_08102BF4: .4byte gUnknown_083ECCB2
+ thumb_func_end sub_8102BA4
+
+ thumb_func_start sub_8102BF8
+sub_8102BF8: @ 8102BF8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r6, 0
+ ldr r0, _08102C40
+ lsls r1, r5, 1
+ adds r0, 0x1C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08102C20
+ ldr r6, _08102C44
+_08102C20:
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C40: .4byte 0x02000000
+_08102C44: .4byte 0x0000ffff
+ thumb_func_end sub_8102BF8
+
+ thumb_func_start sub_8102C48
+sub_8102C48: @ 8102C48
+ push {lr}
+ ldr r1, _08102C7C
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0
+ adds r0, r1, 0
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102C6E
+ adds r0, 0x6
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102C6E:
+ ldr r0, _08102C80
+ lsls r1, 16
+ asrs r1, 16
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C7C: .4byte 0x02000000
+_08102C80: .4byte gUnknown_083ECCF1
+ thumb_func_end sub_8102C48
+
+ thumb_func_start sub_8102C84
+sub_8102C84: @ 8102C84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ ldr r6, _08102CC8
+ lsrs r5, 23
+ adds r4, r6, 0
+ adds r4, 0x1C
+ adds r4, r5, r4
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r0, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFC
+ lsls r1, 1
+ bl __modsi3
+ strh r0, [r4]
+ adds r6, 0x28
+ adds r5, r6
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl __divsi3
+ movs r1, 0x15
+ subs r1, r0
+ strh r1, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102CC8: .4byte 0x02000000
+ thumb_func_end sub_8102C84
+
+ thumb_func_start sub_8102CCC
+sub_8102CCC: @ 8102CCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r0, _08102D24
+ lsls r1, r6, 1
+ adds r0, 0x1C
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D18
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D00
+ lsrs r4, r2, 16
+_08102D00:
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r6, 0
+ bl sub_8102C84
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D18:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102D24: .4byte 0x02000000
+ thumb_func_end sub_8102CCC
+
+ thumb_func_start sub_8102D28
+sub_8102D28: @ 8102D28
+ push {r4,lr}
+ ldr r4, _08102D58
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl __divsi3
+ movs r1, 0x6
+ subs r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102D58: .4byte 0x02000000
+ thumb_func_end sub_8102D28
+
+ thumb_func_start sub_8102D5C
+sub_8102D5C: @ 8102D5C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _08102DA4
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D9A
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D84
+ lsrs r4, r2, 16
+_08102D84:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D9A:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102DA4: .4byte 0x02000000
+ thumb_func_end sub_8102D5C
+
+ thumb_func_start sub_8102DA8
+sub_8102DA8: @ 8102DA8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r5, _08102DE0
+ ldr r7, _08102DE4
+ ldr r6, _08102DE8
+_08102DB2:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ strh r4, [r1, 0x26]
+ adds r1, r4, r6
+ strb r0, [r1]
+ bl _call_via_r5
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08102DB2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102DE0: .4byte sub_8102E68
+_08102DE4: .4byte gTasks
+_08102DE8: .4byte 0x0200003a
+ thumb_func_end sub_8102DA8
+
+ thumb_func_start sub_8102DEC
+sub_8102DEC: @ 8102DEC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08102E14
+ ldr r1, _08102E18
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r2, [r0]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_08102E14: .4byte gTasks
+_08102E18: .4byte 0x02000000
+ thumb_func_end sub_8102DEC
+
+ thumb_func_start sub_8102E1C
+sub_8102E1C: @ 8102E1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E38
+ ldr r1, _08102E3C
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_08102E38: .4byte gTasks
+_08102E3C: .4byte 0x02000000
+ thumb_func_end sub_8102E1C
+
+ thumb_func_start sub_8102E40
+sub_8102E40: @ 8102E40
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E60
+ ldr r1, _08102E64
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08102E60: .4byte gTasks
+_08102E64: .4byte 0x02000000
+ thumb_func_end sub_8102E40
+
+ thumb_func_start sub_8102E68
+sub_8102E68: @ 8102E68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102E98
+ ldr r2, _08102E9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102E7A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102E7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102E98: .4byte gUnknown_083ECB2C
+_08102E9C: .4byte gTasks
+ thumb_func_end sub_8102E68
+
+ thumb_func_start sub_8102EA0
+sub_8102EA0: @ 8102EA0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8102EA0
+
+ thumb_func_start sub_8102EA4
+sub_8102EA4: @ 8102EA4
+ push {lr}
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08102EBC
+ movs r2, 0x1A
+ ldrsh r1, [r1, r2]
+ bl sub_8102C84
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102EBC: .4byte 0x02000000
+ thumb_func_end sub_8102EA4
+
+ thumb_func_start sub_8102EC0
+sub_8102EC0: @ 8102EC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ ldr r3, _08102F40
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x34
+ adds r0, r1
+ strh r2, [r0]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x2E
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r0, [r3, 0xA]
+ cmp r0, 0
+ bne _08102F28
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08102F12
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0
+ beq _08102F12
+ ldr r1, _08102F44
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102F28
+_08102F12:
+ ldr r1, _08102F40
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldr r1, _08102F48
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08102F28:
+ ldr r0, _08102F40
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r0, 0x2E
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102F40: .4byte 0x02000000
+_08102F44: .4byte gUnknown_083ECB40
+_08102F48: .4byte gUnknown_083ECB4C
+ thumb_func_end sub_8102EC0
+
+ thumb_func_start sub_8102F4C
+sub_8102F4C: @ 8102F4C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r1, _08102F8C
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ ldr r5, _08102F90
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r6, r0, 1
+ adds r7, r5, 0
+ adds r7, 0x1C
+ adds r0, r6, r7
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ beq _08102F94
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1A
+ ldrsh r1, [r5, r6]
+ bl sub_8102CCC
+ b _08102FC8
+ .align 2, 0
+_08102F8C: .4byte gUnknown_083ECB58
+_08102F90: .4byte 0x02000000
+_08102F94:
+ adds r0, r5, 0
+ adds r0, 0x2E
+ adds r1, r6, r0
+ ldrh r3, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08102FCC
+ subs r0, r3, 0x1
+ strh r0, [r1]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ bl sub_8102C84
+ movs r6, 0x26
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x18
+ bl __modsi3
+_08102FC8:
+ lsls r0, 16
+ lsrs r2, r0, 16
+_08102FCC:
+ cmp r2, 0
+ bne _08102FF8
+ ldr r1, _08103004
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r1, 0x2E
+ adds r0, r1
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ cmp r1, 0
+ bne _08102FF8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+_08102FF8:
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103004: .4byte 0x02000000
+ thumb_func_end sub_8102F4C
+
+ thumb_func_start sub_8103008
+sub_8103008: @ 8103008
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, _08103058
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r4, r1, 0
+ adds r4, 0x22
+ adds r0, r4
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r2, 0xA]
+ negs r3, r0
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08103038
+ lsls r0, r3, 16
+ asrs r0, 17
+ strh r0, [r2, 0xA]
+_08103038:
+ movs r0, 0xA
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ bne _0810304E
+ strh r3, [r2, 0x8]
+ strh r3, [r2, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+_0810304E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103058: .4byte 0x02000000
+ thumb_func_end sub_8103008
+
+ thumb_func_start sub_810305C
+sub_810305C: @ 810305C
+ push {r4,r5,lr}
+ ldr r4, _0810309C
+ ldrb r0, [r4, 0x4]
+ bl sub_810250C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, r3, 0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810307A
+ movs r5, 0
+ movs r3, 0x1
+_0810307A:
+ ldr r1, _081030A0
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl _call_via_r2
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810309C: .4byte 0x02000000
+_081030A0: .4byte gUnknown_083ECB64
+ thumb_func_end sub_810305C
+
+ thumb_func_start sub_81030A4
+sub_81030A4: @ 81030A4
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 16
+ asrs r3, 16
+ movs r0, 0
+ adds r1, r3, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, r4
+ beq _081030CC
+ cmp r0, r5
+ bne _081030D8
+_081030CC:
+ ldr r0, _081030D4
+ strb r1, [r0, 0x7]
+ movs r0, 0x1
+ b _081030DA
+ .align 2, 0
+_081030D4: .4byte 0x02000000
+_081030D8:
+ movs r0, 0
+_081030DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030A4
+
+ thumb_func_start sub_81030E0
+sub_81030E0: @ 81030E0
+ push {r4,lr}
+ movs r1, 0x1
+ lsls r0, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x2
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x3
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0810312C
+_08103128:
+ movs r0, 0x1
+ b _0810312E
+_0810312C:
+ movs r0, 0
+_0810312E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030E0
+
+ thumb_func_start sub_8103134
+sub_8103134: @ 8103134
+ push {lr}
+ ldr r0, _08103148
+ ldrb r1, [r0, 0x4]
+ movs r0, 0xC2
+ ands r0, r1
+ cmp r0, 0
+ bne _0810314C
+ movs r0, 0
+ b _0810314E
+ .align 2, 0
+_08103148: .4byte 0x02000000
+_0810314C:
+ movs r0, 0x1
+_0810314E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103134
+
+ thumb_func_start sub_8103154
+sub_8103154: @ 8103154
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r5, 0
+ movs r0, 0x2
+ mov r9, r0
+ ldr r6, _08103194
+_0810316E:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r1, r9
+ subs r0, r1, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103198
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r5, [r6, 0x2E]
+ movs r0, 0x1
+ b _081031A6
+ .align 2, 0
+_08103194: .4byte 0x02000000
+_08103198:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810316E
+ movs r0, 0
+_081031A6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103154
+
+ thumb_func_start sub_81031B4
+sub_81031B4: @ 81031B4
+ 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, 24
+ lsrs r1, 24
+ mov r9, r1
+ bl sub_8103134
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _081031E2
+ movs r0, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810321E
+_081031E2:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r5, _0810320C
+ movs r7, 0
+_081031EA:
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103210
+ mov r0, r8
+ strh r0, [r5, 0x34]
+ strh r7, [r5, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+ .align 2, 0
+_0810320C: .4byte 0x02000000
+_08103210:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081031EA
+_0810321E:
+ movs r0, 0x1
+ mov r8, r0
+ adds r7, r6, 0
+ ldr r6, _0810326C
+_08103226:
+ mov r1, r8
+ lsls r5, r1, 16
+ cmp r7, 0
+ bne _0810323A
+ asrs r0, r5, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081032A0
+_0810323A:
+ movs r0, 0x1
+ asrs r4, r5, 16
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081032A0
+ cmp r4, 0x1
+ bne _08103270
+ cmp r7, 0
+ bne _08103266
+ movs r0, 0x3
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103270
+_08103266:
+ movs r0, 0x3
+ strh r0, [r6, 0x34]
+ b _0810329A
+ .align 2, 0
+_0810326C: .4byte 0x02000000
+_08103270:
+ asrs r0, r5, 16
+ cmp r0, 0x3
+ bgt _08103294
+ adds r4, r0, 0x1
+ cmp r7, 0
+ bne _0810328A
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103294
+_0810328A:
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r4, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_08103294:
+ movs r0, 0x1
+ strh r0, [r6, 0x34]
+ mov r0, r8
+_0810329A:
+ strh r0, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_081032A0:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103226
+ movs r0, 0
+_081032B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81031B4
+
+ thumb_func_start sub_81032C0
+sub_81032C0: @ 81032C0
+ push {lr}
+ ldr r1, _081032E0
+ ldr r0, _081032E4
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081032E0: .4byte gUnknown_083ECB70
+_081032E4: .4byte 0x02000000
+ thumb_func_end sub_81032C0
+
+ thumb_func_start sub_81032E8
+sub_81032E8: @ 81032E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08103320
+ movs r6, 0
+ ldrh r1, [r0, 0x34]
+ mov r8, r1
+ movs r1, 0x34
+ ldrsh r7, [r0, r1]
+ adds r5, r0, 0
+_081032FC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5, 0x7]
+ cmp r0, r1
+ bne _08103324
+ mov r0, r8
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ movs r0, 0x1
+ b _08103332
+ .align 2, 0
+_08103320: .4byte 0x02000000
+_08103324:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081032FC
+ movs r0, 0
+_08103332:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81032E8
+
+ thumb_func_start sub_810333C
+sub_810333C: @ 810333C
+ push {r4-r7,lr}
+ bl sub_81032E8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810339A
+ ldr r1, _0810338C
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _08103396
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _08103396
+ cmp r0, 0x4
+ beq _08103396
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_08103364:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103364
+ b _08103396
+ .align 2, 0
+_0810338C: .4byte 0x02000000
+_08103390:
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+_08103396:
+ movs r0, 0x1
+ b _081033D2
+_0810339A:
+ ldr r1, _081033D8
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _081033D0
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_081033AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081033AA
+_081033D0:
+ movs r0, 0
+_081033D2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081033D8: .4byte 0x02000000
+ thumb_func_end sub_810333C
+
+ thumb_func_start sub_81033DC
+sub_81033DC: @ 81033DC
+ push {r4,lr}
+ ldr r0, _08103414
+ ldrb r3, [r0, 0x7]
+ adds r4, r3, 0
+ ldrb r2, [r0, 0x4]
+ movs r1, 0x40
+ ands r1, r2
+ cmp r1, 0
+ beq _081033F6
+ movs r3, 0
+ cmp r4, 0
+ bne _081033F6
+ movs r3, 0x1
+_081033F6:
+ ldr r1, _08103418
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103414: .4byte 0x02000000
+_08103418: .4byte gUnknown_083ECB7C
+ thumb_func_end sub_81033DC
+
+ thumb_func_start sub_810341C
+sub_810341C: @ 810341C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0810345C
+ movs r5, 0
+ ldrh r1, [r0, 0x36]
+ mov r8, r1
+ movs r1, 0x36
+ ldrsh r7, [r0, r1]
+ adds r6, r0, 0
+_08103438:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bne _08103460
+ mov r0, r8
+ strh r0, [r6, 0x38]
+ strh r5, [r6, 0x32]
+ movs r0, 0x1
+ b _0810346E
+ .align 2, 0
+_0810345C: .4byte 0x02000000
+_08103460:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103438
+ movs r0, 0
+_0810346E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810341C
+
+ thumb_func_start sub_810347C
+sub_810347C: @ 810347C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _081034A0
+ movs r2, 0x34
+ ldrsh r1, [r0, r2]
+ movs r2, 0x36
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _081034B4
+ adds r0, r6, 0
+ bl sub_810341C
+ lsls r0, 24
+ lsrs r0, 24
+ b _081034EA
+ .align 2, 0
+_081034A0: .4byte 0x02000000
+_081034A4:
+ ldr r0, _081034B0
+ strh r5, [r0, 0x32]
+ mov r1, r8
+ strh r1, [r0, 0x38]
+ movs r0, 0x1
+ b _081034EA
+ .align 2, 0
+_081034B0: .4byte 0x02000000
+_081034B4:
+ movs r2, 0x1
+ mov r8, r2
+ cmp r1, 0x1
+ bne _081034C0
+ movs r0, 0x3
+ mov r8, r0
+_081034C0:
+ movs r5, 0
+ mov r7, r8
+_081034C4:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _081034A4
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081034C4
+ movs r0, 0
+_081034EA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810347C
+
+ thumb_func_start sub_81034F4
+sub_81034F4: @ 81034F4
+ push {r4,r5,lr}
+ movs r5, 0
+ b _08103500
+_081034FA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103500:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081034FA
+ ldr r0, _0810351C
+ strh r5, [r0, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810351C: .4byte 0x02000000
+ thumb_func_end sub_81034F4
+
+ thumb_func_start sub_8103520
+sub_8103520: @ 8103520
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0810352E
+ movs r0, 0x1
+ b _08103538
+_0810352E:
+ cmp r0, 0x1
+ beq _08103536
+ movs r0, 0
+ b _0810353C
+_08103536:
+ movs r0, 0
+_08103538:
+ strb r0, [r1]
+ movs r0, 0x1
+_0810353C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103520
+
+ thumb_func_start sub_8103540
+sub_8103540: @ 8103540
+ push {lr}
+ ldr r1, _0810355C
+ ldr r0, _08103560
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810355C: .4byte gUnknown_083ECB88
+_08103560: .4byte 0x02000000
+ thumb_func_end sub_8103540
+
+ thumb_func_start sub_8103564
+sub_8103564: @ 8103564
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, _081035D0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081035E0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081035E0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _081035E0
+ movs r5, 0
+ mov r7, sp
+ movs r0, 0x2
+ mov r8, r0
+ adds r6, r4, 0
+_081035AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r0, r8
+ subs r1, r0, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081035D4
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+ b _081035E0
+ .align 2, 0
+_081035D0: .4byte 0x02000000
+_081035D4:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081035AA
+_081035E0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103564
+
+ thumb_func_start j5_08111E84
+j5_08111E84: @ 81035EC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _08103650
+ ldrh r2, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08103660
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103660
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103660
+ movs r6, 0
+ mov r7, sp
+ adds r5, r4, 0
+_0810362A:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _08103654
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _08103660
+ .align 2, 0
+_08103650: .4byte 0x02000000
+_08103654:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810362A
+_08103660:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end j5_08111E84
+
+ thumb_func_start sub_8103668
+sub_8103668: @ 8103668
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _0810368C
+ ldrh r3, [r4, 0x34]
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _0810375A
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810375A
+ cmp r2, 0x2
+ bne _081036AE
+ bl j5_08111E84
+ b _0810375A
+ .align 2, 0
+_0810368C: .4byte 0x02000000
+_08103690:
+ ldr r0, _0810369C
+ movs r1, 0
+ strh r6, [r0, 0x36]
+ strh r1, [r0, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810369C: .4byte 0x02000000
+_081036A0:
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_081036AA:
+ movs r0, 0x3
+ b _08103736
+_081036AE:
+ ldrh r1, [r4, 0x2E]
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810375A
+ movs r6, 0x2
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _081036D8
+ movs r6, 0x3
+_081036D8:
+ movs r5, 0
+ mov r7, sp
+_081036DC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _08103690
+ lsls r1, r5, 16
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ ble _081036DC
+ movs r6, 0x1
+ mov r7, sp
+ ldr r5, _0810373C
+_0810370E:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _0810374E
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08103740
+ cmp r4, 0x2
+ ble _081036A0
+_08103736:
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810373C: .4byte 0x02000000
+_08103740:
+ cmp r4, 0x2
+ ble _081036AA
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ subs r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_0810374E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810370E
+_0810375A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103668
+
+ thumb_func_start sub_8103764
+sub_8103764: @ 8103764
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _08103778
+ cmp r1, 0x1
+ beq _08103780
+_08103778:
+ cmp r0, 0x1
+ bne _08103784
+ cmp r2, 0
+ bne _08103784
+_08103780:
+ movs r0, 0x1
+ b _08103786
+_08103784:
+ movs r0, 0
+_08103786:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103764
+
+ thumb_func_start sub_810378C
+sub_810378C: @ 810378C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037A6
+ cmp r1, 0x1
+ bne _081037A6
+ cmp r2, 0
+ beq _081037B2
+_081037A6:
+ cmp r0, 0x1
+ bne _081037B6
+ cmp r1, 0
+ bne _081037B6
+ cmp r2, 0x1
+ bne _081037B6
+_081037B2:
+ movs r0, 0x1
+ b _081037B8
+_081037B6:
+ movs r0, 0
+_081037B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810378C
+
+ thumb_func_start sub_81037BC
+sub_81037BC: @ 81037BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037D6
+ cmp r1, 0x1
+ bne _081037D6
+ cmp r2, 0
+ beq _08103802
+_081037D6:
+ cmp r0, 0x1
+ bne _081037E2
+ cmp r1, 0
+ bne _081037E2
+ cmp r2, 0x1
+ beq _08103802
+_081037E2:
+ cmp r0, 0
+ bne _081037EE
+ cmp r1, 0
+ bne _081037EE
+ cmp r2, 0x1
+ beq _08103802
+_081037EE:
+ cmp r0, 0x1
+ bne _081037FA
+ cmp r1, 0x1
+ bne _081037FA
+ cmp r2, 0
+ beq _08103802
+_081037FA:
+ cmp r0, r1
+ bne _08103806
+ cmp r0, r2
+ bne _08103806
+_08103802:
+ movs r0, 0
+ b _08103808
+_08103806:
+ movs r0, 0x1
+_08103808:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81037BC
+
+ thumb_func_start sub_810380C
+sub_810380C: @ 810380C
+ push {lr}
+ ldr r1, _08103828
+ ldr r0, _0810382C
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103828: .4byte gUnknown_083ECB94
+_0810382C: .4byte 0x02000000
+ thumb_func_end sub_810380C
+
+ thumb_func_start sub_8103830
+sub_8103830: @ 8103830
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r7, _08103868
+ ldrh r1, [r7, 0x2E]
+ movs r4, 0x2
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x30]
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, r1
+ bne _081038A0
+ movs r4, 0x2
+ b _08103876
+ .align 2, 0
+_08103868: .4byte 0x02000000
+_0810386C:
+ lsls r0, r6, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r6, r0, 16
+_08103876:
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0810386C
+ cmp r5, 0
+ bne _08103896
+ cmp r0, 0x1
+ beq _0810386C
+_08103896:
+ cmp r5, 0x1
+ bne _08103900
+ cmp r0, 0
+ beq _0810386C
+ b _08103900
+_081038A0:
+ adds r0, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103900
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081038DC
+ movs r7, 0x2
+_081038B8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08103900
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081038B8
+_081038DC:
+ movs r6, 0
+ movs r7, 0x2
+ b _081038E8
+_081038E2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081038E8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _081038E2
+_08103900:
+ ldr r0, _0810390C
+ strh r6, [r0, 0x32]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810390C: .4byte 0x02000000
+ thumb_func_end sub_8103830
+
+ thumb_func_start sub_8103910
+sub_8103910: @ 8103910
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _08103978
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _081039A6
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ bne _081039A6
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081039A6
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _081039A6
+ movs r5, 0
+ b _08103982
+ .align 2, 0
+_08103978: .4byte 0x02000000
+_0810397C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103982:
+ lsls r6, r5, 16
+ asrs r5, r6, 16
+ cmp r5, 0x4
+ bgt _081039A6
+ ldr r0, _08103A34
+ ldrh r1, [r0, 0x36]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, r4
+ bne _0810397C
+ lsrs r6, 16
+ str r6, [sp]
+_081039A6:
+ ldr r0, _08103A34
+ mov r9, r0
+_081039AA:
+ movs r5, 0x1
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp]
+ lsls r2, 16
+ mov r10, r2
+_081039B6:
+ mov r3, r9
+ ldrh r1, [r3, 0x2E]
+ lsls r5, 16
+ asrs r4, r5, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r9
+ ldrh r1, [r0, 0x30]
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r10
+ asrs r0, r1, 16
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103A38
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103A24
+ mov r2, r9
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103A38
+_08103A24:
+ mov r3, r8
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ mov r8, r0
+ b _08103A46
+ .align 2, 0
+_08103A34: .4byte 0x02000000
+_08103A38:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r5, r2
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081039B6
+_08103A46:
+ mov r3, r8
+ cmp r3, 0
+ beq _08103A5C
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r0, 16
+ str r0, [sp]
+ b _081039AA
+_08103A5C:
+ ldr r0, _08103A74
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r0, 0x32]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103A74: .4byte 0x02000000
+ thumb_func_end sub_8103910
+
+ thumb_func_start sub_8103A78
+sub_8103A78: @ 8103A78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_8103910
+ ldr r4, _08103B10
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08103B20
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ beq _08103B20
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103B20
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B20
+ movs r1, 0x1
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _08103AE0
+ movs r1, 0x3
+_08103AE0:
+ movs r3, 0
+ lsls r1, 16
+ mov r8, r1
+ adds r7, r4, 0
+_08103AE8:
+ ldrh r2, [r7, 0x32]
+ lsls r0, r3, 16
+ asrs r5, r0, 16
+ adds r2, r5, r2
+ mov r3, r8
+ asrs r1, r3, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r6, r4
+ bne _08103B14
+ ldrh r0, [r7, 0x32]
+ adds r0, r5, r0
+ strh r0, [r7, 0x32]
+ b _08103B20
+ .align 2, 0
+_08103B10: .4byte 0x02000000
+_08103B14:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103AE8
+_08103B20:
+ ldr r7, _08103B90
+_08103B22:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103B94
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B88
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103B94
+_08103B88:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B22
+ .align 2, 0
+_08103B90: .4byte 0x02000000
+_08103B94:
+ ldr r7, _08103C04
+_08103B96:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103C08
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103BFC
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103C08
+_08103BFC:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B96
+ .align 2, 0
+_08103C04: .4byte 0x02000000
+_08103C08:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103A78
+
+ thumb_func_start sub_8103C14
+sub_8103C14: @ 8103C14
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08103C40
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103C44
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x26]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C40: .4byte sub_8103C48
+_08103C44: .4byte gTasks
+ thumb_func_end sub_8103C14
+
+ thumb_func_start sub_8103C48
+sub_8103C48: @ 8103C48
+ push {r4,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08103C70
+ ldr r2, _08103C74
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r4, 0x8
+ ldrsh r2, [r0, r4]
+ lsls r2, 2
+ adds r2, r3
+ ldr r2, [r2]
+ bl _call_via_r2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C70: .4byte gUnknown_083ECBA0
+_08103C74: .4byte gTasks
+ thumb_func_end sub_8103C48
+
+ thumb_func_start sub_8103C78
+sub_8103C78: @ 8103C78
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _08103CA8
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x73
+ str r1, [sp]
+ movs r1, 0x62
+ movs r2, 0x63
+ movs r3, 0x72
+ bl sub_81065A8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CA8: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103C78
+
+ thumb_func_start sub_8103CAC
+sub_8103CAC: @ 8103CAC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _08103CC4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08103CC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103CAC
+
+ thumb_func_start sub_8103CC8
+sub_8103CC8: @ 8103CC8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _08103CFC
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x53
+ str r1, [sp]
+ movs r1, 0x42
+ movs r2, 0x43
+ movs r3, 0x52
+ bl sub_81065A8
+ adds r0, r4, 0
+ bl DestroyTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CFC: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103CC8
+
+ thumb_func_start sub_8103D00
+sub_8103D00: @ 8103D00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D20
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D24
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D20: .4byte gUnknown_083EDD08
+_08103D24: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D00
+
+ thumb_func_start sub_8103D28
+sub_8103D28: @ 8103D28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D48
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D4C
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D48: .4byte gUnknown_083EDD1C
+_08103D4C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D28
+
+ thumb_func_start sub_8103D50
+sub_8103D50: @ 8103D50
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103D84
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103D7C
+ ldr r7, _08103D88
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103D68:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D00
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103D68
+_08103D7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D84: .4byte gUnknown_083EDD3B
+_08103D88: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D50
+
+ thumb_func_start sub_8103D8C
+sub_8103D8C: @ 8103D8C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103DC0
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103DB8
+ ldr r7, _08103DC4
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103DA4:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D28
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103DA4
+_08103DB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DC0: .4byte gUnknown_083EDD3B
+_08103DC4: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D8C
+
+ thumb_func_start sub_8103DC8
+sub_8103DC8: @ 8103DC8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _08103DF8
+ ldr r5, _08103DFC
+_08103DD0:
+ ldr r0, _08103E00
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ strh r4, [r1, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103DD0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DF8: .4byte gSprites
+_08103DFC: .4byte 0x02000044
+_08103E00: .4byte sub_8103EE4
+ thumb_func_end sub_8103DC8
+
+ thumb_func_start sub_8103E04
+sub_8103E04: @ 8103E04
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08103E30
+ adds r1, 0x44
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08103E34
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x30]
+ movs r1, 0x4
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x34]
+ strh r2, [r0, 0x36]
+ movs r1, 0x2
+ strh r1, [r0, 0x38]
+ strh r2, [r0, 0x3C]
+ bx lr
+ .align 2, 0
+_08103E30: .4byte 0x02000000
+_08103E34: .4byte gSprites
+ thumb_func_end sub_8103E04
+
+ thumb_func_start sub_8103E38
+sub_8103E38: @ 8103E38
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r4, _08103E60
+ ldr r3, _08103E64
+_08103E40:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r3
+ movs r5, 0x30
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r5, 0x32
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r0, 0
+ b _08103E74
+ .align 2, 0
+_08103E60: .4byte 0x02000044
+_08103E64: .4byte gSprites
+_08103E68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _08103E40
+ movs r0, 0x1
+_08103E74:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E38
+
+ thumb_func_start sub_8103E7C
+sub_8103E7C: @ 8103E7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08103E94
+_08103E82:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8103EAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103E98
+ movs r0, 0
+ b _08103EA4
+ .align 2, 0
+_08103E94: .4byte 0x02000044
+_08103E98:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103E82
+ movs r0, 0x1
+_08103EA4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E7C
+
+ thumb_func_start sub_8103EAC
+sub_8103EAC: @ 8103EAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08103EC8
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08103ECC
+ movs r0, 0x1
+ b _08103EDE
+ .align 2, 0
+_08103EC8: .4byte gSprites
+_08103ECC:
+ ldrh r2, [r1, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08103EDA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+_08103EDA:
+ lsls r0, r2, 24
+ lsrs r0, 24
+_08103EDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103EAC
+
+ thumb_func_start sub_8103EE4
+sub_8103EE4: @ 8103EE4
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F66
+ ldrh r0, [r2, 0x34]
+ subs r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08103F4E
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ movs r6, 0x1
+ strh r6, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r0, r1, r3
+ strh r0, [r2, 0x36]
+ movs r4, 0x4
+ ldrh r5, [r2, 0x32]
+ movs r7, 0x32
+ ldrsh r3, [r2, r7]
+ cmp r3, 0
+ beq _08103F20
+ movs r4, 0x8
+_08103F20:
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bgt _08103F38
+ strh r6, [r2, 0x3C]
+ negs r0, r1
+ strh r0, [r2, 0x38]
+ cmp r3, 0
+ beq _08103F4E
+ subs r0, r5, 0x1
+ strh r0, [r2, 0x32]
+ b _08103F40
+_08103F38:
+ cmp r0, r4
+ blt _08103F40
+ negs r0, r1
+ strh r0, [r2, 0x38]
+_08103F40:
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F4E
+ ldrh r0, [r2, 0x34]
+ lsls r0, 1
+ strh r0, [r2, 0x34]
+_08103F4E:
+ ldr r1, _08103F6C
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrh r3, [r2, 0x36]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085D08
+_08103F66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F6C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103EE4
+
+ thumb_func_start sub_8103F70
+sub_8103F70: @ 8103F70
+ push {r4,lr}
+ ldr r4, _08103F98
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103F9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0xE]
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F98: .4byte sub_8103FE8
+_08103F9C: .4byte gTasks
+ thumb_func_end sub_8103F70
+
+ thumb_func_start sub_8103FA0
+sub_8103FA0: @ 8103FA0
+ push {lr}
+ ldr r0, _08103FC4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08103FC8
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08103FCC
+ movs r0, 0
+ b _08103FE0
+ .align 2, 0
+_08103FC4: .4byte sub_8103FE8
+_08103FC8: .4byte gTasks
+_08103FCC:
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _08103FE4
+ ldr r0, [r0]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x1
+_08103FE0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103FE4: .4byte gUnknown_083EDDAC
+ thumb_func_end sub_8103FA0
+
+ thumb_func_start sub_8103FE8
+sub_8103FE8: @ 8103FE8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08104040
+ adds r2, r1, r0
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08104026
+ movs r0, 0x4
+ strh r0, [r2, 0xA]
+ ldrh r1, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ adds r0, r1, r3
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _08104022
+ cmp r0, 0x2
+ bne _08104026
+_08104022:
+ negs r0, r1
+ strh r0, [r2, 0xE]
+_08104026:
+ ldr r0, _08104044
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104040: .4byte gTasks
+_08104044: .4byte gUnknown_083EDDA0
+ thumb_func_end sub_8103FE8
+
+ thumb_func_start sub_8104048
+sub_8104048: @ 8104048
+ push {lr}
+ ldr r0, _0810405C
+ movs r1, 0x8
+ bl CreateTask
+ ldr r1, _08104060
+ adds r1, 0x3E
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810405C: .4byte sub_81040E8
+_08104060: .4byte 0x02000000
+ thumb_func_end sub_8104048
+
+ thumb_func_start sub_8104064
+sub_8104064: @ 8104064
+ push {r4,lr}
+ ldr r0, _08104090
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _08104094
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r1, 0x1
+ strh r1, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104090: .4byte 0x02000000
+_08104094: .4byte gTasks
+ thumb_func_end sub_8104064
+
+ thumb_func_start sub_8104098
+sub_8104098: @ 8104098
+ push {r4,lr}
+ ldr r0, _081040C0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081040C4
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081040C0: .4byte 0x02000000
+_081040C4: .4byte gTasks
+ thumb_func_end sub_8104098
+
+ thumb_func_start sub_81040C8
+sub_81040C8: @ 81040C8
+ ldr r2, _081040E0
+ ldr r0, _081040E4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_081040E0: .4byte gTasks
+_081040E4: .4byte 0x02000000
+ thumb_func_end sub_81040C8
+
+ thumb_func_start sub_81040E8
+sub_81040E8: @ 81040E8
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104110
+ ldr r2, _08104114
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104110: .4byte gUnknown_083ECBB4
+_08104114: .4byte gTasks
+ thumb_func_end sub_81040E8
+
+ thumb_func_start nullsub_68
+nullsub_68: @ 8104118
+ bx lr
+ thumb_func_end nullsub_68
+
+ thumb_func_start sub_810411C
+sub_810411C: @ 810411C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r0, 19
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ asrs r0, 16
+ movs r1, 0x14
+ bl sub_8105B1C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810411C
+
+ thumb_func_start sub_8104144
+sub_8104144: @ 8104144
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _08104174
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3C
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0810419E
+ ldrh r1, [r4, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _08104178
+ movs r0, 0x1
+ b _0810417E
+ .align 2, 0
+_08104174: .4byte gSprites
+_08104178:
+ cmp r1, 0x10
+ bne _0810417E
+ movs r0, 0x2
+_0810417E:
+ lsls r1, r2, 16
+ asrs r1, 15
+ ldr r2, _081041A4
+ adds r1, r2
+ adds r1, 0x80
+ ldr r2, _081041A8
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r4, 0xC]
+ bl sub_8105B88
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0x26]
+_0810419E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081041A4: .4byte 0x0600e800
+_081041A8: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_8104144
+
+ thumb_func_start sub_81041AC
+sub_81041AC: @ 81041AC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _081041C6
+ movs r2, 0x1
+ b _081041CC
+_081041C6:
+ cmp r1, 0x10
+ bne _081041CC
+ movs r2, 0x2
+_081041CC:
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _081041F0
+ lsls r0, r4, 16
+ asrs r0, 15
+ ldr r1, _08104214
+ adds r0, r1
+ adds r0, 0x80
+ ldr r1, _08104218
+ lsls r2, 2
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+_081041F0:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _08104202
+ movs r0, 0
+ strh r0, [r3, 0xC]
+_08104202:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _0810420E
+ strh r0, [r3, 0x8]
+ strh r0, [r3, 0x26]
+_0810420E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104214: .4byte 0x0600e800
+_08104218: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_81041AC
+
+ thumb_func_start sub_810421C
+sub_810421C: @ 810421C
+ push {lr}
+ movs r1, 0x2
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0
+_08104226:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104226
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810421C
+
+ thumb_func_start sub_810423C
+sub_810423C: @ 810423C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0x3
+ ldr r6, _08104268
+ movs r4, 0
+ ldr r0, _0810426C
+ mov r8, r0
+ ldr r1, _08104270
+ mov r12, r1
+ cmp r4, r5
+ bge _081042A6
+ ldr r7, _08104274
+_0810425A:
+ movs r3, 0
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _08104278
+ movs r3, 0x1
+ b _0810427E
+ .align 2, 0
+_08104268: .4byte 0x0600e800
+_0810426C: .4byte gTasks
+_08104270: .4byte 0x02000000
+_08104274: .4byte gUnknown_083ECBC4
+_08104278:
+ cmp r0, 0xF
+ bne _0810427E
+ movs r3, 0x2
+_0810427E:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _0810425A
+_081042A6:
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ bgt _081042F0
+ ldr r7, _081042BC
+_081042B0:
+ movs r3, 0
+ asrs r0, r1, 16
+ cmp r0, 0
+ bne _081042C0
+ movs r3, 0x1
+ b _081042C6
+ .align 2, 0
+_081042BC: .4byte gUnknown_083ECBC4 + 0x2
+_081042C0:
+ cmp r0, 0xF
+ bne _081042C6
+ movs r3, 0x2
+_081042C6:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ ble _081042B0
+_081042F0:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ strh r5, [r0, 0xA]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810423C
+
+ thumb_func_start sub_810430C
+sub_810430C: @ 810430C
+ push {r4,lr}
+ ldr r4, _08104328
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104328: .4byte sub_810434C
+ thumb_func_end sub_810430C
+
+ thumb_func_start sub_810432C
+sub_810432C: @ 810432C
+ push {lr}
+ ldr r0, _08104340
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104344
+ movs r0, 0
+ b _08104346
+ .align 2, 0
+_08104340: .4byte sub_810434C
+_08104344:
+ movs r0, 0x1
+_08104346:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810432C
+
+ thumb_func_start sub_810434C
+sub_810434C: @ 810434C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104374
+ ldr r2, _08104378
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104374: .4byte gUnknown_083ECBD0
+_08104378: .4byte gTasks
+ thumb_func_end sub_810434C
+
+ thumb_func_start sub_810437C
+sub_810437C: @ 810437C
+ push {lr}
+ ldr r1, _081043DC
+ movs r2, 0
+ strb r2, [r1, 0xA]
+ strh r2, [r1, 0x14]
+ strh r2, [r1, 0x16]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r1, 0x1E
+ strh r1, [r0, 0xC]
+ movs r1, 0xA0
+ lsls r1, 3
+ strh r1, [r0, 0x10]
+ ldr r0, _081043E0
+ strh r2, [r0]
+ ldr r0, _081043E4
+ strh r2, [r0]
+ ldr r0, _081043E8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ movs r0, 0x1E
+ movs r1, 0
+ bl sub_8104A40
+ bl sub_81051C0
+ bl sub_8105100
+ bl sub_81052EC
+ bl sub_81053A0
+ bl sub_810545C
+ bl sub_8102680
+ bl StopMapMusic
+ movs r0, 0xC4
+ lsls r0, 1
+ bl PlayNewMapMusic
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081043DC: .4byte 0x02000000
+_081043E0: .4byte gSpriteCoordOffsetX
+_081043E4: .4byte gSpriteCoordOffsetY
+_081043E8: .4byte REG_BG1HOFS
+ thumb_func_end sub_810437C
+
+ thumb_func_start sub_81043EC
+sub_81043EC: @ 81043EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810445C
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r4, 0xA]
+ adds r2, 0x8
+ strh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xF0
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r3, r0, 3
+ ldr r1, _08104460
+ ldr r0, _08104464
+ ands r2, r0
+ strh r2, [r1]
+ adds r2, r3, 0
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ beq _08104438
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bgt _08104438
+ strh r3, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r4, 0xE]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ adds r0, r2, 0
+ bl sub_8104A40
+_08104438:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC7
+ ble _0810444A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xE]
+_0810444A:
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810445C: .4byte gSpriteCoordOffsetX
+_08104460: .4byte REG_BG1HOFS
+_08104464: .4byte 0x000001ff
+ thumb_func_end sub_81043EC
+
+ thumb_func_start sub_8104468
+sub_8104468: @ 8104468
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104492
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105578
+ bl sub_81056F0
+_08104492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104468
+
+ thumb_func_start sub_8104498
+sub_8104498: @ 8104498
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ ldr r1, _08104534
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _08104538
+ movs r2, 0x8
+ bl memcpy
+ add r6, sp, 0xC
+ ldr r1, _0810453C
+ adds r0, r6, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r7, 0x10]
+ subs r0, 0x4
+ strh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ movs r5, 0x4
+ subs r5, r0
+ lsls r4, r5, 1
+ add r8, r4
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl sub_8105688
+ adds r6, r4
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ bl sub_81057E8
+ ldr r0, _08104540
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104544
+ adds r0, r1
+ mov r2, sp
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ bl StartSpriteAnimIfDifferent
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ movs r1, 0x80
+ lsls r1, 1
+ cmp r0, r1
+ bgt _08104526
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ strh r1, [r7, 0x10]
+ movs r0, 0
+ strh r0, [r7, 0x12]
+_08104526:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104534: .4byte gUnknown_083ECC1C
+_08104538: .4byte gUnknown_083ECC20
+_0810453C: .4byte gUnknown_083ECC28
+_08104540: .4byte 0x02000000
+_08104544: .4byte gSprites
+ thumb_func_end sub_8104498
+
+ thumb_func_start sub_8104548
+sub_8104548: @ 8104548
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _0810458A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ movs r0, 0x2
+ bl sub_81057E8
+ ldr r0, _08104590
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104594
+ adds r0, r1
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+_0810458A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104590: .4byte 0x02000000
+_08104594: .4byte gSprites
+ thumb_func_end sub_8104548
+
+ thumb_func_start sub_8104598
+sub_8104598: @ 8104598
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x80
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _081045C4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+_081045C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104598
+
+ thumb_func_start sub_81045CC
+sub_81045CC: @ 81045CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _08104634
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldr r1, _0810460C
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _08104610
+ ldrb r1, [r1, 0xA]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0810462E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+ .align 2, 0
+_0810460C: .4byte 0x02000000
+_08104610:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _0810461E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+_0810461E:
+ ldrh r0, [r4, 0x14]
+ bl sub_81026DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810462E
+ movs r0, 0xE
+_0810462C:
+ strh r0, [r4, 0x8]
+_0810462E:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+_08104634:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81045CC
+
+ thumb_func_start sub_810463C
+sub_810463C: @ 810463C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _08104660
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r0, 0
+ beq _08104664
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D5C
+ b _08104688
+ .align 2, 0
+_08104660: .4byte 0x02000000
+_08104664:
+ movs r0, 0x1
+ bl sub_8102C48
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x5]
+ cmp r0, r1
+ beq _08104692
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+_08104688:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+_08104692:
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bne _081046B4
+ movs r0, 0x1
+ bl sub_8102C48
+ ldr r1, _081046BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x5]
+ cmp r0, r1
+ bne _081046B4
+ strh r5, [r4, 0x10]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_081046B4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081046BC: .4byte 0x02000000
+ thumb_func_end sub_810463C
+
+ thumb_func_start sub_81046C0
+sub_81046C0: @ 81046C0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104758
+ bl StopMapMusic
+ bl sub_81056C0
+ bl sub_8105804
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r5, _08104710
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0
+ bne _0810471C
+ movs r0, 0xA0
+ strh r0, [r4, 0x10]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104714
+ adds r0, r1
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldr r0, _08104718
+ bl PlayFanfare
+ b _08104758
+ .align 2, 0
+_08104710: .4byte 0x02000000
+_08104714: .4byte gSprites
+_08104718: .4byte 0x00000187
+_0810471C:
+ movs r0, 0xC0
+ strh r0, [r4, 0x10]
+ adds r6, r5, 0
+ adds r6, 0x3F
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08104760
+ adds r0, r4
+ movs r1, 0x4
+ bl StartSpriteAnimIfDifferent
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2B
+ strb r7, [r0]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _08104750
+ bl sub_8104098
+ strb r7, [r5, 0x2]
+_08104750:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+_08104758:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104760: .4byte gSprites
+ thumb_func_end sub_81046C0
+
+ thumb_func_start sub_8104764
+sub_8104764: @ 8104764
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0810477C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810478C
+_0810477C:
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810478C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0810478C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104764
+
+ thumb_func_start sub_8104794
+sub_8104794: @ 8104794
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, _081047D4
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r3, 0xA]
+ adds r2, 0x8
+ strh r2, [r3, 0xA]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x8
+ strh r0, [r3, 0xE]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ subs r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r4, r0, 3
+ ldr r1, _081047D8
+ ldr r0, _081047DC
+ ands r2, r0
+ strh r2, [r1]
+ ldrh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 19
+ cmp r0, 0x19
+ bgt _081047E0
+ adds r0, r4, 0
+ bl sub_8104A88
+ b _081047E6
+ .align 2, 0
+_081047D4: .4byte gSpriteCoordOffsetX
+_081047D8: .4byte REG_BG1HOFS
+_081047DC: .4byte 0x000001ff
+_081047E0:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_081047E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104794
+
+ thumb_func_start sub_81047EC
+sub_81047EC: @ 81047EC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _08104834
+ movs r6, 0
+ strb r6, [r4, 0xB]
+ ldrb r0, [r4, 0x5]
+ strb r0, [r4, 0xA]
+ ldr r0, _08104838
+ strh r6, [r0]
+ ldr r0, _0810483C
+ strh r6, [r0]
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ bl sub_810514C
+ bl sub_81054B8
+ bl sub_8105524
+ adds r0, r4, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _08104844
+ ldr r0, _08104840
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _0810485A
+ .align 2, 0
+_08104834: .4byte 0x02000000
+_08104838: .4byte gSpriteCoordOffsetX
+_0810483C: .4byte REG_BG1HOFS
+_08104840: .4byte sub_810434C
+_08104844:
+ movs r0, 0x4
+ bl sub_8104CAC
+ bl dp15_jump_random_unknown
+ strh r0, [r5, 0xA]
+ strh r6, [r5, 0xC]
+ strh r6, [r5, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0810485A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81047EC
+
+ thumb_func_start sub_8104860
+sub_8104860: @ 8104860
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0810487C
+ ldrh r0, [r5, 0x1A]
+ lsls r6, r0, 16
+ asrs r1, r6, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08104880
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081048A2
+ .align 2, 0
+_0810487C: .4byte 0x02000000
+_08104880:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081048A2
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _081048A2
+ asrs r0, r6, 17
+ strh r0, [r5, 0x1A]
+_081048A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104860
+
+ thumb_func_start sub_81048A8
+sub_81048A8: @ 81048A8
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081048C2
+ ldr r0, _081048C8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_081048C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081048C8: .4byte sub_810434C
+ thumb_func_end sub_81048A8
+
+ thumb_func_start sub_81048CC
+sub_81048CC: @ 81048CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_81054B8
+ bl sub_81056C0
+ bl sub_8105804
+ bl sub_8105854
+ ldr r5, _08104934
+ ldr r3, _08104938
+ adds r0, r3, 0
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ movs r0, 0x4
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ bl StopMapMusic
+ ldr r0, _0810493C
+ bl PlayFanfare
+ movs r0, 0xB2
+ bl PlaySE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104934: .4byte gSprites
+_08104938: .4byte 0x02000000
+_0810493C: .4byte 0x00000187
+ thumb_func_end sub_81048CC
+
+ thumb_func_start sub_8104940
+sub_8104940: @ 8104940
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _081049B8
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0]
+ ldr r0, _081049BC
+ strh r1, [r0]
+ ldrh r1, [r4, 0x12]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810495E
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+_0810495E:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _08104974
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 17
+ strh r0, [r4, 0x10]
+_08104974:
+ movs r0, 0x10
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _081049B0
+ bl sub_81058A0
+ bl sub_81058C4
+ bl sub_8105284
+ bl sub_81059E8
+ ldr r2, _081049C0
+ ldr r0, _081049C4
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0x12]
+_081049B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049B8: .4byte gSpriteCoordOffsetY
+_081049BC: .4byte REG_BG1VOFS
+_081049C0: .4byte gSprites
+_081049C4: .4byte 0x02000000
+ thumb_func_end sub_8104940
+
+ thumb_func_start sub_81049C8
+sub_81049C8: @ 81049C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081049F0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _081049F4
+ strh r1, [r0]
+ bl sub_8105ACC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081049EA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105AEC
+_081049EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049F0: .4byte gSpriteCoordOffsetY
+_081049F4: .4byte REG_BG1VOFS
+ thumb_func_end sub_81049C8
+
+ thumb_func_start sub_81049F8
+sub_81049F8: @ 81049F8
+ push {lr}
+ ldr r0, _08104A30
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08104A34
+ strh r1, [r0]
+ ldr r0, _08104A38
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ bl sub_810514C
+ bl sub_8105554
+ bl sub_8105524
+ bl sub_81059B8
+ ldr r0, _08104A3C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A30: .4byte gSpriteCoordOffsetX
+_08104A34: .4byte REG_BG1HOFS
+_08104A38: .4byte 0x02000000
+_08104A3C: .4byte sub_810434C
+ thumb_func_end sub_81049F8
+
+ thumb_func_start sub_8104A40
+sub_8104A40: @ 8104A40
+ push {r4-r7,lr}
+ movs r3, 0x4
+ ldr r7, _08104A80
+ lsls r1, 16
+ asrs r5, r1, 16
+ lsls r0, 16
+ asrs r4, r0, 16
+ ldr r6, _08104A84
+_08104A50:
+ lsls r2, r3, 16
+ asrs r2, 16
+ subs r1, r2, 0x4
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5, r0
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r0]
+ lsls r0, r2, 5
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r6
+ strh r1, [r0]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ cmp r2, 0xE
+ ble _08104A50
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A80: .4byte gReelTimeWindowTilemap
+_08104A84: .4byte 0x0600e000
+ thumb_func_end sub_8104A40
+
+ thumb_func_start sub_8104A88
+sub_8104A88: @ 8104A88
+ push {r4,r5,lr}
+ movs r2, 0x4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r5, _08104AB4
+ movs r4, 0
+_08104A94:
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r2, r1, 16
+ asrs r1, 16
+ cmp r1, 0xE
+ ble _08104A94
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AB4: .4byte 0x0600e000
+ thumb_func_end sub_8104A88
+
+ thumb_func_start sub_8104AB8
+sub_8104AB8: @ 8104AB8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08104AE4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08104AE8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AE4: .4byte sub_8104B0C
+_08104AE8: .4byte gTasks
+ thumb_func_end sub_8104AB8
+
+ thumb_func_start sub_8104AEC
+sub_8104AEC: @ 8104AEC
+ push {lr}
+ ldr r0, _08104B00
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104B04
+ movs r0, 0
+ b _08104B06
+ .align 2, 0
+_08104B00: .4byte sub_8104B0C
+_08104B04:
+ movs r0, 0x1
+_08104B06:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104AEC
+
+ thumb_func_start sub_8104B0C
+sub_8104B0C: @ 8104B0C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104B34
+ ldr r2, _08104B38
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104B34: .4byte gUnknown_083ECC30
+_08104B38: .4byte gTasks
+ thumb_func_end sub_8104B0C
+
+ thumb_func_start sub_8104B3C
+sub_8104B3C: @ 8104B3C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104B3C
+
+ thumb_func_start sub_8104B60
+sub_8104B60: @ 8104B60
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08104B7C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08104B76
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08104B76:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104B7C: .4byte gPaletteFade
+ thumb_func_end sub_8104B60
+
+ thumb_func_start sub_8104B80
+sub_8104B80: @ 8104B80
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8104DA4
+ bl sub_81065DC
+ ldr r0, _08104BC0
+ bl BasicInitMenuWindow
+ ldr r0, _08104BC4
+ movs r1, 0xA
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_80729D8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BC0: .4byte gWindowConfig_81E7144
+_08104BC4: .4byte gOtherText_ReelTime
+ thumb_func_end sub_8104B80
+
+ thumb_func_start sub_8104BC8
+sub_8104BC8: @ 8104BC8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _08104BF8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _08104BF0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08104BF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BF8: .4byte gMain
+ thumb_func_end sub_8104BC8
+
+ thumb_func_start sub_8104BFC
+sub_8104BFC: @ 8104BFC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl MenuZeroFillScreen
+ ldr r0, _08104C3C
+ bl BasicInitMenuWindow
+ bl sub_81064B8
+ ldrb r0, [r4, 0xA]
+ bl sub_8104CAC
+ ldr r0, _08104C40
+ ldrb r0, [r0, 0x2]
+ bl sub_810423C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C3C: .4byte gWindowConfig_81E7128
+_08104C40: .4byte 0x02000000
+ thumb_func_end sub_8104BFC
+
+ thumb_func_start sub_8104C44
+sub_8104C44: @ 8104C44
+ push {lr}
+ ldr r0, _08104C58
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C58: .4byte sub_8104B0C
+ thumb_func_end sub_8104C44
+
+ thumb_func_start sub_8104C5C
+sub_8104C5C: @ 8104C5C
+ push {lr}
+ ldr r0, _08104C9C
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08104CA0
+ adds r0, 0x3D
+ strb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104CA4
+ adds r0, r1
+ ldr r1, _08104CA8
+ strh r1, [r0, 0xA]
+ movs r1, 0x4
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0x40
+_08104C86:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104C86
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C9C: .4byte sub_8104E74
+_08104CA0: .4byte 0x02000000
+_08104CA4: .4byte gTasks
+_08104CA8: .4byte 0x0000ffff
+ thumb_func_end sub_8104C5C
+
+ thumb_func_start sub_8104CAC
+sub_8104CAC: @ 8104CAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8104DA4
+ ldr r0, _08104D24
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D28
+ adds r7, r0, r1
+ strh r4, [r7, 0xA]
+ movs r6, 0
+ ldr r1, _08104D2C
+ lsls r5, r4, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08104D18
+ mov r8, r1
+_08104CE0:
+ mov r0, r8
+ adds r4, r5, r0
+ ldr r0, [r4]
+ lsls r2, r6, 2
+ adds r2, r0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ bl sub_8105BB4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r6, 0x4
+ lsls r2, 1
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, [r4]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08104CE0
+_08104D18:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104D24: .4byte 0x02000000
+_08104D28: .4byte gTasks
+_08104D2C: .4byte gUnknown_083ED048
+ thumb_func_end sub_8104CAC
+
+ thumb_func_start sub_8104D30
+sub_8104D30: @ 8104D30
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r1
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08104D84
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D88
+ adds r0, r1
+ mov r12, r0
+ movs r5, 0x4
+ lsls r4, 16
+ asrs r6, r4, 16
+ lsls r2, 16
+ lsls r3, 16
+_08104D5C:
+ lsls r0, r5, 1
+ mov r1, r12
+ adds r1, 0x8
+ adds r4, r1, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ bne _08104D8C
+ str r6, [sp]
+ adds r0, r7, 0
+ mov r1, r8
+ asrs r2, 16
+ asrs r3, 16
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _08104D96
+ .align 2, 0
+_08104D84: .4byte 0x02000000
+_08104D88: .4byte gTasks
+_08104D8C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104D5C
+_08104D96:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104D30
+
+ thumb_func_start sub_8104DA4
+sub_8104DA4: @ 8104DA4
+ push {r4-r6,lr}
+ ldr r0, _08104E04
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E08
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldr r0, _08104E0C
+ cmp r1, r0
+ beq _08104DCE
+ ldr r0, _08104E10
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08104DCE:
+ movs r5, 0x4
+ adds r6, r4, 0
+ adds r6, 0x8
+_08104DD4:
+ lsls r0, r5, 1
+ adds r4, r6, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ beq _08104DF4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104E14
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x40
+ strh r0, [r4]
+_08104DF4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104DD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104E04: .4byte 0x02000000
+_08104E08: .4byte gTasks
+_08104E0C: .4byte 0x0000ffff
+_08104E10: .4byte gUnknown_083ED064
+_08104E14: .4byte gSprites
+ thumb_func_end sub_8104DA4
+
+ thumb_func_start sub_8104E18
+sub_8104E18: @ 8104E18
+ push {r4,r5,lr}
+ ldr r0, _08104E54
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E58
+ adds r0, r1
+ movs r2, 0x4
+ adds r3, r0, 0
+ adds r3, 0x8
+ ldr r4, _08104E5C
+_08104E32:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x40
+ beq _08104E60
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r5, 0x3C
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08104E60
+ movs r0, 0
+ b _08104E6C
+ .align 2, 0
+_08104E54: .4byte 0x02000000
+_08104E58: .4byte gTasks
+_08104E5C: .4byte gSprites
+_08104E60:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _08104E32
+ movs r0, 0x1
+_08104E6C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104E18
+
+ thumb_func_start sub_8104E74
+sub_8104E74: @ 8104E74
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104E9C
+ ldr r2, _08104EA0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104E9C: .4byte gUnknown_083ECC54
+_08104EA0: .4byte gTasks
+ thumb_func_end sub_8104E74
+
+ thumb_func_start nullsub_69
+nullsub_69: @ 8104EA4
+ bx lr
+ thumb_func_end nullsub_69
+
+ thumb_func_start sub_8104EA8
+sub_8104EA8: @ 8104EA8
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r0, 0x30
+_08104EAE:
+ movs r4, 0
+ lsls r5, r0, 16
+ lsls r7, r6, 16
+_08104EB4:
+ ldr r0, _08104F0C
+ asrs r1, r5, 16
+ movs r2, 0
+ movs r3, 0xE
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08104F10
+ adds r1, r0
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ strh r6, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ ldr r0, _08104F14
+ strh r0, [r1, 0x34]
+ lsls r0, r4, 16
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ ble _08104EB4
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r7, r2
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r0, r5, r2
+ lsrs r0, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _08104EAE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F0C: .4byte gSpriteTemplate_83ED414
+_08104F10: .4byte gSprites
+_08104F14: .4byte 0x0000ffff
+ thumb_func_end sub_8104EA8
+
+ thumb_func_start sub_8104F18
+sub_8104F18: @ 8104F18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08104F88
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r1, r0
+ ldrh r0, [r5, 0x30]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r4, 0x22
+ adds r1, r4
+ ldrh r1, [r1]
+ adds r1, 0x1C
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetSpriteTileStartByTag
+ adds r1, r5, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl SetSpriteSheetFrameTileNum
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F88: .4byte 0x02000000
+ thumb_func_end sub_8104F18
+
+ thumb_func_start sub_8104F8C
+sub_8104F8C: @ 8104F8C
+ push {r4-r6,lr}
+ movs r4, 0xCB
+ movs r5, 0x1
+ ldr r6, _08104FF0
+_08104F94:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104F94
+ movs r4, 0xEB
+ movs r5, 0x1
+ ldr r6, _08104FF0
+_08104FC2:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104FC2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104FF0: .4byte 0x0000270f
+ thumb_func_end sub_8104F8C
+
+ thumb_func_start sub_8104FF4
+sub_8104FF4: @ 8104FF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08105060
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xD
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08105064
+ adds r2, r0
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ mov r0, r8
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x30]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 1
+ strh r0, [r2, 0x32]
+ ldr r0, _08105068
+ strh r0, [r2, 0x34]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105060: .4byte gSpriteTemplate_83ED42C
+_08105064: .4byte gSprites
+_08105068: .4byte 0x0000ffff
+ thumb_func_end sub_8104FF4
+
+ thumb_func_start sub_810506C
+sub_810506C: @ 810506C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _081050C0
+ ldrh r2, [r1, 0xC]
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0810507E
+ ldrh r2, [r1, 0xE]
+_0810507E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, r2
+ beq _081050B8
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ adds r0, r2, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r2, 0
+ bl __udivsi3
+ lsls r0, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r0, r3
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ bl GetSpriteTileStartByTag
+ adds r1, r4, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SetSpriteSheetFrameTileNum
+_081050B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050C0: .4byte 0x02000000
+ thumb_func_end sub_810506C
+
+ thumb_func_start sub_81050C4
+sub_81050C4: @ 81050C4
+ push {lr}
+ ldr r0, _081050F4
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0xF
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081050F8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081050FC
+ bl SetSubspriteTables
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050F4: .4byte gSpriteTemplate_83ED444
+_081050F8: .4byte gSprites
+_081050FC: .4byte gUnknown_083ED704
+ thumb_func_end sub_81050C4
+
+ thumb_func_start sub_8105100
+sub_8105100: @ 8105100
+ push {lr}
+ ldr r0, _08105140
+ movs r1, 0x8C
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08105144
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2]
+ ldr r1, _08105148
+ adds r1, 0x3F
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105140: .4byte gSpriteTemplate_83ED45C
+_08105144: .4byte gSprites
+_08105148: .4byte 0x02000000
+ thumb_func_end sub_8105100
+
+ thumb_func_start sub_810514C
+sub_810514C: @ 810514C
+ push {lr}
+ ldr r0, _08105168
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810516C
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105168: .4byte 0x02000000
+_0810516C: .4byte gSprites
+ thumb_func_end sub_810514C
+
+ thumb_func_start sub_8105170
+sub_8105170: @ 8105170
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _081051B6
+ movs r0, 0x8
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081051A4
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B2
+ b _081051B6
+_081051A4:
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B6
+_081051B2:
+ ldr r0, _081051BC
+ strh r0, [r2, 0x26]
+_081051B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081051BC: .4byte 0x0000fff8
+ thumb_func_end sub_8105170
+
+ thumb_func_start sub_81051C0
+sub_81051C0: @ 81051C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810526C
+ movs r7, 0xB8
+ lsls r7, 1
+ adds r1, r7, 0
+ movs r2, 0x34
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105270
+ mov r10, r1
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r3, 0x4
+ mov r9, r3
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105274
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r6, _08105278
+ adds r0, r6, 0
+ adds r0, 0x49
+ strb r4, [r0]
+ ldr r0, _0810527C
+ adds r1, r7, 0
+ movs r2, 0x54
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ mov r1, r10
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r3, r9
+ orrs r5, r3
+ strb r5, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105280
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ adds r6, 0x4A
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810526C: .4byte gSpriteTemplate_83ED474
+_08105270: .4byte gSprites
+_08105274: .4byte gUnknown_083ED73C
+_08105278: .4byte 0x02000000
+_0810527C: .4byte gSpriteTemplate_83ED48C
+_08105280: .4byte gUnknown_083ED75C
+ thumb_func_end sub_81051C0
+
+ thumb_func_start sub_8105284
+sub_8105284: @ 8105284
+ push {r4,lr}
+ ldr r0, _081052D8
+ ldr r1, _081052DC
+ ldrh r2, [r1]
+ movs r1, 0xA8
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x50
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081052E0
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _081052E4
+ bl SetSubspriteTables
+ ldr r0, _081052E8
+ adds r0, 0x42
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081052D8: .4byte gSpriteTemplate_83ED4A4
+_081052DC: .4byte gSpriteCoordOffsetX
+_081052E0: .4byte gSprites
+_081052E4: .4byte gUnknown_083ED78C
+_081052E8: .4byte 0x02000000
+ thumb_func_end sub_8105284
+
+ thumb_func_start sub_81052EC
+sub_81052EC: @ 81052EC
+ push {r4-r7,lr}
+ movs r4, 0
+ movs r5, 0
+ ldr r6, _08105350
+_081052F4:
+ ldr r0, _08105354
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105358
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r1, r7, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ strh r5, [r3, 0x3C]
+ adds r1, r4, r6
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r5, 16
+ movs r7, 0xA0
+ lsls r7, 13
+ adds r0, r7
+ lsrs r5, r0, 16
+ cmp r4, 0x2
+ bls _081052F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105350: .4byte 0x0200004b
+_08105354: .4byte gSpriteTemplate_83ED4BC
+_08105358: .4byte gSprites
+ thumb_func_end sub_81052EC
+
+ thumb_func_start sub_810535C
+sub_810535C: @ 810535C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810539C
+ ldrh r0, [r4, 0x3C]
+ ldrh r1, [r1, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x28
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ adds r1, 0x3B
+ strh r1, [r4, 0x22]
+ movs r1, 0x14
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8102C48
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnimIfDifferent
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810539C: .4byte 0x02000000
+ thumb_func_end sub_810535C
+
+ thumb_func_start sub_81053A0
+sub_81053A0: @ 81053A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r1, 0xB8
+ lsls r1, 1
+ ldr r0, _0810544C
+ movs r2, 0x64
+ movs r3, 0x9
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r7, _08105450
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r10, r3
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+ ldr r0, _08105454
+ mov r9, r0
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ ldr r6, _08105458
+ adds r0, r6, 0
+ adds r0, 0x4E
+ strb r4, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ ldr r0, _0810544C
+ movs r2, 0x68
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r0, r8
+ orrs r5, r0
+ strb r5, [r2, 0x5]
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ adds r6, 0x4F
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810544C: .4byte gSpriteTemplate_83ED4D4
+_08105450: .4byte gSprites
+_08105454: .4byte gUnknown_083ED7B4
+_08105458: .4byte 0x02000000
+ thumb_func_end sub_81053A0
+
+ thumb_func_start sub_810545C
+sub_810545C: @ 810545C
+ push {r4,lr}
+ ldr r0, _081054A8
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0x4C
+ movs r3, 0xB
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081054AC
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081054B0
+ bl SetSubspriteTables
+ ldr r0, _081054B4
+ adds r0, 0x40
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081054A8: .4byte gSpriteTemplate_83ED4EC
+_081054AC: .4byte gSprites
+_081054B0: .4byte gUnknown_083ED7D4
+_081054B4: .4byte 0x02000000
+ thumb_func_end sub_810545C
+
+ thumb_func_start sub_81054B8
+sub_81054B8: @ 81054B8
+ push {r4,r5,lr}
+ ldr r4, _08105518
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ movs r5, 0
+ adds r4, 0x49
+_081054D4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _081054D4
+ movs r5, 0
+ ldr r4, _08105520
+_081054F4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081054F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105518: .4byte 0x02000000
+_0810551C: .4byte gSprites
+_08105520: .4byte 0x0200004b
+ thumb_func_end sub_81054B8
+
+ thumb_func_start sub_8105524
+sub_8105524: @ 8105524
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810554C
+_0810552A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105550
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0810552A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810554C: .4byte 0x0200004e
+_08105550: .4byte gSprites
+ thumb_func_end sub_8105524
+
+ thumb_func_start sub_8105554
+sub_8105554: @ 8105554
+ push {lr}
+ ldr r0, _08105570
+ adds r0, 0x42
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105574
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105570: .4byte 0x02000000
+_08105574: .4byte gSprites
+ thumb_func_end sub_8105554
+
+ thumb_func_start sub_8105578
+sub_8105578: @ 8105578
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldr r0, _0810561C
+ mov r10, r0
+ movs r1, 0x98
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08105620
+ mov r9, r2
+ adds r3, r1, r2
+ ldrb r2, [r3, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r3, 0x5]
+ adds r5, r3, 0
+ adds r5, 0x3F
+ ldrb r1, [r5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r5]
+ ldr r5, _08105624
+ adds r1, r5, 0
+ adds r1, 0x50
+ strb r0, [r1]
+ movs r0, 0x8
+ strh r0, [r3, 0x2E]
+ ldr r0, _08105628
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r3, 0x32]
+ movs r6, 0x20
+ strh r6, [r3, 0x3C]
+ mov r0, r10
+ movs r1, 0xB8
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ mov r2, r9
+ adds r3, r1, r2
+ ldrb r1, [r3, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r3, 0x5]
+ adds r5, 0x51
+ strb r0, [r5]
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+ subs r0, 0x2
+ strh r0, [r3, 0x32]
+ strh r6, [r3, 0x3C]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810561C: .4byte gSpriteTemplate_83ED504
+_08105620: .4byte gSprites
+_08105624: .4byte 0x02000000
+_08105628: .4byte 0x0000ffff
+ thumb_func_end sub_8105578
+
+ thumb_func_start sub_810562C
+sub_810562C: @ 810562C
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r4, [r2, r1]
+ cmp r4, 0
+ beq _08105650
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ b _08105682
+_08105650:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08105682
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x34]
+_08105682:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810562C
+
+ thumb_func_start sub_8105688
+sub_8105688: @ 8105688
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _081056B8
+ ldr r3, _081056BC
+ adds r1, r3, 0
+ adds r1, 0x50
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ adds r3, 0x51
+ ldrb r2, [r3]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056B8: .4byte gSprites
+_081056BC: .4byte 0x02000000
+ thumb_func_end sub_8105688
+
+ thumb_func_start sub_81056C0
+sub_81056C0: @ 81056C0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081056E8
+_081056C6:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081056EC
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _081056C6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056E8: .4byte 0x02000050
+_081056EC: .4byte gSprites
+ thumb_func_end sub_81056C0
+
+ thumb_func_start sub_81056F0
+sub_81056F0: @ 81056F0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08105778
+ mov r8, r0
+ movs r1, 0x48
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810577C
+ mov r9, r1
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrb r3, [r2, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r3
+ movs r6, 0x4
+ orrs r1, r6
+ strb r1, [r2, 0x5]
+ movs r3, 0
+ movs r1, 0x1
+ strh r1, [r2, 0x2E]
+ strh r3, [r2, 0x38]
+ movs r1, 0x10
+ strh r1, [r2, 0x3A]
+ movs r1, 0x8
+ strh r1, [r2, 0x3C]
+ ldr r5, _08105780
+ adds r1, r5, 0
+ adds r1, 0x52
+ strb r0, [r1]
+ mov r0, r8
+ movs r1, 0x68
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x5]
+ ands r4, r2
+ orrs r4, r6
+ strb r4, [r1, 0x5]
+ adds r1, 0x3F
+ ldrb r2, [r1]
+ movs r3, 0x1
+ orrs r2, r3
+ strb r2, [r1]
+ adds r5, 0x53
+ strb r0, [r5]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105778: .4byte gSpriteTemplate_83ED51C
+_0810577C: .4byte gSprites
+_08105780: .4byte 0x02000000
+ thumb_func_end sub_81056F0
+
+ thumb_func_start sub_8105784
+sub_8105784: @ 8105784
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _081057E0
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081057D6
+ ldrh r0, [r4, 0x3A]
+ subs r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _081057D6
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _081057E4
+ adds r0, r2
+ lsrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ add r1, sp
+ ldrb r3, [r1]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8085C7C
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ strh r0, [r4, 0x3A]
+_081057D6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081057E0: .4byte gUnknown_083ECC58
+_081057E4: .4byte 0x01030000
+ thumb_func_end sub_8105784
+
+ thumb_func_start sub_81057E8
+sub_81057E8: @ 81057E8
+ ldr r3, _081057FC
+ ldr r1, _08105800
+ adds r1, 0x52
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ strh r0, [r1, 0x3C]
+ bx lr
+ .align 2, 0
+_081057FC: .4byte gSprites
+_08105800: .4byte 0x02000000
+ thumb_func_end sub_81057E8
+
+ thumb_func_start sub_8105804
+sub_8105804: @ 8105804
+ push {r4,r5,lr}
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _08105848
+ adds r0, r1
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8085C7C
+ movs r4, 0
+ ldr r5, _0810584C
+_08105824:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105850
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08105824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105848: .4byte 0x01030000
+_0810584C: .4byte 0x02000052
+_08105850: .4byte gSprites
+ thumb_func_end sub_8105804
+
+ thumb_func_start sub_8105854
+sub_8105854: @ 8105854
+ push {lr}
+ ldr r0, _08105888
+ movs r1, 0xA8
+ movs r2, 0x50
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810588C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ ldr r1, _08105890
+ adds r1, 0x41
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105888: .4byte gSpriteTemplate_83ED534
+_0810588C: .4byte gSprites
+_08105890: .4byte 0x02000000
+ thumb_func_end sub_8105854
+
+ thumb_func_start sub_8105894
+sub_8105894: @ 8105894
+ ldr r1, _0810589C
+ ldrh r1, [r1]
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_0810589C: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8105894
+
+ thumb_func_start sub_81058A0
+sub_81058A0: @ 81058A0
+ push {lr}
+ ldr r0, _081058BC
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081058C0
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081058BC: .4byte 0x02000000
+_081058C0: .4byte gSprites
+ thumb_func_end sub_81058A0
+
+ thumb_func_start sub_81058C4
+sub_81058C4: @ 81058C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _08105938
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ movs r4, 0
+ ldr r5, _0810593C
+_081058D6:
+ ldr r0, _08105940
+ ldrh r0, [r0]
+ movs r1, 0x50
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08105944
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105948
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r1, r6, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ lsls r1, r4, 1
+ add r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081058D6
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105938: .4byte gUnknown_083ECC5A
+_0810593C: .4byte 0x02000054
+_08105940: .4byte gSpriteCoordOffsetX
+_08105944: .4byte gSpriteTemplate_83ED54C
+_08105948: .4byte gSprites
+ thumb_func_end sub_81058C4
+
+ thumb_func_start sub_810594C
+sub_810594C: @ 810594C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x2
+ movs r4, 0
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r1, 0x6
+ bl Sin
+ strh r0, [r5, 0x26]
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r4, [r1]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x7F
+ ble _08105986
+ movs r0, 0x2
+ strb r0, [r1]
+_08105986:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _081059B0
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+_081059B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810594C
+
+ thumb_func_start sub_81059B8
+sub_81059B8: @ 81059B8
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081059E0
+_081059BE:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081059E4
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081059BE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081059E0: .4byte 0x02000054
+_081059E4: .4byte gSprites
+ thumb_func_end sub_81059B8
+
+ thumb_func_start sub_81059E8
+sub_81059E8: @ 81059E8
+ push {r4,lr}
+ ldr r0, _08105A2C
+ movs r1, 0xA8
+ movs r2, 0x3C
+ movs r3, 0x8
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105A30
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ ldr r0, _08105A34
+ adds r0, 0x43
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105A2C: .4byte gSpriteTemplate_83ED564
+_08105A30: .4byte gSprites
+_08105A34: .4byte 0x02000000
+ thumb_func_end sub_81059E8
+
+ thumb_func_start sub_8105A38
+sub_8105A38: @ 8105A38
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08105A5A
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105AB4
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105AB4
+_08105A5A:
+ cmp r0, 0x1
+ bne _08105A96
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _08105AB4
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ movs r0, 0
+ strh r0, [r3, 0x32]
+ b _08105AB4
+_08105A96:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105AB4
+ movs r0, 0x1
+ strh r0, [r3, 0x3C]
+_08105AB4:
+ ldrh r0, [r3, 0x30]
+ movs r1, 0xFF
+ ands r1, r0
+ adds r1, 0x10
+ strh r1, [r3, 0x30]
+ lsrs r1, 8
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105A38
+
+ thumb_func_start sub_8105ACC
+sub_8105ACC: @ 8105ACC
+ ldr r2, _08105AE4
+ ldr r0, _08105AE8
+ adds r0, 0x43
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08105AE4: .4byte gSprites
+_08105AE8: .4byte 0x02000000
+ thumb_func_end sub_8105ACC
+
+ thumb_func_start sub_8105AEC
+sub_8105AEC: @ 8105AEC
+ push {r4,lr}
+ ldr r0, _08105B14
+ adds r0, 0x43
+ ldrb r0, [r0]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105B18
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105B14: .4byte 0x02000000
+_08105B18: .4byte gSprites
+ thumb_func_end sub_8105AEC
+
+ thumb_func_start sub_8105B1C
+sub_8105B1C: @ 8105B1C
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _08105B68
+ lsls r3, 16
+ asrs r3, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r3, 0
+ movs r3, 0xC
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105B6C
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105B68: .4byte gSpriteTemplate_83ED6CC
+_08105B6C: .4byte gSprites
+ thumb_func_end sub_8105B1C
+
+ thumb_func_start sub_8105B70
+sub_8105B70: @ 8105B70
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105B84
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+_08105B84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105B70
+
+ thumb_func_start sub_8105B88
+sub_8105B88: @ 8105B88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105BB0
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105BB0: .4byte gSprites
+ thumb_func_end sub_8105B88
+
+ thumb_func_start sub_8105BB4
+sub_8105BB4: @ 8105BB4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08105BF0
+ lsrs r1, 22
+ adds r3, r1, r3
+ ldr r5, [r3]
+ ldr r3, _08105BF4
+ adds r4, r1, r3
+ movs r6, 0
+ ldrsh r4, [r4, r6]
+ adds r3, 0x2
+ adds r1, r3
+ movs r6, 0
+ ldrsh r3, [r1, r6]
+ lsls r2, 16
+ asrs r2, 16
+ str r2, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105BF0: .4byte gUnknown_083ECF0C
+_08105BF4: .4byte gUnknown_083ECE7E
+ thumb_func_end sub_8105BB4
+
+ thumb_func_start sub_8105BF8
+sub_8105BF8: @ 8105BF8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x14]
+ lsls r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _08105C58
+ lsrs r4, 22
+ adds r0, r4, r0
+ ldr r0, [r0]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08105C5C
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ str r6, [r2, 0x1C]
+ strh r5, [r2, 0x3A]
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ ldr r0, _08105C60
+ adds r4, r0
+ ldr r1, [r4]
+ cmp r1, 0
+ beq _08105C50
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_08105C50:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105C58: .4byte gUnknown_083EDB5C
+_08105C5C: .4byte gSprites
+_08105C60: .4byte gUnknown_083EDBC4
+ thumb_func_end sub_8105BF8
+
+ thumb_func_start sub_8105C64
+sub_8105C64: @ 8105C64
+ movs r1, 0
+ strh r1, [r0, 0x3C]
+ bx lr
+ thumb_func_end sub_8105C64
+
+ thumb_func_start sub_8105C6C
+sub_8105C6C: @ 8105C6C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _08105CE8
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _08105CEC
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105CB2
+ adds r3, r4, 0
+ adds r3, 0x42
+ ldrb r2, [r3]
+ lsls r0, r2, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08105CB2:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x42
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ beq _08105CDE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+_08105CDE:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105CE8: .4byte gUnknown_083ECC62
+_08105CEC: .4byte gUnknown_083ECC6A
+ thumb_func_end sub_8105C6C
+
+ thumb_func_start sub_8105CF0
+sub_8105CF0: @ 8105CF0
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105CF0
+
+ thumb_func_start sub_8105D08
+sub_8105D08: @ 8105D08
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D08
+
+ thumb_func_start sub_8105D20
+sub_8105D20: @ 8105D20
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D20
+
+ thumb_func_start sub_8105D3C
+sub_8105D3C: @ 8105D3C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08105D70
+ cmp r0, 0x1
+ bgt _08105D52
+ cmp r0, 0
+ beq _08105D5C
+ b _08105DA0
+_08105D52:
+ cmp r0, 0x2
+ beq _08105D80
+ cmp r0, 0x3
+ beq _08105D9C
+ b _08105DA0
+_08105D5C:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105DA0
+ movs r0, 0xD0
+ strh r0, [r2, 0x20]
+ b _08105D8E
+_08105D70:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105DA0
+ b _08105D8E
+_08105D80:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ ldr r1, _08105D98
+ cmp r0, r1
+ ble _08105DA0
+_08105D8E:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08105DA0
+ .align 2, 0
+_08105D98: .4byte 0x010f0000
+_08105D9C:
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+_08105DA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D3C
+
+ thumb_func_start sub_8105DA4
+sub_8105DA4: @ 8105DA4
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _08105DD8
+ cmp r0, 0x1
+ bgt _08105DBA
+ cmp r0, 0
+ beq _08105DC4
+ b _08105E02
+_08105DBA:
+ cmp r0, 0x2
+ beq _08105DE8
+ cmp r0, 0x3
+ beq _08105DFE
+ b _08105E02
+_08105DC4:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ bgt _08105E02
+ movs r0, 0xD0
+ strh r0, [r1, 0x20]
+ b _08105DF6
+_08105DD8:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105E02
+ b _08105DF6
+_08105DE8:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x90
+ bgt _08105E02
+_08105DF6:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105E02
+_08105DFE:
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105E02:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105DA4
+
+ thumb_func_start sub_8105E08
+sub_8105E08: @ 8105E08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _08105EAE
+ lsls r0, 2
+ ldr r1, _08105E20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08105E20: .4byte _08105E24
+ .align 2, 0
+_08105E24:
+ .4byte _08105E3C
+ .4byte _08105E52
+ .4byte _08105E70
+ .4byte _08105E84
+ .4byte _08105E94
+ .4byte _08105EAA
+_08105E3C:
+ ldr r0, _08105E6C
+ ldrb r1, [r0, 0xA]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08105E52:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08105EAE
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _08105EAE
+ .align 2, 0
+_08105E6C: .4byte 0x02000000
+_08105E70:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105EAE
+ movs r0, 0xD0
+ strh r0, [r4, 0x20]
+ b _08105EA2
+_08105E84:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105EAE
+ b _08105EA2
+_08105E94:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF7
+ ble _08105EAE
+_08105EA2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08105EAE
+_08105EAA:
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08105EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105E08
+
+ thumb_func_start sub_8105EB4
+sub_8105EB4: @ 8105EB4
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _08105EE2
+ cmp r0, 0x1
+ bgt _08105ECA
+ cmp r0, 0
+ beq _08105ED0
+ b _08105F50
+_08105ECA:
+ cmp r0, 0x2
+ beq _08105F00
+ b _08105F50
+_08105ED0:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_08105EE2:
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _08105F50
+ movs r0, 0x70
+ strh r0, [r3, 0x22]
+ movs r0, 0x10
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105F50
+_08105F00:
+ movs r0, 0x32
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x22]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x22]
+ negs r1, r1
+ strh r1, [r3, 0x30]
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08105F46
+ lsls r0, r1, 16
+ asrs r0, 18
+ strh r0, [r3, 0x30]
+ strh r2, [r3, 0x34]
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r1, [r3, 0x3C]
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08105F46:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r3, 0x32]
+_08105F50:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105EB4
+
+ thumb_func_start sub_8105F54
+sub_8105F54: @ 8105F54
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08105F66
+ cmp r0, 0x1
+ beq _08105F7C
+ b _08105F98
+_08105F66:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08105F98
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105F98
+_08105F7C:
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x2
+ strh r0, [r1, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _08105F98
+ movs r0, 0x30
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105F98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105F54
+
+ thumb_func_start sub_8105F9C
+sub_8105F9C: @ 8105F9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08105FAE
+ cmp r0, 0x1
+ beq _08106000
+ b _0810604E
+_08105FAE:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x30]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, _08105FFC
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ b _0810604E
+ .align 2, 0
+_08105FFC: .4byte REG_MOSAIC
+_08106000:
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08106016
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08106016:
+ ldr r2, _08106054
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_0810604E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106054: .4byte REG_MOSAIC
+ thumb_func_end sub_8105F9C
+
+ thumb_func_start sub_8106058
+sub_8106058: @ 8106058
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ bgt _081060A8
+ ldr r1, _081060A4
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081060E4
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ b _081060E4
+ .align 2, 0
+_081060A4: .4byte gUnknown_083EDE10
+_081060A8:
+ ldr r1, _081060F8
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _081060E4
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+_081060E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0
+ strh r0, [r5, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081060F8: .4byte gUnknown_083EDE10
+ thumb_func_end sub_8106058
+
+ thumb_func_start sub_81060FC
+sub_81060FC: @ 81060FC
+ push {r4-r6,lr}
+ sub sp, 0x30
+ adds r4, r0, 0
+ ldr r1, _08106138
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ add r6, sp, 0x10
+ ldr r1, _0810613C
+ adds r0, r6, 0
+ movs r2, 0x10
+ bl memcpy
+ add r5, sp, 0x20
+ ldr r1, _08106140
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08106174
+ cmp r0, 0x1
+ bgt _08106144
+ cmp r0, 0
+ beq _0810614A
+ b _081061C0
+ .align 2, 0
+_08106138: .4byte gUnknown_083ECC72
+_0810613C: .4byte gUnknown_083ECC82
+_08106140: .4byte gUnknown_083ECC92
+_08106144:
+ cmp r0, 0x2
+ beq _08106188
+ b _081061C0
+_0810614A:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08106174:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _081061C0
+ b _081061BA
+_08106188:
+ ldrh r0, [r4, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _08106196
+ subs r0, 0x4
+ b _0810619C
+_08106196:
+ cmp r1, 0
+ bge _0810619E
+ adds r0, 0x4
+_0810619C:
+ strh r0, [r4, 0x24]
+_0810619E:
+ ldrh r0, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _081061AC
+ subs r0, 0x4
+ b _081061B2
+_081061AC:
+ cmp r1, 0
+ bge _081061B4
+ adds r0, 0x4
+_081061B2:
+ strh r0, [r4, 0x26]
+_081061B4:
+ ldr r0, [r4, 0x24]
+ cmp r0, 0
+ bne _081061C0
+_081061BA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_081061C0:
+ add sp, 0x30
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81060FC
+
+ thumb_func_start sub_81061C8
+sub_81061C8: @ 81061C8
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _0810622C
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081061EA
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC
+ strh r0, [r4, 0x30]
+_081061EA:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08106224
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_08106224:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810622C: .4byte gUnknown_083ECCA2
+ thumb_func_end sub_81061C8
+
+ thumb_func_start sub_8106230
+sub_8106230: @ 8106230
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0810627A
+ cmp r0, 0x1
+ bgt _08106248
+ cmp r0, 0
+ beq _08106252
+ b _0810634A
+_08106248:
+ cmp r0, 0x2
+ beq _081062C4
+ cmp r0, 0x3
+ beq _081062FC
+ b _0810634A
+_08106252:
+ ldr r2, _081062BC
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x2F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3F
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r0, _081062C0
+ strh r0, [r1]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0810627A:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xB2
+ strh r0, [r5, 0x32]
+ movs r1, 0xF0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106296
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106296:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _081062A2
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_081062A2:
+ ldr r2, _081062BC
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x33
+ ble _0810634A
+ b _0810633C
+ .align 2, 0
+_081062BC: .4byte 0x02000000
+_081062C0: .4byte 0x00002088
+_081062C4:
+ ldr r6, _08106354
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0810634A
+ ldr r1, _08106358
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x5
+ movs r2, 0xD0
+ movs r3, 0x74
+ bl sub_8104D30
+ adds r1, r6, 0
+ adds r1, 0x58
+ ldr r0, _0810635C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xD1
+ lsls r0, 7
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2F
+ strh r0, [r1]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+_081062FC:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xC2
+ strh r0, [r5, 0x32]
+ movs r1, 0xE0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106318
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106318:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _08106324
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_08106324:
+ ldr r2, _08106354
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ ble _0810634A
+_0810633C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x3F
+ strh r0, [r1]
+_0810634A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106354: .4byte 0x02000000
+_08106358: .4byte SpriteCallbackDummy
+_0810635C: .4byte 0x0000c0e0
+ thumb_func_end sub_8106230
+
+ thumb_func_start nullsub_70
+nullsub_70: @ 8106360
+ bx lr
+ thumb_func_end nullsub_70
+
+ thumb_func_start sub_8106364
+sub_8106364: @ 8106364
+ ldr r1, _0810636C
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810636C: .4byte REG_MOSAIC
+ thumb_func_end sub_8106364
+
+ thumb_func_start sub_8106370
+sub_8106370: @ 8106370
+ push {r4,lr}
+ ldr r0, _08106398
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106398: .4byte gUnknown_083EDE20
+ thumb_func_end sub_8106370
+
+ thumb_func_start sub_810639C
+sub_810639C: @ 810639C
+ ldr r2, _081063BC
+ adds r1, r2, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_081063BC: .4byte 0x02000000
+ thumb_func_end sub_810639C
+
+ thumb_func_start sub_81063C0
+sub_81063C0: @ 81063C0
+ push {r4,lr}
+ bl sub_8106404
+ ldr r0, _081063F0
+ ldr r4, _081063F4
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063F8
+ movs r1, 0xC8
+ lsls r1, 6
+ adds r4, r1
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063FC
+ bl LoadSpriteSheets
+ ldr r0, _08106400
+ bl LoadSpritePalettes
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
+_081063F4: .4byte 0x02010000
+_081063F8: .4byte gUnknown_083EDE8C
+_081063FC: .4byte gUnknown_083EDC2C
+_08106400: .4byte gSlotMachineSpritePalettes
+ thumb_func_end sub_81063C0
+
+ thumb_func_start sub_8106404
+sub_8106404: @ 8106404
+ push {r4,r5,lr}
+ ldr r3, _0810643C
+ movs r2, 0
+ ldr r5, _08106440
+ ldr r0, _08106444
+ ldr r4, [r0]
+_08106410:
+ movs r1, 0
+ adds r2, 0x1
+_08106414:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, 0x1
+ cmp r1, 0x1F
+ bls _08106414
+ lsls r0, r2, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _08106410
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810643C: .4byte 0x02010000
+_08106440: .4byte gUnknown_083EDCDC
+_08106444: .4byte gUnknown_083EDCE4
+ thumb_func_end sub_8106404
+
+ thumb_func_start sub_8106448
+sub_8106448: @ 8106448
+ push {r4-r7,lr}
+ ldr r0, _081064A0
+ ldr r4, _081064A4
+ adds r1, r4, 0
+ bl sub_800D238
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r5, 0xE9
+ lsls r5, 5
+ ldr r1, _081064A8
+ ldr r6, _081064AC
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08106468:
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r2
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08106468
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _081064B0
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _081064B4
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064A0: .4byte gSlotMachine_Gfx
+_081064A4: .4byte 0x02010000
+_081064A8: .4byte 0x040000d4
+_081064AC: .4byte 0x80000800
+_081064B0: .4byte gUnknown_08E95A18
+_081064B4: .4byte gUnknown_083EDE24
+ thumb_func_end sub_8106448
+
+ thumb_func_start sub_81064B8
+sub_81064B8: @ 81064B8
+ push {lr}
+ ldr r0, _081064D0
+ ldr r1, _081064D4
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ bl sub_81064D8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064D0: .4byte gUnknown_08E95AB8
+_081064D4: .4byte 0x0600e800
+ thumb_func_end sub_81064B8
+
+ thumb_func_start sub_81064D8
+sub_81064D8: @ 81064D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, _0810658C
+ movs r3, 0x4
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r12, r0
+ movs r1, 0xC0
+ lsls r1, 2
+ mov r9, r1
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r8, r2
+_081064F6:
+ movs r0, 0
+ lsls r4, r3, 16
+ asrs r5, r4, 16
+_081064FC:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r5, r2
+ lsls r1, 1
+ adds r1, r6
+ mov r7, r8
+ adds r3, r1, r7
+ ldr r7, _08106590
+ adds r0, r7, 0
+ strh r0, [r3]
+ movs r0, 0xD0
+ lsls r0, 2
+ adds r3, r1, r0
+ ldr r7, _08106594
+ adds r0, r7, 0
+ strh r0, [r3]
+ mov r0, r12
+ adds r3, r1, r0
+ ldr r7, _08106598
+ adds r0, r7, 0
+ strh r0, [r3]
+ add r1, r9
+ ldr r3, _0810659C
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x3
+ ble _081064FC
+ asrs r3, r4, 16
+ lsls r1, r3, 1
+ adds r1, r6
+ mov r5, r12
+ adds r2, r1, r5
+ adds r7, 0x5D
+ adds r0, r7, 0
+ strh r0, [r2]
+ add r1, r9
+ ldr r2, _081065A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x7
+ ldr r5, _081065A4
+ adds r2, r5, 0
+_08106558:
+ lsls r1, r0, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0xB
+ ble _08106558
+ movs r7, 0xA0
+ lsls r7, 11
+ adds r0, r4, r7
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _081064F6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810658C: .4byte 0x0600f000
+_08106590: .4byte 0x00002051
+_08106594: .4byte 0x00002851
+_08106598: .4byte 0x00002061
+_0810659C: .4byte 0x00002861
+_081065A0: .4byte 0x000028be
+_081065A4: .4byte 0x000020bf
+ thumb_func_end sub_81064D8
+
+ thumb_func_start sub_81065A8
+sub_81065A8: @ 81065A8
+ push {r4-r6,lr}
+ ldr r5, [sp, 0x10]
+ lsls r0, 16
+ asrs r0, 15
+ ldr r6, _081065D0
+ adds r4, r0, r6
+ strh r1, [r4]
+ ldr r4, _081065D4
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r6, 0x40
+ adds r1, r0, r6
+ strh r3, [r1]
+ ldr r1, _081065D8
+ adds r0, r1
+ strh r5, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081065D0: .4byte 0x0600ebc0
+_081065D4: .4byte 0x0600ebc2
+_081065D8: .4byte 0x0600ec02
+ thumb_func_end sub_81065A8
+
+ thumb_func_start sub_81065DC
+sub_81065DC: @ 81065DC
+ push {r4,r5,lr}
+ ldr r0, _08106624
+ ldr r1, _08106628
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ ldr r5, _0810662C
+ movs r1, 0
+ movs r4, 0
+_081065F0:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r2, r3, 11
+_081065F6:
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r2, r1
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _081065F6
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _081065F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106624: .4byte gUnknown_08E95FB8
+_08106628: .4byte 0x0600e800
+_0810662C: .4byte 0x0600f000
+ thumb_func_end sub_81065DC
+
+ thumb_func_start sub_8106630
+sub_8106630: @ 8106630
+ push {r4-r7,lr}
+ ldr r2, _0810665C
+ subs r4, r2, 0x2
+ subs r5, r2, 0x1
+ ldr r3, _08106660
+ subs r0, 0x1
+ lsls r1, r0, 5
+ adds r1, r3
+ ldr r3, _08106664
+ adds r1, r3
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r6,r7}
+ stm r2!, {r6,r7}
+ strb r0, [r4]
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810665C: .4byte 0x02015de0
+_08106660: .4byte gSaveBlock1
+_08106664: .4byte 0x00002dfc
+ thumb_func_end sub_8106630
+
+ thumb_func_start sub_8106668
+sub_8106668: @ 8106668
+ push {lr}
+ bl sub_8106674
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106668
+
+ thumb_func_start sub_8106674
+sub_8106674: @ 8106674
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _08106694
+ ldr r2, _08106698
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _08106688
+ b _081067E0
+_08106688:
+ lsls r0, 2
+ ldr r1, _0810669C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106694: .4byte gMain
+_08106698: .4byte 0x0000043c
+_0810669C: .4byte _081066A0
+ .align 2, 0
+_081066A0:
+ .4byte _081066B4
+ .4byte _081066D8
+ .4byte _08106734
+ .4byte _0810675C
+ .4byte _0810678C
+_081066B4:
+ bl remove_some_task
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _081066D0
+ ldr r0, _081066D4
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_8106A10
+ bl sub_81069CC
+ b _0810676E
+ .align 2, 0
+_081066D0: .4byte gUnknown_03005E8C
+_081066D4: .4byte 0x02015de0
+_081066D8:
+ bl ResetPaletteFade
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _08106724
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _08106728
+ movs r7, 0x85
+ lsls r7, 24
+_081066F2:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _081066F2
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetSpriteData
+ ldr r1, _0810672C
+ ldr r2, _08106730
+ adds r1, r2
+ b _08106774
+ .align 2, 0
+_08106724: .4byte 0x040000d4
+_08106728: .4byte 0x85000400
+_0810672C: .4byte gMain
+_08106730: .4byte 0x0000043c
+_08106734:
+ ldrh r0, [r4, 0x20]
+ bl SeedRng
+ bl InitKeys
+ ldr r0, _08106750
+ ldr r1, _08106754
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81068FC
+ ldr r2, _08106758
+ adds r1, r4, r2
+ b _08106774
+ .align 2, 0
+_08106750: .4byte 0x02000000
+_08106754: .4byte 0x00015ddf
+_08106758: .4byte 0x0000043c
+_0810675C:
+ ldr r1, _0810677C
+ ldr r2, _08106780
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8107090
+_0810676E:
+ ldr r1, _08106784
+ ldr r0, _08106788
+ adds r1, r0
+_08106774:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081067E0
+ .align 2, 0
+_0810677C: .4byte 0x02000000
+_08106780: .4byte 0x00015dde
+_08106784: .4byte gMain
+_08106788: .4byte 0x0000043c
+_0810678C:
+ ldr r1, _081067E8
+ ldr r2, _081067EC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8106918
+ ldr r0, _081067F0
+ movs r1, 0
+ movs r2, 0x2
+ bl LoadPalette
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r4, 0
+ str r4, [sp]
+ ldr r0, _081067F4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081067F8
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r0, 0x2
+ bl BeginFastPaletteFade
+ ldr r0, _081067FC
+ bl SetVBlankCallback
+ ldr r0, _08106800
+ strb r4, [r0]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106804
+ bl SetMainCallback2
+_081067E0:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081067E8: .4byte 0x02000000
+_081067EC: .4byte 0x00015dde
+_081067F0: .4byte gUnknown_083F6140
+_081067F4: .4byte 0x040000d4
+_081067F8: .4byte 0x85000100
+_081067FC: .4byte sub_8106AAC
+_08106800: .4byte gUnknown_03000750
+_08106804: .4byte sub_8106808
+ thumb_func_end sub_8106674
+
+ thumb_func_start sub_8106808
+sub_8106808: @ 8106808
+ push {lr}
+ bl sub_810682C
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106808
+
+ thumb_func_start sub_8106818
+sub_8106818: @ 8106818
+ push {lr}
+ ldr r0, _08106828
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106828: .4byte gMain
+ thumb_func_end sub_8106818
+
+ thumb_func_start sub_810682C
+sub_810682C: @ 810682C
+ push {lr}
+ sub sp, 0x4
+ ldr r3, _08106844
+ ldrb r1, [r3]
+ cmp r1, 0x1
+ beq _08106880
+ cmp r1, 0x1
+ bgt _08106848
+ cmp r1, 0
+ beq _0810684E
+ b _081068E6
+ .align 2, 0
+_08106844: .4byte gUnknown_03000750
+_08106848:
+ cmp r1, 0x2
+ beq _081068C0
+ b _081068E6
+_0810684E:
+ ldr r0, _08106874
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810685E
+ movs r0, 0x1
+ strb r0, [r3]
+_0810685E:
+ ldr r0, _08106878
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _0810687C
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081068E6
+ subs r0, 0x1
+ b _081068E4
+ .align 2, 0
+_08106874: .4byte gPaletteFade
+_08106878: .4byte gUnknown_03000756
+_0810687C: .4byte gUnknown_03000754
+_08106880:
+ ldr r0, _081068B4
+ ldrh r2, [r0, 0x2E]
+ ands r1, r2
+ cmp r1, 0
+ bne _08106892
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _081068A4
+_08106892:
+ movs r0, 0x2
+ strb r0, [r3]
+ subs r0, 0x3
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_081068A4:
+ ldr r0, _081068B8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068BC
+ movs r0, 0
+ b _081068E4
+ .align 2, 0
+_081068B4: .4byte gMain
+_081068B8: .4byte gUnknown_03000756
+_081068BC: .4byte gUnknown_03000754
+_081068C0:
+ ldr r0, _081068EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081068D2
+ ldr r0, _081068F0
+ bl SetMainCallback2
+_081068D2:
+ ldr r0, _081068F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068F8
+ ldrh r0, [r1]
+ cmp r0, 0x1D
+ bhi _081068E6
+ adds r0, 0x1
+_081068E4:
+ strh r0, [r1]
+_081068E6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081068EC: .4byte gPaletteFade
+_081068F0: .4byte sub_8106818
+_081068F4: .4byte gUnknown_03000756
+_081068F8: .4byte gUnknown_03000754
+ thumb_func_end sub_810682C
+
+ thumb_func_start sub_81068FC
+sub_81068FC: @ 81068FC
+ push {r4,lr}
+ ldr r4, _08106914
+ adds r0, r4, 0
+ bl InitMenuWindow
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106914: .4byte gWindowConfig_81E7160
+ thumb_func_end sub_81068FC
+
+ thumb_func_start sub_8106918
+sub_8106918: @ 8106918
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081069BE
+ ldr r2, _08106974
+ ldr r6, _08106978
+ ldr r0, [r6]
+ ldrb r0, [r0, 0xA]
+ cmp r3, 0x7
+ bhi _08106988
+ ldr r1, _0810697C
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08106980
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0x16
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x16
+ strb r0, [r2, 0x1]
+ adds r2, 0x2
+ ldr r1, _08106984
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ movs r1, 0x6
+ b _081069AE
+ .align 2, 0
+_08106974: .4byte gUnknown_03005E40
+_08106978: .4byte gUnknown_03005E8C
+_0810697C: .4byte gUnknown_083F60AC
+_08106980: .4byte gContestText_ContestWinner
+_08106984: .4byte gOtherText_Unknown1
+_08106988:
+ ldr r4, _081069C4
+ lsls r5, r0, 3
+ adds r0, r5, r4
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ adds r2, r0, 0
+ adds r4, 0x4
+ adds r5, r4
+ ldr r1, [r5]
+ bl StringCopy
+ movs r1, 0x3
+_081069AE:
+ movs r2, 0xE
+ ldr r0, _081069C8
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r2, 3
+ movs r3, 0x1
+ bl sub_80729D8
+_081069BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081069C4: .4byte gUnknown_083F60C0
+_081069C8: .4byte gUnknown_03005E40
+ thumb_func_end sub_8106918
+
+ thumb_func_start sub_81069CC
+sub_81069CC: @ 81069CC
+ movs r0, 0x80
+ lsls r0, 19
+ movs r3, 0
+ strh r3, [r0]
+ ldr r2, _081069FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08106A00
+ ldr r2, _08106A04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08106A08
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106A0C
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ bx lr
+ .align 2, 0
+_081069FC: .4byte 0x04000200
+_08106A00: .4byte REG_BG0CNT
+_08106A04: .4byte 0x00000c42
+_08106A08: .4byte 0x00000a45
+_08106A0C: .4byte REG_BLDCNT
+ thumb_func_end sub_81069CC
+
+ thumb_func_start sub_8106A10
+sub_8106A10: @ 8106A10
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08106A34
+ ldr r0, _08106A28
+ strb r1, [r0]
+ ldr r0, _08106A2C
+ strh r1, [r0]
+ ldr r0, _08106A30
+ strh r1, [r0]
+ b _08106A46
+ .align 2, 0
+_08106A28: .4byte gUnknown_03000756
+_08106A2C: .4byte gUnknown_03000752
+_08106A30: .4byte gUnknown_03000754
+_08106A34:
+ ldr r1, _08106A4C
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08106A50
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r1, _08106A54
+ movs r0, 0x1E
+ strh r0, [r1]
+_08106A46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A4C: .4byte gUnknown_03000756
+_08106A50: .4byte gUnknown_03000752
+_08106A54: .4byte gUnknown_03000754
+ thumb_func_end sub_8106A10
+
+ thumb_func_start sub_8106A58
+sub_8106A58: @ 8106A58
+ push {lr}
+ ldr r0, _08106A68
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08106A70
+ ldr r0, _08106A6C
+ strh r1, [r0]
+ b _08106A92
+ .align 2, 0
+_08106A68: .4byte gUnknown_03000756
+_08106A6C: .4byte REG_MOSAIC
+_08106A70:
+ ldr r1, _08106A98
+ ldr r2, _08106A9C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _08106AA0
+ ldr r0, _08106AA4
+ ldrh r1, [r0]
+ lsrs r1, 1
+ strh r1, [r2]
+ ldr r3, _08106AA8
+ lsls r0, r1, 12
+ lsls r2, r1, 8
+ orrs r0, r2
+ lsls r2, r1, 4
+ orrs r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_08106A92:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A98: .4byte REG_BG1CNT
+_08106A9C: .4byte 0x00000a45
+_08106AA0: .4byte gUnknown_03000752
+_08106AA4: .4byte gUnknown_03000754
+_08106AA8: .4byte REG_MOSAIC
+ thumb_func_end sub_8106A58
+
+ thumb_func_start sub_8106AAC
+sub_8106AAC: @ 8106AAC
+ push {lr}
+ bl sub_8106A58
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106AAC
+
+ thumb_func_start sub_8106AC4
+sub_8106AC4: @ 8106AC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _08106B28
+ ldr r0, [r7]
+ ldr r1, [r0, 0x4]
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl species_and_otid_get_pal
+ ldr r1, _08106B2C
+ mov r8, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+ cmp r4, 0
+ bne _08106B40
+ lsls r0, r6, 3
+ ldr r1, _08106B30
+ adds r0, r1
+ ldr r1, _08106B34
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B38
+ ldr r5, [r4, 0x4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r0, _08106B3C
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+ b _08106B74
+ .align 2, 0
+_08106B28: .4byte gUnknown_03005E8C
+_08106B2C: .4byte gUnknown_03005E90
+_08106B30: .4byte gMonFrontPicTable
+_08106B34: .4byte gMonFrontPicCoords
+_08106B38: .4byte gUnknown_081FAF4C
+_08106B3C: .4byte gUnknown_03005E10
+_08106B40:
+ lsls r0, r6, 3
+ ldr r1, _08106B80
+ adds r0, r1
+ ldr r1, _08106B84
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B88
+ ldr r5, [r4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _08106B8C
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+_08106B74:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106B80: .4byte gMonBackPicTable
+_08106B84: .4byte gMonBackPicCoords
+_08106B88: .4byte gUnknown_081FAF4C
+_08106B8C: .4byte gUnknown_03005E10
+ thumb_func_end sub_8106AC4
+
+ thumb_func_start sub_8106B90
+sub_8106B90: @ 8106B90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ mov r9, r1
+ str r2, [sp]
+ movs r0, 0
+_08106BA4:
+ movs r3, 0
+ adds r1, r0, 0x1
+ str r1, [sp, 0x4]
+ lsls r0, 3
+ str r0, [sp, 0x8]
+_08106BAE:
+ movs r1, 0
+ adds r2, r3, 0x1
+ mov r8, r2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r3
+ lsls r0, 5
+ mov r12, r0
+ lsls r4, r3, 3
+_08106BBE:
+ movs r3, 0
+ lsls r0, r1, 2
+ adds r6, r1, 0x1
+ mov r2, r12
+ adds r5, r2, r0
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r1
+ lsls r0, 7
+ ldr r1, [sp]
+ adds r2, r0, r1
+_08106BD2:
+ lsrs r0, r3, 1
+ adds r0, r5, r0
+ add r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08106BE6
+ lsrs r1, 4
+ b _08106BEA
+_08106BE6:
+ movs r0, 0xF
+ ands r1, r0
+_08106BEA:
+ cmp r1, 0
+ bne _08106BFC
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ movs r7, 0x80
+ lsls r7, 8
+ adds r1, r7, 0
+ b _08106C08
+_08106BFC:
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+_08106C08:
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BD2
+ lsls r0, r6, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _08106BBE
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BAE
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bls _08106BA4
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106B90
+
+ thumb_func_start sub_8106C40
+sub_8106C40: @ 8106C40
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08106C7C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ cmp r4, 0x1
+ beq _08106C5E
+ b _08106DB4
+_08106C5E:
+ ldr r0, _08106C80
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106D1C
+ lsls r0, 2
+ ldr r1, _08106C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106C7C: .4byte gPictureFramePalettes
+_08106C80: .4byte gUnknown_03005E8C
+_08106C84: .4byte _08106C88
+ .align 2, 0
+_08106C88:
+ .4byte _08106C9C
+ .4byte _08106CB4
+ .4byte _08106CCC
+ .4byte _08106CE4
+ .4byte _08106D08
+_08106C9C:
+ ldr r0, _08106CAC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CB0
+ b _08106CF0
+ .align 2, 0
+_08106CAC: .4byte gPictureFrameTiles_0
+_08106CB0: .4byte gPictureFrameTilemap_0
+_08106CB4:
+ ldr r0, _08106CC4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CC8
+ b _08106CF0
+ .align 2, 0
+_08106CC4: .4byte gPictureFrameTiles_1
+_08106CC8: .4byte gPictureFrameTilemap_1
+_08106CCC:
+ ldr r0, _08106CDC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CE0
+ b _08106CF0
+ .align 2, 0
+_08106CDC: .4byte gPictureFrameTiles_2
+_08106CE0: .4byte gPictureFrameTilemap_2
+_08106CE4:
+ ldr r0, _08106CFC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D00
+_08106CF0:
+ ldr r1, _08106D04
+ ldr r1, [r1]
+ bl RLUnCompWram
+ b _08106D1C
+ .align 2, 0
+_08106CFC: .4byte gPictureFrameTiles_3
+_08106D00: .4byte gPictureFrameTilemap_3
+_08106D04: .4byte gUnknown_03005E10
+_08106D08:
+ ldr r0, _08106D98
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D9C
+ ldr r1, _08106DA0
+ ldr r1, [r1]
+ bl RLUnCompWram
+_08106D1C:
+ movs r1, 0
+ ldr r5, _08106DA4
+ ldr r0, _08106DA8
+ adds r4, r0, 0
+_08106D24:
+ movs r3, 0
+ lsls r2, r1, 5
+_08106D28:
+ adds r0, r2, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08106D28
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _08106D24
+ movs r1, 0
+ ldr r0, _08106DAC
+ mov r12, r0
+ ldr r7, _08106DA0
+_08106D4C:
+ movs r3, 0
+ adds r6, r1, 0x1
+ lsls r5, r1, 5
+ lsls r4, r1, 6
+_08106D54:
+ adds r2, r5, r3
+ lsls r2, 1
+ add r2, r12
+ ldr r0, [r7]
+ adds r0, r4, r0
+ lsls r1, r3, 1
+ adds r0, r1
+ adds r0, 0x8C
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x11
+ bls _08106D54
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ bls _08106D4C
+ movs r3, 0
+ ldr r4, _08106DB0
+ ldr r2, _08106DA0
+_08106D80:
+ lsls r1, r3, 1
+ adds r1, r4
+ ldr r0, [r2]
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _08106D80
+ b _08106E86
+ .align 2, 0
+_08106D98: .4byte gPictureFrameTiles_4
+_08106D9C: .4byte gPictureFrameTilemap_4
+_08106DA0: .4byte gUnknown_03005E10
+_08106DA4: .4byte 0x06006000
+_08106DA8: .4byte 0x00001015
+_08106DAC: .4byte 0x0600608c
+_08106DB0: .4byte 0x0600608e
+_08106DB4:
+ cmp r5, 0x7
+ bhi _08106DD0
+ ldr r0, _08106DC8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106DCC
+ b _08106E60
+ .align 2, 0
+_08106DC8: .4byte gPictureFrameTiles_5
+_08106DCC: .4byte gPictureFrameTilemap_5
+_08106DD0:
+ ldr r0, _08106DF0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106E86
+ lsls r0, 2
+ ldr r1, _08106DF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106DF0: .4byte gUnknown_03005E8C
+_08106DF4: .4byte _08106DF8
+ .align 2, 0
+_08106DF8:
+ .4byte _08106E0C
+ .4byte _08106E24
+ .4byte _08106E3C
+ .4byte _08106E54
+ .4byte _08106E74
+_08106E0C:
+ ldr r0, _08106E1C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E20
+ b _08106E60
+ .align 2, 0
+_08106E1C: .4byte gPictureFrameTiles_0
+_08106E20: .4byte gPictureFrameTilemap_0
+_08106E24:
+ ldr r0, _08106E34
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E38
+ b _08106E60
+ .align 2, 0
+_08106E34: .4byte gPictureFrameTiles_1
+_08106E38: .4byte gPictureFrameTilemap_1
+_08106E3C:
+ ldr r0, _08106E4C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E50
+ b _08106E60
+ .align 2, 0
+_08106E4C: .4byte gPictureFrameTiles_2
+_08106E50: .4byte gPictureFrameTilemap_2
+_08106E54:
+ ldr r0, _08106E68
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E6C
+_08106E60:
+ ldr r1, _08106E70
+ bl RLUnCompVram
+ b _08106E86
+ .align 2, 0
+_08106E68: .4byte gPictureFrameTiles_3
+_08106E6C: .4byte gPictureFrameTilemap_3
+_08106E70: .4byte 0x06006000
+_08106E74:
+ ldr r0, _08106E8C
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E90
+ ldr r1, _08106E94
+ bl RLUnCompVram
+_08106E86:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106E8C: .4byte gPictureFrameTiles_4
+_08106E90: .4byte gPictureFrameTilemap_4
+_08106E94: .4byte 0x06006000
+ thumb_func_end sub_8106C40
+
+ thumb_func_start sub_8106E98
+sub_8106E98: @ 8106E98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08106ED0
+ ldr r1, _08106ED4
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r4, 0x3C]
+ str r2, [r4, 0x40]
+ adds r3, r4, 0
+ adds r3, 0x40
+ ldrh r2, [r3]
+ ldr r1, _08106ED8
+ ands r1, r2
+ strh r1, [r3]
+ ldrh r1, [r4, 0x3E]
+ ldr r0, _08106EDC
+ ands r0, r1
+ movs r1, 0x58
+ orrs r0, r1
+ strh r0, [r4, 0x3E]
+ adds r1, r4, 0
+ adds r1, 0x3C
+ movs r0, 0x18
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106ED0: .4byte gMain
+_08106ED4: .4byte gOamData_83F6138
+_08106ED8: .4byte 0xfffffc00
+_08106EDC: .4byte 0xfffffe00
+ thumb_func_end sub_8106E98
+
+ thumb_func_start sub_8106EE0
+sub_8106EE0: @ 8106EE0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bhi _08106EF8
+ ldr r0, _08106EF4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ b _08106F08
+ .align 2, 0
+_08106EF4: .4byte gUnknown_03005E8C
+_08106EF8:
+ ldr r0, _08106F18
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_08106F08:
+ cmp r0, 0x4
+ bhi _08106F46
+ lsls r0, 2
+ ldr r1, _08106F1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106F18: .4byte gUnknown_03005E8C
+_08106F1C: .4byte _08106F20
+ .align 2, 0
+_08106F20:
+ .4byte _08106F34
+ .4byte _08106F38
+ .4byte _08106F3C
+ .4byte _08106F40
+ .4byte _08106F44
+_08106F34:
+ movs r0, 0x9
+ b _08106F46
+_08106F38:
+ movs r0, 0xD
+ b _08106F46
+_08106F3C:
+ movs r0, 0x2
+ b _08106F46
+_08106F40:
+ movs r0, 0x24
+ b _08106F46
+_08106F44:
+ movs r0, 0x6
+_08106F46:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8106EE0
+
+ thumb_func_start sub_8106F4C
+sub_8106F4C: @ 8106F4C
+ ldr r0, _08106F5C
+ ldr r1, _08106F60
+ str r1, [r0]
+ ldr r0, _08106F64
+ ldr r2, _08106F68
+ adds r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08106F5C: .4byte gUnknown_03005E90
+_08106F60: .4byte 0x02017e00
+_08106F64: .4byte gUnknown_03005E10
+_08106F68: .4byte 0xffffe000
+ thumb_func_end sub_8106F4C
+
+ thumb_func_start sub_8106F6C
+sub_8106F6C: @ 8106F6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08106FAC
+ ldr r0, _08106FB0
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r0, _08106FB4
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ movs r2, 0
+ strb r2, [r1, 0x18]
+ ldr r0, _08106FB8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1F]
+ strb r2, [r1, 0x19]
+ strb r2, [r1, 0x1A]
+ movs r0, 0x40
+ strb r0, [r1, 0x1B]
+ strb r0, [r1, 0x1C]
+ strb r0, [r1, 0x1D]
+ strb r0, [r1, 0x1E]
+ subs r0, r3, 0x2
+ adds r4, r1, 0
+ cmp r0, 0x22
+ bhi _08107050
+ lsls r0, 2
+ ldr r1, _08106FBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106FAC: .4byte gUnknown_03005E20
+_08106FB0: .4byte gUnknown_03005E10
+_08106FB4: .4byte gUnknown_03005E90
+_08106FB8: .4byte gUnknown_03005E8C
+_08106FBC: .4byte _08106FC0
+ .align 2, 0
+_08106FC0:
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+_0810704C:
+ movs r0, 0x3
+ b _08107052
+_08107050:
+ movs r0, 0x1
+_08107052:
+ strh r0, [r4, 0x14]
+ movs r0, 0x2
+ strh r0, [r4, 0x16]
+ strb r3, [r4]
+ ldr r0, _08107088
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80FC7A0
+ adds r0, r4, 0
+ bl sub_80FDA18
+ adds r0, r4, 0
+ bl sub_80FD8CC
+ ldr r0, _0810708C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x80
+ lsls r2, 2
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107088: .4byte 0x06010000
+_0810708C: .4byte gUnknown_03005E90
+ thumb_func_end sub_8106F6C
+
+ thumb_func_start sub_8107090
+sub_8107090: @ 8107090
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8106F4C
+ ldr r0, _081070D0
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_8106AC4
+ adds r0, r4, 0
+ bl sub_8106EE0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8106F6C
+ adds r0, r4, 0
+ bl sub_8106E98
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8106C40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081070D0: .4byte gUnknown_03005E8C
+ thumb_func_end sub_8107090
+
+ thumb_func_start sub_81070D4
+sub_81070D4: @ 81070D4
+ push {r4-r7,lr}
+ ldr r2, _08107144
+ movs r3, 0
+ ldr r4, _08107148
+ movs r1, 0
+_081070DE:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2F
+ bls _081070DE
+ ldrh r2, [r4]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _08107138
+ ldr r5, _0810714C
+ ldrh r1, [r5]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _08107138
+ ldr r0, _08107150
+ ands r0, r2
+ cmp r0, 0
+ bne _08107138
+ movs r3, 0
+ ldr r7, _08107154
+ ldr r4, _08107158
+ adds r6, r4, 0
+ subs r6, 0x8
+_08107110:
+ lsls r2, r3, 1
+ ldrh r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r7
+ ldrh r2, [r2]
+ cmp r2, 0
+ beq _08107132
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107132:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08107110
+_08107138:
+ bl sub_810715C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107144: .4byte 0x02016a00
+_08107148: .4byte gUnknown_020239F8
+_0810714C: .4byte word_202FF5E
+_08107150: .4byte 0x00000982
+_08107154: .4byte gTrainers + 0x10
+_08107158: .4byte 0x02016a2c
+ thumb_func_end sub_81070D4
+
+ thumb_func_start sub_810715C
+sub_810715C: @ 810715C
+ push {r4-r7,lr}
+ ldr r2, _08107204
+ movs r4, 0
+ ldr r3, _08107208
+ movs r1, 0
+_08107166:
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1B
+ bls _08107166
+ ldr r0, _08107204
+ movs r1, 0x64
+ movs r4, 0x3
+ adds r0, 0x7
+_08107178:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08107178
+ ldrb r0, [r3]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _08107204
+ adds r5, r0, 0x4
+ ldr r6, _0810720C
+_08107198:
+ ldr r0, [r6]
+ ands r0, r7
+ cmp r0, 0
+ beq _081071A4
+ movs r0, 0
+ strb r0, [r5]
+_081071A4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ strb r1, [r5, 0x14]
+ adds r5, 0x1
+ adds r6, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08107198
+ ldr r0, _08107210
+ adds r0, 0x20
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08107214
+ ldr r0, _08107208
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _08107218
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08107224
+ ldr r4, _0810721C
+ bl Random
+ movs r5, 0x2
+ ands r0, r5
+ strb r0, [r4]
+ ldr r0, _08107220
+ ldrb r1, [r0]
+ ldr r2, _0810720C
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0810722C
+ eors r3, r5
+ strb r3, [r4]
+ b _0810722C
+ .align 2, 0
+_08107204: .4byte 0x02016800
+_08107208: .4byte gUnknown_02024A60
+_0810720C: .4byte gBitTable
+_08107210: .4byte 0x02016c00
+_08107214: .4byte gUnknown_02024C07
+_08107218: .4byte gUnknown_020239F8
+_0810721C: .4byte gUnknown_02024C08
+_08107220: .4byte gUnknown_02024C0C
+_08107224:
+ ldr r0, _08107244
+ movs r1, 0x1
+ eors r1, r2
+ strb r1, [r0]
+_0810722C:
+ ldr r0, _08107248
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08107250
+ ldr r1, _0810724C
+ movs r0, 0x80
+ lsls r0, 23
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107244: .4byte gUnknown_02024C08
+_08107248: .4byte gUnknown_020239F8
+_0810724C: .4byte 0x02016800
+_08107250:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08107268
+ ldr r1, _08107264
+ movs r0, 0x80
+ lsls r0, 22
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107264: .4byte 0x02016800
+_08107268:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08107280
+ ldr r1, _0810727C
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_0810727C: .4byte 0x02016800
+_08107280:
+ ldr r3, _0810729C
+ ldr r2, _081072A0
+ ldr r0, _081072A4
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3, 0xC]
+_08107296:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810729C: .4byte 0x02016800
+_081072A0: .4byte gTrainers
+_081072A4: .4byte word_202FF5E
+ thumb_func_end sub_810715C
+
+ thumb_func_start sub_81072A8
+sub_81072A8: @ 81072A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ bl sub_810745C
+ ldr r1, _081072F4
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _081072E2
+ adds r4, r1, 0
+ movs r5, 0
+_081072C0:
+ ldr r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081072D0
+ strb r5, [r4]
+ bl sub_8107374
+_081072D0:
+ ldr r1, [r4, 0xC]
+ lsrs r1, 1
+ str r1, [r4, 0xC]
+ ldrb r0, [r4, 0x11]
+ adds r0, 0x1
+ strb r0, [r4, 0x11]
+ strb r5, [r4, 0x1]
+ cmp r1, 0
+ bne _081072C0
+_081072E2:
+ ldr r7, _081072F4
+ ldrb r1, [r7, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081072F8
+ movs r0, 0x4
+ b _08107368
+ .align 2, 0
+_081072F4: .4byte 0x02016800
+_081072F8:
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08107308
+ movs r0, 0x5
+ b _08107368
+_08107308:
+ movs r5, 0x1
+ mov r0, sp
+ ldrb r1, [r7, 0x4]
+ strb r1, [r0]
+ add r0, sp, 0x4
+ strb r2, [r0]
+ movs r3, 0x1
+ mov r8, r0
+ mov r4, sp
+ mov r6, r8
+ adds r2, r7, 0x5
+_0810731E:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bge _08107330
+ movs r5, 0x1
+ ldrb r0, [r2]
+ strb r0, [r4]
+ strb r3, [r6]
+_08107330:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _0810734E
+ mov r0, sp
+ adds r1, r0, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r1, r6, r1
+ strb r3, [r1]
+_0810734E:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810731E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ add r0, r8
+ ldrb r0, [r0]
+_08107368:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81072A8
+
+ thumb_func_start sub_8107374
+sub_8107374: @ 8107374
+ push {r4-r7,lr}
+ ldr r1, _081073D0
+ ldrb r0, [r1]
+ adds r6, r1, 0
+ cmp r0, 0x2
+ beq _08107456
+ adds r4, r1, 0
+ ldr r7, _081073D4
+_08107384:
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _081073E4
+ cmp r0, 0x1
+ bgt _0810744E
+ cmp r0, 0
+ bne _0810744E
+ ldr r1, _081073D8
+ ldrb r0, [r4, 0x11]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r7]
+ ldr r5, _081073DC
+ ldrb r3, [r4, 0x1]
+ ldr r0, _081073E0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, r2
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081073C6
+ lsls r0, r3, 1
+ adds r0, r2
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+_081073C6:
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810744E
+ .align 2, 0
+_081073D0: .4byte 0x02016800
+_081073D4: .4byte gUnknown_02039238
+_081073D8: .4byte BattleAIs
+_081073DC: .4byte gBattleMons
+_081073E0: .4byte gUnknown_02024C07
+_081073E4:
+ ldrh r1, [r1, 0x2]
+ cmp r1, 0
+ beq _08107400
+ ldr r1, _081073FC
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08107410
+ .align 2, 0
+_081073FC: .4byte gUnknown_083F6144
+_08107400:
+ adds r0, r4, 0x4
+ ldrb r2, [r4, 0x1]
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x10]
+_08107410:
+ ldr r1, _0810743C
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x1
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0810744E
+ ldrb r0, [r6, 0x1]
+ adds r0, 0x1
+ strb r0, [r6, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08107440
+ movs r0, 0x8
+ ands r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08107440
+ strb r0, [r6]
+ b _08107446
+ .align 2, 0
+_0810743C: .4byte 0x02016800
+_08107440:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107446:
+ ldrb r1, [r4, 0x10]
+ movs r0, 0xFE
+ ands r0, r1
+ strb r0, [r4, 0x10]
+_0810744E:
+ adds r1, r6, 0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _08107384
+_08107456:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107374
+
+ thumb_func_start sub_810745C
+sub_810745C: @ 810745C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r3, _08107488
+ ldr r5, _0810748C
+ ldr r6, _08107490
+ adds r4, r3, 0
+_08107468:
+ lsls r0, r2, 1
+ ldrb r1, [r4]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08107494
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0810749A
+ .align 2, 0
+_08107488: .4byte gUnknown_02024C08
+_0810748C: .4byte 0x02016a00
+_08107490: .4byte gUnknown_02024C34
+_08107494:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08107468
+_0810749A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810745C
+
+ thumb_func_start unref_sub_81074A0
+unref_sub_81074A0: @ 81074A0
+ push {lr}
+ lsls r0, 24
+ ldr r1, _081074C0
+ lsrs r0, 25
+ movs r2, 0x7
+ lsls r0, 4
+ adds r0, r1
+ adds r0, 0xE
+ movs r1, 0
+_081074B2:
+ strh r1, [r0]
+ subs r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081074B2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074C0: .4byte 0x02016a00
+ thumb_func_end unref_sub_81074A0
+
+ thumb_func_start sub_81074C4
+sub_81074C4: @ 81074C4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _081074EC
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _081074F4
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x20
+ adds r1, r2
+ strb r5, [r1]
+_081074EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074F4: .4byte 0x02016a00
+ thumb_func_end sub_81074C4
+
+ thumb_func_start sub_81074F8
+sub_81074F8: @ 81074F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08107520
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _08107528
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x22
+ adds r1, r2
+ strb r5, [r1]
+_08107520:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107528: .4byte 0x02016a00
+ thumb_func_end sub_81074F8
+
+ thumb_func_start sub_810752C
+sub_810752C: @ 810752C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107560
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bcs _08107564
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107568
+ .align 2, 0
+_08107560: .4byte gUnknown_02039238
+_08107564:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107568:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810752C
+
+ thumb_func_start sub_810756C
+sub_810756C: @ 810756C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075A0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bls _081075A4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075A8
+ .align 2, 0
+_081075A0: .4byte gUnknown_02039238
+_081075A4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810756C
+
+ thumb_func_start sub_81075AC
+sub_81075AC: @ 81075AC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075E0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bne _081075E4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075E8
+ .align 2, 0
+_081075E0: .4byte gUnknown_02039238
+_081075E4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075AC
+
+ thumb_func_start sub_81075EC
+sub_81075EC: @ 81075EC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107620
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ beq _08107624
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107628
+ .align 2, 0
+_08107620: .4byte gUnknown_02039238
+_08107624:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107628:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075EC
+
+ thumb_func_start sub_810762C
+sub_810762C: @ 810762C
+ push {r4,r5,lr}
+ ldr r2, _08107660
+ ldrb r1, [r2, 0x1]
+ adds r3, r2, 0x4
+ adds r1, r3
+ ldr r4, _08107664
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ ldrb r5, [r1]
+ adds r0, r5
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08107652
+ movs r0, 0
+ strb r0, [r1]
+_08107652:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107660: .4byte 0x02016800
+_08107664: .4byte gUnknown_02039238
+ thumb_func_end sub_810762C
+
+ thumb_func_start sub_8107668
+sub_8107668: @ 8107668
+ push {r4,lr}
+ ldr r0, _0810767C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107684
+ ldr r0, _08107680
+ b _08107686
+ .align 2, 0
+_0810767C: .4byte gUnknown_02039238
+_08107680: .4byte gUnknown_02024C07
+_08107684:
+ ldr r0, _081076BC
+_08107686:
+ ldrb r1, [r0]
+ ldr r2, _081076C0
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _081076C4
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081076C8
+ .align 2, 0
+_081076BC: .4byte gUnknown_02024C08
+_081076C0: .4byte gBattleMons
+_081076C4:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_081076C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107668
+
+ thumb_func_start sub_81076D0
+sub_81076D0: @ 81076D0
+ push {r4,lr}
+ ldr r0, _081076E4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081076EC
+ ldr r0, _081076E8
+ b _081076EE
+ .align 2, 0
+_081076E4: .4byte gUnknown_02039238
+_081076E8: .4byte gUnknown_02024C07
+_081076EC:
+ ldr r0, _08107724
+_081076EE:
+ ldrb r1, [r0]
+ ldr r2, _08107728
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bls _0810772C
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107730
+ .align 2, 0
+_08107724: .4byte gUnknown_02024C08
+_08107728: .4byte gBattleMons
+_0810772C:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107730:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81076D0
+
+ thumb_func_start sub_8107738
+sub_8107738: @ 8107738
+ push {r4,lr}
+ ldr r0, _0810774C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107754
+ ldr r0, _08107750
+ b _08107756
+ .align 2, 0
+_0810774C: .4byte gUnknown_02039238
+_08107750: .4byte gUnknown_02024C07
+_08107754:
+ ldr r0, _0810778C
+_08107756:
+ ldrb r1, [r0]
+ ldr r2, _08107790
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bne _08107794
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107798
+ .align 2, 0
+_0810778C: .4byte gUnknown_02024C08
+_08107790: .4byte gBattleMons
+_08107794:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107798:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107738
+
+ thumb_func_start sub_81077A0
+sub_81077A0: @ 81077A0
+ push {r4,lr}
+ ldr r0, _081077B4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081077BC
+ ldr r0, _081077B8
+ b _081077BE
+ .align 2, 0
+_081077B4: .4byte gUnknown_02039238
+_081077B8: .4byte gUnknown_02024C07
+_081077BC:
+ ldr r0, _081077F4
+_081077BE:
+ ldrb r1, [r0]
+ ldr r2, _081077F8
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ beq _081077FC
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107800
+ .align 2, 0
+_081077F4: .4byte gUnknown_02024C08
+_081077F8: .4byte gBattleMons
+_081077FC:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107800:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81077A0
+
+ thumb_func_start sub_8107808
+sub_8107808: @ 8107808
+ push {r4,r5,lr}
+ ldr r0, _0810781C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107824
+ ldr r0, _08107820
+ b _08107826
+ .align 2, 0
+_0810781C: .4byte gUnknown_02039238
+_08107820: .4byte gUnknown_02024C07
+_08107824:
+ ldr r0, _08107868
+_08107826:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _0810786C
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107870
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107876
+ .align 2, 0
+_08107868: .4byte gUnknown_02024C08
+_0810786C: .4byte gBattleMons
+_08107870:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107876:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107808
+
+ thumb_func_start sub_810787C
+sub_810787C: @ 810787C
+ push {r4,r5,lr}
+ ldr r0, _08107890
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107898
+ ldr r0, _08107894
+ b _0810789A
+ .align 2, 0
+_08107890: .4byte gUnknown_02039238
+_08107894: .4byte gUnknown_02024C07
+_08107898:
+ ldr r0, _081078DC
+_0810789A:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081078E0
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081078E4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081078EA
+ .align 2, 0
+_081078DC: .4byte gUnknown_02024C08
+_081078E0: .4byte gBattleMons
+_081078E4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081078EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810787C
+
+ thumb_func_start sub_81078F0
+sub_81078F0: @ 81078F0
+ push {r4,r5,lr}
+ ldr r0, _08107904
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0810790C
+ ldr r0, _08107908
+ b _0810790E
+ .align 2, 0
+_08107904: .4byte gUnknown_02039238
+_08107908: .4byte gUnknown_02024C07
+_0810790C:
+ ldr r0, _08107950
+_0810790E:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _08107954
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107958
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810795E
+ .align 2, 0
+_08107950: .4byte gUnknown_02024C08
+_08107954: .4byte gBattleMons
+_08107958:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_0810795E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81078F0
+
+ thumb_func_start sub_8107964
+sub_8107964: @ 8107964
+ push {r4,r5,lr}
+ ldr r0, _08107978
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107980
+ ldr r0, _0810797C
+ b _08107982
+ .align 2, 0
+_08107978: .4byte gUnknown_02039238
+_0810797C: .4byte gUnknown_02024C07
+_08107980:
+ ldr r0, _081079C4
+_08107982:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081079C8
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081079CC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081079D2
+ .align 2, 0
+_081079C4: .4byte gUnknown_02024C08
+_081079C8: .4byte gBattleMons
+_081079CC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081079D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107964
+
+ thumb_func_start sub_81079D8
+sub_81079D8: @ 81079D8
+ push {r4,r5,lr}
+ ldr r0, _081079EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081079F4
+ ldr r0, _081079F0
+ b _081079F6
+ .align 2, 0
+_081079EC: .4byte gUnknown_02039238
+_081079F0: .4byte gUnknown_02024C07
+_081079F4:
+ ldr r0, _08107A34
+_081079F6:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107A38
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107A3C
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107A42
+ .align 2, 0
+_08107A34: .4byte gUnknown_02024C08
+_08107A38: .4byte gUnknown_02024C98
+_08107A3C:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107A42:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81079D8
+
+ thumb_func_start sub_8107A48
+sub_8107A48: @ 8107A48
+ push {r4,r5,lr}
+ ldr r0, _08107A5C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107A64
+ ldr r0, _08107A60
+ b _08107A66
+ .align 2, 0
+_08107A5C: .4byte gUnknown_02039238
+_08107A60: .4byte gUnknown_02024C07
+_08107A64:
+ ldr r0, _08107AA4
+_08107A66:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107AA8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107AAC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107AB2
+ .align 2, 0
+_08107AA4: .4byte gUnknown_02024C08
+_08107AA8: .4byte gUnknown_02024C98
+_08107AAC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107AB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107A48
+
+ thumb_func_start sub_8107AB8
+sub_8107AB8: @ 8107AB8
+ push {r4,lr}
+ ldr r0, _08107AC8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107AD0
+ ldr r0, _08107ACC
+ b _08107AD2
+ .align 2, 0
+_08107AC8: .4byte gUnknown_02039238
+_08107ACC: .4byte gUnknown_02024C07
+_08107AD0:
+ ldr r0, _08107B1C
+_08107AD2:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B20
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107B24
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107B28
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107B2E
+ .align 2, 0
+_08107B1C: .4byte gUnknown_02024C08
+_08107B20: .4byte gUnknown_02039238
+_08107B24: .4byte gUnknown_02024C7A
+_08107B28:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107B2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107AB8
+
+ thumb_func_start sub_8107B34
+sub_8107B34: @ 8107B34
+ push {r4,lr}
+ ldr r0, _08107B44
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107B4C
+ ldr r0, _08107B48
+ b _08107B4E
+ .align 2, 0
+_08107B44: .4byte gUnknown_02039238
+_08107B48: .4byte gUnknown_02024C07
+_08107B4C:
+ ldr r0, _08107B98
+_08107B4E:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B9C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107BA0
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107BA4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107BAA
+ .align 2, 0
+_08107B98: .4byte gUnknown_02024C08
+_08107B9C: .4byte gUnknown_02039238
+_08107BA0: .4byte gUnknown_02024C7A
+_08107BA4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107BAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107B34
+
+ thumb_func_start sub_8107BB0
+sub_8107BB0: @ 8107BB0
+ push {lr}
+ ldr r0, _08107BD8
+ ldr r3, _08107BDC
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bcs _08107BE0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107BE4
+ .align 2, 0
+_08107BD8: .4byte 0x02016800
+_08107BDC: .4byte gUnknown_02039238
+_08107BE0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107BE4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BB0
+
+ thumb_func_start sub_8107BE8
+sub_8107BE8: @ 8107BE8
+ push {lr}
+ ldr r0, _08107C10
+ ldr r3, _08107C14
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bls _08107C18
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C1C
+ .align 2, 0
+_08107C10: .4byte 0x02016800
+_08107C14: .4byte gUnknown_02039238
+_08107C18:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BE8
+
+ thumb_func_start sub_8107C20
+sub_8107C20: @ 8107C20
+ push {lr}
+ ldr r0, _08107C48
+ ldr r3, _08107C4C
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08107C50
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C54
+ .align 2, 0
+_08107C48: .4byte 0x02016800
+_08107C4C: .4byte gUnknown_02039238
+_08107C50:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C54:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C20
+
+ thumb_func_start sub_8107C58
+sub_8107C58: @ 8107C58
+ push {lr}
+ ldr r0, _08107C80
+ ldr r3, _08107C84
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08107C88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C8C
+ .align 2, 0
+_08107C80: .4byte 0x02016800
+_08107C84: .4byte gUnknown_02039238
+_08107C88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C58
+
+ thumb_func_start sub_8107C90
+sub_8107C90: @ 8107C90
+ push {lr}
+ ldr r3, _08107CCC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107CD0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08107CD4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107CDA
+ .align 2, 0
+_08107CCC: .4byte gUnknown_02039238
+_08107CD0: .4byte 0x02016800
+_08107CD4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107CDA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C90
+
+ thumb_func_start sub_8107CE0
+sub_8107CE0: @ 8107CE0
+ push {lr}
+ ldr r3, _08107D1C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D20
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08107D24
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D2A
+ .align 2, 0
+_08107D1C: .4byte gUnknown_02039238
+_08107D20: .4byte 0x02016800
+_08107D24:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D2A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107CE0
+
+ thumb_func_start sub_8107D30
+sub_8107D30: @ 8107D30
+ push {lr}
+ ldr r3, _08107D6C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D70
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08107D74
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D7A
+ .align 2, 0
+_08107D6C: .4byte gUnknown_02039238
+_08107D70: .4byte 0x02016800
+_08107D74:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D7A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D30
+
+ thumb_func_start sub_8107D80
+sub_8107D80: @ 8107D80
+ push {lr}
+ ldr r3, _08107DBC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107DC0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08107DC4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107DCA
+ .align 2, 0
+_08107DBC: .4byte gUnknown_02039238
+_08107DC0: .4byte 0x02016800
+_08107DC4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107DCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D80
+
+ thumb_func_start sub_8107DD0
+sub_8107DD0: @ 8107DD0
+ push {lr}
+ ldr r3, _08107E00
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E04
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ bne _08107E08
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E0C
+ .align 2, 0
+_08107E00: .4byte gUnknown_02039238
+_08107E04: .4byte 0x02016800
+_08107E08:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107DD0
+
+ thumb_func_start sub_8107E10
+sub_8107E10: @ 8107E10
+ push {lr}
+ ldr r3, _08107E40
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E44
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ beq _08107E48
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E4C
+ .align 2, 0
+_08107E40: .4byte gUnknown_02039238
+_08107E44: .4byte 0x02016800
+_08107E48:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E10
+
+ thumb_func_start sub_8107E50
+sub_8107E50: @ 8107E50
+ push {r4,lr}
+ ldr r2, _08107E98
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _08107EA8
+ ldr r0, _08107E9C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107E76:
+ ldrb r0, [r3]
+ cmp r1, r0
+ bne _08107EA0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107EAE
+ .align 2, 0
+_08107E98: .4byte gUnknown_02039238
+_08107E9C: .4byte 0x02016800
+_08107EA0:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107E76
+_08107EA8:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E50
+
+ thumb_func_start sub_8107EB4
+sub_8107EB4: @ 8107EB4
+ push {r4,lr}
+ ldr r2, _08107EEC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0xFF
+ beq _08107EFC
+ ldr r0, _08107EF0
+ ldr r2, [r0, 0x8]
+ adds r1, r4, 0
+_08107EDC:
+ ldrb r0, [r3]
+ cmp r2, r0
+ bne _08107EF4
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107F14
+ .align 2, 0
+_08107EEC: .4byte gUnknown_02039238
+_08107EF0: .4byte 0x02016800
+_08107EF4:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107EDC
+_08107EFC:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08107F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107EB4
+
+ thumb_func_start sub_8107F1C
+sub_8107F1C: @ 8107F1C
+ push {r4,r5,lr}
+ ldr r2, _08107F64
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r5, _08107F68
+ cmp r0, r5
+ beq _08107F78
+ ldr r0, _08107F6C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107F44:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _08107F70
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107F7E
+ .align 2, 0
+_08107F64: .4byte gUnknown_02039238
+_08107F68: .4byte 0x0000ffff
+_08107F6C: .4byte 0x02016800
+_08107F70:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r5
+ bne _08107F44
+_08107F78:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107F7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F1C
+
+ thumb_func_start sub_8107F84
+sub_8107F84: @ 8107F84
+ push {r4,r5,lr}
+ ldr r2, _08107FBC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r4, _08107FC0
+ adds r5, r2, 0
+ cmp r0, r4
+ beq _08107FD0
+ ldr r0, _08107FC4
+ ldr r2, [r0, 0x8]
+ adds r1, r5, 0
+_08107FAE:
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08107FC8
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107FE8
+ .align 2, 0
+_08107FBC: .4byte gUnknown_02039238
+_08107FC0: .4byte 0x0000ffff
+_08107FC4: .4byte 0x02016800
+_08107FC8:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _08107FAE
+_08107FD0:
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+_08107FE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F84
+
+ thumb_func_start sub_8107FF0
+sub_8107FF0: @ 8107FF0
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _08108030
+ ldr r1, _08108034
+ ldr r0, _08108038
+ ldrb r2, [r0]
+ ldr r5, _0810803C
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108006:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810801A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108022
+_0810801A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108006
+_08108022:
+ cmp r3, 0x4
+ bne _08108040
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _08108058
+ .align 2, 0
+_08108030: .4byte gUnknown_02039238
+_08108034: .4byte gBattleMons
+_08108038: .4byte gUnknown_02024C07
+_0810803C: .4byte gBattleMoves
+_08108040:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08108058:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107FF0
+
+ thumb_func_start sub_8108060
+sub_8108060: @ 8108060
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _081080A0
+ ldr r1, _081080A4
+ ldr r0, _081080A8
+ ldrb r2, [r0]
+ ldr r5, _081080AC
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108076:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810808A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108092
+_0810808A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108076
+_08108092:
+ cmp r3, 0x4
+ beq _081080B0
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _081080C8
+ .align 2, 0
+_081080A0: .4byte gUnknown_02039238
+_081080A4: .4byte gBattleMons
+_081080A8: .4byte gUnknown_02024C07
+_081080AC: .4byte gBattleMoves
+_081080B0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081080C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108060
+
+ thumb_func_start sub_81080D0
+sub_81080D0: @ 81080D0
+ ldr r1, _081080E4
+ ldr r0, _081080E8
+ ldrb r0, [r0, 0x13]
+ str r0, [r1, 0x8]
+ ldr r1, _081080EC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081080E4: .4byte 0x02016800
+_081080E8: .4byte gUnknown_030042E0
+_081080EC: .4byte gUnknown_02039238
+ thumb_func_end sub_81080D0
+
+ thumb_func_start sub_81080F0
+sub_81080F0: @ 81080F0
+ push {r4,lr}
+ ldr r1, _08108108
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _081081B6
+ lsls r0, 2
+ ldr r1, _0810810C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08108108: .4byte gUnknown_02039238
+_0810810C: .4byte _08108110
+ .align 2, 0
+_08108110:
+ .4byte _08108144
+ .4byte _08108124
+ .4byte _08108184
+ .4byte _08108164
+ .4byte _081081A4
+_08108124:
+ ldr r3, _08108138
+ ldr r2, _0810813C
+ ldr r0, _08108140
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108138: .4byte 0x02016800
+_0810813C: .4byte gBattleMons
+_08108140: .4byte gUnknown_02024C07
+_08108144:
+ ldr r3, _08108158
+ ldr r2, _0810815C
+ ldr r0, _08108160
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108158: .4byte 0x02016800
+_0810815C: .4byte gBattleMons
+_08108160: .4byte gUnknown_02024C08
+_08108164:
+ ldr r3, _08108178
+ ldr r2, _0810817C
+ ldr r0, _08108180
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108178: .4byte 0x02016800
+_0810817C: .4byte gBattleMons
+_08108180: .4byte gUnknown_02024C07
+_08108184:
+ ldr r3, _08108198
+ ldr r2, _0810819C
+ ldr r0, _081081A0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108198: .4byte 0x02016800
+_0810819C: .4byte gBattleMons
+_081081A0: .4byte gUnknown_02024C08
+_081081A4:
+ ldr r3, _081081C4
+ ldr r2, _081081C8
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+_081081B4:
+ str r0, [r3, 0x8]
+_081081B6:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081081C4: .4byte 0x02016800
+_081081C8: .4byte gBattleMoves
+ thumb_func_end sub_81080F0
+
+ thumb_func_start sub_81081CC
+sub_81081CC: @ 81081CC
+ ldr r3, _081081E8
+ ldr r2, _081081EC
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _081081F0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081081E8: .4byte 0x02016800
+_081081EC: .4byte gBattleMoves
+_081081F0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081CC
+
+ thumb_func_start sub_81081F4
+sub_81081F4: @ 81081F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r3, 0
+ ldr r0, _08108328
+ ldrh r1, [r0]
+ ldr r4, _0810832C
+ ldr r6, _08108330
+ ldr r5, _08108334
+ cmp r1, r4
+ beq _0810822E
+ ldrh r1, [r5, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_0810821E:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _0810822E
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0810821E
+_0810822E:
+ ldrh r0, [r5, 0x2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bhi _08108240
+ b _081083B2
+_08108240:
+ lsls r0, r3, 1
+ ldr r1, _08108328
+ adds r0, r1
+ ldrh r3, [r0]
+ ldr r0, _0810832C
+ cmp r3, r0
+ beq _08108250
+ b _081083B2
+_08108250:
+ ldr r0, _08108338
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810833C
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r5, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108340
+ strb r1, [r0]
+ ldr r0, _08108344
+ strb r2, [r0]
+ movs r6, 0
+ mov r9, r3
+ ldr r0, _08108328
+ ldrh r0, [r0]
+ str r0, [sp, 0x10]
+_08108276:
+ movs r3, 0
+ ldr r5, _08108348
+ lsls r4, r6, 1
+ ldr r7, _0810834C
+ lsls r1, r6, 2
+ mov r8, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ ldr r0, [sp, 0x10]
+ cmp r0, r9
+ beq _081082BA
+ ldr r2, _08108330
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_081082AA:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _081082BA
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r9
+ bne _081082AA
+_081082BA:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0810835C
+ lsls r0, r3, 1
+ ldr r2, _08108328
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r9
+ bne _0810835C
+ ldr r0, _08108330
+ ldrh r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _0810835C
+ ldr r5, _08108350
+ strh r2, [r5]
+ ldrb r0, [r7]
+ ldr r4, _08108354
+ ldrb r1, [r4]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r4]
+ bl move_effectiveness_something
+ mov r4, sp
+ add r4, r8
+ ldr r2, _08108358
+ ldr r0, _08108334
+ adds r0, 0x18
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r0, [r2]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108364
+ movs r0, 0x1
+ str r0, [r4]
+ b _08108364
+ .align 2, 0
+_08108328: .4byte gUnknown_083F62BC
+_0810832C: .4byte 0x0000ffff
+_08108330: .4byte gBattleMoves
+_08108334: .4byte 0x02016800
+_08108338: .4byte gUnknown_02024DEC
+_0810833C: .4byte 0xfffff81c
+_08108340: .4byte gUnknown_02024C68
+_08108344: .4byte gCritMultiplier
+_08108348: .4byte gBattleMons
+_0810834C: .4byte gUnknown_02024C07
+_08108350: .4byte gUnknown_02024BE6
+_08108354: .4byte gUnknown_02024C08
+_08108358: .4byte gUnknown_02024BEC
+_0810835C:
+ mov r1, sp
+ add r1, r8
+ movs r0, 0
+ str r0, [r1]
+_08108364:
+ mov r6, r10
+ cmp r6, 0x3
+ ble _08108276
+ movs r6, 0
+ ldr r1, _081083A4
+ ldrb r0, [r1, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r2, [sp]
+ ldr r0, [r0]
+ adds r5, r1, 0
+ ldr r4, _081083A8
+ cmp r2, r0
+ bgt _0810839A
+ adds r3, r5, 0
+ mov r2, sp
+_08108384:
+ adds r2, 0x4
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _0810839A
+ ldrb r0, [r3, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _08108384
+_0810839A:
+ cmp r6, 0x4
+ bne _081083AC
+ movs r0, 0x2
+ str r0, [r5, 0x8]
+ b _081083B8
+ .align 2, 0
+_081083A4: .4byte 0x02016800
+_081083A8: .4byte gUnknown_02039238
+_081083AC:
+ movs r0, 0x1
+ str r0, [r5, 0x8]
+ b _081083B8
+_081083B2:
+ movs r0, 0
+ str r0, [r5, 0x8]
+ ldr r4, _081083D0
+_081083B8:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081083D0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081F4
+
+ thumb_func_start sub_81083D4
+sub_81083D4: @ 81083D4
+ push {lr}
+ ldr r0, _081083EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081083FC
+ ldr r2, _081083F0
+ ldr r1, _081083F4
+ ldr r0, _081083F8
+ b _08108402
+ .align 2, 0
+_081083EC: .4byte gUnknown_02039238
+_081083F0: .4byte 0x02016800
+_081083F4: .4byte gUnknown_02024C34
+_081083F8: .4byte gUnknown_02024C07
+_081083FC:
+ ldr r2, _08108418
+ ldr r1, _0810841C
+ ldr r0, _08108420
+_08108402:
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [r2, 0x8]
+ ldr r0, [r3]
+ adds r0, 0x2
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108418: .4byte 0x02016800
+_0810841C: .4byte gUnknown_02024C34
+_08108420: .4byte gUnknown_02024C08
+ thumb_func_end sub_81083D4
+
+ thumb_func_start sub_8108424
+sub_8108424: @ 8108424
+ push {lr}
+ ldr r3, _0810844C
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108450
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ bne _08108454
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108458
+ .align 2, 0
+_0810844C: .4byte gUnknown_02039238
+_08108450: .4byte 0x02016800
+_08108454:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108458:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108424
+
+ thumb_func_start sub_810845C
+sub_810845C: @ 810845C
+ push {lr}
+ ldr r3, _08108484
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108488
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ beq _0810848C
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108490
+ .align 2, 0
+_08108484: .4byte gUnknown_02039238
+_08108488: .4byte 0x02016800
+_0810848C:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108490:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810845C
+
+ thumb_func_start tai28_unk
+tai28_unk: @ 8108494
+ push {lr}
+ ldr r0, _081084CC
+ ldrb r0, [r0]
+ ldr r1, _081084D0
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _081084D4
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _081084D8
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081084DC
+ .align 2, 0
+_081084CC: .4byte gUnknown_02024C07
+_081084D0: .4byte gUnknown_02024C08
+_081084D4: .4byte gUnknown_02039238
+_081084D8:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081084DC:
+ pop {r0}
+ bx r0
+ thumb_func_end tai28_unk
+
+ thumb_func_start tai29_unk
+tai29_unk: @ 81084E0
+ push {lr}
+ ldr r0, _08108518
+ ldrb r0, [r0]
+ ldr r1, _0810851C
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _08108520
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108524
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108528
+ .align 2, 0
+_08108518: .4byte gUnknown_02024C07
+_0810851C: .4byte gUnknown_02024C08
+_08108520: .4byte gUnknown_02039238
+_08108524:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108528:
+ pop {r0}
+ bx r0
+ thumb_func_end tai29_unk
+
+ thumb_func_start nullsub_25
+nullsub_25: @ 810852C
+ bx lr
+ thumb_func_end nullsub_25
+
+ thumb_func_start nullsub_26
+nullsub_26: @ 8108530
+ bx lr
+ thumb_func_end nullsub_26
+
+ thumb_func_start tai2C_unk
+tai2C_unk: @ 8108534
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, _08108550
+ movs r0, 0
+ str r0, [r1, 0x8]
+ ldr r0, _08108554
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _0810855C
+ ldr r0, _08108558
+ b _0810855E
+ .align 2, 0
+_08108550: .4byte 0x02016800
+_08108554: .4byte gUnknown_02039238
+_08108558: .4byte gUnknown_02024C07
+_0810855C:
+ ldr r0, _081085A8
+_0810855E:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _081085AC
+ mov r9, r1
+ cmp r0, 0
+ bne _08108574
+ ldr r0, _081085B0
+ mov r9, r0
+_08108574:
+ ldr r0, _081085B4
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081085BC
+ ldr r4, _081085B8
+ lsls r0, r5, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrb r6, [r0]
+ b _081085C6
+ .align 2, 0
+_081085A8: .4byte gUnknown_02024C08
+_081085AC: .4byte gEnemyParty
+_081085B0: .4byte gPlayerParty
+_081085B4: .4byte gUnknown_020239F8
+_081085B8: .4byte gUnknown_02024A6A
+_081085BC:
+ ldr r1, _08108624
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r6, [r0]
+ mov r8, r6
+_081085C6:
+ movs r5, 0
+ ldr r7, _08108628
+_081085CA:
+ cmp r5, r8
+ beq _08108608
+ cmp r5, r6
+ beq _08108608
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08108608
+ ldr r0, [r7, 0x8]
+ adds r0, 0x1
+ str r0, [r7, 0x8]
+_08108608:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081085CA
+ ldr r1, _0810862C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108624: .4byte gUnknown_02024A6A
+_08108628: .4byte 0x02016800
+_0810862C: .4byte gUnknown_02039238
+ thumb_func_end tai2C_unk
+
+ thumb_func_start sub_8108630
+sub_8108630: @ 8108630
+ ldr r1, _08108640
+ ldrh r0, [r1, 0x2]
+ str r0, [r1, 0x8]
+ ldr r1, _08108644
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108640: .4byte 0x02016800
+_08108644: .4byte gUnknown_02039238
+ thumb_func_end sub_8108630
+
+ thumb_func_start sub_8108648
+sub_8108648: @ 8108648
+ ldr r3, _08108664
+ ldr r2, _08108668
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _0810866C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108664: .4byte 0x02016800
+_08108668: .4byte gBattleMoves
+_0810866C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108648
+
+ thumb_func_start sub_8108670
+sub_8108670: @ 8108670
+ push {r4-r7,lr}
+ ldr r0, _08108680
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08108688
+ ldr r0, _08108684
+ b _0810868A
+ .align 2, 0
+_08108680: .4byte gUnknown_02039238
+_08108684: .4byte gUnknown_02024C07
+_08108688:
+ ldr r0, _081086BC
+_0810868A:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08108774
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ ldr r6, _081086C0
+ adds r0, r6, 0
+ adds r0, 0x20
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _081086C8
+ ldr r0, _081086C4
+ adds r1, r6, r0
+ ldrb r0, [r3]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086BC: .4byte gUnknown_02024C08
+_081086C0: .4byte 0x02016a00
+_081086C4: .4byte 0xfffffe00
+_081086C8:
+ ldr r1, _081086F4
+ movs r0, 0x58
+ muls r0, r4
+ adds r5, r0, r1
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x17
+ beq _081086E4
+ cmp r0, 0x2A
+ beq _081086E4
+ cmp r0, 0x47
+ bne _081086FC
+_081086E4:
+ ldr r1, _081086F8
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086F4: .4byte gBattleMons
+_081086F8: .4byte 0x02016800
+_081086FC:
+ ldr r4, _08108734
+ ldrh r0, [r5]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r1, r4
+ ldrb r0, [r3, 0x16]
+ cmp r0, 0
+ beq _08108764
+ ldrb r0, [r3, 0x17]
+ cmp r0, 0
+ beq _08108754
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0810873C
+ ldr r0, _08108738
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x16]
+ b _08108782
+ .align 2, 0
+_08108734: .4byte gBaseStats
+_08108738: .4byte 0xfffffe00
+_0810873C:
+ ldr r0, _08108750
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x17]
+ b _08108782
+ .align 2, 0
+_08108750: .4byte 0xfffffe00
+_08108754:
+ ldr r0, _08108760
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x16]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108760: .4byte 0xfffffe00
+_08108764:
+ ldr r0, _08108770
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x17]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108770: .4byte 0xfffffe00
+_08108774:
+ ldr r2, _08108794
+ ldr r1, _08108798
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+_08108782:
+ str r0, [r2, 0x8]
+_08108784:
+ ldr r1, _0810879C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108794: .4byte 0x02016800
+_08108798: .4byte gBattleMons
+_0810879C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108670
+
+ thumb_func_start tai30_unk
+tai30_unk: @ 81087A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0810885C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08108860
+ ldr r3, _08108864
+ adds r0, r1, r3
+ movs r4, 0
+ strb r2, [r0]
+ adds r3, 0x3
+ adds r0, r1, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r0, _08108868
+ strb r2, [r0]
+ ldr r0, _0810886C
+ strb r3, [r0]
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r1, r0
+ str r4, [r1, 0x8]
+ movs r5, 0
+ ldr r4, _08108870
+ ldr r7, _08108874
+ ldr r3, _08108878
+ mov r8, r3
+ ldr r6, _0810887C
+_081087DA:
+ movs r0, 0x28
+ str r0, [r4]
+ lsls r1, r5, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ ldrh r0, [r1]
+ strh r0, [r7]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08108844
+ ldrh r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, _08108880
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _0810880A
+ movs r0, 0x50
+ str r0, [r4]
+_0810880A:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _08108814
+ movs r0, 0xA0
+ str r0, [r4]
+_08108814:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _0810881E
+ movs r0, 0x14
+ str r0, [r4]
+_0810881E:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _08108828
+ movs r0, 0xA
+ str r0, [r4]
+_08108828:
+ ldr r0, _08108868
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108838
+ movs r0, 0
+ str r0, [r4]
+_08108838:
+ ldr r2, _08108884
+ ldr r0, [r2, 0x8]
+ ldr r1, [r4]
+ cmp r0, r1
+ bcs _08108844
+ str r1, [r2, 0x8]
+_08108844:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081087DA
+ ldr r1, _08108888
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810885C: .4byte gUnknown_02024DEC
+_08108860: .4byte 0x02000000
+_08108864: .4byte 0x0001601c
+_08108868: .4byte gUnknown_02024C68
+_0810886C: .4byte gCritMultiplier
+_08108870: .4byte gUnknown_02024BEC
+_08108874: .4byte gUnknown_02024BE6
+_08108878: .4byte gUnknown_02024A8C
+_0810887C: .4byte gUnknown_02024C07
+_08108880: .4byte gUnknown_02024C08
+_08108884: .4byte 0x02016800
+_08108888: .4byte gUnknown_02039238
+ thumb_func_end tai30_unk
+
+ thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
+dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
+ push {r4,r5,lr}
+ ldr r0, _08108928
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810892C
+ ldr r3, _08108930
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x3
+ adds r0, r2, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r5, _08108934
+ strb r1, [r5]
+ ldr r0, _08108938
+ strb r3, [r0]
+ ldr r4, _0810893C
+ movs r0, 0x28
+ str r0, [r4]
+ ldr r1, _08108940
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ ldrh r0, [r1]
+ ldr r1, _08108944
+ ldrb r1, [r1]
+ ldr r2, _08108948
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _081088D6
+ movs r0, 0x50
+ str r0, [r4]
+_081088D6:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _081088E0
+ movs r0, 0xA0
+ str r0, [r4]
+_081088E0:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _081088EA
+ movs r0, 0x14
+ str r0, [r4]
+_081088EA:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _081088F4
+ movs r0, 0xA
+ str r0, [r4]
+_081088F4:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108902
+ movs r0, 0
+ str r0, [r4]
+_08108902:
+ ldrb r0, [r4]
+ ldr r3, _0810894C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108950
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108954
+ .align 2, 0
+_08108928: .4byte gUnknown_02024DEC
+_0810892C: .4byte 0x02000000
+_08108930: .4byte 0x0001601c
+_08108934: .4byte gUnknown_02024C68
+_08108938: .4byte gCritMultiplier
+_0810893C: .4byte gUnknown_02024BEC
+_08108940: .4byte gUnknown_02024BE6
+_08108944: .4byte gUnknown_02024C07
+_08108948: .4byte gUnknown_02024C08
+_0810894C: .4byte gUnknown_02039238
+_08108950:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108954:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
+
+ thumb_func_start nullsub_71
+nullsub_71: @ 810895C
+ bx lr
+ thumb_func_end nullsub_71
+
+ thumb_func_start nullsub_90
+nullsub_90: @ 8108960
+ bx lr
+ thumb_func_end nullsub_90
+
+ thumb_func_start sub_8108964
+sub_8108964: @ 8108964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810897C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ cmp r1, 0x1
+ bne _081089A4
+ ldr r1, _08108980
+ b _081089A6
+ .align 2, 0
+_0810897C: .4byte gUnknown_02039238
+_08108980: .4byte gEnemyParty
+_08108984:
+ ldr r3, _081089A0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108A12
+ .align 2, 0
+_081089A0: .4byte gUnknown_02039238
+_081089A4:
+ ldr r1, _08108A20
+_081089A6:
+ mov r9, r1
+ ldr r1, [r0]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xCE
+ lsls r1, 1
+ mov r10, r1
+_081089C8:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108A00
+ cmp r5, r10
+ beq _08108A00
+ cmp r6, 0
+ beq _08108A00
+ cmp r0, r7
+ beq _08108984
+_08108A00:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _081089C8
+ ldr r1, _08108A24
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108A12:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108A20: .4byte gPlayerParty
+_08108A24: .4byte gUnknown_02039238
+ thumb_func_end sub_8108964
+
+ thumb_func_start sub_8108A28
+sub_8108A28: @ 8108A28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08108A44
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _08108A4C
+ ldr r0, _08108A48
+ mov r10, r0
+ b _08108A50
+ .align 2, 0
+_08108A44: .4byte gUnknown_02039238
+_08108A48: .4byte gEnemyParty
+_08108A4C:
+ ldr r1, _08108AE4
+ mov r10, r1
+_08108A50:
+ ldr r1, [r2]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r2
+_08108A6C:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108AB0
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r5, r1
+ beq _08108AB0
+ cmp r6, 0
+ beq _08108AB0
+ cmp r0, r7
+ bne _08108AB0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108AB0:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _08108A6C
+ ldr r3, _08108AE8
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108AE4: .4byte gPlayerParty
+_08108AE8: .4byte gUnknown_02039238
+ thumb_func_end sub_8108A28
+
+ thumb_func_start sub_8108AEC
+sub_8108AEC: @ 8108AEC
+ push {lr}
+ ldr r2, _08108B3C
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08108B00
+ ldr r1, _08108B40
+ movs r0, 0x1
+ str r0, [r1, 0x8]
+_08108B00:
+ ldrh r2, [r2]
+ movs r0, 0x18
+ ands r0, r2
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _08108B12
+ ldr r1, _08108B40
+ movs r0, 0x2
+ str r0, [r1, 0x8]
+_08108B12:
+ movs r0, 0x60
+ ands r0, r3
+ cmp r0, 0
+ beq _08108B20
+ ldr r1, _08108B40
+ movs r0, 0
+ str r0, [r1, 0x8]
+_08108B20:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08108B2E
+ ldr r1, _08108B40
+ movs r0, 0x3
+ str r0, [r1, 0x8]
+_08108B2E:
+ ldr r1, _08108B44
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108B3C: .4byte word_2024DB8
+_08108B40: .4byte 0x02016800
+_08108B44: .4byte gUnknown_02039238
+ thumb_func_end sub_8108AEC
+
+ thumb_func_start sub_8108B48
+sub_8108B48: @ 8108B48
+ push {lr}
+ ldr r2, _08108B7C
+ ldr r0, _08108B80
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108B84
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108B88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108B8C
+ .align 2, 0
+_08108B7C: .4byte gBattleMoves
+_08108B80: .4byte 0x02016800
+_08108B84: .4byte gUnknown_02039238
+_08108B88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108B8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B48
+
+ thumb_func_start sub_8108B90
+sub_8108B90: @ 8108B90
+ push {lr}
+ ldr r2, _08108BC4
+ ldr r0, _08108BC8
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108BCC
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108BD0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108BD4
+ .align 2, 0
+_08108BC4: .4byte gBattleMoves
+_08108BC8: .4byte 0x02016800
+_08108BCC: .4byte gUnknown_02039238
+_08108BD0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108BD4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B90
+
+ thumb_func_start sub_8108BD8
+sub_8108BD8: @ 8108BD8
+ push {r4,lr}
+ ldr r0, _08108BEC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108BF4
+ ldr r0, _08108BF0
+ b _08108BF6
+ .align 2, 0
+_08108BEC: .4byte gUnknown_02039238
+_08108BF0: .4byte gUnknown_02024C07
+_08108BF4:
+ ldr r0, _08108C2C
+_08108BF6:
+ ldrb r3, [r0]
+ ldr r1, _08108C30
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bge _08108C34
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108C3A
+ .align 2, 0
+_08108C2C: .4byte gUnknown_02024C08
+_08108C30: .4byte gBattleMons
+_08108C34:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108C3A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108BD8
+
+ thumb_func_start sub_8108C40
+sub_8108C40: @ 8108C40
+ push {r4,lr}
+ ldr r0, _08108C54
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108C5C
+ ldr r0, _08108C58
+ b _08108C5E
+ .align 2, 0
+_08108C54: .4byte gUnknown_02039238
+_08108C58: .4byte gUnknown_02024C07
+_08108C5C:
+ ldr r0, _08108C94
+_08108C5E:
+ ldrb r3, [r0]
+ ldr r1, _08108C98
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ ble _08108C9C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108CA2
+ .align 2, 0
+_08108C94: .4byte gUnknown_02024C08
+_08108C98: .4byte gBattleMons
+_08108C9C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108CA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108C40
+
+ thumb_func_start sub_8108CA8
+sub_8108CA8: @ 8108CA8
+ push {r4,lr}
+ ldr r0, _08108CBC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108CC4
+ ldr r0, _08108CC0
+ b _08108CC6
+ .align 2, 0
+_08108CBC: .4byte gUnknown_02039238
+_08108CC0: .4byte gUnknown_02024C07
+_08108CC4:
+ ldr r0, _08108CFC
+_08108CC6:
+ ldrb r3, [r0]
+ ldr r1, _08108D00
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bne _08108D04
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D0A
+ .align 2, 0
+_08108CFC: .4byte gUnknown_02024C08
+_08108D00: .4byte gBattleMons
+_08108D04:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108CA8
+
+ thumb_func_start sub_8108D10
+sub_8108D10: @ 8108D10
+ push {r4,lr}
+ ldr r0, _08108D24
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108D2C
+ ldr r0, _08108D28
+ b _08108D2E
+ .align 2, 0
+_08108D24: .4byte gUnknown_02039238
+_08108D28: .4byte gUnknown_02024C07
+_08108D2C:
+ ldr r0, _08108D64
+_08108D2E:
+ ldrb r3, [r0]
+ ldr r1, _08108D68
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ beq _08108D6C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D72
+ .align 2, 0
+_08108D64: .4byte gUnknown_02024C08
+_08108D68: .4byte gBattleMons
+_08108D6C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108D10
+
+ thumb_func_start tai3D_unk
+tai3D_unk: @ 8108D78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _08108E1C
+ ldr r6, _08108E20
+ ldrh r1, [r6, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108E4C
+ ldr r0, _08108E24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108E28
+ adds r0, r6, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r6, r2
+ movs r2, 0x1
+ mov r8, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, _08108E2C
+ strb r1, [r0]
+ ldr r0, _08108E30
+ strb r2, [r0]
+ ldr r5, _08108E34
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5]
+ ldr r4, _08108E38
+ ldrb r0, [r4]
+ ldr r7, _08108E3C
+ ldrb r1, [r7]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r4]
+ ldrb r2, [r7]
+ bl move_effectiveness_something
+ ldr r4, _08108E40
+ adds r0, r6, 0
+ adds r0, 0x18
+ ldrb r6, [r6, 0x1]
+ adds r0, r6
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108DEE
+ mov r0, r8
+ str r0, [r4]
+_08108DEE:
+ ldr r2, _08108E44
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldr r0, [r4]
+ cmp r1, r0
+ bgt _08108E4C
+ ldr r3, _08108E48
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108E54
+ .align 2, 0
+_08108E1C: .4byte gBattleMoves
+_08108E20: .4byte 0x02016800
+_08108E24: .4byte gUnknown_02024DEC
+_08108E28: .4byte 0xfffff81c
+_08108E2C: .4byte gUnknown_02024C68
+_08108E30: .4byte gCritMultiplier
+_08108E34: .4byte gUnknown_02024BE6
+_08108E38: .4byte gUnknown_02024C07
+_08108E3C: .4byte gUnknown_02024C08
+_08108E40: .4byte gUnknown_02024BEC
+_08108E44: .4byte gBattleMons
+_08108E48: .4byte gUnknown_02039238
+_08108E4C:
+ ldr r1, _08108E60
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108E54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108E60: .4byte gUnknown_02039238
+ thumb_func_end tai3D_unk
+
+ thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
+dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
+ push {r4-r7,lr}
+ ldr r2, _08108EF8
+ ldr r7, _08108EFC
+ ldrh r1, [r7, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108F28
+ ldr r0, _08108F00
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108F04
+ adds r0, r7, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r7, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108F08
+ strb r1, [r0]
+ ldr r0, _08108F0C
+ strb r2, [r0]
+ ldr r6, _08108F10
+ ldrh r0, [r7, 0x2]
+ strh r0, [r6]
+ ldr r4, _08108F14
+ ldrb r0, [r4]
+ ldr r5, _08108F18
+ ldrb r1, [r5]
+ bl sub_801CAF8
+ ldrh r0, [r6]
+ ldrb r1, [r4]
+ ldrb r2, [r5]
+ bl move_effectiveness_something
+ ldr r4, _08108F1C
+ adds r0, r7, 0
+ adds r0, 0x18
+ ldrb r7, [r7, 0x1]
+ adds r0, r7
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, _08108F20
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1, 0x28]
+ cmp r1, r0
+ ble _08108F28
+ ldr r3, _08108F24
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108F30
+ .align 2, 0
+_08108EF8: .4byte gBattleMoves
+_08108EFC: .4byte 0x02016800
+_08108F00: .4byte gUnknown_02024DEC
+_08108F04: .4byte 0xfffff81c
+_08108F08: .4byte gUnknown_02024C68
+_08108F0C: .4byte gCritMultiplier
+_08108F10: .4byte gUnknown_02024BE6
+_08108F14: .4byte gUnknown_02024C07
+_08108F18: .4byte gUnknown_02024C08
+_08108F1C: .4byte gUnknown_02024BEC
+_08108F20: .4byte gBattleMons
+_08108F24: .4byte gUnknown_02039238
+_08108F28:
+ ldr r1, _08108F38
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108F30:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108F38: .4byte gUnknown_02039238
+ thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
+
+ thumb_func_start tai40_unk
+tai40_unk: @ 8108F3C
+ push {r4-r7,lr}
+ ldr r1, _08108F58
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08108F64
+ cmp r0, 0x1
+ bgt _08108F5C
+ cmp r0, 0
+ beq _08108FA8
+ b _08109008
+ .align 2, 0
+_08108F58: .4byte gUnknown_02039238
+_08108F5C:
+ cmp r0, 0x2
+ beq _08108FA8
+ cmp r0, 0x3
+ bne _08109008
+_08108F64:
+ movs r3, 0
+ ldr r2, _08108FA0
+ ldr r5, _08108FA4
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _08108F9A
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08108F84:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08108F9A
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08108F84
+_08108F9A:
+ cmp r3, 0x4
+ beq _08108FDE
+ b _08108FF0
+ .align 2, 0
+_08108FA0: .4byte gBattleMons
+_08108FA4: .4byte gUnknown_02024C07
+_08108FA8:
+ movs r3, 0
+ ldr r5, _08108FE8
+ ldr r1, _08108FEC
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _08108FDA
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08108FC2:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _08108FDA
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08108FC2
+_08108FDA:
+ cmp r3, 0x8
+ bne _08108FF0
+_08108FDE:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _08109008
+ .align 2, 0
+_08108FE8: .4byte 0x02016a00
+_08108FEC: .4byte gUnknown_02024C08
+_08108FF0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08109008:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end tai40_unk
+
+ thumb_func_start sub_8109010
+sub_8109010: @ 8109010
+ push {r4-r7,lr}
+ ldr r1, _0810902C
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109038
+ cmp r0, 0x1
+ bgt _08109030
+ cmp r0, 0
+ beq _0810907C
+ b _081090DC
+ .align 2, 0
+_0810902C: .4byte gUnknown_02039238
+_08109030:
+ cmp r0, 0x2
+ beq _0810907C
+ cmp r0, 0x3
+ bne _081090DC
+_08109038:
+ movs r3, 0
+ ldr r2, _08109074
+ ldr r5, _08109078
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _0810906E
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08109058:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0810906E
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08109058
+_0810906E:
+ cmp r3, 0x4
+ bne _081090B2
+ b _081090C4
+ .align 2, 0
+_08109074: .4byte gBattleMons
+_08109078: .4byte gUnknown_02024C07
+_0810907C:
+ movs r3, 0
+ ldr r5, _081090BC
+ ldr r1, _081090C0
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _081090AE
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08109096:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _081090AE
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08109096
+_081090AE:
+ cmp r3, 0x8
+ beq _081090C4
+_081090B2:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _081090DC
+ .align 2, 0
+_081090BC: .4byte 0x02016a00
+_081090C0: .4byte gUnknown_02024C08
+_081090C4:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081090DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109010
+
+ thumb_func_start sub_81090E4
+sub_81090E4: @ 81090E4
+ push {r4-r7,lr}
+ ldr r1, _081090FC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109108
+ cmp r0, 0x1
+ bgt _08109100
+ cmp r0, 0
+ beq _0810915C
+ b _081091B8
+ .align 2, 0
+_081090FC: .4byte gUnknown_02039238
+_08109100:
+ cmp r0, 0x2
+ beq _0810915C
+ cmp r0, 0x3
+ bne _081091B8
+_08109108:
+ movs r3, 0
+ ldr r1, _0810914C
+ ldr r0, _08109150
+ ldrb r2, [r0]
+ ldr r6, _08109154
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109158
+_0810911C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109136
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810913E
+_08109136:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810911C
+_0810913E:
+ cmp r3, 0x4
+ bne _081091A0
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _081091B8
+ .align 2, 0
+_0810914C: .4byte gBattleMons
+_08109150: .4byte gUnknown_02024C07
+_08109154: .4byte gBattleMoves
+_08109158: .4byte gUnknown_02039238
+_0810915C:
+ movs r3, 0
+ ldr r1, _081091C0
+ ldr r0, _081091C4
+ ldrb r2, [r0]
+ ldr r7, _081091C8
+ ldr r6, _081091CC
+ ldr r5, _081091D0
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08109172:
+ lsls r1, r3, 1
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109198
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r1, r0
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _081091A0
+_08109198:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08109172
+_081091A0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081091B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081091C0: .4byte gBattleMons
+_081091C4: .4byte gUnknown_02024C07
+_081091C8: .4byte gBattleMoves
+_081091CC: .4byte 0x02016a00
+_081091D0: .4byte gUnknown_02024C08
+ thumb_func_end sub_81090E4
+
+ thumb_func_start sub_81091D4
+sub_81091D4: @ 81091D4
+ push {r4-r6,lr}
+ ldr r1, _081091EC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _081091F8
+ cmp r0, 0x1
+ bgt _081091F0
+ cmp r0, 0
+ beq _0810925C
+ b _08109294
+ .align 2, 0
+_081091EC: .4byte gUnknown_02039238
+_081091F0:
+ cmp r0, 0x2
+ beq _0810925C
+ cmp r0, 0x3
+ bne _08109294
+_081091F8:
+ movs r3, 0
+ ldr r1, _0810924C
+ ldr r0, _08109250
+ ldrb r2, [r0]
+ ldr r6, _08109254
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109258
+_0810920C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109226
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810922E
+_08109226:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810920C
+_0810922E:
+ cmp r3, 0x4
+ bne _0810928E
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109294
+ .align 2, 0
+_0810924C: .4byte gBattleMons
+_08109250: .4byte gUnknown_02024C07
+_08109254: .4byte gBattleMoves
+_08109258: .4byte gUnknown_02039238
+_0810925C:
+ movs r3, 0
+ ldr r1, _0810929C
+ ldr r0, _081092A0
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r2, r0, r1
+ ldr r5, _081092A4
+_0810926C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109286
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810928E
+_08109286:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0810926C
+_0810928E:
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+_08109294:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810929C: .4byte 0x02016a00
+_081092A0: .4byte gUnknown_02024C08
+_081092A4: .4byte gBattleMoves
+ thumb_func_end sub_81091D4
+
+ thumb_func_start tai43_unk
+tai43_unk: @ 81092A8
+ push {r4,r5,lr}
+ ldr r0, _081092BC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081092C4
+ ldr r0, _081092C0
+ b _081092C6
+ .align 2, 0
+_081092BC: .4byte gUnknown_02039238
+_081092C0: .4byte gUnknown_02024C07
+_081092C4:
+ ldr r0, _081092E4
+_081092C6:
+ ldrb r3, [r0]
+ adds r4, r5, 0
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _081092EC
+ ldr r0, _081092E8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081092F0
+ b _08109306
+ .align 2, 0
+_081092E4: .4byte gUnknown_02024C08
+_081092E8: .4byte gUnknown_02024CA8
+_081092EC:
+ cmp r0, 0x1
+ beq _081092F6
+_081092F0:
+ adds r0, r2, 0x7
+ str r0, [r4]
+ b _08109328
+_081092F6:
+ ldr r0, _08109320
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08109324
+_08109306:
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109328
+ .align 2, 0
+_08109320: .4byte gUnknown_02024CA8
+_08109324:
+ adds r0, r2, 0x7
+ str r0, [r5]
+_08109328:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end tai43_unk
+
+ thumb_func_start sub_8109330
+sub_8109330: @ 8109330
+ push {r4,lr}
+ ldr r4, _08109344
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08109348
+ cmp r0, 0x1
+ beq _08109370
+ b _081093AC
+ .align 2, 0
+_08109344: .4byte gUnknown_02039238
+_08109348:
+ ldr r2, _08109364
+ ldr r0, _08109368
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0810936C
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ beq _08109388
+ b _081093AC
+ .align 2, 0
+_08109364: .4byte gUnknown_02024CA8
+_08109368: .4byte gUnknown_02024A60
+_0810936C: .4byte 0x02016800
+_08109370:
+ ldr r2, _081093A0
+ ldr r0, _081093A4
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _081093A8
+ ldrh r0, [r0, 0x6]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ bne _081093AC
+_08109388:
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081093B0
+ .align 2, 0
+_081093A0: .4byte gUnknown_02024CA8
+_081093A4: .4byte gUnknown_02024A60
+_081093A8: .4byte 0x02016800
+_081093AC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081093B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109330
+
+ thumb_func_start sub_81093B8
+sub_81093B8: @ 81093B8
+ ldr r2, _081093C4
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xB
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_081093C4: .4byte 0x02016800
+ thumb_func_end sub_81093B8
+
+ thumb_func_start sub_81093C8
+sub_81093C8: @ 81093C8
+ push {r4,lr}
+ ldr r0, _0810940C
+ ldr r1, _08109410
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08109418
+ ldr r3, _08109414
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08109420
+ .align 2, 0
+_0810940C: .4byte 0x02000000
+_08109410: .4byte 0x00016088
+_08109414: .4byte gUnknown_02039238
+_08109418:
+ ldr r1, _08109428
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08109420:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109428: .4byte gUnknown_02039238
+ thumb_func_end sub_81093C8
+
+ thumb_func_start sub_810942C
+sub_810942C: @ 810942C
+ ldr r2, _08109438
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xD
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_08109438: .4byte 0x02016800
+ thumb_func_end sub_810942C
+
+ thumb_func_start dp15_get_held_item_x12__8
+dp15_get_held_item_x12__8: @ 810943C
+ push {r4,lr}
+ ldr r0, _0810944C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08109454
+ ldr r0, _08109450
+ b _08109456
+ .align 2, 0
+_0810944C: .4byte gUnknown_02039238
+_08109450: .4byte gUnknown_02024C07
+_08109454:
+ ldr r0, _0810947C
+_08109456:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109488
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ ldr r2, _08109480
+ ldr r3, _08109484
+ adds r0, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ str r0, [r2, 0x8]
+ b _0810949E
+ .align 2, 0
+_0810947C: .4byte gUnknown_02024C08
+_08109480: .4byte 0x02016800
+_08109484: .4byte 0x00000222
+_08109488:
+ ldr r1, _081094AC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ bl itemid_get_x12
+ ldr r1, _081094B0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+_0810949E:
+ ldr r1, _081094B4
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094AC: .4byte gBattleMons
+_081094B0: .4byte 0x02016800
+_081094B4: .4byte gUnknown_02039238
+ thumb_func_end dp15_get_held_item_x12__8
+
+ thumb_func_start tai49_unk
+tai49_unk: @ 81094B8
+ push {lr}
+ ldr r0, _081094C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _081094D0
+ ldr r0, _081094CC
+ b _081094D2
+ .align 2, 0
+_081094C8: .4byte gUnknown_02039238
+_081094CC: .4byte gUnknown_02024C07
+_081094D0:
+ ldr r0, _081094FC
+_081094D2:
+ ldrb r1, [r0]
+ ldr r2, _08109500
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ bl GetGenderFromSpeciesAndPersonality
+ ldr r1, _08109504
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+ ldr r1, _08109508
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094FC: .4byte gUnknown_02024C08
+_08109500: .4byte gBattleMons
+_08109504: .4byte 0x02016800
+_08109508: .4byte gUnknown_02039238
+ thumb_func_end tai49_unk
+
+ thumb_func_start sub_810950C
+sub_810950C: @ 810950C
+ push {r4,lr}
+ ldr r0, _08109520
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109528
+ ldr r0, _08109524
+ b _0810952A
+ .align 2, 0
+_08109520: .4byte gUnknown_02039238
+_08109524: .4byte gUnknown_02024C07
+_08109528:
+ ldr r0, _08109548
+_0810952A:
+ ldrb r3, [r0]
+ ldr r2, _0810954C
+ ldr r1, _08109550
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109548: .4byte gUnknown_02024C08
+_0810954C: .4byte 0x02016800
+_08109550: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810950C
+
+ thumb_func_start sub_8109554
+sub_8109554: @ 8109554
+ push {r4,lr}
+ ldr r0, _08109568
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109570
+ ldr r0, _0810956C
+ b _08109572
+ .align 2, 0
+_08109568: .4byte gUnknown_02039238
+_0810956C: .4byte gUnknown_02024C07
+_08109570:
+ ldr r0, _08109590
+_08109572:
+ ldrb r3, [r0]
+ ldr r2, _08109594
+ ldr r1, _08109598
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x9]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109590: .4byte gUnknown_02024C08
+_08109594: .4byte 0x02016800
+_08109598: .4byte gUnknown_02024CA8
+ thumb_func_end sub_8109554
+
+ thumb_func_start sub_810959C
+sub_810959C: @ 810959C
+ ldr r2, _081095B4
+ ldr r0, _081095B8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r1, _081095BC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081095B4: .4byte 0x02016800
+_081095B8: .4byte gUnknown_020239F8
+_081095BC: .4byte gUnknown_02039238
+ thumb_func_end sub_810959C
+
+ thumb_func_start sub_81095C0
+sub_81095C0: @ 81095C0
+ push {lr}
+ ldr r0, _081095D4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _081095DC
+ ldr r0, _081095D8
+ b _081095DE
+ .align 2, 0
+_081095D4: .4byte gUnknown_02039238
+_081095D8: .4byte gUnknown_02024C07
+_081095DC:
+ ldr r0, _081095F8
+_081095DE:
+ ldrb r0, [r0]
+ ldr r1, _081095FC
+ lsls r0, 1
+ adds r0, r1
+ ldr r3, _08109600
+ adds r0, r3
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, [r2]
+ adds r0, 0x2
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081095F8: .4byte gUnknown_02024C08
+_081095FC: .4byte 0x02016800
+_08109600: .4byte 0xfffff8cc
+ thumb_func_end sub_81095C0
+
+ thumb_func_start sub_8109604
+sub_8109604: @ 8109604
+ ldr r3, _08109620
+ ldr r2, _08109624
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [r3, 0x8]
+ ldr r1, _08109628
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109620: .4byte 0x02016800
+_08109624: .4byte gBattleMoves
+_08109628: .4byte gUnknown_02039238
+ thumb_func_end sub_8109604
+
+ thumb_func_start sub_810962C
+sub_810962C: @ 810962C
+ ldr r3, _08109648
+ ldr r2, _0810964C
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _08109650
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109648: .4byte 0x02016800
+_0810964C: .4byte gBattleMoves
+_08109650: .4byte gUnknown_02039238
+ thumb_func_end sub_810962C
+
+ thumb_func_start sub_8109654
+sub_8109654: @ 8109654
+ ldr r3, _08109670
+ ldr r2, _08109674
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _08109678
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109670: .4byte 0x02016800
+_08109674: .4byte gBattleMoves
+_08109678: .4byte gUnknown_02039238
+ thumb_func_end sub_8109654
+
+ thumb_func_start sub_810967C
+sub_810967C: @ 810967C
+ push {r4,lr}
+ ldr r0, _08109690
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109698
+ ldr r0, _08109694
+ b _0810969A
+ .align 2, 0
+_08109690: .4byte gUnknown_02039238
+_08109694: .4byte gUnknown_02024C07
+_08109698:
+ ldr r0, _081096B8
+_0810969A:
+ ldrb r3, [r0]
+ ldr r2, _081096BC
+ ldr r1, _081096C0
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081096B8: .4byte gUnknown_02024C08
+_081096BC: .4byte 0x02016800
+_081096C0: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810967C
+
+ thumb_func_start nullsub_27
+nullsub_27: @ 81096C4
+ bx lr
+ thumb_func_end nullsub_27
+
+ thumb_func_start nullsub_28
+nullsub_28: @ 81096C8
+ bx lr
+ thumb_func_end nullsub_28
+
+ thumb_func_start nullsub_29
+nullsub_29: @ 81096CC
+ bx lr
+ thumb_func_end nullsub_29
+
+ thumb_func_start nullsub_30
+nullsub_30: @ 81096D0
+ bx lr
+ thumb_func_end nullsub_30
+
+ thumb_func_start nullsub_31
+nullsub_31: @ 81096D4
+ bx lr
+ thumb_func_end nullsub_31
+
+ thumb_func_start nullsub_32
+nullsub_32: @ 81096D8
+ bx lr
+ thumb_func_end nullsub_32
+
+ thumb_func_start sub_81096DC
+sub_81096DC: @ 81096DC
+ push {r4,lr}
+ ldr r4, _08109708
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl sub_81098C4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109708: .4byte gUnknown_02039238
+ thumb_func_end sub_81096DC
+
+ thumb_func_start sub_810970C
+sub_810970C: @ 810970C
+ ldr r3, _08109728
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08109728: .4byte gUnknown_02039238
+ thumb_func_end sub_810970C
+
+ thumb_func_start sub_810972C
+sub_810972C: @ 810972C
+ push {lr}
+ bl sub_8109908
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109742
+ ldr r2, _08109748
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+_08109742:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109748: .4byte 0x02016800
+ thumb_func_end sub_810972C
+
+ thumb_func_start dp15_compare_attacker_defender_levels
+dp15_compare_attacker_defender_levels: @ 810974C
+ push {r4,r5,lr}
+ ldr r5, _08109764
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1
+ beq _081097A0
+ cmp r0, 0x1
+ bgt _08109768
+ cmp r0, 0
+ beq _0810976E
+ b _0810981C
+ .align 2, 0
+_08109764: .4byte gUnknown_02039238
+_08109768:
+ cmp r0, 0x2
+ beq _081097D0
+ b _0810981C
+_0810976E:
+ ldr r3, _08109794
+ ldr r0, _08109798
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _0810979C
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhi _081097F2
+ b _08109818
+ .align 2, 0
+_08109794: .4byte gBattleMons
+_08109798: .4byte gUnknown_02024C07
+_0810979C: .4byte gUnknown_02024C08
+_081097A0:
+ ldr r3, _081097C4
+ ldr r0, _081097C8
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _081097CC
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _081097F2
+ b _08109818
+ .align 2, 0
+_081097C4: .4byte gBattleMons
+_081097C8: .4byte gUnknown_02024C07
+_081097CC: .4byte gUnknown_02024C08
+_081097D0:
+ ldr r3, _0810980C
+ ldr r0, _08109810
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _08109814
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08109818
+_081097F2:
+ ldrb r1, [r4, 0x2]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810981C
+ .align 2, 0
+_0810980C: .4byte gBattleMons
+_08109810: .4byte gUnknown_02024C07
+_08109814: .4byte gUnknown_02024C08
+_08109818:
+ adds r0, r4, 0x6
+ str r0, [r5]
+_0810981C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_compare_attacker_defender_levels
+
+ thumb_func_start sub_8109824
+sub_8109824: @ 8109824
+ push {lr}
+ ldr r2, _08109858
+ ldr r0, _0810985C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08109864
+ ldr r3, _08109860
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0810986C
+ .align 2, 0
+_08109858: .4byte gUnknown_02024CA8
+_0810985C: .4byte gUnknown_02024C08
+_08109860: .4byte gUnknown_02039238
+_08109864:
+ ldr r1, _08109870
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0810986C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109870: .4byte gUnknown_02039238
+ thumb_func_end sub_8109824
+
+ thumb_func_start sub_8109874
+sub_8109874: @ 8109874
+ push {lr}
+ ldr r2, _081098A8
+ ldr r0, _081098AC
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ bne _081098B4
+ ldr r3, _081098B0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081098BC
+ .align 2, 0
+_081098A8: .4byte gUnknown_02024CA8
+_081098AC: .4byte gUnknown_02024C08
+_081098B0: .4byte gUnknown_02039238
+_081098B4:
+ ldr r1, _081098C0
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_081098BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098C0: .4byte gUnknown_02039238
+ thumb_func_end sub_8109874
+
+ thumb_func_start sub_81098C4
+sub_81098C4: @ 81098C4
+ push {r4,lr}
+ ldr r4, _081098E0
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098E0: .4byte 0x02016c00
+ thumb_func_end sub_81098C4
+
+ thumb_func_start unref_sub_81098E4
+unref_sub_81098E4: @ 81098E4
+ ldr r3, _08109900
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _08109904
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08109900: .4byte 0x02016c00
+_08109904: .4byte gUnknown_02039238
+ thumb_func_end unref_sub_81098E4
+
+ thumb_func_start sub_8109908
+sub_8109908: @ 8109908
+ push {lr}
+ ldr r3, _0810991C
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08109920
+ movs r0, 0
+ b _08109932
+ .align 2, 0
+_0810991C: .4byte 0x02016c00
+_08109920:
+ subs r0, 0x1
+ strb r0, [r2]
+ ldr r1, _08109938
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0x1
+_08109932:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08109938: .4byte gUnknown_02039238
+ thumb_func_end sub_8109908
+
+ thumb_func_start sub_810993C
+sub_810993C: @ 810993C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _081099C8
+ mov r9, r0
+ movs r2, 0
+_0810994E:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ str r1, [sp, 0xC]
+ cmp r5, 0x3
+ bhi _081099AC
+ movs r1, 0x1
+ add r1, r9
+ mov r8, r1
+ adds r6, r1, r2
+ movs r0, 0xB
+ mov r10, r0
+ mov r0, r10
+ muls r0, r2
+ adds r0, 0x5
+ mov r1, r9
+ adds r7, r1, r0
+_08109970:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _081099A2
+ adds r2, r0, 0
+ mov r0, r8
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ strb r0, [r6]
+ strb r2, [r1]
+ mov r0, sp
+ adds r1, r7, 0
+ bl StringCopy
+ mov r4, r10
+ muls r4, r5
+ adds r4, 0x5
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+_081099A2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08109970
+_081099AC:
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _0810994E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081099C8: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_810993C
+
+ thumb_func_start sub_81099CC
+sub_81099CC: @ 81099CC
+ push {r4-r6,lr}
+ ldr r5, _08109A14
+ movs r1, 0
+ movs r0, 0x2
+ strb r0, [r5]
+ adds r0, r5, 0
+ adds r0, 0x31
+ strb r1, [r0]
+ movs r4, 0
+ ldr r6, _08109A18
+_081099E0:
+ movs r0, 0xB
+ muls r0, r4
+ adds r0, 0x5
+ adds r0, r5, r0
+ lsls r1, r4, 2
+ adds r1, r6
+ ldr r1, [r1]
+ bl StringCopy
+ adds r1, r5, 0x1
+ adds r1, r4
+ ldr r0, _08109A1C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081099E0
+ bl sub_810993C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A14: .4byte gSaveBlock1 + 0x2D94
+_08109A18: .4byte gUnknown_083F62D8
+_08109A1C: .4byte gTraderDecorations
+ thumb_func_end sub_81099CC
+
+ thumb_func_start sub_8109A20
+sub_8109A20: @ 8109A20
+ ldr r0, _08109A2C
+ adds r0, 0x31
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08109A2C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_8109A20
+
+ thumb_func_start sub_8109A30
+sub_8109A30: @ 8109A30
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08109A44
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A44: .4byte 0x00004020
+ thumb_func_end sub_8109A30
+
+ thumb_func_start sub_8109A48
+sub_8109A48: @ 8109A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r6, 0x1
+ movs r5, 0
+ ldr r0, _08109AB8
+ movs r4, 0
+ adds r7, r0, 0x1
+ adds r1, r7, 0
+_08109A64:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08109A72
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08109A72:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A64
+ lsls r3, r6, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuDrawTextWindow
+ movs r4, 0
+ mov r1, r9
+ lsls r1, 2
+ mov r8, r1
+_08109A98:
+ adds r1, r7, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08109ADE
+ cmp r0, 0x78
+ bls _08109AC0
+ lsls r2, r5, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ lsrs r2, 24
+ ldr r0, _08109ABC
+ movs r1, 0x1
+ bl MenuPrint
+ b _08109AD8
+ .align 2, 0
+_08109AB8: .4byte gSaveBlock1 + 0x2D94
+_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash
+_08109AC0:
+ ldrb r0, [r1]
+ lsls r0, 5
+ ldr r1, _08109B28
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+_08109AD8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08109ADE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A98
+ ldr r0, _08109B2C
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ adds r3, r6, 0
+ bl InitMenu
+ ldr r1, _08109B30
+ mov r0, r8
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B28: .4byte gDecorations + 0x1
+_08109B2C: .4byte gOtherText_CancelNoTerminator
+_08109B30: .4byte gTasks
+ thumb_func_end sub_8109A48
+
+ thumb_func_start sub_8109B34
+sub_8109B34: @ 8109B34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x78
+ bls _08109B54
+ ldr r1, _08109B4C
+ ldr r2, _08109B50
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08109B58
+ .align 2, 0
+_08109B4C: .4byte gUnknown_0202E8CC
+_08109B50: .4byte 0x0000ffff
+_08109B54:
+ ldr r0, _08109B78
+ strh r1, [r0]
+_08109B58:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B78: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8109B34
+
+ thumb_func_start sub_8109B7C
+sub_8109B7C: @ 8109B7C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r6, _08109BA4
+ ldr r0, _08109BA8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BAC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08109C3E
+ .align 2, 0
+_08109BA4: .4byte gSaveBlock1 + 0x2D94
+_08109BA8: .4byte gMain
+_08109BAC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BC2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08109C3E
+_08109BC2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C28
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08109BFC
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldr r1, _08109C00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ ldrh r2, [r5]
+ cmp r0, r2
+ bne _08109C04
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109BFC: .4byte gUnknown_0202E8CE
+_08109C00: .4byte gTasks
+_08109C04:
+ ldr r0, _08109C24
+ movs r1, 0xB
+ muls r1, r2
+ adds r1, 0x5
+ adds r1, r6
+ bl StringCopy
+ adds r0, r6, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109C24: .4byte gStringVar1
+_08109C28:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C3E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8109B34
+_08109C3E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109B7C
+
+ thumb_func_start sub_8109C44
+sub_8109C44: @ 8109C44
+ ldr r0, _08109C50
+ ldr r1, _08109C54
+ adds r0, 0x31
+ ldrb r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08109C50: .4byte gSaveBlock1 + 0x2D94
+_08109C54: .4byte gScriptResult
+ thumb_func_end sub_8109C44
+
+ thumb_func_start sub_8109C58
+sub_8109C58: @ 8109C58
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08109C70
+_08109C5E:
+ adds r0, r4, 0
+ bl sub_8134194
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109C74
+ movs r0, 0
+ strh r0, [r5]
+ b _08109C84
+ .align 2, 0
+_08109C70: .4byte gScriptResult
+_08109C74:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08109C5E
+ ldr r1, _08109C8C
+ movs r0, 0x1
+ strh r0, [r1]
+_08109C84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109C8C: .4byte gScriptResult
+ thumb_func_end sub_8109C58
+
+ thumb_func_start sub_8109C90
+sub_8109C90: @ 8109C90
+ push {r4-r6,lr}
+ ldr r6, _08109CDC
+ movs r0, 0
+ strh r0, [r6]
+ ldr r4, _08109CE0
+ ldr r5, _08109CE4
+ ldrh r0, [r5]
+ lsls r0, 5
+ adds r2, r0, r4
+ ldr r0, _08109CE8
+ ldrh r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ ldrb r1, [r2, 0x13]
+ ldrb r0, [r0, 0x13]
+ cmp r1, r0
+ beq _08109CD6
+ adds r0, r1, 0
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08109CD6
+ ldr r0, _08109CEC
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ ldrb r1, [r1, 0x13]
+ bl sub_80FE7D4
+ movs r0, 0x1
+ strh r0, [r6]
+_08109CD6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109CDC: .4byte gScriptResult
+_08109CE0: .4byte gDecorations
+_08109CE4: .4byte gUnknown_0202E8CC
+_08109CE8: .4byte gUnknown_0202E8D0
+_08109CEC: .4byte gStringVar2
+ thumb_func_end sub_8109C90
+
+ thumb_func_start sub_8109CF0
+sub_8109CF0: @ 8109CF0
+ push {lr}
+ ldr r0, _08109D00
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109D00: .4byte sub_80FE7A8
+ thumb_func_end sub_8109CF0
+
+ thumb_func_start sub_8109D04
+sub_8109D04: @ 8109D04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _08109D6C
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08109D8C
+ ldr r5, _08109D70
+ ldr r0, _08109D74
+ ldrb r1, [r0]
+ ldr r0, _08109D78
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _08109D7C
+ ldr r1, _08109D80
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r4, _08109D84
+ adds r1, r4
+ bl StringCopy
+ ldr r0, _08109D88
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ bl StringCopy
+ b _08109D94
+ .align 2, 0
+_08109D6C: .4byte gUnknown_020388F7
+_08109D70: .4byte gUnknown_0202E8D0
+_08109D74: .4byte gUnknown_020388F5
+_08109D78: .4byte gUnknown_020388D0
+_08109D7C: .4byte gStringVar3
+_08109D80: .4byte gUnknown_0202E8CC
+_08109D84: .4byte gDecorations + 0x1
+_08109D88: .4byte gStringVar2
+_08109D8C:
+ ldr r1, _08109DA4
+ ldr r2, _08109DA8
+ adds r0, r2, 0
+ strh r0, [r1]
+_08109D94:
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DA4: .4byte gUnknown_0202E8D0
+_08109DA8: .4byte 0x0000ffff
+ thumb_func_end sub_8109D04
+
+ thumb_func_start sub_8109DAC
+sub_8109DAC: @ 8109DAC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _08109DDC
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DDC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_8109DAC
+
+ thumb_func_start sub_8109DE0
+sub_8109DE0: @ 8109DE0
+ push {r4-r6,lr}
+ ldr r4, _08109E20
+ ldr r6, _08109E24
+ ldrb r0, [r6]
+ bl sub_81340A8
+ ldr r0, _08109E28
+ ldrb r0, [r0]
+ bl IsThereStorageSpaceForDecoration
+ ldr r5, _08109E2C
+ ldrh r1, [r5]
+ movs r0, 0xB
+ muls r0, r1
+ adds r0, 0x5
+ adds r0, r4
+ ldr r1, _08109E30
+ bl StringCopy
+ adds r0, r4, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrh r1, [r6]
+ strb r1, [r0]
+ bl sub_810993C
+ adds r4, 0x31
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E20: .4byte gSaveBlock1 + 0x2D94
+_08109E24: .4byte gUnknown_0202E8D0
+_08109E28: .4byte gUnknown_0202E8CC
+_08109E2C: .4byte gUnknown_0202E8CE
+_08109E30: .4byte gSaveBlock2
+ thumb_func_end sub_8109DE0
+
+ thumb_func_start sub_8109E34
+sub_8109E34: @ 8109E34
+ push {lr}
+ ldr r0, _08109E4C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8109A48
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E4C: .4byte sub_8109B7C
+ thumb_func_end sub_8109E34
+
+ .align 2, 0 @ Don't pad with nop.